1 Commits

Author SHA1 Message Date
c0ntroller b075f48c1a Inital commit of Astro Website 2026-03-21 14:37:03 +01:00
31 changed files with 1372 additions and 5323 deletions
-2
View File
@@ -1,2 +0,0 @@
*.md linguist-language=Astro
*.mdx linguist-language=Astro
-46
View File
@@ -1,46 +0,0 @@
name: Deploy Dev Website
on:
push:
branches:
- dev
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
# services:
# mermaid:
# image: yuzutech/kroki-mermaid
# kroki:
# image: yuzutech/kroki
# env:
# KROKI_MERMAID_HOST: mermaid
steps:
- uses: actions/checkout@v4
name: Checkout code
- name: Setup node and npm
uses: actions/setup-node@v3
with:
node-version: lts/*
- name: Install dependencies
run: npm install
- name: Check and build
run: npm run build
# env:
# KROKI_SERVER: "http://kroki:8000"
- name: Copy files via ssh
uses: appleboy/scp-action@v1
with:
host: c0ntroller.de
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
source: "dist/*"
target: /srv/website/stable
overwrite: true
strip_components: 1
-46
View File
@@ -1,46 +0,0 @@
name: Deploy Stable Website
on:
push:
branches:
- senpai
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
# services:
# mermaid:
# image: yuzutech/kroki-mermaid
# kroki:
# image: yuzutech/kroki
# env:
# KROKI_MERMAID_HOST: mermaid
steps:
- uses: actions/checkout@v4
name: Checkout code
- name: Setup node and npm
uses: actions/setup-node@v3
with:
node-version: lts/*
- name: Install dependencies
run: npm install
- name: Check and build
run: npm run build
# env:
# KROKI_SERVER: "http://kroki:8000"
- name: Copy files via ssh
uses: appleboy/scp-action@v1
with:
host: c0ntroller.de
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
source: "dist/*"
target: /srv/website/stable
overwrite: true
strip_components: 1
+38 -8
View File
@@ -1,13 +1,43 @@
# Frontpage
# Astro Starter Kit: Minimal
[![Read the blog entry at c0ntroller.de](https://c0ntroller.de/img/read-blog.svg)](https://c0ntroller.de/portfolio/astro-rewrite/)
```sh
npm create astro@latest -- --template minimal
```
| Stable | Dev
| ------ | ---
| [![Build Status Stable](https://git.c0ntroller.de/c0ntroller/frontpage/actions/workflows/stable.yml/badge.svg?branch=senpai)](https://c0ntroller.de/) | [![Build Status Dev](https://git.c0ntroller.de/c0ntroller/frontpage/actions/workflows/dev.yml/badge.svg?branch=dev)](https://dev.c0ntroller.de/)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
This repository contains my Astro-based website.
## 🚀 Project Structure
When changes are made to `senpai` it will be deployed on https://c0ntroller.de
Inside of your Astro project, you'll see the following folders and files:
When changes are made in the `dev` branch it will be deployed on https://dev.c0ntroller.de
```text
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
+1 -1
View File
@@ -22,7 +22,7 @@ export default defineConfig({
remarkMath, [
remarkKroki, {
alias: ["mermaid", "tikz"],
server: process.env.KROKI_SERVER || "https://kroki.io",
server: "https://kroki.io",
target: "mdx3",
output: "inline-svg"
}
+929
View File
@@ -0,0 +1,929 @@
{
"lockfileVersion": 1,
"configVersion": 0,
"workspaces": {
"": {
"name": "website-ag",
"dependencies": {
"@astrojs/mdx": "^5.0.2",
"@iconify-json/lucide": "^1.2.98",
"@iconify-json/simple-icons": "^1.2.74",
"astro": "^6.0.8",
"astro-icon": "^1.1.5",
"rehype-callouts": "^2.1.2",
"rehype-mathjax": "^7.1.0",
"remark-kroki": "^0.3.8",
"remark-math": "^6.0.0",
},
},
},
"packages": {
"@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="],
"@antfu/utils": ["@antfu/utils@8.1.1", "", {}, "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ=="],
"@astrojs/compiler": ["@astrojs/compiler@3.0.1", "", {}, "sha512-z97oYbdebO5aoWzuJ/8q5hLK232+17KcLZ7cJ8BCWk6+qNzVxn/gftC0KzMBUTD8WAaBkPpNSQK6PXLnNrZ0CA=="],
"@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.8.0", "", { "dependencies": { "picomatch": "^4.0.3" } }, "sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w=="],
"@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.0.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/prism": "4.0.1", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-zAfLJmn07u9SlDNNHTpjv0RT4F8D4k54NR7ReRas8CO4OeGoqSvOuKwqCFg2/cqN3wHwdWlK/7Yv/lMXlhVIaw=="],
"@astrojs/mdx": ["@astrojs/mdx@5.0.2", "", { "dependencies": { "@astrojs/markdown-remark": "7.0.1", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.16.0", "es-module-lexer": "^2.0.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "piccolore": "^0.1.3", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^6.0.0" } }, "sha512-0as6odPH9ZQhS3pdH9dWmVOwgXuDtytJiE4VvYgR0lSFBvF4PSTyE0HdODHm/d7dBghvWTPc2bQaBm4y4nTBNw=="],
"@astrojs/prism": ["@astrojs/prism@4.0.1", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ=="],
"@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="],
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
"@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="],
"@babel/parser": ["@babel/parser@7.29.2", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" } }, "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA=="],
"@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="],
"@capsizecss/unpack": ["@capsizecss/unpack@4.0.0", "", { "dependencies": { "fontkitten": "^1.0.0" } }, "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA=="],
"@clack/core": ["@clack/core@1.1.0", "", { "dependencies": { "sisteransi": "^1.0.5" } }, "sha512-SVcm4Dqm2ukn64/8Gub2wnlA5nS2iWJyCkdNHcvNHPIeBTGojpdJ+9cZKwLfmqy7irD4N5qLteSilJlE0WLAtA=="],
"@clack/prompts": ["@clack/prompts@1.1.0", "", { "dependencies": { "@clack/core": "1.1.0", "sisteransi": "^1.0.5" } }, "sha512-pkqbPGtohJAvm4Dphs2M8xE29ggupihHdy1x84HNojZuMtFsHiUlRvqD24tM2+XmI+61LlfNceM3Wr7U5QES5g=="],
"@emnapi/runtime": ["@emnapi/runtime@1.9.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA=="],
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q=="],
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.4", "", { "os": "android", "cpu": "arm" }, "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ=="],
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.4", "", { "os": "android", "cpu": "arm64" }, "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw=="],
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.4", "", { "os": "android", "cpu": "x64" }, "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw=="],
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ=="],
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw=="],
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw=="],
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ=="],
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.4", "", { "os": "linux", "cpu": "arm" }, "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg=="],
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA=="],
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA=="],
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA=="],
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw=="],
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA=="],
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw=="],
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA=="],
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.4", "", { "os": "linux", "cpu": "x64" }, "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA=="],
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q=="],
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.4", "", { "os": "none", "cpu": "x64" }, "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg=="],
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow=="],
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ=="],
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg=="],
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g=="],
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg=="],
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw=="],
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg=="],
"@iconify-json/lucide": ["@iconify-json/lucide@1.2.98", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-Lx2464W8Tty/QEnZ2UPb73nPdML/HpGCj0J0w37jP3/jx3l4fniZBjDxe1TgHiIL5XW9QO3vlx53ZQZ5JsNpzQ=="],
"@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.74", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-yqaohfY6jnYjTVpuTkaBQHrWbdUrQyWXhau0r/0EZiNWYXPX/P8WWwl1DoLH5CbvDjjcWQw5J0zADhgCUklOqA=="],
"@iconify/tools": ["@iconify/tools@4.2.0", "", { "dependencies": { "@iconify/types": "^2.0.0", "@iconify/utils": "^2.3.0", "cheerio": "^1.1.2", "domhandler": "^5.0.3", "extract-zip": "^2.0.1", "local-pkg": "^1.1.2", "pathe": "^2.0.3", "svgo": "^3.3.2", "tar": "^7.5.2" } }, "sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA=="],
"@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="],
"@iconify/utils": ["@iconify/utils@2.3.0", "", { "dependencies": { "@antfu/install-pkg": "^1.0.0", "@antfu/utils": "^8.1.0", "@iconify/types": "^2.0.0", "debug": "^4.4.0", "globals": "^15.14.0", "kolorist": "^1.8.0", "local-pkg": "^1.0.0", "mlly": "^1.7.4" } }, "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA=="],
"@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="],
"@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="],
"@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="],
"@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="],
"@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="],
"@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="],
"@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="],
"@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="],
"@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="],
"@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="],
"@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="],
"@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="],
"@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="],
"@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="],
"@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="],
"@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="],
"@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="],
"@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="],
"@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="],
"@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="],
"@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="],
"@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="],
"@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="],
"@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="],
"@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="],
"@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="],
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="],
"@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="],
"@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" } }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="],
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg=="],
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q=="],
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg=="],
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w=="],
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.59.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA=="],
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg=="],
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw=="],
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA=="],
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA=="],
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA=="],
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg=="],
"@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q=="],
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA=="],
"@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA=="],
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg=="],
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg=="],
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w=="],
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg=="],
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg=="],
"@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.59.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ=="],
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA=="],
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A=="],
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA=="],
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA=="],
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA=="],
"@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="],
"@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag=="],
"@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg=="],
"@shikijs/langs": ["@shikijs/langs@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg=="],
"@shikijs/primitive": ["@shikijs/primitive@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw=="],
"@shikijs/themes": ["@shikijs/themes@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA=="],
"@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="],
"@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
"@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="],
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
"@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="],
"@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
"@types/katex": ["@types/katex@0.16.8", "", {}, "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg=="],
"@types/mathjax": ["@types/mathjax@0.0.40", "", {}, "sha512-rHusx08LCg92WJxrsM3SPjvLTSvK5C+gealtSuhKbEOcUZfWlwigaFoPLf6Dfxhg4oryN5qP9Sj7zOQ4HYXINw=="],
"@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="],
"@types/mdx": ["@types/mdx@2.0.13", "", {}, "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="],
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
"@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="],
"@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="],
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
"@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="],
"@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="],
"@xmldom/xmldom": ["@xmldom/xmldom@0.9.8", "", {}, "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A=="],
"acorn": ["acorn@8.16.0", "", { "bin": "bin/acorn" }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="],
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
"anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
"array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="],
"astring": ["astring@1.9.0", "", { "bin": "bin/astring" }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="],
"astro": ["astro@6.0.8", "", { "dependencies": { "@astrojs/compiler": "^3.0.0", "@astrojs/internal-helpers": "0.8.0", "@astrojs/markdown-remark": "7.0.1", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.0.1", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "svgo": "^4.0.0", "tinyclip": "^0.1.6", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^7.3.1", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": "bin/astro.mjs" }, "sha512-DCPeb8GKOoFWh+8whB7Qi/kKWD/6NcQ9nd1QVNzJFxgHkea3WYrNroQRq4whmBdjhkYPTLS/1gmUAl2iA2Es2g=="],
"astro-icon": ["astro-icon@1.1.5", "", { "dependencies": { "@iconify/tools": "^4.0.5", "@iconify/types": "^2.0.0", "@iconify/utils": "^2.1.30" } }, "sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw=="],
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
"bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
"boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
"buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="],
"ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="],
"character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="],
"character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="],
"character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="],
"character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="],
"cheerio": ["cheerio@1.2.0", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.1.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", "undici": "^7.19.0", "whatwg-mimetype": "^4.0.0" } }, "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg=="],
"cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="],
"chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
"chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="],
"ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="],
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
"collapse-white-space": ["collapse-white-space@2.1.0", "", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="],
"comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="],
"commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="],
"common-ancestor-path": ["common-ancestor-path@2.0.0", "", {}, "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng=="],
"confbox": ["confbox@0.2.4", "", {}, "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ=="],
"cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="],
"cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="],
"crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="],
"css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="],
"css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="],
"css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="],
"csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="],
"data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="],
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
"decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="],
"defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="],
"dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="],
"destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="],
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
"devalue": ["devalue@5.6.4", "", {}, "sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA=="],
"devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="],
"diff": ["diff@8.0.3", "", {}, "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ=="],
"dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="],
"dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],
"domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
"domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],
"domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],
"dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="],
"encoding-sniffer": ["encoding-sniffer@0.2.1", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw=="],
"end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
"entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
"es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="],
"esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="],
"esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="],
"esbuild": ["esbuild@0.27.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.4", "@esbuild/android-arm": "0.27.4", "@esbuild/android-arm64": "0.27.4", "@esbuild/android-x64": "0.27.4", "@esbuild/darwin-arm64": "0.27.4", "@esbuild/darwin-x64": "0.27.4", "@esbuild/freebsd-arm64": "0.27.4", "@esbuild/freebsd-x64": "0.27.4", "@esbuild/linux-arm": "0.27.4", "@esbuild/linux-arm64": "0.27.4", "@esbuild/linux-ia32": "0.27.4", "@esbuild/linux-loong64": "0.27.4", "@esbuild/linux-mips64el": "0.27.4", "@esbuild/linux-ppc64": "0.27.4", "@esbuild/linux-riscv64": "0.27.4", "@esbuild/linux-s390x": "0.27.4", "@esbuild/linux-x64": "0.27.4", "@esbuild/netbsd-arm64": "0.27.4", "@esbuild/netbsd-x64": "0.27.4", "@esbuild/openbsd-arm64": "0.27.4", "@esbuild/openbsd-x64": "0.27.4", "@esbuild/openharmony-arm64": "0.27.4", "@esbuild/sunos-x64": "0.27.4", "@esbuild/win32-arm64": "0.27.4", "@esbuild/win32-ia32": "0.27.4", "@esbuild/win32-x64": "0.27.4" }, "bin": "bin/esbuild" }, "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ=="],
"escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
"esm": ["esm@3.2.25", "", {}, "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="],
"estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="],
"estree-util-build-jsx": ["estree-util-build-jsx@3.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" } }, "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ=="],
"estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="],
"estree-util-scope": ["estree-util-scope@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ=="],
"estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="],
"estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="],
"estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="],
"eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="],
"exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="],
"extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="],
"extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": "cli.js" }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="],
"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" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
"fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="],
"flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="],
"fontace": ["fontace@0.4.1", "", { "dependencies": { "fontkitten": "^1.0.2" } }, "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw=="],
"fontkitten": ["fontkitten@1.0.3", "", { "dependencies": { "tiny-inflate": "^1.0.3" } }, "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw=="],
"formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="],
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
"get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="],
"github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="],
"globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="],
"h3": ["h3@1.15.9", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "sha512-H7UPnyIupUOYUQu7f2x7ABVeMyF/IbJjqn20WSXpMdnQB260luADUkSgJU7QTWLutq8h3tUayMQ1DdbSYX5LkA=="],
"hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="],
"hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="],
"hast-util-is-element": ["hast-util-is-element@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="],
"hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="],
"hast-util-raw": ["hast-util-raw@9.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="],
"hast-util-to-estree": ["hast-util-to-estree@3.1.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="],
"hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="],
"hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="],
"hast-util-to-parse5": ["hast-util-to-parse5@8.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA=="],
"hast-util-to-text": ["hast-util-to-text@4.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" } }, "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A=="],
"hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="],
"hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="],
"html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="],
"html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="],
"htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="],
"http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="],
"iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
"inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="],
"iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="],
"is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="],
"is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
"is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="],
"is-docker": ["is-docker@3.0.0", "", { "bin": "cli.js" }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
"is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="],
"is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": "cli.js" }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
"is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="],
"is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="],
"js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": "bin/js-yaml.js" }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
"katex": ["katex@0.16.40", "", { "dependencies": { "commander": "^8.3.0" }, "bin": "cli.js" }, "sha512-1DJcK/L05k1Y9Gf7wMcyuqFOL6BiY3vY0CFcAM/LPRN04NALxcl6u7lOWNsp3f/bCHWxigzQl6FbR95XJ4R84Q=="],
"kebab-case": ["kebab-case@2.0.2", "", {}, "sha512-NhIP7vecGtqJfNZ85ct0yRQfx//gCJHapJCBZP6/BBcBw/U218Jw7YX7rO6TI5/cCp5dJvlIjN3vbcRTqq7nWA=="],
"kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="],
"local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="],
"longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
"lru-cache": ["lru-cache@11.2.7", "", {}, "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA=="],
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"magicast": ["magicast@0.5.2", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } }, "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ=="],
"markdown-code-block-meta": ["markdown-code-block-meta@0.0.2", "", {}, "sha512-ZHoiTBgMIEP71IN5HJo3eU/7F2A1J4on8LU0bzMe7+n09oANJMKht6/VGHQmA41OK117WZ225f7Imd4IF2bokw=="],
"markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="],
"markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="],
"mathjax-full": ["mathjax-full@3.2.1", "", { "dependencies": { "esm": "^3.2.25", "mhchemparser": "^4.1.0", "mj-context-menu": "^0.6.1", "speech-rule-engine": "^4.0.6" } }, "sha512-aUz9o16MGZdeiIBwZjAfUBTiJb7LRqzZEl1YOZ8zQMGYIyh1/nxRebxKxjDe9L+xcZCr2OHdzoFBMcd6VnLv9Q=="],
"mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="],
"mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="],
"mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="],
"mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="],
"mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="],
"mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="],
"mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="],
"mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="],
"mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="],
"mdast-util-math": ["mdast-util-math@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "longest-streak": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.1.0", "unist-util-remove-position": "^5.0.0" } }, "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w=="],
"mdast-util-mdx": ["mdast-util-mdx@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="],
"mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="],
"mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="],
"mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="],
"mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="],
"mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="],
"mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="],
"mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="],
"mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="],
"mhchemparser": ["mhchemparser@4.2.1", "", {}, "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ=="],
"micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="],
"micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="],
"micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="],
"micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="],
"micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="],
"micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="],
"micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="],
"micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="],
"micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="],
"micromark-extension-math": ["micromark-extension-math@3.1.0", "", { "dependencies": { "@types/katex": "^0.16.0", "devlop": "^1.0.0", "katex": "^0.16.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg=="],
"micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="],
"micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="],
"micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="],
"micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="],
"micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="],
"micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="],
"micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="],
"micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="],
"micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="],
"micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="],
"micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="],
"micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="],
"micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="],
"micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="],
"micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="],
"micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="],
"micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="],
"micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="],
"micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="],
"micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="],
"micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="],
"micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="],
"micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="],
"micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="],
"micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="],
"micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="],
"mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="],
"minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="],
"minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="],
"mj-context-menu": ["mj-context-menu@0.6.1", "", {}, "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA=="],
"mlly": ["mlly@1.8.2", "", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA=="],
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
"nanoid": ["nanoid@3.3.11", "", { "bin": "bin/nanoid.cjs" }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
"neotraverse": ["neotraverse@0.6.18", "", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="],
"nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="],
"node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="],
"node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="],
"node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="],
"node-mock-http": ["node-mock-http@1.0.4", "", {}, "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ=="],
"normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
"nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
"obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="],
"ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="],
"ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="],
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
"oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="],
"oniguruma-to-es": ["oniguruma-to-es@4.3.5", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ=="],
"p-limit": ["p-limit@7.3.0", "", { "dependencies": { "yocto-queue": "^1.2.1" } }, "sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw=="],
"p-memoize": ["p-memoize@8.0.0", "", { "dependencies": { "mimic-function": "^5.0.1", "type-fest": "^4.41.0" } }, "sha512-jdZ10MCxavHoIHwJ5oweOtYy6ElPixEHaMkz0AuaEMovR1MRpVvYFzIEHRxgMEpXYzNpRVByFAniAzwmd1/uug=="],
"p-queue": ["p-queue@9.1.0", "", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^7.0.0" } }, "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw=="],
"p-timeout": ["p-timeout@7.0.1", "", {}, "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg=="],
"package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="],
"parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="],
"parse-latin": ["parse-latin@7.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ=="],
"parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
"parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="],
"parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="],
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
"pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="],
"piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="],
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
"pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="],
"postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="],
"prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="],
"property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
"pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="],
"quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="],
"radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="],
"readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="],
"recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="],
"recma-jsx": ["recma-jsx@1.0.1", "", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" }, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w=="],
"recma-parse": ["recma-parse@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ=="],
"recma-stringify": ["recma-stringify@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="],
"regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="],
"regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="],
"regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="],
"rehype": ["rehype@13.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "rehype-parse": "^9.0.0", "rehype-stringify": "^10.0.0", "unified": "^11.0.0" } }, "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A=="],
"rehype-callouts": ["rehype-callouts@2.1.2", "", { "dependencies": { "@types/hast": "^3.0.4", "hast-util-from-html": "^2.0.3", "hast-util-is-element": "^3.0.0", "hastscript": "^9.0.1", "unist-util-visit": "^5.0.0" } }, "sha512-ZZWZ6EknUHiSzr4pQ88C7db3su4DElfJRmphZJbXpDdwW3urTwlYZpHckoC9pjEvBmUEEiJAM0uuc2uxyLdTfg=="],
"rehype-mathjax": ["rehype-mathjax@7.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mathjax": "^0.0.40", "hast-util-to-text": "^4.0.0", "hastscript": "^9.0.0", "mathjax-full": "^3.0.0", "unified": "^11.0.0", "unist-util-visit-parents": "^6.0.0", "vfile": "^6.0.0" } }, "sha512-mJHNpoqCC5UZ24OKx0wNjlzV18qeJz/Q/LtEjxXzt8vqrZ1Z3GxQnVrHcF5/PogcXUK8cWwJ4U/LWOQWEiABHw=="],
"rehype-parse": ["rehype-parse@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="],
"rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="],
"rehype-recma": ["rehype-recma@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" } }, "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw=="],
"rehype-stringify": ["rehype-stringify@10.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" } }, "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA=="],
"remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="],
"remark-kroki": ["remark-kroki@0.3.8", "", { "dependencies": { "is-plain-obj": "^4.1.0", "kebab-case": "^2.0.2", "markdown-code-block-meta": "^0.0.2", "node-fetch": "^3.3.2", "p-memoize": "^8.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-WQ+RaijsjCzb2gOQmRbQlm1SOS+v+CL+zVc+kZo6mxLiLdleRFUULhVzEsiCim0v9X/ZrxY9Nx2LPBUkok7TZA=="],
"remark-math": ["remark-math@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-math": "^3.0.0", "micromark-extension-math": "^3.0.0", "unified": "^11.0.0" } }, "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA=="],
"remark-mdx": ["remark-mdx@3.1.1", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg=="],
"remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="],
"remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="],
"remark-smartypants": ["remark-smartypants@3.0.2", "", { "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" } }, "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA=="],
"remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="],
"retext": ["retext@9.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" } }, "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA=="],
"retext-latin": ["retext-latin@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", "unified": "^11.0.0" } }, "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA=="],
"retext-smartypants": ["retext-smartypants@6.2.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="],
"retext-stringify": ["retext-stringify@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="],
"rollup": ["rollup@4.59.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", "@rollup/rollup-darwin-arm64": "4.59.0", "@rollup/rollup-darwin-x64": "4.59.0", "@rollup/rollup-freebsd-arm64": "4.59.0", "@rollup/rollup-freebsd-x64": "4.59.0", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", "@rollup/rollup-linux-arm-musleabihf": "4.59.0", "@rollup/rollup-linux-arm64-gnu": "4.59.0", "@rollup/rollup-linux-arm64-musl": "4.59.0", "@rollup/rollup-linux-loong64-gnu": "4.59.0", "@rollup/rollup-linux-loong64-musl": "4.59.0", "@rollup/rollup-linux-ppc64-gnu": "4.59.0", "@rollup/rollup-linux-ppc64-musl": "4.59.0", "@rollup/rollup-linux-riscv64-gnu": "4.59.0", "@rollup/rollup-linux-riscv64-musl": "4.59.0", "@rollup/rollup-linux-s390x-gnu": "4.59.0", "@rollup/rollup-linux-x64-gnu": "4.59.0", "@rollup/rollup-linux-x64-musl": "4.59.0", "@rollup/rollup-openbsd-x64": "4.59.0", "@rollup/rollup-openharmony-arm64": "4.59.0", "@rollup/rollup-win32-arm64-msvc": "4.59.0", "@rollup/rollup-win32-ia32-msvc": "4.59.0", "@rollup/rollup-win32-x64-gnu": "4.59.0", "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" }, "bin": "dist/bin/rollup" }, "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"sax": ["sax@1.6.0", "", {}, "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA=="],
"semver": ["semver@7.7.4", "", { "bin": "bin/semver.js" }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
"sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="],
"shiki": ["shiki@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/engine-javascript": "4.0.2", "@shikijs/engine-oniguruma": "4.0.2", "@shikijs/langs": "4.0.2", "@shikijs/themes": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ=="],
"sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
"smol-toml": ["smol-toml@1.6.0", "", {}, "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw=="],
"source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
"speech-rule-engine": ["speech-rule-engine@4.1.2", "", { "dependencies": { "@xmldom/xmldom": "0.9.8", "commander": "13.1.0", "wicked-good-xpath": "1.3.0" }, "bin": { "sre": "bin/sre" } }, "sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw=="],
"stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="],
"style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="],
"style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="],
"svgo": ["svgo@4.0.1", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.5.0" }, "bin": "bin/svgo.js" }, "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w=="],
"tar": ["tar@7.5.12", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-9TsuLcdhOn4XztcQqhNyq1KOwOOED/3k58JAvtULiYqbO8B/0IBAAIE1hj0Svmm58k27TmcigyDI0deMlgG3uw=="],
"tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="],
"tinyclip": ["tinyclip@0.1.12", "", {}, "sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA=="],
"tinyexec": ["tinyexec@1.0.4", "", {}, "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw=="],
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
"trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="],
"trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="],
"tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": "bin/tsconfck.js" }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="],
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
"type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
"ufo": ["ufo@1.6.3", "", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="],
"ultrahtml": ["ultrahtml@1.6.0", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="],
"uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="],
"undici": ["undici@7.24.5", "", {}, "sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q=="],
"undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="],
"unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="],
"unifont": ["unifont@0.7.4", "", { "dependencies": { "css-tree": "^3.1.0", "ofetch": "^1.5.1", "ohash": "^2.0.11" } }, "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg=="],
"unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="],
"unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="],
"unist-util-modify-children": ["unist-util-modify-children@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" } }, "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw=="],
"unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="],
"unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="],
"unist-util-remove-position": ["unist-util-remove-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="],
"unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="],
"unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="],
"unist-util-visit-children": ["unist-util-visit-children@3.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA=="],
"unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="],
"unstorage": ["unstorage@1.17.4", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.5", "lru-cache": "^11.2.0", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw=="],
"vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="],
"vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="],
"vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="],
"vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": "bin/vite.js" }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
"vitefu": ["vitefu@1.1.2", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0" } }, "sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw=="],
"web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="],
"web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
"whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
"whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
"which-pm-runs": ["which-pm-runs@1.1.0", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="],
"wicked-good-xpath": ["wicked-good-xpath@1.3.0", "", {}, "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw=="],
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
"xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
"yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
"yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="],
"yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="],
"yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="],
"zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
"zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
"@iconify/tools/svgo": ["svgo@3.3.3", "", { "dependencies": { "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.0.0", "sax": "^1.5.0" }, "bin": "bin/svgo" }, "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng=="],
"@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
"anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
"csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="],
"dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
"htmlparser2/entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="],
"katex/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="],
"mlly/pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="],
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
"speech-rule-engine/commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="],
"@iconify/tools/svgo/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="],
"@iconify/tools/svgo/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=="],
"csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="],
"mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="],
"@iconify/tools/svgo/css-tree/mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="],
}
}
-4591
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

-5
View File
@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="220" height="40" viewBox="0 0 220 40" role="img" aria-label="Blogeintrag @ c0ntroller.de">
<style>text { transition: text-shadow 0.3s ease; } rect:hover ~ text, text:hover { text-shadow: 0 0 5px rgba(214,134,249,0.6), 0 0 10px rgba(214, 134, 249, .6) }</style>
<rect width="220" height="40" fill="#0d0117" rx="8" />
<text x="110" y="25" fill="rgb(214, 134, 249)" font-family="Arial, sans-serif" font-size="16" text-anchor="middle">Blogeintrag @ c0ntroller.de</text>
</svg>

Before

Width:  |  Height:  |  Size: 531 B

+17 -11
View File
@@ -3,11 +3,11 @@ const currentPath = Astro.url.pathname;
import Logo from "../assets/logo.svg";
---
<nav class="main-nav glass-container" style="view-transition-name:navigation;">
<nav class="main-nav glass-container">
<div class="nav-content">
<a href="/" class="logo">
<Logo class="logo-img" />
<span class="logo-text">c0ntroller.de</span>
c0ntroller.de
</a>
<div class="links">
<a
@@ -25,6 +25,21 @@ import Logo from "../assets/logo.svg";
</div>
</nav>
<style is:global>
body:has(nav a[href="/"]:hover) {
--accent-base: var(--accent-base--default);
}
body:has(nav a[href="/portfolio"]:hover) {
--accent-base: var(--accent-base--portfolio);
}
body:has(nav a[href="/blog"]:hover) {
--accent-base: var(--accent-base--blog);
}
body:has(nav a[href="/book"]:hover) {
--accent-base: var(--accent-base--book);
}
</style>
<style>
.main-nav {
position: sticky;
@@ -83,13 +98,4 @@ import Logo from "../assets/logo.svg";
color: rgb(var(--accent-base));
font-weight: 600;
}
@media (max-width: 500px) {
.logo-text {
display: none;
}
.links {
gap: 1rem;
}
}
</style>
+3 -3
View File
@@ -42,7 +42,7 @@
.welcome-typewriter-nostyle {
min-height: 1em;
border-right: 2px solid rgb(var(--accent-base));
border-right: 2px solid orange;
margin: 0 auto;
display: block;
overflow-x: hidden;
@@ -70,7 +70,7 @@
display: inline-block;
height: 1em;
width: 0px;
border-right: 2px solid rgb(var(--accent-base));
border-right: 2px solid orange;
animation: blink-caret 1s step-end infinite;
}
@@ -79,7 +79,7 @@
}
@keyframes blink-caret {
from, to { border-color: rgb(var(--accent-base)) }
from, to { border-color: orange }
50% { border-color: transparent; }
}
-1
View File
@@ -17,7 +17,6 @@ const portfolioCollection = defineCollection({
summary: z.string(),
tags: z.array(z.string()).optional(),
pubDate: z.date(),
repository: z.url().regex(/git/).optional(),
}),
});
-44
View File
@@ -1,44 +0,0 @@
---
title: "Unbegrenzte Möglichkeiten"
summary: "... oder: Wie mich der KI-Chat auf Arbeit radikalisiert."
pubDate: 2026-04-13
---
Wie alle großen Arbeitgeber darf auch meiner nicht in der Vergangenheit stecken bleiben.
Das heißt seit einigen Jahren, wir bewerfen alle Probleme mit KI und schauen mal, ob was bei rumkommt.
Für mich als Entwickler bringt das natürlich auch Vorteile:
Eine interne Open WebUI-Instanz mit GPT- und Claude-Modellen und auch Github Copilot Enterprise bekomme ich einfach so.
Für Github Copilot konnte man sogar "Botschafter" werden.
Und da ich den Kollegen eh schon häufiger Computer beibringe, dachte ich, es kann auch nicht schaden.
Aber damit kam man auch in die ganzen unternehmensweiten "AI Community Support" Chatgruppen, in denen man Anwendungsfälle oder Probleme teilen konnte.
Nur fragt man sich dann doch, warum eine Person sich als Botschafter\*in Github Copilot bewirbt, die als erstes fragt, was den dieses "VSCode" ist und wie sies installiert.
Und dabei hört es nicht auf.
Nahezu täglich gibt es immer neue schlaue Ideen und ganz interessante Probleme:
- Man sollte doch nicht nur den Code, sondern die Code Review auch gleich die KI übernehmen lassen.
- Der HTTP Node in n8n gibt irgendwie immer nur einen Haufen HTML-Tags zurück.
- Warum ist eigentlich die `--yolo` Flag in Copilot CLI deaktiviert? Immer alles zu bestätigen, ist immer so anstrengend...
- "Ich bin mit meinen Premium-Requests in Copilot schon durch, kann man dort das Limit erhöhen??" (5. Tag des Monats, 300 Premium-Requests/Monat verfügbar)
- Angemerkt sei hier: Es geht um Requests, Tokens sind dafür völlig irrelevant. Wenn ich einen langen Request schreibe und die KI arbeitet 2 Tage dran, ist das trotzdem 1 Request.
Und als jetzt ein Vortrag über Copilot geplant wurde, wurde ich sehr verwirrt angeschaut, als ich vorgeschlagen habe, doch auch über Sicherheitsaspekte zu reden.
In einer Firma, die aus Sicherheitsgründen Port 22 zu Github blockiert.
Es fühlt sich an, als hätte man einem Haufen Teenagern Flammenwerfer gegeben.
Natürlich zünden die sich nicht _sofort_ an.
Aber nur die wenigsten werden etwas Sinnvolles damit machen.
Und das Problem ist ja nicht, dass es die Möglichkeiten gibt, sondern dass immer **einen** gibt, der eine dumme Idee hat.
Und so haben jetzt Menschen die Möglichkeit sicherheitskritische Webanwendungen zu entwickeln und auszurollen, die nicht wissen was eine REST API ist.
Nach und nach entferne ich mich von dem ganzen KI-Thema immer mehr.
Ich benutzer weiter Copilot weil es auch echt sinnvoll sein kann und ich benutze gern GPT, weil es gut zum Brainstorming funktioniert.
Aber Skill-Pakete, Memory-Anwendungen, Token-Optimierung...
Ich glaube einfach nicht mehr dran, dass das in die richtige Richtung geht.
Bereichsübergreifend versucht die Firma nun seit Jahren endlich ein Interface zu bauen, durch das man alle Dokumentationen mithilfe LLMs ganz einfach durchsuchen lassen kann.
Es funktioniert bis jetzt überhaupt nicht.
Trotzdem wird daran festgehalten, vielleicht weil man es den Invenstoren schon gezeigt hat.
Ich bin auf jeden Fall gespannt, wo das endet.
Ich denke nein, hoffe spätestens wenn das erste Mal KI-Code unsere Produktion lahm legt, werden Konsequenzen gezogen.
-46
View File
@@ -1,46 +0,0 @@
---
title: "Stürme in Wassergläsern"
summary: "Immer wieder lösen Internetgiganten mit Änderungen an ihren Produkten große Entrüstung bei den Nutzern aus. Nur damit wenig später alles vergessen ist. Ein paar Gedanken zu Monopolen, Enshittification und Alternativen."
pubDate: 2026-05-04
---
Im Februar 2026 die Skandalmeldung:
Discord will in naher Zukunft alle seine User einer Altersverifikation unterziehen.
Natürlich erst einmal ein Schock für alle Nutzer, denn nicht einmal ein halbes Jahr vorher wurden in Großbritannien - wo die Nutzerverifikation schon einige Zeit gesetzlich notwendig ist - etliche Dokumente der Nutzer von Hackern abgegriffen. Nicht verwunderlich, dass im Internet direkt Fackeln und Mistgabeln rausgeholt wurden. Und auch Medien sprangen sofort darauf an mit Meldungen wie ["Altersprüfung bei Discord stirbt jetzt die Plattform?"](https://www.br.de/nachrichten/netzwelt/alterspruefung-bei-discord-stirbt-jetzt-die-plattform,VAimgPb). Leute posten die Kündigungen ihrer Nitro-Abonnements. Sensationell, alle in Aufruhr und alle kämpfen für Privatsphäre und Sicherheit. Und die Kinder.
Und immer wieder vergessen alle, dass sie vergessen werden.
Es ist immer dasselbe: Große Firma kündigt große Umstellung an, Gegenstimmen werden laut und das Internet stellt sich vereint gegen die große gierige Firma - nur damit dann nach 2 Wochen komplett Ruhe ist und ein halbes Jahr später keiner mehr weiß, was Sache war.
Die Firma hat dabei nichts angepasst und vermeldet neue Rekordgewinne.
Hier ein paar Beispiele, die die letzten Jahre genau das zeigen:
- Reddits Änderungen in der Content-Policy die einen "Blackout" nach sich zog
- Datenschutz-Anpassungen von WhatsApp
- KI-Integration in Windows 11
- Jede Preiserhöhung von Netflix, Amazon Prime, YouTube Premium, ...
- Netflix' Unterbinden von geteilten Passwörtern
- Artikel 13, der das Internet zerstört hat
- Jede Änderung von YouTube jemals, angefangen mit der Integration von Google+
Ich glaube, das einzige wirklich große Ereignis dieser Art, von dem man noch heute die Auswirkung merkt, ist Elons Übernahme von Twitter.
Dabei ist es ja komplett richtig, sich gegen die "Enshittification" zu stellen. Nur haben alle Ereignisse etwas gemeinsam: Die Plattformen haben keine oder nur extrem nischige Alternativen. Also bei den Streaming Services noch am ehesten, aber dort gibt es tatsächlich auch genug Leute, die nur einzelne Monate immer buchen.
Viel schlimmer sind sozialen Netzwerke, bei denen muss der Freundeskreis auch gleich mit umziehen. Und meinen Freunden erklären, wie Matrix funktioniert? Na toll...
Es braucht also mehr Konkurrenz. Es muss großen Firmen schwerer gemacht werden, weiter zu wachsen und das bestehende Monopol zu erhalten. Oder eben direkt die Zerschlagung.
Und kleinen Firmen muss es einfacher gemacht werden, in den Markt einzusteigen und zu wachsen, bevor sie direkt wieder aufgekauft werden.
Und dann schreiben wir alle auf Signal (oder eben sogar Matrix), teilen Kurznachrichten auf BlueSky, Memes kommen ins Fediverse und man trifft sich am Ende des Tages auf dem selbst gehosteten TeamSpeak Server.
So nebenbei finde ich es auch verwerflich, wie häufig "Alternativen" zur Sprache kommen, die gar keine sind. Telegram ist unverschlüsselt und damit sogar schlechter als WhatsApp. Threads ist von Meta und keine Alternative zu Twitter. Und aus ganz anderen Gründen ist für die überwiegende Mehrheit Linux keine Alternative zu Windows.
Wahrscheinlich wird auch diesmal die Anzahl der Nutzer, die jetzt TeamSpeak Server aufsetzen statt sich in der bereits bestehenden Discord-Bubble auszuruhen, vernachlässigbar sein.
Und sehr wahrscheinlich gehöre auch ich dazu.
Schade eigentlich.
## Eine Meinung
Und hier nochmal meine persönliche Meinung zum Discord "Drama":
Vorab - ja, Datensammeln zu ist immer kritisch zu hinterfragen und zu kritisieren.
Aber - ob man das mag oder nicht, von politischer Seite werden immer mehr Stimmen laut, die eine zentrale Altersverifikation im Netz fordern. Und wenn man darauf vertraut, dass die Politik moderne und sichere Lösung bereitstellen, wird man meistens enttäuscht ([\*Hust\*](https://www.heise.de/news/EU-App-zur-Altersverifikation-Sorglos-Paket-mit-Sicherheitsluecken-11262838.html)). Und Discord zeigt hier in Blog-Artikeln nicht nur Einsicht, was den Vorfall im Vorjahr betraf (der ja auch nur durch einen Drittanbieter verursacht wurde), sondern betont auch dringlichst nur auf Anbieter zu setzen, die lokal und ohne weitreichende Datensammlung arbeiten. Und im Profil landet nur noch der Haken, ob ein Nutzer über 18 ist.
Und zurück zum Anfang: Ja, das sind wieder mehr Daten und ja, ob das am Ende exakt so umgesetzt wird, wie versprochen, ist unklar.
Aber ich finde diese Richtung und diese Bestrebungen sogar wichtig um für zukünftige politische Agendas einen klaren Präzedenzfall zu setzen, wie dieses Problem minimalinvasiv angegangen wird.
+3 -1
View File
@@ -1,7 +1,9 @@
---
title: "Hello world!"
title: "Dummy Post"
summary: "Der Blog steht, jetzt fehlt noch Inhalt..."
pubDate: 2026-03-20
---
## Hallo Welt
Demnächst kommen hier hoffentlich ab und so mal Gedanken hin.
@@ -210,16 +210,12 @@ Dieser funktioniert genau andersrum: Wenn am Gate eine Spannung anliegt, ist der
Dadurch ist dann unser Ausgang immer definiert.
Hier nochmal als Schaubild:
<Image src={cmos} alt="Eine CMOS-Schaltung mit a und b als Eingänge, die ein Und-Gatter bilden." height="400" />
<Image src={cmos} alt="Eine CMOS-Schaltung mit a und b als Eingänge, die ein Und-Gatter bilden." height="500" />
Statt je nachdem, ob bei $a$ und $b$ Spannung anliegt, fließt der Strom von "oben" oder "unten" durch die Transistoren und unser $Out$ nimmt die Spannung von $High$ oder $Low$ an.
Genauer: Wenn $a$ und $b$ beide High sind, verbinden die "oberen" Transistoren den Ausgang mit $High$ und die "unteren" sind nicht mehr verbunden.
Wenn $a$ oder $b$ Low sind, ist mindestens einer der "oberen" Transistoren nicht mehr durchgeschaltet und mindestens einer der "unteren" verbindet den Ausgang zu $Low$.
Statt je nachdem, ob bei $a$ und $b$ Spannung anliegt, fließt der Strom von "oben" oder "unten" durch die Transistoren und unser $Out$ nimmt die Spannung von $High$ oder $Low$ an.
$High$ und $Low$ sind dabei die Spannungen, die für 1 und 0 stehen.
> [!info]
> Wie genau die Spannungen sind und ob jetzt eine hohe oder niedrige Spannung für 1 oder 0 steht, kann von System zu System unterschiedlich sein.
> Nachfolgend ist das auch gar nicht mehr so wichtig, da wir einfach nur noch 1 und 0 als Werte benutzen werden.
Was genau die zugehörigen Spannung ist, hängt vom jeweiligen System ab.
Die Spannungen sind so zu wählen, dass sie von den Transistoren sicher erkannt werden können.
Aber gut, jetzt haben wir schon ein Und-Gatter.
Man kann sich nun selbst überlegen, wie die anderen Gatter mit Transistoren aufgebaut werden können.
@@ -56,7 +56,7 @@
<g class="">
<use
xlink:href="#node_nfet"
fill="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,340.38261,-407.58671999999996)"
@@ -165,7 +165,7 @@
<g class="">
<use
xlink:href="#node_circ"
fill="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-409.43721999999997)"
@@ -174,7 +174,7 @@
<g class="">
<use
xlink:href="#node_circ"
fill="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-351.23247999999995)"
@@ -183,7 +183,7 @@
<g class="">
<use
xlink:href="#node_circ"
fill="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,338.53211,-380.33486)"
@@ -192,7 +192,7 @@
<g class="">
<use
xlink:href="#node_circ"
fill="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.5494034883087,-390.5945499304999)"

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

+19 -46
View File
@@ -1,6 +1,5 @@
{
"version": "0.1",
"tikzSettings": {},
"components": [
{
"type": "node",
@@ -67,7 +66,7 @@
{
"type": "rect",
"position": {
"x": 481.89,
"x": 401.575,
"y": -349.606
},
"stroke": {
@@ -182,8 +181,8 @@
{
"type": "rect",
"position": {
"x": 428.977,
"y": -283.465
"x": 372.283,
"y": -223.937
},
"stroke": {
"opacity": 0
@@ -208,7 +207,7 @@
{
"type": "node",
"position": {
"x": 462.992,
"x": 387.402,
"y": -349.606
},
"id": "circ"
@@ -221,7 +220,7 @@
"y": -349.606
},
{
"x": 462.992,
"x": 387.402,
"y": -349.606
}
],
@@ -278,8 +277,8 @@
{
"type": "node",
"position": {
"x": 434.646,
"y": -320.504
"x": 377.953,
"y": -260.598
},
"id": "pfet"
},
@@ -324,24 +323,24 @@
{
"type": "node",
"position": {
"x": 434.647,
"y": -309.922
"x": 377.953,
"y": -250.394
},
"id": "circ"
},
{
"type": "node",
"position": {
"x": 434.647,
"y": -291.024
"x": 377.953,
"y": -231.496
},
"id": "circ"
},
{
"type": "node",
"position": {
"x": 397.607,
"y": -320.504
"x": 340.914,
"y": -260.598
},
"id": "circ"
},
@@ -357,12 +356,12 @@
"type": "wire",
"points": [
{
"x": 434.647,
"y": -320.126
"x": 377.953,
"y": -260.598
},
{
"x": 434.647,
"y": -309.922
"x": 377.953,
"y": -250.394
}
],
"stroke": {
@@ -393,8 +392,8 @@
{
"type": "rect",
"position": {
"x": 385.039,
"y": -325.984
"x": 328.347,
"y": -264.567
},
"stroke": {
"opacity": 0
@@ -407,32 +406,6 @@
"text": "b",
"showPlaceholderText": true
}
},
{
"type": "rect",
"position": {
"x": 372.284,
"y": -281.575
},
"stroke": {
"opacity": 0
},
"size": {
"x": 26.457,
"y": 22.677
},
"text": {
"text": "Low",
"showPlaceholderText": true
}
},
{
"type": "node",
"position": {
"x": 377.954,
"y": -289.134
},
"id": "circ"
}
]
}
+262 -163
View File
@@ -3,11 +3,11 @@
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
style="font-size: 10pt; overflow: visible;"
viewBox="316.0090026855469 -485.5880126953125 179.16348266601562 211.82464599609375"
viewBox="308.11566162109375 -492.6713562011719 113.69015502929688 281.40618896484375"
>
<defs>
<symbol id="node_nfet">
<g stroke="var(--text-main, #e0e7f0)" stroke-miterlimit="10" stroke-width=".4">
<g stroke="currentStroke" stroke-miterlimit="10" stroke-width=".4">
<path
fill="none"
stroke-width=".53134"
@@ -41,7 +41,7 @@
</g>
</symbol>
<symbol id="node_pfet">
<g stroke="var(--text-main, #e0e7f0)" stroke-miterlimit="10" stroke-width=".4">
<g stroke="currentStroke" stroke-miterlimit="10" stroke-width=".4">
<path
fill="none"
stroke-width=".53134"
@@ -75,7 +75,11 @@
</g>
</symbol>
<symbol id="node_circ">
<g stroke="var(--text-main, #e0e7f0)" stroke-miterlimit="10" stroke-width=".53134">
<g
stroke="currentStroke"
stroke-miterlimit="10"
stroke-width=".53134"
>
<path
d="M4.49803 2.38186c0-1.16874-.94744-2.11617-2.11617-2.11617s-2.11617.94743-2.11617 2.11617.94743 2.11617 2.11617 2.11617 2.11617-.94744 2.11617-2.11617Zm-2.11617 0"
fill="currentColor"
@@ -86,18 +90,36 @@
<g class="">
<use
xlink:href="#node_nfet"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,340.38261,-407.58671999999996)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,317.449,-351.055)" />
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,317.449,-351.055)">
<rect
width="22.288666666666668"
height="17.564666666666668"
style=""
x="0.6666666666666661"
y="0.6666666666666661"
transform="matrix(1,0,0,1,309.449,-359.055)"
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,317.449,-351.055)" />
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,317.449,-351.055)">
<path
d="M0.56 4.73L0.56 4.73Q0.56 3.60 1.89 3.00L1.89 3.00Q2.70 2.61 4.35 2.52L4.35 2.52L4.35 2.03Q4.35 1.20 3.92 0.76Q3.48 0.32 2.94 0.32L2.94 0.32Q1.96 0.32 1.49 0.93L1.49 0.93Q1.89 0.95 2.03 1.15Q2.17 1.35 2.17 1.55L2.17 1.55Q2.17 1.81 2.01 1.99Q1.84 2.16 1.56 2.16L1.56 2.16Q1.30 2.16 1.12 1.99Q0.94 1.83 0.94 1.53L0.94 1.53Q0.94 0.88 1.53 0.45Q2.12 0.02 2.96 0.02L2.96 0.02Q4.06 0.02 4.79 0.76L4.79 0.76Q5.01 0.99 5.13 1.28Q5.24 1.57 5.25 1.76Q5.27 1.96 5.27 2.33L5.27 2.33L5.27 5.00Q5.27 5.08 5.29 5.21Q5.32 5.34 5.44 5.50Q5.56 5.67 5.76 5.67L5.76 5.67Q6.24 5.67 6.24 4.82L6.24 4.82L6.24 4.07L6.58 4.07L6.58 4.82Q6.58 5.52 6.20 5.80Q5.83 6.08 5.48 6.08L5.48 6.08Q5.04 6.08 4.76 5.75Q4.48 5.43 4.44 4.98L4.44 4.98Q4.24 5.49 3.78 5.82Q3.32 6.15 2.70 6.15L2.70 6.15Q2.21 6.15 1.76 6.03Q1.31 5.91 0.93 5.57Q0.56 5.24 0.56 4.73ZM1.59 4.72L1.59 4.72Q1.59 5.21 1.94 5.53Q2.29 5.85 2.79 5.85L2.79 5.85Q3.35 5.85 3.85 5.42Q4.35 4.98 4.35 4.13L4.35 4.13L4.35 2.80Q2.87 2.85 2.23 3.44Q1.59 4.03 1.59 4.72Z"
d="M0.56 4.73L0.56 4.73Q0.56 3.59 1.89 2.99L1.89 2.99Q2.70 2.61 4.35 2.51L4.35 2.51L4.35 2.02Q4.35 1.20 3.92 0.76Q3.48 0.32 2.94 0.32L2.94 0.32Q1.96 0.32 1.49 0.93L1.49 0.93Q1.89 0.94 2.03 1.14Q2.17 1.34 2.17 1.54L2.17 1.54Q2.17 1.81 2.01 1.98Q1.84 2.15 1.56 2.15L1.56 2.15Q1.30 2.15 1.12 1.99Q0.94 1.82 0.94 1.53L0.94 1.53Q0.94 0.88 1.53 0.45Q2.12 0.02 2.96 0.02L2.96 0.02Q4.06 0.02 4.79 0.75L4.79 0.75Q5.01 0.98 5.13 1.28Q5.24 1.57 5.25 1.76Q5.27 1.95 5.27 2.33L5.27 2.33L5.27 4.99Q5.27 5.07 5.29 5.20Q5.32 5.33 5.44 5.50Q5.56 5.66 5.76 5.66L5.76 5.66Q6.24 5.66 6.24 4.81L6.24 4.81L6.24 4.06L6.58 4.06L6.58 4.81Q6.58 5.52 6.20 5.80Q5.83 6.07 5.48 6.07L5.48 6.07Q5.04 6.07 4.76 5.75Q4.48 5.42 4.44 4.98L4.44 4.98Q4.24 5.49 3.78 5.82Q3.32 6.15 2.70 6.15L2.70 6.15Q2.21 6.15 1.76 6.03Q1.31 5.90 0.93 5.57Q0.56 5.23 0.56 4.73ZM1.59 4.71L1.59 4.71Q1.59 5.21 1.94 5.53Q2.29 5.85 2.79 5.85L2.79 5.85Q3.35 5.85 3.85 5.41Q4.35 4.98 4.35 4.13L4.35 4.13L4.35 2.79Q2.87 2.84 2.23 3.43Q1.59 4.02 1.59 4.71Z"
/>
</g>
</g>
@@ -109,25 +131,61 @@
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,362.331,-483.338)" />
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,362.331,-483.338)">
<rect
width="27.012666666666668"
height="27.012666666666668"
style=""
x="0.6666666666666661"
y="0.6666666666666661"
transform="matrix(1,0,0,1,354.331,-491.338)"
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,362.331,-483.338)" />
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,362.331,-483.338)">
<path
d="M0.44 9L0.44 9L0.44 8.59L0.76 8.59Q1.48 8.59 1.65 8.47Q1.82 8.35 1.82 7.96L1.82 7.96L1.82 0.93Q1.82 0.55 1.65 0.43Q1.48 0.31 0.76 0.31L0.76 0.31L0.44 0.31L0.44-0.11Q0.91-0.07 2.42-0.07L2.42-0.07Q3.91-0.07 4.38-0.11L4.38-0.11L4.38 0.31L4.06 0.31Q3.33 0.31 3.17 0.43Q3.00 0.55 3.00 0.93L3.00 0.93L3.00 4.05L6.99 4.05L6.99 0.93Q6.99 0.55 6.82 0.43Q6.65 0.31 5.93 0.31L5.93 0.31L5.61 0.31L5.61-0.11Q6.08-0.07 7.58-0.07L7.58-0.07Q9.08-0.07 9.54-0.11L9.54-0.11L9.54 0.31L9.23 0.31Q8.50 0.31 8.34 0.43Q8.17 0.55 8.17 0.93L8.17 0.93L8.17 7.96Q8.17 8.34 8.34 8.47Q8.51 8.59 9.23 8.59L9.23 8.59L9.54 8.59L9.54 9Q9.08 8.96 7.57 8.96L7.57 8.96Q6.08 8.96 5.61 9L5.61 9L5.61 8.59L5.93 8.59Q6.65 8.59 6.82 8.47Q6.99 8.35 6.99 7.96L6.99 7.96L6.99 4.47L3.00 4.47L3.00 7.96Q3.00 8.34 3.17 8.47Q3.33 8.59 4.06 8.59L4.06 8.59L4.38 8.59L4.38 9Q3.91 8.96 2.40 8.96L2.40 8.96Q0.91 8.96 0.44 9ZM10.44 9L10.44 9L10.44 8.59Q11.15 8.59 11.32 8.50Q11.48 8.41 11.48 7.98L11.48 7.98L11.48 4.40Q11.48 3.90 11.31 3.79Q11.15 3.67 10.49 3.67L10.49 3.67L10.49 3.25L12.36 3.11L12.36 8.00Q12.36 8.39 12.50 8.49Q12.64 8.59 13.29 8.59L13.29 8.59L13.29 9Q11.93 8.96 11.91 8.96L11.91 8.96Q11.73 8.96 10.44 9ZM11.00 0.78L11.00 0.78Q11.00 0.52 11.21 0.30Q11.41 0.08 11.71 0.08Q12.00 0.08 12.21 0.28Q12.42 0.48 12.42 0.79Q12.42 1.10 12.21 1.29Q12.00 1.49 11.71 1.49L11.71 1.49Q11.40 1.49 11.20 1.28Q11.00 1.06 11.00 0.78ZM14.06 10.05L14.06 10.05Q14.06 9.63 14.39 9.25Q14.72 8.88 15.29 8.72L15.29 8.72Q14.71 8.35 14.71 7.54L14.71 7.54Q14.71 6.91 15.12 6.43L15.12 6.43Q14.49 5.91 14.49 5.05L14.49 5.05Q14.49 4.27 15.12 3.69Q15.74 3.11 16.65 3.11L16.65 3.11Q17.45 3.11 18.07 3.59L18.07 3.59Q18.70 2.96 19.48 2.96L19.48 2.96Q19.82 2.96 19.99 3.17Q20.16 3.39 20.16 3.62L20.16 3.62Q20.16 3.82 20.03 3.92Q19.90 4.01 19.77 4.01L19.77 4.01Q19.61 4.01 19.50 3.91Q19.38 3.80 19.38 3.63L19.38 3.63Q19.38 3.35 19.60 3.26L19.60 3.26Q19.56 3.25 19.47 3.25L19.47 3.25Q18.82 3.25 18.26 3.77L18.26 3.77Q18.81 4.28 18.81 5.07Q18.81 5.86 18.18 6.43Q17.56 7.01 16.65 7.01L16.65 7.01Q15.90 7.01 15.33 6.60L15.33 6.60Q15.10 6.86 15.10 7.23L15.10 7.23Q15.10 7.56 15.31 7.82Q15.51 8.08 15.81 8.12L15.81 8.12Q15.90 8.13 16.81 8.13L16.81 8.13Q17.34 8.13 17.64 8.15Q17.93 8.16 18.35 8.25Q18.77 8.34 19.10 8.51L19.10 8.51Q19.97 8.99 19.97 10.03L19.97 10.03Q19.97 10.79 19.10 11.27Q18.22 11.75 17.01 11.75L17.01 11.75Q15.79 11.75 14.93 11.26Q14.06 10.78 14.06 10.05ZM14.76 10.05L14.76 10.05Q14.76 10.60 15.40 11.02Q16.05 11.44 17.02 11.44L17.02 11.44Q17.98 11.44 18.63 11.03Q19.28 10.61 19.28 10.05L19.28 10.05Q19.28 9.66 19.05 9.40Q18.82 9.15 18.36 9.05Q17.89 8.95 17.57 8.93Q17.24 8.91 16.64 8.91L16.64 8.91L15.85 8.91Q15.40 8.93 15.08 9.27Q14.76 9.60 14.76 10.05ZM15.49 5.07L15.49 5.07Q15.49 6.71 16.65 6.71L16.65 6.71Q17.24 6.71 17.60 6.17L17.60 6.17Q17.81 5.82 17.81 5.05L17.81 5.05Q17.81 3.41 16.65 3.41L16.65 3.41Q16.07 3.41 15.70 3.95L15.70 3.95Q15.49 4.31 15.49 5.07ZM20.79 9L20.79 9L20.79 8.59Q21.50 8.59 21.66 8.50Q21.82 8.41 21.82 7.98L21.82 7.98L21.82 1.05Q21.82 0.56 21.65 0.43Q21.48 0.31 20.79 0.31L20.79 0.31L20.79-0.11L22.70-0.25L22.70 4.38L22.71 4.38Q22.93 3.90 23.41 3.51Q23.89 3.11 24.64 3.11L24.64 3.11Q25.64 3.11 26.04 3.60L26.04 3.60Q26.33 3.93 26.39 4.31Q26.45 4.68 26.45 5.64L26.45 5.64L26.45 8.19Q26.46 8.47 26.68 8.53Q26.89 8.59 27.49 8.59L27.49 8.59L27.49 9Q26.13 8.96 26.00 8.96L26.00 8.96Q25.89 8.96 24.49 9L24.49 9L24.49 8.59Q25.20 8.59 25.37 8.50Q25.53 8.41 25.53 7.98L25.53 7.98L25.53 4.88Q25.53 4.20 25.33 3.80Q25.12 3.40 24.54 3.40L24.54 3.40Q23.85 3.40 23.30 3.98Q22.75 4.56 22.75 5.54L22.75 5.54L22.75 7.98Q22.75 8.41 22.91 8.50Q23.08 8.59 23.78 8.59L23.78 8.59L23.78 9Q22.42 8.96 22.29 8.96L22.29 8.96Q22.19 8.96 20.79 9Z"
d="M0.44 9.29L0.44 9.29L0.44 8.88L0.76 8.88Q1.48 8.88 1.65 8.76Q1.82 8.64 1.82 8.25L1.82 8.25L1.82 1.22Q1.82 0.84 1.65 0.72Q1.48 0.60 0.76 0.60L0.76 0.60L0.44 0.60L0.44 0.18Q0.91 0.22 2.42 0.22L2.42 0.22Q3.91 0.22 4.38 0.18L4.38 0.18L4.38 0.60L4.06 0.60Q3.33 0.60 3.17 0.72Q3.00 0.84 3.00 1.22L3.00 1.22L3.00 4.34L6.99 4.34L6.99 1.22Q6.99 0.84 6.82 0.72Q6.65 0.60 5.93 0.60L5.93 0.60L5.61 0.60L5.61 0.18Q6.08 0.22 7.58 0.22L7.58 0.22Q9.08 0.22 9.54 0.18L9.54 0.18L9.54 0.60L9.23 0.60Q8.50 0.60 8.34 0.72Q8.17 0.84 8.17 1.22L8.17 1.22L8.17 8.25Q8.17 8.63 8.34 8.75Q8.51 8.88 9.23 8.88L9.23 8.88L9.54 8.88L9.54 9.29Q9.08 9.25 7.57 9.25L7.57 9.25Q6.08 9.25 5.61 9.29L5.61 9.29L5.61 8.88L5.93 8.88Q6.65 8.88 6.82 8.76Q6.99 8.64 6.99 8.25L6.99 8.25L6.99 4.76L3.00 4.76L3.00 8.25Q3.00 8.63 3.17 8.75Q3.33 8.88 4.06 8.88L4.06 8.88L4.38 8.88L4.38 9.29Q3.91 9.25 2.40 9.25L2.40 9.25Q0.91 9.25 0.44 9.29ZM10.44 9.29L10.44 9.29L10.44 8.88Q11.15 8.88 11.32 8.79Q11.48 8.70 11.48 8.27L11.48 8.27L11.48 4.69Q11.48 4.19 11.31 4.07Q11.15 3.96 10.49 3.96L10.49 3.96L10.49 3.54L12.36 3.40L12.36 8.29Q12.36 8.68 12.50 8.78Q12.64 8.88 13.29 8.88L13.29 8.88L13.29 9.29Q11.93 9.25 11.91 9.25L11.91 9.25Q11.73 9.25 10.44 9.29ZM11.00 1.07L11.00 1.07Q11.00 0.80 11.21 0.59Q11.41 0.37 11.71 0.37Q12.00 0.37 12.21 0.57Q12.42 0.77 12.42 1.08Q12.42 1.38 12.21 1.58Q12.00 1.78 11.71 1.78L11.71 1.78Q11.40 1.78 11.20 1.57Q11.00 1.35 11.00 1.07ZM14.06 10.34L14.06 10.34Q14.06 9.91 14.39 9.54Q14.72 9.17 15.29 9.01L15.29 9.01Q14.71 8.64 14.71 7.82L14.71 7.82Q14.71 7.20 15.12 6.72L15.12 6.72Q14.49 6.20 14.49 5.34L14.49 5.34Q14.49 4.55 15.12 3.98Q15.74 3.40 16.65 3.40L16.65 3.40Q17.45 3.40 18.07 3.88L18.07 3.88Q18.70 3.25 19.48 3.25L19.48 3.25Q19.82 3.25 19.99 3.46Q20.16 3.68 20.16 3.90L20.16 3.90Q20.16 4.11 20.03 4.20Q19.90 4.30 19.77 4.30L19.77 4.30Q19.61 4.30 19.50 4.19Q19.38 4.09 19.38 3.92L19.38 3.92Q19.38 3.64 19.60 3.55L19.60 3.55Q19.56 3.54 19.47 3.54L19.47 3.54Q18.82 3.54 18.26 4.06L18.26 4.06Q18.81 4.57 18.81 5.36Q18.81 6.14 18.18 6.72Q17.56 7.30 16.65 7.30L16.65 7.30Q15.90 7.30 15.33 6.89L15.33 6.89Q15.10 7.15 15.10 7.52L15.10 7.52Q15.10 7.85 15.31 8.11Q15.51 8.37 15.81 8.41L15.81 8.41Q15.90 8.42 16.81 8.42L16.81 8.42Q17.34 8.42 17.64 8.44Q17.93 8.45 18.35 8.54Q18.77 8.62 19.10 8.79L19.10 8.79Q19.97 9.28 19.97 10.32L19.97 10.32Q19.97 11.08 19.10 11.56Q18.22 12.04 17.01 12.04L17.01 12.04Q15.79 12.04 14.93 11.55Q14.06 11.07 14.06 10.34ZM14.76 10.34L14.76 10.34Q14.76 10.89 15.40 11.31Q16.05 11.73 17.02 11.73L17.02 11.73Q17.98 11.73 18.63 11.32Q19.28 10.90 19.28 10.34L19.28 10.34Q19.28 9.95 19.05 9.69Q18.82 9.44 18.36 9.34Q17.89 9.24 17.57 9.22Q17.24 9.20 16.64 9.20L16.64 9.20L15.85 9.20Q15.40 9.22 15.08 9.55Q14.76 9.89 14.76 10.34ZM15.49 5.36L15.49 5.36Q15.49 7.00 16.65 7.00L16.65 7.00Q17.24 7.00 17.60 6.46L17.60 6.46Q17.81 6.10 17.81 5.34L17.81 5.34Q17.81 3.70 16.65 3.70L16.65 3.70Q16.07 3.70 15.70 4.24L15.70 4.24Q15.49 4.59 15.49 5.36ZM20.79 9.29L20.79 9.29L20.79 8.88Q21.50 8.88 21.66 8.79Q21.82 8.70 21.82 8.27L21.82 8.27L21.82 1.34Q21.82 0.84 21.65 0.72Q21.48 0.60 20.79 0.60L20.79 0.60L20.79 0.18L22.70 0.04L22.70 4.67L22.71 4.67Q22.93 4.19 23.41 3.79Q23.89 3.40 24.64 3.40L24.64 3.40Q25.64 3.40 26.04 3.89L26.04 3.89Q26.33 4.22 26.39 4.59Q26.45 4.97 26.45 5.93L26.45 5.93L26.45 8.47Q26.46 8.75 26.68 8.82Q26.89 8.88 27.49 8.88L27.49 8.88L27.49 9.29Q26.13 9.25 26.00 9.25L26.00 9.25Q25.89 9.25 24.49 9.29L24.49 9.29L24.49 8.88Q25.20 8.88 25.37 8.79Q25.53 8.70 25.53 8.27L25.53 8.27L25.53 5.17Q25.53 4.49 25.33 4.09Q25.12 3.69 24.54 3.69L24.54 3.69Q23.85 3.69 23.30 4.27Q22.75 4.85 22.75 5.82L22.75 5.82L22.75 8.27Q22.75 8.70 22.91 8.79Q23.08 8.88 23.78 8.88L23.78 8.88L23.78 9.29Q22.42 9.25 22.29 9.25L22.29 9.25Q22.19 9.25 20.79 9.29Z"
/>
</g>
</g>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,470.9925,-355.779)" />
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,470.9925,-355.779)">
<rect
width="36.461666666666666"
height="27.012666666666668"
style=""
x="0.6666666666666679"
y="0.6666666666666661"
transform="matrix(1,0,0,1,382.6775,-363.779)"
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,390.6775,-355.779)" />
<g fill="hsl(0 0 85)" transform="matrix(1,0,0,1,390.6775,-355.779)">
<path
d="M0.75 5.48L0.75 5.48Q0.75 3.44 2.05 2.02Q3.36 0.60 5.18 0.60L5.18 0.60Q7.01 0.60 8.31 2.02Q9.62 3.45 9.62 5.48L9.62 5.48Q9.62 7.49 8.31 8.89Q7.00 10.29 5.18 10.29L5.18 10.29Q3.38 10.29 2.06 8.90Q0.75 7.51 0.75 5.48ZM2.12 5.29L2.12 5.29Q2.12 6.53 2.42 7.48Q2.71 8.42 3.18 8.94Q3.65 9.45 4.16 9.70Q4.67 9.95 5.19 9.95L5.19 9.95Q5.70 9.95 6.19 9.71Q6.69 9.47 7.17 8.96Q7.64 8.45 7.94 7.50Q8.24 6.55 8.24 5.29L8.24 5.29Q8.24 4.32 8.03 3.53Q7.83 2.75 7.50 2.27Q7.17 1.80 6.75 1.48Q6.33 1.17 5.94 1.05Q5.55 0.93 5.18 0.93L5.18 0.93Q4.71 0.93 4.22 1.14Q3.73 1.35 3.24 1.81Q2.75 2.27 2.43 3.17Q2.12 4.07 2.12 5.29ZM10.79 4.67L10.79 4.67L10.79 4.25L12.75 4.11L12.75 8.54Q12.75 8.85 12.77 9.04Q12.80 9.23 12.91 9.44Q13.01 9.65 13.26 9.75Q13.52 9.85 13.92 9.85L13.92 9.85Q14.64 9.85 15.09 9.26Q15.53 8.67 15.53 7.79L15.53 7.79L15.53 5.41Q15.53 4.92 15.36 4.79Q15.18 4.67 14.49 4.67L14.49 4.67L14.49 4.25L16.45 4.11L16.45 8.84Q16.45 9.34 16.62 9.46Q16.80 9.59 17.49 9.59L17.49 9.59L17.49 10L15.57 10.15L15.57 8.95Q15.01 10.14 13.85 10.15L13.85 10.15Q13.27 10.15 12.87 10Q12.47 9.85 12.27 9.66Q12.06 9.48 11.96 9.12Q11.85 8.76 11.84 8.54Q11.82 8.32 11.82 7.89L11.82 7.89L11.82 5.89Q11.82 4.99 11.69 4.83Q11.56 4.67 10.79 4.67ZM19.14 4.67L18.01 4.67L18.01 4.38Q18.62 4.35 19.03 3.92Q19.43 3.48 19.57 2.95Q19.71 2.42 19.73 1.80L19.73 1.80L20.06 1.80L20.06 4.25L21.97 4.25L21.97 4.67L20.06 4.67L20.06 8.37Q20.06 9.81 20.96 9.81L20.96 9.81Q21.34 9.81 21.60 9.42Q21.85 9.02 21.85 8.32L21.85 8.32L21.85 7.58L22.18 7.58L22.18 8.35Q22.18 9.07 21.85 9.61Q21.52 10.15 20.86 10.15L20.86 10.15Q20.62 10.15 20.38 10.09Q20.14 10.03 19.83 9.87Q19.52 9.71 19.33 9.31Q19.14 8.92 19.14 8.35L19.14 8.35L19.14 4.67Z"
d="M0.75 4.92L0.75 4.92Q0.75 2.88 2.05 1.46Q3.36 0.03 5.18 0.03L5.18 0.03Q7.01 0.03 8.31 1.46Q9.62 2.89 9.62 4.92L9.62 4.92Q9.62 6.93 8.31 8.33Q7.00 9.73 5.18 9.73L5.18 9.73Q3.38 9.73 2.06 8.33Q0.75 6.94 0.75 4.92ZM2.12 4.73L2.12 4.73Q2.12 5.97 2.42 6.91Q2.71 7.86 3.18 8.37Q3.65 8.89 4.16 9.14Q4.67 9.38 5.19 9.38L5.19 9.38Q5.70 9.38 6.19 9.14Q6.69 8.90 7.17 8.39Q7.64 7.89 7.94 6.94Q8.24 5.98 8.24 4.73L8.24 4.73Q8.24 3.75 8.03 2.97Q7.83 2.18 7.50 1.71Q7.17 1.23 6.75 0.92Q6.33 0.61 5.94 0.49Q5.55 0.37 5.18 0.37L5.18 0.37Q4.71 0.37 4.22 0.57Q3.73 0.78 3.24 1.24Q2.75 1.70 2.43 2.60Q2.12 3.50 2.12 4.73ZM10.79 4.10L10.79 4.10L10.79 3.69L12.75 3.54L12.75 7.97Q12.75 8.29 12.77 8.47Q12.80 8.66 12.91 8.88Q13.01 9.09 13.26 9.19Q13.52 9.29 13.92 9.29L13.92 9.29Q14.64 9.29 15.09 8.69Q15.53 8.10 15.53 7.22L15.53 7.22L15.53 4.85Q15.53 4.35 15.36 4.23Q15.18 4.10 14.49 4.10L14.49 4.10L14.49 3.69L16.45 3.54L16.45 8.28Q16.45 8.77 16.62 8.90Q16.80 9.03 17.49 9.03L17.49 9.03L17.49 9.44L15.57 9.58L15.57 8.38Q15.01 9.58 13.85 9.58L13.85 9.58Q13.27 9.58 12.87 9.44Q12.47 9.29 12.27 9.10Q12.06 8.91 11.96 8.56Q11.85 8.20 11.84 7.98Q11.82 7.76 11.82 7.33L11.82 7.33L11.82 5.33Q11.82 4.42 11.69 4.26Q11.56 4.10 10.79 4.10ZM19.14 4.10L18.01 4.10L18.01 3.81Q18.62 3.78 19.03 3.35Q19.43 2.92 19.57 2.38Q19.71 1.85 19.73 1.23L19.73 1.23L20.06 1.23L20.06 3.69L21.97 3.69L21.97 4.10L20.06 4.10L20.06 7.81Q20.06 9.25 20.96 9.25L20.96 9.25Q21.34 9.25 21.60 8.85Q21.85 8.46 21.85 7.76L21.85 7.76L21.85 7.02L22.18 7.02L22.18 7.78Q22.18 8.50 21.85 9.04Q21.52 9.58 20.86 9.58L20.86 9.58Q20.62 9.58 20.38 9.52Q20.14 9.46 19.83 9.30Q19.52 9.14 19.33 8.75Q19.14 8.35 19.14 7.78L19.14 7.78L19.14 4.10Z"
/>
</g>
</g>
@@ -135,10 +193,10 @@
<g class="">
<use
xlink:href="#node_pfet"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,340.38261,-349.38172)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
@@ -148,7 +206,7 @@
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
@@ -158,43 +216,43 @@
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,330.68914,-351.98786)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,338.53213999999997,-351.98786)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-389.78386)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-312.30286)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
@@ -204,21 +262,39 @@
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<rect
width="25.12366666666667"
height="21.343666666666667"
style=""
x="0.6666666666666661"
y="0.6666666666666661"
transform="matrix(1,0,0,1,359.0545,-235.27550000000002)"
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g
fill="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,423.74803149606294,-286.8030669291338)"
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,367.0545,-227.27550000000002)"
/>
<g
fill="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,423.74803149606294,-286.8030669291338)"
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,367.0545,-227.27550000000002)"
>
<path
d="M7.39 9L0.44 9L0.44 8.59L0.76 8.59Q1.48 8.59 1.65 8.47Q1.82 8.35 1.82 7.96L1.82 7.96L1.82 0.93Q1.82 0.55 1.65 0.43Q1.48 0.31 0.76 0.31L0.76 0.31L0.44 0.31L0.44-0.11Q0.91-0.07 2.47-0.07L2.47-0.07Q4.23-0.07 4.71-0.11L4.71-0.11L4.71 0.31L4.26 0.31Q3.65 0.31 3.37 0.39Q3.09 0.46 3.05 0.57Q3.00 0.68 3.00 0.95L3.00 0.95L3.00 8.06Q3.00 8.40 3.10 8.50Q3.20 8.59 3.65 8.59L3.65 8.59L4.75 8.59Q5.42 8.59 5.91 8.39Q6.40 8.19 6.66 7.93Q6.92 7.68 7.09 7.20Q7.27 6.72 7.32 6.42Q7.38 6.11 7.43 5.56L7.43 5.56L7.76 5.56L7.39 9ZM9.59 8.28Q8.70 7.41 8.70 6.15Q8.70 4.88 9.57 3.95Q10.43 3.02 11.67 3.02L11.67 3.02Q12.88 3.02 13.75 3.94Q14.62 4.87 14.62 6.15L14.62 6.15Q14.62 7.40 13.74 8.28Q12.86 9.15 11.65 9.15L11.65 9.15Q10.47 9.15 9.59 8.28ZM9.81 6.04L9.81 6.04Q9.81 7.33 10.15 7.92L10.15 7.92Q10.67 8.81 11.67 8.81L11.67 8.81Q12.16 8.81 12.57 8.54Q12.99 8.28 13.22 7.83L13.22 7.83Q13.51 7.24 13.51 6.04L13.51 6.04Q13.51 4.76 13.16 4.19L13.16 4.19Q12.64 3.32 11.65 3.32L11.65 3.32Q11.22 3.32 10.80 3.55Q10.38 3.77 10.13 4.21L10.13 4.21Q9.81 4.80 9.81 6.04ZM15.24 3.67L15.24 3.67L15.24 3.25Q15.96 3.29 16.48 3.29L16.48 3.29Q16.73 3.29 17.94 3.25L17.94 3.25L17.94 3.67Q17.15 3.67 17.15 4.03L17.15 4.03Q17.15 4.10 17.21 4.27L17.21 4.27L18.48 7.83L19.63 4.60Q19.39 3.95 19.32 3.87L19.32 3.87Q19.16 3.67 18.48 3.67L18.48 3.67L18.48 3.25Q19.08 3.29 19.67 3.29L19.67 3.29Q19.90 3.29 21.05 3.25L21.05 3.25L21.05 3.67Q20.27 3.67 20.27 4.03L20.27 4.03Q20.27 4.08 20.33 4.28L20.33 4.28L21.65 8.00L22.86 4.59Q22.93 4.41 22.94 4.31L22.94 4.31Q22.94 4.01 22.73 3.85Q22.52 3.68 22.16 3.67L22.16 3.67L22.16 3.25Q22.92 3.29 23.40 3.29L23.40 3.29Q23.93 3.29 24.38 3.25L24.38 3.25L24.38 3.67Q23.55 3.69 23.26 4.52L23.26 4.52L21.69 8.90Q21.54 9.14 21.43 9.15L21.43 9.15Q21.25 9.15 21.16 8.90L21.16 8.90L19.80 5.11L18.45 8.88Q18.40 9.05 18.35 9.10Q18.31 9.15 18.19 9.15Q18.07 9.15 18.01 9.08Q17.96 9.01 17.90 8.85L17.90 8.85L16.22 4.13Q16.11 3.82 15.93 3.75Q15.76 3.67 15.24 3.67Z"
d="M7.39 9.14L0.44 9.14L0.44 8.73L0.76 8.73Q1.48 8.73 1.65 8.61Q1.82 8.49 1.82 8.10L1.82 8.10L1.82 1.07Q1.82 0.69 1.65 0.57Q1.48 0.45 0.76 0.45L0.76 0.45L0.44 0.45L0.44 0.03Q0.91 0.07 2.47 0.07L2.47 0.07Q4.23 0.07 4.71 0.03L4.71 0.03L4.71 0.45L4.26 0.45Q3.65 0.45 3.37 0.53Q3.09 0.61 3.05 0.71Q3.00 0.82 3.00 1.09L3.00 1.09L3.00 8.20Q3.00 8.54 3.10 8.64Q3.20 8.73 3.65 8.73L3.65 8.73L4.75 8.73Q5.42 8.73 5.91 8.53Q6.40 8.33 6.66 8.07Q6.92 7.82 7.09 7.34Q7.27 6.86 7.32 6.56Q7.38 6.25 7.43 5.70L7.43 5.70L7.76 5.70L7.39 9.14ZM9.59 8.42Q8.70 7.55 8.70 6.29Q8.70 5.02 9.57 4.09Q10.43 3.16 11.67 3.16L11.67 3.16Q12.88 3.16 13.75 4.09Q14.62 5.01 14.62 6.29L14.62 6.29Q14.62 7.55 13.74 8.42Q12.86 9.29 11.65 9.29L11.65 9.29Q10.47 9.29 9.59 8.42ZM9.81 6.18L9.81 6.18Q9.81 7.47 10.15 8.06L10.15 8.06Q10.67 8.95 11.67 8.95L11.67 8.95Q12.16 8.95 12.57 8.69Q12.99 8.42 13.22 7.97L13.22 7.97Q13.51 7.38 13.51 6.18L13.51 6.18Q13.51 4.90 13.16 4.33L13.16 4.33Q12.64 3.46 11.65 3.46L11.65 3.46Q11.22 3.46 10.80 3.69Q10.38 3.91 10.13 4.36L10.13 4.36Q9.81 4.94 9.81 6.18ZM15.24 3.81L15.24 3.81L15.24 3.39Q15.96 3.43 16.48 3.43L16.48 3.43Q16.73 3.43 17.94 3.39L17.94 3.39L17.94 3.81Q17.15 3.81 17.15 4.17L17.15 4.17Q17.15 4.24 17.21 4.41L17.21 4.41L18.48 7.97L19.63 4.74Q19.39 4.09 19.32 4.01L19.32 4.01Q19.16 3.81 18.48 3.81L18.48 3.81L18.48 3.39Q19.08 3.43 19.67 3.43L19.67 3.43Q19.90 3.43 21.05 3.39L21.05 3.39L21.05 3.81Q20.27 3.81 20.27 4.17L20.27 4.17Q20.27 4.22 20.33 4.42L20.33 4.42L21.65 8.14L22.86 4.73Q22.93 4.55 22.94 4.45L22.94 4.45Q22.94 4.15 22.73 3.99Q22.52 3.82 22.16 3.81L22.16 3.81L22.16 3.39Q22.92 3.43 23.40 3.43L23.40 3.43Q23.93 3.43 24.38 3.39L24.38 3.39L24.38 3.81Q23.55 3.83 23.26 4.66L23.26 4.66L21.69 9.04Q21.54 9.28 21.43 9.29L21.43 9.29Q21.25 9.29 21.16 9.04L21.16 9.04L19.80 5.25L18.45 9.02Q18.40 9.19 18.35 9.24Q18.31 9.29 18.19 9.29Q18.07 9.29 18.01 9.22Q17.96 9.15 17.90 8.99L17.90 8.99L16.22 4.27Q16.11 3.97 15.93 3.89Q15.76 3.81 15.24 3.81Z"
/>
</g>
</g>
@@ -226,56 +302,56 @@
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-351.98786)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,460.61014,-351.98786)"
style="color: var(--text-main, #e0e7f0);"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,385.02013999999997,-351.98786)"
/>
</g>
<g class="">
<polyline
points="377.953,-349.606 462.992,-349.606"
points="377.953,-349.606 387.402,-349.606"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<use
xlink:href="#node_nfet"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,340.38261,-468.24771999999996)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-451.20086000000003)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57113999999996,-470.09886)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
@@ -285,128 +361,151 @@
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<use
xlink:href="#node_pfet"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,397.07561,-350.13772)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<polyline
points="377.953,-289.701 377.953,-290.646"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
/>
</g>
<g class="">
<polyline
points="377.953,-407.055 377.953,-409.512"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,432.2646714960629,-312.3034269291338)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,432.2646714960629,-293.4054269291338)"
style="color: var(--text-main, #e0e7f0);"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,340.38236590551173,-290.23216299212595)"
class=""
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,395.22514,-322.88586000000004)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,338.53213999999997,-440.99586)"
style="color: var(--text-main, #e0e7f0);"
/>
</g>
<g class="">
<polyline
points="434.6465314960629,-320.12556692913375 434.6465314960629,-309.9215669291338"
points="377.9527559055117,-289.70080299212594 377.953,-289.70080299212594 377.953,-290.64561999999995"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="var(--text-main, #e0e7f0)"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,328.346,-444.094)" />
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,328.346,-444.094)">
<path
d="M0.37 0.31L0.37 0.31L0.37-0.11L2.29-0.25L2.29 3.97Q3.07 3.11 4.12 3.11L4.12 3.11Q5.27 3.11 6.11 3.99Q6.95 4.87 6.95 6.12L6.95 6.12Q6.95 7.39 6.07 8.27Q5.19 9.15 3.97 9.15L3.97 9.15Q2.86 9.15 2.23 8.17L2.23 8.17Q1.76 8.99 1.74 9L1.74 9L1.41 9L1.41 1.05Q1.41 0.56 1.24 0.43Q1.06 0.31 0.37 0.31ZM2.33 4.74L2.33 7.48Q2.33 7.76 2.52 8.04L2.52 8.04Q3.05 8.85 3.91 8.85L3.91 8.85Q3.91 8.85 3.92 8.85L3.92 8.85Q4.85 8.85 5.43 8.00L5.43 8.00Q5.84 7.36 5.84 6.11L5.84 6.11Q5.84 4.87 5.46 4.25L5.46 4.25Q4.92 3.40 4.06 3.40L4.06 3.40Q3.08 3.40 2.48 4.25L2.48 4.25Q2.33 4.47 2.33 4.74L2.33 4.74Z"
/>
</g>
</g>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,385.039,-325.984)" />
<g fill="var(--text-main, #e0e7f0)" transform="matrix(1,0,0,1,385.039,-325.984)">
<path
d="M0.37 0.31L0.37 0.31L0.37-0.11L2.29-0.25L2.29 3.97Q3.07 3.11 4.12 3.11L4.12 3.11Q5.27 3.11 6.11 3.99Q6.95 4.87 6.95 6.12L6.95 6.12Q6.95 7.39 6.07 8.27Q5.19 9.15 3.97 9.15L3.97 9.15Q2.86 9.15 2.23 8.17L2.23 8.17Q1.76 8.99 1.74 9L1.74 9L1.41 9L1.41 1.05Q1.41 0.56 1.24 0.43Q1.06 0.31 0.37 0.31ZM2.33 4.74L2.33 7.48Q2.33 7.76 2.52 8.04L2.52 8.04Q3.05 8.85 3.91 8.85L3.91 8.85Q3.91 8.85 3.92 8.85L3.92 8.85Q4.85 8.85 5.43 8.00L5.43 8.00Q5.84 7.36 5.84 6.11L5.84 6.11Q5.84 4.87 5.46 4.25L5.46 4.25Q4.92 3.40 4.06 3.40L4.06 3.40Q3.08 3.40 2.48 4.25L2.48 4.25Q2.33 4.47 2.33 4.74L2.33 4.74Z"
/>
</g>
</g>
</g>
<g class="">
<g transform="matrix(1,0,0,1,0,0)" style="pointer-events: none;">
<g
fill="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,367.0551181102362,-284.9133858267716)"
/>
<g
fill="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,367.0551181102362,-284.9133858267716)"
>
<path
d="M7.39 9L0.44 9L0.44 8.59L0.76 8.59Q1.48 8.59 1.65 8.47Q1.82 8.35 1.82 7.96L1.82 7.96L1.82 0.93Q1.82 0.55 1.65 0.43Q1.48 0.31 0.76 0.31L0.76 0.31L0.44 0.31L0.44-0.11Q0.91-0.07 2.47-0.07L2.47-0.07Q4.23-0.07 4.71-0.11L4.71-0.11L4.71 0.31L4.26 0.31Q3.65 0.31 3.37 0.39Q3.09 0.46 3.05 0.57Q3.00 0.68 3.00 0.95L3.00 0.95L3.00 8.06Q3.00 8.40 3.10 8.50Q3.20 8.59 3.65 8.59L3.65 8.59L4.75 8.59Q5.42 8.59 5.91 8.39Q6.40 8.19 6.66 7.93Q6.92 7.68 7.09 7.20Q7.27 6.72 7.32 6.42Q7.38 6.11 7.43 5.56L7.43 5.56L7.76 5.56L7.39 9ZM9.59 8.28Q8.70 7.41 8.70 6.15Q8.70 4.88 9.57 3.95Q10.43 3.02 11.67 3.02L11.67 3.02Q12.88 3.02 13.75 3.94Q14.62 4.87 14.62 6.15L14.62 6.15Q14.62 7.40 13.74 8.28Q12.86 9.15 11.65 9.15L11.65 9.15Q10.47 9.15 9.59 8.28ZM9.81 6.04L9.81 6.04Q9.81 7.33 10.15 7.92L10.15 7.92Q10.67 8.81 11.67 8.81L11.67 8.81Q12.16 8.81 12.57 8.54Q12.99 8.28 13.22 7.83L13.22 7.83Q13.51 7.24 13.51 6.04L13.51 6.04Q13.51 4.76 13.16 4.19L13.16 4.19Q12.64 3.32 11.65 3.32L11.65 3.32Q11.22 3.32 10.80 3.55Q10.38 3.77 10.13 4.21L10.13 4.21Q9.81 4.80 9.81 6.04ZM15.24 3.67L15.24 3.67L15.24 3.25Q15.96 3.29 16.48 3.29L16.48 3.29Q16.73 3.29 17.94 3.25L17.94 3.25L17.94 3.67Q17.15 3.67 17.15 4.03L17.15 4.03Q17.15 4.10 17.21 4.27L17.21 4.27L18.48 7.83L19.63 4.60Q19.39 3.95 19.32 3.87L19.32 3.87Q19.16 3.67 18.48 3.67L18.48 3.67L18.48 3.25Q19.08 3.29 19.67 3.29L19.67 3.29Q19.90 3.29 21.05 3.25L21.05 3.25L21.05 3.67Q20.27 3.67 20.27 4.03L20.27 4.03Q20.27 4.08 20.33 4.28L20.33 4.28L21.65 8.00L22.86 4.59Q22.93 4.41 22.94 4.31L22.94 4.31Q22.94 4.01 22.73 3.85Q22.52 3.68 22.16 3.67L22.16 3.67L22.16 3.25Q22.92 3.29 23.40 3.29L23.40 3.29Q23.93 3.29 24.38 3.25L24.38 3.25L24.38 3.67Q23.55 3.69 23.26 4.52L23.26 4.52L21.69 8.90Q21.54 9.14 21.43 9.15L21.43 9.15Q21.25 9.15 21.16 8.90L21.16 8.90L19.80 5.11L18.45 8.88Q18.40 9.05 18.35 9.10Q18.31 9.15 18.19 9.15Q18.07 9.15 18.01 9.08Q17.96 9.01 17.90 8.85L17.90 8.85L16.22 4.13Q16.11 3.82 15.93 3.75Q15.76 3.67 15.24 3.67Z"
/>
</g>
</g>
<polyline
points="377.953,-407.05535999999995 377.953,-409.51161999999994"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="none"
stroke="var(--text-main, #e0e7f0)"
transform="matrix(1,0,0,1,375.5717581102362,-291.5157458267716)"
style="color: var(--text-main, #e0e7f0);"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57089590551175,-252.77556078740153)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,375.57089590551175,-233.87792299212595)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,338.5318659055117,-262.980302992126)"
/>
</g>
<g class="">
<use
xlink:href="#node_circ"
fill="#fff"
stroke="hsl(0 0 85)"
style="color: hsl(0 0 85);"
transform="matrix(1,0,0,1,338.53211,-440.99586)"
/>
</g>
<g class="">
<polyline
points="377.9527559055117,-260.59844299212597 377.95275590551176,-260.59844299212597 377.95275590551176,-250.39370078740154"
fill="none"
stroke-dasharray="0.4pt 0pt"
stroke-opacity="1"
stroke-width="0.5333333333333333"
stroke="hsl(0 0 85)"
/>
</g>
<g class="">
<rect
width="12.83989501312332"
height="8.115485564304473"
style=""
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
x="0.666666666666667"
y="0.666666666666667"
transform="matrix(1,0,0,1,321.25984251968504,-448.81889763779526)"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,328.34645669291336,-444.09448818897636)"
/>
<g
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,328.34645669291336,-444.09448818897636)"
>
<path
d="M0.37 0.60L0.37 0.60L0.37 0.18L2.29 0.04L2.29 4.26Q3.07 3.40 4.12 3.40L4.12 3.40Q5.27 3.40 6.11 4.28Q6.95 5.15 6.95 6.41L6.95 6.41Q6.95 7.68 6.07 8.56Q5.19 9.44 3.97 9.44L3.97 9.44Q2.86 9.44 2.23 8.46L2.23 8.46Q1.76 9.28 1.74 9.29L1.74 9.29L1.41 9.29L1.41 1.34Q1.41 0.84 1.24 0.72Q1.06 0.60 0.37 0.60ZM2.33 5.02L2.33 7.77Q2.33 8.05 2.52 8.33L2.52 8.33Q3.05 9.14 3.91 9.14L3.91 9.14Q3.91 9.14 3.92 9.14L3.92 9.14Q4.85 9.14 5.43 8.29L5.43 8.29Q5.84 7.65 5.84 6.40L5.84 6.40Q5.84 5.16 5.46 4.54L5.46 4.54Q4.92 3.69 4.06 3.69L4.06 3.69Q3.08 3.69 2.48 4.54L2.48 4.54Q2.33 4.76 2.33 5.02L2.33 5.02Z"
/>
</g>
</g>
</g>
<g class="">
<rect
width="12.839666666666666"
height="8.115666666666666"
style=""
x="0.666666666666667"
y="0.666666666666667"
transform="matrix(1,0,0,1,321.2600708661417,-269.29142913385823)"
stroke-dasharray="1pt 0pt"
stroke-opacity="0"
stroke-width="0"
stroke="hsl(0 0 85)"
fill-opacity="1"
fill="none"
/>
<g
transform="matrix(1,0,0,1,0,0)"
style="pointer-events: none;"
class=""
>
<g
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,328.3465708661417,-264.56692913385825)"
/>
<g
fill="hsl(0 0 85)"
transform="matrix(1,0,0,1,328.3465708661417,-264.56692913385825)"
>
<path
d="M0.37 0.60L0.37 0.60L0.37 0.18L2.29 0.04L2.29 4.26Q3.07 3.40 4.12 3.40L4.12 3.40Q5.27 3.40 6.11 4.28Q6.95 5.15 6.95 6.41L6.95 6.41Q6.95 7.68 6.07 8.56Q5.19 9.44 3.97 9.44L3.97 9.44Q2.86 9.44 2.23 8.46L2.23 8.46Q1.76 9.28 1.74 9.29L1.74 9.29L1.41 9.29L1.41 1.34Q1.41 0.84 1.24 0.72Q1.06 0.60 0.37 0.60ZM2.33 5.02L2.33 7.77Q2.33 8.05 2.52 8.33L2.52 8.33Q3.05 9.14 3.91 9.14L3.91 9.14Q3.91 9.14 3.92 9.14L3.92 9.14Q4.85 9.14 5.43 8.29L5.43 8.29Q5.84 7.65 5.84 6.40L5.84 6.40Q5.84 5.16 5.46 4.54L5.46 4.54Q4.92 3.69 4.06 3.69L4.06 3.69Q3.08 3.69 2.48 4.54L2.48 4.54Q2.33 4.76 2.33 5.02L2.33 5.02Z"
/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

+2 -57
View File
@@ -2,65 +2,10 @@
title: Astro Rewrite
summary: "Next.js entwickelt sich rasend - zu schnell für mich, um Features und Sicherheitsupdates immer zu verfolgen. Und React für einen Blog? Unnötig. Eine einfache statische Lösung aber mit Komponenten? Astro ist genau das. Also: Willkommen zum neuen Anstrich in Astro!"
repository: "https://git.c0ntroller.de/c0ntroller/frontpage"
pubDate: 2025-03-22
pubDate: 2023-04-03
tags:
- Astro
- SSR
- Webentwicklung
---
Next.js war einfach Magie.
Als ich React lernte und noch überlegte, wie ich am besten ein Backend dazu stelle, fragete ein Freund, warum ich nicht einfach Next.js nehme.
Und das war magisch.
Denn ich konnte mein Gelerntes nutzen und hatte trotzdem direkt ein Backend mit dabei.
Ich hab mir darin nicht nur ein kleines Projekt gebaut, sondern später auch meine erste Website.
Die Struktur war einfach: Eine Datei in `app` anlegen und... Moment.
Stimmt gar nicht mehr.
Also: Eine Datei in `pages` anlegen. Oder doch in `app`?
Beides Ok.
Achso, außer dass `app` dann deprecated wurde.
Next.js war für mich die erste Berührung mit dem JavaScript Ökosystem und plötzlich verstand ich die ganzen Memes.
Dann kam auch plötzlich die Nachricht vom dependebot und ich hatte plötzlich 20 PRs, die alle Next.js Updates waren.
Nur, dass ab irgendeinem Punkt man plötzlich sich mit komplizierteren Updates rumschlagen musste und nicht einfach nur `npm audit fix` machen konnte.
Also brauchte es eine Alternative.
## Sinneswandel
React ist cool.
Ziemlich performant für das, was es macht, sehr flexibel und einmal gelernt kann man auch andere Frameworks leicht lernen.
Aber wofür braucht eine Homepage eine komplexe reaktive Komponente?
Naja, eigentlich braucht sie das nicht.
Aber es war an dem Punkt für mich die einzige Möglichkeit absiets von Vanilla HTML5, CSS und JS zu arbeiten.
Gleichzeitig merkte ich bei immer mehr Seiten, dass hier Unmengen an Rechenleistung in JavaScript nur für hübsche Effekte drauf ging.
Ich bin sehr für schöne Effekte, aber immer mehr fand ich, dass man als **guter** Web Entwickler eigentlich so wenig JavaScript wie möglich einsetzen sollte.
JavaScript Frameworks sind im Normalfall aber das genaue Gegenteil.
Ich wollte meine Seite also neu machen und hatte eien Vision, die nicht ganz erreichbar erschien.
Und dann fand ich ein Framework, dass eigentlich genau das war, was ich suchte: Astro.
## Astro
Astro zeichnet sich dadurch aus, dass es komplett statische Seiten generiert.
Falls man das braucht, kann man aber auch Server Side Rendering nutzen, oder sogar beides gleichzeitig.
Islands gibt es sogar für die verschiedensten Frameworks.
Aber all das brauchte ich gar nicht.
Eine cleane modulare Webseite aufbauen, mit verschachtelten Komponenten, scoped CSS und ohne JavaScript, dass man nicht selbst schreibt.
Das war genau das, was ich suchte.
Und so habe ich mich an die Arbeit gemacht, meine Seite neu zu bauen.
Und gebaut.
Und gebaut.
Und gebaut...
Tja ich fing an zu arbeiten und plötzlich war da gar nicht mehr so viel Zeit.
Aber nach wirklich langer Zeit und viel Arbeit ist es jetzt endlich soweit - die neue Seite ist hübsch, sehr schnell, hat vollen Score bei Lighthouse und ist komplett in Astro gebaut.
Ich bin sehr zufrieden damit.
Vielleicht kommt irgendwann ja nochmal wieder ein Terminal dazu, dass ich früher als Webseite hatte.
Aber vorerst genieße ich es erstmal wieder eine eine hübsche und schnelle Seite zu haben.
-1
View File
@@ -20,7 +20,6 @@ const {
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content={description} />
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
+3 -3
View File
@@ -15,10 +15,10 @@ const { entry } = Astro.props;
const { Content } = await render(entry);
---
<BaseLayout title={entry.data.title} theme="blog">
<div class="glass-container header" style={`view-transition-name: blog-header-${entry.id};`}>
<h1 style={`view-transition-name: blog-headline-${entry.id};`}>{entry.data.title}</h1>
<div class="glass-container header">
<h1>{entry.data.title}</h1>
<div class="meta">
<time style={`view-transition-name: blog-pubdate-${entry.id};`}>{entry.data.pubDate.toLocaleDateString("de-DE")}</time>
<time>{entry.data.pubDate.toLocaleDateString()}</time>
</div>
</div>
+4 -4
View File
@@ -6,16 +6,16 @@ const posts = await getCollection('blog');
posts.sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
---
<BaseLayout title="Blog" theme="blog" description="Gedanken über Technologie, Design und das Leben von c0ntroller.de.">
<div class="glass-container header" style="view-transition-name:main-glass;">
<div class="glass-container header">
<h1>Artikel & Gedanken</h1>
<p>Gedanken über Technologie, Design und das Leben.</p>
</div>
<div class="list">
{posts.map(post => (
<a href={`/blog/${post.id}`} class="glass-container link-card" style={`view-transition-name: blog-header-${post.id};`}>
<h2 style={`view-transition-name: blog-headline-${post.id};`}>{post.data.title}</h2>
<time class="date" style={`view-transition-name: blog-pubdate-${post.id};`}>{post.data.pubDate.toLocaleDateString("de-DE")}</time>
<a href={`/blog/${post.id}`} class="glass-container link-card">
<h2>{post.data.title}</h2>
<p class="date">{post.data.pubDate.toLocaleDateString()}</p>
<p>{post.data.summary}</p>
</a>
))}
+2 -2
View File
@@ -34,8 +34,8 @@ const chapters = allPages.reduce((acc, p) => {
}, {} as Record<string, typeof allPages>);
---
<BaseLayout title={page.data.title} theme="book">
<div class="glass-container content prose" style="view-transition-name:main-glass;">
<h1 style={`view-transition-name: book-headline-${page.id.replaceAll("/", "-")};`}>{page.data.title}</h1>
<div class="glass-container content prose">
<h1>{page.data.title}</h1>
<Content />
</div>
+2 -2
View File
@@ -13,7 +13,7 @@ const chapters = pages.reduce((acc, page) => {
}, {} as Record<string, typeof pages>);
---
<BaseLayout title="Das Buch" theme="book" description="Ein fortlaufendes Werk über Software, Design und Architektur von c0ntroller.de.">
<div class="glass-container header" style="view-transition-name:main-glass;">
<div class="glass-container header">
<h1>Das Buch</h1>
<p>Ein fortlaufendes Werk über Software, Design und Architektur.</p>
</div>
@@ -25,7 +25,7 @@ const chapters = pages.reduce((acc, page) => {
<h3>{chapter.replace(/-/g, ' ').toUpperCase()}</h3>
<ul class="page-list">
{items.map(item => (
<li><a href={`/book/${item.id}`} style={`view-transition-name: book-headline-${item.id.replaceAll("/", "-")};`}>{item.data.title}</a></li>
<li><a href={`/book/${item.id}`}>{item.data.title}</a></li>
))}
</ul>
</div>
+32 -88
View File
@@ -1,24 +1,23 @@
---
import WelcomeTypewriter from "../components/WelcomeTypewriter.astro";
import BaseLayout from "../layouts/BaseLayout.astro";
import { Icon } from "astro-icon/components";
import WelcomeTypewriter from '../components/WelcomeTypewriter.astro';
import BaseLayout from '../layouts/BaseLayout.astro';
import { Icon } from 'astro-icon/components';
import socials from "../data/socials.json";
---
<BaseLayout title="c0ntroller.de" theme="default">
<div class="landing-wrapper">
<div class="hero-section">
<div class="socials fade-in-up shadow-glow glass-bg glass-container">
{
socials.map(({ name, url, icon }) => (
<a href={url} target="_blank" referrerpolicy="no-referrer" class="social-link">
<Icon name={icon} desc={name} />
</a>
))
}
{socials.map(({ name, url, icon }) => (
<a href={url} target="_blank" rel="noreferrer" class="social-link">
<Icon name={icon} desc={name} />
</a>
))}
</div>
<h1 class="gradient-text reveal-text">Willkommen auf meiner Seite.</h1>
<p class="subtitle fade-in-up">Hier geht es unter anderem um:</p>
<p class="subtitle fade-in-up">
Hier geht es unter anderem um:
</p>
<WelcomeTypewriter class="fade-in-up" />
</div>
@@ -30,7 +29,7 @@ import socials from "../data/socials.json";
<p>Meine neuesten Projekte und Experimente.</p>
</div>
</a>
<a href="/blog" class="bento-card blog shadow-glow">
<div class="card-content glass-bg">
<div class="icon"><Icon name="lucide:pen-tool" /></div>
@@ -38,7 +37,7 @@ import socials from "../data/socials.json";
<p>Einige planlose Gedanken über Technologie und Design.</p>
</div>
</a>
<a href="/book" class="bento-card book shadow-glow">
<div class="card-content glass-bg">
<div class="icon"><Icon name="lucide:book-open" /></div>
@@ -83,7 +82,7 @@ import socials from "../data/socials.json";
display: flex;
flex-direction: row;
justify-content: center;
gap: 0.5rem;
gap: .5rem;
margin: 0 auto 2rem auto;
padding: 0.5rem 1rem;
backdrop-filter: blur(24px);
@@ -93,9 +92,7 @@ import socials from "../data/socials.json";
.social-link {
color: rgb(var(--accent-base));
font-size: 2rem;
height: 2rem;
line-height: 1;
margin: 0.25rem 0.5rem;
margin: 0 0.5rem;
filter: drop-shadow(0px 0px 5px transparent);
transition: filter 0.5s ease;
}
@@ -119,19 +116,10 @@ import socials from "../data/socials.json";
max-width: 1000px;
}
@media (max-width: 700px) {
.landing-wrapper {
padding: 0;
margin-top: -1rem;
}
@media (max-width: 800px) {
.bento-grid {
grid-template-columns: 1fr;
}
.hero-section {
margin-bottom: 2rem;
}
}
.bento-card {
@@ -189,63 +177,27 @@ import socials from "../data/socials.json";
font-size: 1rem;
}
.portfolio {
background: linear-gradient(
135deg,
rgba(var(--accent-base--portfolio), 0.5) 0%,
rgba(var(--accent-base--portfolio), 0.15) 100%
);
}
.blog {
background: linear-gradient(
135deg,
rgba(var(--accent-base--blog), 0.8) 0%,
rgba(var(--accent-base--blog), 0.15) 100%
);
}
.book {
background: linear-gradient(
135deg,
rgba(var(--accent-base--book), 0.8) 0%,
rgba(var(--accent-base--book), 0.15) 100%
);
}
.portfolio { background: linear-gradient(135deg, rgba(var(--accent-base--portfolio), 0.5) 0%, rgba(var(--accent-base--portfolio), 0.15) 100%); }
.blog { background: linear-gradient(135deg, rgba(var(--accent-base--blog), 0.8) 0%, rgba(var(--accent-base--blog), 0.15) 100%); }
.book { background: linear-gradient(135deg, rgba(var(--accent-base--book), 0.8) 0%, rgba(var(--accent-base--book), 0.15) 100%); }
.portfolio:hover {
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--portfolio), 1);
}
.blog:hover {
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--blog), 0.4);
}
.book:hover {
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--book), 0.4);
}
.portfolio:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--portfolio), 1); }
.blog:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--blog), 0.4); }
.book:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--book), 0.4); }
.portfolio .icon {
color: rgb(var(--accent-base--portfolio));
}
.blog .icon {
color: rgb(var(--accent-base--blog));
}
.book .icon {
color: rgb(var(--accent-base--book));
}
.portfolio .icon { color: rgb(var(--accent-base--portfolio)); }
.blog .icon { color: rgb(var(--accent-base--blog)); }
.book .icon { color: rgb(var(--accent-base--book)); }
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.reveal-text {
animation: fadeUp 0.8s ease-out forwards;
}
.fade-in-up {
animation: fadeUp 1s ease-out forwards;
opacity: 0;
@@ -257,20 +209,12 @@ import socials from "../data/socials.json";
animation: fadeUp 0.8s ease-out forwards;
opacity: 0;
}
.portfolio {
animation-delay: 0.4s;
}
.blog {
animation-delay: 0.6s;
}
.book {
animation-delay: 0.8s;
}
.portfolio { animation-delay: 0.4s; }
.blog { animation-delay: 0.6s; }
.book { animation-delay: 0.8s; }
@media (prefers-reduced-motion: reduce) {
.bento-card,
.fade-in-up,
.reveal-text {
.bento-card, .fade-in-up, .reveal-text {
animation: none;
opacity: 1;
transform: none;
+7 -40
View File
@@ -1,6 +1,5 @@
---
import { getCollection, render } from 'astro:content';
import { Icon } from "astro-icon/components";
import BaseLayout from '../../layouts/BaseLayout.astro';
import "katex/dist/katex.min.css";
import "rehype-callouts/theme/obsidian"
@@ -16,26 +15,14 @@ const { entry } = Astro.props;
const { Content } = await render(entry);
---
<BaseLayout title={entry.data.title} theme="portfolio">
<div class="glass-container header" style={`view-transition-name: project-header-${entry.id};`}>
<h1 style={`view-transition-name: project-headline-${entry.id};`}>{entry.data.title}</h1>
<div class="glass-container header">
<h1>{entry.data.title}</h1>
<p>{entry.data.summary}</p>
{(entry.data.tags || entry.data.repository) &&
(<div class="additional-meta">
<div class="meta-tags">
{entry.data.tags && (
<div class="tags">
{entry.data.tags?.map(tech => <span class="tag">{tech}</span>)}
</div>
)}
</div>
<div class="meta-repository">
{ entry.data.repository && (
<a href={entry.data.repository} referrerpolicy="no-referrer">
<Icon name="simple-icons:git" style={`view-transition-name: project-git-${entry.id};`} />
</a>
)}
</div>
</div>)}
{entry.data.tags && (
<div class="tags">
{entry.data.tags.map(tech => <span class="tag">{tech}</span>)}
</div>
)}
</div>
<div class="glass-container content prose">
@@ -52,7 +39,6 @@ const { Content } = await render(entry);
gap: 0.5rem;
margin-top: 1rem;
flex-wrap: wrap;
align-items: center;
}
.tag {
font-size: 0.8rem;
@@ -63,23 +49,4 @@ const { Content } = await render(entry);
.content {
line-height: 1.8;
}
.additional-meta {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
gap: 0.5rem;
width: 100%;
justify-content: space-between;
margin-top: 1rem;
align-items: center;
}
.meta-repository {
flex-shrink: 1;
font-size: 1.2rem;
color: rgb(var(--accent-base));
}
.meta-repository a {
display: flex;
align-items: center;
}
</style>
+8 -37
View File
@@ -1,37 +1,26 @@
---
import { getCollection } from 'astro:content';
import { Icon } from "astro-icon/components";
import BaseLayout from '../../layouts/BaseLayout.astro';
const projects = await getCollection('portfolio');
projects.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
---
<BaseLayout title="Portfolio" theme="portfolio" description="Eine Auswahl aktueller Projekte und Experimente von c0ntroller.de.">
<div class="glass-container" style="view-transition-name:main-glass;">
<div class="glass-container">
<h1>Meine Arbeiten</h1>
<p>Eine Auswahl aktueller Projekte und Experimente.</p>
</div>
<div class="grid">
{projects.map(project => (
<a href={`/portfolio/${project.id}`} class="glass-container link-card" style={`view-transition-name: project-header-${project.id};`}>
<h2 style={`view-transition-name: project-headline-${project.id};`}>{project.data.title}</h2>
<a href={`/portfolio/${project.id}`} class="glass-container link-card">
<h2>{project.data.title}</h2>
<p>{project.data.summary}</p>
{(project.data.tags || project.data.repository) &&
(<div class="additional-meta">
<div class="meta-tags">
{project.data.tags && (
<div class="tags">
{project.data.tags?.map(tech => <span class="tag">{tech}</span>)}
</div>
)}
{project.data.tags && (
<div class="tags">
{project.data.tags?.map(tech => <span class="tag">{tech}</span>)}
</div>
<div class="meta-repository">
{ project.data.repository && (
<Icon name="simple-icons:git" style={`view-transition-name: project-git-${project.id};`} />
)}
</div>
</div>)}
)}
</a>
))}
</div>
@@ -51,22 +40,11 @@ projects.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
.link-card h2 {
margin-top: 0;
}
.additional-meta {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
gap: 0.5rem;
width: 100%;
justify-content: space-between;
margin-top: 1rem;
align-items: center;
}
.tags {
display: flex;
gap: 0.5rem;
margin-top: 1rem;
flex-wrap: wrap;
flex-grow: 1;
align-items: center;
}
.tag {
font-size: 0.8rem;
@@ -74,11 +52,4 @@ projects.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
}
.meta-repository {
flex-shrink: 1;
font-size: 1.2rem;
display: flex;
align-items: center;
color: rgb(var(--accent-base));
}
</style>
+22
View File
@@ -0,0 +1,22 @@
import { execSync } from "child_process";
import { statSync } from "fs";
export function remarkModifiedTime() {
return function (tree, file) {
const filepath = file.history[0];
try {
const result = execSync(`git log -1 --pretty="format:%cI" "${filepath}"`);
// If result is empty or undefined, fallback to fs stat
if (!result || !result.toString().trim()) {
throw new Error("No git history");
}
file.data.astro.frontmatter.lastModified = result.toString();
return;
} catch (e) {
// Ignore, fallback to fs stat
const result = statSync(filepath);
file.data.astro.frontmatter.lastModified = result.mtime.toISOString();
return;
}
};
}
+9 -62
View File
@@ -1,14 +1,9 @@
*,
*::before,
*::after {
*, *::before, *::after {
box-sizing: border-box;
transition: color .4s ease, background-color .4s ease, border-color .4s ease, box-shadow .4s ease;
}
@media (prefers-reduced-motion: no-preference) {
@view-transition {
navigation: auto;
}
@view-transition {
navigation: auto;
}
::view-transition-group(root) {
@@ -20,79 +15,66 @@
inherits: true;
initial-value: 214, 134, 249;
}
@property --bg-image {
syntax: '<image>';
inherits: true;
initial-value: url('../assets/backgrounds/bubble.svg');
}
@property --bg-image-static {
syntax: '<image>';
inherits: true;
initial-value: url('../assets/backgrounds/bubble-static.svg');
}
@property --glass-bg {
syntax: '<color>';
inherits: true;
initial-value: rgba(20, 25, 35, 0.4);
}
@property --glass-border {
syntax: '<color>';
inherits: true;
initial-value: rgba(255, 255, 255, 0.08);
}
@property --glass-blur {
syntax: '<length>';
inherits: true;
initial-value: 16px;
}
@property --glass-shadow {
syntax: '<shadow>';
inherits: true;
initial-value: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}
@property --text-main {
syntax: '<color>';
inherits: true;
initial-value: #e0e7f0;
}
@property --text-muted {
syntax: '<color>';
inherits: true;
initial-value: #92a1b6;
}
@property --bg-color {
syntax: '<color>';
inherits: true;
initial-value: #0d0117;
}
@property --accent-base--default {
syntax: '<color>';
inherits: true;
initial-value: 214, 134, 249;
}
@property --accent-base--portfolio {
syntax: '<color>';
inherits: true;
initial-value: 255, 181, 102;
}
@property --accent-base--blog {
syntax: '<color>';
inherits: true;
initial-value: 111, 221, 246;
}
@property --accent-base--book {
syntax: '<color>';
inherits: true;
@@ -104,7 +86,7 @@
--bg-color: #0d0117;
--text-main: #e0e7f0;
--text-muted: #92a1b6;
--glass-bg: rgba(20, 25, 35, 0.4);
--glass-border: rgba(255, 255, 255, 0.08);
--glass-blur: 16px;
@@ -140,25 +122,6 @@ body[data-theme="book"] {
--bg-image-static: url('../assets/backgrounds/curve-ripple-static.svg');
}
body:has(nav a[href="/"]:hover) {
--accent-base: var(--accent-base--default);
}
body:has(nav a[href="/portfolio"]:hover),
body:has(.portfolio:hover) {
--accent-base: var(--accent-base--portfolio);
}
body:has(nav a[href="/blog"]:hover),
body:has(.blog:hover) {
--accent-base: var(--accent-base--blog);
}
body:has(nav a[href="/book"]:hover),
body:has(.book:hover) {
--accent-base: var(--accent-base--book);
}
html {
background-color: var(--bg-color);
}
@@ -184,12 +147,7 @@ body {
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
color: rgb(var(--accent-base));
font-weight: 600;
margin-top: 2rem;
@@ -251,24 +209,13 @@ a:hover {
}
/* Mobile Responsiveness */
@media (max-width: 500px) {
@media (max-width: 600px) {
.container {
padding: 1rem;
}
.glass-container {
padding: 1.25rem;
}
h1 {
font-size: 1.5rem;
}
h2 {
font-size: 1.25rem;
}
h3 {
font-size: 1.1rem;
}
}
h1 { font-size: 1.75rem; }
h2 { font-size: 1.5rem; }
}