From f4e30335b6ef58b13503bf56704e62afd6535966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Spriggs?= Date: Tue, 30 Jun 2026 12:42:35 -0400 Subject: [PATCH 1/5] docs: refactor context-menu codelab to use starter app --- .../add-a-context-menu-item.mdx | 31 +- .../codelabs/context-menu-option/callback.mdx | 10 +- .../context-menu-option/codelab-overview.mdx | 4 + .../complete-code/README.mdx | 50 + .../complete-code/index.html | 40 - .../complete-code/package-lock.json | 5772 +++++++++++++++++ .../complete-code/package.json | 29 + .../complete-code/src/blocks/text.js | 35 + .../src/generators/javascript.js | 30 + .../complete-code/src/index.css | 40 + .../complete-code/src/index.html | 16 + .../complete-code/{ => src}/index.js | 82 +- .../complete-code/src/serialization.js | 33 + .../complete-code/src/toolbox.js | 629 ++ .../complete-code/webpack.config.js | 59 + .../context-menu-option/display-text.mdx | 13 +- .../precondition-blockly-state.mdx | 23 +- .../precondition-external-state.mdx | 10 +- .../precondition-node-type.mdx | 8 +- .../context-menu-option/separators.mdx | 11 +- .../codelabs/context-menu-option/setup.mdx | 38 +- .../starter-code/index.html | 40 - .../context-menu-option/starter-code/index.js | 11 - .../codelabs/context-menu-option/summary.mdx | 2 + .../blockly_state_noblocks.png | Bin 0 -> 44296 bytes .../blockly_state_withblocks.png | Bin 0 -> 49890 bytes .../context-menu-option/display_text.png | Bin 0 -> 56188 bytes .../context-menu-option/separator.png | Bin 0 -> 34645 bytes 28 files changed, 6866 insertions(+), 150 deletions(-) create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx delete mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/index.html create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/package.json create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.css create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.html rename packages/docs/docs/codelabs/context-menu-option/complete-code/{ => src}/index.js (58%) create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/webpack.config.js delete mode 100644 packages/docs/docs/codelabs/context-menu-option/starter-code/index.html delete mode 100644 packages/docs/docs/codelabs/context-menu-option/starter-code/index.js create mode 100644 packages/docs/static/images/codelabs/context-menu-option/blockly_state_noblocks.png create mode 100644 packages/docs/static/images/codelabs/context-menu-option/blockly_state_withblocks.png create mode 100644 packages/docs/static/images/codelabs/context-menu-option/display_text.png create mode 100644 packages/docs/static/images/codelabs/context-menu-option/separator.png diff --git a/packages/docs/docs/codelabs/context-menu-option/add-a-context-menu-item.mdx b/packages/docs/docs/codelabs/context-menu-option/add-a-context-menu-item.mdx index 4f12f6b35e5..5e5da172d97 100644 --- a/packages/docs/docs/codelabs/context-menu-option/add-a-context-menu-item.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/add-a-context-menu-item.mdx @@ -26,7 +26,7 @@ We will discuss these in detail in later sections of the codelab. ### Make a RegistryItem -Add a function to `index.js` named `registerHelloWorldItem`. Create a new registry item in your function: +Add a function to `src/index.js` named `registerHelloWorldItem`. Create a new registry item in your function: ```js function registerHelloWorldItem() { @@ -42,18 +42,15 @@ function registerHelloWorldItem() { } ``` -Call your function from `start`: +Call your function in `src/index.js`, before the UI element setup and `Blockly.inject` call: ```js -function start() { - registerHelloWorldItem(); - - Blockly.ContextMenuItems.registerCommentOptions(); - // Create main workspace. - workspace = Blockly.inject('blocklyDiv', { - toolbox: toolboxSimple, - }); -} +registerHelloWorldItem(); + +// Set up UI elements and inject Blockly +const codeDiv = document.getElementById('generatedCode').firstChild; +// ... +const ws = Blockly.inject(blocklyDiv, {toolbox}); ``` ### Register it @@ -70,12 +67,20 @@ function registerHelloWorldItem() { ``` :::note -you will never need to make a new `ContextMenuRegistry`. Always use the singleton `Blockly.ContextMenuRegistry.registry`. +You will never need to make a new `ContextMenuRegistry`. Always use the singleton `Blockly.ContextMenuRegistry.registry`. ::: +### Enable comment context menus + +This codelab demonstrates context menus on workspaces, blocks, and comments. Blockly registers the workspace and block options by default, but the comment options (including the **Add Comment** option you'll use to create comments while testing) must be registered separately. Add this call to `src/index.js`, before the `Blockly.inject` call: + +```js +Blockly.ContextMenuItems.registerCommentOptions(); +``` + ### Test it -Reload your web page and open a context menu on the workspace (right-click with a mouse, or press `Ctrl+Enter` (Windows) or `Command+Enter` (Mac) if you are navigating Blockly with the keyboard). You should see a new option labeled "Hello World" at the bottom of the context menu. +Refresh the running page (or run `npm start`) and open a context menu on the workspace (right-click with a mouse, or press `Ctrl+Enter` (Windows) or `Command+Enter` (Mac) if you are navigating Blockly with the keyboard). You should see a new option labeled "Hello World" at the bottom of the context menu. A text block containing the text "Now there is a block". diff --git a/packages/docs/docs/codelabs/context-menu-option/codelab-overview.mdx b/packages/docs/docs/codelabs/context-menu-option/codelab-overview.mdx index a4ce8f7fd2a..e8ba40efec3 100644 --- a/packages/docs/docs/codelabs/context-menu-option/codelab-overview.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/codelab-overview.mdx @@ -26,5 +26,9 @@ A very simple Blockly workspace with a few new context menu options. - A browser. - A text editor. - Basic knowledge of HTML, CSS, and JavaScript. +- node.js and npm installed ([instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)). +- Comfort using the command line/terminal. + +You can find the code for the [completed context menu codelab](https://github.com/RaspberryPiFoundation/blockly/tree/main/packages/docs/docs/codelabs/context-menu-option/complete-code) on GitHub. This codelab is focused on Blockly's context menus. Non-relevant concepts and code are glossed over and are provided for you to simply copy and paste. diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx b/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx new file mode 100644 index 00000000000..1b3c36d82b8 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx @@ -0,0 +1,50 @@ +# Blockly Sample App + +## Purpose + +This app illustrates how to use Blockly together with common programming tools like node/npm, webpack, typescript, eslint, and others. You can use it as the starting point for your own application and modify it as much as you'd like. It contains basic infrastructure for running, building, testing, etc. that you can use even if you don't understand how to configure the related tool yet. When your needs outgrow the functionality provided here, you can replace the provided configuration or tool with your own. + +## Quick Start + +1. [Install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) npm if you haven't before. +2. Run [`npx @blockly/create-package app `](https://www.npmjs.com/package/@blockly/create-package) to clone this application to your own machine. +3. Run `npm install` to install the required dependencies. +4. Run `npm run start` to run the development server and see the app in action. +5. If you make any changes to the source code, just refresh the browser while the server is running to see them. + +## Tooling + +The application uses many of the same tools that the Blockly team uses to develop Blockly itself. Following is a brief overview, and you can read more about them on our [developer site](https://developers.google.com/blockly/guides/contribute/get-started/development_tools). + +- Structure: The application is built as an npm package. You can use npm to manage the dependencies of the application. +- Modules: ES6 modules to handle imports to/exports from other files. +- Building/bundling: Webpack to build the source code and bundle it into one file for serving. +- Development server: webpack-dev-server to run locally while in development. +- Testing: Mocha to run unit tests. +- Linting: Eslint to lint the code and ensure it conforms with a standard style. +- UI Framework: Does not use a framework. For more complex applications, you may wish to integrate a UI framework like React or Angular. + +You can disable, reconfigure, or replace any of these tools at any time, but they are preconfigured to get you started developing your Blockly application quickly. + +## Structure + +- `package.json` contains basic information about the app. This is where the scripts to run, build, etc. are listed. +- `package-lock.json` is used by npm to manage dependencies +- `webpack.config.js` is the configuration for webpack. This handles bundling the application and running our development server. +- `src/` contains the rest of the source code. +- `dist/` contains the packaged output (that you could host on a server, for example). This is ignored by git and will only appear after you run `npm run build` or `npm run start`. + +### Source Code + +- `index.html` contains the skeleton HTML for the page. This file is modified during the build to import the bundled source code output by webpack. +- `index.js` is the entry point of the app. It configures Blockly and sets up the page to show the blocks, the generated code, and the output of running the code in JavaScript. +- `serialization.js` has code to save and load the workspace using the browser's local storage. This is how your workspace is saved even after refreshing or leaving the page. You could replace this with code that saves the user's data to a cloud database instead. +- `toolbox.js` contains the toolbox definition for the app. The current toolbox contains nearly every block that Blockly provides out of the box. You probably want to replace this definition with your own toolbox that uses your custom blocks and only includes the default blocks that are relevant to your application. +- `blocks/text.js` has code for a custom text block, just as an example of creating your own blocks. You probably want to delete this block, and add your own blocks in this directory. +- `generators/javascript.js` contains the JavaScript generator for the custom text block. You'll need to include block generators for any custom blocks you create, in whatever programming language(s) your application will use. + +## Serving + +To run your app locally, run `npm run start` to run the development server. This mode generates source maps and ingests the source maps created by Blockly, so that you can debug using unminified code. + +To deploy your app so that others can use it, run `npm run build` to run a production build. This will bundle your code and minify it to reduce its size. You can then host the contents of the `dist` directory on a web server of your choosing. If you're just getting started, try using [GitHub Pages](https://pages.github.com/). diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/index.html b/packages/docs/docs/codelabs/context-menu-option/complete-code/index.html deleted file mode 100644 index c0821a8ec2e..00000000000 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Context Menu Codelab - - - - - - - - -

Context Menu Codelab

