From 20f657e45e6b3e3244adc257c882ccf20d65a767 Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 22 Sep 2026 05:40:00 +0000
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20split=20into=20engine,=20ap?=
=?UTF-8?q?ps=20and=20CLI=20packages?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Automate-Automata was one SvelteKit app with the simulation living inside a
612-line Svelte component. This splits it into a Bun workspace: an engine
anyone can depend on, a UI layer, and three ways to run it — web, Android and
the terminal.
packages/complexity-automata (npm: complexity-automata)
The engine, with no DOM, no timers and no dependencies. Rules parse from
B3/S23 notation, rule numbers or names; the 18-bit rule number makes all
262,144 universes addressable. Adds toroidal wrapping, a seeded RNG so a
universe is reproducible, typed-array cells and colours, stagnation
detection, twelve demos, a pattern catalogue with fractal seeds, and
universe save/load as Life RLE — JSON, a URL-safe share string, or a
UniverseLibrary over any key/value store.
packages/complexity-automata-cli (npm: complexity-automata-cli)
Terminal animation in truecolor half-blocks, two grid rows per line. Demos,
patterns, rule tours, keyboard control, saved universes in
~/.complexity-automata, and a --print mode that writes one frame to stdout
for pipes and CI.
packages/complexity-automata-svelte (npm: complexity-automata-svelte)
The canvas view, the rule as eighteen switches, the demo picker, the intro
screen and the saved-universe shelf. Painting goes through an offscreen
buffer at one pixel per cell, so a redraw costs cells rather than screen
pixels.
apps/web
SvelteKit shell around the component. Static, client-rendered, with
?demo=, ?intro=0, ?cell= and ?u= (shared universe) URL parameters.
apps/android
The same build wrapped by Capacitor: webDir points at ../web/build, so the
app ships exactly what Cloudflare serves. Renamed to Complexity Automata,
version 3.0.0.
86 tests across the three packages, plus a CI workflow that typechecks,
tests, builds all three and verifies the Capacitor copy step.
Co-Authored-By: Claude Opus 5
Claude-Session: https://claude.ai/code/session_01DPssgQtTm138yEbfJm6Ham
---
.cloudflare/public/_app/version.json | 1 -
.cloudflare/public/logo.png | Bin 16838 -> 0 bytes
.eslintrc.cjs | 20 -
.github/workflows/ci.yml | 31 +
.gitignore | 17 +-
README.md | 101 +-
android/capacitor.settings.gradle | 3 -
apps/android/README.md | 50 +
{android => apps/android/android}/.gitignore | 0
.../android/android}/.idea/.gitignore | 0
.../android/android}/.idea/compiler.xml | 0
.../.idea/deploymentTargetSelector.xml | 0
.../android/android}/.idea/migrations.xml | 0
.../android/android}/.idea/misc.xml | 0
.../android/android}/.idea/other.xml | 0
.../android/android}/app/.gitignore | 0
.../android/android}/app/build.gradle | 4 +-
.../android}/app/capacitor.build.gradle | 0
.../android/android}/app/debug.keystore | Bin
.../android}/app/debug/output-metadata.json | 0
.../android/android}/app/proguard-rules.pro | 0
.../myapp/ExampleInstrumentedTest.java | 0
.../android}/app/src/main/AndroidManifest.xml | 0
.../com/vtempest/automata/MainActivity.java | 0
.../main/res/drawable-land-hdpi/splash.png | Bin
.../main/res/drawable-land-mdpi/splash.png | Bin
.../main/res/drawable-land-xhdpi/splash.png | Bin
.../main/res/drawable-land-xxhdpi/splash.png | Bin
.../main/res/drawable-land-xxxhdpi/splash.png | Bin
.../main/res/drawable-port-hdpi/splash.png | Bin
.../main/res/drawable-port-mdpi/splash.png | Bin
.../main/res/drawable-port-xhdpi/splash.png | Bin
.../main/res/drawable-port-xxhdpi/splash.png | Bin
.../main/res/drawable-port-xxxhdpi/splash.png | Bin
.../drawable-v24/ic_launcher_foreground.xml | 0
.../res/drawable/ic_launcher_background.xml | 0
.../app/src/main/res/drawable/splash.png | Bin
.../app/src/main/res/layout/activity_main.xml | 0
.../res/mipmap-anydpi-v26/ic_launcher.xml | 0
.../mipmap-anydpi-v26/ic_launcher_round.xml | 0
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin
.../mipmap-hdpi/ic_launcher_foreground.png | Bin
.../res/mipmap-hdpi/ic_launcher_round.png | Bin
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin
.../mipmap-mdpi/ic_launcher_foreground.png | Bin
.../res/mipmap-mdpi/ic_launcher_round.png | Bin
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin
.../res/mipmap-xhdpi/ic_launcher_round.png | Bin
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin
.../res/mipmap-xxhdpi/ic_launcher_round.png | Bin
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin
.../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin
.../res/values/ic_launcher_background.xml | 0
.../app/src/main/res/values/strings.xml | 4 +-
.../app/src/main/res/values/styles.xml | 0
.../app/src/main/res/xml/file_paths.xml | 0
.../getcapacitor/myapp/ExampleUnitTest.java | 0
.../android/android}/build.gradle | 0
.../android/android/capacitor.settings.gradle | 3 +
.../android/android}/gradle.properties | 0
.../gradle/wrapper/gradle-wrapper.jar | Bin
.../gradle/wrapper/gradle-wrapper.properties | 0
{android => apps/android/android}/gradlew | 0
{android => apps/android/android}/gradlew.bat | 0
.../android/android}/settings.gradle | 0
.../android/android}/variables.gradle | 0
apps/android/capacitor.config.ts | 23 +
apps/android/package.json | 22 +
.../resources}/android/icon-background.png | Bin
.../resources}/android/icon-foreground.png | Bin
.../android/resources}/icon.png | Bin
.../resources}/screenshots/logo-512.png | Bin
.../android/resources}/screenshots/s1.png | Bin
.../android/resources}/screenshots/s2.png | Bin
.../android/resources}/screenshots/s2.webp | Bin
.../android/resources}/screenshots/s3.png | Bin
.../resources}/screenshots/unnamed.webp | Bin
.../android/resources}/splash-dark.png | Bin
.../android/resources}/splash.png | Bin
apps/web/README.md | 31 +
apps/web/package.json | 32 +
apps/web/src/app.css | 33 +
{src => apps/web/src}/app.d.ts | 0
apps/web/src/app.html | 23 +
apps/web/src/routes/+layout.js | 4 +
{src => apps/web/src}/routes/+layout.svelte | 4 +-
apps/web/src/routes/+page.svelte | 14 +
{static => apps/web/static}/logo.png | Bin
apps/web/svelte.config.js | 19 +
apps/web/tsconfig.json | 14 +
vite.config.js => apps/web/vite.config.js | 0
apps/web/wrangler.toml | 7 +
bun.lock | 867 ++++++++++++++++++
bun.lockb | Bin 258906 -> 0 bytes
capacitor.config.ts | 9 -
mobile.md | 6 -
package.json | 69 +-
packages/complexity-automata-cli/README.md | 107 +++
packages/complexity-automata-cli/package.json | 54 ++
packages/complexity-automata-cli/src/args.ts | 258 ++++++
packages/complexity-automata-cli/src/cli.ts | 320 +++++++
packages/complexity-automata-cli/src/intro.ts | 59 ++
.../complexity-automata-cli/src/library.ts | 40 +
.../complexity-automata-cli/src/render.ts | 147 +++
.../complexity-automata-cli/src/session.ts | 179 ++++
.../complexity-automata-cli/test/args.test.ts | 58 ++
.../complexity-automata-cli/test/helpers.ts | 3 +
.../test/render.test.ts | 81 ++
.../test/session.test.ts | 102 +++
.../complexity-automata-cli/tsconfig.json | 21 +
packages/complexity-automata-svelte/README.md | 83 ++
.../complexity-automata-svelte/package.json | 47 +
.../src/AutomataApp.svelte | 545 +++++++++++
.../src/AutomataCanvas.svelte | 152 +++
.../src/IntroScreen.svelte | 208 +++++
.../src/RuleControls.svelte | 183 ++++
.../src/UniverseShelf.svelte | 217 +++++
.../complexity-automata-svelte/src/canvas.js | 96 ++
.../complexity-automata-svelte/src/index.js | 22 +
.../test/canvas.test.js | 36 +
packages/complexity-automata/README.md | 170 ++++
packages/complexity-automata/package.json | 55 ++
packages/complexity-automata/src/automata.ts | 434 +++++++++
packages/complexity-automata/src/autopilot.ts | 102 +++
packages/complexity-automata/src/color.ts | 91 ++
packages/complexity-automata/src/demos.ts | 249 +++++
packages/complexity-automata/src/index.ts | 60 ++
packages/complexity-automata/src/patterns.ts | 532 +++++++++++
packages/complexity-automata/src/rules.ts | 138 +++
packages/complexity-automata/src/universe.ts | 355 +++++++
.../complexity-automata/test/automata.test.ts | 155 ++++
.../complexity-automata/test/demos.test.ts | 64 ++
.../complexity-automata/test/rules.test.ts | 56 ++
.../complexity-automata/test/universe.test.ts | 104 +++
packages/complexity-automata/tsconfig.json | 23 +
postcss.config.cjs | 6 -
src/app.css | 12 -
src/app.html | 13 -
src/lib/GameOfLife/GameOfLife.svelte | 612 -------------
src/lib/GameOfLife/patterns.js | 44 -
src/routes/+layout.js | 1 -
src/routes/+page.svelte | 6 -
svelte.config.js | 27 -
tailwind.config.cjs | 11 -
tsconfig.json | 24 -
wrangler.toml | 6 -
149 files changed, 6911 insertions(+), 868 deletions(-)
delete mode 100644 .cloudflare/public/_app/version.json
delete mode 100644 .cloudflare/public/logo.png
delete mode 100644 .eslintrc.cjs
create mode 100644 .github/workflows/ci.yml
delete mode 100644 android/capacitor.settings.gradle
create mode 100644 apps/android/README.md
rename {android => apps/android/android}/.gitignore (100%)
rename {android => apps/android/android}/.idea/.gitignore (100%)
rename {android => apps/android/android}/.idea/compiler.xml (100%)
rename {android => apps/android/android}/.idea/deploymentTargetSelector.xml (100%)
rename {android => apps/android/android}/.idea/migrations.xml (100%)
rename {android => apps/android/android}/.idea/misc.xml (100%)
rename {android => apps/android/android}/.idea/other.xml (100%)
rename {android => apps/android/android}/app/.gitignore (100%)
rename {android => apps/android/android}/app/build.gradle (97%)
rename {android => apps/android/android}/app/capacitor.build.gradle (100%)
rename {android => apps/android/android}/app/debug.keystore (100%)
rename {android => apps/android/android}/app/debug/output-metadata.json (100%)
rename {android => apps/android/android}/app/proguard-rules.pro (100%)
rename {android => apps/android/android}/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java (100%)
rename {android => apps/android/android}/app/src/main/AndroidManifest.xml (100%)
rename {android => apps/android/android}/app/src/main/java/com/vtempest/automata/MainActivity.java (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-land-hdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-land-mdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-land-xhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-land-xxhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-land-xxxhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-port-hdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-port-mdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-port-xhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-port-xxhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-port-xxxhdpi/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/drawable-v24/ic_launcher_foreground.xml (100%)
rename {android => apps/android/android}/app/src/main/res/drawable/ic_launcher_background.xml (100%)
rename {android => apps/android/android}/app/src/main/res/drawable/splash.png (100%)
rename {android => apps/android/android}/app/src/main/res/layout/activity_main.xml (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png (100%)
rename {android => apps/android/android}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%)
rename {android => apps/android/android}/app/src/main/res/values/ic_launcher_background.xml (100%)
rename {android => apps/android/android}/app/src/main/res/values/strings.xml (60%)
rename {android => apps/android/android}/app/src/main/res/values/styles.xml (100%)
rename {android => apps/android/android}/app/src/main/res/xml/file_paths.xml (100%)
rename {android => apps/android/android}/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java (100%)
rename {android => apps/android/android}/build.gradle (100%)
create mode 100644 apps/android/android/capacitor.settings.gradle
rename {android => apps/android/android}/gradle.properties (100%)
rename {android => apps/android/android}/gradle/wrapper/gradle-wrapper.jar (100%)
rename {android => apps/android/android}/gradle/wrapper/gradle-wrapper.properties (100%)
rename {android => apps/android/android}/gradlew (100%)
rename {android => apps/android/android}/gradlew.bat (100%)
rename {android => apps/android/android}/settings.gradle (100%)
rename {android => apps/android/android}/variables.gradle (100%)
create mode 100644 apps/android/capacitor.config.ts
create mode 100644 apps/android/package.json
rename {resources => apps/android/resources}/android/icon-background.png (100%)
rename {resources => apps/android/resources}/android/icon-foreground.png (100%)
rename {resources => apps/android/resources}/icon.png (100%)
rename {resources => apps/android/resources}/screenshots/logo-512.png (100%)
rename {resources => apps/android/resources}/screenshots/s1.png (100%)
rename {resources => apps/android/resources}/screenshots/s2.png (100%)
rename {resources => apps/android/resources}/screenshots/s2.webp (100%)
rename {resources => apps/android/resources}/screenshots/s3.png (100%)
rename {resources => apps/android/resources}/screenshots/unnamed.webp (100%)
rename {resources => apps/android/resources}/splash-dark.png (100%)
rename {resources => apps/android/resources}/splash.png (100%)
create mode 100644 apps/web/README.md
create mode 100644 apps/web/package.json
create mode 100644 apps/web/src/app.css
rename {src => apps/web/src}/app.d.ts (100%)
create mode 100644 apps/web/src/app.html
create mode 100644 apps/web/src/routes/+layout.js
rename {src => apps/web/src}/routes/+layout.svelte (53%)
create mode 100644 apps/web/src/routes/+page.svelte
rename {static => apps/web/static}/logo.png (100%)
create mode 100644 apps/web/svelte.config.js
create mode 100644 apps/web/tsconfig.json
rename vite.config.js => apps/web/vite.config.js (100%)
create mode 100644 apps/web/wrangler.toml
create mode 100644 bun.lock
delete mode 100644 bun.lockb
delete mode 100644 capacitor.config.ts
delete mode 100644 mobile.md
create mode 100644 packages/complexity-automata-cli/README.md
create mode 100644 packages/complexity-automata-cli/package.json
create mode 100644 packages/complexity-automata-cli/src/args.ts
create mode 100644 packages/complexity-automata-cli/src/cli.ts
create mode 100644 packages/complexity-automata-cli/src/intro.ts
create mode 100644 packages/complexity-automata-cli/src/library.ts
create mode 100644 packages/complexity-automata-cli/src/render.ts
create mode 100644 packages/complexity-automata-cli/src/session.ts
create mode 100644 packages/complexity-automata-cli/test/args.test.ts
create mode 100644 packages/complexity-automata-cli/test/helpers.ts
create mode 100644 packages/complexity-automata-cli/test/render.test.ts
create mode 100644 packages/complexity-automata-cli/test/session.test.ts
create mode 100644 packages/complexity-automata-cli/tsconfig.json
create mode 100644 packages/complexity-automata-svelte/README.md
create mode 100644 packages/complexity-automata-svelte/package.json
create mode 100644 packages/complexity-automata-svelte/src/AutomataApp.svelte
create mode 100644 packages/complexity-automata-svelte/src/AutomataCanvas.svelte
create mode 100644 packages/complexity-automata-svelte/src/IntroScreen.svelte
create mode 100644 packages/complexity-automata-svelte/src/RuleControls.svelte
create mode 100644 packages/complexity-automata-svelte/src/UniverseShelf.svelte
create mode 100644 packages/complexity-automata-svelte/src/canvas.js
create mode 100644 packages/complexity-automata-svelte/src/index.js
create mode 100644 packages/complexity-automata-svelte/test/canvas.test.js
create mode 100644 packages/complexity-automata/README.md
create mode 100644 packages/complexity-automata/package.json
create mode 100644 packages/complexity-automata/src/automata.ts
create mode 100644 packages/complexity-automata/src/autopilot.ts
create mode 100644 packages/complexity-automata/src/color.ts
create mode 100644 packages/complexity-automata/src/demos.ts
create mode 100644 packages/complexity-automata/src/index.ts
create mode 100644 packages/complexity-automata/src/patterns.ts
create mode 100644 packages/complexity-automata/src/rules.ts
create mode 100644 packages/complexity-automata/src/universe.ts
create mode 100644 packages/complexity-automata/test/automata.test.ts
create mode 100644 packages/complexity-automata/test/demos.test.ts
create mode 100644 packages/complexity-automata/test/rules.test.ts
create mode 100644 packages/complexity-automata/test/universe.test.ts
create mode 100644 packages/complexity-automata/tsconfig.json
delete mode 100644 postcss.config.cjs
delete mode 100644 src/app.css
delete mode 100644 src/app.html
delete mode 100644 src/lib/GameOfLife/GameOfLife.svelte
delete mode 100644 src/lib/GameOfLife/patterns.js
delete mode 100644 src/routes/+layout.js
delete mode 100644 src/routes/+page.svelte
delete mode 100644 svelte.config.js
delete mode 100644 tailwind.config.cjs
delete mode 100644 tsconfig.json
delete mode 100644 wrangler.toml
diff --git a/.cloudflare/public/_app/version.json b/.cloudflare/public/_app/version.json
deleted file mode 100644
index d2d0d05..0000000
--- a/.cloudflare/public/_app/version.json
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"1722213320195"}
\ No newline at end of file
diff --git a/.cloudflare/public/logo.png b/.cloudflare/public/logo.png
deleted file mode 100644
index 359f140a72b103bdea5c696f3c2df92c633f6004..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 16838
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
FV1hqkbus_|
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
deleted file mode 100644
index d41201c..0000000
--- a/.eslintrc.cjs
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- root: true,
- parser: '@typescript-eslint/parser',
- extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
- plugins: ['svelte3', '@typescript-eslint'],
- ignorePatterns: ['*.cjs'],
- overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
- settings: {
- 'svelte3/typescript': () => require('typescript')
- },
- parserOptions: {
- sourceType: 'module',
- ecmaVersion: 2020
- },
- env: {
- browser: true,
- es2017: true,
- node: true
- }
-};
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..8ae4dbd
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,31 @@
+name: CI
+
+on:
+ push:
+ branches: [master]
+ pull_request:
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version: 1.3.11
+
+ - run: bun install --frozen-lockfile
+
+ # The engine builds first: the CLI and the components import it from
+ # `dist`, so nothing else can be checked until it exists.
+ - run: bun run build:engine
+ - run: bun run typecheck
+ - run: bun run test
+ - run: bun run build:cli
+ - run: bun run build:web
+
+ # The Android app is the web build plus a Capacitor copy step. Assembling
+ # the APK needs the Android SDK; verifying the copy does not.
+ - run: bunx cap sync android
+ working-directory: apps/android
diff --git a/.gitignore b/.gitignore
index 8085912..eeb3cbe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,8 @@
.DS_Store
node_modules
-/build
-/dist
-/.svelte-kit
+build
+dist
+.svelte-kit
/package
.env
.env.*
@@ -10,4 +10,13 @@ node_modules
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
.cloudflare/
-.wappler/
\ No newline at end of file
+.wappler/
+*.tsbuildinfo
+
+# Android / Capacitor build output
+apps/android/android/app/build
+apps/android/android/build
+apps/android/android/.gradle
+apps/android/android/local.properties
+apps/android/android/app/src/main/assets/public
+apps/android/android/app/src/main/assets/capacitor.config.json
diff --git a/README.md b/README.md
index fb59e2c..2a9e2e0 100644
--- a/README.md
+++ b/README.md
@@ -12,10 +12,12 @@
+
+
+
-
-
-
- 🚀 Demo
- 🚀 Android App
+
+
+
+## Complexity Automata
+
+Conway's Game of Life, and the 262,143 other universes that share its shape.
+
+A cell is **born** when it has exactly three live neighbours and **survives**
+with two or three. That is the entire rule. The gliders that walk across the
+screen, the gun that fires them forever, and the fractals that copy themselves
+all follow from it — and changing two numbers gives you a different universe
+with its own physics.
+
+- **Draw** patterns into a running grid — gliders, guns, oscillators, fractal seeds
+- **Colour inheritance**: cells take the average colour of the cells that made
+ them, so colonies drift apart and collisions fade into blends
+- **Save universes** and reopen, share or download them; the same file opens in
+ the web app, the terminal, and other Life software
+- **Automatic mode** tours random rules, moving on whenever one stops evolving
+- **Twelve demos**, from Conway's to Fredkin's fractal replicator
+
+Runs the same on the web, on Android, and in a terminal.
+
+## What is in here
+
+| | | |
+| --- | --- | --- |
+| [`packages/complexity-automata`](packages/complexity-automata) | `complexity-automata` | The engine. Rules, grid, colour, patterns, demos, saving. No DOM, no dependencies. |
+| [`packages/complexity-automata-cli`](packages/complexity-automata-cli) | `complexity-automata-cli` | The terminal animation, in truecolor half-blocks. |
+| [`packages/complexity-automata-svelte`](packages/complexity-automata-svelte) | `complexity-automata-svelte` | Svelte components: canvas view, rule switches, demo picker, saved universes. |
+| [`apps/web`](apps/web) | | The web app — SvelteKit, deployed to Cloudflare. |
+| [`apps/android`](apps/android) | | The Android app — the same build, wrapped by Capacitor. |
+
+## Try it
+
+```bash
+# In a terminal
+npx complexity-automata-cli # Conway's, with gliders and a gun
+npx complexity-automata-cli fractal # a Sierpinski triangle from one cell
+npx complexity-automata-cli --auto # a tour of random universes
+
+# In your own code
+npm i complexity-automata
+```
-## Automate Automata: "Game of Life" App
+```js
+import { Automata } from 'complexity-automata';
-* Custom rule sets, common patterns, and color mixing to produce artistic fades
+const life = new Automata({ width: 80, height: 40, rule: 'B3/S23' });
+life.stampCentered('Glider Gun');
+life.run(120);
+console.log(life.toString());
+```
-* Automated mode - randomize rule set changes & patterns and watch life unfold...
+## Developing
-* developed in 2014 and 10+ years as Android app with Javascript, rewriten in Svelte
+Bun workspaces and no build orchestration to learn:
+```bash
+bun install
+bun run build # engine → CLI → web
+bun run dev # the web app at localhost:5173
+bun run cli # the terminal animation from source
+bun run test # every package's suite
+bun run typecheck
+bun run android # build the web app and assemble the APK
+bun run deploy # wrangler deploy from apps/web
+```
-### Further Research
+The engine has no dependencies and is tested on its own (`cd
+packages/complexity-automata && bun test`); the CLI and the components are thin
+layers over it. If a change is about *what the automata do*, it belongs in the
+engine, with a test.
+## Further Research
* Johnston, Nathaniel, and Greene, Dave (2022). "Conway's Game of Life". https://conwaylife.com/book/#rle_files
@@ -50,21 +114,22 @@
* Wolfram, Stephen (2013). "Talking about the Computational Future at SXSW 2013", https://writings.stephenwolfram.com/2013/03/talking-about-the-computational-future-at-sxsw-2013/
-#### Excerpt:
+#### Excerpt:
> By the way, it’s bizarre how few people work on this. Because I’m sure that, just like cloning, there’s just going to be a wacky procedure that makes it possible—and once we know it, we’re just going to be able to do it quite routinely, and it’s going to be societally very important. But in the end, we want to solve the problem of keeping all the complexity that is a human running indefinitely. There are some fascinating basic science problems here. Connected to concepts like computational irreducibility, and a bit to the traditional halting problem. But I have no doubt that eventually it’ll be solved, and we’ll achieve effective human immortality. And when that happens I expect it’ll be the single biggest discontinuity in human history.
->
+>
> Cellular automata
->
+>
> You know, as one thinks about such things, one can’t help wondering about the general future of the human condition. And here’s something someone like me definitely thinks about. I’m spending my life trying to automate things. Trying to make it possible to do automatically with computation things that humans used to have to do themselves.
->
+>
> Now, if we look at the arc of human history, the biggest systematic change through time is the arrival of more and more technology, and the automation of more and more kinds of tasks. So here’s a question: what if we succeed in automating everything? What will happen then? What will the humans do? There’s an ultimate—almost philosophical—version of this question. And there’s also a practical next-few-decades version.
->
+>
> Let’s start with the ultimate version. As we go on and build more and more technology, what will the end point be? We might assume that we could somehow go on forever, achieving more and more. But the Principle of Computational Equivalence tells us that we cannot. One we have reached a certain level, everything is already in a sense possible. And even though our current engineering has not yet reached this point, the Principle of Computational Equivalence also tells us that this maximal level of computational sophistication is not particularly rare. Indeed it happens in many places in the physical world, as well as in systems like simple cellular automata.
->
+>
> Cellular automata
->
+>
> And it’s not too hard to see that as we improve our technology, getting down to the smallest scales, and removing everything that seems redundant, that we might wind up with something that looks just like a physical process that already happens in nature. So does this mean that in the ultimate future, with all that great automation and technology, all we’ll achieve is just to produce something that’s indistinguishable from zillions of things that already exist in nature?
->
+>
> Wolfram, Stephen (2013). "Talking about the Computational Future at SXSW 2013", https://writings.stephenwolfram.com/2013/03/talking-about-the-computational-future-at-sxsw-2013/
+MIT · developed in 2014, ten years as an Android app, rewritten in Svelte in 2024, split into engine, apps and CLI in 2025.
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
deleted file mode 100644
index 9a5fa87..0000000
--- a/android/capacitor.settings.gradle
+++ /dev/null
@@ -1,3 +0,0 @@
-// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
-include ':capacitor-android'
-project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
diff --git a/apps/android/README.md b/apps/android/README.md
new file mode 100644
index 0000000..084d35e
--- /dev/null
+++ b/apps/android/README.md
@@ -0,0 +1,50 @@
+# Android app
+
+The web app in a WebView, wrapped by [Capacitor](https://capacitorjs.com).
+There is no Android-specific UI: `capacitor.config.ts` points `webDir` at
+`../web/build`, so the app ships exactly the bundle Cloudflare serves.
+
+Published as [com.vtempest.automata](https://play.google.com/store/apps/details?id=com.vtempest.automata).
+
+## Build
+
+```bash
+bun run sync # build the web app, then copy it into the Android project
+bun run build # sync, then assemble a debug APK
+bun run release # sync, then bundle a signed release AAB
+bun run open # open the project in Android Studio
+```
+
+`bun run build` needs a JDK and the Android SDK (`ANDROID_HOME`); `bun run sync`
+needs neither, so CI can verify the copy step on its own.
+
+Output: `android/app/build/outputs/apk/debug/app-debug.apk`.
+
+## What is checked in
+
+The Gradle project under `android/`, the launcher icons and splash screens under
+`resources/`, and the Capacitor config. The synced web assets
+(`android/app/src/main/assets/public`) are build output and are ignored.
+
+## Changing the app
+
+- **The UI** is [`packages/complexity-automata-svelte`](../../packages/complexity-automata-svelte)
+- **The version** is `versionCode`/`versionName` in `android/app/build.gradle`
+- **The name** is `app_name` in `android/app/src/main/res/values/strings.xml`
+- **Icons and splash** are regenerated from `resources/` with
+ `bunx @capacitor/assets generate --android`
+
+The page is laid out for a phone: the controls sit inside the safe area, the
+grid takes the rest, and `overscroll-behavior: none` keeps pull-to-refresh from
+fighting with drawing on the grid.
+
+## First-time setup
+
+The project was created with:
+
+```bash
+bun i @capacitor/core @capacitor/android
+bun i -D @capacitor/cli
+bunx cap init
+bunx cap add android
+```
diff --git a/android/.gitignore b/apps/android/android/.gitignore
similarity index 100%
rename from android/.gitignore
rename to apps/android/android/.gitignore
diff --git a/android/.idea/.gitignore b/apps/android/android/.idea/.gitignore
similarity index 100%
rename from android/.idea/.gitignore
rename to apps/android/android/.idea/.gitignore
diff --git a/android/.idea/compiler.xml b/apps/android/android/.idea/compiler.xml
similarity index 100%
rename from android/.idea/compiler.xml
rename to apps/android/android/.idea/compiler.xml
diff --git a/android/.idea/deploymentTargetSelector.xml b/apps/android/android/.idea/deploymentTargetSelector.xml
similarity index 100%
rename from android/.idea/deploymentTargetSelector.xml
rename to apps/android/android/.idea/deploymentTargetSelector.xml
diff --git a/android/.idea/migrations.xml b/apps/android/android/.idea/migrations.xml
similarity index 100%
rename from android/.idea/migrations.xml
rename to apps/android/android/.idea/migrations.xml
diff --git a/android/.idea/misc.xml b/apps/android/android/.idea/misc.xml
similarity index 100%
rename from android/.idea/misc.xml
rename to apps/android/android/.idea/misc.xml
diff --git a/android/.idea/other.xml b/apps/android/android/.idea/other.xml
similarity index 100%
rename from android/.idea/other.xml
rename to apps/android/android/.idea/other.xml
diff --git a/android/app/.gitignore b/apps/android/android/app/.gitignore
similarity index 100%
rename from android/app/.gitignore
rename to apps/android/android/app/.gitignore
diff --git a/android/app/build.gradle b/apps/android/android/app/build.gradle
similarity index 97%
rename from android/app/build.gradle
rename to apps/android/android/app/build.gradle
index be03db8..6ef95dd 100644
--- a/android/app/build.gradle
+++ b/apps/android/android/app/build.gradle
@@ -7,8 +7,8 @@ android {
applicationId "com.vtempest.automata"
minSdkVersion 26
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 3
- versionName "2.0.1"
+ versionCode 4
+ versionName "3.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
diff --git a/android/app/capacitor.build.gradle b/apps/android/android/app/capacitor.build.gradle
similarity index 100%
rename from android/app/capacitor.build.gradle
rename to apps/android/android/app/capacitor.build.gradle
diff --git a/android/app/debug.keystore b/apps/android/android/app/debug.keystore
similarity index 100%
rename from android/app/debug.keystore
rename to apps/android/android/app/debug.keystore
diff --git a/android/app/debug/output-metadata.json b/apps/android/android/app/debug/output-metadata.json
similarity index 100%
rename from android/app/debug/output-metadata.json
rename to apps/android/android/app/debug/output-metadata.json
diff --git a/android/app/proguard-rules.pro b/apps/android/android/app/proguard-rules.pro
similarity index 100%
rename from android/app/proguard-rules.pro
rename to apps/android/android/app/proguard-rules.pro
diff --git a/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/apps/android/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
similarity index 100%
rename from android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
rename to apps/android/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
diff --git a/android/app/src/main/AndroidManifest.xml b/apps/android/android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from android/app/src/main/AndroidManifest.xml
rename to apps/android/android/app/src/main/AndroidManifest.xml
diff --git a/android/app/src/main/java/com/vtempest/automata/MainActivity.java b/apps/android/android/app/src/main/java/com/vtempest/automata/MainActivity.java
similarity index 100%
rename from android/app/src/main/java/com/vtempest/automata/MainActivity.java
rename to apps/android/android/app/src/main/java/com/vtempest/automata/MainActivity.java
diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/apps/android/android/app/src/main/res/drawable-land-hdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-land-hdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-land-hdpi/splash.png
diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/apps/android/android/app/src/main/res/drawable-land-mdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-land-mdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-land-mdpi/splash.png
diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-land-xhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-land-xhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-land-xhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-land-xxhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-land-xxhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-land-xxhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-land-xxxhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-port-hdpi/splash.png b/apps/android/android/app/src/main/res/drawable-port-hdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-port-hdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-port-hdpi/splash.png
diff --git a/android/app/src/main/res/drawable-port-mdpi/splash.png b/apps/android/android/app/src/main/res/drawable-port-mdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-port-mdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-port-mdpi/splash.png
diff --git a/android/app/src/main/res/drawable-port-xhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-port-xhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-port-xhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-port-xhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-port-xxhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-port-xxhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-port-xxhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/apps/android/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable-port-xxxhdpi/splash.png
rename to apps/android/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
diff --git a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/apps/android/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to apps/android/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/android/app/src/main/res/drawable/ic_launcher_background.xml b/apps/android/android/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from android/app/src/main/res/drawable/ic_launcher_background.xml
rename to apps/android/android/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/android/app/src/main/res/drawable/splash.png b/apps/android/android/app/src/main/res/drawable/splash.png
similarity index 100%
rename from android/app/src/main/res/drawable/splash.png
rename to apps/android/android/app/src/main/res/drawable/splash.png
diff --git a/android/app/src/main/res/layout/activity_main.xml b/apps/android/android/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from android/app/src/main/res/layout/activity_main.xml
rename to apps/android/android/app/src/main/res/layout/activity_main.xml
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/apps/android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to apps/android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/apps/android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to apps/android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
rename to apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to apps/android/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
rename to apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to apps/android/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
rename to apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to apps/android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
rename to apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to apps/android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to apps/android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/apps/android/android/app/src/main/res/values/ic_launcher_background.xml
similarity index 100%
rename from android/app/src/main/res/values/ic_launcher_background.xml
rename to apps/android/android/app/src/main/res/values/ic_launcher_background.xml
diff --git a/android/app/src/main/res/values/strings.xml b/apps/android/android/app/src/main/res/values/strings.xml
similarity index 60%
rename from android/app/src/main/res/values/strings.xml
rename to apps/android/android/app/src/main/res/values/strings.xml
index 7de1553..c594b05 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/apps/android/android/app/src/main/res/values/strings.xml
@@ -1,7 +1,7 @@
- Automated Automata
- Automated Automata
+ Complexity Automata
+ Complexity Automata
com.vtempest.automata
com.vtempest.automata
diff --git a/android/app/src/main/res/values/styles.xml b/apps/android/android/app/src/main/res/values/styles.xml
similarity index 100%
rename from android/app/src/main/res/values/styles.xml
rename to apps/android/android/app/src/main/res/values/styles.xml
diff --git a/android/app/src/main/res/xml/file_paths.xml b/apps/android/android/app/src/main/res/xml/file_paths.xml
similarity index 100%
rename from android/app/src/main/res/xml/file_paths.xml
rename to apps/android/android/app/src/main/res/xml/file_paths.xml
diff --git a/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/apps/android/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
similarity index 100%
rename from android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
rename to apps/android/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
diff --git a/android/build.gradle b/apps/android/android/build.gradle
similarity index 100%
rename from android/build.gradle
rename to apps/android/android/build.gradle
diff --git a/apps/android/android/capacitor.settings.gradle b/apps/android/android/capacitor.settings.gradle
new file mode 100644
index 0000000..4b38951
--- /dev/null
+++ b/apps/android/android/capacitor.settings.gradle
@@ -0,0 +1,3 @@
+// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
+include ':capacitor-android'
+project(':capacitor-android').projectDir = new File('../../../node_modules/.bun/@capacitor+android@6.2.2+bbf93636f05d5b82/node_modules/@capacitor/android/capacitor')
diff --git a/android/gradle.properties b/apps/android/android/gradle.properties
similarity index 100%
rename from android/gradle.properties
rename to apps/android/android/gradle.properties
diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/apps/android/android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from android/gradle/wrapper/gradle-wrapper.jar
rename to apps/android/android/gradle/wrapper/gradle-wrapper.jar
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/apps/android/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from android/gradle/wrapper/gradle-wrapper.properties
rename to apps/android/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/android/gradlew b/apps/android/android/gradlew
similarity index 100%
rename from android/gradlew
rename to apps/android/android/gradlew
diff --git a/android/gradlew.bat b/apps/android/android/gradlew.bat
similarity index 100%
rename from android/gradlew.bat
rename to apps/android/android/gradlew.bat
diff --git a/android/settings.gradle b/apps/android/android/settings.gradle
similarity index 100%
rename from android/settings.gradle
rename to apps/android/android/settings.gradle
diff --git a/android/variables.gradle b/apps/android/android/variables.gradle
similarity index 100%
rename from android/variables.gradle
rename to apps/android/android/variables.gradle
diff --git a/apps/android/capacitor.config.ts b/apps/android/capacitor.config.ts
new file mode 100644
index 0000000..87f8799
--- /dev/null
+++ b/apps/android/capacitor.config.ts
@@ -0,0 +1,23 @@
+import type { CapacitorConfig } from '@capacitor/cli';
+
+/**
+ * The Android app is the web app in a WebView. `webDir` points at the
+ * SvelteKit static build one directory over, so `bun run build` here builds the
+ * web app and syncs the very same files Cloudflare serves.
+ */
+const config: CapacitorConfig = {
+ appId: 'com.vtempest.automata',
+ appName: 'Complexity Automata',
+ webDir: '../web/build',
+ android: {
+ // The grid is drawn on a dark canvas; matching the shell avoids a white
+ // flash between the splash screen and the first frame.
+ backgroundColor: '#080a10',
+ allowMixedContent: false,
+ },
+ server: {
+ androidScheme: 'https',
+ },
+};
+
+export default config;
diff --git a/apps/android/package.json b/apps/android/package.json
new file mode 100644
index 0000000..3d0907c
--- /dev/null
+++ b/apps/android/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "@automate-automata/android",
+ "private": true,
+ "version": "3.0.0",
+ "description": "Capacitor wrapper that ships the web app as the Android app.",
+ "type": "module",
+ "scripts": {
+ "build": "bun run sync && bun run assemble",
+ "sync": "cd ../web && bun run build && cd ../android && cap sync android",
+ "assemble": "cd android && ./gradlew assembleDebug",
+ "release": "cd android && ./gradlew bundleRelease",
+ "open": "cap open android"
+ },
+ "dependencies": {
+ "@capacitor/android": "^6.1.1",
+ "@capacitor/core": "^6.1.1"
+ },
+ "devDependencies": {
+ "@capacitor/cli": "^6.1.1",
+ "typescript": "^5.5.4"
+ }
+}
diff --git a/resources/android/icon-background.png b/apps/android/resources/android/icon-background.png
similarity index 100%
rename from resources/android/icon-background.png
rename to apps/android/resources/android/icon-background.png
diff --git a/resources/android/icon-foreground.png b/apps/android/resources/android/icon-foreground.png
similarity index 100%
rename from resources/android/icon-foreground.png
rename to apps/android/resources/android/icon-foreground.png
diff --git a/resources/icon.png b/apps/android/resources/icon.png
similarity index 100%
rename from resources/icon.png
rename to apps/android/resources/icon.png
diff --git a/resources/screenshots/logo-512.png b/apps/android/resources/screenshots/logo-512.png
similarity index 100%
rename from resources/screenshots/logo-512.png
rename to apps/android/resources/screenshots/logo-512.png
diff --git a/resources/screenshots/s1.png b/apps/android/resources/screenshots/s1.png
similarity index 100%
rename from resources/screenshots/s1.png
rename to apps/android/resources/screenshots/s1.png
diff --git a/resources/screenshots/s2.png b/apps/android/resources/screenshots/s2.png
similarity index 100%
rename from resources/screenshots/s2.png
rename to apps/android/resources/screenshots/s2.png
diff --git a/resources/screenshots/s2.webp b/apps/android/resources/screenshots/s2.webp
similarity index 100%
rename from resources/screenshots/s2.webp
rename to apps/android/resources/screenshots/s2.webp
diff --git a/resources/screenshots/s3.png b/apps/android/resources/screenshots/s3.png
similarity index 100%
rename from resources/screenshots/s3.png
rename to apps/android/resources/screenshots/s3.png
diff --git a/resources/screenshots/unnamed.webp b/apps/android/resources/screenshots/unnamed.webp
similarity index 100%
rename from resources/screenshots/unnamed.webp
rename to apps/android/resources/screenshots/unnamed.webp
diff --git a/resources/splash-dark.png b/apps/android/resources/splash-dark.png
similarity index 100%
rename from resources/splash-dark.png
rename to apps/android/resources/splash-dark.png
diff --git a/resources/splash.png b/apps/android/resources/splash.png
similarity index 100%
rename from resources/splash.png
rename to apps/android/resources/splash.png
diff --git a/apps/web/README.md b/apps/web/README.md
new file mode 100644
index 0000000..70c4056
--- /dev/null
+++ b/apps/web/README.md
@@ -0,0 +1,31 @@
+# Web app
+
+SvelteKit shell around [`complexity-automata-svelte`](../../packages/complexity-automata-svelte).
+Everything on screen is the `AutomataApp` component; this app only supplies the
+page, the metadata and the URL handling.
+
+```bash
+bun run dev # localhost:5173
+bun run build # static bundle in build/
+bun run preview
+bun run deploy # wrangler deploy
+```
+
+## URL parameters
+
+| | |
+| --- | --- |
+| `?demo=fractal` | open straight into a demo |
+| `?intro=0` | skip the intro screen |
+| `?cell=6` | CSS pixels per cell — bigger cells, smaller universe |
+| `?u=…` | open a shared universe |
+
+## How it is built
+
+`adapter-static` with an `index.html` fallback, rendered entirely on the client
+(`ssr = false` — the app is a canvas, so there is nothing useful to render on a
+server). That single `build/` directory is what Cloudflare serves *and* what
+Capacitor copies into the Android app, so the two can never drift apart.
+
+Because rendering is client-side, the page title and social metadata live in
+`src/app.html` rather than in a ``.
diff --git a/apps/web/package.json b/apps/web/package.json
new file mode 100644
index 0000000..95a380a
--- /dev/null
+++ b/apps/web/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "@automate-automata/web",
+ "private": true,
+ "version": "3.0.0",
+ "description": "The Complexity Automata web app — the same UI the Android app wraps.",
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "deploy": "wrangler deploy"
+ },
+ "dependencies": {
+ "complexity-automata": "workspace:*",
+ "complexity-automata-svelte": "workspace:*"
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-static": "^3.0.2",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "autoprefixer": "^10.4.19",
+ "postcss": "^8.4.38",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tailwindcss": "^3.4.3",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.11",
+ "wrangler": "^3.57.0"
+ }
+}
diff --git a/apps/web/src/app.css b/apps/web/src/app.css
new file mode 100644
index 0000000..505b59b
--- /dev/null
+++ b/apps/web/src/app.css
@@ -0,0 +1,33 @@
+:root {
+ color-scheme: dark;
+ --bg: #080a10;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background: var(--bg);
+ font-family:
+ system-ui,
+ -apple-system,
+ 'Segoe UI',
+ Roboto,
+ sans-serif;
+ /* Stop the pull-to-refresh and rubber-banding that fight with drawing on
+ the grid in a mobile browser and in the Android WebView. */
+ overscroll-behavior: none;
+ -webkit-tap-highlight-color: transparent;
+}
+
+body > div {
+ width: 100%;
+ height: 100%;
+}
diff --git a/src/app.d.ts b/apps/web/src/app.d.ts
similarity index 100%
rename from src/app.d.ts
rename to apps/web/src/app.d.ts
diff --git a/apps/web/src/app.html b/apps/web/src/app.html
new file mode 100644
index 0000000..12e6d81
--- /dev/null
+++ b/apps/web/src/app.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ Complexity Automata — Conway's Game of Life
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/apps/web/src/routes/+layout.js b/apps/web/src/routes/+layout.js
new file mode 100644
index 0000000..1e2868f
--- /dev/null
+++ b/apps/web/src/routes/+layout.js
@@ -0,0 +1,4 @@
+// The whole app is one client-rendered canvas, so it prerenders to a single
+// static page — which is also what Capacitor ships inside the Android app.
+export const prerender = true;
+export const ssr = false;
diff --git a/src/routes/+layout.svelte b/apps/web/src/routes/+layout.svelte
similarity index 53%
rename from src/routes/+layout.svelte
rename to apps/web/src/routes/+layout.svelte
index a04e315..4039a26 100644
--- a/src/routes/+layout.svelte
+++ b/apps/web/src/routes/+layout.svelte
@@ -1,7 +1,5 @@
-
diff --git a/apps/web/src/routes/+page.svelte b/apps/web/src/routes/+page.svelte
new file mode 100644
index 0000000..17b6acf
--- /dev/null
+++ b/apps/web/src/routes/+page.svelte
@@ -0,0 +1,14 @@
+
+
+{#key demo}
+
+{/key}
diff --git a/static/logo.png b/apps/web/static/logo.png
similarity index 100%
rename from static/logo.png
rename to apps/web/static/logo.png
diff --git a/apps/web/svelte.config.js b/apps/web/svelte.config.js
new file mode 100644
index 0000000..7e6c871
--- /dev/null
+++ b/apps/web/svelte.config.js
@@ -0,0 +1,19 @@
+import adapter from '@sveltejs/adapter-static';
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ preprocess: vitePreprocess(),
+ kit: {
+ // A single static bundle: Cloudflare serves it, and Capacitor copies the
+ // same `build/` directory into the Android app.
+ adapter: adapter({
+ pages: 'build',
+ assets: 'build',
+ fallback: 'index.html',
+ precompress: false,
+ }),
+ },
+};
+
+export default config;
diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json
new file mode 100644
index 0000000..f426771
--- /dev/null
+++ b/apps/web/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": false,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": false,
+ "moduleResolution": "bundler"
+ }
+}
diff --git a/vite.config.js b/apps/web/vite.config.js
similarity index 100%
rename from vite.config.js
rename to apps/web/vite.config.js
diff --git a/apps/web/wrangler.toml b/apps/web/wrangler.toml
new file mode 100644
index 0000000..ece6cc1
--- /dev/null
+++ b/apps/web/wrangler.toml
@@ -0,0 +1,7 @@
+name = "automata-game-of-life"
+compatibility_date = "2024-09-01"
+
+# The SvelteKit static build, served straight from Cloudflare's edge.
+[assets]
+directory = "./build"
+not_found_handling = "single-page-application"
diff --git a/bun.lock b/bun.lock
new file mode 100644
index 0000000..a43b731
--- /dev/null
+++ b/bun.lock
@@ -0,0 +1,867 @@
+{
+ "lockfileVersion": 1,
+ "configVersion": 1,
+ "workspaces": {
+ "": {
+ "name": "automate-automata",
+ },
+ "apps/android": {
+ "name": "@automate-automata/android",
+ "version": "3.0.0",
+ "dependencies": {
+ "@capacitor/android": "^6.1.1",
+ "@capacitor/core": "^6.1.1",
+ },
+ "devDependencies": {
+ "@capacitor/cli": "^6.1.1",
+ "typescript": "^5.5.4",
+ },
+ },
+ "apps/web": {
+ "name": "@automate-automata/web",
+ "version": "3.0.0",
+ "dependencies": {
+ "complexity-automata": "workspace:*",
+ "complexity-automata-svelte": "workspace:*",
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-static": "^3.0.2",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "autoprefixer": "^10.4.19",
+ "postcss": "^8.4.38",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tailwindcss": "^3.4.3",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.11",
+ "wrangler": "^3.57.0",
+ },
+ },
+ "packages/complexity-automata": {
+ "name": "complexity-automata",
+ "version": "1.0.0",
+ "devDependencies": {
+ "@types/bun": "^1.1.10",
+ "typescript": "^5.5.4",
+ },
+ },
+ "packages/complexity-automata-cli": {
+ "name": "complexity-automata-cli",
+ "version": "1.0.0",
+ "bin": {
+ "automata": "./dist/cli.js",
+ "complexity-automata": "./dist/cli.js",
+ },
+ "dependencies": {
+ "complexity-automata": "workspace:*",
+ },
+ "devDependencies": {
+ "@types/bun": "^1.1.10",
+ "@types/node": "^22.5.0",
+ "typescript": "^5.5.4",
+ },
+ },
+ "packages/complexity-automata-svelte": {
+ "name": "complexity-automata-svelte",
+ "version": "1.0.0",
+ "dependencies": {
+ "complexity-automata": "workspace:*",
+ },
+ "devDependencies": {
+ "svelte": "^4.2.7",
+ },
+ "peerDependencies": {
+ "svelte": "^4.0.0 || ^5.0.0",
+ },
+ },
+ },
+ "packages": {
+ "@alloc/quick-lru": ["@alloc/quick-lru@5.3.0", "", {}, "sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA=="],
+
+ "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
+
+ "@automate-automata/android": ["@automate-automata/android@workspace:apps/android"],
+
+ "@automate-automata/web": ["@automate-automata/web@workspace:apps/web"],
+
+ "@capacitor/android": ["@capacitor/android@6.2.2", "", { "peerDependencies": { "@capacitor/core": "^6.2.0" } }, "sha512-JjIu1ryNE16PQTp51rb4NEygxP7cSCDMmUqx4f5f12xscKdGKTjO9bkEP3TroLnTa/J6p2QopIhRbrd3E/7DrA=="],
+
+ "@capacitor/cli": ["@capacitor/cli@6.2.2", "", { "dependencies": { "@ionic/cli-framework-output": "^2.2.5", "@ionic/utils-fs": "^3.1.6", "@ionic/utils-subprocess": "2.1.11", "@ionic/utils-terminal": "^2.3.3", "commander": "^9.3.0", "debug": "^4.3.4", "env-paths": "^2.2.0", "kleur": "^4.1.4", "native-run": "^2.0.0", "open": "^8.4.0", "plist": "^3.0.5", "prompts": "^2.4.2", "rimraf": "^4.4.1", "semver": "^7.3.7", "tar": "^6.1.11", "tslib": "^2.4.0", "xml2js": "^0.5.0" }, "bin": { "cap": "bin/capacitor", "capacitor": "bin/capacitor" } }, "sha512-5wEYSHBzRKJKZnhD2sVJAP0t0kUT7o2/vlgEGzFE3t2w+inL9qMDN7zxg6pvqveJiPNZT2k93ZvJDdRKIn/w1w=="],
+
+ "@capacitor/core": ["@capacitor/core@6.2.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-qEI3DcwJEPzhW+hVGKH8m4jbujtkdUiGkpMLHmpR8epACU7wEsV6NF8pCHzpsMYjc80oK7Cmpcw+MIienv/YRw=="],
+
+ "@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.3.4", "", { "dependencies": { "mime": "^3.0.0" } }, "sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q=="],
+
+ "@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.0.2", "", { "peerDependencies": { "unenv": "2.0.0-rc.14", "workerd": "^1.20250124.0" }, "optionalPeers": ["workerd"] }, "sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg=="],
+
+ "@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20250718.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-FHf4t7zbVN8yyXgQ/r/GqLPaYZSGUVzeR7RnL28Mwj2djyw2ZergvytVc7fdGcczl6PQh+VKGfZCfUqpJlbi9g=="],
+
+ "@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20250718.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-fUiyUJYyqqp4NqJ0YgGtp4WJh/II/YZsUnEb6vVy5Oeas8lUOxnN+ZOJ8N/6/5LQCVAtYCChRiIrBbfhTn5Z8Q=="],
+
+ "@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20250718.0", "", { "os": "linux", "cpu": "x64" }, "sha512-5+eb3rtJMiEwp08Kryqzzu8d1rUcK+gdE442auo5eniMpT170Dz0QxBrqkg2Z48SFUPYbj+6uknuA5tzdRSUSg=="],
+
+ "@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20250718.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Aa2M/DVBEBQDdATMbn217zCSFKE+ud/teS+fFS+OQqKABLn0azO2qq6ANAHYOIE6Q3Sq4CxDIQr8lGdaJHwUog=="],
+
+ "@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20250718.0", "", { "os": "win32", "cpu": "x64" }, "sha512-dY16RXKffmugnc67LTbyjdDHZn5NoTF1yHEf2fN4+OaOnoGSp3N1x77QubTDwqZ9zECWxgQfDLjddcH8dWeFhg=="],
+
+ "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
+
+ "@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="],
+
+ "@esbuild-plugins/node-globals-polyfill": ["@esbuild-plugins/node-globals-polyfill@0.2.3", "", { "peerDependencies": { "esbuild": "*" } }, "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw=="],
+
+ "@esbuild-plugins/node-modules-polyfill": ["@esbuild-plugins/node-modules-polyfill@0.2.2", "", { "dependencies": { "escape-string-regexp": "^4.0.0", "rollup-plugin-node-polyfills": "^0.2.1" }, "peerDependencies": { "esbuild": "*" } }, "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA=="],
+
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="],
+
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="],
+
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.21.5", "", { "os": "android", "cpu": "arm64" }, "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A=="],
+
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.21.5", "", { "os": "android", "cpu": "x64" }, "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA=="],
+
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.21.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ=="],
+
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.21.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw=="],
+
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.21.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g=="],
+
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.21.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ=="],
+
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.21.5", "", { "os": "linux", "cpu": "arm" }, "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA=="],
+
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.21.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q=="],
+
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.21.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg=="],
+
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg=="],
+
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg=="],
+
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.21.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w=="],
+
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA=="],
+
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.21.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A=="],
+
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.21.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ=="],
+
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.21.5", "", { "os": "none", "cpu": "x64" }, "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg=="],
+
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.21.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow=="],
+
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.21.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg=="],
+
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.21.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A=="],
+
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.21.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA=="],
+
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="],
+
+ "@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="],
+
+ "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="],
+
+ "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="],
+
+ "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg=="],
+
+ "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ=="],
+
+ "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.0.5", "", { "os": "linux", "cpu": "arm" }, "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g=="],
+
+ "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA=="],
+
+ "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.0.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA=="],
+
+ "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw=="],
+
+ "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA=="],
+
+ "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw=="],
+
+ "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.0.5" }, "os": "linux", "cpu": "arm" }, "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ=="],
+
+ "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA=="],
+
+ "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.0.4" }, "os": "linux", "cpu": "s390x" }, "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q=="],
+
+ "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA=="],
+
+ "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g=="],
+
+ "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw=="],
+
+ "@img/sharp-wasm32": ["@img/sharp-wasm32@0.33.5", "", { "dependencies": { "@emnapi/runtime": "^1.2.0" }, "cpu": "none" }, "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg=="],
+
+ "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.33.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ=="],
+
+ "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.33.5", "", { "os": "win32", "cpu": "x64" }, "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg=="],
+
+ "@ionic/cli-framework-output": ["@ionic/cli-framework-output@2.2.8", "", { "dependencies": { "@ionic/utils-terminal": "2.3.5", "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g=="],
+
+ "@ionic/utils-array": ["@ionic/utils-array@2.1.5", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA=="],
+
+ "@ionic/utils-fs": ["@ionic/utils-fs@3.1.7", "", { "dependencies": { "@types/fs-extra": "^8.0.0", "debug": "^4.0.0", "fs-extra": "^9.0.0", "tslib": "^2.0.1" } }, "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA=="],
+
+ "@ionic/utils-object": ["@ionic/utils-object@2.1.5", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw=="],
+
+ "@ionic/utils-process": ["@ionic/utils-process@2.1.10", "", { "dependencies": { "@ionic/utils-object": "2.1.5", "@ionic/utils-terminal": "2.3.3", "debug": "^4.0.0", "signal-exit": "^3.0.3", "tree-kill": "^1.2.2", "tslib": "^2.0.1" } }, "sha512-mZ7JEowcuGQK+SKsJXi0liYTcXd2bNMR3nE0CyTROpMECUpJeAvvaBaPGZf5ERQUPeWBVuwqAqjUmIdxhz5bxw=="],
+
+ "@ionic/utils-stream": ["@ionic/utils-stream@3.1.5", "", { "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw=="],
+
+ "@ionic/utils-subprocess": ["@ionic/utils-subprocess@2.1.11", "", { "dependencies": { "@ionic/utils-array": "2.1.5", "@ionic/utils-fs": "3.1.6", "@ionic/utils-process": "2.1.10", "@ionic/utils-stream": "3.1.5", "@ionic/utils-terminal": "2.3.3", "cross-spawn": "^7.0.3", "debug": "^4.0.0", "tslib": "^2.0.1" } }, "sha512-6zCDixNmZCbMCy5np8klSxOZF85kuDyzZSTTQKQP90ZtYNCcPYmuFSzaqDwApJT4r5L3MY3JrqK1gLkc6xiUPw=="],
+
+ "@ionic/utils-terminal": ["@ionic/utils-terminal@2.3.5", "", { "dependencies": { "@types/slice-ansi": "^4.0.0", "debug": "^4.0.0", "signal-exit": "^3.0.3", "slice-ansi": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "tslib": "^2.0.1", "untildify": "^4.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A=="],
+
+ "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
+
+ "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
+
+ "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="],
+
+ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
+
+ "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="],
+
+ "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
+
+ "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
+
+ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
+
+ "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="],
+
+ "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.63.4", "", { "os": "android", "cpu": "arm" }, "sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREUatZBvMR3Oiw=="],
+
+ "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.63.4", "", { "os": "android", "cpu": "arm64" }, "sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csvUfuhw=="],
+
+ "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.63.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxHiDA=="],
+
+ "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.63.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw=="],
+
+ "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.63.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeGxoVlw=="],
+
+ "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.63.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxCw=="],
+
+ "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZA288DCirFRjrspptw=="],
+
+ "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l0zrEkaIMa8dHF3NGcsA=="],
+
+ "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdyR/fS174pg=="],
+
+ "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKGLlh1ylb2ifQ=="],
+
+ "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuokdb50XZSzzbJw=="],
+
+ "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3PTRWGoglH+mKA/OA=="],
+
+ "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfSuBOq3DrWA=="],
+
+ "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwpBao/3TDx3VA=="],
+
+ "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr5l3kq1HIOpcag=="],
+
+ "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgovGw55PwpahTAGig=="],
+
+ "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.63.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanBdb/bBQn8g=="],
+
+ "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5ztn/Aqw=="],
+
+ "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21JaRwiB9w=="],
+
+ "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.63.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Png=="],
+
+ "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.63.4", "", { "os": "none", "cpu": "arm64" }, "sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4mcmdFUsS/DGifQ=="],
+
+ "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.63.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhnlUJmfSE7P9A=="],
+
+ "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.63.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxej4Hkf6CXQ=="],
+
+ "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT5ojlQ=="],
+
+ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziyXErbigQ=="],
+
+ "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
+
+ "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.13", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ=="],
+
+ "@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.10", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew=="],
+
+ "@sveltejs/kit": ["@sveltejs/kit@2.70.3", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.9", "@types/cookie": "^0.6.0", "acorn": "^8.16.0", "cookie": "^0.6.0", "devalue": "^5.8.1", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "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" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-UDvEYuZqAMbfB/oXIoqKvbKcb7YczK5zYrzmsGV1zRJk03jntwp8dXiYoIJotxAndsKvcPFtx9H1GRSKFdSHgg=="],
+
+ "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@3.1.2", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", "debug": "^4.3.4", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.10", "svelte-hmr": "^0.16.0", "vitefu": "^0.2.5" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.0" } }, "sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA=="],
+
+ "@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@2.1.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.0" } }, "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg=="],
+
+ "@types/bun": ["@types/bun@1.4.2", "", { "dependencies": { "bun-types": "1.4.2" } }, "sha512-GimotNn7+ZV0uVArItBbriZsR1oNf0+WTzPkdcFrzShI7k2norL0uzEaJT8T33dWr7O/c9ZDuAFQrctKCi72oQ=="],
+
+ "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="],
+
+ "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="],
+
+ "@types/fs-extra": ["@types/fs-extra@8.1.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ=="],
+
+ "@types/node": ["@types/node@22.20.4", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-zJRE40jpHtKqE/C4fgHrAKQLJuSpzEnP9ff9Y7YtoR3Wd2pwqzlekDeEuUQXjRd+QCYnVnNwuJYmhdk9XV8gvA=="],
+
+ "@types/pug": ["@types/pug@2.0.10", "", {}, "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="],
+
+ "@types/slice-ansi": ["@types/slice-ansi@4.0.0", "", {}, "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ=="],
+
+ "@xmldom/xmldom": ["@xmldom/xmldom@0.9.12", "", {}, "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A=="],
+
+ "acorn": ["acorn@8.18.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ=="],
+
+ "acorn-walk": ["acorn-walk@8.3.2", "", {}, "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="],
+
+ "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
+ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
+
+ "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="],
+
+ "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
+
+ "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="],
+
+ "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
+
+ "as-table": ["as-table@1.0.55", "", { "dependencies": { "printable-characters": "^1.0.42" } }, "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ=="],
+
+ "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="],
+
+ "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="],
+
+ "autoprefixer": ["autoprefixer@10.6.1", "", { "dependencies": { "browserslist": "^4.28.9", "caniuse-lite": "^1.0.30001810", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA=="],
+
+ "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
+
+ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
+
+ "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
+
+ "baseline-browser-mapping": ["baseline-browser-mapping@2.11.25", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw=="],
+
+ "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="],
+
+ "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
+
+ "blake3-wasm": ["blake3-wasm@2.1.5", "", {}, "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="],
+
+ "bplist-parser": ["bplist-parser@0.3.2", "", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ=="],
+
+ "brace-expansion": ["brace-expansion@2.1.7", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g=="],
+
+ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
+
+ "browserslist": ["browserslist@4.29.0", "", { "dependencies": { "baseline-browser-mapping": "^2.11.23", "caniuse-lite": "^1.0.30001810", "electron-to-chromium": "^1.5.427", "node-releases": "^2.0.55", "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA=="],
+
+ "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="],
+
+ "bun-types": ["bun-types@1.4.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-bxV1FgK7yBIzjRe5zBozIM4Bem11ZJcCXSrjWRG3YWLt8yFDePu4cLjpebO8OvPeIE9trbyPF4fuj3Cia4Fj3w=="],
+
+ "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="],
+
+ "caniuse-lite": ["caniuse-lite@1.0.30001810", "", {}, "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg=="],
+
+ "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
+
+ "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],
+
+ "code-red": ["code-red@1.0.4", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@types/estree": "^1.0.1", "acorn": "^8.10.0", "estree-walker": "^3.0.3", "periscopic": "^3.1.0" } }, "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw=="],
+
+ "color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="],
+
+ "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
+
+ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
+
+ "color-string": ["color-string@1.9.1", "", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="],
+
+ "commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="],
+
+ "complexity-automata": ["complexity-automata@workspace:packages/complexity-automata"],
+
+ "complexity-automata-cli": ["complexity-automata-cli@workspace:packages/complexity-automata-cli"],
+
+ "complexity-automata-svelte": ["complexity-automata-svelte@workspace:packages/complexity-automata-svelte"],
+
+ "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
+
+ "cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="],
+
+ "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
+
+ "css-tree": ["css-tree@2.3.1", "", { "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" } }, "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="],
+
+ "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
+
+ "data-uri-to-buffer": ["data-uri-to-buffer@2.0.2", "", {}, "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA=="],
+
+ "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
+
+ "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
+
+ "define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="],
+
+ "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="],
+
+ "detect-indent": ["detect-indent@6.1.0", "", {}, "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="],
+
+ "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
+
+ "devalue": ["devalue@5.9.4", "", {}, "sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg=="],
+
+ "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="],
+
+ "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="],
+
+ "electron-to-chromium": ["electron-to-chromium@1.5.434", "", {}, "sha512-7EeFW9OLf1NN9NKQP9xdOE/XKqjxv7JDPP6AEAkHli11+Fae1OaLoNuAf13hQv1PPNtuES0pLQSPk2+fS3s8ww=="],
+
+ "elementtree": ["elementtree@0.1.7", "", { "dependencies": { "sax": "1.1.4" } }, "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg=="],
+
+ "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
+
+ "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="],
+
+ "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
+
+ "es6-promise": ["es6-promise@3.3.1", "", {}, "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg=="],
+
+ "esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="],
+
+ "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
+
+ "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
+
+ "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
+
+ "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="],
+
+ "exit-hook": ["exit-hook@2.2.1", "", {}, "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw=="],
+
+ "exsolve": ["exsolve@1.1.1", "", {}, "sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g=="],
+
+ "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
+
+ "fastq": ["fastq@1.20.3", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw=="],
+
+ "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="],
+
+ "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
+
+ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
+
+ "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="],
+
+ "fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="],
+
+ "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="],
+
+ "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="],
+
+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
+
+ "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
+
+ "get-source": ["get-source@2.0.12", "", { "dependencies": { "data-uri-to-buffer": "^2.0.0", "source-map": "^0.6.1" } }, "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w=="],
+
+ "glob": ["glob@9.3.5", "", { "dependencies": { "fs.realpath": "^1.0.0", "minimatch": "^8.0.2", "minipass": "^4.2.4", "path-scurry": "^1.6.1" } }, "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q=="],
+
+ "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
+
+ "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="],
+
+ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
+
+ "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="],
+
+ "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="],
+
+ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
+
+ "ini": ["ini@4.1.3", "", {}, "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg=="],
+
+ "is-arrayish": ["is-arrayish@0.3.4", "", {}, "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA=="],
+
+ "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
+
+ "is-core-module": ["is-core-module@2.17.0", "", { "dependencies": { "hasown": "^2.0.4" } }, "sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA=="],
+
+ "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="],
+
+ "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
+
+ "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
+
+ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
+
+ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
+
+ "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
+
+ "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="],
+
+ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
+
+ "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="],
+
+ "jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="],
+
+ "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
+
+ "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="],
+
+ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="],
+
+ "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
+
+ "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
+
+ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
+
+ "mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="],
+
+ "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
+
+ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
+
+ "mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="],
+
+ "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="],
+
+ "miniflare": ["miniflare@3.20250718.3", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "stoppable": "1.1.0", "undici": "^5.28.5", "workerd": "1.20250718.0", "ws": "8.18.0", "youch": "3.3.4", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-JuPrDJhwLrNLEJiNLWO7ZzJrv/Vv9kZuwMYCfv0LskQDM6Eonw4OvywO3CH/wCGjgHzha/qyjUh8JQ068TjDgQ=="],
+
+ "minimatch": ["minimatch@8.0.7", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg=="],
+
+ "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
+
+ "minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="],
+
+ "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
+
+ "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
+
+ "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
+
+ "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
+
+ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
+
+ "mustache": ["mustache@4.2.0", "", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="],
+
+ "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="],
+
+ "nanoid": ["nanoid@3.3.19", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug=="],
+
+ "native-run": ["native-run@2.0.3", "", { "dependencies": { "@ionic/utils-fs": "^3.1.7", "@ionic/utils-terminal": "^2.3.4", "bplist-parser": "^0.3.2", "debug": "^4.3.4", "elementtree": "^0.1.7", "ini": "^4.1.1", "plist": "^3.1.0", "split2": "^4.2.0", "through2": "^4.0.2", "tslib": "^2.6.2", "yauzl": "^2.10.0" }, "bin": { "native-run": "bin/native-run" } }, "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q=="],
+
+ "node-releases": ["node-releases@2.0.56", "", {}, "sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A=="],
+
+ "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
+
+ "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
+
+ "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="],
+
+ "ohash": ["ohash@2.0.12", "", {}, "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw=="],
+
+ "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
+
+ "open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="],
+
+ "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="],
+
+ "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
+
+ "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
+
+ "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="],
+
+ "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="],
+
+ "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
+
+ "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="],
+
+ "periscopic": ["periscopic@3.1.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", "is-reference": "^3.0.0" } }, "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw=="],
+
+ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
+
+ "picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="],
+
+ "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="],
+
+ "plist": ["plist@3.1.1", "", { "dependencies": { "@xmldom/xmldom": "^0.9.10", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA=="],
+
+ "postcss": ["postcss@8.5.28", "", { "dependencies": { "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A=="],
+
+ "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="],
+
+ "postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="],
+
+ "postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="],
+
+ "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="],
+
+ "postcss-selector-parser": ["postcss-selector-parser@6.1.4", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ=="],
+
+ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="],
+
+ "printable-characters": ["printable-characters@1.0.42", "", {}, "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ=="],
+
+ "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="],
+
+ "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
+
+ "read-cache": ["read-cache@1.0.2", "", {}, "sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA=="],
+
+ "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
+
+ "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
+
+ "resolve": ["resolve@1.22.12", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA=="],
+
+ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
+
+ "rimraf": ["rimraf@4.4.1", "", { "dependencies": { "glob": "^9.2.0" }, "bin": { "rimraf": "dist/cjs/src/bin.js" } }, "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og=="],
+
+ "rollup": ["rollup@4.63.4", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.63.4", "@rollup/rollup-android-arm64": "4.63.4", "@rollup/rollup-darwin-arm64": "4.63.4", "@rollup/rollup-darwin-x64": "4.63.4", "@rollup/rollup-freebsd-arm64": "4.63.4", "@rollup/rollup-freebsd-x64": "4.63.4", "@rollup/rollup-linux-arm-gnueabihf": "4.63.4", "@rollup/rollup-linux-arm-musleabihf": "4.63.4", "@rollup/rollup-linux-arm64-gnu": "4.63.4", "@rollup/rollup-linux-arm64-musl": "4.63.4", "@rollup/rollup-linux-loong64-gnu": "4.63.4", "@rollup/rollup-linux-loong64-musl": "4.63.4", "@rollup/rollup-linux-ppc64-gnu": "4.63.4", "@rollup/rollup-linux-ppc64-musl": "4.63.4", "@rollup/rollup-linux-riscv64-gnu": "4.63.4", "@rollup/rollup-linux-riscv64-musl": "4.63.4", "@rollup/rollup-linux-s390x-gnu": "4.63.4", "@rollup/rollup-linux-x64-gnu": "4.63.4", "@rollup/rollup-linux-x64-musl": "4.63.4", "@rollup/rollup-openbsd-x64": "4.63.4", "@rollup/rollup-openharmony-arm64": "4.63.4", "@rollup/rollup-win32-arm64-msvc": "4.63.4", "@rollup/rollup-win32-ia32-msvc": "4.63.4", "@rollup/rollup-win32-x64-gnu": "4.63.4", "@rollup/rollup-win32-x64-msvc": "4.63.4", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ=="],
+
+ "rollup-plugin-inject": ["rollup-plugin-inject@3.0.2", "", { "dependencies": { "estree-walker": "^0.6.1", "magic-string": "^0.25.3", "rollup-pluginutils": "^2.8.1" } }, "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w=="],
+
+ "rollup-plugin-node-polyfills": ["rollup-plugin-node-polyfills@0.2.1", "", { "dependencies": { "rollup-plugin-inject": "^3.0.0" } }, "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA=="],
+
+ "rollup-pluginutils": ["rollup-pluginutils@2.8.2", "", { "dependencies": { "estree-walker": "^0.6.1" } }, "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ=="],
+
+ "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
+
+ "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
+
+ "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
+
+ "sander": ["sander@0.5.1", "", { "dependencies": { "es6-promise": "^3.1.2", "graceful-fs": "^4.1.3", "mkdirp": "^0.5.1", "rimraf": "^2.5.2" } }, "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA=="],
+
+ "sax": ["sax@1.6.1", "", {}, "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q=="],
+
+ "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="],
+
+ "set-cookie-parser": ["set-cookie-parser@3.1.2", "", {}, "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw=="],
+
+ "sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="],
+
+ "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
+
+ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
+
+ "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
+
+ "simple-swizzle": ["simple-swizzle@0.2.4", "", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw=="],
+
+ "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
+
+ "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
+
+ "slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="],
+
+ "sorcery": ["sorcery@0.11.1", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.14", "buffer-crc32": "^1.0.0", "minimist": "^1.2.0", "sander": "^0.5.0" }, "bin": { "sorcery": "bin/sorcery" } }, "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ=="],
+
+ "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
+
+ "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
+
+ "sourcemap-codec": ["sourcemap-codec@1.4.8", "", {}, "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="],
+
+ "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
+
+ "stacktracey": ["stacktracey@2.2.0", "", { "dependencies": { "as-table": "^1.0.36", "get-source": "^2.0.12" } }, "sha512-ETyQEz+CzXiLjEbyJqpbp+/T79RQD/6wqFucRBIlVNZfYq2Ay7wbretD4cxpbymZlaPWx58aIhPEY1Cr8DlVvg=="],
+
+ "stoppable": ["stoppable@1.1.0", "", {}, "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw=="],
+
+ "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
+
+ "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
+
+ "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
+
+ "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="],
+
+ "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="],
+
+ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
+
+ "svelte": ["svelte@4.2.20", "", { "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/trace-mapping": "^0.3.18", "@types/estree": "^1.0.1", "acorn": "^8.9.0", "aria-query": "^5.3.0", "axobject-query": "^4.0.0", "code-red": "^1.0.3", "css-tree": "^2.3.1", "estree-walker": "^3.0.3", "is-reference": "^3.0.1", "locate-character": "^3.0.0", "magic-string": "^0.30.4", "periscopic": "^3.1.0" } }, "sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q=="],
+
+ "svelte-check": ["svelte-check@3.8.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "chokidar": "^3.4.1", "picocolors": "^1.0.0", "sade": "^1.7.4", "svelte-preprocess": "^5.1.3", "typescript": "^5.0.3" }, "peerDependencies": { "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q=="],
+
+ "svelte-hmr": ["svelte-hmr@0.16.0", "", { "peerDependencies": { "svelte": "^3.19.0 || ^4.0.0" } }, "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA=="],
+
+ "svelte-preprocess": ["svelte-preprocess@5.1.4", "", { "dependencies": { "@types/pug": "^2.0.6", "detect-indent": "^6.1.0", "magic-string": "^0.30.5", "sorcery": "^0.11.0", "strip-indent": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.10.2", "coffeescript": "^2.5.1", "less": "^3.11.3 || ^4.0.0", "postcss": "^7 || ^8", "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "pug": "^3.0.0", "sass": "^1.26.8", "stylus": "^0.55.0", "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["@babel/core", "coffeescript", "less", "postcss", "postcss-load-config", "pug", "sass", "stylus", "sugarss", "typescript"] }, "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA=="],
+
+ "tailwindcss": ["tailwindcss@3.4.19", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.7", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ=="],
+
+ "tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="],
+
+ "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="],
+
+ "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="],
+
+ "through2": ["through2@4.0.2", "", { "dependencies": { "readable-stream": "3" } }, "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw=="],
+
+ "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="],
+
+ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
+
+ "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="],
+
+ "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="],
+
+ "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="],
+
+ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+ "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
+
+ "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="],
+
+ "undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
+
+ "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
+
+ "unenv": ["unenv@2.0.0-rc.14", "", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.1", "ohash": "^2.0.10", "pathe": "^2.0.3", "ufo": "^1.5.4" } }, "sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q=="],
+
+ "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
+
+ "untildify": ["untildify@4.0.0", "", {}, "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="],
+
+ "update-browserslist-db": ["update-browserslist-db@1.3.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ=="],
+
+ "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
+
+ "vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="],
+
+ "vitefu": ["vitefu@0.2.5", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["vite"] }, "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q=="],
+
+ "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
+
+ "workerd": ["workerd@1.20250718.0", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20250718.0", "@cloudflare/workerd-darwin-arm64": "1.20250718.0", "@cloudflare/workerd-linux-64": "1.20250718.0", "@cloudflare/workerd-linux-arm64": "1.20250718.0", "@cloudflare/workerd-windows-64": "1.20250718.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-kqkIJP/eOfDlUyBzU7joBg+tl8aB25gEAGqDap+nFWb+WHhnooxjGHgxPBy3ipw2hnShPFNOQt5lFRxbwALirg=="],
+
+ "wrangler": ["wrangler@3.114.17", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.3.4", "@cloudflare/unenv-preset": "2.0.2", "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@esbuild-plugins/node-modules-polyfill": "0.2.2", "blake3-wasm": "2.1.5", "esbuild": "0.17.19", "miniflare": "3.20250718.3", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.14", "workerd": "1.20250718.0" }, "optionalDependencies": { "fsevents": "~2.3.2", "sharp": "^0.33.5" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20250408.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-tAvf7ly+tB+zwwrmjsCyJ2pJnnc7SZhbnNwXbH+OIdVas3zTSmjcZOjmLKcGGptssAA3RyTKhcF9BvKZzMUycA=="],
+
+ "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
+
+ "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
+
+ "ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="],
+
+ "xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="],
+
+ "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="],
+
+ "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
+
+ "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="],
+
+ "youch": ["youch@3.3.4", "", { "dependencies": { "cookie": "^0.7.1", "mustache": "^4.2.0", "stacktracey": "^2.1.8" } }, "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg=="],
+
+ "zod": ["zod@3.22.3", "", {}, "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug=="],
+
+ "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="],
+
+ "@ionic/utils-process/@ionic/utils-terminal": ["@ionic/utils-terminal@2.3.3", "", { "dependencies": { "@types/slice-ansi": "^4.0.0", "debug": "^4.0.0", "signal-exit": "^3.0.3", "slice-ansi": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "tslib": "^2.0.1", "untildify": "^4.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ=="],
+
+ "@ionic/utils-subprocess/@ionic/utils-fs": ["@ionic/utils-fs@3.1.6", "", { "dependencies": { "@types/fs-extra": "^8.0.0", "debug": "^4.0.0", "fs-extra": "^9.0.0", "tslib": "^2.0.1" } }, "sha512-eikrNkK89CfGPmexjTfSWl4EYqsPSBh0Ka7by4F0PLc1hJZYtJxUZV3X4r5ecA8ikjicUmcbU7zJmAjmqutG/w=="],
+
+ "@ionic/utils-subprocess/@ionic/utils-terminal": ["@ionic/utils-terminal@2.3.3", "", { "dependencies": { "@types/slice-ansi": "^4.0.0", "debug": "^4.0.0", "signal-exit": "^3.0.3", "slice-ansi": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "tslib": "^2.0.1", "untildify": "^4.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ=="],
+
+ "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
+
+ "elementtree/sax": ["sax@1.1.4", "", {}, "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg=="],
+
+ "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
+
+ "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
+
+ "glob/minipass": ["minipass@4.2.8", "", {}, "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="],
+
+ "miniflare/acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="],
+
+ "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
+
+ "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
+
+ "rollup-plugin-inject/estree-walker": ["estree-walker@0.6.1", "", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="],
+
+ "rollup-plugin-inject/magic-string": ["magic-string@0.25.9", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="],
+
+ "rollup-pluginutils/estree-walker": ["estree-walker@0.6.1", "", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="],
+
+ "sander/mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="],
+
+ "sander/rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="],
+
+ "sorcery/buffer-crc32": ["buffer-crc32@1.0.0", "", {}, "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w=="],
+
+ "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="],
+
+ "tinyglobby/picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="],
+
+ "wrangler/esbuild": ["esbuild@0.17.19", "", { "optionalDependencies": { "@esbuild/android-arm": "0.17.19", "@esbuild/android-arm64": "0.17.19", "@esbuild/android-x64": "0.17.19", "@esbuild/darwin-arm64": "0.17.19", "@esbuild/darwin-x64": "0.17.19", "@esbuild/freebsd-arm64": "0.17.19", "@esbuild/freebsd-x64": "0.17.19", "@esbuild/linux-arm": "0.17.19", "@esbuild/linux-arm64": "0.17.19", "@esbuild/linux-ia32": "0.17.19", "@esbuild/linux-loong64": "0.17.19", "@esbuild/linux-mips64el": "0.17.19", "@esbuild/linux-ppc64": "0.17.19", "@esbuild/linux-riscv64": "0.17.19", "@esbuild/linux-s390x": "0.17.19", "@esbuild/linux-x64": "0.17.19", "@esbuild/netbsd-x64": "0.17.19", "@esbuild/openbsd-x64": "0.17.19", "@esbuild/sunos-x64": "0.17.19", "@esbuild/win32-arm64": "0.17.19", "@esbuild/win32-ia32": "0.17.19", "@esbuild/win32-x64": "0.17.19" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw=="],
+
+ "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="],
+
+ "youch/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
+
+ "sander/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+
+ "wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.17.19", "", { "os": "android", "cpu": "arm" }, "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A=="],
+
+ "wrangler/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.17.19", "", { "os": "android", "cpu": "arm64" }, "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA=="],
+
+ "wrangler/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.17.19", "", { "os": "android", "cpu": "x64" }, "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww=="],
+
+ "wrangler/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.17.19", "", { "os": "darwin", "cpu": "arm64" }, "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg=="],
+
+ "wrangler/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.17.19", "", { "os": "darwin", "cpu": "x64" }, "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw=="],
+
+ "wrangler/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.17.19", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ=="],
+
+ "wrangler/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.17.19", "", { "os": "freebsd", "cpu": "x64" }, "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ=="],
+
+ "wrangler/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.17.19", "", { "os": "linux", "cpu": "arm" }, "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA=="],
+
+ "wrangler/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.17.19", "", { "os": "linux", "cpu": "arm64" }, "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg=="],
+
+ "wrangler/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.17.19", "", { "os": "linux", "cpu": "ia32" }, "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ=="],
+
+ "wrangler/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ=="],
+
+ "wrangler/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A=="],
+
+ "wrangler/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.17.19", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg=="],
+
+ "wrangler/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA=="],
+
+ "wrangler/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.17.19", "", { "os": "linux", "cpu": "s390x" }, "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q=="],
+
+ "wrangler/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.17.19", "", { "os": "linux", "cpu": "x64" }, "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw=="],
+
+ "wrangler/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.17.19", "", { "os": "none", "cpu": "x64" }, "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q=="],
+
+ "wrangler/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.17.19", "", { "os": "openbsd", "cpu": "x64" }, "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g=="],
+
+ "wrangler/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.17.19", "", { "os": "sunos", "cpu": "x64" }, "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg=="],
+
+ "wrangler/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.17.19", "", { "os": "win32", "cpu": "arm64" }, "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag=="],
+
+ "wrangler/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.17.19", "", { "os": "win32", "cpu": "ia32" }, "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw=="],
+
+ "wrangler/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.17.19", "", { "os": "win32", "cpu": "x64" }, "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA=="],
+
+ "sander/rimraf/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="],
+
+ "sander/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.21", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw=="],
+ }
+}
diff --git a/bun.lockb b/bun.lockb
deleted file mode 100644
index 4293a4870cad216c40ae8ea75c205d2497b962ce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 258906
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