From 5858184e3ff74454820b88acfaf70ef9e9eb5067 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 24 Mar 2026 20:56:08 +0700 Subject: [PATCH 1/8] feat(code-challenge): Add solution for problem 1 --- src/problem1/main.js | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/problem1/main.js diff --git a/src/problem1/main.js b/src/problem1/main.js new file mode 100644 index 0000000000..aa542cd355 --- /dev/null +++ b/src/problem1/main.js @@ -0,0 +1,66 @@ +// Iterative: For loop +var sum_to_n_a = function(n) { + if (n <= 0) { + return 0; + } + + let sum = 0; + + for (let i = 1; i <= n; i++) { + sum += i; + } + + return sum; +}; + +// Iterative: While loop +var sum_to_n_b = function(n) { + if (n <= 0) { + return 0; + } + + let sum = 0; + let i = 1; + while (i <= n) { + sum += i; + i++; + } + + return sum; +}; + +// Mathematical formula: SUM = N * (N + 1) / 2 +// The result of expression can exceed the MAX_SAFE_INTEGER, so I divide it before the multiplication to avoid overflow +var sum_to_n_c = function(n) { + if (n <= 0) { + return 0; + } + + return n % 2 === 0 ? (n / 2) * (n + 1) : ((n + 1) / 2) * n; +}; + +const testCaseList = [ + { n: -2, expected: 0 }, + { n: 0, expected: 0 }, + { n: 1, expected: 1 }, + { n: 10, expected: 55 }, + { n: 100, expected: 5050 }, + { n: 1000000, expected: 500000500000 }, +] + +testCaseList.forEach(testCase => { + const functionList = [sum_to_n_a, sum_to_n_b, sum_to_n_c]; + + functionList.forEach(func => { + const result = func(testCase.n); + if (result === testCase.expected) { + console.log(`✅ Passed: ${func.name}(${testCase.n}) = ${result} === ${testCase.expected}`); + } else { + console.log(`❌ Failed: ${func.name}(${testCase.n}) = ${result} !== ${testCase.expected}`); + } + }); +}); + +/* + I try to use tail recursion to solve the problem, but it seems that the JavaScript engine does not support tail recursion, so I use a while loop instead. +*/ \ No newline at end of file From 488da1aa5b015903bf0a57beddf792b3f63a5da8 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 24 Mar 2026 21:53:14 +0700 Subject: [PATCH 2/8] feat(code-challenge): Add solution for problem 3 --- src/problem3/main.ts | 121 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 src/problem3/main.ts diff --git a/src/problem3/main.ts b/src/problem3/main.ts new file mode 100644 index 0000000000..edf49575c0 --- /dev/null +++ b/src/problem3/main.ts @@ -0,0 +1,121 @@ +/* +There are some issues or Enhancements that I found in the code: + - Missed field 'blockchain' in the WalletBalance interface. + - The FormattedWalletBalance should extend the WalletBalance to avoid duplicates + - We use Props to extend the BoxProps, but without any extension. We should use BoxProps in this case. + - Do not create an enum for the blockchain + - The priority of Neo blockchain is 20, and it's the same as Zilliqa => I assume that the priority of Neo blockchain should be 10 + - Not defined the constant for priority value -99 => I named it as MIN_PRIORITY + - When filtering the balances, use the wrong variable "lhsPriority" instead of "balancePriority". And the condition should filter the balances with amount greater than 0. + - We do not return 0 when leftPriority is equal to rightPriority + - In sortedBalances useMemo, the prices is not a dependency, we should remove it + - We should use formattedBalances instead of sortedBalances when rendering the list of Wallet. We can combine it into the useMemo that we calculate the sortedBalance + - When rendering WalletRow, we use index as a key, but this is not recommendation. In this case, we can use the blockchain and currency as the key. + - We get the children from the props but we don't render it +*/ + +// Starting of declaring types to reduce errors :((( while we don't import the correct libs or use the functions from the air +declare namespace React { + interface FC

{ + (props: P): any; + } +} +declare namespace classes { + interface row {} +} +declare type BoxProps = { + children: any +}; +declare function useWalletBalances(): WalletBalance[]; +declare function usePrices(): Record; +declare function useMemo(callback: VoidFunction, dependencies: any[]): any; +// End of declaring types + +enum Blockchain { + Osmosis = 'Osmosis', + Ethereum = 'Ethereum', + Arbitrum = 'Arbitrum', + Zilliqa = 'Zilliqa', + Neo = 'Neo', + Unknown = 'Unknown', +} + +const MIN_PRIORITY = -99; + +const BLOCKCHAIN_PRIORITIES: Record = { + [Blockchain.Osmosis]: 100, + [Blockchain.Ethereum]: 50, + [Blockchain.Arbitrum]: 30, + [Blockchain.Zilliqa]: 20, + [Blockchain.Neo]: 10, // I assume that the Blockchain Neo is 10, because the blockchain priority is decrease + [Blockchain.Unknown]: MIN_PRIORITY, +}; + +interface WalletBalance { + currency: string; + amount: number; + blockchain: Blockchain; +} + +interface FormattedWalletBalance extends WalletBalance { + formatted: string; +} + +// It should be a util function, and is outside of the React Component +const getPriority = (blockchain: Blockchain): number => { + return BLOCKCHAIN_PRIORITIES[blockchain]; +} + +const formatBalance = (balance: number, fractionDigits = 2) => { + return balance.toFixed(fractionDigits); +} + +const WalletPage: React.FC = ({ + children, + ...restProps +}: BoxProps) => { + const balances = useWalletBalances(); + const prices = usePrices(); + + const sortedBalances: FormattedWalletBalance[] = useMemo(() => { + const validBalances = balances.filter((balance: WalletBalance) => { + const balancePriority = getPriority(balance.blockchain); + + return balancePriority > MIN_PRIORITY && balance.amount > 0; + }); + + const sortedBalances = validBalances.sort(function balanceAscSort(lhs: WalletBalance, rhs: WalletBalance) { + const leftPriority = getPriority(lhs.blockchain); + const rightPriority = getPriority(rhs.blockchain); + + return rightPriority - leftPriority; + }) + + return sortedBalances.map((balance) => ({ + ...balance, + formatted: formatBalance(balance.amount), + } as FormattedWalletBalance)) + }, [balances]); + + return ( +