-
- - diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json b/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json new file mode 100644 index 00000000000..548fb2592b9 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json @@ -0,0 +1,5772 @@ +{ + "name": "context-menu-option-codelab", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "context-menu-option-codelab", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "blockly": "^13.0.0" + }, + "devDependencies": { + "css-loader": "^6.7.1", + "html-webpack-plugin": "^5.5.0", + "source-map-loader": "^4.0.1", + "style-loader": "^3.3.1", + "webpack": "^5.93.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" + } + }, + "node_modules/@acemir/cssom": { + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", + "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", + "license": "MIT", + "peer": true + }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", + "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@csstools/css-calc": "^3.0.0", + "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.2.5" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", + "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.6" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "license": "MIT", + "peer": true + }, + "node_modules/@csstools/color-helpers": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", + "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peer": true, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@csstools/css-calc": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", + "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@csstools/color-helpers": "^6.1.0", + "@csstools/css-calc": "^3.2.1" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", + "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peer": true, + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.8.tgz", + "integrity": "sha512-YzVbwggV9452VCeHgo0bjsTaUt1O7JE0XpEsPar93nn/+RAwXk0mb1Y+f5EDJ3TRtRCFe+Ck5RuojdfB4jeHVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.8", + "@jsonjoy.com/fs-node-utils": "4.57.8", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.8.tgz", + "integrity": "sha512-vmClyvCQMxgqz7uamDiGtRfp4MjzOznk3pcQjCxlIwJcw7TWeyr+bF30hI0x8NxdtNOGMg1pHM74VDIXOeyjuw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.8", + "@jsonjoy.com/fs-node-builtins": "4.57.8", + "@jsonjoy.com/fs-node-utils": "4.57.8", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.8.tgz", + "integrity": "sha512-IPEOlDYSnTDYpjQlQg2F8h+eqxKQN3sdbroI0WrteRiQZ462HzVpBo9ZZX485njz4nAacoe3fd4iDiIhk+k5Hg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.8", + "@jsonjoy.com/fs-node-builtins": "4.57.8", + "@jsonjoy.com/fs-node-utils": "4.57.8", + "@jsonjoy.com/fs-print": "4.57.8", + "@jsonjoy.com/fs-snapshot": "4.57.8", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.8.tgz", + "integrity": "sha512-mxXSXw8zZwRVakcjLqR2I/psy4gURFSASZS10kKJ2kJw05GC2nXGroGrWVHxwgkxXgQLsFQnB74QaLzsxzdL/w==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.8.tgz", + "integrity": "sha512-AWZcT/4+H+iDl4XCukbXrarvwEgOrf/prFI5/7eg4ix9FxqVsZysIDJd1Kjd+AjlCeHKHJOaRqjLd5HiGSCJEw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.57.8", + "@jsonjoy.com/fs-node-builtins": "4.57.8", + "@jsonjoy.com/fs-node-utils": "4.57.8" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.8.tgz", + "integrity": "sha512-E/bJ7sQAb4pu9nbeJhbULU3WnqWrswte4N9Js/oHt7aHB746S8/XBqKlcbrqIgnD3095XluovNEZuu5ONT230g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.8" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.8.tgz", + "integrity": "sha512-DfzhOBpmvNu5P/KSe4NNQaOnvNliTdcf0qrh/4EReErF/XUQXYkd0vZl/OiJCm/qjEEo8DWRstliw2/JNS84dA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.57.8", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.8.tgz", + "integrity": "sha512-L+eqKaWOHLDaiMv1dh/EWQ4hA+o6xAhWSumTo3Teg7OM18jU/KE13/e8Mfal+eAZ/pSl4wIhKHcDiwapJzC8Wg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.8", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", + "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", + "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", + "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", + "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-rsa": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", + "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", + "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pfx": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", + "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", + "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", + "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", + "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.1.tgz", + "integrity": "sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.40", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz", + "integrity": "sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "license": "MIT", + "peer": true, + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/blockly": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/blockly/-/blockly-13.0.0.tgz", + "integrity": "sha512-A5sj35fOgVAaEGqgrZftcKv0LxFKOnAQ7BA9uAlXrEQAiJuaKer59QJzmjwhYXiJzrR4fZfF6CQ6gpRr7PIcaQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "jsdom": "^27.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.2.tgz", + "integrity": "sha512-lMskhnsW70yWHr4PhPeh2rvaIkLSaDpp+nmtbXBZaNKTXwxL73QOkW6HhbzqTImXjevn9TreGT4GACGBCGP9nQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", + "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.38", + "caniuse-lite": "^1.0.30001799", + "electron-to-chromium": "^1.5.376", + "node-releases": "^2.0.48", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "peer": true, + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", + "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@asamuzakjp/css-color": "^4.1.1", + "@csstools/css-syntax-patches-for-csstree": "^1.0.21", + "css-tree": "^3.1.0", + "lru-cache": "^11.2.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", + "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^15.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls/node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT", + "peer": true + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.381", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.381.tgz", + "integrity": "sha512-n9Wa6yB+vDsGuA8AKbl/0z7HbvWqt5jxIdvr1IUicd0ryPrk7/xzwqLv8D9AbbvZ6avVNtXYLTfmgFHkwkyelg==", + "dev": true, + "license": "ISC" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz", + "integrity": "sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.2.0.tgz", + "integrity": "sha512-3lGxdTXCLfe1MYfTz1y2ksAAUM4NAOP6rPEjxGJVKO7TZ5+tvHCaQWGpC4Y3IXvW3ece0Cz1cIP4FWBxOnGCTQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", + "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@exodus/bytes": "^1.6.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/html-encoding-sniffer/node_modules/@exodus/bytes": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", + "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.7", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz", + "integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", + "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.4.0.tgz", + "integrity": "sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-network-error": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", + "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT", + "peer": true + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jsdom": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", + "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@acemir/cssom": "^0.9.28", + "@asamuzakjp/dom-selector": "^6.7.6", + "@exodus/bytes": "^1.6.0", + "cssstyle": "^5.3.4", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^8.0.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/@exodus/bytes": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", + "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", + "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "license": "BlueOak-1.0.0", + "peer": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0", + "peer": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.57.8", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.8.tgz", + "integrity": "sha512-bApYhn8BLpFAnAQmFfEl/NPN+8qx5Ar3V4Qt3ek23mVwBEElzV7c6XoPkb/PCG8ZFpowCEpHcPwMFTwHS7tSMA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.8", + "@jsonjoy.com/fs-fsa": "4.57.8", + "@jsonjoy.com/fs-node": "4.57.8", + "@jsonjoy.com/fs-node-builtins": "4.57.8", + "@jsonjoy.com/fs-node-to-fsa": "4.57.8", + "@jsonjoy.com/fs-node-utils": "4.57.8", + "@jsonjoy.com/fs-print": "4.57.8", + "@jsonjoy.com/fs-snapshot": "4.57.8", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimizer-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", + "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "license": "MIT", + "peer": true, + "dependencies": { + "entities": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "peer": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", + "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", + "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT", + "peer": true + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/thingies": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tldts": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.5.tgz", + "integrity": "sha512-RfEzKWcq5fHUOFq7J3rl3Oz6ylKGtcHqUznzj4EcXsxLSIjJcvpbXAQtWGeJQ0xKnimR5e0Cn+cn9TssfMzm+g==", + "license": "MIT", + "peer": true, + "dependencies": { + "tldts-core": "^7.4.5" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.5.tgz", + "integrity": "sha512-pGrwzZDvPwKe+7NNUqAunb6rqTfynr0VOUhCMdqbu5xlvNiszsAJygRzwvpVycdzejlbpY+SWJOn+s75Og7FEA==", + "license": "MIT", + "peer": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "license": "MIT", + "peer": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "peer": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/watchpack": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=20" + } + }, + "node_modules/webpack": { + "version": "5.108.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.2.tgz", + "integrity": "sha512-sUWBWPJwWH+QHUObS4lfNaQ368Tj8NaHDBsRJcU/NmQpeOqxV5iQUT2c5nvDWi8WYR5ynF7az+PuMdc+oDLJOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.22.2", + "es-module-lexer": "^2.1.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "minimizer-webpack-plugin": "^5.6.1", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "watchpack": "^2.5.2", + "webpack-sources": "^3.5.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.5.tgz", + "integrity": "sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.25", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.8.1", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.22.1", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^5.5.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "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 + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT", + "peer": true + } + } +} diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/package.json b/packages/docs/docs/codelabs/context-menu-option/complete-code/package.json new file mode 100644 index 00000000000..615098ae09d --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/package.json @@ -0,0 +1,29 @@ +{ + "name": "context-menu-option-codelab", + "version": "1.0.0", + "description": "A sample app using Blockly", + "main": "index.js", + "private": true, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "webpack --mode production", + "start": "webpack serve --open --mode development" + }, + "keywords": [ + "blockly" + ], + "author": "", + "license": "Apache-2.0", + "devDependencies": { + "css-loader": "^6.7.1", + "html-webpack-plugin": "^5.5.0", + "source-map-loader": "^4.0.1", + "style-loader": "^3.3.1", + "webpack": "^5.93.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" + }, + "dependencies": { + "blockly": "^13.0.0" + } +} diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js new file mode 100644 index 00000000000..a84680bc6b2 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js @@ -0,0 +1,35 @@ +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as Blockly from 'blockly/core'; + +// Create a custom block called 'add_text' that adds +// text to the output div on the sample app. +// This is just an example and you should replace this with your +// own custom blocks. +const addText = { + type: 'add_text', + message0: 'Add text %1', + args0: [ + { + type: 'input_value', + name: 'TEXT', + check: 'String', + }, + ], + previousStatement: null, + nextStatement: null, + colour: 160, + tooltip: '', + helpUrl: '', +}; + +// Create the block definitions for the JSON-only blocks. +// This does not register their definitions with Blockly. +// This file has no side effects! +export const blocks = Blockly.common.createBlockDefinitionsFromJsonArray([ + addText, +]); diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js new file mode 100644 index 00000000000..0315d9504d6 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js @@ -0,0 +1,30 @@ +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import {Order} from 'blockly/javascript'; + +// Export all the code generators for our custom blocks, +// but don't register them with Blockly yet. +// This file has no side effects! +export const forBlock = Object.create(null); + +forBlock['add_text'] = function (block, generator) { + const text = generator.valueToCode(block, 'TEXT', Order.NONE) || "''"; + const addText = generator.provideFunction_( + 'addText', + `function ${generator.FUNCTION_NAME_PLACEHOLDER_}(text) { + + // Add text to the output area. + const outputDiv = document.getElementById('output'); + const textEl = document.createElement('p'); + textEl.innerText = text; + outputDiv.appendChild(textEl); +}`, + ); + // Generate the function call for this block. + const code = `${addText}(${text});\n`; + return code; +}; diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.css b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.css new file mode 100644 index 00000000000..f282700701f --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.css @@ -0,0 +1,40 @@ +body { + margin: 0; + max-width: 100vw; +} + +pre, +code { + overflow: auto; +} + +#pageContainer { + display: flex; + width: 100%; + max-width: 100vw; + height: 100vh; +} + +#blocklyDiv { + flex-basis: 100%; + height: 100%; + min-width: 600px; +} + +#outputPane { + display: flex; + flex-direction: column; + width: 400px; + flex: 0 0 400px; + overflow: auto; + margin: 1rem; +} + +#generatedCode { + height: 50%; + background-color: rgb(247, 240, 228); +} + +#output { + height: 50%; +} diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.html b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.html new file mode 100644 index 00000000000..36d8eeacd99 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.html @@ -0,0 +1,16 @@ + + + + + Blockly Sample App + + +
+
+
+
+
+
+
+ + diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/index.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js similarity index 58% rename from packages/docs/docs/codelabs/context-menu-option/complete-code/index.js rename to packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js index 8d192656bb2..8b2fba45f58 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/index.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js @@ -1,20 +1,73 @@ -'use strict'; +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ -let workspace = null; +import * as Blockly from 'blockly'; +import {blocks} from './blocks/text'; +import {forBlock} from './generators/javascript'; +import {javascriptGenerator} from 'blockly/javascript'; +import {save, load} from './serialization'; +import {toolbox} from './toolbox'; +import './index.css'; -function start() { - registerHelloWorldItem(); - registerHelpItem(); - registerDisplayItem(); - Blockly.ContextMenuRegistry.registry.unregister('workspaceDelete'); - registerSeparators(); +// Register the blocks and generator with Blockly +Blockly.common.defineBlocks(blocks); +Object.assign(javascriptGenerator.forBlock, forBlock); - Blockly.ContextMenuItems.registerCommentOptions(); - // Create main workspace. - workspace = Blockly.inject('blocklyDiv', { - toolbox: toolboxSimple, - }); -} +// Register context menu items +registerHelloWorldItem(); +registerHelpItem(); +registerDisplayItem(); +Blockly.ContextMenuRegistry.registry.unregister('workspaceDelete'); +registerSeparators(); +Blockly.ContextMenuItems.registerCommentOptions(); + +// Set up UI elements and inject Blockly +const codeDiv = document.getElementById('generatedCode').firstChild; +const outputDiv = document.getElementById('output'); +const blocklyDiv = document.getElementById('blocklyDiv'); +const ws = Blockly.inject(blocklyDiv, {toolbox}); + +// This function resets the code and output divs, shows the +// generated code from the workspace, and evals the code. +// In a real application, you probably shouldn't use `eval`. +const runCode = () => { + const code = javascriptGenerator.workspaceToCode(ws); + codeDiv.innerText = code; + + outputDiv.innerHTML = ''; + + eval(code); +}; + +// Load the initial state from storage and run the code. +load(ws); +runCode(); + +// Every time the workspace changes state, save the changes to storage. +ws.addChangeListener((e) => { + // UI events are things like scrolling, zooming, etc. + // No need to save after one of these. + if (e.isUiEvent) return; + save(ws); +}); + +// Whenever the workspace changes meaningfully, run the code again. +ws.addChangeListener((e) => { + // Don't run the code when the workspace finishes loading; we're + // already running it once when the application starts. + // Don't run the code during drags; we might have invalid state. + if ( + e.isUiEvent || + e.type == Blockly.Events.FINISHED_LOADING || + ws.isDragging() + ) { + return; + } + runCode(); +}); function registerHelloWorldItem() { const helloWorldItem = { @@ -38,7 +91,6 @@ function registerHelloWorldItem() { id: 'hello_world', weight: 100, }; - // Register. Blockly.ContextMenuRegistry.registry.register(helloWorldItem); } diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js new file mode 100644 index 00000000000..238dd24eefe --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js @@ -0,0 +1,33 @@ +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as Blockly from 'blockly/core'; + +// Use a unique storage key for this codelab +const storageKey = 'contextMenuWorkspace'; + +/** + * Saves the state of the workspace to browser's local storage. + * @param {Blockly.Workspace} workspace Blockly workspace to save. + */ +export const save = function (workspace) { + const data = Blockly.serialization.workspaces.save(workspace); + window.localStorage?.setItem(storageKey, JSON.stringify(data)); +}; + +/** + * Loads saved state from local storage into the given workspace. + * @param {Blockly.Workspace} workspace Blockly workspace to load into. + */ +export const load = function (workspace) { + const data = window.localStorage?.getItem(storageKey); + if (!data) return; + + // Don't emit events during loading. + Blockly.Events.disable(); + Blockly.serialization.workspaces.load(JSON.parse(data), workspace, false); + Blockly.Events.enable(); +}; diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js new file mode 100644 index 00000000000..1e1f8e6c931 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js @@ -0,0 +1,629 @@ +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/* +This toolbox contains nearly every single built-in block that Blockly offers, +in addition to the custom block 'add_text' this sample app adds. +You probably don't need every single block, and should consider either rewriting +your toolbox from scratch, or carefully choosing whether you need each block +listed here. +*/ + +export const toolbox = { + kind: 'categoryToolbox', + contents: [ + { + kind: 'category', + name: 'Logic', + categorystyle: 'logic_category', + contents: [ + { + kind: 'block', + type: 'controls_if', + }, + { + kind: 'block', + type: 'logic_compare', + }, + { + kind: 'block', + type: 'logic_operation', + }, + { + kind: 'block', + type: 'logic_negate', + }, + { + kind: 'block', + type: 'logic_boolean', + }, + { + kind: 'block', + type: 'logic_null', + }, + { + kind: 'block', + type: 'logic_ternary', + }, + ], + }, + { + kind: 'category', + name: 'Loops', + categorystyle: 'loop_category', + contents: [ + { + kind: 'block', + type: 'controls_repeat_ext', + inputs: { + TIMES: { + shadow: { + type: 'math_number', + fields: { + NUM: 10, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'controls_whileUntil', + }, + { + kind: 'block', + type: 'controls_for', + inputs: { + FROM: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + TO: { + shadow: { + type: 'math_number', + fields: { + NUM: 10, + }, + }, + }, + BY: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'controls_forEach', + }, + { + kind: 'block', + type: 'controls_flow_statements', + }, + ], + }, + { + kind: 'category', + name: 'Math', + categorystyle: 'math_category', + contents: [ + { + kind: 'block', + type: 'math_number', + fields: { + NUM: 123, + }, + }, + { + kind: 'block', + type: 'math_arithmetic', + inputs: { + A: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + B: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_single', + inputs: { + NUM: { + shadow: { + type: 'math_number', + fields: { + NUM: 9, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_trig', + inputs: { + NUM: { + shadow: { + type: 'math_number', + fields: { + NUM: 45, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_constant', + }, + { + kind: 'block', + type: 'math_number_property', + inputs: { + NUMBER_TO_CHECK: { + shadow: { + type: 'math_number', + fields: { + NUM: 0, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_round', + fields: { + OP: 'ROUND', + }, + inputs: { + NUM: { + shadow: { + type: 'math_number', + fields: { + NUM: 3.1, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_on_list', + fields: { + OP: 'SUM', + }, + }, + { + kind: 'block', + type: 'math_modulo', + inputs: { + DIVIDEND: { + shadow: { + type: 'math_number', + fields: { + NUM: 64, + }, + }, + }, + DIVISOR: { + shadow: { + type: 'math_number', + fields: { + NUM: 10, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_constrain', + inputs: { + VALUE: { + shadow: { + type: 'math_number', + fields: { + NUM: 50, + }, + }, + }, + LOW: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + HIGH: { + shadow: { + type: 'math_number', + fields: { + NUM: 100, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_random_int', + inputs: { + FROM: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + TO: { + shadow: { + type: 'math_number', + fields: { + NUM: 100, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'math_random_float', + }, + { + kind: 'block', + type: 'math_atan2', + inputs: { + X: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + Y: { + shadow: { + type: 'math_number', + fields: { + NUM: 1, + }, + }, + }, + }, + }, + ], + }, + { + kind: 'category', + name: 'Text', + categorystyle: 'text_category', + contents: [ + { + kind: 'block', + type: 'text', + }, + { + kind: 'block', + type: 'text_join', + }, + { + kind: 'block', + type: 'text_append', + inputs: { + TEXT: { + shadow: { + type: 'text', + fields: { + TEXT: '', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_length', + inputs: { + VALUE: { + shadow: { + type: 'text', + fields: { + TEXT: 'abc', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_isEmpty', + inputs: { + VALUE: { + shadow: { + type: 'text', + fields: { + TEXT: '', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_indexOf', + inputs: { + VALUE: { + block: { + type: 'variables_get', + }, + }, + FIND: { + shadow: { + type: 'text', + fields: { + TEXT: 'abc', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_charAt', + inputs: { + VALUE: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'text_getSubstring', + inputs: { + STRING: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'text_changeCase', + inputs: { + TEXT: { + shadow: { + type: 'text', + fields: { + TEXT: 'abc', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_trim', + inputs: { + TEXT: { + shadow: { + type: 'text', + fields: { + TEXT: 'abc', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'text_count', + inputs: { + SUB: { + shadow: { + type: 'text', + }, + }, + TEXT: { + shadow: { + type: 'text', + }, + }, + }, + }, + { + kind: 'block', + type: 'text_replace', + inputs: { + FROM: { + shadow: { + type: 'text', + }, + }, + TO: { + shadow: { + type: 'text', + }, + }, + TEXT: { + shadow: { + type: 'text', + }, + }, + }, + }, + { + kind: 'block', + type: 'text_reverse', + inputs: { + TEXT: { + shadow: { + type: 'text', + }, + }, + }, + }, + { + kind: 'block', + type: 'add_text', + inputs: { + TEXT: { + shadow: { + type: 'text', + fields: { + TEXT: 'abc', + }, + }, + }, + }, + }, + ], + }, + { + kind: 'category', + name: 'Lists', + categorystyle: 'list_category', + contents: [ + { + kind: 'block', + type: 'lists_create_with', + }, + { + kind: 'block', + type: 'lists_create_with', + }, + { + kind: 'block', + type: 'lists_repeat', + inputs: { + NUM: { + shadow: { + type: 'math_number', + fields: { + NUM: 5, + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_length', + }, + { + kind: 'block', + type: 'lists_isEmpty', + }, + { + kind: 'block', + type: 'lists_indexOf', + inputs: { + VALUE: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_getIndex', + inputs: { + VALUE: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_setIndex', + inputs: { + LIST: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_getSublist', + inputs: { + LIST: { + block: { + type: 'variables_get', + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_split', + inputs: { + DELIM: { + shadow: { + type: 'text', + fields: { + TEXT: ',', + }, + }, + }, + }, + }, + { + kind: 'block', + type: 'lists_sort', + }, + { + kind: 'block', + type: 'lists_reverse', + }, + ], + }, + { + kind: 'sep', + }, + { + kind: 'category', + name: 'Variables', + categorystyle: 'variable_category', + custom: 'VARIABLE', + }, + { + kind: 'category', + name: 'Functions', + categorystyle: 'procedure_category', + custom: 'PROCEDURE', + }, + ], +}; diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/webpack.config.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/webpack.config.js new file mode 100644 index 00000000000..1a095648fd7 --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/webpack.config.js @@ -0,0 +1,59 @@ +const path = require('path'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); + +// Base config that applies to either development or production mode. +const config = { + entry: './src/index.js', + output: { + // Compile the source files into a bundle. + filename: 'bundle.js', + path: path.resolve(__dirname, 'dist'), + clean: true, + }, + // Enable webpack-dev-server to get hot refresh of the app. + devServer: { + static: './build', + }, + module: { + rules: [ + { + // Load CSS files. They can be imported into JS files. + test: /\.css$/i, + use: ['style-loader', 'css-loader'], + }, + ], + }, + plugins: [ + // Generate the HTML index page based on our template. + // This will output the same index page with the bundle we + // created above added in a script tag. + new HtmlWebpackPlugin({ + template: 'src/index.html', + }), + ], +}; + +module.exports = (env, argv) => { + if (argv.mode === 'development') { + // Set the output path to the `build` directory + // so we don't clobber production builds. + config.output.path = path.resolve(__dirname, 'build'); + + // Generate source maps for our code for easier debugging. + // Not suitable for production builds. If you want source maps in + // production, choose a different one from https://webpack.js.org/configuration/devtool + config.devtool = 'eval-cheap-module-source-map'; + + // Include the source maps for Blockly for easier debugging Blockly code. + config.module.rules.push({ + test: /(blockly[/\\].*\.js)$/, + use: [require.resolve('source-map-loader')], + enforce: 'pre', + }); + + // Ignore spurious warnings from source-map-loader + // It can't find source maps for some Closure modules and that is expected + config.ignoreWarnings = [/Failed to parse source map.*blockly/]; + } + return config; +}; diff --git a/packages/docs/docs/codelabs/context-menu-option/display-text.mdx b/packages/docs/docs/codelabs/context-menu-option/display-text.mdx index 7d80adfd313..710c92a86b4 100644 --- a/packages/docs/docs/codelabs/context-menu-option/display-text.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/display-text.mdx @@ -2,6 +2,8 @@ description: How to set the display text of a context menu item. --- +import Image from '@site/src/components/Image'; + # Customizing context menus ## 8. Display text @@ -37,9 +39,16 @@ function registerDisplayItem() { } ``` -As usual, remember to call `registerDisplayItem()` from your `start` function. +As usual, remember to call `registerDisplayItem()` in `src/index.js`, before `Blockly.inject`. ### Test it -- Reload the workspace and open context menus on various blocks. +- Refresh the running page and open context menus on various blocks. - The last context menu option's text should vary based on the block type. + +A controls-if block with an open context menu which has "Controls block" as the last item. \ No newline at end of file diff --git a/packages/docs/docs/codelabs/context-menu-option/precondition-blockly-state.mdx b/packages/docs/docs/codelabs/context-menu-option/precondition-blockly-state.mdx index f08bb07bbc5..4e64059bd4c 100644 --- a/packages/docs/docs/codelabs/context-menu-option/precondition-blockly-state.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/precondition-blockly-state.mdx @@ -2,11 +2,13 @@ description: How to include a context menu item based on Blockly's state. --- +import Image from '@site/src/components/Image'; + # Customizing context menus ## 6. Precondition: Blockly state -Disabling your context menu options half of the time is not useful, but you may want to show or hide an option based on what the user is doing. For example, let's show a **Help** option in the context menu if the user doesn't have any blocks on the workspace. Add this code in `index.js`: +Disabling your context menu options half of the time is not useful, but you may want to show or hide an option based on what the user is doing. For example, let's show a **Help** option in the context menu if the user doesn't have any blocks on the workspace. Add this code in `src/index.js`: ```js function registerHelpItem() { @@ -27,9 +29,24 @@ function registerHelpItem() { } ``` -Don't forget to call `registerHelpItem` from your `start` function. +Don't forget to call `registerHelpItem()` in `src/index.js`, before `Blockly.inject`. ### Test it -- Reload your page and open a context menu on the workspace. You should see an option labeled "Help! There are no blocks". +- Refresh the running page and open a context menu on the workspace. You should see an option labeled "Help! There are no blocks". + +A context menu, where the last item is "Help! There are no blocks". + - Add a block to the workspace and open a context menu on the workspace again. The **Help** option should be gone. + +A block on the workspace, and a context menu open beside it without the "Help" message. \ No newline at end of file diff --git a/packages/docs/docs/codelabs/context-menu-option/precondition-external-state.mdx b/packages/docs/docs/codelabs/context-menu-option/precondition-external-state.mdx index ba6f998f561..1260da061c7 100644 --- a/packages/docs/docs/codelabs/context-menu-option/precondition-external-state.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/precondition-external-state.mdx @@ -2,6 +2,8 @@ description: How to include a context menu item based on an external condition. --- +import Image from '@site/src/components/Image'; + # Customizing context menus ## 5. Precondition: External state @@ -26,6 +28,10 @@ Use of the `preconditionFn` is not limited to checking the type of the Blockly c ### Test it -Reload your workspace, check your watch, and open a context menu on the workspace to confirm the timing. The option will always be in the menu, but will sometimes be greyed out. +Refresh the running page, check your watch, and open a context menu on the workspace to confirm the timing. The option will always be in the menu, but will sometimes be greyed out. -![A context menu. The last option says "Hello World" but the text is grey, indicating that it cannot be selected.](../../../static/images/codelabs/context-menu-option/hello_world_grey.png) +A context menu. The last option says "Hello World" but the text is grey, indicating that it cannot be selected. diff --git a/packages/docs/docs/codelabs/context-menu-option/precondition-node-type.mdx b/packages/docs/docs/codelabs/context-menu-option/precondition-node-type.mdx index 53245713521..16b3324dba3 100644 --- a/packages/docs/docs/codelabs/context-menu-option/precondition-node-type.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/precondition-node-type.mdx @@ -2,6 +2,8 @@ description: How to include a context menu item based on the node type. --- +import Image from '@site/src/components/Image'; + # Customizing context menus ## 4 . Precondition: Node type @@ -42,4 +44,8 @@ Notice that the code tests for where context menus are allowed, rather than wher Open a context menu on the workspace, a block, and a comment. You should see a "Hello World" option on the workspace and block context menus, but not on the comment context menu. -![An if block with a context menu with five options. The last option says "Hello World".](../../../static/images/codelabs/context-menu-option/hello_world_block.png) +An if block with a context menu with five options. The last option says "Hello World". diff --git a/packages/docs/docs/codelabs/context-menu-option/separators.mdx b/packages/docs/docs/codelabs/context-menu-option/separators.mdx index 8dd3ea959e1..c66c9d11a2f 100644 --- a/packages/docs/docs/codelabs/context-menu-option/separators.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/separators.mdx @@ -2,6 +2,8 @@ description: How to add a separator to a context menu. --- +import Image from '@site/src/components/Image'; + # Customizing context menus ## 10. Separators @@ -34,8 +36,15 @@ function registerSeparators() { } ``` -As usual, remember to call `registerSeparators()` from your `start` function. +As usual, remember to call `registerSeparators()` in `src/index.js`, before `Blockly.inject`. ### Test it Open a context menu on the workspace and a block and check that the separator line is there. + +A context menu with a separator. \ No newline at end of file diff --git a/packages/docs/docs/codelabs/context-menu-option/setup.mdx b/packages/docs/docs/codelabs/context-menu-option/setup.mdx index be96bba57f5..b747d045f9f 100644 --- a/packages/docs/docs/codelabs/context-menu-option/setup.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/setup.mdx @@ -8,34 +8,32 @@ import Image from '@site/src/components/Image'; ## 2. Setup -### Download the sample code +### Create the application -You can get the sample code for this code by either downloading the zip here: +Use the [`npx @blockly/create-package app`](https://www.npmjs.com/package/@blockly/create-package) command to create a standalone application that contains a sample setup of Blockly, including custom blocks and a display of the generated code and output. -[Download zip](https://github.com/RaspberryPiFoundation/blockly/archive/main.zip) +1. Run `npx @blockly/create-package app context-menu-option-codelab` in your terminal. This will create a Blockly application in the folder `context-menu-option-codelab`. +1. Use `cd` to move into the new directory: `cd context-menu-option-codelab`. +1. Run `npm start` to start the server and run the sample application. +1. The sample app will automatically run in the browser window that opens. -or by cloning this git repo: +The local address in the address bar of your browser starting with `http://localhost:` shows where your app is. If you accidentally close this window or tab, you can re-open this local address to view the app as long as `npm start` is still running. -```bash -git clone https://github.com/RaspberryPiFoundation/blockly.git -``` +The complete code used in this codelab can be viewed in the `blockly` repository under [packages/docs/docs/codelabs/context-menu-option/complete-code](https://github.com/RaspberryPiFoundation/blockly/tree/main/packages/docs/docs/codelabs/context-menu-option/complete-code). -If you downloaded the source as a zip, unpacking it should give you a root folder named `blockly-main`. +### Change the storage key -The relevant files are in `packages/docs/docs/codelabs/context-menu-option`. There are two versions of the app: +Before setting up the rest of the application, change the storage key used for this codelab application. This will ensure that the workspace is saved in its own storage, separate from the regular sample app, so that it doesn't interfere with other demos. -- `starter-code/`: The starter code that you'll build upon in this codelab. -- `complete-code/`: The code after completing the codelab, in case you get lost or want to compare to your version. +In `serialization.js`, change the value of `storageKey` to some unique string. `contextMenuWorkspace` will work: -Each folder contains: +```js +// Use a unique storage key for this codelab +const storageKey = 'contextMenuWorkspace'; +``` -- `index.js` - The codelab's logic. To start, it just injects a simple workspace. -- `index.html` - A web page containing a simple blockly workspace. +### Explore the starter code -To run the code, simple open `starter-code/index.html` in a browser. You should see a Blockly workspace with an always-open flyout. +Take a moment to explore the code you just created in the `context-menu-option-codelab` folder. If you'd like a more in-depth explanation of all of the code in the sample app, you can go through the [getting started codelab](/codelabs/getting-started/codelab-overview) which goes through creating this sample app from scratch. -A web page with the text "Context Menu Codelab" and a simple Blockly workspace. +For a briefer outline of the code, visit the [sample app overview](/guides/get-started/sample-app-overview/) page for an overview of the included files and tooling. diff --git a/packages/docs/docs/codelabs/context-menu-option/starter-code/index.html b/packages/docs/docs/codelabs/context-menu-option/starter-code/index.html deleted file mode 100644 index c0821a8ec2e..00000000000 --- a/packages/docs/docs/codelabs/context-menu-option/starter-code/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Context Menu Codelab - - - - - - - - -

Context Menu Codelab

-
- - diff --git a/packages/docs/docs/codelabs/context-menu-option/starter-code/index.js b/packages/docs/docs/codelabs/context-menu-option/starter-code/index.js deleted file mode 100644 index bf58b8165ec..00000000000 --- a/packages/docs/docs/codelabs/context-menu-option/starter-code/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -let workspace = null; - -function start() { - Blockly.ContextMenuItems.registerCommentOptions(); - // Create main workspace. - workspace = Blockly.inject('blocklyDiv', { - toolbox: toolboxSimple, - }); -} diff --git a/packages/docs/docs/codelabs/context-menu-option/summary.mdx b/packages/docs/docs/codelabs/context-menu-option/summary.mdx index 1389ad07e9b..72f88b0bca7 100644 --- a/packages/docs/docs/codelabs/context-menu-option/summary.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/summary.mdx @@ -9,6 +9,8 @@ description: Summary of the "Customizing context menus" codelab. In this codelab you have learned how to create and modify context menu options. You have learned about scope, preconditions, callbacks, and display text. +You can find the code for the [completed context menu codelab](https://github.com/RaspberryPiFoundation/blockly/tree/main/packages/docs/docs/codelabs/context-menu-option/complete-code) on GitHub. + ### Additional information - [Context menu documentation](/guides/configure/context-menus) diff --git a/packages/docs/static/images/codelabs/context-menu-option/blockly_state_noblocks.png b/packages/docs/static/images/codelabs/context-menu-option/blockly_state_noblocks.png new file mode 100644 index 0000000000000000000000000000000000000000..9676854c976222fcc2155b8803b8e7dc90a8bbda GIT binary patch literal 44296 zcmeFYgjLF&-b4Fb|72%=I_ha=q`64Kobhi>jh z{d~UPd+%RxpZnuEo4sf6Ju_?8tXVVbop*<;smS6!qq$Hi%J4Y*9drKrFx$s0C3|-A`k}LxadNfQa355-1{5V1h z1x$|j$DB{;vG5h5uwJ&uu-69IkrEVbJPivdd`1_E>k4L%sOKVi{n6Fw%}!4`zC^Om zs@IW^^Lpc5#>IMu^ZJ|!DpGwUSK?Z38q$jVp(RiAZBgFJW0FmBI+TZ>P`#Q~uvaux zUcVN6ZwbHg^6>p3kC)Y#6xxvR3ll75GbB=@*&^VLr}yrpcUCIfU0JuxIHwv~SC zRmDUoN1HJ323^|=g^X`4#R?fEEu1tc*M3}N6;xETp0qt*p}`3V;S{l^5#V&cwdg=XaJD@bLAX}#G;eqWaT zlIslH52(g|e7Ej?W%iM$wNA7rmEcR;7Jg%5o~+cXB3z`1$l$i9fu+3Wc1>6IA)Szd`v$H7A5(m$(QKzar@n7O$Wo}Q)M4JiqHa*`dkL)_K|QAMSS-oI6%nOq0gf$u5$>rPJ z853s52TmDvbZ$`lmtuw)Pkrj7(rAeb4v9+p)W$-=jbN@g-_2ZMJ}GRh1p zL*g?LPbP;$7lI!c27@E-1$r$m9&BM0@(px|hAf|(sX~=Dm_T%f%q|2DDx{>{G9E(Y zE-!CB&%)sp&#zL)yYAeDIR$!??c!EYjp z^3Q_mYCU8TwCz^Ma=0S6;{?Q(C5;2IJ>$o5-p;a~GJ}IRPp@80gha#I8d@Kj6qGGb z=oJy$p|I~f8H=hi4^4zxw2M+0I<;1`<6I`7y2_NMa;a*k%Ky~N)QlaG)iQ3dacelV zTp9Q<5Esr@ai~Xi-icoZCG=kwOsYtzphW7qi`_aped>A87{EQ<2vPJ!ZMxcMYHAuZ zhX4AEbiMIN94oW|!f$_Wr;fVNNALei`_mF+H5jRp%H{lY6V=@0k-Z6Mpa~a>ERK)) z>LpVcYPSi+u^4uVGkFU7nt%Hzw2%IYCe&Zi44T~3P)`GHK4Db`EH98kXbjPGn!#|- znr7!;7)F73m;oQ~DOx0s35ePV%VaYM_?H6F7#8Jl;-m8DQ^U~I>5e`y%aNB;e3OFF zS9Qg9(XR-;BiWR4U^t7TSy5dPjmX*h`si(te$KKwf6vR-UxF@A)4~U&u!qcCg!KKj zKYRU>ITrM!sgH2W865J(F?mZy#Me&6&EL_^Q1+M|HNh17hei=qVaHY($$18s`5RrX z(?_gJI2pkrO~h0Ioy#cREDcD;Av#Mhpp3qRjZyQRR|kV=6wMz@R1cUAFy(`kTG(G< zFY*3sH8kb^-ldoi{X?5pGO;OHJG?bZ$r`bjLj^JlTUAlLWcldSCwSTUBSsqk_f$dcf zRnNnoM+(@hDEaA!{@*8EMp)%)B18?9#Jx7!Gr&w4}GHf)vNQ}6UScF}fec8ecKwyFmf z(2weVRnH&#>LkC6p82Xe&v|2HBl!5;CGsV@XDN&Hh(bbP_qgFFy?hV3qZ+G55=pxN z?L6(QG2Y@?ee0^Mw+WTSm8ez0Q|(jJRjM}P7A82(50dFk*iCm#GR$1I@m-5tp~92G zmcm}H!Y-FCRjzMbh+M3X41{QX*p!V=+spVv$wO zDs$1J(&j7-aE^t|Y)s*RFbKeyETv1n1^G=D-?+kF3X~S4uf8Ah9n^}1~ zC{j4mAnCCp%ra@!vv(xPv8bq+u(+Y>ZMo;$V(b12&dQRC26M>@L{+M-CfK<>$)*?9 zUp8yuHT0;;xvICku)NkJcB*zVa#vu|J%%yrh>Vq7M|7_yum-g=rzvM(v4L@fXQr&H ztQ*k|jYP05>qLu--c}?OYL<*VDwrm!WDQbzlJ<*tQPo<++TS_xC^5V;{3Q{oihb7k zaQmF}O8Mk!$g@`0^6lypa7p&e%&djOiG%1K$)4>VxBA_O6-8| zjOcRr*sG;%)x!A{VstKY(R+<|*|_NWZrwQ+-2}NAIUkwYf65=>pXh%U&=Q!G|%1Bw%#AaEoxpC)3XK`39wIfk! zn4{t+);yL`mO6PHIm66}#OGqRzQY$5ffi2hoFB3=(_30A+OA3Kyf~0j&Se9PlGLX>nsfBiJ$r;^wdM$Op0JMMWJ#Y=i{(!!TJw=kn#cniF{{*Vu zZ??6R(cVZRL|n{yX(zuFpJeuVNxB`c5$pC#iPUE)?RPf@rH<9!p?<8lCFYxL`IJe% zoWx04&zzq=F33ce9C!yLWi2l zNk``!lFuBL26K+Yj`d|6Py_QSE!PXTrPF}jSa+r!!5h@8(5cJ^BE4?DQ_PdUwTLvG z%g5?rZq#I81(xh2-BTUn7_sHgnnBBPFWCj1|FQLi3fW!n7!{ZwEw`M}(eS0{OUc^G+JIzE=#+k){-fKS^P>{&k+JWsHK96GIW%lyypYNR zn>(J(vbp8dPFk3`hiUxd!Z&sX`*pSP^FtNNYa49z8vj^AjU zzFQcyEIl^fz3g2rh24I=^(s9w@`Gw#YTtqTMNVr+_KD`jFSxfEH_h8wr&T$!TgB$d zyC}&%99mvC7b89RD4ULhbUTBN#6gbq03@JM@O2O1 zR1a}?rhe}ug7hQc^7u7Ut_@O~2a?NDTb!_W5+%s}DK1WS4mx1^K&0Jnm4F?wq*#UKVA4o@7>dIRwD_fe3LLT!=I{=K6DobUfW0LOivzh~6=5F`vBMFVK|Lbb)6`FEu6Q<$<%N`8!KX2WJ~c7l(;N8{h^OL{85c35kUH{y>)3U^)QG zAG3X}>!PcyBy8>o<}|f%G_&M{f+6?iAc3I5z$Mty#gq;Tws&wAhKe%$c|#buzQ4`I zK=oNym4Vbo`v$oZJjz59#RWK<_N9gf*mO{$&SJq6{`JE)ZcZE_Zi# zPIo>|$9L9TJVHW3T->}|yu2L18ywCa4lbrp4hLt(zlHp#94Sj@^LMro7h6XMy8CiX z%^Y1_L>UUpXzIw*OO;gY&;;0S)B3f5OGX$<6iOvVp9i`@6zwwoprZJtT z_rre~L0tDO|6iK;tL8s<0X>U71abYh&%_?S|DfLjbR(6mlew{A2K`e@5$fu z{k6i+g#7CvBqRwWd8wDLp~yR#?q8X^4MObR4G67IcJtL1ehL%1F_n;d$%7ri@SrUW z%NeOT2$}IKW^Mo$(HfPTRYskN(0aylRrc-fxNm{OS-8)@uGrbl!dwjT<+nZ0?ZWSS ze5OogbVSGm_OAq688y4x?2Q`R}gGH2l)a z`&;aCgam8uRQJzJ33h3S0hUeSa;AmudIV6+eMzNg`r&U2muK_ls}}f)h8$vDosl0h z{wa_SWf$LuC3lv_j`fX5!Lw!#!qK`LL<4l1x21fN$1iJ48W0lr(Zx!zwxqf{%!v)N zO=TyC=K4@$J7hiSxVm;5sEjm`GLgIiA;077>E!URO%-^(s>0p?c>Q=9mQ@{f7RNSCTG~l| zy58Pd$?;F*GCEI&TirR~D|^48`175Vc527zTkT#LngEGdBY2yA*|kww=2{2_Ca-h` z8z}y#D?;9rwn1lMH}NOXbQiF3T~>8}gZ7vP#GL+kn&lI0(DBNZ*K``Tmy8ge=KXIb zi7d4#u_Q#zZUwXLR86McmACITPh+D^{kMg*5BesJV3fC4x(yyjETW0|;(Oyl&9KO& zs+<36qZX|Wsbd?~&%5uq)D~{b%YHOa1)3}jVTD0ZFz0I^!92QJng8cm<)DAz{JbeQT0#k+O%lauZ7RMy^G=ybMS%l2|Pj=uiAd?opR?Djoo8(Q5&`?meGF<)Hfb6bt4 zT`Vwrq5&AkBZGL1vHJGuTe59s^l_=d$j`;;VV?dka;oyht=0|Bp|<4aetdSWb$Ytg zf3@+I%Reb#4eeJDk5StD@?!?OZN%_E>~dM%1mSmI(b#vL0g(^}PmkOlu`9kZORv+N z$<6sFa=w<8?u4Vm9H0Lfs}4%3QT;>JY%$ze8c~Hid>yVI2v|7B6@ey9Z;CecgkgL9 zh%-+O(w|_ldDo{|m5*gV_wMp|)3iID*>r34n}@Ak_P@48VfmAC83m;aIEGjcX65JF znNe~nyMS%Y>=bz&U)lBMV!y>VB+^rXoj9~5X`>nKmRt5l4FC51XP9KpDC4EZs`YO? zjm^udz(fWHX%lHpQ}L0AZA5z&Gkh%C-l&+Pzfjub=Caauq~*I-;Zo&)M^GXo)AF%E-sjwgwQd|lGYqPvJTDe4XWM=!8Ri+EkS8 zq^eUF8oV!f?WZc)`hTcO{l~P`EKvlb3RJTnX?{_%#ecJ{0m~;fICA;P$yM$_m_@E^Ud^)&KDE;M|1s&&kS4@(Cnef=2Lv3x0JIyMlXMek zH|6`$))#S>1;yzTCTZ}AcEiAo*)hF zuYEB%Rufmhp#ZUSc4Yhf*HB}S0wM*r+mpciiwrf;QkcbTot^<DvOs59v2OEU>v+X&3kX zIq?5Yrt^cvzS?N?@wyo(&bU-^4-KD+(N<5{>_vG-l`{Y6VflBL}eUTyc1b$4^uO!jah^0VgO z%Fq6&QB4*F(_v?}BOubgt&s%eJyrjgcZylfqZ!a>(jjD;LqGHHq^rh^Vg%_Q zDgGF0_o_F(vEJ)UJ3RZ4;a{(S3C`#5ZstR}HTZ3Nq{eIF!9oX|mRJr3t6vlDXHLM_ zRU`ro5GWd_f0H4B@6p@^d(?I4{|e-ULO2sa`l0-9W!zL~Oz>9qn3{)wwBjE@^kG4} z?)^v6zsW^9x@PK_ccWVO6Z?D2*BS58s)JB2cLr~FAXlfm$2Z@_uPVf`o!1AzpYIqLddx=nBmMHE77Xa!XjP)D&-#n$Ik#Uy$2$InX}W`bXAJedvz0AKTHeU33;dbJi@2 zuDE<*eDq?`+IP)*n8e0=2k`fc(+#`REnGLlTc)8 zK{F=enH5{6s_aHwZ>d30?i1hTy|vzCu7YUSfz9Lv-Z}5BQMP!wXyfV0dN21ewI4U; z^&c0K)KG2+4Qnjn-%{af7TLF(*)+G8rFS)p+-6tg*$DDQmd3KI*}K9pwrI;*u7jM+IV@#N>KLYx9o@e zbw?_ns=7q#?#HQp=txrjU8ac<-(|!8Rl|;8OL%hB_+^3LWdSnJ2?_R|43^bGwpTrL89?RqOHy`pzT(?>n6OQd;c^TGeS|KKdzi4R1EkH7o~;vNK*gxDXA#T z0}39>R_TepqyA~f)?nLDE40h?QCCT}c`tSN6YBcN_Vg=l;=tN(*_t_W1TWd(ipiYH zqK4u^$crnI#D3SEei>_X*en8B*&h$i{O-;c6T~(XC`u0Rb=A`8Gt+5#M^SVzY*ikJJx@l`Ct*8M$zd z6ruCu?58zgKdmIf8A65J?E9&$Ub%PgzQqq3)Pj9F-MwYcyR)ymU2XuEGU;-odht;e z%kQe%FMTie4l#tyqGDG+TeS+(xa1A(F{nZVi%S?(eUaQ3<+z%~44ZDM-D zqBx9SkP}-LL!WhK0Ya{iwiBDiyn&^~*EhfLZq!IvHc=cf6QEI(Wl{$eF_Rs}H@}T7*S&kI zy(4#NcnHIPkMweScUrSbo#PS-vLALX!5o$k?X3Qt9L*-NO=G8 zF0l9|<3+iD#MfecxF*?}NG%AVoAuk7C=0o{nUJHnw$)D}twetFttL*j5=U8b`j=qk zqkhS&UlNu0%2Jd=a+Sj_BX+iPRWTyX$}E^GPGnX4B8^8Pd}Wv6+2`RQ%SI5Q!Lr2^ z@by*WofpY%dc$VA{h1uETl((ZXYtF=_I`EoeE|alM*&yT#>di=w-zBTR7IvD~1Sog6LTrQ!51+ykcWcNaJ0Uufds$;2|gNZ(%Ck zdme-cNLO-q6ttq04%l99$L1`z*kM$h$1cIk?t91iFl(<9m48qyb@cbKAvF+;kUc^% zXM;nbVM(k0%vq*yisl1EIK{jX_x7?#d%H+G>~IShWFuDgscm*riNMu*>p_FvlAcw; zv=@A5;ikOKnD#RE?mYIOjP|O`Hl?i<_kM;=FS+Vga;n?JqP;b@Pl`1$@x@7YcL#=~ zpYZHmsNZ?0vY&JqE$BztGT55}3Gn?J2sW&6l7(nb6;vk8;RvR0tG&t9 zC+0jpsH3KBH#Du(qyfFE+c#s5H`);mnZ~!K!^i>=%7O}Yzm=}T@<^Mdk#>{);t>-E zvw&N)ZCLX2JHYV6Zvbq9dv+K7OviUsr)At{c0B*egSgwbh3nDaDXDieDVh}dGAecU zkx+I*$uY+uY>XgIb+^~sl!m0%G+Op1?X0yeuU64J`klG^k&2yYiocj%6*a8+a2|{+ zCKZFIt)IWDpHI*1eQ4}<5zloI-&ec(f?@6~5pXIv7|3n7ajhMfikcqA@wqWiuOhVq zp9o<&$ba1QRkorLXzRek@m^x}HQTyCJfj3W{#~L^=%`AcmtPfWGxMBfJo{SB;0mL#W0kO{u>_k+Aheg!Q%0|3{ZBu@>J)NEI38@mno!ilzU>40G zjkZIy+QzdZ9c~&A1i3Ri@=ey4}gF8FEaev-e2U+2{(SAAhz`3)`CXzjV^0r zsG<&U7OWbWU9S3*w!LpkXpMiqO@%ZAI2Q_c{oa}@4M@)Sb6k4ND{GA*AnbfqAfU|U zu_$8=3XxaACSl*$2&r~S9c@qHoSm=aB>$Wx?$GZ{0r{k`y=Cj zSa^g~9{(?mj8(GtALNe=2^nh-iS8NJzv$+}!WPZ{$@c$!l_Viu{K}DB>`xcqFi#V7 zGFx!$`N(Fv7=UitJ)Fxfe@@-=Gy@S_iHqxMqg@&*&1RR zQP0OvZ4VU^Cfrr4Q^4Ik?_2JS9pOG&AH+La>$fAx+csCt0?AYEKVK-c5Tw0_sz$yj zE0Vuvb2QH+1)?G51$0t8x0WER&t}pej_OQkR)ByuM!0cagb9AbQgptpv~YWKwb+-+ z_c?2FbEF`&dd~BijvOEl(Lkn%z;}eG^IG3?99K!Mkn^K6AbflOBVB!-u7=O55A&IJ z5oU!|f4L-X?`PTAkYq07FDD}e_AQ|=CL8gleut{lqm6~JZ@ zrBCWFjNhdB!ZChNZQHZn_r??MvZ>*T8KUk;^E8aU8}=SMoKgg zDFJ>5mYV34k8#$|HK1xo`XPC;f>uw>JrcgiCG-T8n#sMf zX&8KI)oZ^#dDru7*1f`2`vE;%(EMZi2}L}o`EG^vpj8zw3lJzh0d(!~NZk( z1LVPb!fs&6<$EARTeiA(R6J{iSiveObx8|uH~-SkLF8{rzaSlBoe;ti{kkuR*>_K= zZv)wk1|wu#UNtEk$!v0y5({eI2kl7N1;COum->xtaoVz%E`98=_UQ}5&h2PCZJsLc zZm(B7V0KjySX*GFa4`H^BfH~T@Cbgj0L=#Z!W4j}ZStIg0W|bYfzy)cfr~ZiT^Gg) z+sXGy-M+}O%5)B9c>hMFM-fqTepOGuwV5K}%=yd;pV3Jf~zD>DjF*qe2}WR zT`U&WOr2GkuBOm0beXhDSbs&;k$JP_A!=4JdE%q}&3LglhE(hHyq^g-#tZS1LXsG` zpP@Xq1{dm&;ot zh(T~a(QG+7DQm!GKIxIOdRXUpaDCf!=?@@G?ec8iWvZ#$yi&?8pnNC^Cn$&Kck`g7 zVsrs}j&t&ZpS?ClziDpnSrI+9kH=v3Y_<%*pm{EHS^4!Sit|YwQiXP@d0@x8tzGhz`Hua8ieJ9y-ZvWYK#61Kls4r=e!g@l_A z~Pa@R-%N6zCne`RDaO(K9;tKI`f!|$pj-v z{rU_$$mu-71k5XB&MvMc?`y&E%Mm3rYB4F1bc>+I0bKW-%V>+bra1M9*2;}%^Q!k8 zb_^>q56RnBX+(+>JG`OU)G#c$qfub#nO71o!`^!H2ToU$Qii>w*;rR#x_Vu|(2+$W zK)Jua=#e(WYk?D#&cv@Da65Aj9fG-1Uri1IQ!UrE4DT|01^Xyqn-+flJ5&%X?)FO2 z!zZERC6)Fx1AzImup`tW!^w#oJfN1wwAp5>KdYQZbI%E0b=dTez>a`nw0=@jHZO3# z?6m$JlM@$zi%n|0D4l$P#O;G3AVy_6R*Ce!sKRNxKt<+yrwrIwM9~Yq$tzRI<(11( zpL-{?`DD>xw#}E{dWK>^QS(ab(;l#Y3yG$F6?njV-R4#1A!_@4Emdh#dK|mt#V-yO zgG;RRpsJtrRHYFMmqvnz?X~@*TCUtcUHPLi3-LOLe`+Adf zOd?17+vdZ7?N))K58;E20cr*5Vpcg|f-c7QKU{@FB7aRn-|CseJv@%C$aJjs(245n z&N~7&(FOLxE6$;j0U^&xLQ4Y{Iui0ssQs))O7bJ_TbDmvvT(?aG-E}V@O;0B9%|K~ zSn#`F3ItkElHxuJ*bN?ynI4WkxjeeI-qrUg_Fd8{+_P5HQ6%_^>i@k@BP22U8_Y8_ z`2k8R==8;tmZ>XPkyrD{m5`OTW%Eh>yOm@iZo|;hyB*>0HTS3+@9slR`PJFy-U0m` z&NsM&7t&n4e0K2|m;|iswAl-pBKtqfv-Ji%1oB7~x!|`)uKg{1=|hcyq>b20bC&nr ziAg2-Y|fw(D`rf0ZSr7Ht1kNoe+BsiX-T>M^K)wgM{*}yON5=zE%lu+HfMA=H2(FB zTJp+LiKY1Blhc6BvBi!hvd+f7jWzHq@?7kr>d5bodPG?z>>cr&OC1%KhP{U|6YKRx5`w9iqjB%E1qGAlHDc;Wp45Y2h-^%LyG|bw zg+WS=SM1STwm`_z(0#N-|ES{=0tJ{6+0niq+r4aH#cmiSs&h;e$m;F0oD2D}p5}ZV zOC6QCFw7`3Mdm7Vo#o*9X~7sI|MZsE_~nnDy(FNr=d+lc-IwIe_NDUrV8z*LY1?9k zI*IxIDp!HDuss^W0lf_>QI`?1I9lyY za4j~hRY?GE=S53dZ(8}LyRt#OWYFZ1r9D(A1?>*ntjyUqrMq<@P2j4Vtm{CUt;!3Q z4gJ-o{biwJuIA*B*p+;QZn55HKY0Cx;Sxv@BF;-mQkgyDPEj`5uqyhWe7Se|fZn zMO*Um7p6@mMGBPS8tdKxNdW|X-AX16F9ny8L``_9gXzlRSaI9OzZ-P^`h*`A#>yu? z+Ww7YY6yVj|9SdyaRJ;2TX_NdS0J9!QZVaK#w=npH_;61AFTsz>Z#s>-JbM5Pn`sPF@1L z(kKFtfjGIrzEQg)sR?-85{QA9W)*OFPYX#Aad*&d@b*aIwN%)<(0aBEgbX2o6a^m4 z`;-C>ef`yL5ly=IO{PEZBNmS%E9k|cr6dW&47!%YVUQ%|jEnIMM&Ha)CIM#?J6{NV zzW_4_aH_82iAPj|AFxhD_Ujl+;nXRpg6lv~0#4?b%wf3SDNF%&55LZ66-RyR;xvSR zSaTjL(gXNI;LiZ!#=uR2W`hF+p!~lKCVKFVvV=0yo~GSne;z>m`zH>*xpb9`f(ov! z{^E@^u*N3k#G&N3x53n`>VeZcFGD|THotfcjeK5G2h_j}Z*ZwJB1QosJ{(|E)~4%G zy_|Nb{&+d5IYo_#+s>1nm-b=yO_YQ)@$W~ZyL5{uGlZO5fNi~2V3`TlsmV*f0Cp(# zl6geNi}Z++INzjY>Qwaz_D%>IBLYPHZm)mXj(ky|kp5qR@1v2)ll2>2#wL&blPr4Cn-|vyNGzVhvAuL#U1!SJp0#S*e`<|g2 z#T=m#(U^m!k^p}K^dOC=L}HQ4tk#0UA2r~Hc3Nw0f= z@itKW(Uynd_;s7KjO75l`~}huXn4i5>`kp(ux5b@x)d+}(<2T8Smnw4^B!iw+PtuA=3Wy!u8Q_@W7d)RaTCsf!c{?P( zr1$Bclf-iTG&Xr{;bN<4x*A-NBL$tu9#Md#=Irj1Q*c7@$)Y(Ybj{fZh|W-P74{TU zF)JmT@P-il7@|_UWP|;`3w1_nLPIPKL#v2n#RuaSPUVsnZU8{Ymi@Iw-_yO{X<8jn za?ETG3Ta#QZl{E)AP$jOlxm$Ad*h*Z0LKA$E}YbGshSg!dr--l?uy*L*h4rYI9Ipp zV727N0IxG^ZH-lb08qGWyJRYOzr2*flY17(ftw8%2$<~f1rwNd+&@^SxD^Lfix(zU=| z-Vd9h+}H2FEqL6Gw+WIYriYI^(<9RQppM}72;y(a(aEm_9ub!Y7l<4bSI?D?Xyypu zjl0G36LS-DnQk_`*d9$_H-IckGOIpI?s$1k1CApFU&JOGK}>tSU{>6L$VN0~o2aG)L9%mf!r%H6*VL;pVgHS*~) zU~VdV-s*4jkHHCFHfk!I%IkUthfi`l(VlcT^VB>bu&BBFns>x9w;)YFK{nfQ z>q^1}S4w$#U~V2yXkJT(&}@d;Sw3`7*J~?Ycc1sEp54h`{q{qt?i?8O?(ttrKMc1?JFvH+2#b=(1oOKw2AR~zS1r+v`wEJ7BGRc zrnD|}eiw>^PGAJW{Zpj#hzZU=NPu!G6Raz@@Rj7D%iGA^{(bn=eChaV^HH>Q zxPDDoRy~IP3iISo_HP@T5qX92;@j_{&_}R2XDdDSa~RfUUh7hc%}%Zurv_}-Hwenl z%awEfKF_EF?~4wTg}3AH6C^#4=nG_`0V&n2)o)yuSC)o*4B4&vclyMF3 zScv(nrvDg|e3j8K)B&r8zgr}zaS zVpl!+S=W>D@K>Xi#$*0DTCZo}m;6h2+9&YX)hg6vY* zcl$_G)0}D8&xk-46F-3%aU>}qGGUeszak`NuoDF^av?Vse|?3Dgg(F9;l$b}!5RMHHGJP$|#ZkLLdSdt$g+aadr%G=P%= z(EtibWQ1$QrJagu)a^w`V73!wCjZ+CqGo2uwVrUzx^m@V&&0f9*yH7W=?=6fEdHh) z&5;oH18Ky>tyMs;Q1Ke;g46OY$&0xsL`IS=+lk>4&rq~OAx0pcA6mM5(w+%q+U4uT zS}899cF?KZlozqo@1kdXDn0JtcYzZa%STU_Ct5Anj6_0grfO~K&g^E}gI3Ar2+UM3 z`_QE9m4AJI0*7iqzouX**Th}(HCxu|wRSq27{(*I-HJ4ugJ0ODUhw>`<2@xB)AxWM zt3kx9mJ|lj&A;pRvD_O7I~+$3GMGxL{OhFK-sWkel?)@{;_A;XFRibWaF+_GtGzeD z!Jti{b#np&SN&9H*EeC|a(L_AtWH)jh)9v4Bx;9TwX6NDe}r^9wnK#zt%D~~po)>u!G+!Le5HnE z-c!pYoetj?J#R1%#vT2`!VgcJ$xMptyge147}t1^M*@6M1VL=+c~}A-w9N=rl=T?Y zWUV>;JM#L0ZkkYSwT~4D&hQqC5v#_C!{~B` z*wM!C<~a2WmvbZ(Z;zq6`nO~k$K&e9i7$*xoS?PZ9MVlhpAcOYCTG<3g2y!a)SH7< zuHtzu4Nv*^nBdy_qU=A}zV6)gjpmjp)X^BFBbL9GRc}7y;llKmdOt4IcNmn(sT0)f z@H%oDn{)AK4jj20E1f$Zu-#}QHMK(Ul6zV5;d6&RC3gG!=ZGiu~5pUcXYwe=2E;%d*pq9vvkm~*ujlrUo^tFC77#gki7# zK_nqwTsO;W*z15N5y%PfjDY+UwM zuVbzA)fETa*E`9Zj%)>QF{k#0F9s}ifiP=(ox&8&i$(~LLUXy3iiu2BO4a@ z%48#|ieO>il5r0MCv>D$(#U4x!fQ_8QB-gegBpM(NbFK&G45GsiD!{+q2C!g)08f% zpK0Hdt&%VUg3sOtj6Zz~LaF0^%Izqf$g{5ILGO*gU2CmS$*6pAqr8sJCpHiJ8BTyx z`#^lCGjv}znb+fB?!#&~7lCn&QMd6k0PtHnITr|9UiO$af*i$=?iytCO@7rQ?<_va zg+_X+2V}{=bK51L0jPOV_GfL|>V(t|&zLG*h@s-OZCfE`+Vto7J zXQ>wGMi?;mRQ5U4*>I)3a8YW-heIYLHba7?rBU^vwu|57$nDyeJ-8hG#yw!ZB3^E#w<}y_HqaoO^Q$Y zMCa^)r$_*{Y)N_uHf^57W48SX{X`xV*=5|)=ln}nR<3h-ydtDrDSMXtxYImjO&CMZ zk7$29@kD=etBz(DrB3o=t)ZuumW_2!c8@s~(?#;VSL7TyXbQCa^Rw9MhVrm7(!aO?@CWcNVsM zeaU0ET_g2lj~Q>fZH2ya??%utv6_I}sLUVT5*_m?+;=BMz0BWSA zoGO30%TEDv?>|Tgpaz?K18yvIxlD0`lZ=8okN*!%LUY0z@y=AnXbKlWbB0c*Boe5nD@tS-sz10UYGScr~%V z$&fUFgZwp8hx8xAnHVVR`^TWezm#O|Q9w+|H+40Ff03T=0Lwu;pXnps-((I8z(L+x z`rQt&YwkJ7|37K+t}`MgDk^AwFgq0B^aYXgSpnz<%dwEOG}m7uw=|$cv5!5#etc`< zGo2P-2V5iPL|!RFkf-nd0|J*&Lpc`5j5h)lz2OIs6153sAW2OsGGeZ92^ch`%%S zUINOFzrSnUe`SKIXn+;o1ZAQF@QhJ}nfO0E19J{wY)uPQeRlqXY1{yqMgrFTmk6y1 ztg6HCv64514`I09vn(kKFxp%Iu}lwFx^W9edi|m1RMWNYj;)BY2|1o(I&cBQl$Qq6^lguqQkrD|Fw6p;7l5%`uB+<8A*K^QOateCAJvdz zVL3PoiuSshw=B>8bhdulKq3=h$5i>)AE5|Xr^e)Rz1p|5{!~8JBICw}oZ(fn**=$D z{ba5y09Z+IlP)(3@re7da4Iuek!LD}%Es@B%lW3}qwBbH#^F4G$GCk*6OhayCLpT@ z%$NDGXyPtFYpzHk>y(s=#3_^h)KAG-8#xpigjW6a@znIb9tl=Sy9>Y*hX8a87b32+ z-RgOmq^-Hqn;!B<#bHhGdmZLX;L(6m!ddy^rc?2q0lh!~A_V)1ayozT#nHO;G%Vl= z-$019QuPa>l7lR({;_nz z9DbFibWv4_tk;L=n|12Hb+6d+5y{?>Q1H7 zg`BHKJ<}yv5Bh`$YK`H88?Jf)+c=XZ4U5yV=SDuTHww#_Wu`tUx&2!{W)$n6R!r+0 zV?IRD328TPk#<_^cR6JkDp{C=J24WU=ek_`N+qVkt&AYxYz|XGY@`a)RARdhvJC)M zl*zR21j`%t?MZ|B4loHGu;jhqYhg%XA?qJF=>+v!1z@9E`7fuMA8Y^O<^g8x`i}y( zO-;kF=SN8mtod>fHm;>3XTs~MGYumTk6|$aGA_W*M3auM_8YU^{0VXA#sR#~Gl~ao zF1D@W#b?FDGbRFI(AyZVL34nbV>|vWb6-05P4mg@5;SO=Xg}5Eo45QCz(m0%J^(l} zys#d$$!>gcFk}89qL;{t(lu@aHcMb?evFNmWDW*h=ju?B64&Umv zO3IN@NB#XuRVVVo^kCNmk|{?gH>@Fd%u?z?ABc(1#MVSF&8b}Re{DxUBK^t zGL<`fP#*rtbF;k03xHT()T`%!q{(4o97#z~A9tp$-JSTkFJSvHvQ2&N-oeXd>2!Kz zi{wLHQRVy_w!(e41*J%ux|%1OjgV!x#KhLF=5ZE!4Bd)@d0G|B7F*qkLekI=n!`!8 z;l;bXwgQ?FMY_E$3q^mNOuzc1Lcb2tl0+-jcy_VidApy99%{|F<>TKEeBP?Nv+lbD zS?H8vqh-T?8u5q|ad@kLuh_j?T^>p*mk%-AYmCJ`-Ag;!C&RV;=hRVyrBA>!9>G3+T2o`)_k}|X zyNhl#a&16^TL9pBb7c*s7l3oqnyGV5*UV^I9Ut+YutS}3TJVvTPwp2xm4R^l1~aZ5 z7bv#fN+&w@=`?{68YPa<#SbogjKSO&PTo8_q3+SZ^h6ek@wwT5!E64}9*RBcdbSd9 zSiwo@0#{G@I_w0+Co;M!SkN`m$oL*VJ{Ir7JK+vy zYW9p(Mc5A=g{e>EyCWl-xQ-P^-BO*k_1x{v)Bex8kK!bc^*Je48+LPk*Z;2D%_;sw z>r%*EPba*3Vcwvw_y`jS-kKlKemQaQN_2Z3PtQrNQ}dkp-Q5Jpb;jf$<_Cbc{^+yI z8;NBb&Fx@Z=5u|;CV{H#DHm~f?kcfjM#QD2v4>|*j(Pk$LIcva|D4EIQxe*2EuZs5 zE^cMkEC_)j%Ebtf<+YKU>JV{`5*2)#CS^ZG>9;bI-JDf;180xbi$<|V5X2N%)xH9x zclSyehq@eL!I#bFQ)~IleXG`hrg#nCmlb!}t&Y)lN9aAglsA=wBTns_Qhq!@en=bZ zI@TSTX@c_H`8qPe&1|KqZu|QH?3>td20uX7K?k(3a$nhr4cT-~3Z6dB0Ico@^9n7L zU)Y$#^_kMU;wT=Yn%Z{ZCk5$3rTW;dgkXCnc(nZ#Dk>ma@xFEGPR)Z7{*H$a#qsA^ zZn_uz={=C+9ILw+U(KRN9yLa&%d{kon(fWRUpvzP`TMrFp61DFk+o5?@Yl?}#DyqT zuE6ls?P`l2$s?n?^&C>kGx1|G#@|#A*hKE?U=vNFX}K3<}}Kd#EALEs8WLl zZ|O64WZ6X!&s<$`prXpCgWz(k$=howgL@!TjZ;2FdB&hT!|chOy58oDck8g4m@t(r zrM#{o3b(F$cu-R`Rosz-1q@|qTS-NaW<&9c8IG& zjSkCbmvh@nb-KcqH{7EH<+zLdDl=oLWbaYFJr14-OnxLxE&AKh^M-%^x#f=O1%O!( zDDQ?cB%=W5)(U|ql0Vb`prm8`xR$0ihRVJ}%0Tq*T>{S3&p_{n%K5Es7GKk_2IU(` zXReYVpAhn6xeld{nhODQ^pl&fV7Z?c^&SGl6{m^2o^vvTxmy$u<&;|>$LeCvLiB{Q z=85?|f!!d8P!L`0Ba`W4drsfo_ex6gS7fdAL7US3z2@bIY)N3l|L!?jbs91Rw~U_q zQm@xVCotmHwQ2akdWXu`7V_o^xz7HMC#l&#nxi~t0U??!%TPm1HU*Zi_S+8L8=<3* zYUUNV^ItuRGJ7B#F6U8Fq+Q?VDYn%{CpEWcfHI?I;zNDs`9U}trSB1KCTr)t{Klgj zUxqC>$yFmE9(q@}jr&@p&i+xiJ?#xQurX$a5)VPrkh-g#xy^ybA@b-nmj~SG~cG8-4_#256tb7W$;Q0d$hrd?ABbN`~ zvAF*I#{WC=W6*eKs0V#wzyVuQ%4*cW<8L~bZce<&M^>E63U0H|ZkJSKpQu{o1>eC~ zGw}_PEckwB7yKBc(*T&USN=c|#pi^oYdpN~M&p$~Kq#vxu*X4j(jA6})K05$r3+(6 zxkc|$d_{{i`5)EalQi~yBXay9B&zhbFfD$wbt{7R=9?=kiAlF|P|Md*!z7YM(-&?_ z0myao^$QM7ACiRt<<)>?(VD9ozGt|$b?o7zQ#tN&(uQO_`AJTD`Rnw-5f^^kcHN!{ zS2Z?WlM4+)VsIzRp(Jv;TAY{%=1JV8FG&A+&*!qM@38S38u7Q2-K1OSL! z(i?)^ff~*l;j8Rq5pGsx>}a>!46J>O^Xm_1Y8+o<4M^T^e`>BWAW))Vx9u3?l=jtj z|4mba`mr>MjB5Iu|0CVTanA~ALo|$*sJnexcujAG_PnJtOMAtmVA*;eAd$Gji&r!* z9(`q=VzqJV)$41bWYoAIWix!-!d(~0h@@Y%dg6}3klA;@9sLZ=NKJ^I8!4HJu>|rk z53{t-pY zsqc-y$U7L=e+g`uNUi@xrNPhj0U*BcQ;Ytez7+rcGlrA+zin8e^2ajQy+d`~c#oJ|M8#imhs z{{)>RXyf0dp8umw$P{!ss9Ys>SOr+S5n%4YhoB0dCR09vr+q0l4h&!tNRh4mEL- zGnHVa`??w9-e120Rm`}w^2XMp&3saY7_k-z@e$5(F?HZdBw#|5#3;HRF(QDEf$cC; zxTmc!P2v?YU>T_SSPU701o>Itox$Q!1an>FyP91-)f6Z{&Iv<&R4u6PBA*i7jep=P z8^sU+3c_)!zV!egjZyzClJ@O*$+gICkgdglOh(n{*{YnKFRbNwjdJ#)!-U{tP*(?=Lnph$p)<>zg*yL{yLNeWL)sdK3} zek&*_!1y!#6mYd_-0X$tABz=rNVJNgju|9i$txk;FZ@kG)fuKlyYj)}AsNSUbP(ue zk!46j#eT~+ntTVC1Td{3%!L}e(q@T z1l8jh!F4-^lSp|GQtp9}LM{~d00Arqgur^x>rmo#wqI!R=a*H|T~oIKhgSu=k zGNy3vZV%Av#iVNcn!DQ7nS6B++J)Y+x&$-99R5pfX8cA)qttf{IRN0MiKqAZkBCBj zgx!NKQx~J+Mxr@lI)PK&aZI(fDz1z7xbFuj(2IQ+e*`Q$6K3H#T(x}7)Cv%D-gx&B zhf*orf+b%{h$^Xw=+OX8={@sHE&ZjEs;)|sFc zpK`P-TcpflPY6+Px8H3CWS<8HbwudXRuLf|F|xLTwihPPLTm5pg&`dqvxUH5(1RM3 zl*kdj%-;JQyrFu%Zd0zQ{Q>cPh2a zlNxFp3Ylw!J8&7wTA4kJ=ckxLy!c?a9|v+&V!1drb0H~lckhlt8=*CU$DTXH&2&%6 zb()VsjjpDb|74M|tUwse_gbg*FJaGo?nbkSfiV8u7A&q>l$@j|a+yDkarcp8=#Dh& z3*H*KR#Jug-qNxyuW-y;pFVY}Fw)!G5{gBEsWQYN&#G6$%<9D3JW+G+7*qbeef}Zk zQU^~rbSWTTMf5#|XD=$kH~kRRk8(p%y2l3QtCfJtcj$C%vz&2bxD577*>k6mG&yFT z7Cl!^zp$X42=rIMs)2Pa{wupV;ab;Gc{}e`sh*Bi@`)?j7%t3+#2t-7^4rq1n~_svVn zscX;=?fP1+{fY4ZG^E;2!7IGilF+8TlX4E|Ph`=VRSl|@ z@=swA#QSg{_g;#LSqM-}e&<(Ns1|~lCRlSgC|5Zd`ZS-KQqOIEuba1T$wrR7>>ah3 zhZBsXt&PExO(M;6r?M%K&W2hhf;P4qc^1Nw+ODyH7&8hB_@k~bR(&<&xf?*G@5L>W zY8?5Dr*&-R_7$oP(zk){I>-WvPd^l#Fw59V^!7%h+6<=<_Rm-#pehDs2uiIIMk`km zpWZH4n?WJYR+6-bt+$oL&mM-;i>B#wP~vaqmME%dq}(x~X<_P696yy&4E5YxB!Sw8pu;QoZ&&w&Dx^yw_%Dt2;F(o^Ekn z!8-08KDx=+&wT^th$cDfA4%xphQNNKGkaD9J1Q>)dYBD;tY~QN(piM3tP*qBTyh}z zviWjz+~)(R8Zm6rGdeqA#(4LY1Qv>+tq&{etZvc~{Ccyni|xJ6rv)Frdx-{5V|rom z=PwaNbMo*l3}q?xapaW_zA+q!!h0fz4#S#pqv~$x8wT8M-0$K{3pm;Nom>1y!(;s? zuj}D740hOoFf;iC&`*1PM59_FjI15J?y{Q%=(Dum~%ggd$W& zV?y@(Z#+5o)pi>P`o=ccJ|=lBHk+dC^4bOkln)#5?GvDJG;^`N_;-yNEg8)AsFD5m zJr{AJW^QN1@*K1?MSXyK8SAf5xzbMO6b+=1i~Pe^H{$*>2Ci*W$(F4I!IS!tZ4U!e z7vpj(;qvD9u-}Kl_n~xFh&m{)_nAk8P=~*(;a6%sde}_6wTJ8mbikN44*?ZI1NXDWs@qm5j1{Nra(F{f!KeB zu=GT5*6RS8@-nGoZ`27$T>Z~L2C>?W>rZ_PDIHAhd)iu<`{3A5PSSSM4U31C-pjb} zkcml%NHtO3`TVe$khk8d)OfTDyCT+%l3)i9;&nUK=jx0t_PrshftJND*!)pq0^Z4= zkU1?b{VZ6FwzOTB%qe9BL~}x`ynu?r@L;xA5l4`IIlp?RYCOhHMHG}C66Sty%I>~j z1G*pF=mHriQ7Vw0_O|vv*V*rk;Exu-wO;c52!Av54=w@c7 zS#6y6r4NK9db4lbPxBEklh4r(#3Na=Z}`Hn;VSeQBJ#fnxJPRXiOS~Ai_iK0@F0(P z@p2Oy^Sj;Zne$=vlTrvauZ^9`&!a~p+ML>)6)H~Eo_?p)14HXZ!*VGaZJmP);?EIK zuu1+vXWBEDN5zZCaJ$+$j}@q&wi?&azE)P7ZIzL(&vL9f z2OG%=Zqn>+l}ry!%OhZkD4J1BHtEcaOW^+2JEV9og-c*;eAuJ9_w!FC&}!=&roT_J z!tzr+{Eb`r5LEOHf%iorErO|fTYF%k926^v@O|SOp_Z^XVB(NaOLk8_i&eBQX^QtU z@Hz)I0Q0p5F$AA{oIRav+mCBk!luTx1TP66h8}Acsawx-%(l+;eu#g3zhxEC4Py-w_$yW zkHu&Zcu1o=$zd=R^u|t8b>*2^TAcnS2gQ_=R0lr)v~TK&uTSn{`hbhJ{P0gcxrBn+ zPdO-bHUccis5zI`4`!t4rQ=8urd)X&{0HASL4sP2NzBR0PUdjn>(693)QB5jeu|ub zrkX0qzexAO|4S#U7W}}^)UX3DLwUi}qhE$sXO%W8BOW!Bh2U1`$c}XA=i;q8yy*|Q z9wbSF{SK@&BZecmU~mpl&bAQsiaWw$`D)Nr45^T%6hcuK(J)BO43kEn;!m?bQ;DL> zc<>o-?m~254v+o#)5}F{U9EW;Q>x@s=qGni9-i5#7ndc>G*v95>Y5pt@OqCv`@Nss z%>0_^%|W4OvQ}YwGQQM9sKS&nX+wLttX!ZhU0ojZB~K1Jcu3giwSU$Z_WAJ?^oQhf z1DP?hq)T#yOoxI)B2Ny>RJFsMk(U(xn2d$iX2F1-^3xo5u{5<6U#xDh{ubY|bL6QK zafGdKtOab()|S8631LE){OeY}Po-oPiGmkCvFfVRKQ%A*-bW6N+P3h^dcJplj1709 zR(PwIIYlF#X)^fZ^>|4q0$#h*Ul5f!pM&MXtl9<*H2r?LHi(Xv5H^xmzfk;0HFY>{ z(a0n65mF6#43Q&=cXE8UB6JYOM?GHLJU4Uz!vsI&6fl&+zYRA_&+T|G4hZ(SW(O1BxG9qM&_7tQ1qJ&{qWiwxuJ&bm#i`;n?x>TrbQy z^B(x^Ap|%8@UtB;Kcw!y0HS|0*g_&dvc`cQZ{CrC$Ri{A_a#QyqcgJIGVrodJx}bI zH_{lH-#1zsM5W>l)t_K)fL~B&f;rw)Y81o%uN42^KmR{4EV|k8Z4jRtC|ib1#4X2e zZrOOp-e*l;+oh^&p zQvY*c93>VPa{Eef(yHX+oNE^#Paf5v_q#Nc>1=E4E7J4sDP;`cD@j~B#fy7;n8yQW zyJ@5L#`mR0-ab(Z@$l1p6^K+TBT(I0i*C_)Z|fre>{ z^90@(U`g@K2h5?%4bv0U2v`!!Y3v zE}hlw6)=XG8f1Qep25j{fl0-g4Gluw0nMOrwV6t!W_;bjlI9OMBa`vXfH~Ode9(O5 zYHAlM7qJjJE`Nh$y&bOUuOK+hccQ)AK)7QR#!mTO-}~qW^7b*N!NSFublk1MoQv|51^YEDNxsS{!`dYE=RPdx}q#?$IeF2qD|3aeR(uWde9@7rb{BJ zhUb2ho&j(=*vz|(T-YG6=zg34bq)76qk@AHiU;nD(o}K>beg1MoGxdpX%dC&0qbkU zW#hlV0NX6Im>l#q5^^TD^sI65FWo?Tum6M>%Y|=PVZTbHMrCGxJsm2PUX2nzHxm~r zY^AmIm!{Hn`dIP$D{~+L#Z3DY*>nHGU+YqKIaK?`%qj2l-{LhRv+2vHD6G&HYIt#R z72`xuXG!|ER8BnE5L-}_i~7t$!B3In{GTHNUWZz9fwz;o^MSwLR0BH$9ykasC zpcalJJO^SP!kF7~x<>VU#B8zcc|Seo@srF|9m+2j{xdUW^izmL1g}_Dk!i`D%s);=`lgwZjhRKiT1Q|1R=kbkmYjFZDoNcIq2J#4 zNVacTP#b4!BX@uRXgEmiz2+n5-oAv9R6sTwx^*g?#x4q%C%E`^kytlR5>?lZdjomZIPuBs@P~XriIxFm=X(m=|4vTng{$m(+JPSs^ zH?KV!=_)8C*YWrDGQg$tNmcGZCfU}}=tZTF5@i$+3r-a_o3_iO3cNM8=BM9|#o3aw zOHh>I;|^!jq}>&F{Zn;N)$}~ekw$&!&bNpmG3#RG5Pvb%;9o|+z;7PDm}Lca)BzDdEX~u zj8ab7ccB7CVQWT%z0YX_qqFj&3jkt>%@VDhYfO%=qls5B4c|Aw=H!)*dJy~P#l*nA zbHh9KjQ6txZv_9STyG5v7|&O_Qh$FN#3mMBv=1k+VZGA(5%TG@odS2>^nC#R_%J^` z$wsqA#cwzpxp&BO2xcLD-^XJ@Jlt$5QcY-$4NQ4cBop46xAq7JhMkrNp}#)SrN&EB0c@k(4=yVRv6j27T(i(YgcCFK}XZBN^pw;pF^a=-xngO+CVc z;(jWj5K&)>h3vJf*7p(>2K}7yH79#_<4EO{O&q&}#)V)KCI^!%Q?Nyora=hZq)O3^ zhB0^Xs>TQzq!o6cqZO^(MgP|o>Lex3)XQ#OeTTV#lC`35Uknsf)1I~k+9Zt4o#7Jo zV?`mizBB9D2IC1*a}jfZOj23?<7@$TMZ5x3os&-u2Ob$XyKE7W z1({an#@9fAyWi-9dXy+3H z2-fAvMI;&OzUXjmLb~wY=Ff1h1n6Vl@VA=3+s2r=>tS8N#b3u6I1%QF-9PSMNhfvP zHbH3Mu@TEr?~u8aF*Wl5l3^Ld;$`R&ih`eRemSl!4ZD54(a6b;0wa4c4Uc8?AnKg%8%dc`JW5`29OPw!34- zYTMXD^}&tJm8@8ujf?tIRNcyjIbDSLEkP0^M>!%yItiJIn<*E*ZQlm@t+C;ezL4dM zggCah-auho0weS+6bW%+M1-@R7QAaF{3_r8V~ySvJyt0__$u?c?9Bob2?KrcG(tK; z%>K-aQcNTiLUfkl`$&&Lt&y{pFdq_YO0}pyeafE7la%yFM$Pz*j4@2zy1HzJF9p;l zD3LXF+8VL`!rE7)>5j2pOIIX_ia^<3?GG(OiM+C!{HF;yN*)}acnv=}vNk`n{IT6N zFSugg6Yk^mnAjHf0nBR<4f3b3^vpU16b8O=Z+9-z!h$TT7AbxBI>Sx4!jS?8Li}u!Y*r z->q=97y=IS(;S=L+Rqn=P7@t;9oFo#`y3cNRZr26f3nMl>%D{nZ|(E%W0W$eZBO*n z#EQFxXFvFv`)+&b!-%4Y&mmplcJ)TacpKAilnoG_J!E5gG2_s@dAZec*lcVWbT0`7 zmCi*;&bT@Kq(f;7OP53bIHo9Kne+bgqoJqeg-r}kO^ky|yRWxs=EF9~>zzVx>+(XK z=dxx{ax@xQrWAL#5>k(Bi}rn91p73nLh}B6H*FB}b(`QF29*bysagaaC>|W^lRNWP z7UT8vgg(tJmyK4p+~;xVVPDgB@6GAUU`x&Ig6ZL7%Du+K`BII^T<~ZmO~m@H>A=ol zacioZncMhdV`3L@svq&tc+T1>SyaGL#$gpoI~gjFLOdd3$;%K5zq0rQPh+8 z85=b`nB=?Pr|x7poIhSEsI^{Aw{Bxo6`fogEbl5wuqqua^j#7P*HlM>th^3Hv+c%| zenmSP?!6cIX6?VkOWO0_`HzmUd%w5-@b1v%{_Ggl_8|0O)9?@LI27uOk__jT5ww$s z-~UBC^>qAe*$wA~3L)+BCEq8`bRF*XPS0=CO8nU>s1VL)MC|#BId^0;TuGak{l>zM zBz`CG>+p=x#=raziL(rH_&bDH`(F4Tasq0=QWTC>s zQ!K_tS)ZZ{!a?SSAt;|E89D~wMzwKeDqK7k*g5#1+O-}zfHaAtA8Hnpz4Haf2&?BE zTl!${eGk54z8(3WaRD?|=*Afq0z?E+9u$*hoghf>49_b;3>d=sjLdEzD#;Q2rJ zRT9QoCxqTmukSQU!=UoCYxHX2T6&nvqcThbV!}R&YcI;#>#N;smwTqud*a9-2uw)F zX+V1Ze6xVGp#I7OW)4&zlFfp8*ciB2qn_vXT@2PlCz1qG`O0LFwMNp@2>>;0K9+k~ z23v+2a7DM(9vdADt12xQr2%?=-gEXs52m+j0B{{C25(We0A-B~C~tpMoSd7!j)5~Q znkwoqx9x@$1j`gWf5yJQ<#XBuX%wtOMU=yq4M)h`F#N#_Jo-B;@y3yR;I-Bx%=yDo z-}=A`2m(i$d8~cki!Jc_`D6t{qleQ8=66^ZvN+?E*qma3wpGQn%RH!b?hN~w4ZGab zCpB&jCjdp~#Nl4M_19NuVZ3CYqu=`04nwbZ@x1^vHjI|0?BFTfE}wj3=c#`8O{LP` z3#HR=C%ewLYj(>IJy4FX-mMd{D*N+(+&-nC%1@I8Eer9EQ4j;dT$mDA5sauo)dsIria5p)oy(8<~@=zF3R@VvKigqFUapJ(;nb z@b+rCtNwv$jIn-Z8)&RVLG&&fE2Z5$T_2Ku4-Rlq0VSUy6-b18TP1xa)hVMI#t{wg zM2CiRxibTM#4&&}nTDSe$Wp!zB`&>diR*7o?!4D?U(WoN=C%L29JhB^V*b@9#TOQV z!dHB?PgFBMxSQ(6?%Nb1aWzc?BNd|O>)aM21dHXmIP1MM?2tHEP-B^ZCzpV(=ENw( znrDLwmfgyq8BWMey4Wj-;5rVkU1}O{J^dikQ$m5sk(?qLlnHHuBi=I!_?@i++-7`c|Ma^#@0IFxj-5gHo9y)P!XLzfn_vaQaa2W?BSbYm(Oj z%R*EgBQ!+DS3xe^yMI2t3lnq|xjY=2T)B?ZwlU8I@~t~{7^%n(u8ov^djV2_-?=FZ zHSRtYk(?!WmEFV|C_D{xG&(R@jTXx%ZRl=CUd#{5aav1p_b#45ne!e;VtrYd;r0Pj z%!$cn&O*w*b9zhb&hS<$BalH61`W>W?b0E|N{F0U_F{$80-yI{0~RS;Hwr@r<0VUPWWbeeoN7MC_77{Q`U>d6EZa zECZM>+dnQ}FqxYw2-e0?F6S3u3o53q5Hk=b@_(r_3?J&o!fyLi4W#RRA+HQgm*iVE zAc%0Tqim|T<5sPK!$^UX^juW2Y!ww3OK}1sP}UP-&R{$1yDp%AziqP1ggN`=7MM>Z zd@%Abro+MBSWcyTz5)w(>{PGN-pe9};>i+q2fZQ(dwJNS7hPCupe*g10NAap{e7b5 z#*CwS=ngX?g<0#L?>^jF=qb1atFEKq>=Rg~S?2!bO(Y_G3wJD;rw&7fPKY13>Dg@t zp13~|o&o&U{$Zc+W-cQqef8yzYkk+^57F?Ih1OrWs{4mSN`edLu0uyc(}`L0IHQQU zv;-WF2>Z_JC%I>5<9)C=0(z@O4~MU5Ks@a(K7DQ0M(^4^Wctu&Gq1v=R$Hcaibaq5 zQcPNd6Y;*BDN2-Q^F>>PMFj9D{Ca}ssNQ;6*sZL%^Mo+SfFdvoq!|tUVDEMbd77a) zE97B#KLim6{9bkQ2OYfAR>b#JhXh^BDms>MtPh7;+ z`H56q=%fOKzSWfQcXna%+<&%)PA_+TW@B*CqC$$jN&D>a?g;Y9DR3Cx;@t; zIBQi^ut2D^HTVxQLS*s4(xu^D%}?L$-6w-3mW5xzY@pV{1R@la&nSY52|3K=Y&Kd1 z7{Ncoa!fYmotH5Rn_{4Ns}iz+^3xVXet3~fql6%iG_$4Wlnm5) z8(F{#FRPA0$V<}yGPm;B>Hf_UOm|wj_!IEdYgEE*V_CzUldQ`-F1ef&Y3o&3YghU% zJ$_QYn=8zE)e)^pybUcRtTfrwa?$ae)W(QIQ=bq_2NENNcF&qybZQ|`Fv zSMWF~hxY|g>BYMr`MomDXm3_GSedWUaIc50IwZ`wh`?kf-lr;BWe)eaA)#=`1eEFu zs_&75E&0^F01_#KILth`!E0%n!k4%Lr*AQ#9*+lfV(D4aafTSh6!_|BXq(>s6A-$2 zYy)<3)%OiIt7#Srd1ircVnxS{_ohHSYMCYh!ijKl2o0y20=-J>+vSEbUPApQw@+)w zG%J6Nb=$;)9`-ibJQ8E%I!cmljQt{*nNS#2VB6jDao~xn8x&Hn{j4rZNGT;ch#yg> z(j$hzn*EqKH$uFd&M6jd+tGP2W^-qU=>_$raJqtQ8{BXSr370Vmswhfi-2*> zT%7Y;2EfdV>d+&%UC_A|TJDA8Q}323^ev)GqW|;6allINvDhaTPA8we8sd?Waj5$a z{Sf+^&Ol;1S!Qk20yEA^Lyv_`FZ)(gaO*=~72-5R z!ZgmPE2EnLqPx&Up>n<79X5SON8qpnV=iC^mm{tdmEFjCV|`*({kTtPFVH(_lCFtc968~hLf34<=3^j$ad+{MID!E1%NCPFpVUs zxTr0>oRuB+tmrn^ zc%Y(u(8h~kJGb%397B)2D^zNVazM4Uvdxq?^A-qB*-19-h6i%*Lil;B2|1ScQV2Tx zhJ{P0Nk#Xbe-ebB@%uPAFpewveOURVcvRvBA2XY?kT@8QJbrXiv{GLdPzK`gp zZua5(^$s>W{!vm8d$e9_aO1wWX_;xh@&A15FS_WY+Dw^ZE3Gm%4;kB$21DLZ{-()~ zBtml^GdE8S{hLbpH{B=&07;)sH?u#`yHZ;n9_)qJun#?c5Oi;F4+Q>}4nkJ6*+`=? z?*=2wlkchHy|Vx) zTvwo3QAWe6s6`8hMrCxtlC9(#d!^p@3^I$+0=gxx(UN*H8@nJ@_g?J^^)lbNy59S2 z`jQ~H0iT6y_&Vq*l73$BbLfA{uQ6zmmgS86FR}#9)Bu(&+j~;@w~`waSOb)r*ZR5+ zpbpHxZ=9`ISXZ~a-1Es)ii{lV#^ygHuSWrjIF<1FYlZGA2# z_mXDO%m)=7uDh)yE zpHI8|?ULTE;l@11n%Q{0#3Dg(jqbbFp&hlZn5KjsWAJn^#1``Vo5Q~&dSp4QUIx>aqYqi|-L8IK`DU?Ku z-hA$aVQ{smjYiV5!+uG}6Oao{CI<~i-b~Co`vgIMgKFW?J1Or_rHX8qs>)r198_mV z;+BD2{dA2R$bFXAQ=JB1)605ecC-0ip!P;KJq3%dVe9oj#FAb81f|3glAHaarKH4C zgacBgWD!zN|7Q7M1yZVn*jzFqfXFV#!Qq6hl@R-0>&b~FeLRqtV{ykp<*nm2@bWq4 z)Z6HTj3g<0fx`C+m`k=_idp(=lb|p*G-)!j6i{maebqG8J+mW?z$W2yCdxtlcR04| z`{?(=j9kSaFjOn2kxz}>u9&o`){*bR=F7KSfx*DYue8b6QzjrH6EDU=9u`(Zl#qn& z+TPDF~uOcMXj`kKxeh=;K61xacM|@k8nIJ#RV@&3^ReW)&aS#*n;9kax8-<{*>8BS{my;SM3DA8Z zHjb^w3lTvK9@$UAQ>0Y78-Y((AVUB8d=#sZm)usc5z6b|m!>4*QcPR4__gh~f~t&O zIp($`#Tx%)=6vzY22!Wc&0ad_tU*>AzMKURezqbdg9lHC4nUYdAf0Sjn0w{<@J;QD z4tnV_6SgP7c&6x{w{XIut99Mx17X?eFdm3?;mOWgAd7iKzr4o@Py~S5J>^+Ux5O1YC)b&OPP)s$JKj)EHQjsPt$k1p^QUcFs(t-sKP5xazsVW5$frI`H= zAbAu<0W;E(xtBA?)6}piAHI{IW^g!V;a?4SsufgINH4+U1(OU%6Ip=Vt`?O8Ye`D~jPhTP$^AtfZaixv_$E_D@|` z@7Migt#9=xPXH5@+w~;l0<`55bCngU{j8;7B{f`PeB1zVO{uW~tP^{*;Oty6CZNeA zWh#pudE^9acT7nb@OA|BS+aHhQJtaV#Vi5uMRbVPby%#L9!xobM)0xtSSEQ>hj2gk80o>bWvHL68u|B2JOSvW-)*RrUo6Bwdbm#Vt`^ zx7*ib|y*jC%<#7#f&=``Bpi-7F zVxRoEHTqRMLTfyJS=L@}X-G6CrGzYepF90X#HDKx(_+(+Aw1NYKK^KXxVipb_vN{Y zZq61jrg>_iPr8HD?+#8o_dpd3?@z4#n`^^*oMmJ*i^uO2J%$(z4EOVBl z{g7J3PR>-n9(1@VN_poxSDcDx@Q|*Mh%|kvOH%;H>Z)rCSlx=Aun!(Y5!?+pNcz6l z7jzvXPkeJT%QP-ML<}dA5#3IS_o(D5(rRng!d|_w{A^Zlb*v z4%-djvQm~1FECBEm-$p-$_-Uq?a*IDyo&Mu>!{^&_?uC{rzv%cmqwX}WG2!M)Ln8w zJm&ecE(;SU_UZmjh|+F5l?@9Pxnff4T61e1TYcdDLWXwCwse0U&7I!UF3#_a13w+? z4O4;}*OPD{6)c~F##;`6L$6k@0Dmg0XKW(mM9V$#YKq7PYDifClNcv0?BUwAY21Ki zw4w2rJmQPP+XOB*4l;jKwGtZrDKn5z^8()b@}9;fQi&Rp6-Tjw?BVt1x8^P*YQU{Uyb=?kte4_Is#M{&=8J4`gAJj@P8f z@eZZ7Rnhl1`A_uH1lC&>C8;}wE#K&{fQQ-?*`Rz4$;WmbQ>)~8_!oTj6M~&XPgy&E{64|1!;WP>=)KmR>jx!)D6eQ)(; z)_*bMb58J}JYVRV|6BWfNDnsJS+&alK*s-G_J6}5-#oGf9Frkvp>EjwY?TNgHfs%w zoSze|=aaKn0_YXN`VKUp7hv-uvuBEvTxw!lz&H-1M7{Q!S%8WRhqG1GK9wJxC|w^a z8McPgB-De$S$#+WO=~*IW!x4?98(l|c2wX)F94Vi0P^tsfz~3*R@iWJ9$0jUfF@v@ zVs`gE_ALS(ApXqPgJYjdEP+DlathQ=t+j$~6v(sPfxGo-aTnM+U}Hcn>Z<7_KLL`b zs25NH`v$cfd-$7x7%3_@sK(fXffbTWiJWz(jMvSfwtHuQ>7vDGQHzUF5;mYUS}nKp z#_(S~2-Am|7L@AQ{2xU~&kNPk3OLqLYT$xp5-61t-0HUYoi`G!Q9|mTXA~)Mbt>8o zsth$Ay@E>6S(mCX2P$L zGlg6TuwwfcTbw>;a#=_^kVu;`T!C$WN64!J%L^o9?l3dR2M@{re^?g_co(ThRYzav zFiqqmFp2Zt*HD{;dQ4Kl1e&B*eqWkW11mm%;oS#bOuVyuYUVHE7Mzvr@Mh-VszV7j zD8L8~4wu^R$HAnO;LK_)u#WNWuTQ=3n|#Jg_yEaIUK|9vIqcZ|iirLS|4uoj!mHAf z(8Q@A+DB5j=*6enn?S#s?I_Z#iFeUl7PJM-fdzsPjb}Br=NrF+08V?>QhC;p>F=_F zL1`%26!$Po#C)5?mA&C@1g5alH$s-P9_?^Hk62*rKBzQf?&fa07hq^`*i51HVHDr? zY6j?Nw?_$hPC$mnKe;5GOe%J$j1dYO*9J10)a&+R3xNiBr!{PmF^r8IQ%SgW4&FjF zCZyJeN#+P;>7CzEO5d9g1Rn8nsMG9et6(G8>SNDBED;YBUzmC^cy1Nt62*7}3`2;K zO}pF>Le%B?+-V!-`V!?*e_Te7E6Q-KrAY%WbgS6>uIkqAxRfj1Sum)UL zC`awEl3d>&06BD}-nv?_CJj+X%>c@Ew@zA7w3fMKBVgmqWlyxsudGq0hu`kc%t;XQ z6CP2Hu-io}M#@;-K6o;!5p-s6B~M#q&)V%Wo|&^4DZ)Vtq05r7!rpg;oSf8OU$z1{ z^d0qymStXS5D=2(Ze2PpXqftUt$Zrx!H9~)0--Sp$l_^$dW-jMF_;tKC~RtoHez|G zL>`F8;5PS<#0vb}EVfNF-49DZ6{8W2S0P&96HEM84S4=n^Q1oUt0BZxyohHdZcP5J!!1ZWHPsISEK_2^~J14qa;PZ!(JxBO1|Eh|2ZzBDpt>6Q#=^*2te*323n={QIRTb{!7(rm2@j+yD=WsFi~}#a z5tP=6Zv+Kk7n8H)-^K$+$8K~qX^Wbu%3@fV9euoI>_88HfR!I@Og*1GkDNP4Q_&BZ-Qf>(9!s2~{28Qu z&)XD#!7O`Tgavv9KD?{dz(v~@d|!nlbxMgHRCHOU1rUU0@J_EWxZx}+W1=-uWM@o( ze&I3sai-K)3QmN*Ou98K5M52lC7I+()GD`WQ-*{-@!t1(ipPndR7$ADD6t`QsB&^0 zjo6mu>8^cx*#s=%*W$_aJ}1?)Jz-;S>@Z%8Of-nP;tKV2v+p&hq+Ps*xs{agT0rv9 zq9g2Z#55)JXu@D=bmuP&7j!?@=*J=z{j9&(D!$*&R3h_r09U&Ml!?q`ZdyG($qb#F zAYB2ROqYx%{t$*4_$AAu#dHH+*PV^Q~U??HN$i%ui>|y|K(q!RciGX1Z9t!=%~tNLF?o z)IE2L$cnzdopx;%dcBqrWfM9|$bq_z7r_SE$C2v>bmKq_N%EqTgG>E=+VFjLh+R>! zsqds0XgVc?=u0RI9?JMD5a$q0xz030BQi;d!^xnh0PR&rNL-Z_A*Q^;s7uGyruVxs1c=_`M{V17Ev#$&@KP)sF zw_RRv%mex85|L^;uqvSXqxJvm={m!jTAHwhYPkvsxinGQ73m;^Cb1AuDHbf0fG9;u zKoA530YR!UKxlkt-u|2>utUNSXI_0AuiW+9ub0Ee7SEH0A;8?sRBA)LPwc# zMn^#atRcNUb&cT=b6jvBlPRWJNWyJaPR@mJMBjs$*HwPq-KjgL!UD=V`9Jc28 zF_YB zr4dkXvD= zkwE(Tbc(^3K!<&ui)Xl7M3qUwm0ipXq)^(!Ni_lJ^!Kg9!|xjQD;*?2%q60#$-<>6 z3t5bt#-hQ)d$Ne&ms#-Yw-sp~KJ@$)C7#z~@Nr;G)qL%K#ZpG0#|(9+mEAM@+*oW)Fn&2? z-F&vCL>h~2)DMlD_;HE7Q|7XexSJ$EB%T;Y8+co8W~h}{lKp71W@ey*AH!to_0J?2>Jkbe#Q-)9H1 z#LKx!u%^Z{0po{8KDbuU9;7D&5Ux?|07ZP7wQWsVR{M^-5Qq*@@^$L-%T9G;oDDrNZk)hja9+`Q2q@K8 zI%BuEkx+j@ELXFMV2!)RFM6(2@7NT2IJqA^gcPqC!#l$xhssr#!uk&q04--ebs{vG z%eY(s8*7jo*~=ZiyJnFZ;8F(A+DMU}%YwNJc%2pMyZlBvC$W>KZ^9mwgj&YielP8| z7FK=`ZE}OonaIp*F0}Q~L!OEmmIOfjs-V+Md{@y%a^Oi)!o6Z^ytPjm<+dwzx!tgy zJftAks|c1+)}QhM@~|N99)0Qle37@Ih7+hMDtB%=AO$s!O061Ffj8pKM3g1;PZvm$ z;EY@Kw`EC#b^sFM41qH64Fv+&z_;%*7P4)vKF=9N0%@nc{>qWI{(Rdv-?*`mnAeN(0(;w2>w~T%r_s8KX4lW+s4$#E9_)*oZ0eti ze~=r-po%DfnE}r#ExGgln%}BiU``qDRJeyBMgfnoXtV`c9hT3r0y09@ zSNTm_Q;T$ouG$;L=@ERbJ|Cn=1B{yl-<6EHT@NJzZK!o8WiEup)Kd-?uL29zxce}{ z=E|F$*()+k?opIkN=^bDrPF6fmU3E1k1PVa0^1MzR*E<9=!!#n?2Y_akddz*A+IE% zioWu^pESA!_XJqS^~@9M(6qV|i7Oj!MY17Cz08q5m)z8p0q($2xaV6=qA0STS4nJR zQYDD1%lq!7LTA7Hm6u10y}tb5Do0-G!Q}Y2bc$9-0&aw0&0{v?6)&%5tKiPKtcZLm zQvHZ1GjsUK8#=TRj}0cM^nhNtH;$&^*9(n2d2UOSNZk}-$X`{RIiFve>E!XTa?}HN zbFmEQoZa4bPR)xLO3+J@9|@-ZQ%5wtiZHcvmXi&(;iop^e86Nr=MF|BXm1UMI@kQu z(oy;jL%XL6Vhi`|eSFoSNBYjf;@+PNLTeuxn)2*kyyqzx?irOZzGR7OI@0j1__mwb z=Gqe0qfGApF>2iVl?iCo8kZ3421j?)J)&FkotYL9WQU7PuzqY=7$YKT;%UN7DV~lYn2X~6cP4tjtJSA!IvfrJI2bGgj_komd0u=_iieu-P-~!JBWM(K>hpXBJQY`ewew_0G90 zme2a}NAKkkmM9~|QVy6tV0YLoMtMfwa_yNP6J=yVBj4Q7T0x7VUE9sPu*=Ylk*#^K z1Spc~f%d^O4Rc#z=LmCE%ykE=quqiCm|E6Ti;_^KAe%eyZyDqy{{npTOqkOgCUM|z zdWrdHL}T@_9FM9^d!28W+YdY&7IVg&!t*1#2J^*wD(34!6$5(t6H$Gf+$x4Ex5@d# zg8=M`{}(oRb$6j^c-%qi=?@>*C-h3wG$TP#QQ^-Qd>kUVKJJB+IEVys`0Wkho1+7 z!2w|f#~ULCB(iI~6A?=aq!y)tcR2+#HOiE3PJA2@76g5^1MxrjG6BtCbNBlECJaxe75*~u!6QeOvH49 zb1aoK9K%r6WozR@iz^vpQus}jY9FtM4wIgnu=!Tcv@U(g;(9xemLs)wLS)1@V|nvX zQRfm;UygOov%0*UnZZ4kJH0_czg;{N-0mdEvj5o~be>|Elxbwl(-fW8yvo&bpI;8J zh74Y|ydfO13c2l5X52gBScnW-2f8Y8{@$}Tl^Yu*-f_Zj{aO%;IGrAL*wVM<+FY}( zML@H3(!$EwSA2kiGFU3 z->hA11qqttC)e}mMZcR`!yEiuk?~WTonWse3#c;s;STFr78 z<@A;1e*{Q=S&AnbsTaIOU2A4gtU5Gw;@^~2`>$Il^{x56EN|_ApOe!e7mV1T>#_xI zk<7P_cScjLN4IK4uGSq|kmd2RhcDkw*|_WhOZLFIlNI#&Uu@oXJ2F+c*eJhUKRREX z|Ih?+p0XvSZN_wDv6@1@Ey60#JB}8tPP3foCB7D3p9PE6*ih#4uMp&gh8E+7q+!nI zS+sE$=b)DZ=WZJ1e#GzrRz!b(Q8xuTLOklRYP$*f%<}Bbl*nJY`BX;%8sw zWr8GVvoBaP6x+Nys9y(4lW#=N=};tBTfwHGa4HA;m%duWk)5)NXb|+2LM;9Pw>$;; z8*wpc#2;u(EO?Xa*2=W*L`)@Bw17l4Ugjr$gI^}2KOtpE6@n+K%<{ALG#39x&>Z02 zv!E=71xzHI3bu+l#W^5fBWOCI_1dYeO3WOGVyg8mP4lj+CRw%sh!=v~brN`uTDZlgP665j2efhX zk2VZ;)!^gudo{~6`V9%1uk^mNwL;)kI#)4U#%M8n{OZ>4q5Z<62N2(DZ@V}W<37YF zlJT60@kwf$bvTwv?Jx7j*HQ(V9lyfLTXYx}r;2u}a187S$JzX3r+5ou6vI$$4_czG zy6b?uzijnD^s(0(jte5Z)p2+iN9#I`{&0xs2pdFMe1K`d<`3D{US0Ao5luin_V|); z+%G9>0c+8bfc7^CTZc`YvbQxLRWe0xo*-WE{5sFBB>;qIchV!-MObX0mYs#b>U`ay zy6lTD7x_GrX(?^%d`g^4k_=2xhCFWp#HPNxUPv@f154)=vN)zty|Ji&ke$e58`h^n zSrxC*dKGY5JHpdlr`M3sqgnRruG^@qX2ef&Ra+@-G|5cfdln{3aLTPk(H4aP`&tq} zf;`q?R}!hdJ`gsO1b}4ZOidyF{QF=i2&t*FfjSqFo2QD-50*6qrW7lhR{k%2;u;A`*O7ix3H2zPh zk1CQ0L1I3Xz8b5x2b|Z|(j?iEDGgoXe4e{-edQ|`zsegHHao|zBn9!72$q}( zcQQF*-hcUEZl>$#5BH_?2Kz^mk*)NL1~52`Mc_lK2hNvSX9$m@{!-lCeZ>GnniLQa`SDJRuV2eZd>q zAc3`x8w8t@vvJO&<8b2SKXuHMfUVc_l8#dxg7$^5fd2>tGyhD%+{vqR$Xq?;av?)NNwQbN` zMxRib;(@xS#|J_#Xq<*Z)1^@4a=ea*Jc+~Xb6a}9s&Bw_tKw1bVsGSgKUN2P+aa@k zvi5G}@F^S+o&NLnb&BF?B^`2pYMwO7;Kja77?Cci`_PzP#DELCKg|D9J+Sk%b<`8c z=aTPRR_&@D( z^|Kb9F%>4#r~z}J-g|^jjk(M0bTa$8V({Oq6FJ=--lOsl+{SF^|%%I?$ HUD*EslXa{z literal 0 HcmV?d00001 diff --git a/packages/docs/static/images/codelabs/context-menu-option/blockly_state_withblocks.png b/packages/docs/static/images/codelabs/context-menu-option/blockly_state_withblocks.png new file mode 100644 index 0000000000000000000000000000000000000000..84888664e225fb954097f7608a0e5a2f16ed6b19 GIT binary patch literal 49890 zcmeFY^WS32uRepuwFWgIkc`Ft|%_cP9{n1cyLycYphQ6x6PDhR!;ZlbmPTdt zJ!7J$M8lSjM0?*E#n9+)NeC+5q7U^idP@<3;bhGa-pov(66a*Ev)7w~E&R=E-Q(2D zVYBry^?EbaVRMlW8KF6XIesH68DUN8#F+KhL-CI_Jc8|)6iClAkv-bh(APf5tEh1M z8rR=@xOrhv^j=g3eAvynf2=V>6aR#WAc@zpE%K8BYb67rP3y@A4M7C4H){i?>oW1K zj2*o1wkSF{q*DuECDN&-Fv4fnD+cx0LP);FgPVQt5Qnz{_=|+UpgC=^X#SxAg}=hS zeZLp`jY|~um@3pd6C*XYblf!0CnxrrYv2qdCn)5AQe^OwVGW@|JGn38)F*e<=UbC@ z=Ml+dd7Hhu?fgMGAO2mGt=nhX4 zu@$~}TL7@^c_JQYw; z&VnF~`A{fv5*6fS#FLJ9F*MV9InnW^J^lv4doG*5Lkzp4jKkbOqE{ch)wDzDKTcC4 z`V9Mk(I@G?+O32*iJkm7T2>Ft@)cIyz1v=Jj9M zKDAG6qHuP#dM~J*O7GPqmQ0SHcY<5izYzi{xchbKXV>-w(f0{nd2YZ<3gS>c_Z0W# zv_d-6Bfl3$NFY0~L9hf3=7r=R4gx&?B}yE`>mKgMU%H^zzIS;_#b0rw?Fx&Kd%!!& zg=@au*qeSVU(gTn1Ejx#uyER_dqN+VLF8(Pk(7jL#*eL=Av4S`p1oTZjWlqD5O__0 z1xvo52*wTwt*u8q2=G{5KH7O!#5UL^5WIS2px`RIMZ-^_{mKz!BTq>98{)?E(((O$ z=J&fFK569h&n+5O9_qPNLVCGzxezex(NjYLZed9}lzpTpT1ohmulHNUk0x-5Dzmwj z6nnwpM~-l?+~PX`Hi$k5O|{jJD!@aNi&mUc}2yo%LnjbeOD zB!<1$laV!sA@Qz8odQJK_U%=jFK%LyogigN%nE8rQa_c`l%vNaRP|cSoLf$e*9N}~ z#)Pp|ooJ9;bz@h!;`ps{Csf5&5hL_IM(>AaavtjDk1;rr}Pt1%UrQr4?<`qalE?NMmE&Pw9@AvY{PIx6v9Roc~29H z{9B*sOc1@);br2J4ZqGzlsLb5ebRgstu|*xX))U{JVaFxnzsH4t&fl0UW zA~lGw4WGondlku(wgo{i_~QzPE44RHYvfY*?a>el(XTK13P&_Ys8WHlFa{B{@2Tan zc3|3O|HB0YW~c4=lF9Afpffb%=7r<7hj2)?#>k!7n`+P5PnwMTDEnmlB~L}$l>+i8$JO(d zaz^s)rB9bolm)ekm z!jF%IQ<*NRhs}aALW)8XKJnhM4?4*6ZG#lE`U$^G0+gRN8#;Blf5wkwByIHBV-y`9 z9%SjVD_wSOcW(ElHq6$iE*N>5jSFe+k~I`swOXy|l8E$>1=9-B8pPJnO30;GIBJln zF%|hceVs71Fe5T3WLYqoh2H$?pJiAq?kWDYSIRSyYMl;knQR(p8iI8gRCe-5@J47Q z;K|e)C#<{ojV0I?7nk6awA5Hsx?7Z(4pcE!msYhHidG%hB$+E)J9H+P_0vBHtI*uHqJ!sbIrI!QAeJF>0W*mIA{oHK<@tD_I+@p|nCl9|{Rxsr=^>c_njSs61dyh*fZ4t~x>A?x~`p31^`SuCN`TDKet>6*cCGO4s znFp+5-N@m>PWOuMy6+C_rgho<)22i86Me*Ah&hO)ezShZe(`>n{{8;%0(Sgw{B;60 zpOT|f1_lNdKmR$%wu0tb)6}APIeh({u6?}Spq;**EO0KU52i(%9V<##mgGqXdnbZ3 zf`>-s7Gp_u2+@!jh`ixR29x6J;NNqbi1arlj#WfXZ&x%L>UCdtmxMNw+Txal+R9|o z{h%GEZIXH+shu_*&n{^0J$h{vU}XQv;rW|al*Xpgk8y2pc5@x`8gdhU=%!c*I9-fa zjlIZSm*?Y86HF7j7bc=)WVLpgmGGu%O^YEW5(#L&!U-lShY(G&sIIq80qutuaYDIgv1E%R-?Z28{&C2mXEmAAfI*GUw<&0Eegn$o!9rrKT?)d7o=iJ&6#(xj$bdqzv^ z?b+5zIX#!!`5eza_Z|1no6_*3@C^(CVl|s9^(0ldn%>qzX!def4)Kx|j!i@LjIF~x zK{lhY)}k%GZF2>qtCnGns?)Xe%7y=avGz2jt2Ot~+d0f~tno*q>#?qY z$bg*BlB=m*ExEPD|CsCJWmeLOzmwCwn9K&aV2%?2&c5 zVsSO8o4i)ew$Y1fyCXh!gpN->D2?}2W|)~y-a(#RVAU)4ym)g)baQ$$d9X3f*2=|N z=&ES9>>1xYFA;OSo>|M5eMOGLhs_w7mTysdnDuvk_>1wUAE`^7bt77xSKW8cONn8` z3bq@Io^C~dCPU^T4zLg67AKmtyoZi-&uwd4IUIjFk+zWAwcfwq3z)-tf|VikRp@3~ z=PvQ0{x0ly>}=kkf|iHBJCk6_N%8H^v+Iz>uS+%FOINUsP6eN<`;ol#WrG>n%Mb^XxG%BJqE&A&9RLkpJFCLO=*HM?m@a8F}Cv{__R+!0Y_;jr=tj;TiBB4)Af!MEXBZ zBSA8e|8uPilp(xV7L}3$zLgC>85`R;nAtkAzjxgNZlKvoYB(Su5WIqa5T!oQ90Bqt z%~jML)#YS)4Q;KNphmU^#!Rl(c5pce{I0yfrM0mml)}~8%Ep1$Re`M>}3-W)~M1 zCKom)+fSywmuC z*ZR}D{hql92*L-^Mhf z+4S&UuXTyXa-hF(D7kscr`56~3FH-q{)vhL=|8{Fz`&RTBoH>@zrU{OzQ7HX|K8Z5 zqk#UE`$|Ovv+M1 z%P^Tie)pFtAF^ii>HoEX@&tI{DO3F?>j-=cK0n-OzWRM9#V7v`C`Gie0$R3eblGpi zOb13P7L)84b157MBT}isKTqt?4lBd9Cg%vIFeK5EMfLj=W1!unweoDSEEbr`>r{Vj zZP*hqk^$2~5(iXC@VfBGo4?lKHwyZ~La+19(KLuAvY|?Ef*yW*ixYTuVKV!bb#$PT z6dz;)=dW>sg@s{e2$-ZV2>o*J_7a2PYaLnhS8SX0ypNj*PX54?s?2ehk@{@-PoSS7Dl?LF5{33-pj+OV_6O?`f zc%2-3+;>ZGYv&EJSuENyzVb}+;yBxlZ+`9UP~bmSQGfVTNLiDG8>sZEVr;91^1ZSF zysNKY`bit)jaa_2G}w9#t-flJfUUfG`ym*&Zh>DmwOm7ve_zM^v*0xmYjt;|b^F?W zZE-=9P2}00!%&dhDfx@Kp`SvtWxnQiYhF6QlSn4E`pBYe1gn3!TZ`&ny<}^Qq!}x6M6G zjk_pph%Vktg#Lce4`0s_Z{_EmBZ`3|k29v95?QT1HEs%3&g-2vvg~9?57XZkv4o4u zj#Q*^WeoP9-#X;%u&6@d%M1~XzCo8~XheN4SN-B89(g} zxzO&C`fw$6RVEBslPm8NmNUN{SZVYPQQA$^xCB2zC-43F?n>olkP?HzT}9C8-4#hm zje|Wm?ec2pl;hv=-KW4tC)9i9!^qsv!>6|vo1s(Hv}(ww_q6p480qo?+9(DuhC=#Z zdOr6~?Q>W&wu%yJ(qj=*WLiIY@AjtZCdbbz(X!PuuME*wyP-a^?Or5&oD>98QR@+K zqs+rTg1y3=tGGn#?yjB~>|Aa#9E|_v6vP+iFFHvvsMr~U1BfbjAwLtI|xLGoJ`#wtT}4{H_6 zj|yL5^?l!%G4fLHTF!1-Ti5rOKil#)v6QwR^|K8Hwm$ANFBiToLv`33d~vx{_qw^M zeOw1NUN8n5C(R4uYQ7F-u^2bYuu{DG{)`;;@n#AGI+!{K+ta8Ed~$mDT+8aG)3i+^ zDXb$bwtaWePIB7&wjf}1!rfrxYe;)WS-KX7`^!Kj2E{wp<*Zh9yw2_fOw@$D>!-AW zwWlZI@D-W?B^)IptvmWr7G>u8YI-om)_Q%q@oHMn(y4wNX7-w|HyG(8pIQ$*`SQ5w zgj8Da$Nl#D5{BO6ERQ*-t=AkM42_(-#3JF6@h4ZRTUS_EVv+{y!4+C8tXuFQsC@3g zW3#K#baCDe_Q=QYCcL`(b83IBNcaA5Ie`2|MK#9wxViPrPof>)r(q$Z7vq~8*zLOr z_u&wVVvMbMeH1Y6d33jr_Hy#@iP0-dK|tpmX}hd`HEj=+H`~5oP>AxHF0Jchu3@PR z8fz;sm6%b4a>{^9JoiTI_E>EPiUn#=v*X{!vL9-tmfwShLRK9~Rt=VrYb+m9VQ^Cz#zb=S?-+E; zu)7NZpZNDg-T&nNOgg3p+whzotm!*Mg?3a$9HiGZ8Ak@wN2Yrm%&?r+rohCP?hNX^ zE@pMK04!zR*JI0sLXXhN$u#G5P!#ux7j(9Ip*=Un8g!t;&Fp#kwJg|2`*Df^bIg)Z z=dQ2(pkX(6Gu`cG+pgzPfQ7%(U|;Q~J(mAs>CqT^`3`P&SY$Vc-`eRr zXElOuL93~M7MGW(u1Yu|JhiRT2BGAey4d!zynLo^i3*Kq9)#q#mL<<+!0TUZ#K6!r zx4sm;xY)T_<%z(N^C=xt`TH$a4S$)I%SINrUip~{EEc)TT&}%uY3{c^B*cpz{UKwk zr-K3lcQ+ruC9K8-q!*RI)(AKght4fRDG7tKsQI+{Y;yiXebb!pH8tFS#j zJ;^$-PdcwQTFddh@blp(SQlYr4 zTmR^{T$Rzvjgj%`#G|U9*6{K4M;p6ljA6s!D7j9Yu8H))+_$^j*A@rYHrNnUk`Af# ztL4=Dq}MC1{fVsGOZiIKF!x;!(`SZE`e}G@Cx!#k?>^g^D2gRrDjF3M`$8ykToFb! zNbSpgffSZ21)doBReRNd8weUOuvXX;JbI`z-Hj~Nh-^6@aA=SAIU8V)AZ%UxV|QW7 z6j?=VcNbOHO3$EMO(Agk_1l9M_iifs=+Smw8a4r~WsKcplI-XG$E<)+yTw*45+9@b z{aWHNnP<&+HOpsgEnf*sjC|SJDmN4qmW|ntKc(?m&A1xwA)>|81G3Zui9Xw;l#5bcR z$j*8*h$eX?G2Z zdUl8AD+ltMo;*wM!LK=Q8d=`4ig_{4hrV9IXaX@4lBmpaiiGB*pk>~r{FZh9YABM#At^m{&r_`J}vsreku`&wHH47&c( zz8GIBp=p}7nGwYPI=~;-m;l1*1esvm3yRSQGf*;`q{0=?mWak&?T%)q$Q*+&$rMP~ z^^Xs?vE2jwF=5nViVR=+4e%nUM?K!JwQF1Eyshc%2~^4x_%q_7FJKwz$xCiR$x()X ztZb^ixg2epdR=2QoW7O48BFf67h^Y*Lzp)t>27yj$>MRrh>SuI=6X3BM(*wXQQL-= zhmKDbob+1cwcA@It2ZJfpNYActeTFycuJ=J3Fr~2%RjC6mOE~b%7XDVqOb*Mzo4d| zzRS4toIbIQXNJa!HZUlg7kv~0FVi*GscSh@#WC-unyWAm-a0Fqhl6s5GV`vz0pekR~C2P8FOx@o$<2(-45YRxF;7z z`IBg(o(HrEB7`dFJL-81ms6U&XU$E+uO9GWJkKdtE>r&iqD|oSZ3?-|^ zGM;zS4AB;LN*kHeUvn*7T^_|?k*0|kxVUK1p=G-g4QNGROK~~{D~e#x99NrVIWfPhSM||^qwvzW(ik5SO6EWi z6{KXvDuOzrl1vC0%TuT;UW130zNjh`cHN{dFR&rCT|J(GF&dEuP_bHF>}$Iqsub^n zaRO>wNc9bnk#RL2i@&TLGl;8`O#bL~M8;;5Z^7iPFiZZhsRvyP&Zeh5-Oa@0K8jx+ zGxcgV@bszB3XCBX50nEh4<)j;b7}m|A+Y_Bkg80F26IR6;*vF@Xd<7tO}M+ihMB=L zy?zL_vgKHzs-*?vyU$Zh&<j8;&WThdaLZ#%Om@f=5_{ zH<@#i8c%Z_nDo9B7pC-EucTBt2$Vo66mOD1b<_4BO9Cvq?p%MTR~fD_7)pAQ6>4b9 zDnbIqc$ZPG5z-%$jaB#6vVald%YEqoR+-FYsfypN(!|M+&1R3*Pv~&RD@U?1aO5+W zHnIH8QDar1&-U9TERTIvFM0-;h|HD#h_&`I2SQ67}D|*!2N~pD;8jlkp*|Ipi<&#Mcz3Q^*4b} zmeo!enprBR{8h9}1A|cC2gdizcUW^N=)Hm2m%zg7_i-Ri=>b!Ye_Xd#lI{-$WfWAd zy9a81JsqmMFIMp3zFQx%)O+dydnS+G6h-6AwdAP7y}#ORycEV4^ZLoD_y7tqdjtRSEJ-Qf2_;wwp#&sz2-kVjSdwj7~GlUeE{Nj0c? zu>4t_%w71hbj0r`4eMcmELsF!#jq5f9ZY<=#Rwv{W{uvL*l$gf-MtWLnb?hB*F(ZO#YJUu3i&L*PxtkSyp zj_U)8y2ve1=E5L?1e`K4*Cveb?D5JNfnEY(i(&qRlKWpa0S!oaoV6@i-&y|ih>;pK zTJ}?0bX+bP36f#==(6jt5ved0UTF=ptMSPp4W7}=> z+^WRMUI#3JE8(kFTSjj*D_tU=1E(?}n$)wAs`~=FDV@5!ArZ|cvtPca5Bl(M_L)4t zfNaX*^dF(e#b@mkQ}gRp{TSbLz?9+r7DoO(x#NIeY*e9xFJ1cBh`10`O2F2rQDO)s za3BH06F#uqj+Hn!H7fEv5Y+Lg&lzn_VIF2WRsnr_`6_}iP&|xV)A3MX`MCRIupHMM zRnmtP5?a|rJX&k6SFDC=J}-npzQndax%!*Dq(;{FJn2xWtH6Ly)Pud=h5TiAGO7I3 z!IZ&w84M8o;|U*7-$>Tl_vnokb2h%idq^NiS@2ntnMB5C*b@}*>sy~7{I}_^>l-c{ zUj~5)s8ZxlvwBcsO4z=#XwF4H4+9n^;a5ng+0&Z9q$w7!9h6iyk2k|y<(NCs+f^Y_ zb=ytR#pYb7KM4SZRP>U@oUh!f1q$hKC zow*fDTnWw~la}1kS;ts*`pEo)i`ZJ!N7Ibo$Ydllxh8R0)6d9t@gMA0{g2vC;+-ZW zVEIhi;eXi#QYm3rzG#E>Ygj04mRa6DJEv9a0s%CogbQ<*7QNg3x4`)s8*~QwZTnpi z7Qo$n;~IBF%MLDo69Wg~h=+)ljk#U={dsnM(r($~9s1GA>4Iy&W>#K?w{wqNEDO;) z5#ztUJ_q1qRc@HvTl@zIAf%&vA5@iL`6>(FdjT<_ZROZsScnLU2ZmH&`PZ_$14^)b zU4wAuznp;t9N~>DEdQSL6?FVTP!R*Ja{YQhQS5u+@JCW z`UWb6IK~Ak-SSDp^4+}b4x2B7+cEhV2JE^bUjo?{bLpGY)hIru`A>a}=JV)G^%Q$G zQ@R{EmTEsvhlGUgwj_k4t8SOEe89Q#X|u(}@zH>pNC6yR{156vRZ&xX%}BRKb!tEO(^7c9IHtdnSGf&93A|%dR{Vi+7gKS(S$@KlYB|)$5DgP(vABwPzYNZ%hV`=4jDFlw%kf9@4;@hl;2r2w-pXmK1 z4b}3(aOr}9DBi@}0&U*=b{~4aGf^W(iYEax!~RN{0gie7r-gF!!^sO-aC}p;fO0dy z4ZBXy?buqPuL@nxJN&vc&G6zB=-MRAygy!1hg}(ahFMhwf%vV`Mom(z6H4QKao6X8 z1ZJD}xi`;Y?VJsCOpdE$)&&SBFz;|$fvB||aA0H?bGEJQIwh8oYQ^fHgZkAd7Sq90 z$MQr$FL(VIx8?x3iEw%m1zdgH_LKFY))lkfxHr%U##%`?3cGqAd)Wy4$D~yU|4i6^ zWgpXw%G_$SQ2Jt7>LweEecp~cckW7i+J#7sQP2>zv65ROvUe0$b%zqF@%D zZw2pnEUu{@2S2xKnmVVP@6W~*$m7y+$9IXBt{{I1D^pQl#QPFL_P(r1`0+e-@g}jZ zUk)yKU3Xe6p;=?0>i!5!rA236{3CTQyA-QRsfNkdjnh96ghmrTtx81jFc0o&H+lhd z_NDOWb>@~sw;(-3M{!~kBwV`UdnBULtUW^fYb~%IL3WYyn)gQ_K-_aSq%?cwGRU(T zsH`C1B#ieo5*dr1Wi6}#5p;`X0PTp%^txQAvzQ^aZL+^wIP{)6A$4-I9{xE<>uY=h zFf~%dzpBA%WLn%ha$smdMYm2lm{F3^58`R(HM0W3U-`&~C4xw4nB0}jM^ z7c?P(a)Xu#UKxhrK(6P`ff$1rb@#1cIat(^$W}Ui!SY>t@mll@(NT`bVnhaq;+_KWaV)YRfGSG)KRfvBkUBF zBX@I6O#d}Xch z;6fMFv+?r$tkxJee7^YT5ZOrhEH8bYQX$ z8VV3`Sg0htpftAh>^BG#H_!geDLvJ~G56tY+AumNg`yZKuG7HMwzJaG`1lokdK8AB zilNB9u%CrpX&O2@Nf(-Z1`#F^_1yXk?N^T>!Jb{7W<2sYtuxw6wbP~AiRd@HaM>-X z%T-3(et#A%K1ZnQ3U!}E&;HoFqdMbnojYK)4~gR!FfvUpF*NvcGUn!X>?DsuMA`O7 z*Zi0xBU<{>oZ7g{JaNUaceg{n_o&Scx-tc>xJnKhcRN7WyAt8PUW*-*5xSijf@v+?OtRl)5jMZp z_PIYdPi(+rL^U3%)rj@H-dkan!6`E-w;pqI((fIZj%u zX{^*x8@m98b4WQ+W(o`(l5bF>IQTeP!4P3LNk?+!gKpXn<|wM!tW5uA?j8t z3BLCH9YHGScEGoEE$=$yu^6jMj{^~(r0>IGy#PEFl|U0fXTlzC4{g7#MF@|fR%?Ne zB{3g=La-?#d4B;LQXecC(01Iick zJ$y0=F46u;pC(9c!#4%)j407qtp+ksH4Bk~QYmnJA)m@ikh%=exGBRtBP^8jx`xxc z8GGtv{xjENqM+Yw>9H;??nhC4NSWJ!B@Ax2?7Nm_&74hZub3+go?dw~ekFv2kUFbh z0ZZi9t`egsu;dQTb{tM*`YgcI z)UL4OLd(8vxolpZTY7Mwwaaatu2B7L;kflZB)E^cmH+e5so%pU&fH;`R$RK}$RNgSjuAD z`5P>wroGC(r(R(v5m$iMM<>6X?yjsyB}57R`TaR{I$8f){C>9)!%f!%Y^0vl=vBg4 zhx@{!Qt1p0Bm3hdUDs_Hy<~xcM8=1Vs}4F(ydd#RCZzWBHOoauy+cdOE1Pgaty9V8 z3_sE~Xd-z_x>c6aDfJCPpK8^o1cLV67j|_COY2vj`zP`J@kJh;GA{po4|q>`@nC_t z7)kYSiKUf#jj6c0CK%!b#!gnpW64BGW9%}SyL@VRe>WkBRJrMc2wi-IwV4hIx8-oy@&G6GRUz7g4{Y+x=y$< zNF8ehfuvNn=2#P(3|a9vspruzL`#hv^LFWNCpnZzU!O3Bv8IbeR6#6tTf2EvIN3q7 z%{M~kws!4edqY@XiRk|?>1p{Dx3+!g zVE=|jQF<)yb1`F@=f4+99VMCF4eL44=lzmqx!7y$cI0TCyXM+k4)^K^NFnCh^T2NJ zH=B@6C0uj@h8|tiKDM7$m$b)Mtgt~D5_>wjL!1tGF(N?;ZUzB$PYb8I`A;$z?AD`- z-`q)}`-G?CJAt{DL#KiT3PlARLUmB168PGrY9dW9qv=n4P-?Lgn9D|cVVBf1{d1tk zREOHlE185JWe0zzm;)pPqTWa7{n;D+PI`xQSS_A^Uj5O2P86Z<3tDph(>;_`iJ%PU z4Zgr9b9WTK9Xi&JanI)uD_DB_>PC5T2lkVU;#X>Rk^_~BB#THu`LVuXlwURK=Yo{d zLh*D^+|v=VLg|{jS5W-|z(XFCRwD#H3<6DJwTtGuXxX6cRa9Bo_L3$I37P5ELnmR0hw^0WJ*gr6112Q*G7vFF~KPmu6y$yhaN|X0*#x+1m0Uala z>J>*xmIoxh)B>t)C&qt=XM8Ux0E`GBm|~gya2(X=GT`_;9~E2x{s9e8E$zNg%?S}$ z5ZOC{&`M{x!onX=WC1*mXz)<^sY|PGfclgmfn{f%PsAG7j5m7%;80UkdkGJUa7Ah0 z=#eSn#o%e&4$zj$GX`;dKQ$aci%CE=3uCN&1~{1oZ!4m?l+y(TsHHLqv_(4NRQLmE z>lyABmYqL?$`g$#fQe|D106d!aHxT6>K;(X?9#JBKh!lqV23yWem!ec3Qo6}5dk=I zzpFr~hP45G^h^K}2aJp7;i)DCEd>-0cccO}E)bAdXb4FB>KIi>2`IP*kl0XbIZ-YT zpUKYZfTqSgRL_Bqz2*Z1R$hMDnW_R5h1dqj6Y${6Uj`^9Mk)Y2)i6B-W#<)8%Ms{T z;kT@nzuWI#fWV#AoN21zcL0pn@c5Lmz04ng;T{JVPPB7VvW_=Ul3xH=K<|=mAuuY! zrtmKBJt*%tCISGH%>aN*2X-8CK$r0VdD0^og@LFq0M&=S1==F&mokNSD>DfwOO{f0 z3lqi#f&?lVKph;Q^2)#VMuLO`;ZbyyM(Gs>Ou(rE7?zjr5GVLC7ZadpVZPBqO9B@d z6>7L`kLVQk0`MIXfIeex(Wq8%0Rpqm;p05u@xBD$AI(UCqR9$1DJn%m_&CESiw-Kj z#@}%U^sB=4?iIG*Bz(4*!^auJBc2M-ZzBNFz3y=0n1MHd0#5m7xah1F}Km@c06Wf4m7u|Quf77On$JuaGEjSDbELU`s$yBBDI$2D+ zu6_>52Cu`XCIrx;bzoVRcqR@YvZDeXF?EQSz+RhFk3finfLO9KPwNvukWl*Ow_CT~ zUqAr@z(VRL{g1@9sv$vQGQbs;TTB#|1I^{Y+)f9$nB~7{yKN+yj@XhEX#6#*cBMjnOg%o~5x`7pxvN95DdQ9D-1 z6LbQjj5m#f?q^%<7zDlFxy6Wl;9FWx64yBlIzm+fBZ)ZZBgusXDUMD_oIKWIBt~Uo z=@jI}wRD@Z9O{6*Dc7BXywN^3lYTHwPmc$X@@tUvnMMm-^sJPsS5T?oeoGj<<2!6( zqd+3IpOa6-u3a=qfqcc3AwtWB{wkCe*WUt0EhaWd?sei&neo#np59O9mVkY^wBY0G zIbawRIaPGuh7vKnV4qG5{5f4aMor@3gMyBmg#g-UMV(v8a`5 zC#5er&!Iu*>yHCgRCs@7ViM2WH0~2XqDYd&^K8aPS`_yDy`F;PP}!n(?*|h(EY;|r zG7h{X1)nbZbgQjlhUL)sRih zg%R~`;#a^nC-^4&fxSrQ2bCiyt6G+1E?Zrb&smBokoG(>R5_Bdi1X*vD1>*!_BfEw zibbg=VxPv&Rim_ zwg?ad``H^9t_whL<#@-i80=WzoNb$v+>o+b1vpV#PBp!%`1*>Ck>z@GmHIjMvyGEL z5CO&HqrTsdgZW1BNrk{hjUPQJx1_&@ynaVNz4erp6%<+vqQ-=U?sDfox{^G>1kJp# z#9TkUE(;Gb?Swp*@9zkmo4ox? z&SZ12pDESYEyJwZ+8Wx<(619$`-U0BQ#WNifKigod!=3n%Usi8h-`Wi;Oe=2Dsioj zd&is5baUH;Un=kGN3wA-LlLxZ!wy9-t)j6P5VXypD_th?!b7JOq*Pmb6hZj>y1*9mP@r?|eICeSl{f0|m%a9ZFn;)F7;eu>;MI=*}B z98=q~qGj9C4$^~}ap%)3fXt8(AH|KKcQ&|?%oC*U;Sn{EAH|b9Rxe>#^h2j?ts5!pgLVgq@9=Kit|~~0 ztvKa!$;anrwQJTtaa9S)*a;v5_FqmEZNkZbz`si*v;I>}&!@V#?b>qSj8=D-#1~wi zC=hBa*R^kq%4WxG3U>`zuJ@s~=*R_fgcMzo=vr|g32qb&7_IZs8u}Oj*PErt$VuOi zIf0tQy5J%a>8*@6E8>A|aabrWZdxtoiyqq=qC1JTa7i52UQt~1v4 zFG3>C2{pzKx|M2%N|k5xqNw%`$M?x}k;MzL`0eN+;&BC>>TRD-IaLREQWmSWIp3D) z3Oy8$(aC<~q!Qj`Y#g})R-~`Wydba%JWT3>(T4UP5i&NB~@8OI?2HZf@*8X1AEnFBEb^05ch6Xr8&t=0UfaL_Kv%Eq*j@ifgD6y!T z_7~Puf>wg1z_5KaDhyihD%uXWt8I4XNGl3jZ+>v6+g0UB?)=IXZ)t|_c}ND+D?-De zHmiuT-J#}B&nMfVBfntkzoEYkOw~Qh+@LDe?VmfRLmf#bNhjHpPBVh8bggn&R`|kC z`bEU=?@YUPv>?DXXJm60Zo~iqbijQl18ob(S{N#5H;#G12V-Vy)0>#>x4dv2<4%h~e-+DDsL5Ft5`~f|M;$7=p5NKaa z@=9;Xiu$6_wVvlrzfE6#*FmW#L~mYK9V+$u-8maZHxp$lA;-hDbUcInk5hYNR{x%1 z5~LrC9FR~nt;4Zm4#|-H^^aIeXpxn0CM7^=H=#` zN&*n;X}F7=WBY~rKAu#wcr(l9xZxc~kw4`ikh|?n@%{|jjhF_htbrx>-M9$4(Tk)T z?V6tSp;HTqFAr%wY>fGYvN#;8grt4bBlfG@lg_TKbq?7sla9K@IyO|uqb>Ep2m|`A zi}pbc8do=+d~uBYLpc?mjm7QEIKZP+JM_yemaKbziJrrbF!JzC@(V&{$g5_a$1jpC z`5^VHMVyXVEEJi&a!qJ+Wy=v#50;7e_V1xqcdB%xu)Z;SVDy=YPmF%(L?>de>f z(;D*4`OIvcl5naFX1Fksh~Z&&-%BMg=iXfHIPC59$YR#Yt+3M2>zXSrA-S#r9U0W8 zDYR@Xr;T@NmnaNgjMY8pUR-Jb$Gr}AT`QbwNRzvYtybX7O2I-0Jd{>*o*BuLKCUi!%-vCPK-i5G^yD)|`%)#N5qDZO2336G0y2l z>P~*4l$^s!9kb#O%YE>ZFmsM{?$k?k!7{sg!3<}oN++M}LS#{0G6qbO-avOn!PYDe zrv!<@3J1IMh~-u7mF;(>-IgOO?4lKp~57*J~Uwg zG?re`D{b?35ytHlQeek=Ml3!9l|2l|Q!1;<(Wp*eMJA(Y%{bB^GI$g-Ms%Wz#C_CV z(_jj(y)ty7!ca?xkY>mfD~zM>e(|#L@>Z98gN}~oPvJa(2dOykE9>j^&?SU{WJ>ES z*3tUwfwNE4qqo5=ok`>&V-buuTvR`=Z!}dB!a;rsprg8)pkrfJ3k|~jOiYS4ib0rj zZU?rAY#*Lnyrx4rXH4)Loze2)bi!uNIaaS=$*iXH*iR5z|B~5im8#ugNpDn|ov0xE znC)jbkdxhN_DZmmW^_S|fGDsCW7Gnx(vV{-5j~I-(!z5>q%s5XOd@zr2v1HqEE<^L zyWpbK0Pn)?EzOA34(EoR08E3~wB1`nc;YGvuq)dTY`?E?mgF4B$5loLKhyx(ZbLAT zBTqTz5RF>HS05&Lj;zI8BmmEm0eLF5WJ+G}SAD`LF@enb$DAlUMGgiCs*$4;)dQ+w zII(R6XQ+bh>Ho4n<6=PiOe-5sgH!_NJHEmhsvB>`FhF3lI8an~qgAp`0jDP_0eXTr zA6Zou$eyF%WKGOMuJk1mJbQ*yE6u~F7TExE!3RLEiEZg6@Ous*1i?8YeBbS_aHfgf z4*-u#0lZfU#snnx%>8w$nr`q{XMi)4I1o#X*EC2u@C;vC1K?d$bbi3k5;#%v&w6D5h)rJE$>-bv4*haKz0pf}7A^4e2LOXY}KH<&?VGw{ryAHqsVodw{X37R| z4#EOc0(kpK4zA!xcs0lV-oM<%Q}`JPU(sh&iezvN$G{1oF`>dRK#eXq00A`Uty3nyw+DZ zdc-f%0PRA714NAu(Kcs*l0;L&@q?GpPFz@!C$u9KSZ7oM)?E?T*(5!e^S~8_&Q*qKLa?% z6zQo!W^i_8%>t0P@lMSKfI)=~j7xafmO6?wJYt!E(@_5xXI~i?Rrhu+Aq>q(jnW{} zGN5$Vpme9i5CS5C(k7Wy$~ zFchhQaO(-&j*1og82VVmK)uFQwDut`Q;rlU@OWSQDctTR2!j$r(UKPoWI-5`%3$Cq ziJJ}Fl?G47#xOTf%e%tkpjUFLp(?xoEj%$*1p%r-Ri^Q1NWTNbCxoE9{53p1Ib1vt zVHXwA?dUga!Ilo!tEFT!Kmc%MpP!ff*fF2q%!zN40&7{w;;^amu*sh$Cx=*T&k zL%QLs+A~YdBY~5BOej%j6czVK zBfu%@&>$bmpu1}()$uqME3Edx%8ElOt<#lR`t*eP8WbPk%HIS zxIg+Vd$0IWJpKk1Y914GAMk8mJ`gbYER~G(ZuOw%HKt_noX6TM8v8)D?ebLT$%!Ni zS8CPJy^=C{0Hi%im2?^5YwYuF3Opdc7QxpKuo%ae9F|;`mX`2EmGLHgMqlI)050Jy z?f}Zj_wzgf()89pEp#WC|7Lz5LViWEXThRr_(-`8%D$F40upkeUWa;OWjtGq+YY32uJoMo zVguV)i0(5gc;|a0M|%!nBY8ZwHHw$J_2?%4K*>8vhL4Jfo9~)-Tg4^L*Yehx7d-*8 zQl*l=^~;O~W#|fr3+Y9D>mXd>^)tdh!B6HfdR@j=a|p;Sep641OSdX0!S;@`Q8tM@ zumd#t^KJhgHPj`~McMPvG}6wWry=c$WlwSCu&p!OQKgc1upkq(nUB_3T?WA0h}@~Tu*bpV#ZnNue^w=! zE&I~Sx3z0Ko{t`LdYRGz z{fD{X49cP|bbRm1CwhGEq!ul-Rt-fjM{CgDVRsniN*Y>3Q^QyDm2R{Ayqd04#=zolV^FxfY^%}ox1QwSWch34 zVrwe^FSYv#&h8niXNn1O7a22N$cm{XQnVig%S6(%;1#P0DrG)p;=6%5;y+8XW73#& z=Lv%?flY_~8jk-M)0Z!6&l=YYN{lZbdDm9FCTGJ-aoLq46C1DJ(aXw8x1jvZVwq5HEnx)Rn4sY?7D%DTdiOsN0juw zJu)=n`O9zh`F%2D^lm78wSoto`EFL#X}|wFS?|vx3oqRR$^OSM)>Df@nF?(_ya0;I zv0(dn?*cF1t5kvGQ9q>ok4`M^AR`Tn5I2(CCuQ1 zO`)Eap~O^CzRRsgAI|^hrlcY;IqYAZhX;h`GHN5So_-|rExvDe(Enq?3%Rxnk`}=` z^mr`pEeoef&m2-jPBxjN3T9FZfDNSz?t~EIsey+pyZ`mU&#(`yx<~P=$n4 zYtuviOl-v{@qv=J%N;W-bl25_BAgB`se0kPx*Iu#c_2~Xs8&KVTP@Y*9`b8|{Kw>2 zEiE`(3m?6k{+0x0rC|}GUl77_$CK7NY$Q@K_>R|k)d3ze_asqH-;U_R67h}~m}_5O z4z$yY`>)TussANANfyLo`PrCCT$;RU2ixIc=^)t#Ac!dX1q$L96P5k!u4?tKts~eZ z(C3y8)g9{r<`*U*hZ7kMJlR|DO4H8Nr zmX24n7VDDSP;rc0gts>h z5DmC=`!=f+gJXncdEua>YF2a$wAp1Fc)SLk6aA!|PlQMS?C{1b=3 zsPie4z#@`C!>|hS1yx+HO5OY8_HNNvhKO$cJmt;R2J;6_n{$iJqAO;LaMFln0kLWp zZDES^+KD%XMg;`$mo^juH&C@F?-nCvqM_ZjA(2Nk@}O z;%t4$yFd->aQ5FMIBqLzFg18N*lFF@IHw^dyh&A59c7*mH zT!sxMAzIBR;ibbRn}sWvJA8}N6Z`LEM^ieP^z0ppac=ltl^YaDR6I-Lp5E`ePaAyu zE<>*|XN;l9mPfNuOG|zi*&j1R_i2O)!0#6)l7+7wI z2*yi=tp|+f2s<+$jNjK5Iln@WE#J2D=3k!M5~wL=maTh{y}w*CCK-x9%qjMMG8Pgu zoYn_S&{CGt7YaG**e5pf0z|*w+TdjK-8nqF{v?1W=61{wqxp%A%YHQ)aT}3(CdeTE zbGEzPx()MbhjGNu52T?>_U?J$_ztGX<>5TMK=*}_!RA8a)Dk~yW@m-E@prC&|l zW0N)JyL~W0;5Cf$r5z*a9Mw?!EZz}8K{WDYRPX(MnSL~ULb9OtGM&~bmwUr%`kK{6 z%;|}dI6d+jY%x|Ana%gunCM9ANaaBb9zezb=!vnK0oOOmk#a|0G44CYQcsgdBvj&`Oeh8 z6y76Jz(vmH+abWjoO7uY9ceX69r7H^^^=Ibid2MrYmAY3&^4=Xwzu%+GH7W0x#Bj* zB0JKr=UpDur<58SA71H>Iuqr2s*&Pw9RHG9@OxC#ABrBx zNYcBkoNZ^ro*&u!rOHOQshqA{ma&P`Ty)j@FQgk$!pQ28?;bgs=6sz(hgR9%*P}o^ zHx@^IW8&B_-CPV!Sk@Z|XO9<>QB5tL=rMb5m_DUMxzAJFOz-Aj#G`K8^Io{0Y}Gf- zYt*#TqFN+^LE%lLV88SUCmDB9%Uj-7vjQupv{HS(>26&?oe3LPa17j{8h;3!eEiAl zorMWm#oo%!?5^}RVIh7P<-HcpZ!dQ#krVkF{c|;VJTj1{E{8mv?+G5Gduexc3VJZd zex}(k>%IKPghA<=AwKLfMZ}q@7%bj9%U8|slx?tmsgyk9gTEn*=VbE!zMGYWP&6Ea zuL74F-w{4&@5nMRv4||39A}C7$i6)4p~{O+iZD90rPwCC*>^ zz*l|*@0CqBjUPPy?Ka&d*~=*XpoFaXdc~|;i7q&={ntF*&SX0X#t=_TNy~wWJeaj= z3tR!SW*I<}6>3!!b1l7(UrmFWg3QGJ7Vy!HbGBMw6_ zVxfslEES+K;eba%G6o4OnnVB&>Vhb1yi1fy5O{hEA_|F!=TiovA!?T#2>*UbZ_+0y zNL&KeSzH!PZ3w)}0_~zaZBzsSYLftK+ek0dm2Zp%@lD%+_?~Ur)PnMIo`QDzGQnCD z4?BV&q+IYTS0AWS?Rx-)yJgn;#T54z#Oor4+6k%7_Rkq09S{QlDbsR}!M0Khf?|#5 z$hfpXf%OnqP(Pr!mRG_&ZA8$M{ln$H-p2n^Rh2?fpJ1rW8QdMDj#27rLVh@pnx ze=9ct;8BD-=&t|fYk>XoH276)rS3oTrH@HqaFo8M)W9`{fVgfb{O-)0MbIbSap2LA z+oxMUIH54iK^ShzyMe$B|-WT?AsSUK2pe8hxYB2;AiP^MmPT<)7QW=9OpHFHbd~fAjEU?I#&{e zNTKTB(d_r~Cwepx%}odDvg`E4cR+t8rh^a*o0O6^Z9p6r&=56iWgT+|ap*%0eBCCA z8Jh(9l{Sc8@S65RP%niXQc$2QBeR5fgLwMR&LyG~g~^BPB* z+JKMeNCfmDLmSrE6yBw(enwI)NA` z%~Zz%8K_sRA8OEgkQB_hbCLKDYYz4Q>-tAIbN0aZ(kfO-$CKaTQ`PNyBp z)$k9u-eCvBAn_R*Fy|OuTSp>?{B~RxmfmPEP+m{CToG;)l??cAO_FAYezs>fw;8;w z`QS^<6o6qHcIxUHTe-?1So`>%4k6r*0Q3Om;|0L}_$S*n1+m}@6hvf0FGYh49o8mJ z+h92$;cbaw#hIUCXh=nb6LARga=+203Q?mBFPlw1y~vmTiurq%{r6_;eyo#q5BMVS z=D*2CgO9crRs(WT-Vpqh8QSy^A^GR@7aFkRV1SON5fz4Y6hw3v2FVvJin^QH{$A~_ zd%d+}-2vF{+Y<*K9_rkNWdg~?T~ig^u82TafJ>1+etvqn zD$S@aw*LOznpRtzUwun2G5gFpMe^oj9*p!LJ_>nt2~xW3_o>viEPC_zuiv1DS4Y)?F6c7g4J7hCx8a>3hYgomp`8ixSP-NxK)+PdNX<9W|3gJ&5u zaw|aJM+V{N5WjN@@Z_}h_bClC%GMef&mNp4owEgOzT~_gpFkv}WZ#0= zp#YBuE(G&_0KEl9VASukan2pUe?LpV?ka;8`}kHy7{-c6A_`vzplAw6f@%iR9nZUZsU5vBOO2nH`senC-9Zskp+cE zbvz$T_SpV)_ashPz?wYcmom2Ka{NcX=6|>S^_wFV-+I+uS@l%|_t6}m|9-UW`p35J zv+qOx6Dfw@s;tE0|AL{`$Oo4U9&rhBUE2M1;at^px5eq;2D?t0Uk_t|FWOk-4hu7% zeYeX|Lb-f*Z(ld0u`}{LA8)cw=WR;nX+239L1srnUvemML;W)#OO##T!X>`Jt*0MW zF1%n(V?FnpO@+sMgAq_;jV={>NgI+SEZ@Zo@Mc>ViCjH3ey`wr!lpm8)!2RSuivhZ z`MFo!>A{Tr%U#u0@iWrpro>&{R+F>1UA((l{$@J$8 zyL5pW#=waFLEHIwIcd?oC8rSFe+go)7)J)PaOYC_1;8q$g;`dOc`!M?@U%?o@N*=$K zEju(x6rBzB<7`6*l`3gN^BeeImxiye3w}LK=ELAcTW$e8)*jDbO55e~mViz`a&m{X z5k;bDb$gXfKVC%gl(EhJ!KER>$SBFTp!#51^LEUdN;c!WJ43^K)VnWnNFRJCh{QJ# zj}HK=4w-URiPM+GZ}_Td^Ooq4)01}*FAhqc_I2`9UoNhT9;i(i+f1e%BsnmGrTe7P zppQi}K}Hy`kvR6*?(6;r`cE-h-Pi1FG>=!iVfw5tu`pI#ya`JGD|Vs)-eTF-?4O7F zT;?<(@7h-Goqe^HdQ-a%goXOvk+mdQ3qarc>&<(#f>G5~3!l-vxJBu!?9a`Y2mSc@ z)f9#YCBze0;~SuPYW}{9zI#hoApxAf^@Y3cW+zF6+wEgUa3g6(lo-6M%|?!X0Ojy! zDO{4#mO7yUB39hI?6_aI-U$w&_p8P3)zVC+xp5h8Hl*B7N>-|HTLo)Nk1<=Mj45uT z5db^k!E>6KjIIa%R~MIl-&MU9z&oWh7$0{CIC%O4jrI zk)B0K(?psGh=Mh?T1>|S_ulWG>_12B1i7+_Gd^;dk1dyajWEg^Ymd=OA8INhh{wHv z5q!>TtD;Uky@_}8VJtC*=C37COs1oYrSke=zoSDEvNxhOcQ)~aUHWu7@l`#}Ud#t3 z1z(^3$(-ujY}|<~9`D9{)D}A@3|!hwcxp5Bnv#H3TCF$HfNj--GrgPFYu8Nw@d4$r zav#3wA*OfoEz%)0if+`S&u5|P#jhIGY-Us?-j`ZPW8`yI>MkQ4Z8R@#g3$#^EKvaL>rOtEaELWc8G%+hNEWn-~k+tcFBK?|@S zkHzP+#xuoF{#>OauH@pSPruzRmk6IfU*-!)lS=8;*fkV;TV$0!G`LVL*_td}qEp-G z9ST1?w3S1`X9m~)M%5d{b={TVFULeo6y@>)L$;d67Yiz%Ot_(Zo1PnKT1Xq z8=wMq&E}N-eAd!}$@t->vi{R7Ua<<)v5HMXNP4i}|9&RY&SbYw4qJinyZFF&bn)D<8xi9tdZH=g zo^^Kkv@f3iId5EcI+`XivnSkf%kY;aCR!wknySZs6ZFUKLK1tc)KUH?7BsMPOXizP zNlreNFvAs?wIP-L#p{KPr1yJr%u*Ja2L7P?n+g0X(OBYohHXB;nx|{06P+KK(+kIg z5A@KGiydyq75Iz>)qc?S!;#!lWe(qsj zRvDIKYG^S*yla2Nc$yD`0$-%XSr)AU1+>zafpQ%dC!dnQp*#*cB38qm010EJcruMY zCqNDk?=gwB!-@Xp6(l@rtQvTh8DA6bVdmB2@}|UmkMr$^7p#L`T=g{S{v?J8NS56x zxzmhpG`GDy}o-DAcUEu)Ct!W46DJ{!4(U-Yhm zHz#(X(w~)K@9@CFB6@Q9K1gOoOF93wN)3@e!vA{QfCtGgNqs^!jGMTQxBAF-r8 zY4Q~lPdORC^t|YvH%a_F$a=?07JbZjV1>5!(mPBuj`g6_zky0L?{C_$3$B+lYN^~q zZX1`H?U(f_Vrq^$xC#)i(@3U} z^B(#`Nr=7<$n@_s4diP9JMiUu4wi3t;4d6sma!=2P=kYQgaevFVFl33GPKZ1AFDBnGSC>Hjx1$RJbY+fqP`cO z(|}T}aXx*zWr4&ArbPE#K@?CRB4y&i61q`IYTzOs4xqUwPyh2$H}!y`0tnxd1^Cvz z^M|!tvLGb8#{ZNz7Azc=4&0xRCE%+Jqbe7m3H%HJ3;6$4tLLrCK%vNl?FAkmd|bw_d1Daefi1_Kj_YYAM>KN7d(h(*Yd zg2#`l{zKV)(Y~Je53mK~&SCO-&O#V5I|N;!|5G-JEg6RsDBJA+miPXr?1(a5HbB)A zivY7HzFTt9v~<*#(k91B?6t8!L9^9U1-*S9^e(rdN#sh@L#q8~p58 z!u2+GC^LA3Jq(~x)x(cWAPOorurC@8)2scW@zN3|n9GaS{o}3&8FodffdMhKoi{>) z1o1KD@S^Xx3x^Z|a`QI|P@H5(iK;>l6kx_{Etkt?;Z_n9x$+2*SG&F` zhOUpe4k^lCqBP+OOwrf6$;&|GUs&>8z!R2lq9BS)tHMNJ<_6m06$fahI2L_N=ou3D zi4BwA7GuWlW&$OSd;=9m&3vQ;&&Ht&&(`S;D64}CkArII9-#CfLMfpJsPLZJdu&oJ zP~oxcx{%?VpCm=~0OBr(Q23~t19%`cRI6LyRn*K}4bX>C^8oxx(Sq&jjz{d!PQ5-ydP~@=yew3S2!xlq0_mnFKl-CDA=FM1omm4=gQ;>kB(5r9Jy9b)W z60{!|N*siW3;`9s3nIT2^pO1@dYlIuP%KI(GE!z02BJ^|ZJYV4I1zfr1f^Q2sWK@7 zv7yG*vNKRbv;df52e20r@MYj2))Xr=ZKv=YpLYa+H(Lz;rwf|fp)_Vwr7b7ZYOJY} zK6O54%PF*BjDk-RX~o@3OrBPD|LBUOm}QCPd42N_IDokWpP^?BLT($n^+zKrwqcv& z4}Igmopt11LbfsGRr*qFP;UjHwBh(~K#vF}+(??B@!3w*OzEqgzGc0U2oFysxGIQmR4 zqmOyBeGeYOgwYt>a5#C4JAlOS-BzV8_d1c-L9YCZm0dSf8rV`ERY{Fzu)Y@ru5lH~ zc=mY`hKVtupDT214|_0nC0KH%Km9Kpg@Nl^cr9NqV|K}@kmUR0^Ud<`bEco#D!f#S zvK6kDv06VP5_oYA0?C8rGYtUn?)k|G9pa8TzqiLOJ;rz@{EM9I@>|^ewK9v!Z*oNA ziao#W8U#^?D+4a`_~BLWiTaCSPR&LvN4(*-R(bLS{MOXJN$h= z((ru@*-XUhdfuC^AnPUj%z=O}iG5PLUORyIRwEk}d&+&GI6#qN?%ykzAv3GlGses? zaV`Pi?gee}=<>I4)S4<2`TWTBiB1Am*sZZ(4A*VTKRIfXhE}nU0wYd64`Ss$E0C-J zPeF!7d7h5k(pv^Ln4F*$Gq1hB3LuS zBVqAc*Uu5xJNSKFl`nIGUy?9p1L?}fb@vP1TVk&h%J}74_(MCj@@fw8aUQWt$55Ao z6hdy4ek!qnZQ}C*!AaLOi&7t;PoD+acq@(NX-aEii$kUG0kJ*rjSrSMlcnl{y~N;U|z-R)hz=smrjJ)Lytn@sRj^J=pDqXfgQ|em||-elER4 zkSF}pvlG($^AmLeKf>ch4oy}qN>(qcPs_go=vkfH}?W`HFl{!o#$6L3g3=U$Wq9)I9 zHziqwGApF?oVc`NPkEFd`>OUp{>)#w?)_DyF}+_h6i6<6X<+UrSm(#3{`dl3PUCy- ziqMn&gP8Rk_1NKSJ<^VeM%tg<CaY8(u_2(`$~O(A3v$Qc3P^Qx9srv{L?r~V-<0^_ z0J0v>C>8DBTG3ODD0oLiUm|0{z>U$}>%s0_gL2QU76t_@NC_-=YS=?sDKV^bJp})) zECoN9YT^4$|B?0Em*MfGGdrEZ>&Oz}T$NDxh{E*5_wIfXvf-Mq0{tOOLK-D}viRv@ zsspka!?}41;RGow*=!smanql}Ipmc{!V^krCycqLE`v#Ly%j(BX|IIfA6W1ujKBXV z3t7eb3<1ZCKBX*E#d$}hQ{YOj-X9=VYS&HMz#@hF-c86UN(K2aRO^dau^RJ;*+CEm zDK`D@G`CZ!cRFk?K5bKASpILz^PdK6EXUK}yD=3XX;?5~&VickV>jtgBHtbkqjAyW z)?J;16s|??_apb`X9i~q?m0}T^0ltuJ`dugh(Xwhy0$-+R<*DCrE%C}_d3(x(io(h z7zY}A<_`yZ+JCk;(!vxP%wVjEjI2Ua{k>w`>RY1hZRT7O)V9J!KC)T>{*(= zGnE^mgE)m$Yi&ehM1YwB>mv+@?D;uNVj|X;S)b{~l)jPuGC>|Hh)8;bl7SNCuKXe4 zV>P{39;tM3iF zHhHl?+mErz_4^59Dj3;nWPdAl{k8&HY}Ns^t`KNl%ldd_;db1o_$svisotFrDES?-Ce(06#^fb|4kf3iXmOCqAM6<3ga}a z##r#)nn3g=LD0$Bv??0|Ire1&%FVtr1^J~F>zkJ4lWszIh-$XAGH%D^h*`pFTRo!IQnAE0Hz0ql6Y%yECh=X}*Tpl97AAEE-*XxjSS#@RZlKRQu zYkJ;EK-&cS8CGjqmaHduM>&o0lM1m>qj|Y2G9~N(gs`SVF(k~c6%n5Yhg&RhYfHCI$v+Ch*DU6#~ z(_nv;PSYPkjqC5|tLY}#Wg}!8Ecb=G1g__)@liE-={%Vyl#RNGA^lCeLlvP zw7*0HHQN5P0^5y1nRfTBngxe0yEPI^MZB`bN*~qnDL6fhrs?I>XIXsP$*w87idI-A z7u^S?Eg0V5Oac?#=yy{3)ry}4nF1LDZF*?y4+*dI&G4UnIB(>Q*-B?l?Awvc0^0ow z`}>*pzw@d#E0LIBK{IDBR*BO=OKnPd@mSM4o& ziRLYct#U>wpVk5__A)Xi7!VrPu;uT~$_w~+byCbV?6AMfCg>pD$|-8>PBC$T;6u8k z2g2YYl^1JMrJZY3Cv)hT@23@xe@Y2iyXxOvV>Kc-U5i-XdgCB6$%_s-52Qeu7#bk! zh&D=dD&jY1;J3O0J=K)_MuZHz<1hD*Io1X1$Zodx#Qh+5boP~lFMp*#xo=QDFPX2J zVa#bpEH7S#R5-h*R}Vi}VwB%>f@IBnAzH4}3s-fkVyZUBdzgVF`I`{LL zxfvn)B^-+|M3-(#eUOl1CAN^Pgs9^I7PYVo8Pg*TVXc}`R4*9@wv2({p`!NCP5gdM zeeVYXZew7J#Cb*;b+T!dWaKDaCR}8x)uEFTBKOkB(Rx>D0^Vxs8T(5D9pd0V2J4xR zaL0T^Ot-hbU~|L?so##bs=-(Oj?ZW+*2-$afcU&kuf5a zMf9SqCLu98I)6I?XQXeMigq)Y>Bd@v?0c#^&B?1)@3AhHat`x+26lsDCZFAZflzyC zCnw(VoQt&XU#;wAPSK83yJQ*Fq-Tf5O_<(-ncg}#>jo4C_8S}J#<7QBKR(QA#leaB zNnzuHuVmP&LpIH#-0?u=W8NjE?Zw!7pxEeSbhB*u)Vm6 zV(y^uLcb@}aL?C4M-VMweixRWuYZhHqxj9=1@D}4m?vfau{P}C%TCV7!tKVvh^pAq zWuJ})dz1Rz3M=2H%xi;2=umh3Y##ow%Ze#Ro~1945qHLRfi~GSteNj%D|H>M8?w@W z20GeL3>EM~QC(r@t7 zVD}KQ)L`L0PUaXWrd^b0%ANh@pUSYE+<7jv6sl#k6zukd-1x;Z2A#jfV|9r@wwSvi;boM;p@w0ib`a)Y7oUCmCzNA|)p>2d81x|llYG7W-d4{D2 z5S|<|u_U;QVvZwdi3brNmKnn&K+yxj zRtUu+kG~rw^A{Yjb8*3m{d|()3-CO%K!Puh1SMXa%yt``^522-xX|)Ny`b9pP_>Iz zw9)vHpxPU%pxUo?u8r$~YBNIBmNkWJMWAXYf>%+@Qz}5b!|8une+gif_Y8sn7{IF< zA3m}NM8=4hqf)3w0)?E9;5V95;E=EA$eW}BisQn)Z>gJ~L=4%oG9kQ(H3VLMWQ_sD_wOn)wdB2dVIgx6u7 zu3EU~PJmWLU%9%Uv7oPbta5#UT5RNzP2f+>XJ51{aD zL3qKg_#XkbhB!pwx;B2o~o~g$QVI%z-#K+P5i{L9p9u4(|(q(KvHVXf{&AO!9xgKod|(L^Q*kV@Ae zQmK@TK{CrXVi0;rK6n+eXebzan+fNKF1 zB4iQ5;q0sm4MB8CkOf{^fv#c^3iQP>2wb;TU*8Y3PZZR*cD(NnBHBNICU<^df_YFM z{;#%B*4X2W%MFg;2O->+0eH(A5N&z@*`d?jw?N$1ke_V)g%^0%K1Q&*u;P+^ks*Hg_1=uyiwBp$hG?z@unL}mlPcYd(zopGH=7UXjGS7} zR-OS1Cs*K77u)%Xr+!H4q5-g&xE`Ii{k@PDelqs4#6nX1cRLPQ12`IpEY*Ya{U>=c z$r@WP?z|1aeJy%6Q}mdP9aQ_tx3VZChHMBh7k_9IZ39B#PB!4s&7x=>$F!RtW4G;p zrhNuZtVFW)Gtb05Kp^)iO4pGFkDiB$ujK?|R#UCw?8VI3u_1Nf4rFgERygZ1H+$6+ za2al5ouC-jl_unv?gNZ`F=rsr(iO`f>HQ$pEUV#o!ekccHtDM%y5PG1UNGa4fX}j? z7U+H|M?<~hOK3<_OzTmh0Q%!;8r%XJ(yiy@8jBU6b=7^Cu503q0mL;i{L1Sd-~`{~ zPsG|U7Jmp--7DbofF}?vHd&d3Eb7b+j)JOe*I8t|3{^S(TiH7#21f25q5T^mV4?PJ zA=2P;C3-jA*=3+Y{+9b@Cvmd?*|-QiT-zgnbe zbB2gl&F&Zi_6DnXNg;+#@RI+>%NTB>txd=stdUV2@HpVp|MLnY>g#2vtMH8wM$V~G zVt_{3SqNHVND|;nC&2%jo`hZ(BIN3s=pS=Qg2AL4a*{*HimcGl76I+?=44}0x<%oE7X=>60QS&0eT%VjwCm1kbpPJqhBM(fJp$dVE0gm2B zI;^>lvD1C}$0Uq@am){ORBM5tsp6yqpK%OQ$@_p2@B~0A`i|gSPz$ow6K1~q-RZlp zo`73d6$U(91*NxjMT9us{N*QPlunv(J-fWG8RM}S$xa%HZw8r!TOw9u=lFQaTK=4G z$}cX^b)Fu}$d~;J*|l)^6IqIgTUfYo6R$PD+Awh2Zx-n#?)Nln9uI9hTY2kX#$)q& zKTlYYk9q?m>|>GU1*qfGz=HnfA+RoV3=dH>sl04p)bRj!HH}^Nnh|$aSi3HS(iCWI z#5sX)B%QZBmQ0Ao-1oWZDWv9KS*9_cH0|s#vdyF_XDtO*iyjXUnV>PQ`DgFVM9yhm zCNBz8wUwU6c7qFOT=r+8=PWL%e+l1g8@S9|*%i9<2h=+M1cO#nHjB1Lml%>p2Q zjGb~zHu))8wCaXkxUuL^6f1g3so}}RcD*@I55SzCX`khN2TtdL%KXoapZRQM-zCm` zkbZi$nmwoM8!+@I3Bl94RhZ=~tKl)M02Z-gC10{mZd521%5V><^Id3r7@>QK?*%ZV9tRi>{Cc>r zx%Ya0`u5(Hl=uSO;9*-IV2BpqZ8iU;a~Pf5>2_Iv9_!?rwxLGEzVDuYYa*c?}w z&Eqlhki8p;7`F$ZcfGiOzhZ2ZI_+zM>7^{vOHo+L4) zc8UnP8Sl%}9%)i7UJv#BOqW4Xe%{1&unM%L#rneSqQESolS=sj*Bhi$>^KgAMSpJD zXeXU?My6%;sF6J(#HfuSOHi1!>w;y9i2KFqBD0P`0-CSK*|1oC@&N)|7-nykc!vsC z73a8Sx!q2$dXSKCMKB}abRj(an8KdH2m{jz5^5<)xKj|kt`XJ(rd_Yb$DveRPRUJR z?QkH^M8sn3m>zM(Y^~89oBx-dmb(xbOrXAmH@tLoFF;xfqL7jepi%gc%tm*6zx32J0+8Gr2 z6=QKROa)e{CL2Yv<_U0tuQQ28=$U<%#j0e|ijrVPHi`)SY7QW>Z_@6npL5n4hDG0P z?Dab?HYY*TZdm*p7>Q0=YqX(Ggtmi+ic}dZb<;W4t3cz zWP^NxWVpBY!onq`dGkuQ^3)ArS^9kc(S(jYFk@}HsFuE{CdYF-gOmZCAHrzv?`)d? z^%mKl)cfQF?ygxd`&?{ZL4}j`$l>Vx^?gZzR!^^k8+4*&)kT*ne{1|b(%3f)gWXrT z)~3<0yMGg;?T^sEf(=$ICOytQ1xe%1qUg?hho%Qs<`SI$^z(u}H){?&FIO!}P~eXe zt1t4pqV0!X&z76ntmIu4iU$LYW@m)j4F#FFvYY(dj;}AA# z`~vhPtFoUQ|EwG5l)zb=K5qawbc+{he@KLXkdOY}6(T}c#6@{cYc+qxef`G0E5iO; z4~%X`I1*T-+C2b^6Uv*b6iu;dX#`I9B#xp@6ORGGJq`=mjUlb1V$^YQ_QI?I?Et-2 zBR+$t1&>KyVT~)=t=dL|(Ih_21~C9iIQF^QE%rg<4*=LM?x$0Qs1BVQZViZO4DMWJpKkG#TxSy^(>d`Uml+U4r65y_4Nnwov3q@NSt2v(5^0A>Nt{)-Ww2kdKsa1 zbK#a+zTe-Ax%hJN{XE`hz!-)2dDulT30aEKGwi6nnRatbv81{3PkiKh7=q90&;KrJ+{kfU!t@9<%Se2yp|X?otx z=MN9>IQ#JD2k<%_ls{uZ@?fdupP8G80?iEAZjaX!3TYm-+3o)lA49aqHBTwF@W150 zG)`vLP+N{g0Kz)=%4&DSLz|D0g&a-7aQXXSX?7C>7arYY8&#U_&C{C%xR^O>qRA@g z(KaGa;vub^W`SuE8qw{?G)}^nF}pYgbI4mglF3^UaO#**X5w9{m^+Vai8{fB0AMXf z#Q@T2T~Qo2IDf2Z3`DeqY?XbR>X;UrSvddw@wob7E;byT<{mot;u{_ zGGuM|Ai{@XzmW4$J*KxUbsR--K~RaKBn5V@k7wN&EIdpn82!1MEb6&pn4}B~TpeEW z02s@uXD=drHmI7;aE4PuqE(}(ky+}*?aPZ30;y+(7NKy)Nu@{5H9i{X{_CP}yJRr0 zRllcH$MuFBsr5UbO-yABxxZMG*q>@~D+jy3%$JpzkOii@-*T%)d;G;+V*z8X(>DeO z{ff=((&vXI;{9LXZX>Wh4G1-i<@tGXo)U8!%Y!psm+6P zXEk8Q6+V)=5@4=d-G-3}*?zs1D+ldWLo zV10C`6T~mE_??&1*;F0(032SH6NbIuYxe?WL0YT^`Nc}w@F@C2)D+xU+G(MZUQo`{ zb;6%SnM6mjA-T1asL5bd@CM40{WaC&3g!vqx$E(`!DNNgYu@aDlB_OK93|qECvjn$#RuQ16S8Z9B_ax6yRJ z9%c1@J)RN<>_E+dbT=bd$?BF%k1EiOhw z#1htF0G3DQ*XBkejOC*Wz~o%0MNL*UmoN68i@tt5z3T-y+i=AfO;1)it7#L5AOSa4 zF0*3+3N+b8!bOh0ol&t(Ovh`)=z6Lw%>X0JabnWGf6lqPns&%mK20M7!{U@ znOHP(l5266z1sMZuk(pr>Jw9JUed)+ap7`=sJoDg3k3)h0GW;_U0EhOGv< zQ>s!*kDGtM7$`GMyZY`rJ$}W0aCezrK#k?YuZN2@%HNiln`{UF${6KEgmAngt>oK0 z_32yOY5iL5j!QzN27}Up^7ybu%2v;A|C#O_F5kH@+2lIyq5P`f;Ynf+k4)j|bMC%1 z$(`NHhLe&C7@${OIYFScm)VP)lz_9plvKAvEzJ~c zw}%Q&P&B|hFY?`h&~XGTnvS%xsu?p+WbyOue+<5bWk5n;Hc+cZk0t-Y2x3e`I_Oh( zJQik7-c%Mx);$G0yS}>^odH>Yu!dA$YALG%+-92>zK11HK(*ra=@H!Rim2p+`z3EX za!deAOIHil?AM#dUvr6&J;|`&V*d8_T$EYiIc!RXTxkO)nsquTIr;fs$x}L2HhbE2 zr{J@D;EPU(xJ1qB+#d}0gH?~9zfATBs2JMH^@%}11!4aq!@I+V5-?JtU~=+XzsmW1 zNEsl6_>8@R?Kzzf?@7IdLU-?COidmr2|%l;LnRK=K-Mp#F#bFQC6J@XnkSZwi^!J? z?A6cvqcL--i%%a)CIdVp*JUjC#suQ$Ty4+fd;ui41qq{R80B!3?$6Wd1?>YR1p6G? z@2*=hlnRLsV4&O+vM$pFL?IL>@Zau`m(%VAqXIKRT`~|u9|vGf_=TjvFjy$cEIJMF z@&6z}?ai!V^-%*wXpuRzXhz(1;uMhcLZqYB ze^=9tN5CGb%MoVv{mD05s%aOYT#WX9gJOjlG!Z`b6oHbwe23|v(@^q<{UKbfFpPT! z1N;>R*zkR@VRa{}_VB;eIxXjpK${MuYTHBf3RR(2-u-W#zI%FsDe$S=BvnI;SOx)3 zq@81sx?)9P^kRdZRZZPW08}#u)bD8;ZpX0D_~5+gr<@Rb;3d% zw?ehMNQEK`DQ`k_9Gk~?uStqeIZqA%f9cI;=i?9bfjbQrTfwqR^>j%O80$({6i<#v z{#~A|e3k!U02wrpHtWqD^(1F_o_i!YSLAF0veb0N+&tDokchhEZ1q-=>77>b2t(oc zOedH-CmsWUIN6}h>M78nZGO^plj7^|fCW@Y`IB(`+&AFgSa>+|k^p{?V0!(DtxETN z+29v5C`0H(m$T3HKL|D(!Vk8}0}Lk@KYI(%uZ7M_XWc;v?+Zox(QPgiIQ#ZKr3{}B z%GI_*uksF$L>PP9`EfM%(a`tH=p3omsGS0v(gU$g*~AFR$*zsZ-6yfP+usy8NGi1W z{Bz>*+kC&(SMCkN_UVz|PA1)?t)~ha)sh@CIQ6vWs-utx+@bFPIq7NWQr^W_#!>xX zUVsQ&Jdh3@Bb+B7{#mF`cBtN04L|EZ_bk)DRj`eds2 zo6XAV%}UGY6`ji3%#?L%Ss(0?1b4^`( z?Em+%veM`VyZ7Aa&TRFLz&SqEK}g#%1OHGc+*t+-F~r>j<<%sQma(Fzq?~=sXktUN zHX6!tq;aIGk=c@)z zF4h-#dI9H?q9LgV1#{G}=NJXabr-(fsg88SMWUP8Z9h--F5c+sX^e^a(SzI1q7`@g zK5iee79F?%!t}>t2BU zoHz3&VQ3oyk;%HA(a-1F^8V(OGle>AP`>#oyW;shpXwjYS3~Ph9&E%Sr2F$GY@g3Z zCC0a4e9e~wv+=O&ziv^jKAg4RgcO|$nXMb0yDi2aE-$~psmmz}9UEKE8oO~S#qF}( z^=s<@R2tipoW-yT(1hun}2Y3?6v|G-}E z{jjr|Z%r@7hM3W#F2f0A{H{!*l2gBN1AwSCLt8>tIW8qd z{NnJtzhp`nw%L+c_IO%7xVSk1FCaDZzxeoj+qajF8mr;lJ{~?+Pf4P3?+e}%Mu9`e zZo{twuX&%%F!dR@Z6cqUWb5c$EyM$~CqXu_BEBWO8QfpjbKGl_rli8{waf7{kq8wI zE0#+Dp!4tKnwYN*9#FUI;Ugu)}Cn9#ZjAcd9+VXpn`m#FC%%O9p*MBMNT=i4HQh&fr^E^B^adl=L< z6Jr>#f`cAlCNsDEfm06BY%jcJdfdAmxc+olhSOzrQ}gRqw)A=KnYbyN9(`P61wjp0%UPLsFtP~+RfGUV{ zSz)F9e4TXiugNJTzO)@T0-Tvmy8K*lmj@_QW2eIU{z)r7KWUwk!vE30IN^L#vsn9d z24&ZYG9Im9y~?GotvOejmV4Uo%|dB7dyXlDZ0eJ6l|bA>gG<6C{%dpMnfD!dlSl^s zkzQcl>J z6=7v>ZX}#NMq)Z@)$7*p=@*@m*mOE8+3Ktsi>nExpl-(O^$pN7z51Dsh?K{~i(|L` z3VB2hRz`rJ4J$77&2nKuf;-|b&VX|4|Iwt~tHFJL)941^+&-r`mo}2c_7`w0mafH0 zn@I^-Ri>^&)TDRE{qAxx;IHg% zXDM78jly0af-`MB9y;F_ek<$fYvJ089J!{IE^z}|tXF;R9rN038K<151_Y(A!8ARg z1Y3iU8fE_x_r)XZRa^!F6kFB2x;$f$w{&2q0I_t>%IWt;M ztf(R3u!|AXgcjhfZg58q@}>_FglF6~jGBwgTi5YP!~z7)+rL@6;)Ppy42G7$h;TCf znm10ID@fS#{%92%Nr{Q@W%12pT1WRrUs2zy5VpkmEvtJv6d26@OgJc*G~u7IYW@;m%YH#q$T&&4FCS5y=DyDhE61M~RWLGzdPIAXZ zrkJ2DIe5`{*|?b#Z)m2q)Hc7teWV|7fwb7G7S^F*F&ql-ughu(cy_LE^7lO-aG7t^ zS^h`nPySk%*ZC3g$}dxpTPk{~V3;z+Y_Lv`)4W)L-J(43QJ1qVBi2ZF@bE<0_Y&7= zn|UE#oT|$2<^Mn^_>b~v>gZ;VN2*`h>N^!OI%@4p%Zg7eos{Oc8mleSKW_vljbiJm zSthT(_i>AHy)OEeMpbEk2^}8Qn?qM7t4=lQQtpZlFn!S`=`WF$e{mmJ8y^_Fsmr{a zk@CfA=tBiap>0*5O~xa~#b+!J{ru{v|23PNIG3N$dAP*$g!;KJ3zEc1l=}Ac7d$CK zhKi5i7RR5=Yr=9^#gFksj(+>)w^n%t8|MxTNh%i6>kap(iYJ1z3wb!E8y{11=hR`I zFjzzKE-Ug*r_s*&l|mNDL6)v?6Bd7S$TlWIUW>oYKMyxZw8Q4wOSLzmx#!{F{dZv* z2FEaPM`GnVe{MlyXgXP5H@uGGwi|{BXWKh8a#2vQv%&fslf&o>M|@_E@C`}7t6!?D zO>ZSMR1->mTBNdIJqqwG&h`(4snzqcw0fhMxmfY98dER!`IC4n_RCmTa|z^C2wkg4 zQDDy~U%ek`{5oyHbB!f6h{s}mTE1r?j0TS>pB{4;Ws)wcj2J9?WQO#$Cmhekdn#cJ z^qBg$aqaJvYQ$z2Z4%fn7V117JrP}2T*7wj=BCPk0Tb6QeoRuIq$F#oT~x^WEpzG!dy005cx4Z$-%1Ojh^x!{m@4se2eFMwY!z6_|`M2*3CKwL{%nAnC6J z%m<5l7T;a^M`KM#qy7yFinr>@7WMOuT%L6y;u+479(I)=Qy9NmxfIHqc&E17;&W@V z^f{lcPdY>3sT?t~@O3W-0`Yi#v*Nr(@Q-*2wsar0Ni{75tT~wON))$q7I$B$lL58uV~xOLgc?*#{tfOG02w;?u#uj zIU2#|Jl)a%V}xgD>}|VDk>M4;Z+Lw#dvF^WUJB?ADlfcoV6%}8it+cQf&EEDvTtf1**>GUjY7MSz1O80pNeq{gU9lt^nIY@ zd_g<`;R-&W*Q8$lzZO31r2n<>|L+#QIm0zrXlZDn4G8lm01OyFyl?$i=m4kys{Qau z=97NT1EnSu`lP(S2xUS{N%vp{U>?0>Q6?rs46=rQmtb0CmKA)AL%_X5lJ?*4-4^)*QS03;>UB0DdB zahfS6_{giikM}gW2ymfFG0;^vo-ie4gsyo03-OgK8K5kxoe1J{>dF~0M68m#`|UAU ztyEftT|6ZYyV#u0*pIuN7s@5h+HcUsL^4QjzzIMZ1V+)u1wMdILsu>Khw$zYe~S(b z@C?+N`@J^T!U0uFv|nv}nU^6-!Vrk6wXe&*0wgG6+Wl|S3VT$iFYswbP$%Og5gQLQ zi5THMXI}~5oiFYEh6KfGZj^pCx`Ws*{q*I)4C+If0lDUM{5SO1P!v~=XWika=j@^e zaiMG~1xV6s0SrEZp5ID3$Gb~s-tn^T&eYY+k*9L|$ z*Bisz;Sl19E|41v2K(V{KuK9#afpQko|G>UzYTbJu=FBb4$*@DC6^q$xV%$MDks zMSP;NH7&3VV1ZNKxFtsw^0}z5p_K>c@PC1+;=vv8PM(ZX+*x-hE^*7f4G$Q5k~trF09KpaJ%I2yz>K)ZVomxCu%|mvkn{*a=0hPbsGX zZ-_kq13wG6PI)u`kTzX*ps-377jh(zWF5V+<$2Jc&TePxuXy#5j6Z-2^e6x>FaR;< zjyu&m17HpqCdqr_{~JO01Iwg)YenOKAO!3Cq8l8=i%a?rT94a2eu||28c&LnyjIg| z;V+*#o7FiJ$N^E0OHZF^ysGSZeMqs0ZkhO0$(@8ju+*%j6pQGc6x9+Ks_=WXh+)Xv zeXh=J)~1qG5;7uO!TX#YR|O}-e;D`1|6$zo{{M~p?JAuM2eq>p(mUw_{OAhG#huo7 zJ~3h+jyTrydDq*2ukuQW2{DrBc~SIG*ZZ!VPsJ|Lt!x&(Yu^crN||$m~6h zjv-ED{j0GBTT6tyA?q~maDlq_^I%4@P^N9^zvHoE8>a+w%Z@f5pS)zT@u(8er@GPi zYu{%JoKLy$gbvF?B8lf`c0v^k&YS)28&z0IxuAX>WbP>4*VrQJ?&bmNCzE&d{I}~^ z!owbrbE4_d#0^j#9fgpxFD==+;^nWd9?vN2560~L|V!k#TUhDr>f_mrBpV_BYOqpuKifUK9VGG`jvmC3o z3sK$zTmKaMa+QU;Ig4}s6hO7FUPGkS`5)Yo!`llU;*m@g%K3C=+`7RuJX#s<(?4~K zwgK!Gi}MH1V$`rAF2298=zd6aj_fW6&g=&d16I8$GsSK*CS6lc&p2$nMlpb)3z2GK zUzH9ZwZr^jk73_YnIMi&BNu#UeyqnNdQzx-kqJwZ)2m$>Ij@_cpJ>F?U(gdWb%U3% zl|Wp0Q^Gto@>d9`IH0IpSnOsr_OS?9aq~kwm!yrpFS7G#^O&PDi%90{XI94z4*xAz zY84}czlU3K@&}Uad26R&C|}dj@v*e50IKr!JEX)I0687zAY$1ynAW6z@d@izqM48D z*`e+%P9=J8uV3)r0Zk|GKqe#WY>9{b$he z^HJNSP3>SA(Evdl@rMhb3)OndNmmxm=JV~~81=a+&qcHyXJap!w_GD~y#28-x9{H} z#P6lZ)zBxFQL=m(L?c^e63X0#$W^VT+>v1ts`?ICgy{8lni zF&e^>Xsf>iQj^EW2KC;+IVzpHJ6OFvnAii!e%acx(lzm76cHDvYdR8Wj%w?Z6p|Fy zxg?6FUkW);;eOx%Z5zs05KQyCmG%rUI=c0BBBwWA9|`2N8d&7QI8{C;H<=!kDpE^B z#P0ca{cAK++;9>>pC*@P z1n3ymh>&l|;cR;C`Xx$TxABKXZgropZSIU2av(CK26js8?&W5~=zF_GO&T2`zhr|o zfE1Lam;7wtfxD9pt9!Se>tnm&2aPHDzFD(~Oho-PdK|d{gw7q8YY07+H?l=!J9$An zaA-!~!E=T}$D*Uq*Yl=tRby>Lj7v*IPQo9`-#kjrk>WiV*KN1Qi1+cLwfF9NhiExO z+13jR9hDm`ZD2H&QVe8FT~tYPt5e^6$&62MUU|wOXBN`?t|s7MYWT8#xbuS(37E-6 z5}jBRiK>Td22Y3HRnj!UQ6sOg9rEiQ{=-R=zbPk28s4*jEa*CcO;%!~VCnd|>jW0i zEM0Lu`y+9U*EjCdK*|}rx|OZR7qyA`FIehAz*%9mp3K)D{=zd@rr%M8RHWBl@nElP z)`}JGWX7ClCyyu|x8z)W~ei3{7T zFSGP6SwbS^F^@qSo&*trNFbPKDi&Q!jJi24+}c>cEOJ9tqj%s0+V%4BJqu=O>%rhS z6Du*9TZvD>7e*BIdr6Fq>3P333Z`KsIp-S|3>3`TTc!FcmXo-#glNV3xW+> z0DPx8^9vpnBH9&M3(>N6GW`^mLhaPhI`$8zMOrzn20X>Y2ayw66m4sL za;{0JwEObtZ2@=NyN}KAPnM%cL+gM*DR=XOCp>#Xt*c~+&jxD^A+EG+b^9P!H8`1q zB|EKK1bmgx{Lo60Xq5-FlZ!N{b+DP{;M~awPuKaUj&DpP<3o2*cAd1AU#G?o5VOcUcc>)Qw0DDctLFo+mK%tBvvOU zU$&R>5FUn@aU?9{*UR1X)jdYa^C)JR0#1{mv|KT@v_tSP3{im)GbY1A9w`%*!)Luq z(uI(>;Ik#1(-215AXXB0qH{MGcZ?xL+bbxE$3N+af~<@5jdq7rEJZ+=q)pGMitEX6gW( zWzVUXgJ@I+^myD-uax+}tFQ+t{=Vs_AaiBYN$7}FWqR&AmrWBy@`p{uug|ixy1P`{ z#nR^b%P-oY&*#?HoenUc42|SC&iG*nBN}OcA(Hyf+p(xuxL=%vg19Rl&(;*K)l>pUhuddMn-Y>g5+jX-2h!<|#NfRf?_}K8+dSulLnD%EqpHVwmPy zhDhy#4>2ZDO?LLa91-WPlh$-}9p>#hs4(;M8UH7rdD0--I*Gg2{H3BitCP*58^k_R z>p#Q~5&@6+>gC=+F2I3aHmz=-4cpt+ctrR6pwG8GwozzhCRT9h9D8~b&y;?qrt7P` zA`N)wnD%d!N`3j&O2>Y}!fPTvBakkaWm zAYPVx^$db)#3731cIk5s0id1y2V4gxTm=N39C^89s0H@h2P6%{a@SUnC=!`|DEO=K zvl~PxK^zj|0i028I2LdQ5j1|IP!(d+fA*BIvyeq3@ZS~@$d?RU0pmPO$rfN+!_3o$ zF}dhB?@?&Z>v%&BsObd?&AA$pEyulh8d}Z@QZAkId%`e7s3Nlu8fL^;6uw4^giS=W z)%I9CnNXg1@WlYtv^B)yIX54JNk{&8kSxhwW6+I4^a@=SBFMr05J{7uTPP*^&N|>+ zC+F;S{JXRDMwt{?x4S8id9PfMwOGTH6io|3_2U|qCOBe|af@7L1pr{2BqvasKW8E% zCOuX?ddLu0>14R^2(c=}p%3v@dWJsGhg#s4@cYo^+`Et9gw?DRGM*~kKac~El!HLt zPlY8&-F}%04X0Ckt#8{z6|q|v8s0{0iBi5oO2t^m-HQ8(;9mMfB?2wU>7@x zIPmI`Ut|&|z4{U188y@(iqb$+Po34tOCT41!rd-_P`PM44^CB26{pHUbdd-9{)YGj z540CgM2`ip_iH}LbmJ}XYAXYoU$tG%&sNj2d!GM{VMln%g zjGoyy&QRasy|c)Kq%fi);RZ|~%R7NHaIQ%^<02EqXQ%XVl;84VT8!|IY#KEh-~`z~ z9Mknfd=;2+nA=+SfyL8NoMG$#T)jtuQ*|u?GiBU1eNR-KlPIJHX5hz;8lE}wMYDFg z9;Y(79(BisM?DfIZbRJ)ShEXxQ88wpF!qgt(}7dzKYA8UU;xhOG%}Y*zyi5L-DGIG8lGS1)7i|)mEebYwc6qdyZcV z%iYTfP@*&fHo+@8D3%&att!<>lCC-(7Ly`Vj6d4%!JD1gDHEvofIdcvpP-8s2$#B{ z>Z9Vma4*N_o9rWGv!??LSV#N(_`;{Mh#sV0(9hC#2VI$jy5E`n@|sQ!zd=Y>HDc}W;EwAE=W<+ovE{%{ zi#<)lW*l{(A!hY7VMG#!C*h=K;>bzuj>r8(9 zVIg#C^vXHIH%w%XgF`S@EZ&HVRG0d>ONl-%$Qr{D&O3k~Z;s-_tze#ka)8v!tI3RB2e-g4O>$0soTct?4xGGiRHc55?gY|#cU z>ME-ZlYlL$n{ca5L~blg!DQ5jNAlY$*414L_3ze6wEQ_f8~>3Xv+)8YAdDLb>fH}h9pARd>&VWP{J$b=|(a%Aj$!1<2Y$#Z!W zZDP6?9hcwc#~c6L>mlz!0Zl#|>Ucaqh#!Qf3nt+bk8~CL-57go0V%01#^Z0bkt!9m zcVvcL^cA?9r=%jqp5^LEkh3&ZWcAqy?VXeE-z$fTh*}_LOnO$o`^qzJ%%pwSq%_O- zfo8fUx1OKx{2-~)Hg~>{w{{KLqwYr6jlv(8-cIX~CNC-WF3MAi+xH!jY#6t$4N;EN zsEE%1wSrto+nC&NNQTxCsmx-Dw$)Fdd3VffV(RI)TI&V8*io2g!~x*0Sr5EVBAU z9hrE*#gZV=`K9!|1p}{>+e#qF#}nwlXfHmv#~_%~YCT)09j#}PdTBn-I$0nPl4+?3WRv@H zS*nqfSw=h9{hfYS_0}Zb>RX1ToOY;ub1|I>)>#_p-bX@rcJx9a6v+@jiL4N{-ePc_Vx9mFIkhF)}{g2 z-kVZ;D?*o^D6;<2T_JfaThSMB8H>2P#jLbgUM~L;QZZT)p7#=qx`)x3ewp~UDiyzU zr=!{-UYtP*qn;O;a#{?v%E8b|^DvEU>b=#aMid!DUBtF<_gF-aQ73TsM)k+}>Fm|E zN@&YkJ{w5FjXpzbuQmmLwXf$Tg!gds>)=S$x9H0pkWU~$fsU`3S_3@g8LDoAL_*XL zuiQA85D1s3L7-B+s;<#}btYTA4rv-D2(Hec3Dg%u4+`4s3Tlmym-c^yngM@=kz4IZ z*|ec6S}f>K0CE{!;kN#+bFl6&tDN*umd@&6X`|LB<1>>j%1)QXp5 UKc)tHmj^DYX{)|bu?+nG05^y>G5`Po literal 0 HcmV?d00001 diff --git a/packages/docs/static/images/codelabs/context-menu-option/display_text.png b/packages/docs/static/images/codelabs/context-menu-option/display_text.png new file mode 100644 index 0000000000000000000000000000000000000000..775dcea1cb425bb4c9e3b9983e337f8ab6a71521 GIT binary patch literal 56188 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 x+VvXzh}UZJr?{B3C5^v9ymx7P?6G! Date: Tue, 30 Jun 2026 12:46:02 -0400 Subject: [PATCH 2/5] docs: add try/catch to complete code for consistency --- .../context-menu-option/complete-code/src/index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js index 8b2fba45f58..c95dd97c80e 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js @@ -39,7 +39,13 @@ const runCode = () => { outputDiv.innerHTML = ''; - eval(code); + // Wrap `eval` in a `try/catch` so that any runtime errors are + // logged to the console, instead of failing quietly. + try { + eval(code); + } catch (error) { + console.log(error); + } }; // Load the initial state from storage and run the code. From 4b35071f6fdfcf7284c5e7b5cb6a3fa2dc3388aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Spriggs?= Date: Wed, 1 Jul 2026 09:03:00 -0400 Subject: [PATCH 3/5] docs: rm readme from complete code --- .../complete-code/README.mdx | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx b/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx deleted file mode 100644 index 1b3c36d82b8..00000000000 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/README.mdx +++ /dev/null @@ -1,50 +0,0 @@ -# Blockly Sample App - -## Purpose - -This app illustrates how to use Blockly together with common programming tools like node/npm, webpack, typescript, eslint, and others. You can use it as the starting point for your own application and modify it as much as you'd like. It contains basic infrastructure for running, building, testing, etc. that you can use even if you don't understand how to configure the related tool yet. When your needs outgrow the functionality provided here, you can replace the provided configuration or tool with your own. - -## Quick Start - -1. [Install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) npm if you haven't before. -2. Run [`npx @blockly/create-package app `](https://www.npmjs.com/package/@blockly/create-package) to clone this application to your own machine. -3. Run `npm install` to install the required dependencies. -4. Run `npm run start` to run the development server and see the app in action. -5. If you make any changes to the source code, just refresh the browser while the server is running to see them. - -## Tooling - -The application uses many of the same tools that the Blockly team uses to develop Blockly itself. Following is a brief overview, and you can read more about them on our [developer site](https://developers.google.com/blockly/guides/contribute/get-started/development_tools). - -- Structure: The application is built as an npm package. You can use npm to manage the dependencies of the application. -- Modules: ES6 modules to handle imports to/exports from other files. -- Building/bundling: Webpack to build the source code and bundle it into one file for serving. -- Development server: webpack-dev-server to run locally while in development. -- Testing: Mocha to run unit tests. -- Linting: Eslint to lint the code and ensure it conforms with a standard style. -- UI Framework: Does not use a framework. For more complex applications, you may wish to integrate a UI framework like React or Angular. - -You can disable, reconfigure, or replace any of these tools at any time, but they are preconfigured to get you started developing your Blockly application quickly. - -## Structure - -- `package.json` contains basic information about the app. This is where the scripts to run, build, etc. are listed. -- `package-lock.json` is used by npm to manage dependencies -- `webpack.config.js` is the configuration for webpack. This handles bundling the application and running our development server. -- `src/` contains the rest of the source code. -- `dist/` contains the packaged output (that you could host on a server, for example). This is ignored by git and will only appear after you run `npm run build` or `npm run start`. - -### Source Code - -- `index.html` contains the skeleton HTML for the page. This file is modified during the build to import the bundled source code output by webpack. -- `index.js` is the entry point of the app. It configures Blockly and sets up the page to show the blocks, the generated code, and the output of running the code in JavaScript. -- `serialization.js` has code to save and load the workspace using the browser's local storage. This is how your workspace is saved even after refreshing or leaving the page. You could replace this with code that saves the user's data to a cloud database instead. -- `toolbox.js` contains the toolbox definition for the app. The current toolbox contains nearly every block that Blockly provides out of the box. You probably want to replace this definition with your own toolbox that uses your custom blocks and only includes the default blocks that are relevant to your application. -- `blocks/text.js` has code for a custom text block, just as an example of creating your own blocks. You probably want to delete this block, and add your own blocks in this directory. -- `generators/javascript.js` contains the JavaScript generator for the custom text block. You'll need to include block generators for any custom blocks you create, in whatever programming language(s) your application will use. - -## Serving - -To run your app locally, run `npm run start` to run the development server. This mode generates source maps and ingests the source maps created by Blockly, so that you can debug using unminified code. - -To deploy your app so that others can use it, run `npm run build` to run a production build. This will bundle your code and minify it to reduce its size. You can then host the contents of the `dist` directory on a web server of your choosing. If you're just getting started, try using [GitHub Pages](https://pages.github.com/). From 20b75d1b9aa71f138c2a68933d1d95770eeb146e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Spriggs?= Date: Thu, 9 Jul 2026 10:59:58 -0400 Subject: [PATCH 4/5] docs: update license and README --- .../complete-code/package-lock.json | 5772 ----------------- .../complete-code/src/blocks/text.js | 2 +- .../src/generators/javascript.js | 2 +- .../complete-code/src/index.js | 14 +- .../complete-code/src/serialization.js | 2 +- .../complete-code/src/toolbox.js | 2 +- .../codelabs/context-menu-option/setup.mdx | 2 - 7 files changed, 11 insertions(+), 5785 deletions(-) delete mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json b/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json deleted file mode 100644 index 548fb2592b9..00000000000 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/package-lock.json +++ /dev/null @@ -1,5772 +0,0 @@ -{ - "name": "context-menu-option-codelab", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "context-menu-option-codelab", - "version": "1.0.0", - "license": "Apache-2.0", - "dependencies": { - "blockly": "^13.0.0" - }, - "devDependencies": { - "css-loader": "^6.7.1", - "html-webpack-plugin": "^5.5.0", - "source-map-loader": "^4.0.1", - "style-loader": "^3.3.1", - "webpack": "^5.93.0", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.0.4" - } - }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "license": "MIT", - "peer": true - }, - "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" - } - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" - } - }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "license": "MIT", - "peer": true - }, - "node_modules/@csstools/color-helpers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", - "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peer": true, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" - }, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", - "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peer": true, - "peerDependencies": { - "css-tree": "^3.2.1" - }, - "peerDependenciesMeta": { - "css-tree": { - "optional": true - } - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/buffers": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", - "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/codegen": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", - "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-core": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.8.tgz", - "integrity": "sha512-YzVbwggV9452VCeHgo0bjsTaUt1O7JE0XpEsPar93nn/+RAwXk0mb1Y+f5EDJ3TRtRCFe+Ck5RuojdfB4jeHVw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.57.8", - "@jsonjoy.com/fs-node-utils": "4.57.8", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.8.tgz", - "integrity": "sha512-vmClyvCQMxgqz7uamDiGtRfp4MjzOznk3pcQjCxlIwJcw7TWeyr+bF30hI0x8NxdtNOGMg1pHM74VDIXOeyjuw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.57.8", - "@jsonjoy.com/fs-node-builtins": "4.57.8", - "@jsonjoy.com/fs-node-utils": "4.57.8", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.8.tgz", - "integrity": "sha512-IPEOlDYSnTDYpjQlQg2F8h+eqxKQN3sdbroI0WrteRiQZ462HzVpBo9ZZX485njz4nAacoe3fd4iDiIhk+k5Hg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.57.8", - "@jsonjoy.com/fs-node-builtins": "4.57.8", - "@jsonjoy.com/fs-node-utils": "4.57.8", - "@jsonjoy.com/fs-print": "4.57.8", - "@jsonjoy.com/fs-snapshot": "4.57.8", - "glob-to-regex.js": "^1.0.0", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.8.tgz", - "integrity": "sha512-mxXSXw8zZwRVakcjLqR2I/psy4gURFSASZS10kKJ2kJw05GC2nXGroGrWVHxwgkxXgQLsFQnB74QaLzsxzdL/w==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.8.tgz", - "integrity": "sha512-AWZcT/4+H+iDl4XCukbXrarvwEgOrf/prFI5/7eg4ix9FxqVsZysIDJd1Kjd+AjlCeHKHJOaRqjLd5HiGSCJEw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-fsa": "4.57.8", - "@jsonjoy.com/fs-node-builtins": "4.57.8", - "@jsonjoy.com/fs-node-utils": "4.57.8" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.8.tgz", - "integrity": "sha512-E/bJ7sQAb4pu9nbeJhbULU3WnqWrswte4N9Js/oHt7aHB746S8/XBqKlcbrqIgnD3095XluovNEZuu5ONT230g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.57.8" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-print": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.8.tgz", - "integrity": "sha512-DfzhOBpmvNu5P/KSe4NNQaOnvNliTdcf0qrh/4EReErF/XUQXYkd0vZl/OiJCm/qjEEo8DWRstliw2/JNS84dA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.57.8", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.8.tgz", - "integrity": "sha512-L+eqKaWOHLDaiMv1dh/EWQ4hA+o6xAhWSumTo3Teg7OM18jU/KE13/e8Mfal+eAZ/pSl4wIhKHcDiwapJzC8Wg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.57.8", - "@jsonjoy.com/json-pack": "^17.65.0", - "@jsonjoy.com/util": "^17.65.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", - "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", - "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", - "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "17.67.0", - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0", - "@jsonjoy.com/json-pointer": "17.67.0", - "@jsonjoy.com/util": "17.67.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", - "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/util": "17.67.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", - "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", - "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.2", - "@jsonjoy.com/buffers": "^1.2.0", - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/json-pointer": "^1.0.2", - "@jsonjoy.com/util": "^1.9.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pointer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", - "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/util": "^1.9.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", - "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^1.0.0", - "@jsonjoy.com/codegen": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@peculiar/asn1-cms": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", - "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-csr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", - "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-ecc": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", - "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pfx": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", - "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-rsa": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", - "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", - "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pfx": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-rsa": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", - "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", - "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-x509": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", - "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", - "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", - "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/x509": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", - "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-csr": "^2.6.0", - "@peculiar/asn1-ecc": "^2.6.0", - "@peculiar/asn1-pkcs9": "^2.6.0", - "@peculiar/asn1-rsa": "^2.6.0", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "pvtsutils": "^1.3.6", - "reflect-metadata": "^0.2.2", - "tslib": "^2.8.1", - "tsyringe": "^4.10.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.8", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", - "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.1.tgz", - "integrity": "sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~8.3.0" - } - }, - "node_modules/@types/qs": { - "version": "6.15.1", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", - "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", - "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", - "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "<1" - } - }, - "node_modules/@types/serve-static/node_modules/@types/send": { - "version": "0.17.6", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", - "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/asn1js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", - "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.5", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.40", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz", - "integrity": "sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", - "license": "MIT", - "peer": true, - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/blockly": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/blockly/-/blockly-13.0.0.tgz", - "integrity": "sha512-A5sj35fOgVAaEGqgrZftcKv0LxFKOnAQ7BA9uAlXrEQAiJuaKer59QJzmjwhYXiJzrR4fZfF6CQ6gpRr7PIcaQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=22" - }, - "peerDependencies": { - "jsdom": "^27.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", - "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.15.1", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.2.tgz", - "integrity": "sha512-lMskhnsW70yWHr4PhPeh2rvaIkLSaDpp+nmtbXBZaNKTXwxL73QOkW6HhbzqTImXjevn9TreGT4GACGBCGP9nQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", - "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bytestreamjs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", - "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001799", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", - "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", - "license": "MIT", - "peer": true, - "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "license": "MIT", - "peer": true - }, - "node_modules/default-browser": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", - "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", - "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.381", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.381.tgz", - "integrity": "sha512-n9Wa6yB+vDsGuA8AKbl/0z7HbvWqt5jxIdvr1IUicd0ryPrk7/xzwqLv8D9AbbvZ6avVNtXYLTfmgFHkwkyelg==", - "dev": true, - "license": "ISC" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.24.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz", - "integrity": "sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", - "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/envinfo": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", - "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", - "dev": true, - "license": "MIT", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.2.0.tgz", - "integrity": "sha512-3lGxdTXCLfe1MYfTz1y2ksAAUM4NAOP6rPEjxGJVKO7TZ5+tvHCaQWGpC4Y3IXvW3ece0Cz1cIP4FWBxOnGCTQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/express": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", - "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.15.1", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", - "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regex.js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", - "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/html-encoding-sniffer/node_modules/@exodus/bytes": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", - "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@noble/hashes": "^1.8.0 || ^2.0.0" - }, - "peerDependenciesMeta": { - "@noble/hashes": { - "optional": true - } - } - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.7", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz", - "integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", - "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.4.0.tgz", - "integrity": "sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", - "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-network-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", - "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT", - "peer": true - }, - "node_modules/is-wsl": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", - "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/@exodus/bytes": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", - "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@noble/hashes": "^1.8.0 || ^2.0.0" - }, - "peerDependenciesMeta": { - "@noble/hashes": { - "optional": true - } - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/launch-editor": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", - "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.8.4" - } - }, - "node_modules/loader-runner": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", - "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "license": "BlueOak-1.0.0", - "peer": true, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdn-data": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", - "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", - "license": "CC0-1.0", - "peer": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "4.57.8", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.8.tgz", - "integrity": "sha512-bApYhn8BLpFAnAQmFfEl/NPN+8qx5Ar3V4Qt3ek23mVwBEElzV7c6XoPkb/PCG8ZFpowCEpHcPwMFTwHS7tSMA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.57.8", - "@jsonjoy.com/fs-fsa": "4.57.8", - "@jsonjoy.com/fs-node": "4.57.8", - "@jsonjoy.com/fs-node-builtins": "4.57.8", - "@jsonjoy.com/fs-node-to-fsa": "4.57.8", - "@jsonjoy.com/fs-node-utils": "4.57.8", - "@jsonjoy.com/fs-print": "4.57.8", - "@jsonjoy.com/fs-snapshot": "4.57.8", - "@jsonjoy.com/json-pack": "^1.11.0", - "@jsonjoy.com/util": "^1.9.0", - "glob-to-regex.js": "^1.0.1", - "thingies": "^2.5.0", - "tree-dump": "^1.0.3", - "tslib": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimizer-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-releases": { - "version": "2.0.50", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", - "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/open": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", - "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "wsl-utils": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", - "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "license": "MIT", - "peer": true, - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkijs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", - "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@noble/hashes": "1.4.0", - "asn1js": "^3.0.6", - "bytestreamjs": "^2.0.1", - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pvtsutils": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", - "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", - "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "es-define-property": "^1.0.1", - "side-channel": "^1.1.1" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", - "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "license": "ISC", - "peer": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", - "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/x509": "^1.14.2", - "pkijs": "^3.3.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.8.0", - "mime-types": "~2.1.35", - "parseurl": "~1.3.3" - }, - "engines": { - "node": ">= 0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", - "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4", - "side-channel-list": "^1.0.1", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", - "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT", - "peer": true - }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", - "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/thingies": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", - "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "^2" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tldts": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.5.tgz", - "integrity": "sha512-RfEzKWcq5fHUOFq7J3rl3Oz6ylKGtcHqUznzj4EcXsxLSIjJcvpbXAQtWGeJQ0xKnimR5e0Cn+cn9TssfMzm+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "tldts-core": "^7.4.5" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.5.tgz", - "integrity": "sha512-pGrwzZDvPwKe+7NNUqAunb6rqTfynr0VOUhCMdqbu5xlvNiszsAJygRzwvpVycdzejlbpY+SWJOn+s75Og7FEA==", - "license": "MIT", - "peer": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", - "license": "MIT", - "peer": true, - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/tree-dump": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", - "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsyringe": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", - "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.9.3" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/tsyringe/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "license": "MIT", - "peer": true, - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", - "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=20" - } - }, - "node_modules/webpack": { - "version": "5.108.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.2.tgz", - "integrity": "sha512-sUWBWPJwWH+QHUObS4lfNaQ368Tj8NaHDBsRJcU/NmQpeOqxV5iQUT2c5nvDWi8WYR5ynF7az+PuMdc+oDLJOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.22.2", - "es-module-lexer": "^2.1.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "graceful-fs": "^4.2.11", - "loader-runner": "^4.3.2", - "mime-db": "^1.54.0", - "minimizer-webpack-plugin": "^5.6.1", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "watchpack": "^2.5.2", - "webpack-sources": "^3.5.0" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", - "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.43.1", - "mime-types": "^3.0.1", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/webpack-dev-server": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.5.tgz", - "integrity": "sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.13", - "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.25", - "@types/express-serve-static-core": "^4.17.21", - "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", - "compression": "^1.8.1", - "connect-history-api-fallback": "^2.0.0", - "express": "^4.22.1", - "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.9", - "ipaddr.js": "^2.1.0", - "launch-editor": "^2.6.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "schema-utils": "^4.2.0", - "selfsigned": "^5.5.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.4.2", - "ws": "^8.18.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", - "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", - "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", - "license": "MIT", - "peer": true, - "dependencies": { - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "license": "MIT", - "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 - } - } - }, - "node_modules/wsl-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", - "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT", - "peer": true - } - } -} diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js index a84680bc6b2..244eaf1c9d4 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/blocks/text.js @@ -1,6 +1,6 @@ /** * @license - * Copyright 2023 Google LLC + * Copyright 2026 Raspberry Pi Foundation * SPDX-License-Identifier: Apache-2.0 */ diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js index 0315d9504d6..d058603e0de 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/generators/javascript.js @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {Order} from 'blockly/javascript'; +import { Order } from 'blockly/javascript'; // Export all the code generators for our custom blocks, // but don't register them with Blockly yet. diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js index c95dd97c80e..ee1694888ad 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/index.js @@ -1,15 +1,15 @@ /** * @license - * Copyright 2023 Google LLC + * Copyright 2026 Raspberry Pi Foundation * SPDX-License-Identifier: Apache-2.0 */ import * as Blockly from 'blockly'; -import {blocks} from './blocks/text'; -import {forBlock} from './generators/javascript'; -import {javascriptGenerator} from 'blockly/javascript'; -import {save, load} from './serialization'; -import {toolbox} from './toolbox'; +import { blocks } from './blocks/text'; +import { forBlock } from './generators/javascript'; +import { javascriptGenerator } from 'blockly/javascript'; +import { save, load } from './serialization'; +import { toolbox } from './toolbox'; import './index.css'; // Register the blocks and generator with Blockly @@ -28,7 +28,7 @@ Blockly.ContextMenuItems.registerCommentOptions(); const codeDiv = document.getElementById('generatedCode').firstChild; const outputDiv = document.getElementById('output'); const blocklyDiv = document.getElementById('blocklyDiv'); -const ws = Blockly.inject(blocklyDiv, {toolbox}); +const ws = Blockly.inject(blocklyDiv, { toolbox }); // This function resets the code and output divs, shows the // generated code from the workspace, and evals the code. diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js index 238dd24eefe..6a5041f215e 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/serialization.js @@ -1,6 +1,6 @@ /** * @license - * Copyright 2023 Google LLC + * Copyright 2026 Raspberry Pi Foundation * SPDX-License-Identifier: Apache-2.0 */ diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js index 1e1f8e6c931..1ff8beb3e41 100644 --- a/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/src/toolbox.js @@ -1,6 +1,6 @@ /** * @license - * Copyright 2023 Google LLC + * Copyright 2026 Raspberry Pi Foundation * SPDX-License-Identifier: Apache-2.0 */ diff --git a/packages/docs/docs/codelabs/context-menu-option/setup.mdx b/packages/docs/docs/codelabs/context-menu-option/setup.mdx index b747d045f9f..353cdcad7ac 100644 --- a/packages/docs/docs/codelabs/context-menu-option/setup.mdx +++ b/packages/docs/docs/codelabs/context-menu-option/setup.mdx @@ -19,8 +19,6 @@ Use the [`npx @blockly/create-package app`](https://www.npmjs.com/package/@block The local address in the address bar of your browser starting with `http://localhost:` shows where your app is. If you accidentally close this window or tab, you can re-open this local address to view the app as long as `npm start` is still running. -The complete code used in this codelab can be viewed in the `blockly` repository under [packages/docs/docs/codelabs/context-menu-option/complete-code](https://github.com/RaspberryPiFoundation/blockly/tree/main/packages/docs/docs/codelabs/context-menu-option/complete-code). - ### Change the storage key Before setting up the rest of the application, change the storage key used for this codelab application. This will ensure that the workspace is saved in its own storage, separate from the regular sample app, so that it doesn't interfere with other demos. From 86b00cf1ba04ff3652402a4e9d81a1419d087937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Spriggs?= Date: Thu, 9 Jul 2026 11:00:23 -0400 Subject: [PATCH 5/5] docs: add README --- .../context-menu-option/complete-code/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 packages/docs/docs/codelabs/context-menu-option/complete-code/README.md diff --git a/packages/docs/docs/codelabs/context-menu-option/complete-code/README.md b/packages/docs/docs/codelabs/context-menu-option/complete-code/README.md new file mode 100644 index 00000000000..6f98ed8807d --- /dev/null +++ b/packages/docs/docs/codelabs/context-menu-option/complete-code/README.md @@ -0,0 +1,14 @@ +# Completed code + +The finished code for the [Customizing context menus](../codelab-overview.mdx) codelab. + +## Run it + +To run the complete code, navigate to the `complete-code` folder in your terminal, then run: + +```bash +npm install # downloads the libraries the app needs (one time) +npm start # opens the app at http://localhost:... +``` + +New to npm? See [installing node & npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). \ No newline at end of file