diff --git a/.tangled/workflows/web.yml b/.tangled/workflows/web.yml new file mode 100644 index 00000000..1d092178 --- /dev/null +++ b/.tangled/workflows/web.yml @@ -0,0 +1,49 @@ +when: + - event: ["push", "pull_request"] + branch: master + paths: + - web/** + - input.css + - tailwind.config.js + - flake.nix + - flake.lock + - nix/pkgs/web-static-files.nix + +engine: microvm +image: nixos + +dependencies: + - nodejs + +steps: + - name: install web deps + command: | + cd web + corepack pnpm install --frozen-lockfile + + - name: lint web + command: | + cd web + corepack pnpm run lint + + - name: typecheck web + command: | + cd web + corepack pnpm run check + + - name: test web + command: | + cd web + corepack pnpm run test:unit -- --run + + - name: sync web static assets + command: | + out=$(nix build .#web-static-files --no-link --print-out-paths) + mkdir -p web/static + rm -rf web/static/fonts web/static/logos + cp -fr --no-preserve=ownership,mode "$out"/* web/static + + - name: build web + command: | + cd web + corepack pnpm run build diff --git a/flake.nix b/flake.nix index 834e529a..d0ca393b 100644 --- a/flake.nix +++ b/flake.nix @@ -152,6 +152,9 @@ appview-static-files = self.callPackage ./nix/pkgs/appview-static-files.nix { inherit htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src actor-typeahead-src mermaid-src hls-src mathjax-src; }; + web-static-files = self.callPackage ./nix/pkgs/web-static-files.nix { + inherit inter-fonts-src ibm-plex-mono-src; + }; appview = self.callPackage ./nix/pkgs/appview.nix {}; blog = self.callPackage ./nix/pkgs/blog.nix {}; docs = self.callPackage ./nix/pkgs/docs.nix { @@ -208,6 +211,7 @@ (packages) appview appview-static-files + web-static-files blog lexgen goat @@ -367,6 +371,7 @@ packages'.tap pkgs.e2fsprogs pkgs.util-linux + pkgs.pnpm ] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ pkgs.parted @@ -380,6 +385,9 @@ [ -d appview/pages/static/icons ] && [ ! -w appview/pages/static/icons ] && chmod -R u+rwX appview/pages/static # no preserve is needed because watch-tailwind will want to be able to overwrite cp -fr --no-preserve=ownership,mode ${packages'.appview-static-files}/* appview/pages/static + mkdir -p web/static + rm -rf web/static/fonts web/static/logos + cp -fr --no-preserve=ownership,mode ${packages'.web-static-files}/* web/static export TANGLED_OAUTH_CLIENT_KID="$(date +%s)" export TANGLED_OAUTH_CLIENT_SECRET="$(${packages'.goat}/bin/goat key generate -t P-256 | grep -A1 "Secret Key" | tail -n1 | awk '{print $1}')" # Make xcrun (Nix stub) able to find ld from the system Command Line Tools. diff --git a/nix/pkgs/web-static-files.nix b/nix/pkgs/web-static-files.nix new file mode 100644 index 00000000..3106ded4 --- /dev/null +++ b/nix/pkgs/web-static-files.nix @@ -0,0 +1,18 @@ +{ + runCommandLocal, + inter-fonts-src, + ibm-plex-mono-src, + dolly, +}: +runCommandLocal "web-static-files" {} '' + mkdir -p $out/{fonts,logos} + + cp -f ${inter-fonts-src}/web/InterVariable*.woff2 $out/fonts/ + cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 $out/fonts/ + cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono*.woff2 $out/fonts/ + + ${dolly}/bin/dolly -output $out/logos/dolly.png -size 180 + ${dolly}/bin/dolly -output $out/logos/dolly.ico -size 48 + ${dolly}/bin/dolly -output $out/logos/dolly.svg -color currentColor -favicon + ${dolly}/bin/dolly -output $out/logos/logotype.svg -kind logotype -color currentColor +'' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..9b60ae17 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 00000000..43fc6b67 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,26 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* +# Playwright +test-results +.vscode/ diff --git a/web/.npmrc b/web/.npmrc new file mode 100644 index 00000000..b6f27f13 --- /dev/null +++ b/web/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/web/.prettierignore b/web/.prettierignore new file mode 100644 index 00000000..7d74fe24 --- /dev/null +++ b/web/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/web/.vscode/extensions.json b/web/.vscode/extensions.json new file mode 100644 index 00000000..175f389e --- /dev/null +++ b/web/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "svelte.svelte-vscode", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "bradlc.vscode-tailwindcss" + ] +} diff --git a/web/.vscode/settings.json b/web/.vscode/settings.json new file mode 100644 index 00000000..bc31e155 --- /dev/null +++ b/web/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.css": "tailwindcss" + } +} diff --git a/web/Containerfile b/web/Containerfile new file mode 100644 index 00000000..9e134490 --- /dev/null +++ b/web/Containerfile @@ -0,0 +1,23 @@ +FROM node:24-slim AS deps +WORKDIR /app +RUN corepack enable +COPY package.json pnpm-lock.yaml ./ +RUN corepack pnpm install --frozen-lockfile + +FROM node:24-slim AS build +WORKDIR /app +RUN corepack enable +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN corepack pnpm run build + +FROM node:24-slim +WORKDIR /app +ENV NODE_ENV=production +ENV HOST=0.0.0.0 +ENV PORT=3000 +COPY --from=build /app/build ./build +COPY --from=build /app/package.json ./package.json +COPY --from=build /app/node_modules ./node_modules +EXPOSE 3000 +CMD ["node", "build"] diff --git a/web/README.md b/web/README.md new file mode 100644 index 00000000..1b0d1625 --- /dev/null +++ b/web/README.md @@ -0,0 +1,42 @@ +# sv + +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```sh +# create a new project +npx sv create my-app +``` + +To recreate this project with the same configuration: + +```sh +# recreate this project +npx sv@0.16.2 create --template minimal --types ts --add prettier eslint vitest="usages:unit" playwright tailwindcss="plugins:typography" sveltekit-adapter="adapter:node" --no-install web +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```sh +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/web/eslint.config.js b/web/eslint.config.js new file mode 100644 index 00000000..ed359994 --- /dev/null +++ b/web/eslint.config.js @@ -0,0 +1,41 @@ +import prettier from 'eslint-config-prettier'; +import path from 'node:path'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import { defineConfig, includeIgnoreFile } from 'eslint/config'; +import globals from 'globals'; +import ts from 'typescript-eslint'; + +const gitignorePath = path.resolve(import.meta.dirname, '.gitignore'); + +export default defineConfig( + includeIgnoreFile(gitignorePath), + js.configs.recommended, + ts.configs.recommended, + svelte.configs.recommended, + prettier, + svelte.configs.prettier, + { + languageOptions: { globals: { ...globals.browser, ...globals.node } }, + rules: { + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + 'no-undef': 'off' + } + }, + { + files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], + languageOptions: { + parserOptions: { + projectService: true, + extraFileExtensions: ['.svelte'], + parser: ts.parser + } + } + }, + { + // Override or add rule settings here, such as: + // 'svelte/button-has-type': 'error' + rules: {} + } +); diff --git a/web/package.json b/web/package.json new file mode 100644 index 00000000..5cbc0423 --- /dev/null +++ b/web/package.json @@ -0,0 +1,54 @@ +{ + "name": "web", + "private": true, + "version": "0.0.1", + "type": "module", + "packageManager": "pnpm@11.10.0", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview --host 0.0.0.0", + "start": "node build", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "test:unit": "vitest", + "test": "vitest --run && playwright test", + "ci": "prettier --check . && eslint . && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && vitest --run && vite build", + "test:e2e": "playwright test" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@iconify-json/lucide": "^1.2.116", + "@playwright/test": "^1.60.0", + "@sveltejs/adapter-node": "^5.5.4", + "@sveltejs/kit": "^2.63.0", + "@sveltejs/vite-plugin-svelte": "^7.1.2", + "@tailwindcss/vite": "^4.3.2", + "@types/node": "^24", + "eslint": "^10.4.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.19.0", + "globals": "^17.6.0", + "prettier": "^3.8.3", + "prettier-plugin-svelte": "^4.1.0", + "prettier-plugin-tailwindcss": "^0.8.0", + "svelte": "^5.56.1", + "svelte-check": "^4.6.0", + "tailwindcss": "^4.3.2", + "typescript": "^6.0.3", + "typescript-eslint": "^8.60.1", + "unplugin-icons": "^23.0.1", + "vite": "^8.0.16", + "vitest": "^4.1.8" + }, + "dependencies": { + "@atcute/atproto": "^4.0.3", + "@atcute/client": "^5.1.1", + "@atcute/identity-resolver": "^2.0.1", + "@atcute/lexicons": "^2.0.2", + "@atcute/oauth-browser-client": "^4.0.1" + } +} diff --git a/web/playwright.config.ts b/web/playwright.config.ts new file mode 100644 index 00000000..5334e45f --- /dev/null +++ b/web/playwright.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from '@playwright/test'; + +export default defineConfig({ + webServer: { command: 'pnpm run build && pnpm run preview', port: 4173 }, + testMatch: '**/*.e2e.{ts,js}' +}); diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml new file mode 100644 index 00000000..7279816c --- /dev/null +++ b/web/pnpm-lock.yaml @@ -0,0 +1,3122 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@atcute/atproto': + specifier: ^4.0.3 + version: 4.0.3(@atcute/lexicons@2.0.2) + '@atcute/client': + specifier: ^5.1.1 + version: 5.1.1(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/identity-resolver': + specifier: ^2.0.1 + version: 2.0.1(@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/lexicons': + specifier: ^2.0.2 + version: 2.0.2 + '@atcute/oauth-browser-client': + specifier: ^4.0.1 + version: 4.0.1(@atcute/identity-resolver@2.0.1(@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3) + devDependencies: + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@10.6.0(jiti@2.7.0)) + '@iconify-json/lucide': + specifier: ^1.2.116 + version: 1.2.116 + '@playwright/test': + specifier: ^1.60.0 + version: 1.61.1 + '@sveltejs/adapter-node': + specifier: ^5.5.4 + version: 5.5.7(@sveltejs/kit@2.69.1(@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))) + '@sveltejs/kit': + specifier: ^2.63.0 + version: 2.69.1(@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': + specifier: ^7.1.2 + version: 7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + '@tailwindcss/vite': + specifier: ^4.3.2 + version: 4.3.2(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + '@types/node': + specifier: ^24 + version: 24.13.2 + eslint: + specifier: ^10.4.1 + version: 10.6.0(jiti@2.7.0) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@10.6.0(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.19.0 + version: 3.20.0(eslint@10.6.0(jiti@2.7.0))(svelte@5.56.4(@typescript-eslint/types@8.63.0)) + globals: + specifier: ^17.6.0 + version: 17.7.0 + prettier: + specifier: ^3.8.3 + version: 3.9.4 + prettier-plugin-svelte: + specifier: ^4.1.0 + version: 4.1.1(prettier@3.9.4)(svelte@5.56.4(@typescript-eslint/types@8.63.0)) + prettier-plugin-tailwindcss: + specifier: ^0.8.0 + version: 0.8.0(prettier-plugin-svelte@4.1.1(prettier@3.9.4)(svelte@5.56.4(@typescript-eslint/types@8.63.0)))(prettier@3.9.4) + svelte: + specifier: ^5.56.1 + version: 5.56.4(@typescript-eslint/types@8.63.0) + svelte-check: + specifier: ^4.6.0 + version: 4.7.1(picomatch@4.0.5)(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3) + tailwindcss: + specifier: ^4.3.2 + version: 4.3.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + typescript-eslint: + specifier: ^8.60.1 + version: 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + unplugin-icons: + specifier: ^23.0.1 + version: 23.0.1(svelte@5.56.4(@typescript-eslint/types@8.63.0)) + vite: + specifier: ^8.0.16 + version: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + vitest: + specifier: ^4.1.8 + version: 4.1.10(@types/node@24.13.2)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + +packages: + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@atcute/atproto@4.0.3': + resolution: {integrity: sha512-BNylfO7nK0yYBpSpnGhOYgrJTeZWrXHPrb6tOQmp9A3Am0epctIWm6/5lPC4ZNPHpUbwr5w/LzH/v7kjAoKEDg==} + peerDependencies: + '@atcute/lexicons': ^2.0.0 + + '@atcute/client@5.1.1': + resolution: {integrity: sha512-cn5/Zi/qo37WtQG6gzIC7JPs0RDzX9Z4eaceX45SpKgLZoc3fCFDJcE7C8xsbxBNfjry2T6PmUxWA8obebZsEQ==} + peerDependencies: + '@atcute/lexicons': ^2.0.0 + + '@atcute/identity-resolver@2.0.1': + resolution: {integrity: sha512-0enA9w7XnbbqsZ5Rcl6jXLf7ZZuwFQ9dBmxFq3qOxPHLaCETsqsrQflXDPqiM27TnZwYq8sqCV5D1mFOksggDQ==} + peerDependencies: + '@atcute/identity': ^2.0.0 + '@atcute/lexicons': ^2.0.0 + + '@atcute/identity@2.0.1': + resolution: {integrity: sha512-FEURUvl30SyyWWikkvm+MLz0Snuf0OF10L/qxRhWjj6qDB5Ib+XWhiBuwidjvhCkrCepTUNLbj4TlUm/gHaUig==} + peerDependencies: + '@atcute/lexicons': ^2.0.0 + + '@atcute/lexicons@2.0.2': + resolution: {integrity: sha512-ATBADJAy4KQ76NB86BjgYKrRdbDRUo76Cbqna4WIfQAgN105Rcy972MiNKs+BSmcOOM3WakilgTm0CXD4RC0iA==} + + '@atcute/multibase@1.2.4': + resolution: {integrity: sha512-WeX12hvFZEim6C+cyv7Eqd93w6DzubNWQGmTFBghjsEuXvMe4HbBCYvsti0OUnbA5qLBPlsTyssQUJeLlHCzIw==} + + '@atcute/oauth-browser-client@4.0.1': + resolution: {integrity: sha512-k5GGDFWUqTifbi7bMk4LhwG12XWNJop9atZ3ocBpzHJvXboTqp7E2zaD/arhJWxHXp5+0A1R3EKXdHsVbWjHyA==} + peerDependencies: + '@atcute/identity-resolver': ^2.0.0 + '@atcute/lexicons': ^2.0.0 + + '@atcute/oauth-crypto@1.0.1': + resolution: {integrity: sha512-ghC8ceFx0r6pi5X3dNoET1K6PNg8afeAOZLD4PKLhrpVYdRtRrgY4uqAe3ojtSIjoS6GXmVm063CoJ2xtg/MoQ==} + + '@atcute/oauth-keyset@0.1.2': + resolution: {integrity: sha512-2CUazWBWRjSEoYZDaLS4zEPgCOcr9LgnMhPr1pzr9I+DytRnoXmrdbRs4xBVg4iUdXtdzU48DsMaGi6bHXaFcg==} + + '@atcute/oauth-types@1.0.1': + resolution: {integrity: sha512-9uFP/nK0PgPDsaNbLArzrCHvTZO1k04cSEX5jZ75W2Jh7Jxbh/CSTenSrad3CZXuX6y6hDquEtl6H/IqLtTmHw==} + + '@atcute/uint8array@1.1.3': + resolution: {integrity: sha512-2KLcMQHUFtntY3tEjdyqqq1tR9hvPFndluWFCa637QY0cMyvq0fHSnhmZeWaSRIXMCwVDY3TLLWHNOHEWFb11g==} + + '@atcute/util-fetch@2.0.1': + resolution: {integrity: sha512-ugWTOLemA8OxSOj7c8q6ncRmBGFDHSwwE1YinO+PCtaw6WLQFGBfHn+yikQ0e3wTK2t4IPjQ5PxZcRXm961ZVA==} + + '@atcute/util-text@1.3.3': + resolution: {integrity: sha512-WhedTmg/msFhrdwXw9RjnNcDl8Vmisxl4+Vzyf5k3+8Gj5TKQg72dLSDtBNmNLd61RbHjgfQRBgE0ez6q/jciw==} + + '@emnapi/core@1.11.1': + resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + + '@emnapi/runtime@1.11.1': + resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.2': + resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@iconify-json/lucide@1.2.116': + resolution: {integrity: sha512-mbwPmiUXaZyLMSeQOxiTqz2fmZikD9qiGnMBiev47UUNY9uGCEgMg9iUYwaJzCtJTDtAIyK4vokfIpqsVorgSw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.1.4': + resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@oxc-project/types@0.138.0': + resolution: {integrity: sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==} + + '@playwright/test@1.61.1': + resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} + engines: {node: '>=18'} + hasBin: true + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@rolldown/binding-android-arm64@1.1.4': + resolution: {integrity: sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.1.4': + resolution: {integrity: sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.1.4': + resolution: {integrity: sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.1.4': + resolution: {integrity: sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.1.4': + resolution: {integrity: sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.1.4': + resolution: {integrity: sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.1.4': + resolution: {integrity: sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.1.4': + resolution: {integrity: sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.1.4': + resolution: {integrity: sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.1.4': + resolution: {integrity: sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.1.4': + resolution: {integrity: sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.1.4': + resolution: {integrity: sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.1.4': + resolution: {integrity: sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.1.4': + resolution: {integrity: sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.1.4': + resolution: {integrity: sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@rollup/plugin-commonjs@29.0.3': + resolution: {integrity: sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@sveltejs/acorn-typescript@1.0.10': + resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/adapter-node@5.5.7': + resolution: {integrity: sha512-uOfc9eVlI3A37RRSaKcgrheBYPrfJwC9VMqDp8x/O6tlKdcLLvHThSWD0KNIbjQ/d+7bwLGx3vx6aowAcRfd2g==} + peerDependencies: + '@sveltejs/kit': ^2.4.0 + + '@sveltejs/kit@2.69.1': + resolution: {integrity: sha512-+nz8Fx/cElzb2ZPHC+6Ll3y3NEVIe4Na75PeplLlyTmd1dBXAjz2KR14y1ZgNjb2ThfAYzulu+PFy1UE3RCUzA==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: ^5.3.3 || ^6.0.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + typescript: + optional: true + + '@sveltejs/load-config@0.2.0': + resolution: {integrity: sha512-1LgZ/qUqSoq+QorD83lk2hka79Px0wXNW2q5V1nZlxGhQgw1jrsIbVz5YiCeucVLo4XvFLjXukUaQjIiqowkcg==} + engines: {node: '>= 18.0.0'} + + '@sveltejs/vite-plugin-svelte@7.1.3': + resolution: {integrity: sha512-/m4ZJPE75eUhSH9/thfK4cfahVHYXc8wZNGE0UeRziFVNylDFHtmEujh8jfaDy7+ztx6ywvMAwiFJda9dVMJ6A==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + svelte: ^5.46.4 + vite: ^8.0.0-beta.7 || ^8.0.0 + + '@tailwindcss/node@4.3.2': + resolution: {integrity: sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==} + + '@tailwindcss/oxide-android-arm64@4.3.2': + resolution: {integrity: sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + resolution: {integrity: sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.2': + resolution: {integrity: sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + resolution: {integrity: sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + resolution: {integrity: sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + resolution: {integrity: sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + resolution: {integrity: sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + resolution: {integrity: sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + resolution: {integrity: sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + resolution: {integrity: sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + resolution: {integrity: sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + resolution: {integrity: sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.2': + resolution: {integrity: sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.3.2': + resolution: {integrity: sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@24.13.2': + resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@typescript-eslint/eslint-plugin@8.63.0': + resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.63.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.63.0': + resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.63.0': + resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.63.0': + resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.63.0': + resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.63.0': + resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.63.0': + resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.63.0': + resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.63.0': + resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.63.0': + resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} + + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} + + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} + + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} + + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} + + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + brace-expansion@5.0.7: + resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} + engines: {node: 18 || 20 || >=22} + + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + devalue@5.8.1: + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + + enhanced-resolve@5.21.6: + resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} + engines: {node: '>=10.13.0'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@2.3.0: + resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-svelte@3.20.0: + resolution: {integrity: sha512-AElKLVt7Hjy4d7ljwhrhw9hux60DCxCNkmK8cY/aAXvjs8tpR7PvU4DlyI/SA1PaJww1gh0wPGo2pbyURuEwxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.6.0: + resolution: {integrity: sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrap@2.2.13: + resolution: {integrity: sha512-m8jH5hZgJE2RRUK/jjkGPcJEDAV+dYnZYFkosQaPTcE+Yw4xynXHOo6FUdwaWBtdR3b1MMa7wEDTSHeR2VWsGA==} + peerDependencies: + '@typescript-eslint/types': ^8.2.0 + peerDependenciesMeta: + '@typescript-eslint/types': + optional: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} + + exsolve@1.1.0: + resolution: {integrity: sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + globals@17.7.0: + resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + local-pkg@1.2.1: + resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} + engines: {node: '>=14'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} + engines: {node: ^18 || >=20} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + obug@2.1.3: + resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} + engines: {node: '>=12.20.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-manager-detector@1.7.0: + resolution: {integrity: sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.1: + resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + + playwright-core@1.61.1: + resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.61.1: + resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==} + engines: {node: '>=18'} + hasBin: true + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-parser@7.1.4: + resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} + engines: {node: '>=4'} + + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-svelte@4.1.1: + resolution: {integrity: sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA==} + engines: {node: '>=20'} + peerDependencies: + prettier: ^3.0.0 + svelte: ^5.0.0 + + prettier-plugin-tailwindcss@0.8.0: + resolution: {integrity: sha512-V8ITGH87yuBDF6JpEZTOVlUz/saAwqb8f3HRgUj8Lh+tGCcrmorhsLpYqzygwFwK0PE2Ib6Mv3M7T/uE2tZV1g==} + engines: {node: '>=20.19'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.9.4: + resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} + engines: {node: '>=14'} + hasBin: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + rolldown@1.1.4: + resolution: {integrity: sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@3.1.1: + resolution: {integrity: sha512-vM9SUhjsUYs6UeJUmygc5Ofm5eQGe85riob5ju6XCgFGJI5PLV4nrDAQpQjd+LkFBpAkADn5BQQpZ9EUNkyLuA==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svelte-check@4.7.1: + resolution: {integrity: sha512-FGUOmAqxXdN/H9Zm8slrqO7SLtFisXRB7rfOsHNJ3MLTD2po/+Stg8XyErkpumPHbuUiYTcqrEIzxpVWKTLqtg==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte-eslint-parser@1.8.0: + resolution: {integrity: sha512-mikR1qwIVy3t5WthUoAXkMwxkXvabZP9FJgdx35Ei7EbGWmctva1Pih16Koeor/bdNNq8NXHlwKGS6NkYTawLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.1} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte@5.56.4: + resolution: {integrity: sha512-/d0QHehmRuJW8gVz395MTkPcPozxzdjBMBE8oEYGz8O3b9KTMzzQ9ZHJQLuFKOHOPQbU6kx/X4iid/EBBzH7iw==} + engines: {node: '>=18'} + + tailwindcss@4.3.2: + resolution: {integrity: sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + engines: {node: '>=14.0.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.63.0: + resolution: {integrity: sha512-xgwXyzG4sK9ALkBxbyGkTMMOS+imnW65iPhxCQMK83KhxyoDNW7l+IDqEf9vMdoUidHpOoS967RCq4eMiTexwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + + unicode-segmenter@0.14.5: + resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==} + + unplugin-icons@23.0.1: + resolution: {integrity: sha512-rv0XEJepajKzDLvRUWASM8K+8+/CCfZn2jtogXqg6RIp7kpatRc/aFrVJn8ANQA09e++lPEEv9yX8cC9enc+QQ==} + peerDependencies: + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@svgx/core': + optional: true + '@vue/compiler-sfc': + optional: true + svelte: + optional: true + + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + valibot@1.4.2: + resolution: {integrity: sha512-gjdCvJ6d3RyHAneqxMYMW9QMCwYMb3jpOO0IyHZV1bnRHFBHrX3VkIILt5XYR0WhwHiH7Mty8ovuPZ/O3gamrg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + + vite@8.1.3: + resolution: {integrity: sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 + esbuild: ^0.27.0 || ^0.28.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 + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + +snapshots: + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.7.0 + tinyexec: 1.2.4 + + '@atcute/atproto@4.0.3(@atcute/lexicons@2.0.2)': + dependencies: + '@atcute/lexicons': 2.0.2 + + '@atcute/client@5.1.1(@atcute/lexicons@2.0.2)(typescript@6.0.3)': + dependencies: + '@atcute/identity': 2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/lexicons': 2.0.2 + transitivePeerDependencies: + - typescript + + '@atcute/identity-resolver@2.0.1(@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3)': + dependencies: + '@atcute/identity': 2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/lexicons': 2.0.2 + '@atcute/util-fetch': 2.0.1(typescript@6.0.3) + valibot: 1.4.2(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3)': + dependencies: + '@atcute/lexicons': 2.0.2 + valibot: 1.4.2(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/lexicons@2.0.2': + dependencies: + '@atcute/uint8array': 1.1.3 + '@atcute/util-text': 1.3.3 + '@standard-schema/spec': 1.1.0 + esm-env: 1.2.2 + + '@atcute/multibase@1.2.4': + dependencies: + '@atcute/uint8array': 1.1.3 + + '@atcute/oauth-browser-client@4.0.1(@atcute/identity-resolver@2.0.1(@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3)': + dependencies: + '@atcute/client': 5.1.1(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/identity-resolver': 2.0.1(@atcute/identity@2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3))(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/lexicons': 2.0.2 + '@atcute/multibase': 1.2.4 + '@atcute/oauth-crypto': 1.0.1(typescript@6.0.3) + '@atcute/oauth-types': 1.0.1(typescript@6.0.3) + nanoid: 5.1.16 + transitivePeerDependencies: + - typescript + + '@atcute/oauth-crypto@1.0.1(typescript@6.0.3)': + dependencies: + '@atcute/multibase': 1.2.4 + '@atcute/uint8array': 1.1.3 + nanoid: 5.1.16 + valibot: 1.4.2(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/oauth-keyset@0.1.2(typescript@6.0.3)': + dependencies: + '@atcute/oauth-crypto': 1.0.1(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/oauth-types@1.0.1(typescript@6.0.3)': + dependencies: + '@atcute/identity': 2.0.1(@atcute/lexicons@2.0.2)(typescript@6.0.3) + '@atcute/lexicons': 2.0.2 + '@atcute/oauth-keyset': 0.1.2(typescript@6.0.3) + valibot: 1.4.2(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/uint8array@1.1.3': {} + + '@atcute/util-fetch@2.0.1(typescript@6.0.3)': + dependencies: + valibot: 1.4.2(typescript@6.0.3) + transitivePeerDependencies: + - typescript + + '@atcute/util-text@1.3.3': + dependencies: + unicode-segmenter: 0.14.5 + + '@emnapi/core@1.11.1': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0(jiti@2.7.0))': + dependencies: + eslint: 10.6.0(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.5': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3 + minimatch: 10.2.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.6.0': + dependencies: + '@eslint/core': 1.2.1 + + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/js@10.0.1(eslint@10.6.0(jiti@2.7.0))': + optionalDependencies: + eslint: 10.6.0(jiti@2.7.0) + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.2': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@iconify-json/lucide@1.2.116': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.1.4': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/types': 2.0.0 + import-meta-resolve: 4.2.0 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@oxc-project/types@0.138.0': {} + + '@playwright/test@1.61.1': + dependencies: + playwright: 1.61.1 + + '@polka/url@1.0.0-next.29': {} + + '@rolldown/binding-android-arm64@1.1.4': + optional: true + + '@rolldown/binding-darwin-arm64@1.1.4': + optional: true + + '@rolldown/binding-darwin-x64@1.1.4': + optional: true + + '@rolldown/binding-freebsd-x64@1.1.4': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.1.4': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.1.4': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.1.4': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.1.4': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.1.4': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.1.4': + optional: true + + '@rolldown/binding-linux-x64-musl@1.1.4': + optional: true + + '@rolldown/binding-openharmony-arm64@1.1.4': + optional: true + + '@rolldown/binding-wasm32-wasi@1.1.4': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.1.4': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.1.4': + optional: true + + '@rolldown/pluginutils@1.0.1': {} + + '@rollup/plugin-commonjs@29.0.3(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.5.0(picomatch@4.0.5) + is-reference: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.5 + optionalDependencies: + rollup: 4.62.2 + + '@rollup/plugin-json@6.1.0(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + optionalDependencies: + rollup: 4.62.2 + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.12 + optionalDependencies: + rollup: 4.62.2 + + '@rollup/plugin-replace@6.0.3(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.62.2 + + '@rollup/pluginutils@5.4.0(rollup@4.62.2)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.5 + optionalDependencies: + rollup: 4.62.2 + + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true + + '@rollup/rollup-android-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true + + '@standard-schema/spec@1.1.0': {} + + '@sveltejs/acorn-typescript@1.0.10(acorn@8.17.0)': + dependencies: + acorn: 8.17.0 + + '@sveltejs/adapter-node@5.5.7(@sveltejs/kit@2.69.1(@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))': + dependencies: + '@rollup/plugin-commonjs': 29.0.3(rollup@4.62.2) + '@rollup/plugin-json': 6.1.0(rollup@4.62.2) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.62.2) + '@rollup/plugin-replace': 6.0.3(rollup@4.62.2) + '@sveltejs/kit': 2.69.1(@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + rollup: 4.62.2 + + '@sveltejs/kit@2.69.1(@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))': + dependencies: + '@standard-schema/spec': 1.1.0 + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.17.0) + '@sveltejs/vite-plugin-svelte': 7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + '@types/cookie': 0.6.0 + acorn: 8.17.0 + cookie: 0.6.0 + devalue: 5.8.1 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + set-cookie-parser: 3.1.1 + sirv: 3.0.2 + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + optionalDependencies: + typescript: 6.0.3 + + '@sveltejs/load-config@0.2.0': {} + + '@sveltejs/vite-plugin-svelte@7.1.3(svelte@5.56.4(@typescript-eslint/types@8.63.0))(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))': + dependencies: + deepmerge: 4.3.1 + magic-string: 0.30.21 + obug: 2.1.3 + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + + '@tailwindcss/node@4.3.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.2 + + '@tailwindcss/oxide-android-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide@4.3.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-x64': 4.3.2 + '@tailwindcss/oxide-freebsd-x64': 4.3.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-x64-musl': 4.3.2 + '@tailwindcss/oxide-wasm32-wasi': 4.3.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.2 + + '@tailwindcss/vite@4.3.2(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))': + dependencies: + '@tailwindcss/node': 4.3.2 + '@tailwindcss/oxide': 4.3.2 + tailwindcss: 4.3.2 + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + + '@tybys/wasm-util@0.10.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/cookie@0.6.0': {} + + '@types/deep-eql@4.0.2': {} + + '@types/esrecurse@4.3.1': {} + + '@types/estree@1.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@24.13.2': + dependencies: + undici-types: 7.18.2 + + '@types/resolve@1.20.2': {} + + '@types/trusted-types@2.0.7': {} + + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/type-utils': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.63.0 + eslint: 10.6.0(jiti@2.7.0) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + eslint: 10.6.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.63.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 + debug: 4.4.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + + '@typescript-eslint/type-utils@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + debug: 4.4.3 + eslint: 10.6.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.63.0': {} + + '@typescript-eslint/typescript-estree@8.63.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.63.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + eslint: 10.6.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + eslint-visitor-keys: 5.0.1 + + '@vitest/expect@4.1.10': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + chai: 6.2.2 + tinyrainbow: 3.1.0 + + '@vitest/mocker@4.1.10(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))': + dependencies: + '@vitest/spy': 4.1.10 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + + '@vitest/pretty-format@4.1.10': + dependencies: + tinyrainbow: 3.1.0 + + '@vitest/runner@4.1.10': + dependencies: + '@vitest/utils': 4.1.10 + pathe: 2.0.3 + + '@vitest/snapshot@4.1.10': + dependencies: + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@4.1.10': {} + + '@vitest/utils@4.1.10': + dependencies: + '@vitest/pretty-format': 4.1.10 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 + + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + aria-query@5.3.1: {} + + assertion-error@2.0.1: {} + + axobject-query@4.1.0: {} + + balanced-match@4.0.4: {} + + brace-expansion@5.0.7: + dependencies: + balanced-match: 4.0.4 + + chai@6.2.2: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + clsx@2.1.1: {} + + commondir@1.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.4: {} + + convert-source-map@2.0.0: {} + + cookie@0.6.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + detect-libc@2.1.2: {} + + devalue@5.8.1: {} + + enhanced-resolve@5.21.6: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + + es-errors@1.3.0: {} + + es-module-lexer@2.3.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@10.1.8(eslint@10.6.0(jiti@2.7.0)): + dependencies: + eslint: 10.6.0(jiti@2.7.0) + + eslint-plugin-svelte@3.20.0(eslint@10.6.0(jiti@2.7.0))(svelte@5.56.4(@typescript-eslint/types@8.63.0)): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(jiti@2.7.0)) + '@jridgewell/sourcemap-codec': 1.5.5 + eslint: 10.6.0(jiti@2.7.0) + esutils: 2.0.3 + globals: 16.5.0 + known-css-properties: 0.37.0 + postcss: 8.5.16 + postcss-load-config: 3.1.4(postcss@8.5.16) + postcss-safe-parser: 7.0.1(postcss@8.5.16) + semver: 7.8.5 + svelte-eslint-parser: 1.8.0(svelte@5.56.4(@typescript-eslint/types@8.63.0)) + optionalDependencies: + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + transitivePeerDependencies: + - ts-node + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.6.0(jiti@2.7.0): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.6.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + + esm-env@1.2.2: {} + + espree@10.4.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 4.2.1 + + espree@11.2.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrap@2.2.13(@typescript-eslint/types@8.63.0): + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + optionalDependencies: + '@typescript-eslint/types': 8.63.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + esutils@2.0.3: {} + + expect-type@1.4.0: {} + + exsolve@1.1.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flatted@3.4.2: {} + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@16.5.0: {} + + globals@17.7.0: {} + + graceful-fs@4.2.11: {} + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-meta-resolve@4.2.0: {} + + imurmurhash@0.1.4: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-module@1.0.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.9 + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + isexe@2.0.0: {} + + jiti@2.7.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@4.1.5: {} + + known-css-properties@0.37.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + 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 + + lilconfig@2.1.0: {} + + local-pkg@1.2.1: + dependencies: + mlly: 1.8.2 + pkg-types: 2.3.1 + quansync: 0.2.11 + + locate-character@3.0.0: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.7 + + mlly@1.8.2: + dependencies: + acorn: 8.17.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + + mri@1.2.0: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + nanoid@3.3.15: {} + + nanoid@5.1.16: {} + + natural-compare@1.4.0: {} + + obug@2.1.3: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-manager-detector@1.7.0: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@4.0.5: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + + pkg-types@2.3.1: + dependencies: + confbox: 0.2.4 + exsolve: 1.1.0 + pathe: 2.0.3 + + playwright-core@1.61.1: {} + + playwright@1.61.1: + dependencies: + playwright-core: 1.61.1 + optionalDependencies: + fsevents: 2.3.2 + + postcss-load-config@3.1.4(postcss@8.5.16): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.3 + optionalDependencies: + postcss: 8.5.16 + + postcss-safe-parser@7.0.1(postcss@8.5.16): + dependencies: + postcss: 8.5.16 + + postcss-scss@4.0.9(postcss@8.5.16): + dependencies: + postcss: 8.5.16 + + postcss-selector-parser@7.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-plugin-svelte@4.1.1(prettier@3.9.4)(svelte@5.56.4(@typescript-eslint/types@8.63.0)): + dependencies: + prettier: 3.9.4 + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + + prettier-plugin-tailwindcss@0.8.0(prettier-plugin-svelte@4.1.1(prettier@3.9.4)(svelte@5.56.4(@typescript-eslint/types@8.63.0)))(prettier@3.9.4): + dependencies: + prettier: 3.9.4 + optionalDependencies: + prettier-plugin-svelte: 4.1.1(prettier@3.9.4)(svelte@5.56.4(@typescript-eslint/types@8.63.0)) + + prettier@3.9.4: {} + + punycode@2.3.1: {} + + quansync@0.2.11: {} + + readdirp@4.1.2: {} + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rolldown@1.1.4: + dependencies: + '@oxc-project/types': 0.138.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.1.4 + '@rolldown/binding-darwin-arm64': 1.1.4 + '@rolldown/binding-darwin-x64': 1.1.4 + '@rolldown/binding-freebsd-x64': 1.1.4 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.4 + '@rolldown/binding-linux-arm64-gnu': 1.1.4 + '@rolldown/binding-linux-arm64-musl': 1.1.4 + '@rolldown/binding-linux-ppc64-gnu': 1.1.4 + '@rolldown/binding-linux-s390x-gnu': 1.1.4 + '@rolldown/binding-linux-x64-gnu': 1.1.4 + '@rolldown/binding-linux-x64-musl': 1.1.4 + '@rolldown/binding-openharmony-arm64': 1.1.4 + '@rolldown/binding-wasm32-wasi': 1.1.4 + '@rolldown/binding-win32-arm64-msvc': 1.1.4 + '@rolldown/binding-win32-x64-msvc': 1.1.4 + + rollup@4.62.2: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + semver@7.8.5: {} + + set-cookie-parser@3.1.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} + + stackback@0.0.2: {} + + std-env@4.1.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + svelte-check@4.7.1(picomatch@4.0.5)(svelte@5.56.4(@typescript-eslint/types@8.63.0))(typescript@6.0.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@sveltejs/load-config': 0.2.0 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.5) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + typescript: 6.0.3 + transitivePeerDependencies: + - picomatch + + svelte-eslint-parser@1.8.0(svelte@5.56.4(@typescript-eslint/types@8.63.0)): + dependencies: + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + postcss: 8.5.16 + postcss-scss: 4.0.9(postcss@8.5.16) + postcss-selector-parser: 7.1.4 + semver: 7.8.5 + optionalDependencies: + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + + svelte@5.56.4(@typescript-eslint/types@8.63.0): + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.17.0) + '@types/estree': 1.0.9 + '@types/trusted-types': 2.0.7 + acorn: 8.17.0 + aria-query: 5.3.1 + axobject-query: 4.1.0 + clsx: 2.1.1 + devalue: 5.8.1 + esm-env: 1.2.2 + esrap: 2.2.13(@typescript-eslint/types@8.63.0) + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + zimmerframe: 1.1.4 + transitivePeerDependencies: + - '@typescript-eslint/types' + + tailwindcss@4.3.2: {} + + tapable@2.3.3: {} + + tinybench@2.9.0: {} + + tinyexec@1.2.4: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + tinyrainbow@3.1.0: {} + + totalist@3.0.1: {} + + ts-api-utils@2.5.0(typescript@6.0.3): + dependencies: + typescript: 6.0.3 + + tslib@2.8.1: + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.6.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + typescript@6.0.3: {} + + ufo@1.6.4: {} + + undici-types@7.18.2: {} + + unicode-segmenter@0.14.5: {} + + unplugin-icons@23.0.1(svelte@5.56.4(@typescript-eslint/types@8.63.0)): + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/utils': 3.1.4 + local-pkg: 1.2.1 + obug: 2.1.3 + unplugin: 2.3.11 + optionalDependencies: + svelte: 5.56.4(@typescript-eslint/types@8.63.0) + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.17.0 + picomatch: 4.0.5 + webpack-virtual-modules: 0.6.2 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + valibot@1.4.2(typescript@6.0.3): + optionalDependencies: + typescript: 6.0.3 + + vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.5 + postcss: 8.5.16 + rolldown: 1.1.4 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 24.13.2 + fsevents: 2.3.3 + jiti: 2.7.0 + yaml: 2.9.0 + + vitefu@1.1.3(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)): + optionalDependencies: + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + + vitest@4.1.10(@types/node@24.13.2)(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 + magic-string: 0.30.21 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.5 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 8.1.3(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.13.2 + transitivePeerDependencies: + - msw + + webpack-virtual-modules@0.6.2: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + yaml@1.10.3: {} + + yaml@2.9.0: + optional: true + + yocto-queue@0.1.0: {} + + zimmerframe@1.1.4: {} diff --git a/web/prettier.config.js b/web/prettier.config.js new file mode 100644 index 00000000..f8754884 --- /dev/null +++ b/web/prettier.config.js @@ -0,0 +1,12 @@ +/** @type {import("prettier").Config} */ +const config = { + useTabs: true, + singleQuote: true, + trailingComma: 'none', + printWidth: 100, + plugins: ['prettier-plugin-svelte', 'prettier-plugin-tailwindcss'], + overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }], + tailwindStylesheet: './src/app.css' +}; + +export default config; diff --git a/web/src/app.css b/web/src/app.css new file mode 100644 index 00000000..18370299 --- /dev/null +++ b/web/src/app.css @@ -0,0 +1,153 @@ +@import 'tailwindcss'; + +@theme { + --font-sans: 'InterVariable', 'system-ui', sans-serif, ui-sans-serif; + --font-mono: + 'IBMPlexMono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', + 'Courier New', monospace; + --color-bg: #f1f5f9; + --color-bg-auth: #ffffff; + --color-surface: #ffffff; + --color-surface-hover: #f9fafb; + --color-surface-muted: #f3f4f6; + --color-fg: #111827; + --color-fg-strong: #030712; + --color-fg-muted: #4b5563; + --color-fg-subtle: #6b7280; + --color-fg-faint: #9ca3af; + --color-border: #e5e7eb; + --color-border-subtle: #f3f4f6; + --color-border-strong: #d1d5db; + --color-ring: #d1d5db; + --color-raised-depth: #e5e7eb; + --color-raised-accent-depth: rgb(17 24 39 / 0.25); + --color-raised-accent-depth-active: rgb(17 24 39 / 0.5); + --color-raised-depth-hover: #d1d5db; + --color-success: #16a34a; + --color-success-hover: #15803d; + --color-success-border: #15803d; + --color-success-fg: #ffffff; + --color-primary: #4f46e5; + --color-primary-hover: #4338ca; + --color-primary-border: #4338ca; + --color-primary-fg: #ffffff; + --color-info: #3b82f6; + --color-info-soft: #dbeafe; + --color-danger: #dc2626; + --color-danger-hover: #b91c1c; + --color-danger-border: #b91c1c; + --color-danger-fg: #ffffff; + --color-danger-soft: #fef2f2; + --shadow-menu: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); +} + +@layer base { + @font-face { + font-family: 'InterVariable'; + src: url('/fonts/InterVariable.woff2') format('woff2-variations'); + font-weight: 100 600; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: 'InterVariable'; + src: url('/fonts/InterVariable-Italic.woff2') format('woff2-variations'); + font-weight: 100 600; + font-style: italic; + font-display: swap; + } + + @font-face { + font-family: 'InterVariable'; + src: url('/fonts/InterDisplay-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: 'InterVariable'; + src: url('/fonts/InterDisplay-BoldItalic.woff2') format('woff2'); + font-weight: bold; + font-style: italic; + font-display: swap; + } + + @font-face { + font-family: 'IBMPlexMono'; + src: url('/fonts/IBMPlexMono-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: 'IBMPlexMono'; + src: url('/fonts/IBMPlexMono-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: swap; + } + + @font-face { + font-family: 'IBMPlexMono'; + src: url('/fonts/IBMPlexMono-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: 'IBMPlexMono'; + src: url('/fonts/IBMPlexMono-BoldItalic.woff2') format('woff2'); + font-weight: bold; + font-style: italic; + font-display: swap; + } + + html { + font-size: 14px; + scrollbar-gutter: stable; + } + + @media (prefers-color-scheme: dark) { + :root { + --color-bg: #111827; + --color-bg-auth: #111827; + --color-surface: #1f2937; + --color-surface-hover: #374151; + --color-surface-muted: #374151; + --color-fg: #f3f4f6; + --color-fg-strong: #ffffff; + --color-fg-muted: #d1d5db; + --color-fg-subtle: #9ca3af; + --color-border: #374151; + --color-border-subtle: #374151; + --color-border-strong: #4b5563; + --color-ring: #4b5563; + --color-raised-depth: #111827; + --color-raised-depth-hover: #1f2937; + --color-success: #15803d; + --color-success-hover: #166534; + --color-success-border: #16a34a; + --color-primary: #6366f1; + --color-primary-hover: #4f46e5; + --color-primary-border: #4f46e5; + --color-info: #60a5fa; + --color-info-soft: rgb(30 58 138 / 0.3); + --color-danger: #b91c1c; + --color-danger-hover: #991b1b; + --color-danger-border: #dc2626; + --color-danger-soft: rgb(153 27 27 / 0.2); + } + } + + body { + @apply flex min-h-screen flex-col bg-bg text-fg transition-colors duration-200; + } + + a { + @apply text-fg no-underline hover:text-fg-muted; + } +} diff --git a/web/src/app.d.ts b/web/src/app.d.ts new file mode 100644 index 00000000..889919e8 --- /dev/null +++ b/web/src/app.d.ts @@ -0,0 +1,14 @@ +declare global { + namespace App { + interface PageData { + publicConfig?: { + bobbinUrl: string; + apiUrl: string; + knotResolverUrl: string; + camoUrl: string; + }; + } + } +} + +export {}; diff --git a/web/src/app.html b/web/src/app.html new file mode 100644 index 00000000..9b73de6d --- /dev/null +++ b/web/src/app.html @@ -0,0 +1,27 @@ + + +
+ + + + + + + + + + + + + + + + %sveltekit.head% + + +The next-generation social coding platform.
++ We envision a place where developers have ownership of their code, communities can freely + self-govern and most importantly, coding can be social and fun again. +
+ {@render signupForm('hero-email', 'Join now', true, 'flex max-w-lg gap-2', '')} ++ We've got a newsletter. Punch in your email to stay updated on what we're shipping at Tangled. +
+ {@render signupForm( + 'newsletter-email', + 'Subscribe', + false, + 'mt-8 flex w-full max-w-lg rounded border border-border-strong bg-surface p-2', + 'ml-2' + )} +{copy.message}
+tightly-knit social coding.
++ Don't have an account? Create an account + on Tangled now! +
+ + {#if auth.error} +{auth.error} Please try again.
+{auth.error}
+ Try again +Signing you in…
+{/if} diff --git a/web/static/.gitignore b/web/static/.gitignore new file mode 100644 index 00000000..365079e9 --- /dev/null +++ b/web/static/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!oauth-client-metadata.json +!robots.txt diff --git a/web/static/fonts/IBMPlexMono-Bold.woff2 b/web/static/fonts/IBMPlexMono-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1a30540c9f28857d039763d440b7df509000e55f GIT binary patch literal 46684 zcmXT-cQayOWME)m*cQVe$iTqBl+nPzu=OVc6C)c)6dg-7%Sg|zlUX3amcTGohQo`q zsaQ~etNlh!+iM9%GbR=0#Uk7jeHd62SSRPRpI7H;VT#_NJ}G7To4+$SSFb*mml!(F zqU^^u&HM$&zljG}<*$wlnqlyR(Prkt>z9jXN7h{o2%Y}-|NsC0_p8i2F+(+c$C6w| zmP7`Nz^`|?C(f)inVNJeY}U5!o%yQnqLVv~<0h?~7Rc+{V-;kX`$W`7Zuv>QIjRSJ zEQBUaXfZpaxVrO|Qtf*!Z@xT^dI`UXuB*gd`i%=Eti(tKV3E_E7)`I%6&ht+)b2vVbyDH zch=mVvGcaT0zC_vJEF@Qe}9{KK)`_CdFzL~^X-0(Csv-Vbq=uLw=-$$^*C@sG(j$7 z`gCEgmN=g$>*pvm-1z@>0#m2+mBU;jL27O7JwX!tQ*#1#pU{4~_7mgJGpk-Z{6GBY zy#AaiN1QuEmWDeY^v$+k<{MHGa{Ek?)sG$evWFBy?>(Gu@#ss!gse%wp+%Fl=S?qdEt2Y^S%FDT4%4g z<@K;RLh@3Dd}_y<*>xOsdEf4?$hzC6dn?Uf<<`t{wf=bb#QJNG->olZT)tm+mh=BB zwPBAZ?3@xkQ+-o+{svP^uGXkK$0yo-Vdj#S6q03Zb@fqcOSIsb*w4r~b7$T>8Cj*K zfM~ztY@f81m(}TKJo%XSB}l$_+nn0R2mL#y$M5;YXLvuix?}V8?anr3zh#9c%{DJN z$Fovu>gIoY@>Jvaj;%TSIpy&6eM|X|SaQy<5S(-VdE@2<_1(+4{yp9P^Z&*Eskhen zYWE&yOVbWmHH-b`+Fd*wQtT&5&tCd!so4i11)rWJE(@Pjx_(u6{a%}#;h=Oy?6RoA zoaNUvA1Znkv}>zAoRxfEkZZB{j*JU2_g2S9{hVnQ7WVsc?Nf=3VNrjd?bqGlBfoR* ze70t;uemFoeO0ZOjGRH#|))@ *cz-ZN=4`_AuLTuZ>^qNL=hU+u-G#Oyd$AmcvI`6y$cyOYPt C>+@OO~uZ^{OcN;#7NvP@T3I zHr>TJYJNZ8G rgi2DUHC`YSc7SL0fyPivyE^WCdc z{G~Q#Hh*{AHDTVD_MKa d7W}uxl(xfQe9J9=Si2As0J@k*s0{IIYrBNrJu7_oNwmV z%+m=5TavWmTUNi`^?k`x@zVSc)9$UxOa66x`JUeL+poe(^glh)cyDOAePgIXhEm{x zH;3IHd{4Y&H)&D-qF2cmz8J2pj7vEg(y=zeT5+yhW(0@uwG@tz2e(ae+GxGQK*l#w z%W~SQD+?wc+frcYyzyz)vd_$W-}tcf7pr{S<6E`K&^NDWqrS_B2IoSKxF2y!u0J!^ ziu>!|i>t}0Iqz`iycu`> `^F%XbNy`6_EhQzr zJ_gy=?DD~BXCe YZ{p8m>|Ac}b5@l~Tc@bXrmfcUr|e$IMK(>=T(y9M!F$0{ z|Fl_Ahm&T`s@`F8^7PaP#oyX)Ips2Qoj&8HF!A<$^QXINOg6dq35gi=NcAdjIyB*w z8N1+0r{I?p*)I!qY|@(M@_bcyZ-xx_Jb_@V9qsjPf(z3GER33$FHH7%9`z|O=IO=D zZ9xlmU3|a$_}oM5f8T%lUOlC^Xm|FjzXvazxG^cbvM@KccmF)sT`{inpZ?ch`f2^u z6|wybzgLvz3a^{G;h5U(w~_pz*LSY|>u>S+(c@bmpMKoW%wPL%=lXf}S489YAG-bb zKNCaC8o| B)Fy3KSmdv|ZxZ2$GFm&G=%Jn}(TBuFyJ z$*kG@;gZvHIGw95T~&&@vN}Y^{HE@!?IMLrEUF8RR{T6T)%Ns(DaKDFKhFQ@>C!r7 z+3Y`i8JDcxe%J2!oZ_kLcF(IiJ!h}J4NJ!a1?O!^S7((-8i_h^|E)T`S0X2AQLjq0 zVaTfR-{HMIOQ_dT1zQ6I8* <=GquWay=9d&e$Zurf4XoBy4+IaDmI~GbWX}>~j`8wko!r z^VrjZ-!;kf((@20sqbye!koRAFU-BL;m``jZTBv0)ZMjo-jT@_LjI3DZ93H_PMTAG zKJo0UP1?6Ms!yDxz4X3B3zrVpwry_x>gF!$Pd#lqr$j9AK72M^s!nbDCdq9Y=C10~ zgu_?fJjD{#shqc-QEHx=dS0kgkXMvj*t!m-J{M=li?b$e>T(FpZI9U)W7TUpL;Q1M zoz8
%L-9E?UsE*i!FRr G2=4NkHXU?S$G;{RjG-U`AKeidNO=b)Y`C!%Z$Ar!tL}Oqxp_)yt4CZ zi9@*Jt_v;q)VIy@uSxO|%2M<{5%@Cd8HeAg(_E93gP1j@P8GCqPfH0axT(^nm8{Rb zgKc_c=Dd>)u0f|gvo4C&Yq_xaqn#!Do+N?5^A!rjgz{Z7X4=H z`G0KF_nXLOaI`LK=3RNCWW~ZYrm}e%OP4A0F1}N;B{6hXpXr xRXfDOo%ZOh(G(Kkl5O-!)3Ov0nR}^&S7oNkEj6?4?xB4#m7hd4 zLY72y2Bn?~T@kW0syC|iRqDCxIl5aTFE~s2J<{9Ml*st0#al;5(KAo6WWuSw|8tq9 z`c01(ooCKH&EA)3yQN4j%g)~mC!G4q_43Y|2`3M8-LzRc;q+>*pEaujPKa|I{j)~n z>ISB#Qo#$FJW3+j7QNT&D9KU2G%eceTd0!Jg^UZel8TQCMCzCp=u;zL=f;t#9|9Zg5(4z@p#s z&Q%X@#fR(7UnDlXauG^UmB?X_=VLl!!`Alb|DK7)&l>di9xY&-alc49XZhp4=W)xe zgA04om4f8+N=tVwO`mo3|D+kst#iaCPx?O7vtRDUx}D)$m&L}M-8DU-K5$i{&<}+g z;XnE*8b)HAZigmjsK|Lb8BLT)F$(HD<9#n#D886+dRBTvhYIe@A*fn#l*oTG) zi95=P%kti9J-_*-D{OzGu;_yF<6L4v5i4Grre1cqQ+xmGvg~!{<$e2kVv28 ?R@8(S8B~{YjVEN{;l|y10UnhDycuduPrDsJLFTee0Kk((E2BL=8Hcn zQZiyou{+YN@nG7Goh9Ge&qbcO`M-$s$JM5``PMqWcCNi1%jOs5m>oV@_r9O`p_we5 z`(KJZcz&tmV#&3VOIwb`KRdCmJFUJs>-W*sZ=P+Gb+!JY?mCI($HxaVA00|x(eGYp zyY8^| 8EGvmbb}b+WcLGh+?cAI=~AC!8D^UOk?+ZI804d+q&S{>p~zw{AHJ zbe~b%H2e0Ki{~eB_Qch`X56*tvELyEwd^?^>Rb*-eFY4jKNaeptDrt9^wv66vtU-? z&!J(9SN{KdX~vF&Zab#??RvM5UB`0At1aI1ZawMB-dFVXtnG4}FK3j?^vV<_NX&@1 zQE@@8`Yq@0I+o;vhgdp49J}53aIZg4<=5<*7aV6SO!=OvYC83n-?6e^c5q7I<5k(p zOAi$;)3Ml;@?PCP@eeEKG|i{mW#(t4WF>NoXLhR#I0}g<3QtMDy)0~QborZ0%&f%% zN)wcPSof_reHGI (x6YW|!`2-+cT3uUI>7e$iQ G}KE&DnqNzWX2c_RH0RU&~Ve2(V6GHs#5a zvl_F*Tof;yx+(3|zvBDU*~dlw{<=MX_$#v6kb9k0$dR=_vbV3el3}Rj$~-N4s*feB z>ecT>OOo9Z(-vAyOzk?cQYNEoZ@iABm!RA~={Pp|y1L@;&Rar?CxsSYRsL|}>o%sa zt{WO@tGl|R;!QqZI20_MzjjZ_hpR{9_fJT^8qL-sC6X4?!?{uIsH9L{RFh<<`?c)j zE6n>M^H+tRylKAE=jjiX{#GMC_p7h9ELMJuoV#9X=g;@M^BAjGCB+h5mIMYaJEEPE z8#c-A;1cUtr{zrf%qLwxZQznv6`6JOmBp)>Stm}d(8|zyxk}@dVWIuWIYuj77T@w> zFEyDQ`L%1_vHchHc~7k<>vrA#>T2=X8q3#O2j(bhq;sBcRWj{(BzRWa$#%)Swo>Pp zy_pXyd9)@UODgvDIjf^nS@Z3@@AenF-tyUot=ajVdykN|-yRl4A=RzA+n#2;dhzO| zv_#bQ#Ne4)SF^6pNL*(1RmwEuQr@h-Nd;dfms>A%UHxogSo1{9glj512}aY+<^{)_ zN9S(7%Xh2nR_b p}tDDS;^HPtO_^51UJoC0=yTtx_53U@6BeKO8xwGFS zD@@qdUX)?^K+=5OK8DY|(Jymu@+-5wSW%L{O{p>1bA_+f`~>@0t%)0Fy}hJfIenI3 zXtw$L>}#8%)U*s8>I^4M77E?y)zO({C~_%G|5r%Tj`bz?tLx)eHhfOgul?F-WPR*m zT?yNxfL(L0+xG;NC8gWFI1u9(;@+!Rey2l|Cp`J*DvNLN7fm~*zhq=&m#lOz>McxB zKg_4} >N=VyK3i|rHr|ECX#!swua_5j%hc|Fo0rJ>RBHd3o$F5} znS3q!Y222s9=$Mi+tuQ;rmNR~%|0+!hW|$36Tx$Qn>?@N+>r>#lX3B5;5-;n!I99n z*xJEfHsRUb=gNuGFEjAfa_H=1I>2PjSpTDeVSxb0i;FKCnfrcl3wlr7z_+Mme$)LU zA1t1g2iiV(Co=u_$IZ<45?`OKQ2w&|jzC>i*TLzslhkJ|(YU6NxpOh&(|41 Y3Jdt2H=poxXj=Azt-6tXB+8Y-EEbvsARt z(7JlzWZskPaNduyO*%)W-)Jg%dAy^-+*?g_^|P8MN}+4E2hTh+FY#;sSEU#2ze3Xz zlYZS3<&~S&82_tSipRU@*X Ib)`I!U6&l%lR%vxio&*c >E&6#b^fYzq|5`2le(mzd2PPl*ZhUcZ%s=L+>(VEVy*Y9Aja`>|+$n|b6MVdT zkFwij|G3p?Hs`VJlLC$Q1q=ZST^a0An@_Z8xBM^sJzJjrj(%&_uayNhY>ShX-}o$X zR{p>3YoxM%YS|Hse6cHzX`$s){(Ss+*7n;q&&6kU98p>nyj=Zjs _&TKa|abI!qS&5k7^Mr{)ldl;5 z>=3P2+ Ye!CF2Y zf&CBTMCYxF+*Q_a?$V6708hdD?azd77Pw{1x!x%lTeDtWIpEs&euhT9Y1&IzrE+b> z48xAi-1j8oRfYBQgb59^uYKRz9jq;C7MaWWsCSQ%eaDBIgDQ;PF@j7hQx<*u(h*Z_ zFmKMY;_Hz`hxx3ozMoN``ZM^-#fyUFw&~m{+t%~%?dV_bcUJO&-x53DSyQ>EtLYq8 za{JwV^(f=q 1=$4aoZax|i*w z%_X@%(#nUQ%t_l3aeI?g7Cr6<3A+!@Z?I(Tkj$kFK?t68SboG@Xkk4GNIMor5E zcd-q6CCjvz`nfDB5O~)Y?%tuu!<+l(Ok>?ou2+waC7teS`y-%e8SuD0;}8o6=gl%N zrBlamD8?QZ-p#DZ6=2$CJDJDn)w>HX*Q-W_ugPA*q@TJn `jeatW6#3HK&IQJp8L5&Ck@}YI;oQov!t*!Y9-CTHO3%yPc#W zRSxWPwK?)2BgJrq9D|t&=Ym@gY%;$sz4f7}CArtotfY<0!n=k!NuzPWlr@J@cYYwGr>O|y|XvY_2j%}q&cPQoFt`w4CZ*EGX5UX zG;q~DhuA3Y`f&HwzyEm-tkoJ9qmBJ zozWG}^SfvIUhcEL*c55Sll1Ma0f+i0MOU_SD-Dy2b2zj8zLeBSsIW*c2wL@0vSsDc ziN%bSa?Y`y2b-LJl=DBG_TAOY=8&4&%!5fUjkNk!?3J`%cItTh+{bb6CYs2H2Awot z_I|mkQdU=K>cv|Hk&X7Z_D8d~D7}_jb+_u$t9jjVm+haYC~q*F_Ndt8&5a^`H;yg3 zod2@-Zj#=;Gwb7Z^Nfk{vz+(ZPS&a`d?l|bR*=70H-8d8_spirkHuNawtO`EHsSuZ z6?JiKFW0(k5nENMvEJ&TeV!W^!~4YNT^-ZoBo==9#dJFPZOl1W{^QZ>AL-mGslPrw z_R8+udDr46y$rB5dzp08c4@U{d&IhR!k*qsc4l$r9lbP>|IXz8rLKjud7EE7{UUZt z+0x;@iS(+AJdct#vtB>Fr#I^9^Mdjl*M*)YK5~{0>^qwowQ!Mx>8i&s{~E}>mtXIB zi7O>ly#3f8MOF5%zgt#tiZ^N|2%0k`CQ2z^Wq9QE;9L}2k2ANVYu0T3nO$3$J5zk$ zMEfsV?98wuIp*4N KD@UYg^GM;wh=ORga$<7p|zt2}abWme`<#NVhP2iHN zyH7~f1oTRA{7#wbFne9p%6XwDexF|8VRz}1 Kr+R#8-{FJc D(|X0O%?B2}Kf~^x zqVwzg#s9aWA{egju55ak*ZA&}-u`_HwAuJwv s)rg`SaPk zJF~lewoiI}D6CTb=5_DNAB-J`Zb}4nJevCWWYWJCG7l|o2P{5Z>pjV6X>8E4iQ>D3 zPoDj>(j&Bad2`Q+70=twRlHpu zmx*+}ZvH<^XO-WMeo zpA+w%_qyfF+D|k0IGzmLab$wu92ei@0FRfxAC|ZrGtBIpuG{u;SL+hyjf<~3m*n0* z`O@>oleZ0jC9aFDcqS2I9KoT&DI{^fLDWtuz}}KA#4SbdnA)TdXJ_TjeOef?Nna{E z=ajrE3CKE}G%-r}@j}1I4=;ANu%bz1f|A`L)aI6FWR6UsZnbs$k1C?eZJQibW02Ui$GCFF+Quc9!ffsM9%M`XY6uDY{vp^q(xvyq!sOHE zJXohS%qhrEd2BjSD6D>e)Si$DtAetW9t23unYwh{$6pE7p@loAy|bEs_v&%J$Mrq+ zk8Es tj1* m>>4e0^YH6Xad{Pnhv`ncjyIl4Rb_v^Yk#%N)1FQDEcSn! zdeBkSl1qN+sVV)%KXW?6EYH8p_Ixoz!OY!y`t7izcTO%=k5S{9mX(nr^3<{+_uz?^ zRv`)b6$jZIjw UeOcf^eCOdfYW z-OxFgyXf`pjpaRGO<6tie$LH4o4HzY!{5(K-8z$#^H$t`&^@a=hTTbZ<-eJZ>?fzQ ztl~JeOL68B9UYF)+srMN+K!DYmc8Fmo5%fVM$+lVeFq+`yL+XCF=yVRia(oTJZ^+^ zByFfrSeqErv`NtU%r5sc7445BkNwQB+Q)F|;VcvDT!o8<1$`@5F*sW+m?O(6R1o2F z`>=<`X5|g(e}!0|Pg_3Crq}(m(kb`Xe2)rSJ7dfm4lLMU(Cbj;w1mGxlw--$kNep5 zZk%21my%n5!#kL9VnpiNO2)n7;;Xh9eR385Wxl3qmFj^BH`2KkiWMtNBO0z>+&<~s z9b>Lbb7mOy tx@mweX{I|ujS4Tvy8X9*ZVIByq0TK9)6eO-PEXf#Zp$bZ--Vc zx^`=Az`gD2=UyCmonZRpO`*cfrA6H5rq{)v6Eu6w!t1HOc5k5g>mU`5Q# iM3p?sCGWoZd3fsaz2!-_^WEo3=g8leTu?XJ=I3ff5#H$L`j&kO z;?GL-x=(L^QZ-3{i8*tTp~#ZZDmxSI-kBQ$R;K9n)){-URLOmF-mt#^_nS}YLO-RR z{?IbnfAUqtq`Y q3DP4d=VtOYh#C+j#5AqW_spdQZh zL#WcM^0x0bP6jXSlJm@qs;t>&KN4IbHuZsKON{mYg|fTutkt}4+jqSF<-aGhqGtBn z8hxIB?DFd6N>A?`J$&&U$0<_| c*$?0m(vrYTZ@l7F8k7*${uiQ2SaY5S@v; 5gUVB<+>8>!TI~2W>3*l4q+P{%XyUcPnBZPc#vk7*%~d!#eTsqFFg% zkrSp~YTb0+D{`5#|Msu_>koT}PrRkxo|9?#dx7Xiky`Gc=Y4?=({gpX_54|9_yq1~ zI(fW+k^g<&30D8CX8USKIkWRl4y~RW_{F3w!!vI1%`{M+bm)3&{1Y~DMK=b`OKyG_ zC;hSN^>%;0e)HvN+3Rjh)LmJiweYRA>jUc}oqTp*LXRK2 bk%?F%#1jEux#WW-t8G75ycm{;jSn&lOSUj6T2MHFAHg z+?Ph2+4r%fQ^D%qkt&P$+K|H<(n}7r`^Yt1DdlB|cAB0rvHjRN=dWz$^S8@*yF4`5 z=4Zbp=F5y+zDK#!3;u`u9C3JP;HP+x$#DCc4%Ve-md<^ aKE!4&Fyd4;R6hlmS4(U{jyotZS_%wr=6ahp54LgJL0ZY+J51^FO;=0 zrs`GH{kkMp=iJ_9vu?57+x}pggyq7Sp5K#vHlGa&V=cbQH{E~X(vp<>bNepaWH4l? zvD8#`F-@y#JjK7PE?l;#J6d4Yixf%TPj1O;ro6E%JpL#5=l|`G0!y<_OqDx-J9=e} zr}2w|*Jek8=LYJXn`fT*MeXzgyH&P%W=`wA9Su3lT=p+}&0UA}m;V~JD{-%maGlDO z#n#e#{W4p0=|(v<<$Y=|Y_u{e`B$WSahEPq>zMSA)wuBF5|z(N<`M-M(#y^Shj` zi7dA`sKF^+TGaG+9iy9q_JvceyTUwY_3C)>N-#5?+Wuq7vSYc5h868SPKlG;&rJ~i zDbyQs$wgmy&SK%o>=KKFzgwT0=2T%T+9-9 {Pxu5y#zrJy&t zi!*kUQjEn+ ;D(Z$^9mAa9i` T@jPMj ^vw+xq%bvU@)yJSr{p z`;a1{=Uo!o=U7+oTe;PP=jM~*qi_2sU1_|o&we8B*h{9Bx{hbw&Qbf?T6=o)h6B06 zFCLxTxNoh|lA={1zqf7+DpqxSu;a+CEGdDOEEe|jOJ4qVIOXtJwvLIbMr-Z2hY@9r zE9(#P|GDgOrzYtBRogN#(^n6!Prp8GgSuVPql;l(f>)v+^v3#X=6$Sud&kXwp t#_VghG9GZ%WIZ$HvNV`IA@uN>O+AfVc6lObr%wxEi$F zGFi)W>z1I^gQEE{ciRO|xZ62o#1`s(`6i`z@Th{wizz>@MxHHrclXb$sKVLd`Q@Ea zW}@@ubG^;_H~K2abDgx0>y4V9*k7_$`-l4%CNK5d{*w>bGc1|tRWL!g`r7H&Zzeo> zAnm1kfM-9a (C`KH+dUl7^Y_U2$ejbil;T4K 4$ z506Qz{r`QH5>&ZkZklels=pQXr&8#-tl!(`_15o`)UA3HwPTv~b5?KRIse@C2P8 ztL^8O$!3PQ?&|;l<+c6!+iaa#PP$prrEk+$Oz!yjs!eiN#V7HO)SIlicP|(S>C3A8~l4In}4%Y%D63z^>5m*xlUROZU`|q{7c($_v6eN9>V*6 z)*h1f 1hbQoS4>cP%bh%wM@8qwTl%|KCA#mcGmA7e4S)-``=H{@(mk z#d&k=_PYhQ9={RyFMeA8HklX7Ef=RhZ2nkZv)@hT{*s(jhpZ}Zm8Wlb-V_v@INf($ zGUx1r&WlkoPq%zIpPROcKkhV7Da#IKDIX@QxO+#W))&kSi%Qw~P3u>=$(M_Jo?YE; z*0%A-<+Mpwzb >#elDn!qO?kfm zySJeJl%)9$-+zhe)_-~hPxFL-Dqgx&UUufpjV$|T{HwhBB+cnR^L({Ai7&rLlvOXB z8++&;-wvZWemvJ^YfsBQ_}I71K+(m7|J9tumA9&ziZ&mKDlt5H`O(CsYbs3akNqy) zo}aym-`M-@8~GQ%vy0*z4G!JtnyxN)%x9)wQB(YuujUI<>*VU0HyO$o{;2zrd}QTu zdF7VJg}V<`$So4O$X-9SxcjHg(fH2?#n*j!xJc-t`}7m4vvrE*NqpWJc8g8-@dI1o zc`w`T)oOMs_uoD`{r{2neE-j
My`Jqm`{vBjmYk|b zM%(wB)WocLX*F?fUD%qJI^0)YH1{01UK`r7U_I|w4#nqOhl6%3ntoEZOR8y6qp5rC zGpCFF1-?6FE*hvxUk<8zXea&JZGZ7Dg_E5&Q@%dlWbyp|5wTwnn TPRp8>tsn>(& =-%~hEq&CzS#zRPO6;QD-ZS2dty62+p|2FQzC`)snb;V? z@6A2cy4RMPW;~oIR%4h|ov`HJwwon7yYkPj{kP=)?>ZyiB?f7)o)+)8y7%eCFJV8| z7`pA)bUj_>W&mS&^Qi?ZvmW{C9JIGQyZz41`aH%vUxKEof1PuBqUq_&96NSMfBrQ2 z&XqMkr&<2apY*!QtuNv7dW}M*CDUtP34c_$wYRSPHD7T`($+w;ru{=l^uixvK6X zpTBFKPV i_T2u|-={>V4lEvE12S=+c(ceePDuryB>qFv}d%TI{-cU)Y4en=t`j zf+Adt1m@fbDekji+f (!nXZ_?kt3tFg{+wF5Phak{Q^5TPA qMBU@tL5qxpQw>6FVpYx1Q^qRePeD8FYY04MF zg5!&y-Ei}@tF1c{B059smz+dQ~ldO!i5$TTNPu_M6T-9L3&x{$bH7>*nywy? N2X{P1i|aL%4$R@G kFJO z`eq00*uH(Y{n{CSf}`ZFX+#~==Jp9KzHz$Y+3A#+Qyx{f^K0w8uGbY;RvtdWzHniG z{QaA6cc#7(74LrYyyjy_%bW{#f!hKvzp<6NJx84N=b7T*U#F&X$;9NwD6RkX@*xYa z^4aMza|9)~eEOZSd;O^eNz)G}d@wTG&BNC`Rry_hd;WK>v}+abpFOu&S5ta+_UY*} z-#ptq@n2$4>6&TBYqHzEOwF%ea4G2N&El`mlK(Bdx_+9A^={F5zW?(-ZIU*te4q88 zK`i;fMShRA4xR;~hU$JR?%lZ%)FRv8d5?8nK5y?;L&N3Y(w6f)C>GpZAj+z8N =#}?!d^%ln=gr8dtts($vm-&Zt*Qf8?qMcVLdOk z^6BTLJzJ~y9JjRys1ko3Kl|f4*4Zws&X1MkZcR( T`y)M|h{Ag{Z!-TLor`&Sy+h46^h(CHb z_@DHX{+ZRyeH9Yv-=^#rdU3z;u9VWPThkwHDvX}(@~{2IJAtY<@>%`%@Y^-?fqU zlyjN(Irnw{zruOt{aYGV@hs9vW!3%t_j#SKzWI_9-h1bE^zcvLA^&5_KC6yhR>Aie z`+L96b1$8Ay>7~;&oY(IXBl(ze|#@sW9T7h5t|e9WAU0>bM?H!t}`xun6+7L^R_h= zHzyaxnFt^2c_yjP-Ek-WWx+4~n1?%OiCp+`VP@^`wsSq7b1p2dxcg6Z#hLwTOA-uk zKg}rL5c_D!{B7$T-X4G5cT<7u CKkX=%aqEkNOU7`ccPT z$i0Vo-|QO`6C?j@aNeQ1P?<41DqO_I;<=NeWhPG^-;VorOTM4sIL~#r@ABK|#-h5* zXW6)4R{Hf%j#YZ>ATej!ssFRuZ2r!0zOnPD C@6+VICU`&nt}9noCw`=TPW+qf9lsP` %Sm^%W9 v z5+NX(MCw1v67v7fs8{(J$bISa>#d4gd-iVqld7hps zEU_m~DsSEb)~BtvwS86pZq>aeHtpWSs{0LT({5~(7ub4QCegCBOzhM$0nvqb&aRvk zdGae?Qu~i Le%r~EJ18vZ?)()n;o=YxiKFMj%cI`sR^Jb^O*?#lIPJ(0p^R$c7P{j=at zOX~Us(_+Pstn^-ax8l&XPmg^6zMs2m?VX7V?>h2cUpp>-|AoN4FWUagOZHg3Kak^J zm^E2R^Zdo<7HlHR7k-*NW3OSMVYT5^1L>>ro0v@P?H9|w`2Y0&%VYD`{g2Bj+&Z^X z!e--y_4hx%(4M(oxBb)e7mI~$b$AV1v=(jJT=s2a-=rl$ZNgdtX^M7^5}6?@rY-bY zDXFpbhVrw?yeAxNraE4n{5(eT(0=nw +9y>f^~+h$zdOS=<>%|Btb%_=^OXJ+emEDr zlSAbw$L-cls)dG;UXh$(#|)3hS^b~B@bio6C(Ho{Ez~ SjQY@@a+1) zrMt{!(c-U}*_(~?>NS>5yVYZsc5K_ee^+;Em|SJhcb{=HCT3btREMDHr>Mz?CbjLD z6Zva)!OrU6{*$KPy<7jc@?LliFRO}Xi}sET+tAESbNQ1_`y?qj6`FI;nKXxYUw44O zQ6pjN7kf@FTe9dYSDvEH)yX05U5dMR#E4tAg&cpl;b==i)5N1jLWejX`A4*W*%D`E z|9MX!?|$2i2j?HOmUEatwR@8m6LH7)#zS}K?#OBj);YFovd(OK!n7!=UEkL?G^Zlv z Hvo1&T>B8{K+o#B|DE}67#uY6G6+CROgO9H1)eE%VMPtra969#{jH}y`QmMN_B z LJKuRx z*`` (Y}Snj9;ycy|^YedyB>&@sD8 zVx5AQXjRGuf4BBYP1jCV{45BxJ?_+}7;Pz|y(;2H&axJP#_0y-uOBIM2 4%Ear;?!tA#aiV+H)n^$$*YA}!pUKVC?Q^K**N WrtC^pi}g!Fnm)7HSl;p9=i6q} zC~hgT+xnRN>Dy1LpB?b9`VLl7#A7!W*gT3$c+?)xI8X7Uv3ir=nF$lmGpuj>c!qVm z+85tr^E>T-eU^Fr^>W`am+!n;>2Fq8zF6M6sdkD{e4_U0eRs1qh^3}X$eh7*b@^c} zgAgCqGg4EeFB*7fT7<1AduX5$x%KqwWn0+Vqmnmd?>xOOu>Y?~Cg*CQ30~Qnmmc00 zzF4Glt35z6`km?I*iN25b4|4p*E5_A_;;mHGybo^t?O6Ce;+Q148K|Q;dL;_j{kp6 zCT{Y*#u64}`Dlq*@>-Fu~b@czU4jqE9~wW#P7Q1Xx53sxJ`4cA0*5$T=t#c ze~Ut0+}gk2?HgFXa^xm&45=597hpSn=aa|R6{?*=nk$z@&iP_CdE&ji!m!IK=hl@i z)?{DxO;lZWy4LZOLYFz>d=)_xA6NM-opF-u#QIJtE#5U>Cp&wrv|_yCIPWhbPk-af zgpC{-FZMLwdA~a8TEM0cMI1~@>H-QyE-62 z&fm*jZ@<*%=7y?%f%i8Rt?m>@6dVx#)0Td0%{SM71zR5kd|miF_WbVv$1 zub-&D`1{eQcdqx3aohd)V0YLy>13+y=k zI=6pc&0gJ&*EJ?K` 9@lXGFhji1tj~gS7UlFmHajd)4OfKUOOQb}{nfJH$Czfniyeimtg5O1Co3+yg zX79xTn&zeFy|-o9{ L#YUgVldomuTf!b?eAYHUf8WvW z|0^ HY z6DLNUx%}ku@5`4&q~(}bo)d38sBbx6Q9sdO`h@vcXF8~q?s=$r@qXQXUCrA4Do?(D z6$oBpGi}1m@Hs~tZv04VuVm%?Z){StW$Dl3VuDu!riR~;`Z{I9{*K(otqRtk=W9ow z-+TYokAIe}MIRHAqF4$dtDbGiI(_QLX$$6WUNwg}*X(~IEZOeU@7w-jVpYymr>9Pw z_PcFMrp#Cr!l=@&d^Pa}6Z7uP@>%yRZms e z{!Eq9sZRIvMdz5F5`KEJwCrU3)ZL{m3j&_)=X6;wxnxz+tKtvMFa7>Zuv^}>^3jVV zDXqq `nG7E$dVxu0Q@~{=>n+wtv>UU#{KKHc!v>pIB*Pd0LBWT4=?o{pV8dlt0V= zlfT^B-e~z152kF6sz0~0{JlhrPTnb9)$m^Dg~wZ)`MV~^@84fl@BH)GD&EJTio&7A zvsayx^77w%-(>ogYN rmbgZ{8Qf_IyW--SzMG^tz$vr*8iQ0HAG&$ z=-i{fo@3pbxS}FmPVY@O&v!Z2B}i}Z5x$b=DE O`SOh4A?XFG4}rgsLbjI&eRvnKRh75|<5@%63snR-&e?mvI^oS8RO zG3<|^(M8$*_Qw hZ}{mZGJs}tUrC-9XVn4)=4hOa(aJLDkbFP zpMIXtZFn{9)U{nfk9!V%UTAd1> vyz`p6=f0nR-mhS;o#fR04^-kkey)8}ZssDsvP(U7UhE#P zpkw;2FK#TWNj{ZWROJ}_d;bA;*MrX!ZfHLj+VbYn9UIv zR&{|3)7Bks^7w!0LQ%`D37&Z#zaF_Q z;GMcHKg0j~%EpEZN%=d dOh4K6m1w=`ufxQ?>5D9fxQ|h z?L{Urrkc(>bZA!Frddm@O}9In-bu7-vO9D24EIsqzP33>Wi&o!H kx`hqFaizTaZP;(oowJ@=mW{;KAg6}nwB9saG- ztx8=Xa3*2`n@aH~QHe#uvv>V^)SR>Yp#90#j8ALwZofWxfARjh`vy!+zY1F`vghee z_BiRoxZiwgbI*iXM^Ap~|HGiNmb3nSP7Pc9pWq6ku--n5`^_w47i z?|+lNF~LG#P3o3xOxv&7J#U;R{ol7&H|9v?leZe7QPcYh`zod% 9~G#!_|(W zPi#e&OsUVzKb<|YFYaCK limOQ$oPs|BPt zn$Fs2XSsDlT%+ci_B3^0_sgxq)k;3`lMgSAkW}J+e(Ln<+Uv4w_MQC1zHh6}IW9&2 z9rZgtIUX|IqSE+fl?hve*E#3YQzf?hG?j4&)SuPZ^dkFnS=VCoCqI_3GBjC;`UGZu z-#67_<*G@s=RSFguJ}+=cE^0e?p~v%3&IY3+ju x!gB(C+xI<=;M@IZ)sA+qV;8#gwsf=c z*E!9bQl6mXEu_G_mifb7-jHXD7Ur0HJiKXg(Ro#+(E-;N>6acYe);ZK)c->94J$jV z#Mf %jzW^9oO2<_8|4) zZ&kPKQ)kXESW&~PXP2fg{;Dz2@b>zz2`b&;Q_jA6W^}9DJ2=6b-{@`hk(h 3(7Hnf#SUXFl1})DypLW&gw{(jHHEjXoLtKImIw{(T`^z)7pl$?ujdv|7%xS_&ZtEpK;@2y?LVk!a0@c3a?Us9{q45)_mW8HP3^acgE_)*}a-{_DJ;v4z0Fx z?#DuOe#gx^5Vk=jYHm{Gh7bEi9zIUF@FnJp<(X1J&otL%%%yiv_wDT3dFZwBS?hiK z6Rp Y$Kv$N>(p=-Oox~IKL^IO0E@X@H?Nx7PjnHEcwP47RqVr2<) z*oHTCr}sQGRX0DCrT$r?Qghyv6UQaqF1OiN-XFC6%Czfombq~bnXYg9%fhYscGkTK z6eyhe=FavEMgP*J( |v-^P}8f z R-JHWd&xug`dhx zV-6RKJ(u~oWJTgjz9&5rt3JwGE`RUz*8Qf)@6?hYhiA7`+~vZ Bnz|ish?+o3mott4`T>_S>?j zm+=+*r- )VM{p|! >GRV;_1VEA8xyBQJGg!uCh!~DQ14R? Z?D%+xFH+ACUq$%i-}=wVNLlX_FsSZ?>uu^N&l#JQ}>>nng0@ZCLNpZ&1%ZK zeqM+iTaie!BekI%9hnL%^q&LmbID4}wyK`j 4?dY-S)w2*npH?d^eojLib zr)K1AYK#of|G8(`+4>W|U-$TXuv|4=B6(!yu1P!W|Jx}yCZ9if&GO8%(5t3ui;b?w z%>I$Ct*G@b+G&~RN^?uDHwWb|>a4lCZ)NVWPv@@8GPRrX-F{EYM6uh)PXGUTkL%ms zyi4yaHz|CG%8{?Ewtmj`Htn--)TLgtPv7?4$Zll%B$HXr|61;K-RI?;^ -iqqFFB=+)RG<{_xD|du%IC ztH^vUdhYU~Sv2zMOuxp%XR=a`1ZA8F^4EOGXF2V|lm^bK^)q8{FWI{3&4u3?rkYnD z{IOEVs<9D2ePHI3KQ=D&4%Jt&XYlRNh+~{lm-1xg-`en=)amBC_}jzz8T6MYestRx z?s{)k=ohK{-^-S)ud(JjwCTv5OU2RJ`Jy87!lfJKO3U_GzyBd|!2I%pX)MoOwWitc zRP9ZkB*XuQf9|LI3OkS8lss}%bEnzr)Su_4)k%H%Q&q-t;TPKi;VYt-M1@#R)Lo8R z{Na1-z0#ZPAMV~NJ$-%QhyC0i&c2!T@nyW<`;T=`?;39os@ZDb=VRe0a9nkr_!h2f z-V+<`=QJPAv*Xq_l{n-z|8C2{^M3_i+<$dHPUz0AnNyB=oLTs*d4A>*zr!Cx4a&1t zB^^%IuYP&>S-Y|NtU{Zf!U*s4Ci;Pv58Rh(s}`MHJ^9wHm^aJgYZI#%XQ$POpFZLr zQ?Rq)JTH^ls#O|ct{Z<$lH^nQWO7T$@FlyiJbQ`u#y2|Ne*Zl0D>lvXvgY3TfceL% zgnzo(Mb~)rBpFUhvi{WzS^0GNBE{GH_p@ijB}XMM^SBolR=YlK&Qn`+!JX@EwQFXG z#c$iW@aJL4of97_d#&K^Kk|CXli6nXt>1oSTes@)=|_hZxTJU&wVZz3`96wGf=z7w zeC;#Yt2aBuSiccDbY@@3tG~aE9zU0r5qo#MU-*j&-=%%W`<`4)I46AJ2fyKp;tG?8 z0jy{C7l#(bn`+oYT#9waY)m4m(*JOsRCB|Gf#h!{^t7p-uaHWRqk7oOgJ@oH)y4_`1UXPSfO%Y zyMpNTE#;Tb>?++lf!pw-VY$NAx3aVQb{{;Toz`k{Zr7_%!PYVl=6y0w+MDvQfW6|Y z#Az1&)|nDKGgcmINm$6>TV@-XzrNOfe^KH-WgjDTp3L;$wtXjAOD)fB^$?kuy!pt@ zjhp=M>eWtAx7qt{@!G=+-!7VVrGIvi>%qx-y$*AZ{}=H1#aL @%IUq~`Kj*F9p79pBHhIqi3C59_?#7fbicJ`+B zGR-lXQL|s<&6(vVH^^HV*{yjzYxb@?tt&G#Hwh#>X;{yB`q<2=f1G|4-aFJ{pJDjq z-p$UV*Up|3);;5B{90i(_kFhYGuh9%@9~UOe{sRMOkGkh{n4{+ZGQzWbEMS1j%Kvu z?v?JHJO9Y6uE}@pW=7qfC2cij2EX(EF!iFuy{qQ8E4@9~J8k*p?&7}VSI%$KmFlR7 z40vUvo6;M$ pK5(^rbeKW`E^I#Yi}>w--$ zPk#I~l~rN)`8;plX)~H *|Cq>ss5* zYreILb{9|b71|rP?8M1$|LmDc@)LvSJUDfv=IZ91;kWuLJ}C62=2>nQ-*jQ|<`){- zf-^rq`joUf&;R8zZszRpt;@{H8vb3?&&tqyeqha1HH++*;=X0ItM1J!+y7_ttN%fn zQWlaqPYVv11=Vn0{ 35P{{wAG&)R2_;?*6}PCLikiJ2(BlSuo)M d@k(HQ{Xbxx!`h>(-&rd(t$b+w``gF#o>~@{$p=@w z+L5;3$8Kf%M)s5OuR1 6WX^cm9KN3wRUs&m|qabjr6N?8qaTj>lGoTc6j}%u)59n0|fpmv4K%O +{!d2lnjTbY#<=od@2oFQ2sS+lF?=>#Ef&m=v?JC7+1e3I6A5y1BpY`TN~_o^8r+`@g<9 zIy>*DTEaiw>!;RlU9)IOeD&qKpLXm1ZC!a!^3wPDZ9n K|$)f z=p7yfW;q49K2M^Z9-K6YXneBfz{&WQm^pkCq)jbn++TWme|FrY^PlbG3mv4&miZ<1 z%Ec_0#OB?8lx^kI+1Cr4zfR m=dlj@^VjZ4EPVU)+PckqjJNK1@JnTZ zTj%mTd*7UzibHiP-u*almCw3G{p}g;3!k?ZZeM(*=hlPETa1%glUIF;cr|&`wVht^ z>-&Xw8pPSpGisQAw9R2j3YQDlwBtd|GgAs|X2`sM8~9`K!CK~L$J>uRzkE2E)ww-t z#vAUNcWoDRtujlPd*zkh7ZZi%)u*M4ytUY>S4=#Zqs$x`k?dEW@pu;BW4m;AUY0_! zRp-`9NCmpS+|%&p`2NjC+he!?mRzUWd+5ZbO+VjqIP!%pI~KCS<$=>WE#BjtHu|w) zCwVvz{PW0sx?H1$v3z2n_5bXnQ*N!=T>SRx(x@2DM gU|c(@wSixOwt~!O1y1ua56X>6$ag*L=(R1^(+kykI=f z_(A5z%Sg#}A9A)$J=pPN`4sQ<)-$%h-E`&18S_&vUPn*3@*Fr==(+G~_5Ll-4r+dm zcl~+%SJjG^$-AH2c$b> XY zSN(whn!R8CxBWCR+S~8<>~b4-O(Z*$0HY Bk0j=pL|S%gH20?N{rTfu=!4WZspq5|+h-K&h82n$23D>Stg_E@o|@O8U)@ VcuFB3O? z(NJ5$THh@>i&JL3jqg8krzwa3G2NcDBjI&?kwoF&2-_=t*B`wNxbXO2Yss5qt#>ZD z9T51qdVh9` |Vtnsnd|AXT`z&itb&OBH{JN9dG? zez9l%a$Rv}W`gn#hrb!`rk1gH?>c&`>8jrUA3pQgj8&eUnm3j0v)#WO->1LCk8gi$ zaHsCU-s9C;*VF#2&cBxZ%;fRfExQ)6`E$-Li!tnB{j;sprd2dq{p2_Aefs4OPqm+X zwC?6fy_O`I$#Xh-73 +6xb;Cv(Z&A+98E+39-}&kE+R&-18>3so%Bw4xtqMYK z?mDF=WajG>>Fl`U|Bf$fp8nm-=(@sn-TiAm>n t+6-Vv$)-TGZmFF5R)B zOXp0%w~eckQyZg~G}>O8u)=YHbYaJW!|S_PBY893-QMm~nx6YKL$Q)$mw0d8pDCMt zHdhv}P+J-HvoPt=^iL~;*~QAFx(u#21zex8f9|ynm6^Gl99Om~ZC|#txad;XnzpWE zCDCsTM2>Yh9!l^i=McFfQfa1Q@g(QT_5I zU@Ri*!lxzAt=E5SQ*_#r! zeZKTy>BO%WKkgQpdE$IeP3IkjL{+tYvtHaOvS9XVHfdpU>VA~;y#D_k-?j%?mwuR> z`5MmfJd;P=Hc~e@Fo^e%tX{>RZ65n2SXdHopSiZG+@e;#a{k5MlG26o3wGKqPO87? znc#V#F(T;E<_#hlT~}vJTeavw>7mCw5*4*F3RPx$-*%o76Z)2L(pkYgVhvYK)1F>4 z+tep1(dLnRy_ka4o-MoaCCav2&MEcS`wrfP(`y#Kb(p4gDSY82>4QmKG1-2Ji_8QV zxusNGbpuvjVd4tf%%G6xV0cz@mU!X4js+h1F>}m~G!98yi$Cw<=-hDp`0euaQu&=u zW!F|)t3~#RS(;{Uh`9b-?0d70nQcpy6Q@UItMO3|Ju&;xm9y8!zgaLn_>b$KnGtjJ z)6b`{INY3Wz|Z*9s?PAvoB46_ag~gkN2@}&-CgFBztyaInje$)(G?q)mfW6_bah71 zil_5`v^JmXX8RMb>bXv!`Bm<@d5=ZYiel%)S0t9a*{Y^{WYVwe!9PWK=lfawII=O8 z^^Afj_kEV~{KL*OUMzT_Vc^o#P<6P;i96{ (_G5`&Z4TVCVA&z0p6#&vqM5nR`ZM?;p+xabcmw%>V7mjEti0aNSL4 zSf`~B@1!{`t1{)vtM!b $XUok$ze;U>Ja*D(znPksb^l3z+A|07W~QpA;>%BItT0@6E%5S# z7*W%H7pu9m=JpC%N#}et@u-_4Fx9r!F6-)fr(4^a-NiN=6dXMKD%|nyWYN+dj+#qf z+_lthH^*(QH*_>Q`iL{<{ollZm*q#IKiPkB&aYnZ{5iuDWq-$>xf|?0Su#a;Y%R|; z^{=?F`Af^)z0d#m9_@}Rl75psr*8LW31$J=3(@OlPMqL&N%5wMZ49^Z#l*J;w`}CB z)mQKuU088#f0#l0(esyIS^b@{^y=YE9otD;O10gJ7}-)Wqnno9UH%tnx))%XACd z*=v8D-XR)$d#mizlU{Rqs;!@uwYh7X*T0*hcP09o>;Da(6@#QwA4+lfMtO63>S!uv zpKYny8f)=kWo)Xc?sD~vW$qKT+&w!bUf=pWYwGJ2*CRgLeC><5_S!aL`i>)ki=6uW z)H7b3UaPkIRq(@xSl<=bXL+9xD&+LcRy2{^5h%9g%foZ>i>^oJg}(D!$)lLFJg(#K z*Y{PG?JkmE%47B?FXH(<`4iu}eb2h@MP1r`c>Mv}HL;tyKCp*JfB9Bx{)p+{!>itZ zyY}z6sBHRTdF2b+Hy=%ke%h|7&G`9&@v4mI#q-~7`)dCj(9&8oKkN9kD+fe*BJQ~> z>g8OEU~>>T_k~F%DNJiC)gnAut}z#L9NfUF!yE13Y=87lgwbOgo#Zd7F+8{JP8bE|f1Xh& zx5@CAklvwhJh6@2xo%s>OjKa$@U5NF!QJ82W2RY}YLZiQWZAjS9St3>>p1T{o@l+7 zukFLNYj1=Ll8fefox5>FHBM5nX?AmzaNvp#S%Y7>O$XF^GQ9;Gif1b*bnvxUuAd;& z{?d!NKqj>&?m*~Du1=3D9Bx7!+*-T`>ZFx@1ULg6zol_b7rMqGI7^{=bIbZ!KLk%~ zzP9FG=0DEtJ>T43FOpC`t@A6{{dP#_vHZNtA+^6a4{UDp?%nc2;W|sGl)+Y&`44Z- zt$(<_>b>MmTcO}<=3m~Wzi$rt)4TWnX8zzS{0ndAS FO^sfuOR$-mlr z7A$1gb%$Sm@2vxWpYFNRF>QtF#8tB&d@z}s%zMQ=rmHwHE&NL66gIQsFvqi(^Hw;q zD3vqSPkixj|6%V2SJ`c*rXd+d6TR22OS@wAApUe`%uAmK4J&E_W>u<$v9?Iv*}!|Y z?{NB?=pAX(0<6OB-V@&E+g+J@{qK|ZN#<*H8s+XOah~Np8KBp6(I@ncRV)AT&RIVf zcZOce5>1=yd}LK@xR^*@*ol%LrB}Ch`lK&%bZuUF`eknxx1qr;W20M=Y+HnM^^Ryx z-Ql#+o0Icgai_EToCiIf>7~wZ?Iun nwE q~_df*VSBS zFz4kr?t0CrJ(DHvplV~6@2kfGekpyaP3KbbPV@Ml3308tuwT&cYgz3KPv*F_ZD;tS z4QI~FJ6*@QR7&6$U$1T9M7>3=Q4XqFaTmDHT+-puZ@aOAU#afkAO9BZ!@sw#Yr7fu zbJ+xS#gNxo22b~IQ|&hoov`lQttrABzpW-3dj56U_poDbjgRIP(I*abR|y>ZS$~7~ z(<_%huYc67U0t~CS<=;+Q|c3gt}VN8M72`LGeUjk{1e+N7kMqcutX*!D0ETbzxn$G zXB0F2mAbpWR5UevonP2b|IkynM0V{^@n_+DtMXO&r&+&8m}ZG4`>qhtM45kw|EZhY zlKT0;|Ap~XE4SXI0dA{>!@@n@pFPsB-!CgAd9#C%8{;143x|4=uI`rkCdTk#>+vl! z9&5Jv1o}MrRd2~vp#1TP=~uB?$#Seh^&LJrOB$Ir{1$nC>h>F>Z>MbjI~Xtflq1E< z&DLyaB9%U4V#$PQONxbBELFDsns=c|f7b)i75x7?xPw|G|Ic2~z3bO)ZN5 0`mOB zR@ bECzxWpc2Xt^oe@%3Yo=DM!FuHRjKjkk^5Ozl&B*T0#( z(wQuIV%JGNi7myO_&D>`OPE`_{JA|X*eYZ9nnW?4>-kfm{OopWE29ZdRpi^& -qg( D!%q zZgy^Vv@nrkFG?0rdw1+hzcI6AiRF*^;qhNf4zHg0?y6vidpJ+>w_D-=Gnx-ZU;1$4 zFdO6cXWx!#Ph(?@3)XSrFYCEb*~-(LoH{u=g`+5Nx63BsUmqJdmE8FEzTC!U&!PI* zUb2_DjfXjPMw?~Eg}9XB7x(?whj>|?l2hEN^6pF9-K@I@|1mFozopvk*q!GlFYnv# z4N4V1x$3FGKG|%aiDkE^-L8^Z|9k$Ee7`%AK|w8-cPDI!z3il#`r=$?{*#L`zi- yD9wY=F>NxXfHW8SD>I|-s&~Ezt!2E zPU5?+tTOe8?c401*-8JRj6VH~nj&~6^KG5wv`?4Ui&lPnyFOv}_g5Byr&g<;N!Y%A z$_(9ee>R 3(fT exx4knyoK%E=;E7>?}e1 z?e}&RFK3dm4SPT5dGh4Xw>BR6{k6ujeo5W_ozwQmXBsrr^ 3PL z8kc5Hcp$@;67q}DlW!X1^*>u` F%oj|5l^PMKG5b(R zg4yO7oH+uk+ I8HLvio&kJX9Fk?DKQ=!mcg5u1Un_{Fv7hw`zK#tEBTIu`~s{ zG{azy#QXq`8E19UjMx%)xo%f6emA|B=gKXsQxfqxVQ<`v*v?C>;?U;G=T0=^2+nvW znsh=^m)&?~c!#ZBj?qr_&e@(Xm6tMr3{d+cQ+N2%qa3ee23I^6h^^JGxx2wu DTVf$Z? $2>YDLP=6Bkx=O=4F~m=j%HiRS#WO@8>VkIP$M-N%)J3dVjU&uPgUnh_0IUI@ilu zRO>>G%m)3ig`bo6*BUR$6Q6ao#SLV{?G0-ta N=?1=HZ zM~;6S*Xq7} WMaLX!_V}#dEJ&1__6S%=f&>~8&4~;zd5|_Od>;o zpp5yerkbehzS1=lH$C_?ujP4xjmZP+uVD>rQW^%{{I&`P#;O93d#oARKlJKunbFJ; zntr59&*Di#?Tvd2)Nfus`$AxLjQ=m6-h-u;>J@zMCR)iCmF`~L{DN=pEV&!$(Ka7% zw7#!8Te LsG6mi)+R+q2T$Kb}K~MPqdo#<~HN6t$i8KjVCW(`hNcUpl^{kS2D1kbQ3?y zzI67#s@&HaOZC?M+O+Tb^+|s;e Mv^_tt zCG%m`!9_Kpk0a)&oAjyv%$j#%vefZQHcLPLG156NT&Z aF3B&wl)4wr3Hu`eu z9s8GQ*5QU }>62@BM!8_};7^CnxAQ*!wSNE_?r6QDB2?CGUd2`z4Oe z-($E>ZvCINb#-f`=jZR*HJ|$o`#fK{%kc$=)zAMcyjpSW^^qfhg-8`Ibn1Ki6d z)@KV;w}1VAqTf44>*+;EE6#DNv+woX| zhnK5r>QtsigOtJ$fxx)V!!1XmM9Nq5YB)Dvv2Luj*~=^>uEd`ZANasY+l1jw_1644 z-lm_4>Z`g$I9e1Nz1>0%md=QA3SYbSr51<4w0n0yZgzD`x^?Qe``oh|;}`AOoERM? z^L5&koaBmkV$%XxuiWC}Xi@A`USy+Zpl_$#SoXT()}^8{*0{ye*#>#VUc0Y2o( XoPDjqOwB8)YL0W)hGs8YaA>$(-60g7 zA#SW9>_2BqnX=x+CERZ%w_94TxSp}}?dPmro87qDOk-XJS=^PBm}H@}Y8tcM)?3P9 znMs!xOjx )%p+EgjNRc63cPFe$amFuQ{O{ zt>RiAKessU5$s&ixl-p%PgrqNLnD)TppxC{6GBHgbgiAz%x5Pb*S$P(->O-%XLCJn z^Tu&$9z4PRfgx)4X+jIjK)ZCe-nq!pHmoDAH$>9X%jv&ztjhaq_fp3gK}IrYLa z)|5Lrhc1QP+MM0=xav~DjjYAHn$|2>_q}(PQ$r)utg`~ip<9_wbw#X=*wn;$?@QR_ zcuB^!O4C+#*DGlCI!>tkmTkgj&N^l7^|(H%r7Jy?#DZ#7{-@2DksB*)U-rJ_;$m|_ z-)&FUWZCHT9}E8w)}6bt%i>Q3n?#mD#_4d|NjJ}5>ALy5*uy=++EAEvnt#ieoW*y# zBR3ySpZ3LN=jNUK)xxu?_dWD!>P%aC>|W7tYrzEbRS69X@3d%qf47<^>(m>a^ap1J z9k^!OnQyiE@nKSuOvTBg5n9!r-yZ)tc<`w#Z~BY>J3NvL-*_MVH@W6X%~TQ9EB}l0 zE`Li4kS+KXd5i6L{f6}HdWJs74YrQ|8SDPu&(}SFbn>@3K3C+u{HNt5e=(bRS?j2} z$^N&?qdNm8|Np=A?9b1CIBc1w|KphVm!m|VIpF>J1)?AJYc$k_y^*%pl1jdQ;feKS zA1P6LiHEIoS>Dxq%gnaam(e<0)!$t|>tn}UlQ6f;S!PSJ*C?|sGl<_jFF067?AZHX z?9R`p7=7KbZ-F|K_!XXm2idD;eKa{&85p^-OUs{Umh#$%-FH-`xRgj9$kgeOa!gts zdCIHkJax z=WnO{SQ=kwypNsJ-aTvA(Q`Rv=KO7YrgO~Z{rz=uH@ioooSM7Y^@A~HUk~o$w4c&n zk+^l=j| )2W+hh#3Vl?0M*0`~Jz^{haI82Bn>J;Fj%dyOqSO zAeq03k(c4-dlUV4&)6PYTa}zq+_PTE>le@WxBRj_;xV>i)8llP~yJv@W Gb6>pcg3EJSkV%$ZrY(fsB;9w+G}-M23VcTQsv4_MoiGnJ#o=hmZH zy{qg(r*SQP(7kqkn(7Q|r)k?V?;m(}=;xN$`rR^8vH9ZJ51N@)9O01R(3Z(RcgXC& zu!qsKmUae(&vO{%_tx!7c~f`$#gY|qM`|)pS7#hv%JNN1z{zJOSIcyR<(i2XCQVpd z^DuNlqfC>j_?NR0fwzBUXJ6dbYS&q5BqaU0mG|!Ym+8&TJLBKf6r24DRa$cI-PZ{Y zj6d$p5ndf(_ fw?f zrR6S9D_P85rHAu-g`eu=wXEIgmb1s|d5i0#hQ2GCk{7VD`Ti)CJ-mzE?Uk0H%%2}B z_5U_*-&);nvV5*%pkqqTHm0k~4>|PTw~OaotC6*~?#{~NnXbG0jz~1QD7GkdEDjNM zE%NX*n_w1tb(`#}%gdD<7W65rOPKt$op6eE>QnbQg*W@onD-ogQGRRH>@#!9{Cv{Q z)TN$9Zk()mBk{b^pMRDUGp^RoidbGc|M=DxvyM&w%BN3I7uejE#&c@7?e9!6->nN4 z&& uvBTL~h3NNBTsG%)+J!i=OgV0T) sWGwv>l>K$~4aX?m(ie)Mu7^`hcm-tk&r5&uv^FPLU0M3OqyMih2Aoe`#CYys z$*?-d 8Q! z6!~kZ`7@o#a*ovsKhH7Dkyy|x=Fk+pXvvAXs@x{t%=s%EbtiRcs)k!^m6@{At tAfdxA<%+;dr7n zQ|ZyN&)teC`@8tqm)kPTE1BUo&) vd44Obi~G6k$Ia~8hD=Y@O`6M0u5SM~_m08S3z0jd+Otp2 zU)dn *p~Zeb7L^?wDO|g+mvIAZ`m47-llo@ qhA)z zjQ#8`d|p`ab9t1%f8NX8eSddqD)g@3e|FDhJ?GDwAKn_5q%tY@oYITkXn3sK^JeaM zVZT$1eNmVFyDt`3znSAUOMd0tZTp4R?qC1;z;eMR?}DHW*L*f^n8GGD*LKgn**E&G z%rm?DKK0t0{Xgy ^;8;aU~Dpi<9kj*9c3+ z|ItztEVD{pwC+*f(it+cZqBUAeS)60Y0`~F?wh;YkHzl@y1l3*yr|;r*8~2475QdP z??3YW+KNxTS9P~<{=@SAZ03x{dj6Kf!KR&GjcfZ($~>Ly8?ju-Z+%Uo{Nt^>JEgg1 zE$Nl&O75C%kg(v1_@%e1(ZRi|3p6cfCQW40vD>S|#TdTYYR6eVjnldjtM=4{Ju7hM z%=&%Se@=K*&k^;sAbzpjNfEEp&)PL|88 ZNWl_@PdwLc$| zyBA^mX~)mS$JKvicwLcJoSptV=IZ&UrEhmH4ZUI_KbxsCcH;i;b?4mg&U^ezH{EVU zbM?cgZysH|&{tPd!t$K$Sk1qa`~0@&?^_qM!1w#s*Bgs!yiIFkH&0%9CDUS7S%z`Q z)h~SdCRKTD5_WMc!e@TT{@`}mWBcy+iq~HPUwrqoDbh0dsM~qDEHmx@Q{U#hliYev z?ciO0b(6%^-qYb*+eA SY`IQNOzHBb~75(we!r8OAlTWSVUD_^{dX8sf z$_)GeO>=a#=Ux|kckMOv FF ze7od|ClALLty#AHCo uV<0F z#ms-FM7Gnp$&t71t(snFC$GKt>Xws{Tw6eB*N^FHU5!jT7iW99Jj`~z<<=E+L*BI9 zTFg6HKt{>q{5&sN0iV5Rmp?o Y``|ab7pBoN%voR{! zp07FlM6Zrb{-3;J2lv+MxTDjeoh+{1y}MY%ly_3~3+C>r{qt^^*Ip=luJ7I+5HUsa z nB z*Y<^FxfiZ{Ah3q_O#ZG?%iR5y4^M44$I9T f_!sZn#CWSo3%<_xX~( z^_ggq`>RmS<8`sT1|9bI4elL(@wB#}DRP3sg=L;=l^*m3mC5wIs9inVCA`-EaK87E z%h!xw)KoJtRNs72(Au~^q)^6#q3YtD&vTcot(W=4r`cujPt)zb?y*oid5JnjlL;K2 z{-t{kI Mje^h2VnzRcJhwPWSY@3$7lbqLyi@%k*i z_j%Y&+ZFY@l1sPwEjg6RDS3Ox)vvSa)bfiJ9XY&mMZTD(zffHe7{_sV{hHJF`DRVK zUZT@7?`ybgQ;*f5>MblACwT6tee%-m;ST}NCWqxSO`LXgJpZWiNaPjw?x<5H28>r2 zejk0dOEbzdqu{3E#QkC4J{w8Y_NYzJ`0|xgFpXWP %QSbU&XUv;v}^2JZ`PZwE4DHFTie?D2R3g~1j=^V z{ylVl@voR0J1oyUIAc-4{i8%rCzJW%p|`SGp&MGYA7{3jyX*HS?rlr|6Lb9X^ItXV z4oCCv$Z%(=?V9x< +JFz^JM1BIa*r|nX$IoIi0!3B#^!R z@18$X*j^u2X`igv|5i9pTf{?lY9h}WD@ES*RTmu=2H3qkaN)qKAChV%Gn$#+HGgq( z+V>&)NzB*NF}J#>XxXJP)Wke~T9yB>?X+9i6`t<_$&ZdW%RaW8EO$;e$9@y<`4pZE zyHl(09-qtOre+|pI{1A5?x@{tn>U78?sj#LX1lg-MTdpufp+P-%eS`%m|SM5kx!N9 zX+8S< qLR4;c%AAsGc1(J2Cv9|C zmvhoM@O@t3@4Sl^T|44VPZs;gxOn?+U+EHwmnk|Mj<*@-)IH!aYOe{lYpCij6gb6n z?)3}jWu`lhUS<=zrlsV3s3#+sN!0poj{w`I+XeSkcMIiYGFPsZa7htgb8#lWAB($S z^{h21i<8a&zYG<*uDy7|kt;{SvJ2Ngj@!0^G4@QrdULT)w^p6_dTH}4&l?-Avzn-i ztbTIfxy^;uypy-}H$U_EFR@EaBLCg>K2GlkCskK9bejG mG560 z8abP%+>#Oqs4Nr^5ICL{cO@*s>qxKBEJe3U>Ec~#9g3^&U)&z3GRZnwD(21X=Cisb zSq=pmif_7jIb@x!D>5!Fw$0MEOYxOn8WdJ&CNWj(Yv%n2xdO}Ea$m4yMx83S^rrB& z%g+lA(up&+7v0+Z_+4#F$K_Q`oo)*+tbe)lVr2DQE7_Mu!3k%~{vEt-q>;-PKhJpA z$=}I=Uy45~I4>5JO`DP2c$oLBl&x@-UCfg$Vv}
%f5CxRUI~FlXc@TS$*L-gIiBv z^4DIO*AnTXcE2CG#c{0MB^@g3WB>5OR Dx@_<&6;&K zElb^Sc5=j|11$nMM#evaC$q5jFR4m?c=l$i!wyIJy~%tm^{q-qKW4mJ`qFRFn?9e( zEIe|L6P~#%uQd&4IQh+Eg&&{YtTd+^NB_MJlazK@wEn=-BLWfk(@rd`F+KBeN?QNq zrpa6LXPwDpXxi*_Ksr;pJ1XYb&5ndC>QC+0<~Ao3Tw2gRZ_}!IBC&__Zi|?tUt-qu zbd^we#VH`cAXI)geddF0p`kk)El(CJi?tqXNnZT;L|C}-PYZTF4I!pmwa=!piWG{^ zd*M-WsJf^5{rWJM^(=LfM{{4aezoDv+2(8gBxkl^!o&N0H+=6&&Y0z2{4B$6^K4^d zd0TN;gV&8yWy3rqn9k3gsaPvKr`>pV3d0;r9+Ucu-qYXTe*c>-<;`6?=I#W!WBhiP zw_XVepB$d1Y&=)WVO{N4t0O -e;P*UT4 zu(+^<>mGBj%sk;O!v0}L&+NW`WADOEOUygfS- Uv~O;3%xP@*7o9+ zAji|GcfU%!wc9GZTG&?a=AsSH1-l;Gtu$1ySt72&lO}%XL~8n+Z&Kgq?mT>KReS2| ztmb|3j9C@`o-;dJdnC7Oedv`8OffMjxVcgxTjqwcsQI<0Ww(w_F8}F}JJl(jN2V=z z%N(JAfPkkdjYX*kdIGkt30(5f l@<0lR?YyQ8pzUa!lu3IPAUZq!jd!O>HH_Gk3OHFd(WVOq+-Zo#>RX&+> ztV{1n-E;ww-E4I^4i%moKeXSmxoY=p=_P}*bwy{79L?XE #cd_;KP(RT<1|C7NF*b2OU51HR=Zza!Nzx_C&)f=k qj;-EY!a`N}oh&uxf5b?1%DkLcC17CQ~NvwD8LSlD2BR`XmU=loes zTg;NheqHOYTiJ9gN?SCIubcg|=Wox;Z>Oh8ecRw(%^@J?bmG^^XWh;BwmdvJ?YC+h zx3ARvfZC`FRqKy;Z%v*l*DU*HM-Ojwr@;STGO8;Q(kHchaac@_%W85Ff9;)SeDMfh zy7Q{16ExViJ$o78SDU; Ohxwgylv;MpH9kOaMen8?)6@Wl8el5*1q`vTl;}p>c7Gx3yo6GE}QqP@wTS$ z-b2jh+o$K4$w%D`|5hut!dp3S)4bE{b=qe&^k1IdIwws`B5mS}9ad%!?BsM^!@MN3 z{hBQ{R@|O+|6oVF eMi(6Axk
=YU_d z)A65^W~g_v{J*ho`GzUVGLwzm*?7-ds;vL?;#ZpLx;=Yd@>L}5_6qvusW&(9psH`$ zU)$h5FOC=$re&_o_FY=Jb7tqvIji+;^C~{MrMFjc3%n3-^DBF(Ar{HnG&Oj-_DMs7 zFB1cDtW>K7Dp_S~<(!r)+%Q^YV7!Avm}&O(lPgZ;)fhGYS~n@i*<9lL%%=x$#|D^j zSUSozTS|NAny=d-*SCp@?Yhg0cn5uM$7aLX4HI0x`sH*NR`^J-ck6rM{BF`|_jz~f zYyu;EWDl)daU~+~wBx?Zw#f{&b_QEoZL;F4ngf$XnZhhpRaUFXvn=DD?izJSvBonX zzI79~>9KdE9IIN`_ug8$_e=7D^YgzqNm$G+KfL?n^BIZTYQ!eK+psv>c;+ge^{++u zT3_lf`oNyEa8cf+Y|DzBcC#7O)RSfygzYmH%!xm )QCFd@#gux zg3oqmUKg%E6kl@0CFq$N%fn^83X663XFWOMEUeaRveqT|qzA)3t=+H0>zwBo%}iUl zHmP)pb`RHU^XEtA&-mnCa8A& (eaO*rwkpRyu5SY?H@Lm&e^6o6a`8 zxiiJ @dm?*c# zY`0EjGk@a!q9)gAI+O3Nia2~=<7RODtiA5X+%_c@d+oa>;IVmDQ+D91UAOI8rE9+|{_phohR)20maTmcW^vW#EsSM) zBJ$GBZ2ywv{TI^8%sI*#lEq4QH@tkam{plqhPCXzuSI08ec7+mL2FmVK5`0pb=TwW zoPq<=Z)_$;DW6rZt-H>~roydc7RS8$AKwC{9F_Qz)|US(^*ORnC@M(@zkBuB;lXAR zL)YnN<0v>yrE+&R;bD)vL1;QgSXWd_BqWf`UwxoaZ~n+*f+<>&zct;FU{fTmNWH z*B1BJdy=+fYB%Zs@(~l-+^{WiVX9D(_H{8Pr!Oy;Z3tp!TKKBUKTL<8`HxWJOHMx@ ziHL=wQ~KVUMn-NB@hex+^EiFr>l6p6N!DV28&wzm&DKi!bn5n}X?*T+?wY5LrA||L z=w#c%eRPUK)cQ{IrQOp%Z&mWUtd}jA_~~&{@2Xc}rVqEr-EML@vE;s;UVX@q(6j&T z+U7F-Tc@x$ d`dTS szmiIyfxcAi`er&duLH{o0{mk)Y36x8J@E eY;n)|WS`HLu@0vCWaKblSy#oSV0m*=y>g)xFBf{C_SqMI~ZlkcguE z(s!)tM!%GuU-}+l4Y_?S_wMW2doCDvnrZB8U!3{=-A<0eeZ~d45hV^fRVh;Z?;V+0 zF8X+Cv(A%LIV^DE-WI#ntGbODqL((;dv8Ac;&4^LWKL1GsmT%*iN7-nzg4fC%o4_S zesN1tSN6kbA=};0%uO`s7Hs0y4QRM_X@&o<-5!buzy(=RxL7R)#kp-EwB%Hwjz& z^Ycc@UqU=n&xt?&E_bi#{2VJ&8>>3O*^3KO+cIDEDcNo+pRJ--RKaWU_3Q@o8Xmoa z_CI28aK_l#_!#AiI&sRh+>x~4* ;cn 0B!|a}x;m>f&mEhf=(RpS zdgrFkQ68ti2Ho1w^d#lvqiYf?rdri@&Q?1sa`Vs+#fcMK7VS)!`9mpf8%Lq0q8{(d z7$?qkACH-??TqBNsFKmG;eCEpAXK$}Vcomp!}ph;Yf-vi^VNo>{_DJ3DV={Vu-;dc z*RhXey`)ndqLQ-VOJ%g}*TUSIt+f$rmKSocRo%SavcjbEQSz6tJ(gA#>eF5={Z*LF zs8VGc$QoB8SiAO5{hsSHznp(`+#_^y$}GQ2o0RnbR25u^{%N*v(c#p{%bIC3>^Hw- z4tbvbe!{x>nTB^isajYR_^CPE-(7Tl`YY!s?rz`9U;3s!y>N3$J9B PPZ|+vgUqAI!Z{T)k=ge)@2TYy9S@s!s zqzM(ytoA)2-s!+r!FK<|%GpYmRhz1&zxw=wo#pi0GY4dMtIvAf&z~oL$V5IM{>g;2 zp6%~d
t$ZpbBzIgko^`2m>%}v2eV{a_2T4~q6%}M9zL0hTK^J3?ueOi$k?wq%D z()lK@G%vBGn&G-D!#SE8=1*(!RSNQ*m2}{(t4++y@Rw3iNfFDUg73@CNa!gJc9<~f z;9K+UzK^wM#eY3>B5kYit%+x@yFWWz@VEH(6>Y)dvzdik-&(Cp_w?!`?$t)G{{7A7MPZEj#RYK>>i3)tnaKB|=T_c_-+Xgtf3sO| zCPMop%giRh-t=E=8^xrbUO%90^|f$OhtZ?Sk89I8qm^4fgvGb&*C~h`xpipHtz(-c z4IjPOA7HU;X)t$I&js;#^G|b^3hSkWEkCwF-SEZ&L#{;^JhbQ3UFgZv{AVfl@4 R$2aX+Y+ zVvu{^GDoymB14#M-DAyb(My@+rgK~L#QmCaF7B%s?WGI;zh21NReHavFeJ0 zPPNJAgoCR%)qS`86)PyO@N#*1wp)>%!!=Cilk1$iotn%~&Yt`Gu6UdGw;j{l&o0lu zaAP_1wZjV=^^V)JT;2BY{QR@uy~IskPxyPdrrWIHb^pDMb^k=Qr|herIQ3<#_=fg3 ztJ2=tty|}_=z(51n;7#66UnY(p65AdYx-{1{*Le!O;=4-(Agg%-1YSGg*UTZ_nfbq z{+HqU^_*vOWh+-kXHH9=mY>+jx V+*{i8~BtW}=-iCuRN5cZRgh~$|6%$&Ow(P1|*NSHx zE6+*lY-ZE57L?iZCQe|&)r)?|H6I;!a8?Uj_eYG!=C0JVodx1|W20DSC{zg@^1k(V zN8{@qDQ_Qq`gJ){+qvN5=fKj+V~p!7rSDCUwY+V3W%{ 1*X9O=>doS2# z`IiMt{>_t9iJZ6iL)(T~tS( 2L-QmK%cvXp<%Bv;{dJXZ;fe3=jk#5KIfGPP zd$tE( Vrl- bo!1zMb0SwD$UWiH)7syLL{v z*Hix0JGTBa-_ETpFDt)?uxHD6iiRCC<;a`d4bK zMDEt+X 0G_F)a%wc{VZ&2?7WZ2ZP5q4kpLv=iZ8sWKXWSBeztJo~obz#Z{Rk*lV^ zI=)s}zb{@UX@dHvCpL2$6haPtj)*p1rzIhueN&2W>1K5~c^>c0$Crv9-hAXR*X#F8 zy!A@1@t3S`Y-c&QebU^GFTOEfjEz0 ^y*j?M`u_pm>wk>}Zk%L&zTgxC z58r;yde8Q#8dHH48riECo>--GHfYHdq0rdFyUM0|wA68Zd*S)=bz-Rw>#<4=-R04_ zx0 M52oyP+PFm7Eu3@L%5QI`?bq)(bM?!wMXpxn-Vq+cC%MDTy}3QV@4<|j zp&3g}zMSBS-u!5W3x|yB{q63HrgLkje3tugs%1;vkG`LCZq3%*Gw(;ohm#&ci>GOy ze6+@gp|vGmLF}V@@cQ!`rJhs K;Ef z>1ySl154g1ue@irYtz{uYrWeSCTntC3ped}Jz*W2g<(gI$IX{z-yQ09YDn-{CSL!Y zej;}Ffd^Z7OQRlq sJpUKH?wWNE8)i(8b$6M=c;G_T96gcNxewoe6}-P8W%GKAABJDH z* awmgqw(~>hxZ`VX-v7>g zlsot9@AVtz7F@PE o^s;HHVcpH2gbe_PC<; zVC{j&-#FunV~#%Wf4KSM>V;{}_DX8DOCwfn>b=cv>m*tA`FUi#*X>VodYp?FdAgon z-s&8Au62_*%Tm^rPrrEF$nM*F%pm5fD8HTW4I7pZ+Sd>I-FQ-{X*R#%-Qm>Rw-!&? zX?rB9U+9zZp )QSvfp?SAqBO zu7%qKTyL)2Rk8gdd!&EH-XOD8{0HS&TGo5;YEM{t)bdI@bHf+M^6v?mAAelk)D)PM zYP#vdbkX%TSC2Kb`4v V%3{2k$|)t50{?0b&0!VZ!Kfyf^w{X`LM5aAE2^P73bV9qk94-|-=3uX?cnDB zX%=Y<7+M~GxSJJr%#$hk!&T9{JgvIB6 +oL2x!om~UT{#j@^4YO&c-GWt-F!GApOHCoLaE)Z zqp4S!zA<=jtt(-2w&W^!JwY%ks;cE (xreuK&$N^;z9+KR zvf1y&36T>W++VzZa3Au#DxI|PsR`dBZ{vl+pCTs6zl(izvwqFY3EAzE`8`~0yq~ru zYRHMs{yjzY>(}{w&2x$>ikUyjW=QAt24%Q@p7HPhbFs*C2OAG2cH9>_o%c;f>T?m> z*T;zm*F0cc{A5qp-mSTA!b%AT?ugYg?>YQdjMw?!?79=l>b~}Et!H0eo_5!>ft4#M zQs|CuM1okK5#x=yjjUN89T|A!#E*z|Gk)V{dMf0iKG9K1MCigL={@_xZ&u!YP#Pd$ z`LE>Sgh_pG7D|YGXm3omy#0_tg69!K43lzBWY6lOj+$~BsTJS$vNBlp^e8`h@od`* zK_>42wTJrGrb$kEVk=s2#q?p{b>C}`ChGe!%E|Qb-b<+0Tx64XLGaQ2-+iyPMas?# za7^fTYw7Er^Vd=>^tt2QI|-XO+b?;FToBgsi_^1m)oXQiuC(`G{ zME5*AQu1BcpiadxG5gLm!RGJDKkSw?v1@Ad-`(fK@-sbHQ80M*1qtWC#VsW%-9=B= zq_0;C`X7D%coE}9=T~BZw&gE)17icEJ|{fLoU|&z{4%%CpLqs+?JZLGD}rCIG8Bzn zcl#5Mvt9&Kc^fZdq;1;UHDOX46S*23I+zwDy>&1-rsB5p*#9=B6`JXdf-9PW?=5|} zhm~~(m&6o~mZ{t~m}dTN{K?3ikjxN2BY`u`H#J >3NF&vk6`|ADg#p;*0UhDa!H08B!kg9S&_^)J!{FCchqD2SArcJ!5 z5Ya5Ze8x;kMwejTNz$i-p6W>GzpA<6!N6{JRi@y;wZcsk7;>H0E!^I+x?J-a%QUaf z5GT*XZEm-mcP&vjSfk5q{L4acdZ3YjEZ4b?DKjLQZKkf^a+y>a+an%m*FI5f`KPjj zaw2S3SRU*R cV$;m$?lP0fDH3TyU0cyLhn?)! w-?lRt^T-|0?{57m;BzY{Ph(c! zeWNF3QyCxjg %>7cl3k7g71p$5kT`D%%^T$xP;6N<}!3k82V-zA*> zP=3pn#Fx<~f0LIdMb>?`yXtZ>aO1RXwIweMzsyptj#D~%B4kyhf7`Ar{xc+0LRNm! z=`xYpbV;gOru3NX{AxMwnEzX6 ~Y< mN!VR66=w*|cbp$I-*j zq*mq`)RxZ64&mQ