+ { + sortedBalances.map((balance: FormattedWalletBalance) => { + const usdValue = prices[balance.currency] * balance.amount; + + return ( + + ) + }) + } + + {children} // I assume that we should render the children here +
+ ) +} \ No newline at end of file From dbbb6039689fde4a3718f103779a23a99cf3c534 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 24 Mar 2026 22:17:24 +0700 Subject: [PATCH 3/8] feat(code-challenge): Problem2 - Init project with vite --- src/problem2/.gitignore | 24 + src/problem2/README.md | 73 + src/problem2/eslint.config.js | 23 + src/problem2/index.html | 38 +- src/problem2/package-lock.json | 2965 +++++++++++++++++++++++++++++ src/problem2/package.json | 30 + src/problem2/public/favicon.svg | 1 + src/problem2/public/icons.svg | 24 + src/problem2/script.js | 0 src/problem2/src/App.css | 184 ++ src/problem2/src/App.tsx | 121 ++ src/problem2/src/assets/hero.png | Bin 0 -> 44919 bytes src/problem2/src/assets/react.svg | 1 + src/problem2/src/assets/vite.svg | 1 + src/problem2/src/index.css | 111 ++ src/problem2/src/main.tsx | 10 + src/problem2/style.css | 8 - src/problem2/tsconfig.app.json | 28 + src/problem2/tsconfig.json | 7 + src/problem2/tsconfig.node.json | 26 + src/problem2/vite.config.ts | 7 + 21 files changed, 3648 insertions(+), 34 deletions(-) create mode 100644 src/problem2/.gitignore create mode 100644 src/problem2/README.md create mode 100644 src/problem2/eslint.config.js create mode 100644 src/problem2/package-lock.json create mode 100644 src/problem2/package.json create mode 100644 src/problem2/public/favicon.svg create mode 100644 src/problem2/public/icons.svg delete mode 100644 src/problem2/script.js create mode 100644 src/problem2/src/App.css create mode 100644 src/problem2/src/App.tsx create mode 100644 src/problem2/src/assets/hero.png create mode 100644 src/problem2/src/assets/react.svg create mode 100644 src/problem2/src/assets/vite.svg create mode 100644 src/problem2/src/index.css create mode 100644 src/problem2/src/main.tsx delete mode 100644 src/problem2/style.css create mode 100644 src/problem2/tsconfig.app.json create mode 100644 src/problem2/tsconfig.json create mode 100644 src/problem2/tsconfig.node.json create mode 100644 src/problem2/vite.config.ts diff --git a/src/problem2/.gitignore b/src/problem2/.gitignore new file mode 100644 index 0000000000..a547bf36d8 --- /dev/null +++ b/src/problem2/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/problem2/README.md b/src/problem2/README.md new file mode 100644 index 0000000000..7dbf7ebf3b --- /dev/null +++ b/src/problem2/README.md @@ -0,0 +1,73 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs['recommended-typescript'], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` diff --git a/src/problem2/eslint.config.js b/src/problem2/eslint.config.js new file mode 100644 index 0000000000..5e6b472f58 --- /dev/null +++ b/src/problem2/eslint.config.js @@ -0,0 +1,23 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]) diff --git a/src/problem2/index.html b/src/problem2/index.html index 4058a68bff..0e2f619a81 100644 --- a/src/problem2/index.html +++ b/src/problem2/index.html @@ -1,27 +1,13 @@ - - - - - Fancy Form - - - - - - - - -
-
Swap
- - - - - - - -
- - - + + + + + + + problem2 + + +
+ + diff --git a/src/problem2/package-lock.json b/src/problem2/package-lock.json new file mode 100644 index 0000000000..f3ee7f94df --- /dev/null +++ b/src/problem2/package-lock.json @@ -0,0 +1,2965 @@ +{ + "name": "problem2", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "problem2", + "version": "0.0.0", + "dependencies": { + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@types/node": "^24.12.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.57.0", + "vite": "^8.0.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", + "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@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/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/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.122.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", + "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.11.tgz", + "integrity": "sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.11.tgz", + "integrity": "sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.11.tgz", + "integrity": "sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.11.tgz", + "integrity": "sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.11.tgz", + "integrity": "sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.11.tgz", + "integrity": "sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.11.tgz", + "integrity": "sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.11.tgz", + "integrity": "sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.11.tgz", + "integrity": "sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.11.tgz", + "integrity": "sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.11.tgz", + "integrity": "sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.11.tgz", + "integrity": "sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.11.tgz", + "integrity": "sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.11.tgz", + "integrity": "sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.11.tgz", + "integrity": "sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "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/node": { + "version": "24.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz", + "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", + "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/type-utils": "8.57.2", + "@typescript-eslint/utils": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.57.2", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz", + "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz", + "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.57.2", + "@typescript-eslint/types": "^8.57.2", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz", + "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz", + "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz", + "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/utils": "8.57.2", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz", + "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz", + "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.57.2", + "@typescript-eslint/tsconfig-utils": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz", + "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz", + "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.2", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz", + "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "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.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001781", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz", + "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "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/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.322", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.322.tgz", + "integrity": "sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==", + "dev": true, + "license": "ISC" + }, + "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-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz", + "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "^9 || ^10" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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/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/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "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/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "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/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/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/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": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "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.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.11.tgz", + "integrity": "sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.122.0", + "@rolldown/pluginutils": "1.0.0-rc.11" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.11", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.11", + "@rolldown/binding-darwin-x64": "1.0.0-rc.11", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.11", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.11", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.11", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.11", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.11", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.11", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.11", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.11", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.11", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.11", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.11", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.11" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.11.tgz", + "integrity": "sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "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/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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "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", + "optional": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz", + "integrity": "sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.57.2", + "@typescript-eslint/parser": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/utils": "8.57.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "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/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.2.tgz", + "integrity": "sha512-1gFhNi+bHhRE/qKZOJXACm6tX4bA3Isy9KuKF15AgSRuRazNBOJfdDemPBU16/mpMxApDPrWvZ08DcLPEoRnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.11", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "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/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/src/problem2/package.json b/src/problem2/package.json new file mode 100644 index 0000000000..fb7993eec4 --- /dev/null +++ b/src/problem2/package.json @@ -0,0 +1,30 @@ +{ + "name": "problem2", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@types/node": "^24.12.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.57.0", + "vite": "^8.0.1" + } +} diff --git a/src/problem2/public/favicon.svg b/src/problem2/public/favicon.svg new file mode 100644 index 0000000000..6893eb1323 --- /dev/null +++ b/src/problem2/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/public/icons.svg b/src/problem2/public/icons.svg new file mode 100644 index 0000000000..e9522193d9 --- /dev/null +++ b/src/problem2/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/script.js b/src/problem2/script.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/problem2/src/App.css b/src/problem2/src/App.css new file mode 100644 index 0000000000..f90339d8f7 --- /dev/null +++ b/src/problem2/src/App.css @@ -0,0 +1,184 @@ +.counter { + font-size: 16px; + padding: 5px 10px; + border-radius: 5px; + color: var(--accent); + background: var(--accent-bg); + border: 2px solid transparent; + transition: border-color 0.3s; + margin-bottom: 24px; + + &:hover { + border-color: var(--accent-border); + } + &:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; + } +} + +.hero { + position: relative; + + .base, + .framework, + .vite { + inset-inline: 0; + margin: 0 auto; + } + + .base { + width: 170px; + position: relative; + z-index: 0; + } + + .framework, + .vite { + position: absolute; + } + + .framework { + z-index: 1; + top: 34px; + height: 28px; + transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) + scale(1.4); + } + + .vite { + z-index: 0; + top: 107px; + height: 26px; + width: auto; + transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) + scale(0.8); + } +} + +#center { + display: flex; + flex-direction: column; + gap: 25px; + place-content: center; + place-items: center; + flex-grow: 1; + + @media (max-width: 1024px) { + padding: 32px 20px 24px; + gap: 18px; + } +} + +#next-steps { + display: flex; + border-top: 1px solid var(--border); + text-align: left; + + & > div { + flex: 1 1 0; + padding: 32px; + @media (max-width: 1024px) { + padding: 24px 20px; + } + } + + .icon { + margin-bottom: 16px; + width: 22px; + height: 22px; + } + + @media (max-width: 1024px) { + flex-direction: column; + text-align: center; + } +} + +#docs { + border-right: 1px solid var(--border); + + @media (max-width: 1024px) { + border-right: none; + border-bottom: 1px solid var(--border); + } +} + +#next-steps ul { + list-style: none; + padding: 0; + display: flex; + gap: 8px; + margin: 32px 0 0; + + .logo { + height: 18px; + } + + a { + color: var(--text-h); + font-size: 16px; + border-radius: 6px; + background: var(--social-bg); + display: flex; + padding: 6px 12px; + align-items: center; + gap: 8px; + text-decoration: none; + transition: box-shadow 0.3s; + + &:hover { + box-shadow: var(--shadow); + } + .button-icon { + height: 18px; + width: 18px; + } + } + + @media (max-width: 1024px) { + margin-top: 20px; + flex-wrap: wrap; + justify-content: center; + + li { + flex: 1 1 calc(50% - 8px); + } + + a { + width: 100%; + justify-content: center; + box-sizing: border-box; + } + } +} + +#spacer { + height: 88px; + border-top: 1px solid var(--border); + @media (max-width: 1024px) { + height: 48px; + } +} + +.ticks { + position: relative; + width: 100%; + + &::before, + &::after { + content: ''; + position: absolute; + top: -4.5px; + border: 5px solid transparent; + } + + &::before { + left: 0; + border-left-color: var(--border); + } + &::after { + right: 0; + border-right-color: var(--border); + } +} diff --git a/src/problem2/src/App.tsx b/src/problem2/src/App.tsx new file mode 100644 index 0000000000..46a59920ab --- /dev/null +++ b/src/problem2/src/App.tsx @@ -0,0 +1,121 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from './assets/vite.svg' +import heroImg from './assets/hero.png' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+
+ + React logo + Vite logo +
+
+

Get started

+

+ Edit src/App.tsx and save to test HMR +

+
+ +
+ +
+ +
+
+ +

Documentation

+

Your questions, answered

+ +
+
+ +

Connect with us

+

Join the Vite community

+ +
+
+ +
+
+ + ) +} + +export default App diff --git a/src/problem2/src/assets/hero.png b/src/problem2/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..cc51a3d20ad4bc961b596a6adfd686685cd84bb0 GIT binary patch literal 44919 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 JPDHLkV1myZcL)Fg literal 0 HcmV?d00001 diff --git a/src/problem2/src/assets/react.svg b/src/problem2/src/assets/react.svg new file mode 100644 index 0000000000..6c87de9bb3 --- /dev/null +++ b/src/problem2/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/assets/vite.svg b/src/problem2/src/assets/vite.svg new file mode 100644 index 0000000000..5101b674df --- /dev/null +++ b/src/problem2/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/src/problem2/src/index.css b/src/problem2/src/index.css new file mode 100644 index 0000000000..5fb3313022 --- /dev/null +++ b/src/problem2/src/index.css @@ -0,0 +1,111 @@ +:root { + --text: #6b6375; + --text-h: #08060d; + --bg: #fff; + --border: #e5e4e7; + --code-bg: #f4f3ec; + --accent: #aa3bff; + --accent-bg: rgba(170, 59, 255, 0.1); + --accent-border: rgba(170, 59, 255, 0.5); + --social-bg: rgba(244, 243, 236, 0.5); + --shadow: + rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; + + --sans: system-ui, 'Segoe UI', Roboto, sans-serif; + --heading: system-ui, 'Segoe UI', Roboto, sans-serif; + --mono: ui-monospace, Consolas, monospace; + + font: 18px/145% var(--sans); + letter-spacing: 0.18px; + color-scheme: light dark; + color: var(--text); + background: var(--bg); + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + @media (max-width: 1024px) { + font-size: 16px; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --text: #9ca3af; + --text-h: #f3f4f6; + --bg: #16171d; + --border: #2e303a; + --code-bg: #1f2028; + --accent: #c084fc; + --accent-bg: rgba(192, 132, 252, 0.15); + --accent-border: rgba(192, 132, 252, 0.5); + --social-bg: rgba(47, 48, 58, 0.5); + --shadow: + rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; + } + + #social .button-icon { + filter: invert(1) brightness(2); + } +} + +#root { + width: 1126px; + max-width: 100%; + margin: 0 auto; + text-align: center; + border-inline: 1px solid var(--border); + min-height: 100svh; + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +body { + margin: 0; +} + +h1, +h2 { + font-family: var(--heading); + font-weight: 500; + color: var(--text-h); +} + +h1 { + font-size: 56px; + letter-spacing: -1.68px; + margin: 32px 0; + @media (max-width: 1024px) { + font-size: 36px; + margin: 20px 0; + } +} +h2 { + font-size: 24px; + line-height: 118%; + letter-spacing: -0.24px; + margin: 0 0 8px; + @media (max-width: 1024px) { + font-size: 20px; + } +} +p { + margin: 0; +} + +code, +.counter { + font-family: var(--mono); + display: inline-flex; + border-radius: 4px; + color: var(--text-h); +} + +code { + font-size: 15px; + line-height: 135%; + padding: 4px 8px; + background: var(--code-bg); +} diff --git a/src/problem2/src/main.tsx b/src/problem2/src/main.tsx new file mode 100644 index 0000000000..bef5202a32 --- /dev/null +++ b/src/problem2/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/problem2/style.css b/src/problem2/style.css deleted file mode 100644 index 915af91c72..0000000000 --- a/src/problem2/style.css +++ /dev/null @@ -1,8 +0,0 @@ -body { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - min-width: 360px; - font-family: Arial, Helvetica, sans-serif; -} diff --git a/src/problem2/tsconfig.app.json b/src/problem2/tsconfig.app.json new file mode 100644 index 0000000000..af516fcca5 --- /dev/null +++ b/src/problem2/tsconfig.app.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2023", + "useDefineForClassFields": true, + "lib": ["ES2023", "DOM", "DOM.Iterable"], + "module": "ESNext", + "types": ["vite/client"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/src/problem2/tsconfig.json b/src/problem2/tsconfig.json new file mode 100644 index 0000000000..1ffef600d9 --- /dev/null +++ b/src/problem2/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/src/problem2/tsconfig.node.json b/src/problem2/tsconfig.node.json new file mode 100644 index 0000000000..8a67f62f4c --- /dev/null +++ b/src/problem2/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/src/problem2/vite.config.ts b/src/problem2/vite.config.ts new file mode 100644 index 0000000000..8b0f57b91a --- /dev/null +++ b/src/problem2/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 946898eeac64e6caf747ca8a45f2e0137aaf3a46 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 24 Mar 2026 22:17:46 +0700 Subject: [PATCH 4/8] feat(code-challenge): Problem2 - Add token icons --- src/problem2/src/tokens/1INCH.svg | 17 + src/problem2/src/tokens/AAVE.svg | 4 + src/problem2/src/tokens/ACT.svg | 15 + src/problem2/src/tokens/ADA.svg | 4 + src/problem2/src/tokens/AEVO.svg | 12 + src/problem2/src/tokens/AGI.svg | 6 + src/problem2/src/tokens/AI16Z.svg | 19 + src/problem2/src/tokens/AIXBT.svg | 19 + src/problem2/src/tokens/AKRO.svg | 10 + src/problem2/src/tokens/AKT.svg | 5 + src/problem2/src/tokens/ALGO.svg | 4 + src/problem2/src/tokens/ALPHA.svg | 20 + src/problem2/src/tokens/ALT.svg | 15 + src/problem2/src/tokens/AMP.svg | 5 + src/problem2/src/tokens/ANC.svg | 6 + src/problem2/src/tokens/ANDR.svg | 48 + src/problem2/src/tokens/ANIME.svg | 97 + src/problem2/src/tokens/ANKR.svg | 4 + src/problem2/src/tokens/ANT.svg | 20 + src/problem2/src/tokens/ANY.svg | 10 + src/problem2/src/tokens/APE.svg | 14 + src/problem2/src/tokens/APOLLO.svg | 21 + src/problem2/src/tokens/APT.svg | 11 + src/problem2/src/tokens/AR.svg | 5 + src/problem2/src/tokens/ARB.svg | 16 + src/problem2/src/tokens/ARCH.svg | 11 + src/problem2/src/tokens/ASA.svg | 4 + src/problem2/src/tokens/ASTRO.svg | 12 + src/problem2/src/tokens/ATOM-dATOM.svg | 20 + src/problem2/src/tokens/ATOM.svg | 9 + src/problem2/src/tokens/AUDIO.svg | 10 + src/problem2/src/tokens/AUT.svg | 208 ++ src/problem2/src/tokens/AVA.svg | 10 + src/problem2/src/tokens/AVAIL.svg | 200 ++ src/problem2/src/tokens/AVAX.svg | 4 + src/problem2/src/tokens/AXL.svg | 4 + src/problem2/src/tokens/AXS.svg | 4 + src/problem2/src/tokens/AXT.svg | 71 + src/problem2/src/tokens/BAKE.svg | 16 + src/problem2/src/tokens/BAL.svg | 6 + src/problem2/src/tokens/BAND.svg | 4 + src/problem2/src/tokens/BAT.svg | 4 + src/problem2/src/tokens/BCD.svg | 4 + src/problem2/src/tokens/BCH.svg | 4 + src/problem2/src/tokens/BCHA.svg | 5 + src/problem2/src/tokens/BCN.svg | 4 + src/problem2/src/tokens/BCNA.svg | 6 + src/problem2/src/tokens/BELT.svg | 1 + src/problem2/src/tokens/BERA.svg | 11 + src/problem2/src/tokens/BETH.svg | 21 + src/problem2/src/tokens/BHC.svg | 4 + src/problem2/src/tokens/BIT.svg | 4 + src/problem2/src/tokens/BLAST.svg | 11 + src/problem2/src/tokens/BLD.svg | 19 + src/problem2/src/tokens/BLOX.svg | 23 + src/problem2/src/tokens/BLUR.svg | 19 + src/problem2/src/tokens/BNB.svg | 4 + src/problem2/src/tokens/BNT.svg | 4 + src/problem2/src/tokens/BOLT.svg | 21 + src/problem2/src/tokens/BONK.svg | 424 ++++ src/problem2/src/tokens/BOOT.svg | 10 + src/problem2/src/tokens/BRAINS.svg | 11 + src/problem2/src/tokens/BRETT.svg | 34 + src/problem2/src/tokens/BRKL.svg | 276 +++ src/problem2/src/tokens/BTC.svg | 5 + src/problem2/src/tokens/BTCST.svg | 4 + src/problem2/src/tokens/BTG.svg | 4 + src/problem2/src/tokens/BTM.svg | 7 + src/problem2/src/tokens/BTMX.svg | 5 + src/problem2/src/tokens/BTSG.svg | 4 + src/problem2/src/tokens/BTT.svg | 7 + src/problem2/src/tokens/BUNNY.svg | 4 + src/problem2/src/tokens/BUSD.svg | 8 + src/problem2/src/tokens/BUSDT.svg | 5 + src/problem2/src/tokens/C98.svg | 7 + src/problem2/src/tokens/CAKE.svg | 8 + src/problem2/src/tokens/CANTO.svg | 11 + src/problem2/src/tokens/CARB.svg | 11 + src/problem2/src/tokens/CAT.svg | 65 + src/problem2/src/tokens/CEL.svg | 11 + src/problem2/src/tokens/CELO.svg | 4 + src/problem2/src/tokens/CETH.svg | 17 + src/problem2/src/tokens/CFX.svg | 5 + src/problem2/src/tokens/CGAS.svg | 4 + src/problem2/src/tokens/CHEQ.svg | 34 + src/problem2/src/tokens/CHOG.svg | 20 + src/problem2/src/tokens/CHSB.svg | 10 + src/problem2/src/tokens/CHT.svg | 54 + src/problem2/src/tokens/CHZ.svg | 4 + src/problem2/src/tokens/CKB.svg | 5 + src/problem2/src/tokens/CMDX.svg | 4 + src/problem2/src/tokens/CMST.svg | 13 + src/problem2/src/tokens/CNT.svg | 110 + src/problem2/src/tokens/COIN.svg | 4 + src/problem2/src/tokens/COMP.svg | 4 + src/problem2/src/tokens/COOK.svg | 40 + src/problem2/src/tokens/CRBRUS.svg | 88 + src/problem2/src/tokens/CRE.svg | 42 + src/problem2/src/tokens/CRO.svg | 8 + src/problem2/src/tokens/CRV.svg | 790 ++++++ src/problem2/src/tokens/CTK.svg | 7 + src/problem2/src/tokens/CW.svg | 13 + src/problem2/src/tokens/DAG.svg | 10 + src/problem2/src/tokens/DAI.svg | 4 + src/problem2/src/tokens/DAK.svg | 20 + src/problem2/src/tokens/DARC.svg | 9 + src/problem2/src/tokens/DASH.svg | 5 + src/problem2/src/tokens/DBC.svg | 4 + src/problem2/src/tokens/DCR.svg | 11 + src/problem2/src/tokens/DEC.svg | 38 + src/problem2/src/tokens/DEGEN.svg | 12 + src/problem2/src/tokens/DENT.svg | 15 + src/problem2/src/tokens/DGB.svg | 4 + src/problem2/src/tokens/DIG.svg | 54 + src/problem2/src/tokens/DKT.svg | 65 + src/problem2/src/tokens/DODO.svg | 6 + src/problem2/src/tokens/DOGE.svg | 124 + src/problem2/src/tokens/DOT.svg | 5 + src/problem2/src/tokens/DPL.svg | 16 + src/problem2/src/tokens/DPX.svg | 15 + src/problem2/src/tokens/DRFT.svg | 83 + src/problem2/src/tokens/DROP.svg | 13 + src/problem2/src/tokens/DSM.svg | 4 + src/problem2/src/tokens/DUVT.svg | 24 + src/problem2/src/tokens/DVPN.svg | 5 + src/problem2/src/tokens/DYDX.svg | 20 + src/problem2/src/tokens/DYM.svg | 11 + src/problem2/src/tokens/EEUR.svg | 16 + src/problem2/src/tokens/EIGEN.svg | 4 + src/problem2/src/tokens/ELA.svg | 5 + src/problem2/src/tokens/ELF.svg | 4 + src/problem2/src/tokens/ENA.svg | 21 + src/problem2/src/tokens/ENJ.svg | 63 + src/problem2/src/tokens/ENS.svg | 10 + src/problem2/src/tokens/EOS.svg | 4 + src/problem2/src/tokens/EPS.svg | 25 + src/problem2/src/tokens/ETC.svg | 6 + src/problem2/src/tokens/ETH.svg | 9 + src/problem2/src/tokens/ETHBTC.svg | 10 + src/problem2/src/tokens/ETN.svg | 4 + src/problem2/src/tokens/EUROC.svg | 12 + src/problem2/src/tokens/EUT.svg | 208 ++ src/problem2/src/tokens/EVMOS.svg | 4 + src/problem2/src/tokens/EWT.svg | 5 + src/problem2/src/tokens/FARTCOIN.svg | 158 ++ src/problem2/src/tokens/FBTC.svg | 29 + src/problem2/src/tokens/FEES.svg | 10 + src/problem2/src/tokens/FET.svg | 19 + src/problem2/src/tokens/FIL.svg | 4 + src/problem2/src/tokens/FIS.svg | 20 + src/problem2/src/tokens/FLIX.svg | 37 + src/problem2/src/tokens/FLM.svg | 13 + src/problem2/src/tokens/FLOW.svg | 5 + src/problem2/src/tokens/FLUID.svg | 53 + src/problem2/src/tokens/FLUO.svg | 11 + src/problem2/src/tokens/FRANK.svg | 268 ++ src/problem2/src/tokens/FSGLP.svg | 15 + src/problem2/src/tokens/FTM.svg | 4 + src/problem2/src/tokens/FTT.svg | 7 + src/problem2/src/tokens/FTTC.svg | 7 + src/problem2/src/tokens/FUN.svg | 4 + src/problem2/src/tokens/GALA.svg | 6 + src/problem2/src/tokens/GAMBIT.svg | 24 + src/problem2/src/tokens/GAS.svg | 4 + src/problem2/src/tokens/GBT.svg | 212 ++ src/problem2/src/tokens/GLP.svg | 15 + src/problem2/src/tokens/GM.svg | 7 + src/problem2/src/tokens/GMX.svg | 15 + src/problem2/src/tokens/GNO.svg | 7 + src/problem2/src/tokens/GNS.svg | 34 + src/problem2/src/tokens/GOAT.svg | 2174 +++++++++++++++++ src/problem2/src/tokens/GRASS.svg | 4 + src/problem2/src/tokens/GRAV.svg | 44 + src/problem2/src/tokens/GRT.svg | 4 + src/problem2/src/tokens/GT.svg | 4 + src/problem2/src/tokens/HBAR.svg | 4 + src/problem2/src/tokens/HDN.png | Bin 0 -> 20649 bytes src/problem2/src/tokens/HDN.svg | 9 + src/problem2/src/tokens/HELMET.svg | 9 + src/problem2/src/tokens/HKT.svg | 45 + src/problem2/src/tokens/HNT.svg | 4 + src/problem2/src/tokens/HOPE.svg | 144 ++ src/problem2/src/tokens/HOT.svg | 4 + src/problem2/src/tokens/HT.svg | 5 + src/problem2/src/tokens/HUAHUA.svg | 22 + src/problem2/src/tokens/HUNY.svg | 1 + src/problem2/src/tokens/HUSD.svg | 6 + src/problem2/src/tokens/HYPE.svg | 4 + src/problem2/src/tokens/IBCX.svg | 14 + src/problem2/src/tokens/ICP.svg | 16 + src/problem2/src/tokens/ICX.svg | 7 + src/problem2/src/tokens/IDT.svg | 54 + src/problem2/src/tokens/INIT.svg | 11 + src/problem2/src/tokens/INJ.svg | 14 + src/problem2/src/tokens/INT.svg | 82 + src/problem2/src/tokens/ION.svg | 114 + src/problem2/src/tokens/IOST.svg | 4 + src/problem2/src/tokens/IOTX.svg | 26 + src/problem2/src/tokens/IOV.svg | 9 + src/problem2/src/tokens/IP.svg | 24 + src/problem2/src/tokens/IRIS.svg | 51 + src/problem2/src/tokens/IXO.svg | 4 + src/problem2/src/tokens/JPT.svg | 54 + src/problem2/src/tokens/JTO.svg | 6 + src/problem2/src/tokens/JUNO.svg | 6 + src/problem2/src/tokens/JUP.svg | 34 + src/problem2/src/tokens/KAITO.svg | 16 + src/problem2/src/tokens/KAS.svg | 3 + src/problem2/src/tokens/KBONK.svg | 424 ++++ src/problem2/src/tokens/KCS.svg | 4 + src/problem2/src/tokens/KFLOKI.svg | 40 + src/problem2/src/tokens/KLAY.svg | 7 + src/problem2/src/tokens/KMD.svg | 15 + src/problem2/src/tokens/KNC.svg | 7 + src/problem2/src/tokens/KPEPE.svg | 28 + src/problem2/src/tokens/KRT.svg | 248 ++ src/problem2/src/tokens/KSHIB.svg | 17 + src/problem2/src/tokens/KSM.svg | 4 + src/problem2/src/tokens/KUJI.svg | 19 + src/problem2/src/tokens/LAYER.svg | 11 + src/problem2/src/tokens/LBTC.svg | 26 + src/problem2/src/tokens/LDO.svg | 12 + src/problem2/src/tokens/LEO.svg | 77 + src/problem2/src/tokens/LET.svg | 15 + src/problem2/src/tokens/LIKE.svg | 41 + src/problem2/src/tokens/LINK.svg | 4 + src/problem2/src/tokens/LKT.svg | 16 + src/problem2/src/tokens/LOOM.svg | 15 + src/problem2/src/tokens/LOOP.svg | 35 + src/problem2/src/tokens/LOTA.svg | 10 + src/problem2/src/tokens/LPLBTC_29MAY2025.svg | 35 + src/problem2/src/tokens/LPT.svg | 4 + .../src/tokens/LPberaSTONE_10APR2025.svg | 29 + src/problem2/src/tokens/LPcmETH_26JUN2025.svg | 31 + src/problem2/src/tokens/LRC.svg | 4 + src/problem2/src/tokens/LSI.svg | 53 + src/problem2/src/tokens/LSK.svg | 4 + src/problem2/src/tokens/LTC.svg | 4 + src/problem2/src/tokens/LUM.svg | 12 + src/problem2/src/tokens/LUNA.svg | 15 + src/problem2/src/tokens/LUNAX.svg | 10 + src/problem2/src/tokens/LUNC.svg | 6 + src/problem2/src/tokens/LUNI.svg | 29 + src/problem2/src/tokens/LUNR.svg | 4 + src/problem2/src/tokens/LUV.svg | 49 + src/problem2/src/tokens/LVN.svg | 11 + .../src/tokens/Liquid Staking Index.svg | 29 + src/problem2/src/tokens/M87.svg | 11 + src/problem2/src/tokens/MANA.svg | 26 + src/problem2/src/tokens/MANTA.svg | 25 + src/problem2/src/tokens/MARBLE.svg | 8 + src/problem2/src/tokens/MATH.svg | 4 + src/problem2/src/tokens/MATIC.svg | 10 + src/problem2/src/tokens/MDX.svg | 5 + src/problem2/src/tokens/ME.svg | 11 + src/problem2/src/tokens/MED.svg | 8 + src/problem2/src/tokens/MEME.svg | 13 + src/problem2/src/tokens/METIS.svg | 11 + src/problem2/src/tokens/MEW.svg | 25 + src/problem2/src/tokens/MIAW.svg | 7 + src/problem2/src/tokens/MILK.svg | 12 + src/problem2/src/tokens/MINA.svg | 4 + src/problem2/src/tokens/MINE.svg | 11 + src/problem2/src/tokens/MIOTA.svg | 4 + src/problem2/src/tokens/MIR.svg | 4 + src/problem2/src/tokens/MKR.svg | 10 + src/problem2/src/tokens/MMOG.svg | 20 + src/problem2/src/tokens/MNT.svg | 4 + src/problem2/src/tokens/MNTA.svg | 18 + src/problem2/src/tokens/MNTL.svg | 17 + src/problem2/src/tokens/MON.svg | 11 + src/problem2/src/tokens/MOODENG.svg | 15 + src/problem2/src/tokens/MORPHO.svg | 14 + src/problem2/src/tokens/MYT.svg | 171 ++ src/problem2/src/tokens/NANO.svg | 6 + src/problem2/src/tokens/NAS.svg | 4 + src/problem2/src/tokens/NAT.svg | 8 + src/problem2/src/tokens/NEAR.svg | 4 + src/problem2/src/tokens/NEIROETH.svg | 15 + src/problem2/src/tokens/NEO.svg | 6 + src/problem2/src/tokens/NETA.svg | 6 + src/problem2/src/tokens/NEX.svg | 5 + src/problem2/src/tokens/NEXO.svg | 9 + src/problem2/src/tokens/NGM.svg | 6 + src/problem2/src/tokens/NIM.svg | 23 + src/problem2/src/tokens/NKN.svg | 22 + src/problem2/src/tokens/NMR.svg | 5 + src/problem2/src/tokens/NOT.svg | 11 + src/problem2/src/tokens/NOTE.svg | 17 + src/problem2/src/tokens/NTRN-dATOM.svg | 21 + src/problem2/src/tokens/NTRN.svg | 12 + src/problem2/src/tokens/NXM.svg | 8 + src/problem2/src/tokens/OCEAN.svg | 4 + src/problem2/src/tokens/OCH.svg | 15 + src/problem2/src/tokens/OGN.svg | 4 + src/problem2/src/tokens/OKB.svg | 15 + src/problem2/src/tokens/OKT.svg | 15 + src/problem2/src/tokens/OM.svg | 15 + src/problem2/src/tokens/OMG.svg | 7 + src/problem2/src/tokens/OMG_2.svg | 4 + src/problem2/src/tokens/OMI.svg | 18 + src/problem2/src/tokens/OMNI.svg | 11 + src/problem2/src/tokens/ONDO.svg | 11 + src/problem2/src/tokens/ONE.svg | 10 + src/problem2/src/tokens/ONT.svg | 4 + src/problem2/src/tokens/OP.svg | 12 + src/problem2/src/tokens/OPUL.svg | 7 + src/problem2/src/tokens/ORDI.svg | 11 + src/problem2/src/tokens/ORION.svg | 8 + src/problem2/src/tokens/ORNE.svg | 6 + src/problem2/src/tokens/OSMO.svg | 121 + src/problem2/src/tokens/OXT.svg | 7 + src/problem2/src/tokens/OXY.svg | 22 + src/problem2/src/tokens/PAX.svg | 11 + src/problem2/src/tokens/PAXG.svg | 22 + src/problem2/src/tokens/PENDLE.svg | 17 + src/problem2/src/tokens/PENGU.svg | 15 + src/problem2/src/tokens/PEPE.svg | 28 + src/problem2/src/tokens/PHT.svg | 124 + src/problem2/src/tokens/PLAY.svg | 23 + src/problem2/src/tokens/PLQ.svg | 15 + src/problem2/src/tokens/PLY.svg | 42 + src/problem2/src/tokens/PNUT.svg | 15 + src/problem2/src/tokens/POL.svg | 19 + src/problem2/src/tokens/POLY.svg | 55 + src/problem2/src/tokens/POPCAT.svg | 10 + src/problem2/src/tokens/PORT.svg | 4 + src/problem2/src/tokens/PROM.svg | 5 + src/problem2/src/tokens/PSI.svg | 4 + src/problem2/src/tokens/PSTAKE.svg | 5 + src/problem2/src/tokens/PTLBTC_29MAY2025.svg | 27 + src/problem2/src/tokens/PTMETH_26DEC2024.svg | 30 + .../src/tokens/PTberaSTONE_10APR2025.svg | 21 + src/problem2/src/tokens/PTcmETH_26JUN2025.svg | 23 + src/problem2/src/tokens/PUDGY.svg | 23 + src/problem2/src/tokens/PUMP.svg | 67 + src/problem2/src/tokens/PUNDIX.svg | 4 + src/problem2/src/tokens/PURR.svg | 62 + src/problem2/src/tokens/PURSE.svg | 22 + src/problem2/src/tokens/PYTH.svg | 12 + src/problem2/src/tokens/QCK.svg | 80 + src/problem2/src/tokens/QKC.svg | 10 + src/problem2/src/tokens/QNT.svg | 10 + src/problem2/src/tokens/QTUM.svg | 4 + src/problem2/src/tokens/RAY.svg | 14 + src/problem2/src/tokens/RBN.svg | 4 + src/problem2/src/tokens/REEF.svg | 10 + src/problem2/src/tokens/REGEN.svg | 24 + src/problem2/src/tokens/REN.svg | 16 + src/problem2/src/tokens/REP.svg | 5 + src/problem2/src/tokens/REV.svg | 12 + src/problem2/src/tokens/RLB.svg | 11 + src/problem2/src/tokens/RLC.svg | 4 + src/problem2/src/tokens/RNDR.svg | 11 + src/problem2/src/tokens/ROAR.svg | 18 + src/problem2/src/tokens/ROWAN.svg | 11 + src/problem2/src/tokens/RSR.svg | 4 + src/problem2/src/tokens/RUNE.svg | 10 + src/problem2/src/tokens/RVN.svg | 6 + src/problem2/src/tokens/S.svg | 4 + src/problem2/src/tokens/SAFEMOON.svg | 27 + src/problem2/src/tokens/SAGA.svg | 12 + src/problem2/src/tokens/SAND.svg | 10 + src/problem2/src/tokens/SAYVE.svg | 5 + src/problem2/src/tokens/SC.svg | 4 + src/problem2/src/tokens/SCRT.svg | 5 + src/problem2/src/tokens/SDT.svg | 48 + src/problem2/src/tokens/SEI.svg | 14 + src/problem2/src/tokens/SET.svg | 65 + src/problem2/src/tokens/SGT.svg | 138 ++ src/problem2/src/tokens/SHD.svg | 34 + src/problem2/src/tokens/SHIB.svg | 17 + src/problem2/src/tokens/SHIDO.svg | 20 + src/problem2/src/tokens/SITY.svg | 8 + src/problem2/src/tokens/SLERF.svg | 24 + src/problem2/src/tokens/SNT.svg | 4 + src/problem2/src/tokens/SNX.svg | 10 + src/problem2/src/tokens/SOL.svg | 12 + src/problem2/src/tokens/SOLETH.svg | 12 + src/problem2/src/tokens/SOM.svg | 10 + src/problem2/src/tokens/SOMM.svg | 65 + src/problem2/src/tokens/SPEC.svg | 4 + src/problem2/src/tokens/SRM.svg | 20 + src/problem2/src/tokens/SRV.svg | 5 + src/problem2/src/tokens/STARS.svg | 16 + src/problem2/src/tokens/STEEM.svg | 6 + src/problem2/src/tokens/STMX.svg | 4 + src/problem2/src/tokens/STORJ.svg | 13 + src/problem2/src/tokens/STRAX.svg | 12 + src/problem2/src/tokens/STRD.svg | 4 + src/problem2/src/tokens/STREAM.svg | 4 + src/problem2/src/tokens/STRK.svg | 13 + src/problem2/src/tokens/STT.svg | 4 + src/problem2/src/tokens/STX.svg | 4 + src/problem2/src/tokens/SUI.svg | 11 + src/problem2/src/tokens/SUN.svg | 60 + src/problem2/src/tokens/SUSHI.svg | 26 + src/problem2/src/tokens/SWTH-LEGACY.svg | 4 + src/problem2/src/tokens/SWTH.svg | 71 + src/problem2/src/tokens/SXP.svg | 10 + src/problem2/src/tokens/TAO.svg | 4 + src/problem2/src/tokens/TEL.svg | 4 + src/problem2/src/tokens/TFUEL.svg | 11 + src/problem2/src/tokens/THETA.svg | 13 + src/problem2/src/tokens/THT.svg | 68 + src/problem2/src/tokens/TIA.svg | 11 + src/problem2/src/tokens/TICK.svg | 17 + src/problem2/src/tokens/TITAN.svg | 11 + src/problem2/src/tokens/TLAND.svg | 5 + src/problem2/src/tokens/TLM.svg | 16 + src/problem2/src/tokens/TOMO.svg | 6 + src/problem2/src/tokens/TON.svg | 11 + src/problem2/src/tokens/TPC.svg | 17 + src/problem2/src/tokens/TRAXX.svg | 14 + src/problem2/src/tokens/TRB.svg | 11 + src/problem2/src/tokens/TRU.svg | 6 + src/problem2/src/tokens/TRUMP.svg | 20 + src/problem2/src/tokens/TRX.svg | 4 + src/problem2/src/tokens/TTT.svg | 6 + src/problem2/src/tokens/TUSD.svg | 6 + src/problem2/src/tokens/TWD.svg | 18 + src/problem2/src/tokens/TWT.svg | 77 + src/problem2/src/tokens/Token.svg | 15 + src/problem2/src/tokens/UBQ.svg | 7 + src/problem2/src/tokens/UMEE.svg | 39 + src/problem2/src/tokens/UNA.svg | 7 + src/problem2/src/tokens/UNI.svg | 15 + src/problem2/src/tokens/UOS.svg | 5 + src/problem2/src/tokens/USC-Minted.svg | 37 + src/problem2/src/tokens/USC.svg | 37 + src/problem2/src/tokens/USD.svg | 8 + src/problem2/src/tokens/USDC-dATOM.svg | 17 + src/problem2/src/tokens/USDC.e.svg | 6 + src/problem2/src/tokens/USDC.grv.svg | 14 + src/problem2/src/tokens/USDC.svg | 6 + src/problem2/src/tokens/USDP.svg | 12 + src/problem2/src/tokens/USDT.svg | 5 + src/problem2/src/tokens/USDY.svg | 11 + src/problem2/src/tokens/USK.svg | 19 + src/problem2/src/tokens/UST.svg | 5 + src/problem2/src/tokens/USUAL.svg | 48 + src/problem2/src/tokens/VDL.svg | 6 + src/problem2/src/tokens/VET.svg | 4 + src/problem2/src/tokens/VIRTUAL.svg | 24 + src/problem2/src/tokens/VKR.svg | 4 + src/problem2/src/tokens/VRTX.svg | 22 + src/problem2/src/tokens/W.svg | 11 + src/problem2/src/tokens/WAL.svg | 11 + src/problem2/src/tokens/WAVAX.svg | 4 + src/problem2/src/tokens/WAVE.svg | 4 + src/problem2/src/tokens/WBNB.svg | 4 + src/problem2/src/tokens/WBTC.svg | 9 + src/problem2/src/tokens/WETH.svg | 17 + src/problem2/src/tokens/WHALE.svg | 10 + src/problem2/src/tokens/WIF.svg | 23 + src/problem2/src/tokens/WIN.svg | 5 + src/problem2/src/tokens/WLD.svg | 11 + src/problem2/src/tokens/WMATIC.svg | 6 + src/problem2/src/tokens/WMNT.svg | 4 + src/problem2/src/tokens/WMON.png | Bin 0 -> 826 bytes src/problem2/src/tokens/WRX.svg | 7 + src/problem2/src/tokens/XCAD.svg | 12 + src/problem2/src/tokens/XDC.svg | 6 + src/problem2/src/tokens/XEM.svg | 4 + src/problem2/src/tokens/XKI.svg | 5 + src/problem2/src/tokens/XLM.svg | 5 + src/problem2/src/tokens/XMR.svg | 5 + src/problem2/src/tokens/XPRT.svg | 5 + src/problem2/src/tokens/XRP.svg | 4 + src/problem2/src/tokens/XSGD.svg | 11 + src/problem2/src/tokens/XTRA.svg | 9 + src/problem2/src/tokens/XTZ.svg | 4 + src/problem2/src/tokens/XVG.svg | 4 + src/problem2/src/tokens/XVS.svg | 11 + src/problem2/src/tokens/YAKI.svg | 20 + src/problem2/src/tokens/YAM.svg | 47 + src/problem2/src/tokens/YFI.svg | 6 + src/problem2/src/tokens/YieldUSD.svg | 17 + src/problem2/src/tokens/ZCH.svg | 6 + src/problem2/src/tokens/ZEC.svg | 10 + src/problem2/src/tokens/ZEN.svg | 20 + src/problem2/src/tokens/ZIL.svg | 7 + src/problem2/src/tokens/ZRO.svg | 12 + src/problem2/src/tokens/ZRX.svg | 7 + src/problem2/src/tokens/ZWAP.svg | 5 + src/problem2/src/tokens/ampKUJI.svg | 12 + src/problem2/src/tokens/ampLUNA.svg | 15 + src/problem2/src/tokens/axlUSDC.svg | 6 + src/problem2/src/tokens/bCFX.svg | 5 + src/problem2/src/tokens/bNEO.svg | 12 + src/problem2/src/tokens/beraSTONE.svg | 20 + src/problem2/src/tokens/cUSD.svg | 21 + src/problem2/src/tokens/cbBTC.svg | 5 + src/problem2/src/tokens/cbETH.svg | 10 + src/problem2/src/tokens/cmETH.svg | 22 + src/problem2/src/tokens/dATOM.svg | 13 + src/problem2/src/tokens/dGLP.svg | 20 + src/problem2/src/tokens/dINJ.svg | 20 + src/problem2/src/tokens/dXCAD.svg | 13 + src/problem2/src/tokens/eGLD.svg | 36 + src/problem2/src/tokens/ePLAY.svg | 23 + src/problem2/src/tokens/esFLUO.svg | 18 + src/problem2/src/tokens/gZIL.svg | 12 + src/problem2/src/tokens/iSEI.svg | 10 + src/problem2/src/tokens/iUSD.svg | 5 + src/problem2/src/tokens/mETH.svg | 24 + src/problem2/src/tokens/milkTIA.svg | 18 + src/problem2/src/tokens/nLEND.svg | 19 + src/problem2/src/tokens/nNEO.svg | 6 + src/problem2/src/tokens/rATOM.svg | 55 + src/problem2/src/tokens/rSWTH.svg | 88 + src/problem2/src/tokens/sARCH.svg | 11 + src/problem2/src/tokens/stATOM.svg | 22 + src/problem2/src/tokens/stDYDX.svg | 6 + src/problem2/src/tokens/stDYM.svg | 11 + src/problem2/src/tokens/stETH.svg | 18 + src/problem2/src/tokens/stEVMOS.svg | 16 + src/problem2/src/tokens/stFLUO.svg | 18 + src/problem2/src/tokens/stIBCX.svg | 4 + src/problem2/src/tokens/stINJ.svg | 4 + src/problem2/src/tokens/stJUNO.svg | 5 + src/problem2/src/tokens/stLUNA.svg | 9 + src/problem2/src/tokens/stOKT.svg | 8 + src/problem2/src/tokens/stOSMO.svg | 16 + src/problem2/src/tokens/stSAGA.svg | 5 + src/problem2/src/tokens/stSTARS.svg | 5 + src/problem2/src/tokens/stTIA.svg | 4 + src/problem2/src/tokens/stZIL.svg | 8 + src/problem2/src/tokens/stkATOM.svg | 20 + src/problem2/src/tokens/stkDYDX.svg | 22 + src/problem2/src/tokens/stkSTARS.svg | 15 + src/problem2/src/tokens/vZWAP.svg | 12 + src/problem2/src/tokens/veFLUO.svg | 18 + src/problem2/src/tokens/wKAS.svg | 5 + src/problem2/src/tokens/wstETH.svg | 11 + 535 files changed, 14465 insertions(+) create mode 100644 src/problem2/src/tokens/1INCH.svg create mode 100644 src/problem2/src/tokens/AAVE.svg create mode 100644 src/problem2/src/tokens/ACT.svg create mode 100644 src/problem2/src/tokens/ADA.svg create mode 100644 src/problem2/src/tokens/AEVO.svg create mode 100644 src/problem2/src/tokens/AGI.svg create mode 100644 src/problem2/src/tokens/AI16Z.svg create mode 100644 src/problem2/src/tokens/AIXBT.svg create mode 100644 src/problem2/src/tokens/AKRO.svg create mode 100644 src/problem2/src/tokens/AKT.svg create mode 100644 src/problem2/src/tokens/ALGO.svg create mode 100644 src/problem2/src/tokens/ALPHA.svg create mode 100644 src/problem2/src/tokens/ALT.svg create mode 100644 src/problem2/src/tokens/AMP.svg create mode 100644 src/problem2/src/tokens/ANC.svg create mode 100644 src/problem2/src/tokens/ANDR.svg create mode 100644 src/problem2/src/tokens/ANIME.svg create mode 100644 src/problem2/src/tokens/ANKR.svg create mode 100644 src/problem2/src/tokens/ANT.svg create mode 100644 src/problem2/src/tokens/ANY.svg create mode 100644 src/problem2/src/tokens/APE.svg create mode 100644 src/problem2/src/tokens/APOLLO.svg create mode 100644 src/problem2/src/tokens/APT.svg create mode 100644 src/problem2/src/tokens/AR.svg create mode 100644 src/problem2/src/tokens/ARB.svg create mode 100644 src/problem2/src/tokens/ARCH.svg create mode 100644 src/problem2/src/tokens/ASA.svg create mode 100644 src/problem2/src/tokens/ASTRO.svg create mode 100644 src/problem2/src/tokens/ATOM-dATOM.svg create mode 100644 src/problem2/src/tokens/ATOM.svg create mode 100644 src/problem2/src/tokens/AUDIO.svg create mode 100644 src/problem2/src/tokens/AUT.svg create mode 100644 src/problem2/src/tokens/AVA.svg create mode 100644 src/problem2/src/tokens/AVAIL.svg create mode 100644 src/problem2/src/tokens/AVAX.svg create mode 100644 src/problem2/src/tokens/AXL.svg create mode 100644 src/problem2/src/tokens/AXS.svg create mode 100644 src/problem2/src/tokens/AXT.svg create mode 100644 src/problem2/src/tokens/BAKE.svg create mode 100644 src/problem2/src/tokens/BAL.svg create mode 100644 src/problem2/src/tokens/BAND.svg create mode 100644 src/problem2/src/tokens/BAT.svg create mode 100644 src/problem2/src/tokens/BCD.svg create mode 100644 src/problem2/src/tokens/BCH.svg create mode 100644 src/problem2/src/tokens/BCHA.svg create mode 100644 src/problem2/src/tokens/BCN.svg create mode 100644 src/problem2/src/tokens/BCNA.svg create mode 100644 src/problem2/src/tokens/BELT.svg create mode 100644 src/problem2/src/tokens/BERA.svg create mode 100644 src/problem2/src/tokens/BETH.svg create mode 100644 src/problem2/src/tokens/BHC.svg create mode 100644 src/problem2/src/tokens/BIT.svg create mode 100644 src/problem2/src/tokens/BLAST.svg create mode 100644 src/problem2/src/tokens/BLD.svg create mode 100644 src/problem2/src/tokens/BLOX.svg create mode 100644 src/problem2/src/tokens/BLUR.svg create mode 100644 src/problem2/src/tokens/BNB.svg create mode 100644 src/problem2/src/tokens/BNT.svg create mode 100644 src/problem2/src/tokens/BOLT.svg create mode 100644 src/problem2/src/tokens/BONK.svg create mode 100644 src/problem2/src/tokens/BOOT.svg create mode 100644 src/problem2/src/tokens/BRAINS.svg create mode 100644 src/problem2/src/tokens/BRETT.svg create mode 100644 src/problem2/src/tokens/BRKL.svg create mode 100644 src/problem2/src/tokens/BTC.svg create mode 100644 src/problem2/src/tokens/BTCST.svg create mode 100644 src/problem2/src/tokens/BTG.svg create mode 100644 src/problem2/src/tokens/BTM.svg create mode 100644 src/problem2/src/tokens/BTMX.svg create mode 100644 src/problem2/src/tokens/BTSG.svg create mode 100644 src/problem2/src/tokens/BTT.svg create mode 100644 src/problem2/src/tokens/BUNNY.svg create mode 100644 src/problem2/src/tokens/BUSD.svg create mode 100644 src/problem2/src/tokens/BUSDT.svg create mode 100644 src/problem2/src/tokens/C98.svg create mode 100644 src/problem2/src/tokens/CAKE.svg create mode 100644 src/problem2/src/tokens/CANTO.svg create mode 100644 src/problem2/src/tokens/CARB.svg create mode 100644 src/problem2/src/tokens/CAT.svg create mode 100644 src/problem2/src/tokens/CEL.svg create mode 100644 src/problem2/src/tokens/CELO.svg create mode 100644 src/problem2/src/tokens/CETH.svg create mode 100644 src/problem2/src/tokens/CFX.svg create mode 100644 src/problem2/src/tokens/CGAS.svg create mode 100644 src/problem2/src/tokens/CHEQ.svg create mode 100644 src/problem2/src/tokens/CHOG.svg create mode 100644 src/problem2/src/tokens/CHSB.svg create mode 100644 src/problem2/src/tokens/CHT.svg create mode 100644 src/problem2/src/tokens/CHZ.svg create mode 100644 src/problem2/src/tokens/CKB.svg create mode 100644 src/problem2/src/tokens/CMDX.svg create mode 100644 src/problem2/src/tokens/CMST.svg create mode 100644 src/problem2/src/tokens/CNT.svg create mode 100644 src/problem2/src/tokens/COIN.svg create mode 100644 src/problem2/src/tokens/COMP.svg create mode 100644 src/problem2/src/tokens/COOK.svg create mode 100644 src/problem2/src/tokens/CRBRUS.svg create mode 100644 src/problem2/src/tokens/CRE.svg create mode 100644 src/problem2/src/tokens/CRO.svg create mode 100644 src/problem2/src/tokens/CRV.svg create mode 100644 src/problem2/src/tokens/CTK.svg create mode 100644 src/problem2/src/tokens/CW.svg create mode 100644 src/problem2/src/tokens/DAG.svg create mode 100644 src/problem2/src/tokens/DAI.svg create mode 100644 src/problem2/src/tokens/DAK.svg create mode 100644 src/problem2/src/tokens/DARC.svg create mode 100644 src/problem2/src/tokens/DASH.svg create mode 100644 src/problem2/src/tokens/DBC.svg create mode 100644 src/problem2/src/tokens/DCR.svg create mode 100644 src/problem2/src/tokens/DEC.svg create mode 100644 src/problem2/src/tokens/DEGEN.svg create mode 100644 src/problem2/src/tokens/DENT.svg create mode 100644 src/problem2/src/tokens/DGB.svg create mode 100644 src/problem2/src/tokens/DIG.svg create mode 100644 src/problem2/src/tokens/DKT.svg create mode 100644 src/problem2/src/tokens/DODO.svg create mode 100644 src/problem2/src/tokens/DOGE.svg create mode 100644 src/problem2/src/tokens/DOT.svg create mode 100644 src/problem2/src/tokens/DPL.svg create mode 100644 src/problem2/src/tokens/DPX.svg create mode 100644 src/problem2/src/tokens/DRFT.svg create mode 100644 src/problem2/src/tokens/DROP.svg create mode 100644 src/problem2/src/tokens/DSM.svg create mode 100644 src/problem2/src/tokens/DUVT.svg create mode 100644 src/problem2/src/tokens/DVPN.svg create mode 100644 src/problem2/src/tokens/DYDX.svg create mode 100644 src/problem2/src/tokens/DYM.svg create mode 100644 src/problem2/src/tokens/EEUR.svg create mode 100644 src/problem2/src/tokens/EIGEN.svg create mode 100644 src/problem2/src/tokens/ELA.svg create mode 100644 src/problem2/src/tokens/ELF.svg create mode 100644 src/problem2/src/tokens/ENA.svg create mode 100644 src/problem2/src/tokens/ENJ.svg create mode 100644 src/problem2/src/tokens/ENS.svg create mode 100644 src/problem2/src/tokens/EOS.svg create mode 100644 src/problem2/src/tokens/EPS.svg create mode 100644 src/problem2/src/tokens/ETC.svg create mode 100644 src/problem2/src/tokens/ETH.svg create mode 100644 src/problem2/src/tokens/ETHBTC.svg create mode 100644 src/problem2/src/tokens/ETN.svg create mode 100644 src/problem2/src/tokens/EUROC.svg create mode 100644 src/problem2/src/tokens/EUT.svg create mode 100644 src/problem2/src/tokens/EVMOS.svg create mode 100644 src/problem2/src/tokens/EWT.svg create mode 100644 src/problem2/src/tokens/FARTCOIN.svg create mode 100644 src/problem2/src/tokens/FBTC.svg create mode 100644 src/problem2/src/tokens/FEES.svg create mode 100644 src/problem2/src/tokens/FET.svg create mode 100644 src/problem2/src/tokens/FIL.svg create mode 100644 src/problem2/src/tokens/FIS.svg create mode 100644 src/problem2/src/tokens/FLIX.svg create mode 100644 src/problem2/src/tokens/FLM.svg create mode 100644 src/problem2/src/tokens/FLOW.svg create mode 100644 src/problem2/src/tokens/FLUID.svg create mode 100644 src/problem2/src/tokens/FLUO.svg create mode 100644 src/problem2/src/tokens/FRANK.svg create mode 100644 src/problem2/src/tokens/FSGLP.svg create mode 100644 src/problem2/src/tokens/FTM.svg create mode 100644 src/problem2/src/tokens/FTT.svg create mode 100644 src/problem2/src/tokens/FTTC.svg create mode 100644 src/problem2/src/tokens/FUN.svg create mode 100644 src/problem2/src/tokens/GALA.svg create mode 100644 src/problem2/src/tokens/GAMBIT.svg create mode 100644 src/problem2/src/tokens/GAS.svg create mode 100644 src/problem2/src/tokens/GBT.svg create mode 100644 src/problem2/src/tokens/GLP.svg create mode 100644 src/problem2/src/tokens/GM.svg create mode 100644 src/problem2/src/tokens/GMX.svg create mode 100644 src/problem2/src/tokens/GNO.svg create mode 100644 src/problem2/src/tokens/GNS.svg create mode 100644 src/problem2/src/tokens/GOAT.svg create mode 100644 src/problem2/src/tokens/GRASS.svg create mode 100644 src/problem2/src/tokens/GRAV.svg create mode 100644 src/problem2/src/tokens/GRT.svg create mode 100644 src/problem2/src/tokens/GT.svg create mode 100644 src/problem2/src/tokens/HBAR.svg create mode 100644 src/problem2/src/tokens/HDN.png create mode 100644 src/problem2/src/tokens/HDN.svg create mode 100644 src/problem2/src/tokens/HELMET.svg create mode 100644 src/problem2/src/tokens/HKT.svg create mode 100644 src/problem2/src/tokens/HNT.svg create mode 100644 src/problem2/src/tokens/HOPE.svg create mode 100644 src/problem2/src/tokens/HOT.svg create mode 100644 src/problem2/src/tokens/HT.svg create mode 100644 src/problem2/src/tokens/HUAHUA.svg create mode 100644 src/problem2/src/tokens/HUNY.svg create mode 100644 src/problem2/src/tokens/HUSD.svg create mode 100644 src/problem2/src/tokens/HYPE.svg create mode 100644 src/problem2/src/tokens/IBCX.svg create mode 100644 src/problem2/src/tokens/ICP.svg create mode 100644 src/problem2/src/tokens/ICX.svg create mode 100644 src/problem2/src/tokens/IDT.svg create mode 100644 src/problem2/src/tokens/INIT.svg create mode 100644 src/problem2/src/tokens/INJ.svg create mode 100644 src/problem2/src/tokens/INT.svg create mode 100644 src/problem2/src/tokens/ION.svg create mode 100644 src/problem2/src/tokens/IOST.svg create mode 100644 src/problem2/src/tokens/IOTX.svg create mode 100644 src/problem2/src/tokens/IOV.svg create mode 100644 src/problem2/src/tokens/IP.svg create mode 100644 src/problem2/src/tokens/IRIS.svg create mode 100644 src/problem2/src/tokens/IXO.svg create mode 100644 src/problem2/src/tokens/JPT.svg create mode 100644 src/problem2/src/tokens/JTO.svg create mode 100644 src/problem2/src/tokens/JUNO.svg create mode 100644 src/problem2/src/tokens/JUP.svg create mode 100644 src/problem2/src/tokens/KAITO.svg create mode 100644 src/problem2/src/tokens/KAS.svg create mode 100644 src/problem2/src/tokens/KBONK.svg create mode 100644 src/problem2/src/tokens/KCS.svg create mode 100644 src/problem2/src/tokens/KFLOKI.svg create mode 100644 src/problem2/src/tokens/KLAY.svg create mode 100644 src/problem2/src/tokens/KMD.svg create mode 100644 src/problem2/src/tokens/KNC.svg create mode 100644 src/problem2/src/tokens/KPEPE.svg create mode 100644 src/problem2/src/tokens/KRT.svg create mode 100644 src/problem2/src/tokens/KSHIB.svg create mode 100644 src/problem2/src/tokens/KSM.svg create mode 100644 src/problem2/src/tokens/KUJI.svg create mode 100644 src/problem2/src/tokens/LAYER.svg create mode 100644 src/problem2/src/tokens/LBTC.svg create mode 100644 src/problem2/src/tokens/LDO.svg create mode 100644 src/problem2/src/tokens/LEO.svg create mode 100644 src/problem2/src/tokens/LET.svg create mode 100644 src/problem2/src/tokens/LIKE.svg create mode 100644 src/problem2/src/tokens/LINK.svg create mode 100644 src/problem2/src/tokens/LKT.svg create mode 100644 src/problem2/src/tokens/LOOM.svg create mode 100644 src/problem2/src/tokens/LOOP.svg create mode 100644 src/problem2/src/tokens/LOTA.svg create mode 100644 src/problem2/src/tokens/LPLBTC_29MAY2025.svg create mode 100644 src/problem2/src/tokens/LPT.svg create mode 100644 src/problem2/src/tokens/LPberaSTONE_10APR2025.svg create mode 100644 src/problem2/src/tokens/LPcmETH_26JUN2025.svg create mode 100644 src/problem2/src/tokens/LRC.svg create mode 100644 src/problem2/src/tokens/LSI.svg create mode 100644 src/problem2/src/tokens/LSK.svg create mode 100644 src/problem2/src/tokens/LTC.svg create mode 100644 src/problem2/src/tokens/LUM.svg create mode 100644 src/problem2/src/tokens/LUNA.svg create mode 100644 src/problem2/src/tokens/LUNAX.svg create mode 100644 src/problem2/src/tokens/LUNC.svg create mode 100644 src/problem2/src/tokens/LUNI.svg create mode 100644 src/problem2/src/tokens/LUNR.svg create mode 100644 src/problem2/src/tokens/LUV.svg create mode 100644 src/problem2/src/tokens/LVN.svg create mode 100644 src/problem2/src/tokens/Liquid Staking Index.svg create mode 100644 src/problem2/src/tokens/M87.svg create mode 100644 src/problem2/src/tokens/MANA.svg create mode 100644 src/problem2/src/tokens/MANTA.svg create mode 100644 src/problem2/src/tokens/MARBLE.svg create mode 100644 src/problem2/src/tokens/MATH.svg create mode 100644 src/problem2/src/tokens/MATIC.svg create mode 100644 src/problem2/src/tokens/MDX.svg create mode 100644 src/problem2/src/tokens/ME.svg create mode 100644 src/problem2/src/tokens/MED.svg create mode 100644 src/problem2/src/tokens/MEME.svg create mode 100644 src/problem2/src/tokens/METIS.svg create mode 100644 src/problem2/src/tokens/MEW.svg create mode 100644 src/problem2/src/tokens/MIAW.svg create mode 100644 src/problem2/src/tokens/MILK.svg create mode 100644 src/problem2/src/tokens/MINA.svg create mode 100644 src/problem2/src/tokens/MINE.svg create mode 100644 src/problem2/src/tokens/MIOTA.svg create mode 100644 src/problem2/src/tokens/MIR.svg create mode 100644 src/problem2/src/tokens/MKR.svg create mode 100644 src/problem2/src/tokens/MMOG.svg create mode 100644 src/problem2/src/tokens/MNT.svg create mode 100644 src/problem2/src/tokens/MNTA.svg create mode 100644 src/problem2/src/tokens/MNTL.svg create mode 100644 src/problem2/src/tokens/MON.svg create mode 100644 src/problem2/src/tokens/MOODENG.svg create mode 100644 src/problem2/src/tokens/MORPHO.svg create mode 100644 src/problem2/src/tokens/MYT.svg create mode 100644 src/problem2/src/tokens/NANO.svg create mode 100644 src/problem2/src/tokens/NAS.svg create mode 100644 src/problem2/src/tokens/NAT.svg create mode 100644 src/problem2/src/tokens/NEAR.svg create mode 100644 src/problem2/src/tokens/NEIROETH.svg create mode 100644 src/problem2/src/tokens/NEO.svg create mode 100644 src/problem2/src/tokens/NETA.svg create mode 100644 src/problem2/src/tokens/NEX.svg create mode 100644 src/problem2/src/tokens/NEXO.svg create mode 100644 src/problem2/src/tokens/NGM.svg create mode 100644 src/problem2/src/tokens/NIM.svg create mode 100644 src/problem2/src/tokens/NKN.svg create mode 100644 src/problem2/src/tokens/NMR.svg create mode 100644 src/problem2/src/tokens/NOT.svg create mode 100644 src/problem2/src/tokens/NOTE.svg create mode 100644 src/problem2/src/tokens/NTRN-dATOM.svg create mode 100644 src/problem2/src/tokens/NTRN.svg create mode 100644 src/problem2/src/tokens/NXM.svg create mode 100644 src/problem2/src/tokens/OCEAN.svg create mode 100644 src/problem2/src/tokens/OCH.svg create mode 100644 src/problem2/src/tokens/OGN.svg create mode 100644 src/problem2/src/tokens/OKB.svg create mode 100644 src/problem2/src/tokens/OKT.svg create mode 100644 src/problem2/src/tokens/OM.svg create mode 100644 src/problem2/src/tokens/OMG.svg create mode 100644 src/problem2/src/tokens/OMG_2.svg create mode 100644 src/problem2/src/tokens/OMI.svg create mode 100644 src/problem2/src/tokens/OMNI.svg create mode 100644 src/problem2/src/tokens/ONDO.svg create mode 100644 src/problem2/src/tokens/ONE.svg create mode 100644 src/problem2/src/tokens/ONT.svg create mode 100644 src/problem2/src/tokens/OP.svg create mode 100644 src/problem2/src/tokens/OPUL.svg create mode 100644 src/problem2/src/tokens/ORDI.svg create mode 100644 src/problem2/src/tokens/ORION.svg create mode 100644 src/problem2/src/tokens/ORNE.svg create mode 100644 src/problem2/src/tokens/OSMO.svg create mode 100644 src/problem2/src/tokens/OXT.svg create mode 100644 src/problem2/src/tokens/OXY.svg create mode 100644 src/problem2/src/tokens/PAX.svg create mode 100644 src/problem2/src/tokens/PAXG.svg create mode 100644 src/problem2/src/tokens/PENDLE.svg create mode 100644 src/problem2/src/tokens/PENGU.svg create mode 100644 src/problem2/src/tokens/PEPE.svg create mode 100644 src/problem2/src/tokens/PHT.svg create mode 100644 src/problem2/src/tokens/PLAY.svg create mode 100644 src/problem2/src/tokens/PLQ.svg create mode 100644 src/problem2/src/tokens/PLY.svg create mode 100644 src/problem2/src/tokens/PNUT.svg create mode 100644 src/problem2/src/tokens/POL.svg create mode 100644 src/problem2/src/tokens/POLY.svg create mode 100644 src/problem2/src/tokens/POPCAT.svg create mode 100644 src/problem2/src/tokens/PORT.svg create mode 100644 src/problem2/src/tokens/PROM.svg create mode 100644 src/problem2/src/tokens/PSI.svg create mode 100644 src/problem2/src/tokens/PSTAKE.svg create mode 100644 src/problem2/src/tokens/PTLBTC_29MAY2025.svg create mode 100644 src/problem2/src/tokens/PTMETH_26DEC2024.svg create mode 100644 src/problem2/src/tokens/PTberaSTONE_10APR2025.svg create mode 100644 src/problem2/src/tokens/PTcmETH_26JUN2025.svg create mode 100644 src/problem2/src/tokens/PUDGY.svg create mode 100644 src/problem2/src/tokens/PUMP.svg create mode 100644 src/problem2/src/tokens/PUNDIX.svg create mode 100644 src/problem2/src/tokens/PURR.svg create mode 100644 src/problem2/src/tokens/PURSE.svg create mode 100644 src/problem2/src/tokens/PYTH.svg create mode 100644 src/problem2/src/tokens/QCK.svg create mode 100644 src/problem2/src/tokens/QKC.svg create mode 100644 src/problem2/src/tokens/QNT.svg create mode 100644 src/problem2/src/tokens/QTUM.svg create mode 100644 src/problem2/src/tokens/RAY.svg create mode 100644 src/problem2/src/tokens/RBN.svg create mode 100644 src/problem2/src/tokens/REEF.svg create mode 100644 src/problem2/src/tokens/REGEN.svg create mode 100644 src/problem2/src/tokens/REN.svg create mode 100644 src/problem2/src/tokens/REP.svg create mode 100644 src/problem2/src/tokens/REV.svg create mode 100644 src/problem2/src/tokens/RLB.svg create mode 100644 src/problem2/src/tokens/RLC.svg create mode 100644 src/problem2/src/tokens/RNDR.svg create mode 100644 src/problem2/src/tokens/ROAR.svg create mode 100644 src/problem2/src/tokens/ROWAN.svg create mode 100644 src/problem2/src/tokens/RSR.svg create mode 100644 src/problem2/src/tokens/RUNE.svg create mode 100644 src/problem2/src/tokens/RVN.svg create mode 100644 src/problem2/src/tokens/S.svg create mode 100644 src/problem2/src/tokens/SAFEMOON.svg create mode 100644 src/problem2/src/tokens/SAGA.svg create mode 100644 src/problem2/src/tokens/SAND.svg create mode 100644 src/problem2/src/tokens/SAYVE.svg create mode 100644 src/problem2/src/tokens/SC.svg create mode 100644 src/problem2/src/tokens/SCRT.svg create mode 100644 src/problem2/src/tokens/SDT.svg create mode 100644 src/problem2/src/tokens/SEI.svg create mode 100644 src/problem2/src/tokens/SET.svg create mode 100644 src/problem2/src/tokens/SGT.svg create mode 100644 src/problem2/src/tokens/SHD.svg create mode 100644 src/problem2/src/tokens/SHIB.svg create mode 100644 src/problem2/src/tokens/SHIDO.svg create mode 100644 src/problem2/src/tokens/SITY.svg create mode 100644 src/problem2/src/tokens/SLERF.svg create mode 100644 src/problem2/src/tokens/SNT.svg create mode 100644 src/problem2/src/tokens/SNX.svg create mode 100644 src/problem2/src/tokens/SOL.svg create mode 100644 src/problem2/src/tokens/SOLETH.svg create mode 100644 src/problem2/src/tokens/SOM.svg create mode 100644 src/problem2/src/tokens/SOMM.svg create mode 100644 src/problem2/src/tokens/SPEC.svg create mode 100644 src/problem2/src/tokens/SRM.svg create mode 100644 src/problem2/src/tokens/SRV.svg create mode 100644 src/problem2/src/tokens/STARS.svg create mode 100644 src/problem2/src/tokens/STEEM.svg create mode 100644 src/problem2/src/tokens/STMX.svg create mode 100644 src/problem2/src/tokens/STORJ.svg create mode 100644 src/problem2/src/tokens/STRAX.svg create mode 100644 src/problem2/src/tokens/STRD.svg create mode 100644 src/problem2/src/tokens/STREAM.svg create mode 100644 src/problem2/src/tokens/STRK.svg create mode 100644 src/problem2/src/tokens/STT.svg create mode 100644 src/problem2/src/tokens/STX.svg create mode 100644 src/problem2/src/tokens/SUI.svg create mode 100644 src/problem2/src/tokens/SUN.svg create mode 100644 src/problem2/src/tokens/SUSHI.svg create mode 100644 src/problem2/src/tokens/SWTH-LEGACY.svg create mode 100644 src/problem2/src/tokens/SWTH.svg create mode 100644 src/problem2/src/tokens/SXP.svg create mode 100644 src/problem2/src/tokens/TAO.svg create mode 100644 src/problem2/src/tokens/TEL.svg create mode 100644 src/problem2/src/tokens/TFUEL.svg create mode 100644 src/problem2/src/tokens/THETA.svg create mode 100644 src/problem2/src/tokens/THT.svg create mode 100644 src/problem2/src/tokens/TIA.svg create mode 100644 src/problem2/src/tokens/TICK.svg create mode 100644 src/problem2/src/tokens/TITAN.svg create mode 100644 src/problem2/src/tokens/TLAND.svg create mode 100644 src/problem2/src/tokens/TLM.svg create mode 100644 src/problem2/src/tokens/TOMO.svg create mode 100644 src/problem2/src/tokens/TON.svg create mode 100644 src/problem2/src/tokens/TPC.svg create mode 100644 src/problem2/src/tokens/TRAXX.svg create mode 100644 src/problem2/src/tokens/TRB.svg create mode 100644 src/problem2/src/tokens/TRU.svg create mode 100644 src/problem2/src/tokens/TRUMP.svg create mode 100644 src/problem2/src/tokens/TRX.svg create mode 100644 src/problem2/src/tokens/TTT.svg create mode 100644 src/problem2/src/tokens/TUSD.svg create mode 100644 src/problem2/src/tokens/TWD.svg create mode 100644 src/problem2/src/tokens/TWT.svg create mode 100644 src/problem2/src/tokens/Token.svg create mode 100644 src/problem2/src/tokens/UBQ.svg create mode 100644 src/problem2/src/tokens/UMEE.svg create mode 100644 src/problem2/src/tokens/UNA.svg create mode 100644 src/problem2/src/tokens/UNI.svg create mode 100644 src/problem2/src/tokens/UOS.svg create mode 100644 src/problem2/src/tokens/USC-Minted.svg create mode 100644 src/problem2/src/tokens/USC.svg create mode 100644 src/problem2/src/tokens/USD.svg create mode 100644 src/problem2/src/tokens/USDC-dATOM.svg create mode 100644 src/problem2/src/tokens/USDC.e.svg create mode 100644 src/problem2/src/tokens/USDC.grv.svg create mode 100644 src/problem2/src/tokens/USDC.svg create mode 100644 src/problem2/src/tokens/USDP.svg create mode 100644 src/problem2/src/tokens/USDT.svg create mode 100644 src/problem2/src/tokens/USDY.svg create mode 100644 src/problem2/src/tokens/USK.svg create mode 100644 src/problem2/src/tokens/UST.svg create mode 100644 src/problem2/src/tokens/USUAL.svg create mode 100644 src/problem2/src/tokens/VDL.svg create mode 100644 src/problem2/src/tokens/VET.svg create mode 100644 src/problem2/src/tokens/VIRTUAL.svg create mode 100644 src/problem2/src/tokens/VKR.svg create mode 100644 src/problem2/src/tokens/VRTX.svg create mode 100644 src/problem2/src/tokens/W.svg create mode 100644 src/problem2/src/tokens/WAL.svg create mode 100644 src/problem2/src/tokens/WAVAX.svg create mode 100644 src/problem2/src/tokens/WAVE.svg create mode 100644 src/problem2/src/tokens/WBNB.svg create mode 100644 src/problem2/src/tokens/WBTC.svg create mode 100644 src/problem2/src/tokens/WETH.svg create mode 100644 src/problem2/src/tokens/WHALE.svg create mode 100644 src/problem2/src/tokens/WIF.svg create mode 100644 src/problem2/src/tokens/WIN.svg create mode 100644 src/problem2/src/tokens/WLD.svg create mode 100644 src/problem2/src/tokens/WMATIC.svg create mode 100644 src/problem2/src/tokens/WMNT.svg create mode 100644 src/problem2/src/tokens/WMON.png create mode 100644 src/problem2/src/tokens/WRX.svg create mode 100644 src/problem2/src/tokens/XCAD.svg create mode 100644 src/problem2/src/tokens/XDC.svg create mode 100644 src/problem2/src/tokens/XEM.svg create mode 100644 src/problem2/src/tokens/XKI.svg create mode 100644 src/problem2/src/tokens/XLM.svg create mode 100644 src/problem2/src/tokens/XMR.svg create mode 100644 src/problem2/src/tokens/XPRT.svg create mode 100644 src/problem2/src/tokens/XRP.svg create mode 100644 src/problem2/src/tokens/XSGD.svg create mode 100644 src/problem2/src/tokens/XTRA.svg create mode 100644 src/problem2/src/tokens/XTZ.svg create mode 100644 src/problem2/src/tokens/XVG.svg create mode 100644 src/problem2/src/tokens/XVS.svg create mode 100644 src/problem2/src/tokens/YAKI.svg create mode 100644 src/problem2/src/tokens/YAM.svg create mode 100644 src/problem2/src/tokens/YFI.svg create mode 100644 src/problem2/src/tokens/YieldUSD.svg create mode 100644 src/problem2/src/tokens/ZCH.svg create mode 100644 src/problem2/src/tokens/ZEC.svg create mode 100644 src/problem2/src/tokens/ZEN.svg create mode 100644 src/problem2/src/tokens/ZIL.svg create mode 100644 src/problem2/src/tokens/ZRO.svg create mode 100644 src/problem2/src/tokens/ZRX.svg create mode 100644 src/problem2/src/tokens/ZWAP.svg create mode 100644 src/problem2/src/tokens/ampKUJI.svg create mode 100644 src/problem2/src/tokens/ampLUNA.svg create mode 100644 src/problem2/src/tokens/axlUSDC.svg create mode 100644 src/problem2/src/tokens/bCFX.svg create mode 100644 src/problem2/src/tokens/bNEO.svg create mode 100644 src/problem2/src/tokens/beraSTONE.svg create mode 100644 src/problem2/src/tokens/cUSD.svg create mode 100644 src/problem2/src/tokens/cbBTC.svg create mode 100644 src/problem2/src/tokens/cbETH.svg create mode 100644 src/problem2/src/tokens/cmETH.svg create mode 100644 src/problem2/src/tokens/dATOM.svg create mode 100644 src/problem2/src/tokens/dGLP.svg create mode 100644 src/problem2/src/tokens/dINJ.svg create mode 100644 src/problem2/src/tokens/dXCAD.svg create mode 100644 src/problem2/src/tokens/eGLD.svg create mode 100644 src/problem2/src/tokens/ePLAY.svg create mode 100644 src/problem2/src/tokens/esFLUO.svg create mode 100644 src/problem2/src/tokens/gZIL.svg create mode 100644 src/problem2/src/tokens/iSEI.svg create mode 100644 src/problem2/src/tokens/iUSD.svg create mode 100644 src/problem2/src/tokens/mETH.svg create mode 100644 src/problem2/src/tokens/milkTIA.svg create mode 100644 src/problem2/src/tokens/nLEND.svg create mode 100644 src/problem2/src/tokens/nNEO.svg create mode 100644 src/problem2/src/tokens/rATOM.svg create mode 100644 src/problem2/src/tokens/rSWTH.svg create mode 100644 src/problem2/src/tokens/sARCH.svg create mode 100644 src/problem2/src/tokens/stATOM.svg create mode 100644 src/problem2/src/tokens/stDYDX.svg create mode 100644 src/problem2/src/tokens/stDYM.svg create mode 100644 src/problem2/src/tokens/stETH.svg create mode 100644 src/problem2/src/tokens/stEVMOS.svg create mode 100644 src/problem2/src/tokens/stFLUO.svg create mode 100644 src/problem2/src/tokens/stIBCX.svg create mode 100644 src/problem2/src/tokens/stINJ.svg create mode 100644 src/problem2/src/tokens/stJUNO.svg create mode 100644 src/problem2/src/tokens/stLUNA.svg create mode 100644 src/problem2/src/tokens/stOKT.svg create mode 100644 src/problem2/src/tokens/stOSMO.svg create mode 100644 src/problem2/src/tokens/stSAGA.svg create mode 100644 src/problem2/src/tokens/stSTARS.svg create mode 100644 src/problem2/src/tokens/stTIA.svg create mode 100644 src/problem2/src/tokens/stZIL.svg create mode 100644 src/problem2/src/tokens/stkATOM.svg create mode 100644 src/problem2/src/tokens/stkDYDX.svg create mode 100644 src/problem2/src/tokens/stkSTARS.svg create mode 100644 src/problem2/src/tokens/vZWAP.svg create mode 100644 src/problem2/src/tokens/veFLUO.svg create mode 100644 src/problem2/src/tokens/wKAS.svg create mode 100644 src/problem2/src/tokens/wstETH.svg diff --git a/src/problem2/src/tokens/1INCH.svg b/src/problem2/src/tokens/1INCH.svg new file mode 100644 index 0000000000..5970f7bd55 --- /dev/null +++ b/src/problem2/src/tokens/1INCH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AAVE.svg b/src/problem2/src/tokens/AAVE.svg new file mode 100644 index 0000000000..10e65a3210 --- /dev/null +++ b/src/problem2/src/tokens/AAVE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ACT.svg b/src/problem2/src/tokens/ACT.svg new file mode 100644 index 0000000000..2415fef55c --- /dev/null +++ b/src/problem2/src/tokens/ACT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ADA.svg b/src/problem2/src/tokens/ADA.svg new file mode 100644 index 0000000000..c57bee9598 --- /dev/null +++ b/src/problem2/src/tokens/ADA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AEVO.svg b/src/problem2/src/tokens/AEVO.svg new file mode 100644 index 0000000000..26c36a62dd --- /dev/null +++ b/src/problem2/src/tokens/AEVO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AGI.svg b/src/problem2/src/tokens/AGI.svg new file mode 100644 index 0000000000..2617764b4c --- /dev/null +++ b/src/problem2/src/tokens/AGI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/AI16Z.svg b/src/problem2/src/tokens/AI16Z.svg new file mode 100644 index 0000000000..d6b38455f9 --- /dev/null +++ b/src/problem2/src/tokens/AI16Z.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AIXBT.svg b/src/problem2/src/tokens/AIXBT.svg new file mode 100644 index 0000000000..2fd4c736d7 --- /dev/null +++ b/src/problem2/src/tokens/AIXBT.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AKRO.svg b/src/problem2/src/tokens/AKRO.svg new file mode 100644 index 0000000000..33501e5c2e --- /dev/null +++ b/src/problem2/src/tokens/AKRO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AKT.svg b/src/problem2/src/tokens/AKT.svg new file mode 100644 index 0000000000..a0733cd5e8 --- /dev/null +++ b/src/problem2/src/tokens/AKT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ALGO.svg b/src/problem2/src/tokens/ALGO.svg new file mode 100644 index 0000000000..0c79ab88fd --- /dev/null +++ b/src/problem2/src/tokens/ALGO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ALPHA.svg b/src/problem2/src/tokens/ALPHA.svg new file mode 100644 index 0000000000..9d916fb949 --- /dev/null +++ b/src/problem2/src/tokens/ALPHA.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ALT.svg b/src/problem2/src/tokens/ALT.svg new file mode 100644 index 0000000000..fb551dfa7d --- /dev/null +++ b/src/problem2/src/tokens/ALT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AMP.svg b/src/problem2/src/tokens/AMP.svg new file mode 100644 index 0000000000..71bec9f9b4 --- /dev/null +++ b/src/problem2/src/tokens/AMP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ANC.svg b/src/problem2/src/tokens/ANC.svg new file mode 100644 index 0000000000..bd414783cf --- /dev/null +++ b/src/problem2/src/tokens/ANC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ANDR.svg b/src/problem2/src/tokens/ANDR.svg new file mode 100644 index 0000000000..fc7e23b4ef --- /dev/null +++ b/src/problem2/src/tokens/ANDR.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANIME.svg b/src/problem2/src/tokens/ANIME.svg new file mode 100644 index 0000000000..975db35cd4 --- /dev/null +++ b/src/problem2/src/tokens/ANIME.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANKR.svg b/src/problem2/src/tokens/ANKR.svg new file mode 100644 index 0000000000..b8599f0165 --- /dev/null +++ b/src/problem2/src/tokens/ANKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ANT.svg b/src/problem2/src/tokens/ANT.svg new file mode 100644 index 0000000000..f805ff79f5 --- /dev/null +++ b/src/problem2/src/tokens/ANT.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANY.svg b/src/problem2/src/tokens/ANY.svg new file mode 100644 index 0000000000..c504391175 --- /dev/null +++ b/src/problem2/src/tokens/ANY.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/APE.svg b/src/problem2/src/tokens/APE.svg new file mode 100644 index 0000000000..26ff9cfd4e --- /dev/null +++ b/src/problem2/src/tokens/APE.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/APOLLO.svg b/src/problem2/src/tokens/APOLLO.svg new file mode 100644 index 0000000000..852aa5cea2 --- /dev/null +++ b/src/problem2/src/tokens/APOLLO.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/APT.svg b/src/problem2/src/tokens/APT.svg new file mode 100644 index 0000000000..df0a169047 --- /dev/null +++ b/src/problem2/src/tokens/APT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AR.svg b/src/problem2/src/tokens/AR.svg new file mode 100644 index 0000000000..5efc91fdb4 --- /dev/null +++ b/src/problem2/src/tokens/AR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ARB.svg b/src/problem2/src/tokens/ARB.svg new file mode 100644 index 0000000000..2666c28ab2 --- /dev/null +++ b/src/problem2/src/tokens/ARB.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ARCH.svg b/src/problem2/src/tokens/ARCH.svg new file mode 100644 index 0000000000..b6deb843a1 --- /dev/null +++ b/src/problem2/src/tokens/ARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ASA.svg b/src/problem2/src/tokens/ASA.svg new file mode 100644 index 0000000000..7023a06245 --- /dev/null +++ b/src/problem2/src/tokens/ASA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ASTRO.svg b/src/problem2/src/tokens/ASTRO.svg new file mode 100644 index 0000000000..23047ab947 --- /dev/null +++ b/src/problem2/src/tokens/ASTRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ATOM-dATOM.svg b/src/problem2/src/tokens/ATOM-dATOM.svg new file mode 100644 index 0000000000..07e4a7d4c2 --- /dev/null +++ b/src/problem2/src/tokens/ATOM-dATOM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ATOM.svg b/src/problem2/src/tokens/ATOM.svg new file mode 100644 index 0000000000..f3f9d10429 --- /dev/null +++ b/src/problem2/src/tokens/ATOM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/AUDIO.svg b/src/problem2/src/tokens/AUDIO.svg new file mode 100644 index 0000000000..527d7ae79e --- /dev/null +++ b/src/problem2/src/tokens/AUDIO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AUT.svg b/src/problem2/src/tokens/AUT.svg new file mode 100644 index 0000000000..4f442bcfe1 --- /dev/null +++ b/src/problem2/src/tokens/AUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVA.svg b/src/problem2/src/tokens/AVA.svg new file mode 100644 index 0000000000..b88859ee56 --- /dev/null +++ b/src/problem2/src/tokens/AVA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVAIL.svg b/src/problem2/src/tokens/AVAIL.svg new file mode 100644 index 0000000000..6b011a7f67 --- /dev/null +++ b/src/problem2/src/tokens/AVAIL.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVAX.svg b/src/problem2/src/tokens/AVAX.svg new file mode 100644 index 0000000000..e85981529c --- /dev/null +++ b/src/problem2/src/tokens/AVAX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXL.svg b/src/problem2/src/tokens/AXL.svg new file mode 100644 index 0000000000..a0d81a72ff --- /dev/null +++ b/src/problem2/src/tokens/AXL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXS.svg b/src/problem2/src/tokens/AXS.svg new file mode 100644 index 0000000000..ab64a1a097 --- /dev/null +++ b/src/problem2/src/tokens/AXS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXT.svg b/src/problem2/src/tokens/AXT.svg new file mode 100644 index 0000000000..a0be2a7e32 --- /dev/null +++ b/src/problem2/src/tokens/AXT.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BAKE.svg b/src/problem2/src/tokens/BAKE.svg new file mode 100644 index 0000000000..48e18cc4c8 --- /dev/null +++ b/src/problem2/src/tokens/BAKE.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BAL.svg b/src/problem2/src/tokens/BAL.svg new file mode 100644 index 0000000000..274d48692b --- /dev/null +++ b/src/problem2/src/tokens/BAL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/BAND.svg b/src/problem2/src/tokens/BAND.svg new file mode 100644 index 0000000000..fe0b053178 --- /dev/null +++ b/src/problem2/src/tokens/BAND.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BAT.svg b/src/problem2/src/tokens/BAT.svg new file mode 100644 index 0000000000..6bea15edba --- /dev/null +++ b/src/problem2/src/tokens/BAT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCD.svg b/src/problem2/src/tokens/BCD.svg new file mode 100644 index 0000000000..2eae4d86ac --- /dev/null +++ b/src/problem2/src/tokens/BCD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCH.svg b/src/problem2/src/tokens/BCH.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/tokens/BCH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCHA.svg b/src/problem2/src/tokens/BCHA.svg new file mode 100644 index 0000000000..d1c50093bd --- /dev/null +++ b/src/problem2/src/tokens/BCHA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BCN.svg b/src/problem2/src/tokens/BCN.svg new file mode 100644 index 0000000000..446afbc222 --- /dev/null +++ b/src/problem2/src/tokens/BCN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCNA.svg b/src/problem2/src/tokens/BCNA.svg new file mode 100644 index 0000000000..81cb2950dc --- /dev/null +++ b/src/problem2/src/tokens/BCNA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/BELT.svg b/src/problem2/src/tokens/BELT.svg new file mode 100644 index 0000000000..0711b1485c --- /dev/null +++ b/src/problem2/src/tokens/BELT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/tokens/BERA.svg b/src/problem2/src/tokens/BERA.svg new file mode 100644 index 0000000000..e77de0c563 --- /dev/null +++ b/src/problem2/src/tokens/BERA.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BETH.svg b/src/problem2/src/tokens/BETH.svg new file mode 100644 index 0000000000..46a2401959 --- /dev/null +++ b/src/problem2/src/tokens/BETH.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BHC.svg b/src/problem2/src/tokens/BHC.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/tokens/BHC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BIT.svg b/src/problem2/src/tokens/BIT.svg new file mode 100644 index 0000000000..123a839eb5 --- /dev/null +++ b/src/problem2/src/tokens/BIT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BLAST.svg b/src/problem2/src/tokens/BLAST.svg new file mode 100644 index 0000000000..d931df3f89 --- /dev/null +++ b/src/problem2/src/tokens/BLAST.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLD.svg b/src/problem2/src/tokens/BLD.svg new file mode 100644 index 0000000000..1674899d4e --- /dev/null +++ b/src/problem2/src/tokens/BLD.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLOX.svg b/src/problem2/src/tokens/BLOX.svg new file mode 100644 index 0000000000..7a3045c57f --- /dev/null +++ b/src/problem2/src/tokens/BLOX.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLUR.svg b/src/problem2/src/tokens/BLUR.svg new file mode 100644 index 0000000000..bf1e280984 --- /dev/null +++ b/src/problem2/src/tokens/BLUR.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BNB.svg b/src/problem2/src/tokens/BNB.svg new file mode 100644 index 0000000000..a7c6699768 --- /dev/null +++ b/src/problem2/src/tokens/BNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BNT.svg b/src/problem2/src/tokens/BNT.svg new file mode 100644 index 0000000000..4c29bec3c9 --- /dev/null +++ b/src/problem2/src/tokens/BNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BOLT.svg b/src/problem2/src/tokens/BOLT.svg new file mode 100644 index 0000000000..a74a21608e --- /dev/null +++ b/src/problem2/src/tokens/BOLT.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BONK.svg b/src/problem2/src/tokens/BONK.svg new file mode 100644 index 0000000000..5df777e894 --- /dev/null +++ b/src/problem2/src/tokens/BONK.svg @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BOOT.svg b/src/problem2/src/tokens/BOOT.svg new file mode 100644 index 0000000000..2469b80cfd --- /dev/null +++ b/src/problem2/src/tokens/BOOT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRAINS.svg b/src/problem2/src/tokens/BRAINS.svg new file mode 100644 index 0000000000..5c6a1d4184 --- /dev/null +++ b/src/problem2/src/tokens/BRAINS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRETT.svg b/src/problem2/src/tokens/BRETT.svg new file mode 100644 index 0000000000..a799d64779 --- /dev/null +++ b/src/problem2/src/tokens/BRETT.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRKL.svg b/src/problem2/src/tokens/BRKL.svg new file mode 100644 index 0000000000..5963d18244 --- /dev/null +++ b/src/problem2/src/tokens/BRKL.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BTC.svg b/src/problem2/src/tokens/BTC.svg new file mode 100644 index 0000000000..cd3b1e78e2 --- /dev/null +++ b/src/problem2/src/tokens/BTC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BTCST.svg b/src/problem2/src/tokens/BTCST.svg new file mode 100644 index 0000000000..63d5b3c441 --- /dev/null +++ b/src/problem2/src/tokens/BTCST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTG.svg b/src/problem2/src/tokens/BTG.svg new file mode 100644 index 0000000000..41629e7d6a --- /dev/null +++ b/src/problem2/src/tokens/BTG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTM.svg b/src/problem2/src/tokens/BTM.svg new file mode 100644 index 0000000000..16fdbdfda4 --- /dev/null +++ b/src/problem2/src/tokens/BTM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/BTMX.svg b/src/problem2/src/tokens/BTMX.svg new file mode 100644 index 0000000000..5e4a26a71e --- /dev/null +++ b/src/problem2/src/tokens/BTMX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BTSG.svg b/src/problem2/src/tokens/BTSG.svg new file mode 100644 index 0000000000..9b82cf6a0b --- /dev/null +++ b/src/problem2/src/tokens/BTSG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTT.svg b/src/problem2/src/tokens/BTT.svg new file mode 100644 index 0000000000..736450a2db --- /dev/null +++ b/src/problem2/src/tokens/BTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/BUNNY.svg b/src/problem2/src/tokens/BUNNY.svg new file mode 100644 index 0000000000..4bed16291f --- /dev/null +++ b/src/problem2/src/tokens/BUNNY.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BUSD.svg b/src/problem2/src/tokens/BUSD.svg new file mode 100644 index 0000000000..b992764bd1 --- /dev/null +++ b/src/problem2/src/tokens/BUSD.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/BUSDT.svg b/src/problem2/src/tokens/BUSDT.svg new file mode 100644 index 0000000000..08bbf0587d --- /dev/null +++ b/src/problem2/src/tokens/BUSDT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/C98.svg b/src/problem2/src/tokens/C98.svg new file mode 100644 index 0000000000..3a0ff2bb70 --- /dev/null +++ b/src/problem2/src/tokens/C98.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/CAKE.svg b/src/problem2/src/tokens/CAKE.svg new file mode 100644 index 0000000000..ce45fbe253 --- /dev/null +++ b/src/problem2/src/tokens/CAKE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/CANTO.svg b/src/problem2/src/tokens/CANTO.svg new file mode 100644 index 0000000000..d2758becf9 --- /dev/null +++ b/src/problem2/src/tokens/CANTO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CARB.svg b/src/problem2/src/tokens/CARB.svg new file mode 100644 index 0000000000..02e14d0bfe --- /dev/null +++ b/src/problem2/src/tokens/CARB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CAT.svg b/src/problem2/src/tokens/CAT.svg new file mode 100644 index 0000000000..8f81af95be --- /dev/null +++ b/src/problem2/src/tokens/CAT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CEL.svg b/src/problem2/src/tokens/CEL.svg new file mode 100644 index 0000000000..02cfbd269c --- /dev/null +++ b/src/problem2/src/tokens/CEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CELO.svg b/src/problem2/src/tokens/CELO.svg new file mode 100644 index 0000000000..5ff3c6c83c --- /dev/null +++ b/src/problem2/src/tokens/CELO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CETH.svg b/src/problem2/src/tokens/CETH.svg new file mode 100644 index 0000000000..448a94a7a7 --- /dev/null +++ b/src/problem2/src/tokens/CETH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CFX.svg b/src/problem2/src/tokens/CFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/tokens/CFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/CGAS.svg b/src/problem2/src/tokens/CGAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/tokens/CGAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CHEQ.svg b/src/problem2/src/tokens/CHEQ.svg new file mode 100644 index 0000000000..ed1621a482 --- /dev/null +++ b/src/problem2/src/tokens/CHEQ.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHOG.svg b/src/problem2/src/tokens/CHOG.svg new file mode 100644 index 0000000000..adee63f975 --- /dev/null +++ b/src/problem2/src/tokens/CHOG.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHSB.svg b/src/problem2/src/tokens/CHSB.svg new file mode 100644 index 0000000000..0118cfce5c --- /dev/null +++ b/src/problem2/src/tokens/CHSB.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHT.svg b/src/problem2/src/tokens/CHT.svg new file mode 100644 index 0000000000..19d6392712 --- /dev/null +++ b/src/problem2/src/tokens/CHT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHZ.svg b/src/problem2/src/tokens/CHZ.svg new file mode 100644 index 0000000000..68897c58f1 --- /dev/null +++ b/src/problem2/src/tokens/CHZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CKB.svg b/src/problem2/src/tokens/CKB.svg new file mode 100644 index 0000000000..888ff3323e --- /dev/null +++ b/src/problem2/src/tokens/CKB.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/CMDX.svg b/src/problem2/src/tokens/CMDX.svg new file mode 100644 index 0000000000..028d44e951 --- /dev/null +++ b/src/problem2/src/tokens/CMDX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CMST.svg b/src/problem2/src/tokens/CMST.svg new file mode 100644 index 0000000000..cd6cb419eb --- /dev/null +++ b/src/problem2/src/tokens/CMST.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CNT.svg b/src/problem2/src/tokens/CNT.svg new file mode 100644 index 0000000000..c098860f72 --- /dev/null +++ b/src/problem2/src/tokens/CNT.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/COIN.svg b/src/problem2/src/tokens/COIN.svg new file mode 100644 index 0000000000..098ee36d37 --- /dev/null +++ b/src/problem2/src/tokens/COIN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/COMP.svg b/src/problem2/src/tokens/COMP.svg new file mode 100644 index 0000000000..563bf3af25 --- /dev/null +++ b/src/problem2/src/tokens/COMP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/COOK.svg b/src/problem2/src/tokens/COOK.svg new file mode 100644 index 0000000000..615625b404 --- /dev/null +++ b/src/problem2/src/tokens/COOK.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRBRUS.svg b/src/problem2/src/tokens/CRBRUS.svg new file mode 100644 index 0000000000..d847b37b3c --- /dev/null +++ b/src/problem2/src/tokens/CRBRUS.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRE.svg b/src/problem2/src/tokens/CRE.svg new file mode 100644 index 0000000000..4008331be2 --- /dev/null +++ b/src/problem2/src/tokens/CRE.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRO.svg b/src/problem2/src/tokens/CRO.svg new file mode 100644 index 0000000000..75ddad7d51 --- /dev/null +++ b/src/problem2/src/tokens/CRO.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/CRV.svg b/src/problem2/src/tokens/CRV.svg new file mode 100644 index 0000000000..f9fa597fac --- /dev/null +++ b/src/problem2/src/tokens/CRV.svg @@ -0,0 +1,790 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CTK.svg b/src/problem2/src/tokens/CTK.svg new file mode 100644 index 0000000000..96bfa4f618 --- /dev/null +++ b/src/problem2/src/tokens/CTK.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/CW.svg b/src/problem2/src/tokens/CW.svg new file mode 100644 index 0000000000..e0d8eef0af --- /dev/null +++ b/src/problem2/src/tokens/CW.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DAG.svg b/src/problem2/src/tokens/DAG.svg new file mode 100644 index 0000000000..a06db4c405 --- /dev/null +++ b/src/problem2/src/tokens/DAG.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/DAI.svg b/src/problem2/src/tokens/DAI.svg new file mode 100644 index 0000000000..00fdd7ae1b --- /dev/null +++ b/src/problem2/src/tokens/DAI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DAK.svg b/src/problem2/src/tokens/DAK.svg new file mode 100644 index 0000000000..bbfa1b2640 --- /dev/null +++ b/src/problem2/src/tokens/DAK.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DARC.svg b/src/problem2/src/tokens/DARC.svg new file mode 100644 index 0000000000..8e131ded9b --- /dev/null +++ b/src/problem2/src/tokens/DARC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/DASH.svg b/src/problem2/src/tokens/DASH.svg new file mode 100644 index 0000000000..17e5eb7146 --- /dev/null +++ b/src/problem2/src/tokens/DASH.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DBC.svg b/src/problem2/src/tokens/DBC.svg new file mode 100644 index 0000000000..91e7b72378 --- /dev/null +++ b/src/problem2/src/tokens/DBC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DCR.svg b/src/problem2/src/tokens/DCR.svg new file mode 100644 index 0000000000..d97040bcfe --- /dev/null +++ b/src/problem2/src/tokens/DCR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DEC.svg b/src/problem2/src/tokens/DEC.svg new file mode 100644 index 0000000000..025f6329b0 --- /dev/null +++ b/src/problem2/src/tokens/DEC.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DEGEN.svg b/src/problem2/src/tokens/DEGEN.svg new file mode 100644 index 0000000000..44233e8e9d --- /dev/null +++ b/src/problem2/src/tokens/DEGEN.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DENT.svg b/src/problem2/src/tokens/DENT.svg new file mode 100644 index 0000000000..10035d5a1a --- /dev/null +++ b/src/problem2/src/tokens/DENT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DGB.svg b/src/problem2/src/tokens/DGB.svg new file mode 100644 index 0000000000..ecf85eb29f --- /dev/null +++ b/src/problem2/src/tokens/DGB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DIG.svg b/src/problem2/src/tokens/DIG.svg new file mode 100644 index 0000000000..b75f6740df --- /dev/null +++ b/src/problem2/src/tokens/DIG.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DKT.svg b/src/problem2/src/tokens/DKT.svg new file mode 100644 index 0000000000..8d1d5a5604 --- /dev/null +++ b/src/problem2/src/tokens/DKT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DODO.svg b/src/problem2/src/tokens/DODO.svg new file mode 100644 index 0000000000..514dd23b5e --- /dev/null +++ b/src/problem2/src/tokens/DODO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/DOGE.svg b/src/problem2/src/tokens/DOGE.svg new file mode 100644 index 0000000000..f019ca4b5e --- /dev/null +++ b/src/problem2/src/tokens/DOGE.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DOT.svg b/src/problem2/src/tokens/DOT.svg new file mode 100644 index 0000000000..db6de54b24 --- /dev/null +++ b/src/problem2/src/tokens/DOT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DPL.svg b/src/problem2/src/tokens/DPL.svg new file mode 100644 index 0000000000..e511541f14 --- /dev/null +++ b/src/problem2/src/tokens/DPL.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DPX.svg b/src/problem2/src/tokens/DPX.svg new file mode 100644 index 0000000000..d96e812979 --- /dev/null +++ b/src/problem2/src/tokens/DPX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DRFT.svg b/src/problem2/src/tokens/DRFT.svg new file mode 100644 index 0000000000..3f64fd9620 --- /dev/null +++ b/src/problem2/src/tokens/DRFT.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DROP.svg b/src/problem2/src/tokens/DROP.svg new file mode 100644 index 0000000000..dbb6c318b4 --- /dev/null +++ b/src/problem2/src/tokens/DROP.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DSM.svg b/src/problem2/src/tokens/DSM.svg new file mode 100644 index 0000000000..b305f5f5ea --- /dev/null +++ b/src/problem2/src/tokens/DSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DUVT.svg b/src/problem2/src/tokens/DUVT.svg new file mode 100644 index 0000000000..4bced3bdb9 --- /dev/null +++ b/src/problem2/src/tokens/DUVT.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DVPN.svg b/src/problem2/src/tokens/DVPN.svg new file mode 100644 index 0000000000..cb35dbc086 --- /dev/null +++ b/src/problem2/src/tokens/DVPN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DYDX.svg b/src/problem2/src/tokens/DYDX.svg new file mode 100644 index 0000000000..7977307c0f --- /dev/null +++ b/src/problem2/src/tokens/DYDX.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DYM.svg b/src/problem2/src/tokens/DYM.svg new file mode 100644 index 0000000000..e696de4fd5 --- /dev/null +++ b/src/problem2/src/tokens/DYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EEUR.svg b/src/problem2/src/tokens/EEUR.svg new file mode 100644 index 0000000000..25f940a5b3 --- /dev/null +++ b/src/problem2/src/tokens/EEUR.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EIGEN.svg b/src/problem2/src/tokens/EIGEN.svg new file mode 100644 index 0000000000..350b748dd4 --- /dev/null +++ b/src/problem2/src/tokens/EIGEN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ELA.svg b/src/problem2/src/tokens/ELA.svg new file mode 100644 index 0000000000..7612168452 --- /dev/null +++ b/src/problem2/src/tokens/ELA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ELF.svg b/src/problem2/src/tokens/ELF.svg new file mode 100644 index 0000000000..fd3bc6cfe8 --- /dev/null +++ b/src/problem2/src/tokens/ELF.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ENA.svg b/src/problem2/src/tokens/ENA.svg new file mode 100644 index 0000000000..2445033b08 --- /dev/null +++ b/src/problem2/src/tokens/ENA.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ENJ.svg b/src/problem2/src/tokens/ENJ.svg new file mode 100644 index 0000000000..7b832779f7 --- /dev/null +++ b/src/problem2/src/tokens/ENJ.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ENS.svg b/src/problem2/src/tokens/ENS.svg new file mode 100644 index 0000000000..94d385bc10 --- /dev/null +++ b/src/problem2/src/tokens/ENS.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/EOS.svg b/src/problem2/src/tokens/EOS.svg new file mode 100644 index 0000000000..61de71db6d --- /dev/null +++ b/src/problem2/src/tokens/EOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EPS.svg b/src/problem2/src/tokens/EPS.svg new file mode 100644 index 0000000000..ef8bb614e1 --- /dev/null +++ b/src/problem2/src/tokens/EPS.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ETC.svg b/src/problem2/src/tokens/ETC.svg new file mode 100644 index 0000000000..7b3e8b3869 --- /dev/null +++ b/src/problem2/src/tokens/ETC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ETH.svg b/src/problem2/src/tokens/ETH.svg new file mode 100644 index 0000000000..6a7cd5afc4 --- /dev/null +++ b/src/problem2/src/tokens/ETH.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/ETHBTC.svg b/src/problem2/src/tokens/ETHBTC.svg new file mode 100644 index 0000000000..bd01fc187e --- /dev/null +++ b/src/problem2/src/tokens/ETHBTC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ETN.svg b/src/problem2/src/tokens/ETN.svg new file mode 100644 index 0000000000..a13bc14247 --- /dev/null +++ b/src/problem2/src/tokens/ETN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EUROC.svg b/src/problem2/src/tokens/EUROC.svg new file mode 100644 index 0000000000..81134495c6 --- /dev/null +++ b/src/problem2/src/tokens/EUROC.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EUT.svg b/src/problem2/src/tokens/EUT.svg new file mode 100644 index 0000000000..56c4d324a5 --- /dev/null +++ b/src/problem2/src/tokens/EUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EVMOS.svg b/src/problem2/src/tokens/EVMOS.svg new file mode 100644 index 0000000000..8d0b90acb4 --- /dev/null +++ b/src/problem2/src/tokens/EVMOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EWT.svg b/src/problem2/src/tokens/EWT.svg new file mode 100644 index 0000000000..db6e0ec632 --- /dev/null +++ b/src/problem2/src/tokens/EWT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/FARTCOIN.svg b/src/problem2/src/tokens/FARTCOIN.svg new file mode 100644 index 0000000000..9fa8534fdc --- /dev/null +++ b/src/problem2/src/tokens/FARTCOIN.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FBTC.svg b/src/problem2/src/tokens/FBTC.svg new file mode 100644 index 0000000000..89b376bbf9 --- /dev/null +++ b/src/problem2/src/tokens/FBTC.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FEES.svg b/src/problem2/src/tokens/FEES.svg new file mode 100644 index 0000000000..f31a2e1f85 --- /dev/null +++ b/src/problem2/src/tokens/FEES.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/FET.svg b/src/problem2/src/tokens/FET.svg new file mode 100644 index 0000000000..20b53be3d1 --- /dev/null +++ b/src/problem2/src/tokens/FET.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FIL.svg b/src/problem2/src/tokens/FIL.svg new file mode 100644 index 0000000000..a875441006 --- /dev/null +++ b/src/problem2/src/tokens/FIL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/FIS.svg b/src/problem2/src/tokens/FIS.svg new file mode 100644 index 0000000000..ae28f926c9 --- /dev/null +++ b/src/problem2/src/tokens/FIS.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLIX.svg b/src/problem2/src/tokens/FLIX.svg new file mode 100644 index 0000000000..962e47fb2d --- /dev/null +++ b/src/problem2/src/tokens/FLIX.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLM.svg b/src/problem2/src/tokens/FLM.svg new file mode 100644 index 0000000000..73ba619981 --- /dev/null +++ b/src/problem2/src/tokens/FLM.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLOW.svg b/src/problem2/src/tokens/FLOW.svg new file mode 100644 index 0000000000..7cf7e32db2 --- /dev/null +++ b/src/problem2/src/tokens/FLOW.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/FLUID.svg b/src/problem2/src/tokens/FLUID.svg new file mode 100644 index 0000000000..9202222f8f --- /dev/null +++ b/src/problem2/src/tokens/FLUID.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLUO.svg b/src/problem2/src/tokens/FLUO.svg new file mode 100644 index 0000000000..d4e4c7f345 --- /dev/null +++ b/src/problem2/src/tokens/FLUO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FRANK.svg b/src/problem2/src/tokens/FRANK.svg new file mode 100644 index 0000000000..6a49dcfec1 --- /dev/null +++ b/src/problem2/src/tokens/FRANK.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FSGLP.svg b/src/problem2/src/tokens/FSGLP.svg new file mode 100644 index 0000000000..1392a246bb --- /dev/null +++ b/src/problem2/src/tokens/FSGLP.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FTM.svg b/src/problem2/src/tokens/FTM.svg new file mode 100644 index 0000000000..0f46c6923c --- /dev/null +++ b/src/problem2/src/tokens/FTM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/FTT.svg b/src/problem2/src/tokens/FTT.svg new file mode 100644 index 0000000000..fcd829ef4f --- /dev/null +++ b/src/problem2/src/tokens/FTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/FTTC.svg b/src/problem2/src/tokens/FTTC.svg new file mode 100644 index 0000000000..b53103bc49 --- /dev/null +++ b/src/problem2/src/tokens/FTTC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/FUN.svg b/src/problem2/src/tokens/FUN.svg new file mode 100644 index 0000000000..59cdc4bf25 --- /dev/null +++ b/src/problem2/src/tokens/FUN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GALA.svg b/src/problem2/src/tokens/GALA.svg new file mode 100644 index 0000000000..58a423f8bb --- /dev/null +++ b/src/problem2/src/tokens/GALA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/GAMBIT.svg b/src/problem2/src/tokens/GAMBIT.svg new file mode 100644 index 0000000000..b2ef5aadb3 --- /dev/null +++ b/src/problem2/src/tokens/GAMBIT.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GAS.svg b/src/problem2/src/tokens/GAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/tokens/GAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GBT.svg b/src/problem2/src/tokens/GBT.svg new file mode 100644 index 0000000000..7dcf617c3e --- /dev/null +++ b/src/problem2/src/tokens/GBT.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GLP.svg b/src/problem2/src/tokens/GLP.svg new file mode 100644 index 0000000000..c5eefed0ad --- /dev/null +++ b/src/problem2/src/tokens/GLP.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GM.svg b/src/problem2/src/tokens/GM.svg new file mode 100644 index 0000000000..7739426dcb --- /dev/null +++ b/src/problem2/src/tokens/GM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/GMX.svg b/src/problem2/src/tokens/GMX.svg new file mode 100644 index 0000000000..80a8c19e74 --- /dev/null +++ b/src/problem2/src/tokens/GMX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GNO.svg b/src/problem2/src/tokens/GNO.svg new file mode 100644 index 0000000000..b53b4961bc --- /dev/null +++ b/src/problem2/src/tokens/GNO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/GNS.svg b/src/problem2/src/tokens/GNS.svg new file mode 100644 index 0000000000..f47eaabf71 --- /dev/null +++ b/src/problem2/src/tokens/GNS.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GOAT.svg b/src/problem2/src/tokens/GOAT.svg new file mode 100644 index 0000000000..f52285aaa9 --- /dev/null +++ b/src/problem2/src/tokens/GOAT.svg @@ -0,0 +1,2174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GRASS.svg b/src/problem2/src/tokens/GRASS.svg new file mode 100644 index 0000000000..caa370fffe --- /dev/null +++ b/src/problem2/src/tokens/GRASS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GRAV.svg b/src/problem2/src/tokens/GRAV.svg new file mode 100644 index 0000000000..658e155072 --- /dev/null +++ b/src/problem2/src/tokens/GRAV.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GRT.svg b/src/problem2/src/tokens/GRT.svg new file mode 100644 index 0000000000..2d283004da --- /dev/null +++ b/src/problem2/src/tokens/GRT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GT.svg b/src/problem2/src/tokens/GT.svg new file mode 100644 index 0000000000..6cb00ff5c5 --- /dev/null +++ b/src/problem2/src/tokens/GT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HBAR.svg b/src/problem2/src/tokens/HBAR.svg new file mode 100644 index 0000000000..62d8831906 --- /dev/null +++ b/src/problem2/src/tokens/HBAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HDN.png b/src/problem2/src/tokens/HDN.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7e612922734d7b5dcc6cdae2d9e3c1b7a9e1cc GIT binary patch literal 20649 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 + + + + + + + + diff --git a/src/problem2/src/tokens/HELMET.svg b/src/problem2/src/tokens/HELMET.svg new file mode 100644 index 0000000000..1a50859878 --- /dev/null +++ b/src/problem2/src/tokens/HELMET.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/HKT.svg b/src/problem2/src/tokens/HKT.svg new file mode 100644 index 0000000000..d2f5c930a7 --- /dev/null +++ b/src/problem2/src/tokens/HKT.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HNT.svg b/src/problem2/src/tokens/HNT.svg new file mode 100644 index 0000000000..402e236890 --- /dev/null +++ b/src/problem2/src/tokens/HNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HOPE.svg b/src/problem2/src/tokens/HOPE.svg new file mode 100644 index 0000000000..b7541ae4a9 --- /dev/null +++ b/src/problem2/src/tokens/HOPE.svg @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HOT.svg b/src/problem2/src/tokens/HOT.svg new file mode 100644 index 0000000000..eab9101a1f --- /dev/null +++ b/src/problem2/src/tokens/HOT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HT.svg b/src/problem2/src/tokens/HT.svg new file mode 100644 index 0000000000..72cdfdd097 --- /dev/null +++ b/src/problem2/src/tokens/HT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/HUAHUA.svg b/src/problem2/src/tokens/HUAHUA.svg new file mode 100644 index 0000000000..e94cd98d8d --- /dev/null +++ b/src/problem2/src/tokens/HUAHUA.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HUNY.svg b/src/problem2/src/tokens/HUNY.svg new file mode 100644 index 0000000000..b06f2f5457 --- /dev/null +++ b/src/problem2/src/tokens/HUNY.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/tokens/HUSD.svg b/src/problem2/src/tokens/HUSD.svg new file mode 100644 index 0000000000..30b26c0373 --- /dev/null +++ b/src/problem2/src/tokens/HUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/HYPE.svg b/src/problem2/src/tokens/HYPE.svg new file mode 100644 index 0000000000..24eb8536f1 --- /dev/null +++ b/src/problem2/src/tokens/HYPE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/IBCX.svg b/src/problem2/src/tokens/IBCX.svg new file mode 100644 index 0000000000..061c6ccefe --- /dev/null +++ b/src/problem2/src/tokens/IBCX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ICP.svg b/src/problem2/src/tokens/ICP.svg new file mode 100644 index 0000000000..c7a99ba9bd --- /dev/null +++ b/src/problem2/src/tokens/ICP.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ICX.svg b/src/problem2/src/tokens/ICX.svg new file mode 100644 index 0000000000..53efc54ef9 --- /dev/null +++ b/src/problem2/src/tokens/ICX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/IDT.svg b/src/problem2/src/tokens/IDT.svg new file mode 100644 index 0000000000..91288c58bf --- /dev/null +++ b/src/problem2/src/tokens/IDT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INIT.svg b/src/problem2/src/tokens/INIT.svg new file mode 100644 index 0000000000..47395f6439 --- /dev/null +++ b/src/problem2/src/tokens/INIT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INJ.svg b/src/problem2/src/tokens/INJ.svg new file mode 100644 index 0000000000..b6d304e498 --- /dev/null +++ b/src/problem2/src/tokens/INJ.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INT.svg b/src/problem2/src/tokens/INT.svg new file mode 100644 index 0000000000..9ab0d29f35 --- /dev/null +++ b/src/problem2/src/tokens/INT.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ION.svg b/src/problem2/src/tokens/ION.svg new file mode 100644 index 0000000000..adad5f300f --- /dev/null +++ b/src/problem2/src/tokens/ION.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IOST.svg b/src/problem2/src/tokens/IOST.svg new file mode 100644 index 0000000000..8f791796a3 --- /dev/null +++ b/src/problem2/src/tokens/IOST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/IOTX.svg b/src/problem2/src/tokens/IOTX.svg new file mode 100644 index 0000000000..97a8461838 --- /dev/null +++ b/src/problem2/src/tokens/IOTX.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IOV.svg b/src/problem2/src/tokens/IOV.svg new file mode 100644 index 0000000000..2c37835fff --- /dev/null +++ b/src/problem2/src/tokens/IOV.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/IP.svg b/src/problem2/src/tokens/IP.svg new file mode 100644 index 0000000000..be63bba6d7 --- /dev/null +++ b/src/problem2/src/tokens/IP.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IRIS.svg b/src/problem2/src/tokens/IRIS.svg new file mode 100644 index 0000000000..59b13b5aa6 --- /dev/null +++ b/src/problem2/src/tokens/IRIS.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IXO.svg b/src/problem2/src/tokens/IXO.svg new file mode 100644 index 0000000000..0d1fb10136 --- /dev/null +++ b/src/problem2/src/tokens/IXO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/JPT.svg b/src/problem2/src/tokens/JPT.svg new file mode 100644 index 0000000000..14014e4cb8 --- /dev/null +++ b/src/problem2/src/tokens/JPT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/JTO.svg b/src/problem2/src/tokens/JTO.svg new file mode 100644 index 0000000000..3ce7f51587 --- /dev/null +++ b/src/problem2/src/tokens/JTO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/JUNO.svg b/src/problem2/src/tokens/JUNO.svg new file mode 100644 index 0000000000..d65fb3da31 --- /dev/null +++ b/src/problem2/src/tokens/JUNO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/JUP.svg b/src/problem2/src/tokens/JUP.svg new file mode 100644 index 0000000000..adf9284819 --- /dev/null +++ b/src/problem2/src/tokens/JUP.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KAITO.svg b/src/problem2/src/tokens/KAITO.svg new file mode 100644 index 0000000000..f51471047a --- /dev/null +++ b/src/problem2/src/tokens/KAITO.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KAS.svg b/src/problem2/src/tokens/KAS.svg new file mode 100644 index 0000000000..1c9ea6bc49 --- /dev/null +++ b/src/problem2/src/tokens/KAS.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/tokens/KBONK.svg b/src/problem2/src/tokens/KBONK.svg new file mode 100644 index 0000000000..5df777e894 --- /dev/null +++ b/src/problem2/src/tokens/KBONK.svg @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KCS.svg b/src/problem2/src/tokens/KCS.svg new file mode 100644 index 0000000000..a4b333dfb8 --- /dev/null +++ b/src/problem2/src/tokens/KCS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/KFLOKI.svg b/src/problem2/src/tokens/KFLOKI.svg new file mode 100644 index 0000000000..d35699e87e --- /dev/null +++ b/src/problem2/src/tokens/KFLOKI.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KLAY.svg b/src/problem2/src/tokens/KLAY.svg new file mode 100644 index 0000000000..6f1d4cabef --- /dev/null +++ b/src/problem2/src/tokens/KLAY.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/KMD.svg b/src/problem2/src/tokens/KMD.svg new file mode 100644 index 0000000000..62598658bb --- /dev/null +++ b/src/problem2/src/tokens/KMD.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KNC.svg b/src/problem2/src/tokens/KNC.svg new file mode 100644 index 0000000000..d9ed00657f --- /dev/null +++ b/src/problem2/src/tokens/KNC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/KPEPE.svg b/src/problem2/src/tokens/KPEPE.svg new file mode 100644 index 0000000000..92665e5502 --- /dev/null +++ b/src/problem2/src/tokens/KPEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KRT.svg b/src/problem2/src/tokens/KRT.svg new file mode 100644 index 0000000000..e6ea416cf6 --- /dev/null +++ b/src/problem2/src/tokens/KRT.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KSHIB.svg b/src/problem2/src/tokens/KSHIB.svg new file mode 100644 index 0000000000..adbb2f009b --- /dev/null +++ b/src/problem2/src/tokens/KSHIB.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KSM.svg b/src/problem2/src/tokens/KSM.svg new file mode 100644 index 0000000000..771f73596e --- /dev/null +++ b/src/problem2/src/tokens/KSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/KUJI.svg b/src/problem2/src/tokens/KUJI.svg new file mode 100644 index 0000000000..7c169dd724 --- /dev/null +++ b/src/problem2/src/tokens/KUJI.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LAYER.svg b/src/problem2/src/tokens/LAYER.svg new file mode 100644 index 0000000000..9e9036df30 --- /dev/null +++ b/src/problem2/src/tokens/LAYER.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LBTC.svg b/src/problem2/src/tokens/LBTC.svg new file mode 100644 index 0000000000..1476de62ab --- /dev/null +++ b/src/problem2/src/tokens/LBTC.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LDO.svg b/src/problem2/src/tokens/LDO.svg new file mode 100644 index 0000000000..c8860768cf --- /dev/null +++ b/src/problem2/src/tokens/LDO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LEO.svg b/src/problem2/src/tokens/LEO.svg new file mode 100644 index 0000000000..f94a11c945 --- /dev/null +++ b/src/problem2/src/tokens/LEO.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LET.svg b/src/problem2/src/tokens/LET.svg new file mode 100644 index 0000000000..8f6a4a06e6 --- /dev/null +++ b/src/problem2/src/tokens/LET.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LIKE.svg b/src/problem2/src/tokens/LIKE.svg new file mode 100644 index 0000000000..a0ac6ac6ac --- /dev/null +++ b/src/problem2/src/tokens/LIKE.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LINK.svg b/src/problem2/src/tokens/LINK.svg new file mode 100644 index 0000000000..8484106a43 --- /dev/null +++ b/src/problem2/src/tokens/LINK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LKT.svg b/src/problem2/src/tokens/LKT.svg new file mode 100644 index 0000000000..f224ae0ff2 --- /dev/null +++ b/src/problem2/src/tokens/LKT.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOOM.svg b/src/problem2/src/tokens/LOOM.svg new file mode 100644 index 0000000000..5ad0435613 --- /dev/null +++ b/src/problem2/src/tokens/LOOM.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOOP.svg b/src/problem2/src/tokens/LOOP.svg new file mode 100644 index 0000000000..6c69420439 --- /dev/null +++ b/src/problem2/src/tokens/LOOP.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOTA.svg b/src/problem2/src/tokens/LOTA.svg new file mode 100644 index 0000000000..10c742ae6d --- /dev/null +++ b/src/problem2/src/tokens/LOTA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPLBTC_29MAY2025.svg b/src/problem2/src/tokens/LPLBTC_29MAY2025.svg new file mode 100644 index 0000000000..d75f81bcd5 --- /dev/null +++ b/src/problem2/src/tokens/LPLBTC_29MAY2025.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPT.svg b/src/problem2/src/tokens/LPT.svg new file mode 100644 index 0000000000..c026842d93 --- /dev/null +++ b/src/problem2/src/tokens/LPT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg b/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg new file mode 100644 index 0000000000..24fd8ebe9a --- /dev/null +++ b/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPcmETH_26JUN2025.svg b/src/problem2/src/tokens/LPcmETH_26JUN2025.svg new file mode 100644 index 0000000000..dd4bb6fbbc --- /dev/null +++ b/src/problem2/src/tokens/LPcmETH_26JUN2025.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LRC.svg b/src/problem2/src/tokens/LRC.svg new file mode 100644 index 0000000000..2319bb063d --- /dev/null +++ b/src/problem2/src/tokens/LRC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LSI.svg b/src/problem2/src/tokens/LSI.svg new file mode 100644 index 0000000000..48618f66b3 --- /dev/null +++ b/src/problem2/src/tokens/LSI.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LSK.svg b/src/problem2/src/tokens/LSK.svg new file mode 100644 index 0000000000..d7b38f123e --- /dev/null +++ b/src/problem2/src/tokens/LSK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LTC.svg b/src/problem2/src/tokens/LTC.svg new file mode 100644 index 0000000000..d734c3ac54 --- /dev/null +++ b/src/problem2/src/tokens/LTC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LUM.svg b/src/problem2/src/tokens/LUM.svg new file mode 100644 index 0000000000..8994d02ad5 --- /dev/null +++ b/src/problem2/src/tokens/LUM.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNA.svg b/src/problem2/src/tokens/LUNA.svg new file mode 100644 index 0000000000..6a839981dd --- /dev/null +++ b/src/problem2/src/tokens/LUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNAX.svg b/src/problem2/src/tokens/LUNAX.svg new file mode 100644 index 0000000000..afc19e17de --- /dev/null +++ b/src/problem2/src/tokens/LUNAX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNC.svg b/src/problem2/src/tokens/LUNC.svg new file mode 100644 index 0000000000..fe40173c96 --- /dev/null +++ b/src/problem2/src/tokens/LUNC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/LUNI.svg b/src/problem2/src/tokens/LUNI.svg new file mode 100644 index 0000000000..1721643744 --- /dev/null +++ b/src/problem2/src/tokens/LUNI.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNR.svg b/src/problem2/src/tokens/LUNR.svg new file mode 100644 index 0000000000..1b8b15237f --- /dev/null +++ b/src/problem2/src/tokens/LUNR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LUV.svg b/src/problem2/src/tokens/LUV.svg new file mode 100644 index 0000000000..0f7342c490 --- /dev/null +++ b/src/problem2/src/tokens/LUV.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LVN.svg b/src/problem2/src/tokens/LVN.svg new file mode 100644 index 0000000000..65aac46ea5 --- /dev/null +++ b/src/problem2/src/tokens/LVN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/Liquid Staking Index.svg b/src/problem2/src/tokens/Liquid Staking Index.svg new file mode 100644 index 0000000000..58533746be --- /dev/null +++ b/src/problem2/src/tokens/Liquid Staking Index.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/M87.svg b/src/problem2/src/tokens/M87.svg new file mode 100644 index 0000000000..77f8c882b5 --- /dev/null +++ b/src/problem2/src/tokens/M87.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MANA.svg b/src/problem2/src/tokens/MANA.svg new file mode 100644 index 0000000000..0629467224 --- /dev/null +++ b/src/problem2/src/tokens/MANA.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MANTA.svg b/src/problem2/src/tokens/MANTA.svg new file mode 100644 index 0000000000..1970537a1f --- /dev/null +++ b/src/problem2/src/tokens/MANTA.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MARBLE.svg b/src/problem2/src/tokens/MARBLE.svg new file mode 100644 index 0000000000..4e9c2214f2 --- /dev/null +++ b/src/problem2/src/tokens/MARBLE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/MATH.svg b/src/problem2/src/tokens/MATH.svg new file mode 100644 index 0000000000..144d40f0bb --- /dev/null +++ b/src/problem2/src/tokens/MATH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MATIC.svg b/src/problem2/src/tokens/MATIC.svg new file mode 100644 index 0000000000..98d07c7d95 --- /dev/null +++ b/src/problem2/src/tokens/MATIC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/MDX.svg b/src/problem2/src/tokens/MDX.svg new file mode 100644 index 0000000000..8f3b267801 --- /dev/null +++ b/src/problem2/src/tokens/MDX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ME.svg b/src/problem2/src/tokens/ME.svg new file mode 100644 index 0000000000..f354182728 --- /dev/null +++ b/src/problem2/src/tokens/ME.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MED.svg b/src/problem2/src/tokens/MED.svg new file mode 100644 index 0000000000..900d139258 --- /dev/null +++ b/src/problem2/src/tokens/MED.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/MEME.svg b/src/problem2/src/tokens/MEME.svg new file mode 100644 index 0000000000..d784304a65 --- /dev/null +++ b/src/problem2/src/tokens/MEME.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/METIS.svg b/src/problem2/src/tokens/METIS.svg new file mode 100644 index 0000000000..3bd43ffadb --- /dev/null +++ b/src/problem2/src/tokens/METIS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MEW.svg b/src/problem2/src/tokens/MEW.svg new file mode 100644 index 0000000000..dc9532c537 --- /dev/null +++ b/src/problem2/src/tokens/MEW.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MIAW.svg b/src/problem2/src/tokens/MIAW.svg new file mode 100644 index 0000000000..ddf46721c7 --- /dev/null +++ b/src/problem2/src/tokens/MIAW.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/MILK.svg b/src/problem2/src/tokens/MILK.svg new file mode 100644 index 0000000000..e6a434e9c1 --- /dev/null +++ b/src/problem2/src/tokens/MILK.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MINA.svg b/src/problem2/src/tokens/MINA.svg new file mode 100644 index 0000000000..d5aafd7398 --- /dev/null +++ b/src/problem2/src/tokens/MINA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MINE.svg b/src/problem2/src/tokens/MINE.svg new file mode 100644 index 0000000000..ff71cab9e7 --- /dev/null +++ b/src/problem2/src/tokens/MINE.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MIOTA.svg b/src/problem2/src/tokens/MIOTA.svg new file mode 100644 index 0000000000..3d3c08c604 --- /dev/null +++ b/src/problem2/src/tokens/MIOTA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MIR.svg b/src/problem2/src/tokens/MIR.svg new file mode 100644 index 0000000000..0247791318 --- /dev/null +++ b/src/problem2/src/tokens/MIR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MKR.svg b/src/problem2/src/tokens/MKR.svg new file mode 100644 index 0000000000..9a639d1374 --- /dev/null +++ b/src/problem2/src/tokens/MKR.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/MMOG.svg b/src/problem2/src/tokens/MMOG.svg new file mode 100644 index 0000000000..6bb1f33b10 --- /dev/null +++ b/src/problem2/src/tokens/MMOG.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MNT.svg b/src/problem2/src/tokens/MNT.svg new file mode 100644 index 0000000000..1aa231ddd4 --- /dev/null +++ b/src/problem2/src/tokens/MNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MNTA.svg b/src/problem2/src/tokens/MNTA.svg new file mode 100644 index 0000000000..e3b7cfa957 --- /dev/null +++ b/src/problem2/src/tokens/MNTA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MNTL.svg b/src/problem2/src/tokens/MNTL.svg new file mode 100644 index 0000000000..71e1c497e9 --- /dev/null +++ b/src/problem2/src/tokens/MNTL.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MON.svg b/src/problem2/src/tokens/MON.svg new file mode 100644 index 0000000000..be988333af --- /dev/null +++ b/src/problem2/src/tokens/MON.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MOODENG.svg b/src/problem2/src/tokens/MOODENG.svg new file mode 100644 index 0000000000..679ffc5b35 --- /dev/null +++ b/src/problem2/src/tokens/MOODENG.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MORPHO.svg b/src/problem2/src/tokens/MORPHO.svg new file mode 100644 index 0000000000..a27a0fb363 --- /dev/null +++ b/src/problem2/src/tokens/MORPHO.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MYT.svg b/src/problem2/src/tokens/MYT.svg new file mode 100644 index 0000000000..92cbc6468d --- /dev/null +++ b/src/problem2/src/tokens/MYT.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NANO.svg b/src/problem2/src/tokens/NANO.svg new file mode 100644 index 0000000000..9ed54dd843 --- /dev/null +++ b/src/problem2/src/tokens/NANO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NAS.svg b/src/problem2/src/tokens/NAS.svg new file mode 100644 index 0000000000..071766c17c --- /dev/null +++ b/src/problem2/src/tokens/NAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/NAT.svg b/src/problem2/src/tokens/NAT.svg new file mode 100644 index 0000000000..d72f7e18fc --- /dev/null +++ b/src/problem2/src/tokens/NAT.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/NEAR.svg b/src/problem2/src/tokens/NEAR.svg new file mode 100644 index 0000000000..7bc784c808 --- /dev/null +++ b/src/problem2/src/tokens/NEAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/NEIROETH.svg b/src/problem2/src/tokens/NEIROETH.svg new file mode 100644 index 0000000000..3ced226feb --- /dev/null +++ b/src/problem2/src/tokens/NEIROETH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NEO.svg b/src/problem2/src/tokens/NEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/tokens/NEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NETA.svg b/src/problem2/src/tokens/NETA.svg new file mode 100644 index 0000000000..b617dbef98 --- /dev/null +++ b/src/problem2/src/tokens/NETA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NEX.svg b/src/problem2/src/tokens/NEX.svg new file mode 100644 index 0000000000..34be620b9e --- /dev/null +++ b/src/problem2/src/tokens/NEX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/NEXO.svg b/src/problem2/src/tokens/NEXO.svg new file mode 100644 index 0000000000..4f8507a40f --- /dev/null +++ b/src/problem2/src/tokens/NEXO.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/NGM.svg b/src/problem2/src/tokens/NGM.svg new file mode 100644 index 0000000000..ebdc8a035d --- /dev/null +++ b/src/problem2/src/tokens/NGM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NIM.svg b/src/problem2/src/tokens/NIM.svg new file mode 100644 index 0000000000..ec74006b7c --- /dev/null +++ b/src/problem2/src/tokens/NIM.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NKN.svg b/src/problem2/src/tokens/NKN.svg new file mode 100644 index 0000000000..e008ac5d71 --- /dev/null +++ b/src/problem2/src/tokens/NKN.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NMR.svg b/src/problem2/src/tokens/NMR.svg new file mode 100644 index 0000000000..fcb458cafa --- /dev/null +++ b/src/problem2/src/tokens/NMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/NOT.svg b/src/problem2/src/tokens/NOT.svg new file mode 100644 index 0000000000..5561ccec77 --- /dev/null +++ b/src/problem2/src/tokens/NOT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NOTE.svg b/src/problem2/src/tokens/NOTE.svg new file mode 100644 index 0000000000..9f44e1971f --- /dev/null +++ b/src/problem2/src/tokens/NOTE.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NTRN-dATOM.svg b/src/problem2/src/tokens/NTRN-dATOM.svg new file mode 100644 index 0000000000..5b3303f21b --- /dev/null +++ b/src/problem2/src/tokens/NTRN-dATOM.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NTRN.svg b/src/problem2/src/tokens/NTRN.svg new file mode 100644 index 0000000000..150a6137d2 --- /dev/null +++ b/src/problem2/src/tokens/NTRN.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NXM.svg b/src/problem2/src/tokens/NXM.svg new file mode 100644 index 0000000000..165bc3b984 --- /dev/null +++ b/src/problem2/src/tokens/NXM.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/OCEAN.svg b/src/problem2/src/tokens/OCEAN.svg new file mode 100644 index 0000000000..ad0f99d6ae --- /dev/null +++ b/src/problem2/src/tokens/OCEAN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OCH.svg b/src/problem2/src/tokens/OCH.svg new file mode 100644 index 0000000000..51c3f8e039 --- /dev/null +++ b/src/problem2/src/tokens/OCH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OGN.svg b/src/problem2/src/tokens/OGN.svg new file mode 100644 index 0000000000..e15dbac858 --- /dev/null +++ b/src/problem2/src/tokens/OGN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OKB.svg b/src/problem2/src/tokens/OKB.svg new file mode 100644 index 0000000000..786f75ba42 --- /dev/null +++ b/src/problem2/src/tokens/OKB.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OKT.svg b/src/problem2/src/tokens/OKT.svg new file mode 100644 index 0000000000..0afcd8a1cf --- /dev/null +++ b/src/problem2/src/tokens/OKT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OM.svg b/src/problem2/src/tokens/OM.svg new file mode 100644 index 0000000000..6305bd1560 --- /dev/null +++ b/src/problem2/src/tokens/OM.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OMG.svg b/src/problem2/src/tokens/OMG.svg new file mode 100644 index 0000000000..2d3d8ae8e6 --- /dev/null +++ b/src/problem2/src/tokens/OMG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/OMG_2.svg b/src/problem2/src/tokens/OMG_2.svg new file mode 100644 index 0000000000..5735f9f726 --- /dev/null +++ b/src/problem2/src/tokens/OMG_2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OMI.svg b/src/problem2/src/tokens/OMI.svg new file mode 100644 index 0000000000..b1d5020084 --- /dev/null +++ b/src/problem2/src/tokens/OMI.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OMNI.svg b/src/problem2/src/tokens/OMNI.svg new file mode 100644 index 0000000000..ea1ce8353d --- /dev/null +++ b/src/problem2/src/tokens/OMNI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONDO.svg b/src/problem2/src/tokens/ONDO.svg new file mode 100644 index 0000000000..84482f794d --- /dev/null +++ b/src/problem2/src/tokens/ONDO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONE.svg b/src/problem2/src/tokens/ONE.svg new file mode 100644 index 0000000000..63c1260c06 --- /dev/null +++ b/src/problem2/src/tokens/ONE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONT.svg b/src/problem2/src/tokens/ONT.svg new file mode 100644 index 0000000000..93378b4745 --- /dev/null +++ b/src/problem2/src/tokens/ONT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OP.svg b/src/problem2/src/tokens/OP.svg new file mode 100644 index 0000000000..b5feac7946 --- /dev/null +++ b/src/problem2/src/tokens/OP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OPUL.svg b/src/problem2/src/tokens/OPUL.svg new file mode 100644 index 0000000000..c7ae4dbf3e --- /dev/null +++ b/src/problem2/src/tokens/OPUL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ORDI.svg b/src/problem2/src/tokens/ORDI.svg new file mode 100644 index 0000000000..380181270d --- /dev/null +++ b/src/problem2/src/tokens/ORDI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ORION.svg b/src/problem2/src/tokens/ORION.svg new file mode 100644 index 0000000000..b5f9ba6fff --- /dev/null +++ b/src/problem2/src/tokens/ORION.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/ORNE.svg b/src/problem2/src/tokens/ORNE.svg new file mode 100644 index 0000000000..d986b3f31e --- /dev/null +++ b/src/problem2/src/tokens/ORNE.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/OSMO.svg b/src/problem2/src/tokens/OSMO.svg new file mode 100644 index 0000000000..e98545517b --- /dev/null +++ b/src/problem2/src/tokens/OSMO.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OXT.svg b/src/problem2/src/tokens/OXT.svg new file mode 100644 index 0000000000..bba9547da1 --- /dev/null +++ b/src/problem2/src/tokens/OXT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/OXY.svg b/src/problem2/src/tokens/OXY.svg new file mode 100644 index 0000000000..9175a0b900 --- /dev/null +++ b/src/problem2/src/tokens/OXY.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PAX.svg b/src/problem2/src/tokens/PAX.svg new file mode 100644 index 0000000000..32b0ef8211 --- /dev/null +++ b/src/problem2/src/tokens/PAX.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PAXG.svg b/src/problem2/src/tokens/PAXG.svg new file mode 100644 index 0000000000..5ff89051f8 --- /dev/null +++ b/src/problem2/src/tokens/PAXG.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PENDLE.svg b/src/problem2/src/tokens/PENDLE.svg new file mode 100644 index 0000000000..367540fbb0 --- /dev/null +++ b/src/problem2/src/tokens/PENDLE.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PENGU.svg b/src/problem2/src/tokens/PENGU.svg new file mode 100644 index 0000000000..a5c99add38 --- /dev/null +++ b/src/problem2/src/tokens/PENGU.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PEPE.svg b/src/problem2/src/tokens/PEPE.svg new file mode 100644 index 0000000000..1e6ba151a3 --- /dev/null +++ b/src/problem2/src/tokens/PEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PHT.svg b/src/problem2/src/tokens/PHT.svg new file mode 100644 index 0000000000..d515118058 --- /dev/null +++ b/src/problem2/src/tokens/PHT.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLAY.svg b/src/problem2/src/tokens/PLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/tokens/PLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLQ.svg b/src/problem2/src/tokens/PLQ.svg new file mode 100644 index 0000000000..31b353bb45 --- /dev/null +++ b/src/problem2/src/tokens/PLQ.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLY.svg b/src/problem2/src/tokens/PLY.svg new file mode 100644 index 0000000000..c79b320445 --- /dev/null +++ b/src/problem2/src/tokens/PLY.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PNUT.svg b/src/problem2/src/tokens/PNUT.svg new file mode 100644 index 0000000000..90abdb384d --- /dev/null +++ b/src/problem2/src/tokens/PNUT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POL.svg b/src/problem2/src/tokens/POL.svg new file mode 100644 index 0000000000..ceff03709c --- /dev/null +++ b/src/problem2/src/tokens/POL.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POLY.svg b/src/problem2/src/tokens/POLY.svg new file mode 100644 index 0000000000..b894fef5d5 --- /dev/null +++ b/src/problem2/src/tokens/POLY.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POPCAT.svg b/src/problem2/src/tokens/POPCAT.svg new file mode 100644 index 0000000000..ab8fa4c5e5 --- /dev/null +++ b/src/problem2/src/tokens/POPCAT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/PORT.svg b/src/problem2/src/tokens/PORT.svg new file mode 100644 index 0000000000..d846537361 --- /dev/null +++ b/src/problem2/src/tokens/PORT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PROM.svg b/src/problem2/src/tokens/PROM.svg new file mode 100644 index 0000000000..044c9e3576 --- /dev/null +++ b/src/problem2/src/tokens/PROM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/PSI.svg b/src/problem2/src/tokens/PSI.svg new file mode 100644 index 0000000000..674744b4e5 --- /dev/null +++ b/src/problem2/src/tokens/PSI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PSTAKE.svg b/src/problem2/src/tokens/PSTAKE.svg new file mode 100644 index 0000000000..caf13d8d63 --- /dev/null +++ b/src/problem2/src/tokens/PSTAKE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/PTLBTC_29MAY2025.svg b/src/problem2/src/tokens/PTLBTC_29MAY2025.svg new file mode 100644 index 0000000000..afb01c923b --- /dev/null +++ b/src/problem2/src/tokens/PTLBTC_29MAY2025.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTMETH_26DEC2024.svg b/src/problem2/src/tokens/PTMETH_26DEC2024.svg new file mode 100644 index 0000000000..3256ec9f5f --- /dev/null +++ b/src/problem2/src/tokens/PTMETH_26DEC2024.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg b/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg new file mode 100644 index 0000000000..1444e75dfb --- /dev/null +++ b/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTcmETH_26JUN2025.svg b/src/problem2/src/tokens/PTcmETH_26JUN2025.svg new file mode 100644 index 0000000000..860a1e3892 --- /dev/null +++ b/src/problem2/src/tokens/PTcmETH_26JUN2025.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUDGY.svg b/src/problem2/src/tokens/PUDGY.svg new file mode 100644 index 0000000000..239424d8cd --- /dev/null +++ b/src/problem2/src/tokens/PUDGY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUMP.svg b/src/problem2/src/tokens/PUMP.svg new file mode 100644 index 0000000000..3b8ac28fda --- /dev/null +++ b/src/problem2/src/tokens/PUMP.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUNDIX.svg b/src/problem2/src/tokens/PUNDIX.svg new file mode 100644 index 0000000000..a522d0d26e --- /dev/null +++ b/src/problem2/src/tokens/PUNDIX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PURR.svg b/src/problem2/src/tokens/PURR.svg new file mode 100644 index 0000000000..c8b82375cb --- /dev/null +++ b/src/problem2/src/tokens/PURR.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PURSE.svg b/src/problem2/src/tokens/PURSE.svg new file mode 100644 index 0000000000..9188e092de --- /dev/null +++ b/src/problem2/src/tokens/PURSE.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PYTH.svg b/src/problem2/src/tokens/PYTH.svg new file mode 100644 index 0000000000..b34cc9ea3d --- /dev/null +++ b/src/problem2/src/tokens/PYTH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/QCK.svg b/src/problem2/src/tokens/QCK.svg new file mode 100644 index 0000000000..358cb7dbbf --- /dev/null +++ b/src/problem2/src/tokens/QCK.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/QKC.svg b/src/problem2/src/tokens/QKC.svg new file mode 100644 index 0000000000..e312777506 --- /dev/null +++ b/src/problem2/src/tokens/QKC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/QNT.svg b/src/problem2/src/tokens/QNT.svg new file mode 100644 index 0000000000..a611eaa24a --- /dev/null +++ b/src/problem2/src/tokens/QNT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/QTUM.svg b/src/problem2/src/tokens/QTUM.svg new file mode 100644 index 0000000000..e96f6cf2ca --- /dev/null +++ b/src/problem2/src/tokens/QTUM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RAY.svg b/src/problem2/src/tokens/RAY.svg new file mode 100644 index 0000000000..e769284e27 --- /dev/null +++ b/src/problem2/src/tokens/RAY.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RBN.svg b/src/problem2/src/tokens/RBN.svg new file mode 100644 index 0000000000..ef40c376d8 --- /dev/null +++ b/src/problem2/src/tokens/RBN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/REEF.svg b/src/problem2/src/tokens/REEF.svg new file mode 100644 index 0000000000..5c777f840f --- /dev/null +++ b/src/problem2/src/tokens/REEF.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/REGEN.svg b/src/problem2/src/tokens/REGEN.svg new file mode 100644 index 0000000000..242a4c66c9 --- /dev/null +++ b/src/problem2/src/tokens/REGEN.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/REN.svg b/src/problem2/src/tokens/REN.svg new file mode 100644 index 0000000000..bae08ca56f --- /dev/null +++ b/src/problem2/src/tokens/REN.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/REP.svg b/src/problem2/src/tokens/REP.svg new file mode 100644 index 0000000000..c311970b6d --- /dev/null +++ b/src/problem2/src/tokens/REP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/REV.svg b/src/problem2/src/tokens/REV.svg new file mode 100644 index 0000000000..6dcaa131aa --- /dev/null +++ b/src/problem2/src/tokens/REV.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RLB.svg b/src/problem2/src/tokens/RLB.svg new file mode 100644 index 0000000000..344fe8e022 --- /dev/null +++ b/src/problem2/src/tokens/RLB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RLC.svg b/src/problem2/src/tokens/RLC.svg new file mode 100644 index 0000000000..c816edf016 --- /dev/null +++ b/src/problem2/src/tokens/RLC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RNDR.svg b/src/problem2/src/tokens/RNDR.svg new file mode 100644 index 0000000000..031e8816b3 --- /dev/null +++ b/src/problem2/src/tokens/RNDR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ROAR.svg b/src/problem2/src/tokens/ROAR.svg new file mode 100644 index 0000000000..d29ab09634 --- /dev/null +++ b/src/problem2/src/tokens/ROAR.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ROWAN.svg b/src/problem2/src/tokens/ROWAN.svg new file mode 100644 index 0000000000..6b395742d4 --- /dev/null +++ b/src/problem2/src/tokens/ROWAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RSR.svg b/src/problem2/src/tokens/RSR.svg new file mode 100644 index 0000000000..f85bb78c23 --- /dev/null +++ b/src/problem2/src/tokens/RSR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RUNE.svg b/src/problem2/src/tokens/RUNE.svg new file mode 100644 index 0000000000..ccbb65ceff --- /dev/null +++ b/src/problem2/src/tokens/RUNE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/RVN.svg b/src/problem2/src/tokens/RVN.svg new file mode 100644 index 0000000000..4d6d30eeef --- /dev/null +++ b/src/problem2/src/tokens/RVN.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/S.svg b/src/problem2/src/tokens/S.svg new file mode 100644 index 0000000000..b216a1804f --- /dev/null +++ b/src/problem2/src/tokens/S.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SAFEMOON.svg b/src/problem2/src/tokens/SAFEMOON.svg new file mode 100644 index 0000000000..9ff12873a5 --- /dev/null +++ b/src/problem2/src/tokens/SAFEMOON.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAGA.svg b/src/problem2/src/tokens/SAGA.svg new file mode 100644 index 0000000000..53455ea0dd --- /dev/null +++ b/src/problem2/src/tokens/SAGA.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAND.svg b/src/problem2/src/tokens/SAND.svg new file mode 100644 index 0000000000..4e01196b45 --- /dev/null +++ b/src/problem2/src/tokens/SAND.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAYVE.svg b/src/problem2/src/tokens/SAYVE.svg new file mode 100644 index 0000000000..2cea35fc51 --- /dev/null +++ b/src/problem2/src/tokens/SAYVE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/SC.svg b/src/problem2/src/tokens/SC.svg new file mode 100644 index 0000000000..aebc27644b --- /dev/null +++ b/src/problem2/src/tokens/SC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SCRT.svg b/src/problem2/src/tokens/SCRT.svg new file mode 100644 index 0000000000..9451de4116 --- /dev/null +++ b/src/problem2/src/tokens/SCRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/SDT.svg b/src/problem2/src/tokens/SDT.svg new file mode 100644 index 0000000000..222a72897f --- /dev/null +++ b/src/problem2/src/tokens/SDT.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SEI.svg b/src/problem2/src/tokens/SEI.svg new file mode 100644 index 0000000000..65ea99277e --- /dev/null +++ b/src/problem2/src/tokens/SEI.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SET.svg b/src/problem2/src/tokens/SET.svg new file mode 100644 index 0000000000..f46a6ba24f --- /dev/null +++ b/src/problem2/src/tokens/SET.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SGT.svg b/src/problem2/src/tokens/SGT.svg new file mode 100644 index 0000000000..a975dece90 --- /dev/null +++ b/src/problem2/src/tokens/SGT.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHD.svg b/src/problem2/src/tokens/SHD.svg new file mode 100644 index 0000000000..bdb7e6c29c --- /dev/null +++ b/src/problem2/src/tokens/SHD.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHIB.svg b/src/problem2/src/tokens/SHIB.svg new file mode 100644 index 0000000000..adbb2f009b --- /dev/null +++ b/src/problem2/src/tokens/SHIB.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHIDO.svg b/src/problem2/src/tokens/SHIDO.svg new file mode 100644 index 0000000000..bd7deeeb4b --- /dev/null +++ b/src/problem2/src/tokens/SHIDO.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SITY.svg b/src/problem2/src/tokens/SITY.svg new file mode 100644 index 0000000000..7cfb8209bf --- /dev/null +++ b/src/problem2/src/tokens/SITY.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/SLERF.svg b/src/problem2/src/tokens/SLERF.svg new file mode 100644 index 0000000000..713f29af95 --- /dev/null +++ b/src/problem2/src/tokens/SLERF.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SNT.svg b/src/problem2/src/tokens/SNT.svg new file mode 100644 index 0000000000..cc8ad2df4c --- /dev/null +++ b/src/problem2/src/tokens/SNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SNX.svg b/src/problem2/src/tokens/SNX.svg new file mode 100644 index 0000000000..14e0591389 --- /dev/null +++ b/src/problem2/src/tokens/SNX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOL.svg b/src/problem2/src/tokens/SOL.svg new file mode 100644 index 0000000000..0568e80881 --- /dev/null +++ b/src/problem2/src/tokens/SOL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOLETH.svg b/src/problem2/src/tokens/SOLETH.svg new file mode 100644 index 0000000000..c7f81893f8 --- /dev/null +++ b/src/problem2/src/tokens/SOLETH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOM.svg b/src/problem2/src/tokens/SOM.svg new file mode 100644 index 0000000000..778bf9b5c9 --- /dev/null +++ b/src/problem2/src/tokens/SOM.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOMM.svg b/src/problem2/src/tokens/SOMM.svg new file mode 100644 index 0000000000..fa82d261ee --- /dev/null +++ b/src/problem2/src/tokens/SOMM.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SPEC.svg b/src/problem2/src/tokens/SPEC.svg new file mode 100644 index 0000000000..75c9b37b2b --- /dev/null +++ b/src/problem2/src/tokens/SPEC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SRM.svg b/src/problem2/src/tokens/SRM.svg new file mode 100644 index 0000000000..e488de82db --- /dev/null +++ b/src/problem2/src/tokens/SRM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SRV.svg b/src/problem2/src/tokens/SRV.svg new file mode 100644 index 0000000000..b15a61c77f --- /dev/null +++ b/src/problem2/src/tokens/SRV.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/STARS.svg b/src/problem2/src/tokens/STARS.svg new file mode 100644 index 0000000000..de6d376db8 --- /dev/null +++ b/src/problem2/src/tokens/STARS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STEEM.svg b/src/problem2/src/tokens/STEEM.svg new file mode 100644 index 0000000000..503009b90d --- /dev/null +++ b/src/problem2/src/tokens/STEEM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/STMX.svg b/src/problem2/src/tokens/STMX.svg new file mode 100644 index 0000000000..976e86474b --- /dev/null +++ b/src/problem2/src/tokens/STMX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STORJ.svg b/src/problem2/src/tokens/STORJ.svg new file mode 100644 index 0000000000..85a332a6ce --- /dev/null +++ b/src/problem2/src/tokens/STORJ.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STRAX.svg b/src/problem2/src/tokens/STRAX.svg new file mode 100644 index 0000000000..a34822931d --- /dev/null +++ b/src/problem2/src/tokens/STRAX.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STRD.svg b/src/problem2/src/tokens/STRD.svg new file mode 100644 index 0000000000..f25a48536c --- /dev/null +++ b/src/problem2/src/tokens/STRD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STREAM.svg b/src/problem2/src/tokens/STREAM.svg new file mode 100644 index 0000000000..fba4ce0609 --- /dev/null +++ b/src/problem2/src/tokens/STREAM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STRK.svg b/src/problem2/src/tokens/STRK.svg new file mode 100644 index 0000000000..22c139824d --- /dev/null +++ b/src/problem2/src/tokens/STRK.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STT.svg b/src/problem2/src/tokens/STT.svg new file mode 100644 index 0000000000..d37590a8d3 --- /dev/null +++ b/src/problem2/src/tokens/STT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STX.svg b/src/problem2/src/tokens/STX.svg new file mode 100644 index 0000000000..ed89fc9276 --- /dev/null +++ b/src/problem2/src/tokens/STX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SUI.svg b/src/problem2/src/tokens/SUI.svg new file mode 100644 index 0000000000..7687a88042 --- /dev/null +++ b/src/problem2/src/tokens/SUI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SUN.svg b/src/problem2/src/tokens/SUN.svg new file mode 100644 index 0000000000..1159b6cbfd --- /dev/null +++ b/src/problem2/src/tokens/SUN.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SUSHI.svg b/src/problem2/src/tokens/SUSHI.svg new file mode 100644 index 0000000000..e118f213b5 --- /dev/null +++ b/src/problem2/src/tokens/SUSHI.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SWTH-LEGACY.svg b/src/problem2/src/tokens/SWTH-LEGACY.svg new file mode 100644 index 0000000000..60ba0650e1 --- /dev/null +++ b/src/problem2/src/tokens/SWTH-LEGACY.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SWTH.svg b/src/problem2/src/tokens/SWTH.svg new file mode 100644 index 0000000000..353c1b5bcc --- /dev/null +++ b/src/problem2/src/tokens/SWTH.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SXP.svg b/src/problem2/src/tokens/SXP.svg new file mode 100644 index 0000000000..89fd3b147e --- /dev/null +++ b/src/problem2/src/tokens/SXP.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/TAO.svg b/src/problem2/src/tokens/TAO.svg new file mode 100644 index 0000000000..9f0dbfcf8e --- /dev/null +++ b/src/problem2/src/tokens/TAO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TEL.svg b/src/problem2/src/tokens/TEL.svg new file mode 100644 index 0000000000..2992514bf1 --- /dev/null +++ b/src/problem2/src/tokens/TEL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TFUEL.svg b/src/problem2/src/tokens/TFUEL.svg new file mode 100644 index 0000000000..d57d7d9493 --- /dev/null +++ b/src/problem2/src/tokens/TFUEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/THETA.svg b/src/problem2/src/tokens/THETA.svg new file mode 100644 index 0000000000..8ff93f4019 --- /dev/null +++ b/src/problem2/src/tokens/THETA.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/THT.svg b/src/problem2/src/tokens/THT.svg new file mode 100644 index 0000000000..8ee5eb9ff3 --- /dev/null +++ b/src/problem2/src/tokens/THT.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TIA.svg b/src/problem2/src/tokens/TIA.svg new file mode 100644 index 0000000000..41d8ab96c1 --- /dev/null +++ b/src/problem2/src/tokens/TIA.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TICK.svg b/src/problem2/src/tokens/TICK.svg new file mode 100644 index 0000000000..3be70db269 --- /dev/null +++ b/src/problem2/src/tokens/TICK.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TITAN.svg b/src/problem2/src/tokens/TITAN.svg new file mode 100644 index 0000000000..d52faa138c --- /dev/null +++ b/src/problem2/src/tokens/TITAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TLAND.svg b/src/problem2/src/tokens/TLAND.svg new file mode 100644 index 0000000000..9f9e3e2330 --- /dev/null +++ b/src/problem2/src/tokens/TLAND.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/TLM.svg b/src/problem2/src/tokens/TLM.svg new file mode 100644 index 0000000000..1fe3283fee --- /dev/null +++ b/src/problem2/src/tokens/TLM.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TOMO.svg b/src/problem2/src/tokens/TOMO.svg new file mode 100644 index 0000000000..45bda83d4b --- /dev/null +++ b/src/problem2/src/tokens/TOMO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TON.svg b/src/problem2/src/tokens/TON.svg new file mode 100644 index 0000000000..c1e0b91485 --- /dev/null +++ b/src/problem2/src/tokens/TON.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TPC.svg b/src/problem2/src/tokens/TPC.svg new file mode 100644 index 0000000000..29f8a4af8d --- /dev/null +++ b/src/problem2/src/tokens/TPC.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRAXX.svg b/src/problem2/src/tokens/TRAXX.svg new file mode 100644 index 0000000000..05c2ec0999 --- /dev/null +++ b/src/problem2/src/tokens/TRAXX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRB.svg b/src/problem2/src/tokens/TRB.svg new file mode 100644 index 0000000000..e319e65d7e --- /dev/null +++ b/src/problem2/src/tokens/TRB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRU.svg b/src/problem2/src/tokens/TRU.svg new file mode 100644 index 0000000000..29ddc8ac24 --- /dev/null +++ b/src/problem2/src/tokens/TRU.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TRUMP.svg b/src/problem2/src/tokens/TRUMP.svg new file mode 100644 index 0000000000..2571b5e20f --- /dev/null +++ b/src/problem2/src/tokens/TRUMP.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRX.svg b/src/problem2/src/tokens/TRX.svg new file mode 100644 index 0000000000..c105ddc307 --- /dev/null +++ b/src/problem2/src/tokens/TRX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TTT.svg b/src/problem2/src/tokens/TTT.svg new file mode 100644 index 0000000000..13e6080a8a --- /dev/null +++ b/src/problem2/src/tokens/TTT.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TUSD.svg b/src/problem2/src/tokens/TUSD.svg new file mode 100644 index 0000000000..712ec923da --- /dev/null +++ b/src/problem2/src/tokens/TUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TWD.svg b/src/problem2/src/tokens/TWD.svg new file mode 100644 index 0000000000..014f525557 --- /dev/null +++ b/src/problem2/src/tokens/TWD.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TWT.svg b/src/problem2/src/tokens/TWT.svg new file mode 100644 index 0000000000..b67bf37535 --- /dev/null +++ b/src/problem2/src/tokens/TWT.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/Token.svg b/src/problem2/src/tokens/Token.svg new file mode 100644 index 0000000000..bed64e2942 --- /dev/null +++ b/src/problem2/src/tokens/Token.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UBQ.svg b/src/problem2/src/tokens/UBQ.svg new file mode 100644 index 0000000000..139af049ce --- /dev/null +++ b/src/problem2/src/tokens/UBQ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/UMEE.svg b/src/problem2/src/tokens/UMEE.svg new file mode 100644 index 0000000000..f9243257df --- /dev/null +++ b/src/problem2/src/tokens/UMEE.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UNA.svg b/src/problem2/src/tokens/UNA.svg new file mode 100644 index 0000000000..077c1555e7 --- /dev/null +++ b/src/problem2/src/tokens/UNA.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/UNI.svg b/src/problem2/src/tokens/UNI.svg new file mode 100644 index 0000000000..37996b6c05 --- /dev/null +++ b/src/problem2/src/tokens/UNI.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UOS.svg b/src/problem2/src/tokens/UOS.svg new file mode 100644 index 0000000000..eb07c3cce8 --- /dev/null +++ b/src/problem2/src/tokens/UOS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USC-Minted.svg b/src/problem2/src/tokens/USC-Minted.svg new file mode 100644 index 0000000000..466cda74f0 --- /dev/null +++ b/src/problem2/src/tokens/USC-Minted.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USC.svg b/src/problem2/src/tokens/USC.svg new file mode 100644 index 0000000000..32bd9541f5 --- /dev/null +++ b/src/problem2/src/tokens/USC.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USD.svg b/src/problem2/src/tokens/USD.svg new file mode 100644 index 0000000000..abf67ab105 --- /dev/null +++ b/src/problem2/src/tokens/USD.svg @@ -0,0 +1,8 @@ + + + Token Symbol/USD + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/USDC-dATOM.svg b/src/problem2/src/tokens/USDC-dATOM.svg new file mode 100644 index 0000000000..7202b50ae7 --- /dev/null +++ b/src/problem2/src/tokens/USDC-dATOM.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDC.e.svg b/src/problem2/src/tokens/USDC.e.svg new file mode 100644 index 0000000000..eee4251a7b --- /dev/null +++ b/src/problem2/src/tokens/USDC.e.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/USDC.grv.svg b/src/problem2/src/tokens/USDC.grv.svg new file mode 100644 index 0000000000..458ab4901a --- /dev/null +++ b/src/problem2/src/tokens/USDC.grv.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDC.svg b/src/problem2/src/tokens/USDC.svg new file mode 100644 index 0000000000..eee4251a7b --- /dev/null +++ b/src/problem2/src/tokens/USDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/USDP.svg b/src/problem2/src/tokens/USDP.svg new file mode 100644 index 0000000000..b7e76ff9d1 --- /dev/null +++ b/src/problem2/src/tokens/USDP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDT.svg b/src/problem2/src/tokens/USDT.svg new file mode 100644 index 0000000000..8b3986d057 --- /dev/null +++ b/src/problem2/src/tokens/USDT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USDY.svg b/src/problem2/src/tokens/USDY.svg new file mode 100644 index 0000000000..118da5939c --- /dev/null +++ b/src/problem2/src/tokens/USDY.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USK.svg b/src/problem2/src/tokens/USK.svg new file mode 100644 index 0000000000..15ba03fe9d --- /dev/null +++ b/src/problem2/src/tokens/USK.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UST.svg b/src/problem2/src/tokens/UST.svg new file mode 100644 index 0000000000..2a0a597074 --- /dev/null +++ b/src/problem2/src/tokens/UST.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USUAL.svg b/src/problem2/src/tokens/USUAL.svg new file mode 100644 index 0000000000..1bdf52827d --- /dev/null +++ b/src/problem2/src/tokens/USUAL.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/VDL.svg b/src/problem2/src/tokens/VDL.svg new file mode 100644 index 0000000000..d839e0da4d --- /dev/null +++ b/src/problem2/src/tokens/VDL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/VET.svg b/src/problem2/src/tokens/VET.svg new file mode 100644 index 0000000000..88ebf982a5 --- /dev/null +++ b/src/problem2/src/tokens/VET.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/VIRTUAL.svg b/src/problem2/src/tokens/VIRTUAL.svg new file mode 100644 index 0000000000..7d623039a9 --- /dev/null +++ b/src/problem2/src/tokens/VIRTUAL.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/VKR.svg b/src/problem2/src/tokens/VKR.svg new file mode 100644 index 0000000000..cb3c68d595 --- /dev/null +++ b/src/problem2/src/tokens/VKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/VRTX.svg b/src/problem2/src/tokens/VRTX.svg new file mode 100644 index 0000000000..8cb3dc30ef --- /dev/null +++ b/src/problem2/src/tokens/VRTX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/W.svg b/src/problem2/src/tokens/W.svg new file mode 100644 index 0000000000..95823f2252 --- /dev/null +++ b/src/problem2/src/tokens/W.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WAL.svg b/src/problem2/src/tokens/WAL.svg new file mode 100644 index 0000000000..8d06c07e14 --- /dev/null +++ b/src/problem2/src/tokens/WAL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WAVAX.svg b/src/problem2/src/tokens/WAVAX.svg new file mode 100644 index 0000000000..e244ad3aa6 --- /dev/null +++ b/src/problem2/src/tokens/WAVAX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WAVE.svg b/src/problem2/src/tokens/WAVE.svg new file mode 100644 index 0000000000..2ca6ac0708 --- /dev/null +++ b/src/problem2/src/tokens/WAVE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WBNB.svg b/src/problem2/src/tokens/WBNB.svg new file mode 100644 index 0000000000..e45c696b5c --- /dev/null +++ b/src/problem2/src/tokens/WBNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WBTC.svg b/src/problem2/src/tokens/WBTC.svg new file mode 100644 index 0000000000..b597b84a4a --- /dev/null +++ b/src/problem2/src/tokens/WBTC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/WETH.svg b/src/problem2/src/tokens/WETH.svg new file mode 100644 index 0000000000..cba6f1d783 --- /dev/null +++ b/src/problem2/src/tokens/WETH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WHALE.svg b/src/problem2/src/tokens/WHALE.svg new file mode 100644 index 0000000000..a42a2449d8 --- /dev/null +++ b/src/problem2/src/tokens/WHALE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/WIF.svg b/src/problem2/src/tokens/WIF.svg new file mode 100644 index 0000000000..6df4ea15a2 --- /dev/null +++ b/src/problem2/src/tokens/WIF.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WIN.svg b/src/problem2/src/tokens/WIN.svg new file mode 100644 index 0000000000..bc2435409b --- /dev/null +++ b/src/problem2/src/tokens/WIN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/WLD.svg b/src/problem2/src/tokens/WLD.svg new file mode 100644 index 0000000000..62191032d6 --- /dev/null +++ b/src/problem2/src/tokens/WLD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WMATIC.svg b/src/problem2/src/tokens/WMATIC.svg new file mode 100644 index 0000000000..ba0630b510 --- /dev/null +++ b/src/problem2/src/tokens/WMATIC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/WMNT.svg b/src/problem2/src/tokens/WMNT.svg new file mode 100644 index 0000000000..8b8784b36a --- /dev/null +++ b/src/problem2/src/tokens/WMNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WMON.png b/src/problem2/src/tokens/WMON.png new file mode 100644 index 0000000000000000000000000000000000000000..452cae24b2c588ca08de28a09ee5ed1a99d599e6 GIT binary patch literal 826 zcmV-A1I7G_P)JyI+|hhb^x;`Js-NNz}Q3Is?XrH4=vpullw zH#z+32AS& z@=uMO1wYoF3~KyGgY!XOd7Z4q6p-b}*elVCRGLA)BtfAlLB9uZ(6OQQ)tRUP(SBBK zTwEV1aAQtk0mwuzXR-_)R1~+x{O&hV)OOj?R62$HwC#SPsIkrP@wHdk^= z=qpL4!#oTbFAc<-LE*xpJc{{2+lC*XZP(f;sG7cUuYAxOsCDda?6)Ab3k(i_@% literal 0 HcmV?d00001 diff --git a/src/problem2/src/tokens/WRX.svg b/src/problem2/src/tokens/WRX.svg new file mode 100644 index 0000000000..543f570909 --- /dev/null +++ b/src/problem2/src/tokens/WRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/XCAD.svg b/src/problem2/src/tokens/XCAD.svg new file mode 100644 index 0000000000..545a88d1b9 --- /dev/null +++ b/src/problem2/src/tokens/XCAD.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/XDC.svg b/src/problem2/src/tokens/XDC.svg new file mode 100644 index 0000000000..c90381022e --- /dev/null +++ b/src/problem2/src/tokens/XDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/XEM.svg b/src/problem2/src/tokens/XEM.svg new file mode 100644 index 0000000000..da54e72a22 --- /dev/null +++ b/src/problem2/src/tokens/XEM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XKI.svg b/src/problem2/src/tokens/XKI.svg new file mode 100644 index 0000000000..dd5fea7cf0 --- /dev/null +++ b/src/problem2/src/tokens/XKI.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XLM.svg b/src/problem2/src/tokens/XLM.svg new file mode 100644 index 0000000000..d836619c15 --- /dev/null +++ b/src/problem2/src/tokens/XLM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XMR.svg b/src/problem2/src/tokens/XMR.svg new file mode 100644 index 0000000000..475a95cb7d --- /dev/null +++ b/src/problem2/src/tokens/XMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XPRT.svg b/src/problem2/src/tokens/XPRT.svg new file mode 100644 index 0000000000..7ecd4ace95 --- /dev/null +++ b/src/problem2/src/tokens/XPRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XRP.svg b/src/problem2/src/tokens/XRP.svg new file mode 100644 index 0000000000..b3d441bf40 --- /dev/null +++ b/src/problem2/src/tokens/XRP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XSGD.svg b/src/problem2/src/tokens/XSGD.svg new file mode 100644 index 0000000000..f04caab93b --- /dev/null +++ b/src/problem2/src/tokens/XSGD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/XTRA.svg b/src/problem2/src/tokens/XTRA.svg new file mode 100644 index 0000000000..1c6367d3be --- /dev/null +++ b/src/problem2/src/tokens/XTRA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/XTZ.svg b/src/problem2/src/tokens/XTZ.svg new file mode 100644 index 0000000000..28b924e5c7 --- /dev/null +++ b/src/problem2/src/tokens/XTZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XVG.svg b/src/problem2/src/tokens/XVG.svg new file mode 100644 index 0000000000..537378cff6 --- /dev/null +++ b/src/problem2/src/tokens/XVG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XVS.svg b/src/problem2/src/tokens/XVS.svg new file mode 100644 index 0000000000..3176f9fb66 --- /dev/null +++ b/src/problem2/src/tokens/XVS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YAKI.svg b/src/problem2/src/tokens/YAKI.svg new file mode 100644 index 0000000000..5179eb95aa --- /dev/null +++ b/src/problem2/src/tokens/YAKI.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YAM.svg b/src/problem2/src/tokens/YAM.svg new file mode 100644 index 0000000000..2e8a654216 --- /dev/null +++ b/src/problem2/src/tokens/YAM.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YFI.svg b/src/problem2/src/tokens/YFI.svg new file mode 100644 index 0000000000..b7674608b7 --- /dev/null +++ b/src/problem2/src/tokens/YFI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/YieldUSD.svg b/src/problem2/src/tokens/YieldUSD.svg new file mode 100644 index 0000000000..e435a687c9 --- /dev/null +++ b/src/problem2/src/tokens/YieldUSD.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZCH.svg b/src/problem2/src/tokens/ZCH.svg new file mode 100644 index 0000000000..1e9d4250d4 --- /dev/null +++ b/src/problem2/src/tokens/ZCH.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ZEC.svg b/src/problem2/src/tokens/ZEC.svg new file mode 100644 index 0000000000..b6b86dcc1d --- /dev/null +++ b/src/problem2/src/tokens/ZEC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZEN.svg b/src/problem2/src/tokens/ZEN.svg new file mode 100644 index 0000000000..b305169acb --- /dev/null +++ b/src/problem2/src/tokens/ZEN.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZIL.svg b/src/problem2/src/tokens/ZIL.svg new file mode 100644 index 0000000000..c89e8ce16f --- /dev/null +++ b/src/problem2/src/tokens/ZIL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ZRO.svg b/src/problem2/src/tokens/ZRO.svg new file mode 100644 index 0000000000..e485e3b2ab --- /dev/null +++ b/src/problem2/src/tokens/ZRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZRX.svg b/src/problem2/src/tokens/ZRX.svg new file mode 100644 index 0000000000..f42e914a6a --- /dev/null +++ b/src/problem2/src/tokens/ZRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ZWAP.svg b/src/problem2/src/tokens/ZWAP.svg new file mode 100644 index 0000000000..130d14d73b --- /dev/null +++ b/src/problem2/src/tokens/ZWAP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ampKUJI.svg b/src/problem2/src/tokens/ampKUJI.svg new file mode 100644 index 0000000000..2692787da5 --- /dev/null +++ b/src/problem2/src/tokens/ampKUJI.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ampLUNA.svg b/src/problem2/src/tokens/ampLUNA.svg new file mode 100644 index 0000000000..ebeab58687 --- /dev/null +++ b/src/problem2/src/tokens/ampLUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/axlUSDC.svg b/src/problem2/src/tokens/axlUSDC.svg new file mode 100644 index 0000000000..fc879f679a --- /dev/null +++ b/src/problem2/src/tokens/axlUSDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/bCFX.svg b/src/problem2/src/tokens/bCFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/tokens/bCFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/bNEO.svg b/src/problem2/src/tokens/bNEO.svg new file mode 100644 index 0000000000..561b2282d8 --- /dev/null +++ b/src/problem2/src/tokens/bNEO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/beraSTONE.svg b/src/problem2/src/tokens/beraSTONE.svg new file mode 100644 index 0000000000..3da255f504 --- /dev/null +++ b/src/problem2/src/tokens/beraSTONE.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/cUSD.svg b/src/problem2/src/tokens/cUSD.svg new file mode 100644 index 0000000000..33407ebc96 --- /dev/null +++ b/src/problem2/src/tokens/cUSD.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/cbBTC.svg b/src/problem2/src/tokens/cbBTC.svg new file mode 100644 index 0000000000..77fee5c013 --- /dev/null +++ b/src/problem2/src/tokens/cbBTC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/cbETH.svg b/src/problem2/src/tokens/cbETH.svg new file mode 100644 index 0000000000..5a18b92644 --- /dev/null +++ b/src/problem2/src/tokens/cbETH.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/cmETH.svg b/src/problem2/src/tokens/cmETH.svg new file mode 100644 index 0000000000..0a82791d04 --- /dev/null +++ b/src/problem2/src/tokens/cmETH.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dATOM.svg b/src/problem2/src/tokens/dATOM.svg new file mode 100644 index 0000000000..b73e04155e --- /dev/null +++ b/src/problem2/src/tokens/dATOM.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dGLP.svg b/src/problem2/src/tokens/dGLP.svg new file mode 100644 index 0000000000..84cac9cdeb --- /dev/null +++ b/src/problem2/src/tokens/dGLP.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dINJ.svg b/src/problem2/src/tokens/dINJ.svg new file mode 100644 index 0000000000..05b1763cc2 --- /dev/null +++ b/src/problem2/src/tokens/dINJ.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dXCAD.svg b/src/problem2/src/tokens/dXCAD.svg new file mode 100644 index 0000000000..881f50fd02 --- /dev/null +++ b/src/problem2/src/tokens/dXCAD.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/eGLD.svg b/src/problem2/src/tokens/eGLD.svg new file mode 100644 index 0000000000..e42ad2510e --- /dev/null +++ b/src/problem2/src/tokens/eGLD.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ePLAY.svg b/src/problem2/src/tokens/ePLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/tokens/ePLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/esFLUO.svg b/src/problem2/src/tokens/esFLUO.svg new file mode 100644 index 0000000000..0b69ed3189 --- /dev/null +++ b/src/problem2/src/tokens/esFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/gZIL.svg b/src/problem2/src/tokens/gZIL.svg new file mode 100644 index 0000000000..27334389ba --- /dev/null +++ b/src/problem2/src/tokens/gZIL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/iSEI.svg b/src/problem2/src/tokens/iSEI.svg new file mode 100644 index 0000000000..246b86f8a1 --- /dev/null +++ b/src/problem2/src/tokens/iSEI.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/iUSD.svg b/src/problem2/src/tokens/iUSD.svg new file mode 100644 index 0000000000..ca263a0474 --- /dev/null +++ b/src/problem2/src/tokens/iUSD.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/mETH.svg b/src/problem2/src/tokens/mETH.svg new file mode 100644 index 0000000000..6d6d5d0762 --- /dev/null +++ b/src/problem2/src/tokens/mETH.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/milkTIA.svg b/src/problem2/src/tokens/milkTIA.svg new file mode 100644 index 0000000000..d595abfa30 --- /dev/null +++ b/src/problem2/src/tokens/milkTIA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/nLEND.svg b/src/problem2/src/tokens/nLEND.svg new file mode 100644 index 0000000000..d5c91b274f --- /dev/null +++ b/src/problem2/src/tokens/nLEND.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/nNEO.svg b/src/problem2/src/tokens/nNEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/tokens/nNEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/rATOM.svg b/src/problem2/src/tokens/rATOM.svg new file mode 100644 index 0000000000..8cd5f8056f --- /dev/null +++ b/src/problem2/src/tokens/rATOM.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/rSWTH.svg b/src/problem2/src/tokens/rSWTH.svg new file mode 100644 index 0000000000..d5250ff90d --- /dev/null +++ b/src/problem2/src/tokens/rSWTH.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/sARCH.svg b/src/problem2/src/tokens/sARCH.svg new file mode 100644 index 0000000000..3ec2b656f0 --- /dev/null +++ b/src/problem2/src/tokens/sARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stATOM.svg b/src/problem2/src/tokens/stATOM.svg new file mode 100644 index 0000000000..c3e505f8b3 --- /dev/null +++ b/src/problem2/src/tokens/stATOM.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stDYDX.svg b/src/problem2/src/tokens/stDYDX.svg new file mode 100644 index 0000000000..6d851637a8 --- /dev/null +++ b/src/problem2/src/tokens/stDYDX.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/stDYM.svg b/src/problem2/src/tokens/stDYM.svg new file mode 100644 index 0000000000..d961755725 --- /dev/null +++ b/src/problem2/src/tokens/stDYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stETH.svg b/src/problem2/src/tokens/stETH.svg new file mode 100644 index 0000000000..8c490e47f0 --- /dev/null +++ b/src/problem2/src/tokens/stETH.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stEVMOS.svg b/src/problem2/src/tokens/stEVMOS.svg new file mode 100644 index 0000000000..a2a8888208 --- /dev/null +++ b/src/problem2/src/tokens/stEVMOS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/stFLUO.svg b/src/problem2/src/tokens/stFLUO.svg new file mode 100644 index 0000000000..bf182c96de --- /dev/null +++ b/src/problem2/src/tokens/stFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stIBCX.svg b/src/problem2/src/tokens/stIBCX.svg new file mode 100644 index 0000000000..8a10d241d5 --- /dev/null +++ b/src/problem2/src/tokens/stIBCX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stINJ.svg b/src/problem2/src/tokens/stINJ.svg new file mode 100644 index 0000000000..6b97bec4f7 --- /dev/null +++ b/src/problem2/src/tokens/stINJ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stJUNO.svg b/src/problem2/src/tokens/stJUNO.svg new file mode 100644 index 0000000000..8d92f375c6 --- /dev/null +++ b/src/problem2/src/tokens/stJUNO.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stLUNA.svg b/src/problem2/src/tokens/stLUNA.svg new file mode 100644 index 0000000000..606be7947d --- /dev/null +++ b/src/problem2/src/tokens/stLUNA.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/stOKT.svg b/src/problem2/src/tokens/stOKT.svg new file mode 100644 index 0000000000..33b541d11d --- /dev/null +++ b/src/problem2/src/tokens/stOKT.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/stOSMO.svg b/src/problem2/src/tokens/stOSMO.svg new file mode 100644 index 0000000000..73d296046b --- /dev/null +++ b/src/problem2/src/tokens/stOSMO.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stSAGA.svg b/src/problem2/src/tokens/stSAGA.svg new file mode 100644 index 0000000000..d6092fc7cf --- /dev/null +++ b/src/problem2/src/tokens/stSAGA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stSTARS.svg b/src/problem2/src/tokens/stSTARS.svg new file mode 100644 index 0000000000..ffc7def96a --- /dev/null +++ b/src/problem2/src/tokens/stSTARS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stTIA.svg b/src/problem2/src/tokens/stTIA.svg new file mode 100644 index 0000000000..3d3e28470d --- /dev/null +++ b/src/problem2/src/tokens/stTIA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stZIL.svg b/src/problem2/src/tokens/stZIL.svg new file mode 100644 index 0000000000..81323f746a --- /dev/null +++ b/src/problem2/src/tokens/stZIL.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/stkATOM.svg b/src/problem2/src/tokens/stkATOM.svg new file mode 100644 index 0000000000..1e6c7a2b2c --- /dev/null +++ b/src/problem2/src/tokens/stkATOM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stkDYDX.svg b/src/problem2/src/tokens/stkDYDX.svg new file mode 100644 index 0000000000..2d2883a9e6 --- /dev/null +++ b/src/problem2/src/tokens/stkDYDX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stkSTARS.svg b/src/problem2/src/tokens/stkSTARS.svg new file mode 100644 index 0000000000..97e87da6ea --- /dev/null +++ b/src/problem2/src/tokens/stkSTARS.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/vZWAP.svg b/src/problem2/src/tokens/vZWAP.svg new file mode 100644 index 0000000000..0874b89e8b --- /dev/null +++ b/src/problem2/src/tokens/vZWAP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/veFLUO.svg b/src/problem2/src/tokens/veFLUO.svg new file mode 100644 index 0000000000..3624b5647a --- /dev/null +++ b/src/problem2/src/tokens/veFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/wKAS.svg b/src/problem2/src/tokens/wKAS.svg new file mode 100644 index 0000000000..14185747c5 --- /dev/null +++ b/src/problem2/src/tokens/wKAS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/wstETH.svg b/src/problem2/src/tokens/wstETH.svg new file mode 100644 index 0000000000..15c8a9716e --- /dev/null +++ b/src/problem2/src/tokens/wstETH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + From a751bd9b2dbfd37fcdae1f5c51f9b3733e860407 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 24 Mar 2026 22:38:19 +0700 Subject: [PATCH 5/8] feat(code-challenge): Problem2 - Add tailwindcss --- src/problem2/package-lock.json | 336 +++++++++++++++++++++++++++++++++ src/problem2/package.json | 2 + src/problem2/src/App.css | 184 ------------------ src/problem2/src/App.tsx | 116 +----------- src/problem2/src/index.css | 112 +---------- src/problem2/vite.config.ts | 6 +- 6 files changed, 345 insertions(+), 411 deletions(-) diff --git a/src/problem2/package-lock.json b/src/problem2/package-lock.json index f3ee7f94df..96acdaa031 100644 --- a/src/problem2/package-lock.json +++ b/src/problem2/package-lock.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@eslint/js": "^9.39.4", + "@tailwindcss/vite": "^4.2.2", "@types/node": "^24.12.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", @@ -21,6 +22,7 @@ "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", + "tailwindcss": "^4.2.2", "typescript": "~5.9.3", "typescript-eslint": "^8.57.0", "vite": "^8.0.1" @@ -848,6 +850,278 @@ "dev": true, "license": "MIT" }, + "node_modules/@tailwindcss/node": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-x64": "4.2.2", + "@tailwindcss/oxide-freebsd-x64": "4.2.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", + "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.2.2", + "@tailwindcss/oxide": "4.2.2", + "tailwindcss": "4.2.2" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1498,6 +1772,20 @@ "dev": true, "license": "ISC" }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -1846,6 +2134,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1940,6 +2235,16 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2325,6 +2630,16 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -2677,6 +2992,27 @@ "node": ">=8" } }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", diff --git a/src/problem2/package.json b/src/problem2/package.json index fb7993eec4..d22445dbdf 100644 --- a/src/problem2/package.json +++ b/src/problem2/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "@eslint/js": "^9.39.4", + "@tailwindcss/vite": "^4.2.2", "@types/node": "^24.12.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", @@ -23,6 +24,7 @@ "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", + "tailwindcss": "^4.2.2", "typescript": "~5.9.3", "typescript-eslint": "^8.57.0", "vite": "^8.0.1" diff --git a/src/problem2/src/App.css b/src/problem2/src/App.css index f90339d8f7..e69de29bb2 100644 --- a/src/problem2/src/App.css +++ b/src/problem2/src/App.css @@ -1,184 +0,0 @@ -.counter { - font-size: 16px; - padding: 5px 10px; - border-radius: 5px; - color: var(--accent); - background: var(--accent-bg); - border: 2px solid transparent; - transition: border-color 0.3s; - margin-bottom: 24px; - - &:hover { - border-color: var(--accent-border); - } - &:focus-visible { - outline: 2px solid var(--accent); - outline-offset: 2px; - } -} - -.hero { - position: relative; - - .base, - .framework, - .vite { - inset-inline: 0; - margin: 0 auto; - } - - .base { - width: 170px; - position: relative; - z-index: 0; - } - - .framework, - .vite { - position: absolute; - } - - .framework { - z-index: 1; - top: 34px; - height: 28px; - transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) - scale(1.4); - } - - .vite { - z-index: 0; - top: 107px; - height: 26px; - width: auto; - transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) - scale(0.8); - } -} - -#center { - display: flex; - flex-direction: column; - gap: 25px; - place-content: center; - place-items: center; - flex-grow: 1; - - @media (max-width: 1024px) { - padding: 32px 20px 24px; - gap: 18px; - } -} - -#next-steps { - display: flex; - border-top: 1px solid var(--border); - text-align: left; - - & > div { - flex: 1 1 0; - padding: 32px; - @media (max-width: 1024px) { - padding: 24px 20px; - } - } - - .icon { - margin-bottom: 16px; - width: 22px; - height: 22px; - } - - @media (max-width: 1024px) { - flex-direction: column; - text-align: center; - } -} - -#docs { - border-right: 1px solid var(--border); - - @media (max-width: 1024px) { - border-right: none; - border-bottom: 1px solid var(--border); - } -} - -#next-steps ul { - list-style: none; - padding: 0; - display: flex; - gap: 8px; - margin: 32px 0 0; - - .logo { - height: 18px; - } - - a { - color: var(--text-h); - font-size: 16px; - border-radius: 6px; - background: var(--social-bg); - display: flex; - padding: 6px 12px; - align-items: center; - gap: 8px; - text-decoration: none; - transition: box-shadow 0.3s; - - &:hover { - box-shadow: var(--shadow); - } - .button-icon { - height: 18px; - width: 18px; - } - } - - @media (max-width: 1024px) { - margin-top: 20px; - flex-wrap: wrap; - justify-content: center; - - li { - flex: 1 1 calc(50% - 8px); - } - - a { - width: 100%; - justify-content: center; - box-sizing: border-box; - } - } -} - -#spacer { - height: 88px; - border-top: 1px solid var(--border); - @media (max-width: 1024px) { - height: 48px; - } -} - -.ticks { - position: relative; - width: 100%; - - &::before, - &::after { - content: ''; - position: absolute; - top: -4.5px; - border: 5px solid transparent; - } - - &::before { - left: 0; - border-left-color: var(--border); - } - &::after { - right: 0; - border-right-color: var(--border); - } -} diff --git a/src/problem2/src/App.tsx b/src/problem2/src/App.tsx index 46a59920ab..17324bc392 100644 --- a/src/problem2/src/App.tsx +++ b/src/problem2/src/App.tsx @@ -1,120 +1,10 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from './assets/vite.svg' -import heroImg from './assets/hero.png' import './App.css' function App() { - const [count, setCount] = useState(0) - return ( - <> -
-
- - React logo - Vite logo -
-
-

Get started

-

- Edit src/App.tsx and save to test HMR -

-
- -
- -
- -
-
- -

Documentation

-

Your questions, answered

- -
-
- -

Connect with us

-

Join the Vite community

- -
-
- -
-
- +
+

Curency Swap

+
) } diff --git a/src/problem2/src/index.css b/src/problem2/src/index.css index 5fb3313022..a461c505f1 100644 --- a/src/problem2/src/index.css +++ b/src/problem2/src/index.css @@ -1,111 +1 @@ -:root { - --text: #6b6375; - --text-h: #08060d; - --bg: #fff; - --border: #e5e4e7; - --code-bg: #f4f3ec; - --accent: #aa3bff; - --accent-bg: rgba(170, 59, 255, 0.1); - --accent-border: rgba(170, 59, 255, 0.5); - --social-bg: rgba(244, 243, 236, 0.5); - --shadow: - rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; - - --sans: system-ui, 'Segoe UI', Roboto, sans-serif; - --heading: system-ui, 'Segoe UI', Roboto, sans-serif; - --mono: ui-monospace, Consolas, monospace; - - font: 18px/145% var(--sans); - letter-spacing: 0.18px; - color-scheme: light dark; - color: var(--text); - background: var(--bg); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - @media (max-width: 1024px) { - font-size: 16px; - } -} - -@media (prefers-color-scheme: dark) { - :root { - --text: #9ca3af; - --text-h: #f3f4f6; - --bg: #16171d; - --border: #2e303a; - --code-bg: #1f2028; - --accent: #c084fc; - --accent-bg: rgba(192, 132, 252, 0.15); - --accent-border: rgba(192, 132, 252, 0.5); - --social-bg: rgba(47, 48, 58, 0.5); - --shadow: - rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; - } - - #social .button-icon { - filter: invert(1) brightness(2); - } -} - -#root { - width: 1126px; - max-width: 100%; - margin: 0 auto; - text-align: center; - border-inline: 1px solid var(--border); - min-height: 100svh; - display: flex; - flex-direction: column; - box-sizing: border-box; -} - -body { - margin: 0; -} - -h1, -h2 { - font-family: var(--heading); - font-weight: 500; - color: var(--text-h); -} - -h1 { - font-size: 56px; - letter-spacing: -1.68px; - margin: 32px 0; - @media (max-width: 1024px) { - font-size: 36px; - margin: 20px 0; - } -} -h2 { - font-size: 24px; - line-height: 118%; - letter-spacing: -0.24px; - margin: 0 0 8px; - @media (max-width: 1024px) { - font-size: 20px; - } -} -p { - margin: 0; -} - -code, -.counter { - font-family: var(--mono); - display: inline-flex; - border-radius: 4px; - color: var(--text-h); -} - -code { - font-size: 15px; - line-height: 135%; - padding: 4px 8px; - background: var(--code-bg); -} +@import "tailwindcss"; \ No newline at end of file diff --git a/src/problem2/vite.config.ts b/src/problem2/vite.config.ts index 8b0f57b91a..b726b922a8 100644 --- a/src/problem2/vite.config.ts +++ b/src/problem2/vite.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' -// https://vite.dev/config/ export default defineConfig({ - plugins: [react()], -}) + plugins: [react(), tailwindcss()], +}) \ No newline at end of file From eaffdeb19cdef1fa238838961d3bce5e1c8069f9 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Wed, 25 Mar 2026 12:49:46 +0700 Subject: [PATCH 6/8] feat(code-challenge): Problem2 - Add logic to swap --- src/problem2/components.json | 25 + src/problem2/eslint.config.js | 3 + src/problem2/package-lock.json | 5715 ++++++++++++++++- src/problem2/package.json | 12 +- src/problem2/src/App.css | 0 src/problem2/src/App.tsx | 37 +- src/problem2/src/apis/index.ts | 13 + .../components/TokenExchange/NumberInput.tsx | 36 + .../TokenExchange/TokenExchangeForm.tsx | 106 + .../TokenExchangeFormSkeleton.tsx | 26 + .../components/TokenExchange/TokenSelect.tsx | 38 + .../src/components/TokenExchange/index.tsx | 4 + src/problem2/src/components/ui/button.tsx | 67 + src/problem2/src/components/ui/field.tsx | 231 + src/problem2/src/components/ui/input.tsx | 19 + src/problem2/src/components/ui/label.tsx | 22 + src/problem2/src/components/ui/select.tsx | 190 + src/problem2/src/components/ui/separator.tsx | 28 + src/problem2/src/components/ui/skeleton.tsx | 13 + src/problem2/src/components/ui/sonner.tsx | 47 + src/problem2/src/constants/index.ts | 1 + src/problem2/src/hooks/index.ts | 2 + src/problem2/src/hooks/useSwapTokens.ts | 111 + src/problem2/src/hooks/useTokens.ts | 32 + src/problem2/src/index.css | 133 +- src/problem2/src/lib/utils.ts | 6 + src/problem2/src/main.tsx | 6 +- src/problem2/src/services/ExchangeService.ts | 14 + src/problem2/src/types/index.ts | 12 + src/problem2/src/utils/index.ts | 81 + src/problem2/tsconfig.app.json | 24 +- src/problem2/tsconfig.json | 20 +- src/problem2/vite.config.ts | 6 + 33 files changed, 6845 insertions(+), 235 deletions(-) create mode 100644 src/problem2/components.json delete mode 100644 src/problem2/src/App.css create mode 100644 src/problem2/src/apis/index.ts create mode 100644 src/problem2/src/components/TokenExchange/NumberInput.tsx create mode 100644 src/problem2/src/components/TokenExchange/TokenExchangeForm.tsx create mode 100644 src/problem2/src/components/TokenExchange/TokenExchangeFormSkeleton.tsx create mode 100644 src/problem2/src/components/TokenExchange/TokenSelect.tsx create mode 100644 src/problem2/src/components/TokenExchange/index.tsx create mode 100644 src/problem2/src/components/ui/button.tsx create mode 100644 src/problem2/src/components/ui/field.tsx create mode 100644 src/problem2/src/components/ui/input.tsx create mode 100644 src/problem2/src/components/ui/label.tsx create mode 100644 src/problem2/src/components/ui/select.tsx create mode 100644 src/problem2/src/components/ui/separator.tsx create mode 100644 src/problem2/src/components/ui/skeleton.tsx create mode 100644 src/problem2/src/components/ui/sonner.tsx create mode 100644 src/problem2/src/constants/index.ts create mode 100644 src/problem2/src/hooks/index.ts create mode 100644 src/problem2/src/hooks/useSwapTokens.ts create mode 100644 src/problem2/src/hooks/useTokens.ts create mode 100644 src/problem2/src/lib/utils.ts create mode 100644 src/problem2/src/services/ExchangeService.ts create mode 100644 src/problem2/src/types/index.ts create mode 100644 src/problem2/src/utils/index.ts diff --git a/src/problem2/components.json b/src/problem2/components.json new file mode 100644 index 0000000000..7eb44aa30e --- /dev/null +++ b/src/problem2/components.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "radix-nova", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "rtl": false, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "menuColor": "default", + "menuAccent": "subtle", + "registries": {} +} \ No newline at end of file diff --git a/src/problem2/eslint.config.js b/src/problem2/eslint.config.js index 5e6b472f58..8ffe74b12c 100644 --- a/src/problem2/eslint.config.js +++ b/src/problem2/eslint.config.js @@ -19,5 +19,8 @@ export default defineConfig([ ecmaVersion: 2020, globals: globals.browser, }, + rules: { + "react-refresh/only-export-components": "off", + } }, ]) diff --git a/src/problem2/package-lock.json b/src/problem2/package-lock.json index 96acdaa031..9314b0e3e8 100644 --- a/src/problem2/package-lock.json +++ b/src/problem2/package-lock.json @@ -8,8 +8,18 @@ "name": "problem2", "version": "0.0.0", "dependencies": { + "@fontsource-variable/geist": "^5.2.8", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^1.0.1", + "next-themes": "^0.4.6", + "radix-ui": "^1.4.3", "react": "^19.2.4", - "react-dom": "^19.2.4" + "react-dom": "^19.2.4", + "shadcn": "^4.1.0", + "sonner": "^2.0.7", + "tailwind-merge": "^3.5.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { "@eslint/js": "^9.39.4", @@ -32,7 +42,6 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", @@ -47,7 +56,6 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -57,7 +65,6 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", @@ -88,7 +95,6 @@ "version": "7.29.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.29.0", @@ -101,11 +107,22 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.28.6", @@ -118,21 +135,53 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.28.6", @@ -146,7 +195,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.28.6", @@ -160,11 +208,61 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -174,7 +272,6 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -184,7 +281,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -194,7 +290,6 @@ "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", @@ -208,7 +303,6 @@ "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" @@ -220,11 +314,94 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/template": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.28.6", @@ -239,7 +416,6 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", @@ -258,7 +434,6 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -268,6 +443,174 @@ "node": ">=6.9.0" } }, + "node_modules/@dotenvx/dotenvx": { + "version": "1.57.2", + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.57.2.tgz", + "integrity": "sha512-lv9+UZPnl/KOvShepevLWm3+/wc1It5kgO5Q580evnvOFMZcgKVEYFwxlL7Ohl9my1yjTsWo28N3PJYUEO8wFQ==", + "license": "BSD-3-Clause", + "dependencies": { + "commander": "^11.1.0", + "dotenv": "^17.2.1", + "eciesjs": "^0.4.10", + "execa": "^5.1.1", + "fdir": "^6.2.0", + "ignore": "^5.3.0", + "object-treeify": "1.1.33", + "picomatch": "^4.0.2", + "which": "^4.0.0" + }, + "bin": { + "dotenvx": "src/cli/dotenvx.js" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@dotenvx/dotenvx/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@ecies/ciphers": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.5.tgz", + "integrity": "sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==", + "license": "MIT", + "engines": { + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + }, + "peerDependencies": { + "@noble/ciphers": "^1.0.0" + } + }, "node_modules/@emnapi/core": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", @@ -459,6 +802,65 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@fontsource-variable/geist": { + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@fontsource-variable/geist/-/geist-5.2.8.tgz", + "integrity": "sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@hono/node-server": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.11.tgz", + "integrity": "sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==", + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -511,83 +913,1834 @@ "url": "https://github.com/sponsors/nzakas" } }, - "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, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "license": "MIT", - "dependencies": { + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz", + "integrity": "sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==", + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "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/@modelcontextprotocol/sdk/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==", + "license": "MIT" + }, + "node_modules/@mswjs/interceptors": { + "version": "0.41.3", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz", + "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==", + "license": "MIT", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "license": "MIT" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "license": "MIT", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "license": "MIT" + }, + "node_modules/@oxc-project/types": { + "version": "0.122.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", + "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", + "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", + "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", + "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", + "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", + "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", + "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-one-time-password-field": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", + "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-password-toggle-field": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", + "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", + "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toolbar": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", + "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-toggle-group": "1.1.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "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, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "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/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "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, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@napi-rs/wasm-runtime": { + "node_modules/@radix-ui/react-use-size": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", - "dev": true, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", "license": "MIT", - "optional": true, "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", - "@tybys/wasm-util": "^0.10.1" + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@oxc-project/types": { - "version": "0.122.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", - "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", - "dev": true, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.0.0-rc.11", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.11.tgz", @@ -850,6 +3003,24 @@ "dev": true, "license": "MIT" }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@tailwindcss/node": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", @@ -1122,6 +3293,53 @@ "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, + "node_modules/@ts-morph/common": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.27.0.tgz", + "integrity": "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.3", + "minimatch": "^10.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1151,7 +3369,7 @@ "version": "24.12.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz", "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -1161,7 +3379,7 @@ "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -1171,12 +3389,24 @@ "version": "19.2.3", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "dev": true, + "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@types/statuses": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz", + "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==", + "license": "MIT" + }, + "node_modules/@types/validate-npm-package-name": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz", + "integrity": "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.57.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", @@ -1498,6 +3728,19 @@ } } }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", @@ -1521,6 +3764,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.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", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", @@ -1538,11 +3790,61 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "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/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==", + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1558,9 +3860,32 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1572,7 +3897,6 @@ "version": "2.10.10", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz", "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==", - "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -1581,6 +3905,30 @@ "node": ">=6.0.0" } }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -1592,11 +3940,22 @@ "concat-map": "0.0.1" } }, + "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==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.28.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1626,11 +3985,63 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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==", + "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/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1640,7 +4051,6 @@ "version": "1.0.30001781", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz", "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1674,11 +4084,145 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1691,9 +4235,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1701,18 +4253,99 @@ "dev": true, "license": "MIT" }, + "node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "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", @@ -1723,18 +4356,38 @@ "node": ">= 8" } }, + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1748,6 +4401,20 @@ } } }, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1755,6 +4422,64 @@ "dev": true, "license": "MIT" }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==", + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1765,13 +4490,91 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "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==", + "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/eciesjs": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.18.tgz", + "integrity": "sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ==", + "license": "MIT", + "dependencies": { + "@ecies/ciphers": "^0.2.5", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "^1.9.7", + "@noble/hashes": "^1.8.0" + }, + "engines": { + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + } + }, + "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==", + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.322", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.322.tgz", "integrity": "sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==", - "dev": true, "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/enhanced-resolve": { "version": "5.20.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", @@ -1786,16 +4589,69 @@ "node": ">=10.13.0" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "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==", + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1947,6 +4803,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", @@ -1993,13 +4862,157 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.1.tgz", + "integrity": "sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==", + "license": "MIT", + "dependencies": { + "ip-address": "10.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, "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-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2014,11 +5027,35 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -2032,6 +5069,44 @@ } } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -2045,6 +5120,39 @@ "node": ">=16.0.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==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2056,56 +5164,209 @@ "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuzzysort": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fuzzysort/-/fuzzysort-3.1.0.tgz", + "integrity": "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==", + "license": "MIT" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-own-enumerable-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-own-enumerable-keys/-/get-own-enumerable-keys-1.0.0.tgz", + "integrity": "sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==", + "license": "MIT", + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", - "dev": true, - "license": "ISC" - }, - "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": ">= 0.4" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/glob-parent": { @@ -2134,13 +5395,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "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/graphql": { + "version": "16.13.2", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.13.2.tgz", + "integrity": "sha512-5bJ+nf/UCpAjHM8i06fl7eLyVC9iuNAjm9qzkiu2ZGhM0VscSvS6WDPfAwkdkBuoXGM9FJSbKl6wylMwP9Ktig==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2151,6 +5432,36 @@ "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "license": "MIT" + }, "node_modules/hermes-estree": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", @@ -2168,11 +5479,77 @@ "hermes-estree": "0.25.1" } }, + "node_modules/hono": { + "version": "4.12.9", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.9.tgz", + "integrity": "sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, + "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==", + "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/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", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -2182,7 +5559,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -2205,21 +5581,73 @@ "node": ">=0.8.19" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "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==", + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "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" @@ -2228,11 +5656,148 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-3.0.0.tgz", + "integrity": "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "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/jiti": { @@ -2245,18 +5810,25 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jose": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz", + "integrity": "sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -2269,7 +5841,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -2285,6 +5856,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2292,6 +5869,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "license": "BSD-2-Clause" + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -2303,13 +5886,24 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" }, - "engines": { - "node": ">=6" + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/keyv": { @@ -2322,6 +5916,15 @@ "json-buffer": "3.0.1" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2597,6 +6200,12 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2620,16 +6229,64 @@ "dev": true, "license": "MIT" }, + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.0.1.tgz", + "integrity": "sha512-lih7tKEczCYOQjVEzpFuxEuNzlwf+1yhvlMlEkGWJM3va8Pugv8bYXc/pRtcjPncaP7k84X0Pt/71ufxvqEPtQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -2640,6 +6297,122 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/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==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -2650,48 +6423,291 @@ "brace-expansion": "^1.1.7" }, "engines": { - "node": "*" + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/msw": { + "version": "2.12.14", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.12.14.tgz", + "integrity": "sha512-4KXa4nVBIBjbDbd7vfQNuQ25eFxug0aropCQFoI0JdOBuJWamkT1yLVIWReFI8SiTRc+H1hKzaNk+cLk2N9rtQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@inquirer/confirm": "^5.0.0", + "@mswjs/interceptors": "^0.41.2", + "@open-draft/deferred-promise": "^2.2.0", + "@types/statuses": "^2.0.6", + "cookie": "^1.0.2", + "graphql": "^16.12.0", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "path-to-regexp": "^6.3.0", + "picocolors": "^1.1.1", + "rettime": "^0.10.1", + "statuses": "^2.0.2", + "strict-event-emitter": "^0.5.1", + "tough-cookie": "^6.0.0", + "type-fest": "^5.2.0", + "until-async": "^3.0.2", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.8.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-treeify": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "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==", - "dev": true, - "license": "MIT" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "mimic-function": "^5.0.0" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", - "dev": true, - "license": "MIT" + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/optionator": { "version": "0.9.4", @@ -2711,6 +6727,47 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/outvariant": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "license": "MIT" + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2747,7 +6804,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -2756,6 +6812,51 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2770,24 +6871,27 @@ "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-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "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": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -2796,11 +6900,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/postcss": { "version": "8.5.8", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -2817,65 +6929,410 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/radix-ui": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", + "integrity": "sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-accessible-icon": "1.1.7", + "@radix-ui/react-accordion": "1.2.12", + "@radix-ui/react-alert-dialog": "1.1.15", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-aspect-ratio": "1.1.7", + "@radix-ui/react-avatar": "1.1.10", + "@radix-ui/react-checkbox": "1.3.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-context-menu": "2.2.16", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-dropdown-menu": "2.1.16", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-form": "0.1.8", + "@radix-ui/react-hover-card": "1.1.15", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-menubar": "1.1.16", + "@radix-ui/react-navigation-menu": "1.2.14", + "@radix-ui/react-one-time-password-field": "0.1.8", + "@radix-ui/react-password-toggle-field": "0.1.3", + "@radix-ui/react-popover": "1.1.15", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-progress": "1.1.7", + "@radix-ui/react-radio-group": "1.3.8", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-scroll-area": "1.2.10", + "@radix-ui/react-select": "2.2.6", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-slider": "1.3.6", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-switch": "1.2.6", + "@radix-ui/react-tabs": "1.1.13", + "@radix-ui/react-toast": "1.2.15", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-toggle-group": "1.1.11", + "@radix-ui/react-toolbar": "1.1.11", + "@radix-ui/react-tooltip": "1.2.8", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-escape-keydown": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, + "node_modules/recast": { + "version": "0.23.11", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">= 4" } }, - "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "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", - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.4" + "engines": { + "node": ">=0.10.0" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rettime": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.10.1.tgz", + "integrity": "sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==", + "license": "MIT" + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rolldown": { "version": "1.0.0-rc.11", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.11.tgz", @@ -2917,6 +7374,73 @@ "dev": true, "license": "MIT" }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -2927,17 +7451,120 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shadcn": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/shadcn/-/shadcn-4.1.0.tgz", + "integrity": "sha512-3zETJ+0Ezj69FS6RL0HOkLKKAR5yXisXx1iISJdfLQfrUqj/VIQlanQi1Ukk+9OE+XHZVj4FQNTBSfbr2CyCYg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/plugin-transform-typescript": "^7.28.0", + "@babel/preset-typescript": "^7.27.1", + "@dotenvx/dotenvx": "^1.48.4", + "@modelcontextprotocol/sdk": "^1.26.0", + "@types/validate-npm-package-name": "^4.0.2", + "browserslist": "^4.26.2", + "commander": "^14.0.0", + "cosmiconfig": "^9.0.0", + "dedent": "^1.6.0", + "deepmerge": "^4.3.1", + "diff": "^8.0.2", + "execa": "^9.6.0", + "fast-glob": "^3.3.3", + "fs-extra": "^11.3.1", + "fuzzysort": "^3.1.0", + "https-proxy-agent": "^7.0.6", + "kleur": "^4.1.5", + "msw": "^2.10.4", + "node-fetch": "^3.3.2", + "open": "^11.0.0", + "ora": "^8.2.0", + "postcss": "^8.5.6", + "postcss-selector-parser": "^7.1.0", + "prompts": "^2.4.2", + "recast": "^0.23.11", + "stringify-object": "^5.0.0", + "tailwind-merge": "^3.0.1", + "ts-morph": "^26.0.0", + "tsconfig-paths": "^4.2.0", + "validate-npm-package-name": "^7.0.1", + "zod": "^3.24.1", + "zod-to-json-schema": "^3.24.6" + }, + "bin": { + "shadcn": "dist/index.js" + } + }, + "node_modules/shadcn/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "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" @@ -2950,22 +7577,226 @@ "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/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "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.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "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==", + "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==", + "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/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sonner": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "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==", + "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==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stringify-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-5.0.0.tgz", + "integrity": "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-keys": "^1.0.0", + "is-obj": "^3.0.0", + "is-regexp": "^3.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/stringify-object?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2992,6 +7823,28 @@ "node": ">=8" } }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-merge": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", @@ -3013,6 +7866,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -3030,6 +7889,57 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tldts": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.27.tgz", + "integrity": "sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==", + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.27" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.27.tgz", + "integrity": "sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==", + "license": "MIT" + }, + "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==", + "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==", + "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", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/ts-api-utils": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", @@ -3043,13 +7953,44 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-morph": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-26.0.0.tgz", + "integrity": "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==", + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.27.0", + "code-block-writer": "^13.0.3" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "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", - "optional": true + "license": "0BSD" + }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } }, "node_modules/type-check": { "version": "0.4.0", @@ -3064,11 +8005,40 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", + "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -3106,14 +8076,52 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/until-async": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/until-async/-/until-async-3.0.2.tgz", + "integrity": "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/kettanaito" + } + }, "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", @@ -3150,6 +8158,82 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.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==", + "license": "MIT" + }, + "node_modules/validate-npm-package-name": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vite": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.2.tgz", @@ -3228,11 +8312,19 @@ } } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "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" @@ -3254,13 +8346,166 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, "license": "ISC" }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -3274,16 +8519,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-to-json-schema": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25 || ^4" + } + }, "node_modules/zod-validation-error": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", diff --git a/src/problem2/package.json b/src/problem2/package.json index d22445dbdf..260ed4c852 100644 --- a/src/problem2/package.json +++ b/src/problem2/package.json @@ -10,8 +10,18 @@ "preview": "vite preview" }, "dependencies": { + "@fontsource-variable/geist": "^5.2.8", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^1.0.1", + "next-themes": "^0.4.6", + "radix-ui": "^1.4.3", "react": "^19.2.4", - "react-dom": "^19.2.4" + "react-dom": "^19.2.4", + "shadcn": "^4.1.0", + "sonner": "^2.0.7", + "tailwind-merge": "^3.5.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { "@eslint/js": "^9.39.4", diff --git a/src/problem2/src/App.css b/src/problem2/src/App.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/problem2/src/App.tsx b/src/problem2/src/App.tsx index 17324bc392..4e80be3a36 100644 --- a/src/problem2/src/App.tsx +++ b/src/problem2/src/App.tsx @@ -1,9 +1,40 @@ -import './App.css' +import { useState } from 'react' +import { toast } from "sonner" + +import { TokenExchangeForm, TokenExchangeFormSkeleton } from '@/components/TokenExchange' +import { useTokens } from '@/hooks' +import { exchangeService } from '@/services/ExchangeService' +import type { IToken } from '@/types' function App() { + const [isSubmitting, setIsSubmitting] = useState(false) + + const { data: tokens, isLoading: isTokenLoading } = useTokens() + + async function handleSubmit(fromToken: IToken, toToken: IToken, amount: number) { + setIsSubmitting(true) + try { + await exchangeService.exchange(fromToken, toToken, amount) + toast.success("Swap successfully!") + } catch (error) { + console.log("[ERROR] Failed to swap tokens", error) + toast.error("Failed to swap tokens! Please try again later!") + } finally { + setIsSubmitting(false) + } + } + return ( -
-

Curency Swap

+
+

Curency Swap

+ + { + isTokenLoading ? ( + + ) : ( + + ) + }
) } diff --git a/src/problem2/src/apis/index.ts b/src/problem2/src/apis/index.ts new file mode 100644 index 0000000000..a7fc7b6396 --- /dev/null +++ b/src/problem2/src/apis/index.ts @@ -0,0 +1,13 @@ +import { TOKEN_API_URL } from "@/constants"; +import type { RawToken } from "@/types"; + +export async function getTokens(): Promise { + try { + const response = await fetch(TOKEN_API_URL); + const data = await response.json(); + return data; + } catch (error) { + console.error("[ERROR] Failed to fetch tokens", error); + return []; + } +} \ No newline at end of file diff --git a/src/problem2/src/components/TokenExchange/NumberInput.tsx b/src/problem2/src/components/TokenExchange/NumberInput.tsx new file mode 100644 index 0000000000..a7c7550292 --- /dev/null +++ b/src/problem2/src/components/TokenExchange/NumberInput.tsx @@ -0,0 +1,36 @@ +import { useEffect, useState } from "react" + +import { Input } from "@/components/ui/input" + +type Props = { + value: number + onChange: (value: number) => void +} + +export function NumberInput({ value, onChange }: Props) { + const [input, setInput] = useState(value.toString()) + + useEffect(() => { + setInput(value.toString()) + }, [value]) + + const handleChange = (e: React.ChangeEvent) => { + const val = e.target.value + + // Only allow numbers and decimal points + if (!/^\d*\.?\d*$/.test(val)) return + + setInput(val) + + onChange(Number(val)) + } + + return ( + + ) +} diff --git a/src/problem2/src/components/TokenExchange/TokenExchangeForm.tsx b/src/problem2/src/components/TokenExchange/TokenExchangeForm.tsx new file mode 100644 index 0000000000..7f070ecb6c --- /dev/null +++ b/src/problem2/src/components/TokenExchange/TokenExchangeForm.tsx @@ -0,0 +1,106 @@ +import { ArrowDownUp } from 'lucide-react' +import { useEffect, useMemo, useState } from 'react' + +import { NumberInput, TokenSelect } from '@/components/TokenExchange' +import { Button } from '@/components/ui/button' +import { Field, FieldError, FieldLabel } from '@/components/ui/field' +import { useSwapTokens } from '@/hooks' +import type { IToken } from '@/types' +import { validateExchange } from '@/utils' + +interface Props { + tokens: IToken[] + isSubmitting: boolean + onExchange: (fromToken: IToken, toToken: IToken, amount: number) => void +} + +export function TokenExchangeForm({ tokens, isSubmitting, onExchange }: Props) { + const [errors, setErrors] = useState | null>(null) + + const tokenByCurrency = useMemo(() => { + return tokens.reduce((acc, token) => { + acc[token.currency] = token + return acc + }, {} as Record) + }, [tokens]) + + const [state, dispatch] = useSwapTokens() + + useEffect(() => { + // eslint-disable-next-line react-hooks/set-state-in-effect + setErrors(null); + }, [state]) + + function handleSelectFromToken(value: string) { + dispatch({ type: "SET_FROM_TOKEN", payload: tokenByCurrency[value] }) + } + + function handleSelectToToken(value: string) { + dispatch({ type: "SET_TO_TOKEN", payload: tokenByCurrency[value] }) + } + + function handleTokenSendChange(value: number) { + dispatch({ type: "SET_TOKEN_SEND", payload: value }) + } + + function handleTokenReceiveChange(value: number) { + dispatch({ type: "SET_TOKEN_RECEIVE", payload: value }) + } + + function handleRevert() { + dispatch({ type: "SWAP_TOKENS" }) + } + + function handleSubmit() { + const newErrors = validateExchange(state.fromToken, state.toToken, state.tokenSend, state.tokenReceive) + setErrors(newErrors) + + if (Object.keys(newErrors).length > 0) return + + onExchange(state.fromToken!, state.toToken!, state.tokenSend) + } + + return ( +
+ + From Token + + + + + + Amount to Send + + + + + + + + To Token + + + + + + Amount to Receive + + + + + +
+ ) +} diff --git a/src/problem2/src/components/TokenExchange/TokenExchangeFormSkeleton.tsx b/src/problem2/src/components/TokenExchange/TokenExchangeFormSkeleton.tsx new file mode 100644 index 0000000000..40d497d24c --- /dev/null +++ b/src/problem2/src/components/TokenExchange/TokenExchangeFormSkeleton.tsx @@ -0,0 +1,26 @@ +import { Skeleton } from '@/components/ui/skeleton' + +function FieldSkeleton() { + return ( +
+ + +
+ ) +} + +export function TokenExchangeFormSkeleton() { + return ( +
+ + + + + + + + + +
+ ) +} diff --git a/src/problem2/src/components/TokenExchange/TokenSelect.tsx b/src/problem2/src/components/TokenExchange/TokenSelect.tsx new file mode 100644 index 0000000000..4faefd7349 --- /dev/null +++ b/src/problem2/src/components/TokenExchange/TokenSelect.tsx @@ -0,0 +1,38 @@ +import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; +import type { IToken } from '@/types'; + +interface Props { + data: IToken[] + value: string, + onSelect: (value: string) => void +} + +export function TokenSelect({ + data, + value, + onSelect, +}: Props) { + function handleSelect(value: string) { + onSelect(value); + } + + return ( + + ) +} diff --git a/src/problem2/src/components/TokenExchange/index.tsx b/src/problem2/src/components/TokenExchange/index.tsx new file mode 100644 index 0000000000..30723953b8 --- /dev/null +++ b/src/problem2/src/components/TokenExchange/index.tsx @@ -0,0 +1,4 @@ +export * from './NumberInput' +export * from './TokenExchangeForm' +export * from './TokenExchangeFormSkeleton' +export * from './TokenSelect' diff --git a/src/problem2/src/components/ui/button.tsx b/src/problem2/src/components/ui/button.tsx new file mode 100644 index 0000000000..b5bf8c8bf8 --- /dev/null +++ b/src/problem2/src/components/ui/button.tsx @@ -0,0 +1,67 @@ +import { cva, type VariantProps } from "class-variance-authority" +import { Slot } from "radix-ui" +import * as React from "react" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80", + outline: + "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground", + ghost: + "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50", + destructive: + "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: + "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2", + xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3", + sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5", + lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3", + icon: "size-8", + "icon-xs": + "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3", + "icon-sm": + "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg", + "icon-lg": "size-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +function Button({ + className, + variant = "default", + size = "default", + asChild = false, + ...props +}: React.ComponentProps<"button"> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot.Root : "button" + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/src/problem2/src/components/ui/field.tsx b/src/problem2/src/components/ui/field.tsx new file mode 100644 index 0000000000..3c2f100815 --- /dev/null +++ b/src/problem2/src/components/ui/field.tsx @@ -0,0 +1,231 @@ +import { cva, type VariantProps } from "class-variance-authority" +import { useMemo } from "react" + +import { Label } from "@/components/ui/label" +import { Separator } from "@/components/ui/separator" +import { cn } from "@/lib/utils" + +function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) { + return ( +
[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", + className + )} + {...props} + /> + ) +} + +function FieldLegend({ + className, + variant = "legend", + ...props +}: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) { + return ( + + ) +} + +function FieldGroup({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +const fieldVariants = cva( + "group/field flex w-full gap-2 data-[invalid=true]:text-destructive", + { + variants: { + orientation: { + vertical: "flex-col *:w-full [&>.sr-only]:w-auto", + horizontal: + "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", + responsive: + "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", + }, + }, + defaultVariants: { + orientation: "vertical", + }, + } +) + +function Field({ + className, + orientation = "vertical", + ...props +}: React.ComponentProps<"div"> & VariantProps) { + return ( +
+ ) +} + +function FieldContent({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function FieldLabel({ + className, + ...props +}: React.ComponentProps) { + return ( +