From 9a958c00516fd70ca40e9c722067dc0d16caad51 Mon Sep 17 00:00:00 2001 From: Flo Date: Thu, 7 May 2026 14:22:53 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20initial=20M=C3=BCnster=20Haushalt=20ici?= =?UTF-8?q?cle=20viewer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Editorial single-page viewer for the City of Münster's 2026/2027 budget draft, built as an Astro v6 SPA with a 4-level zoomable icicle (Produktbereich → Produktgruppe → Category → Breakdown). Highlights: - Multi-flow data layer over the official open-data CSVs (Aufwendungen + Erträge, 2008–2028) with overlap reconciliation across plan years. - Year slider as a 21-year mini-histogram of both flows; drag-to-scrub and click-to-jump, with bars morphing via CSS transitions on SVG geometry attributes. - Vertically centred icicle with year-outline rectangles framing each year's relative budget size, à la Bostock's animated treemap. - Headline "ausgibt / einnimmt" toggle; sidebar Aufwendungen/Erträge rows double as flow toggles. Active flow in Aufwendungen-purple / Erträge-orange (OKLCH). - Click-to-zoom via path-keyed lookup with ZOOM_COL_BOUNDS that reallocate the depth axis per zoom state. Zoomed item moves to the sidebar; canvas shows its descendants only (no adjacent-block leaks). - Sidebar shows path-specific Aufwendungen/Erträge/Saldo plus the source-PDF Beschreibung; Erläuterungen behind a collapsed details. - Build-time PDF extraction (scripts/extract-pg-sections.mjs) parses 68 Produktgruppen' Beschreibung + Erläuterungen sections from Band 1, including 10 cells of structured Mio.-€ breakdowns (Steuern, Transferaufwendungen, etc.) that drive the level-4 view. - URL state sync for path, year, and flow via history.replaceState so any zoom is shareable. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .gitignore | 44 + .impeccable.md | 37 + CLAUDE.md | 76 + README.md | 52 +- astro.config.mjs | 5 + data/extracted/pg-sections-2026.json | 730 ++++ docs/design-brief.md | 197 + docs/specs/2026-05-07-sankey-flows-view.md | 384 ++ fonts/Figtree-Italic-VariableFont_wght.ttf | Bin 0 -> 62292 bytes fonts/Figtree-VariableFont_wght.ttf | Bin 0 -> 62412 bytes fonts/OFL.txt | 93 + fonts/README.txt | 77 + fonts/static/Figtree-Black.ttf | Bin 0 -> 40276 bytes fonts/static/Figtree-BlackItalic.ttf | Bin 0 -> 40872 bytes fonts/static/Figtree-Bold.ttf | Bin 0 -> 40324 bytes fonts/static/Figtree-BoldItalic.ttf | Bin 0 -> 40928 bytes fonts/static/Figtree-ExtraBold.ttf | Bin 0 -> 40344 bytes fonts/static/Figtree-ExtraBoldItalic.ttf | Bin 0 -> 40980 bytes fonts/static/Figtree-Italic.ttf | Bin 0 -> 40636 bytes fonts/static/Figtree-Light.ttf | Bin 0 -> 39988 bytes fonts/static/Figtree-LightItalic.ttf | Bin 0 -> 40552 bytes fonts/static/Figtree-Medium.ttf | Bin 0 -> 40148 bytes fonts/static/Figtree-MediumItalic.ttf | Bin 0 -> 40720 bytes fonts/static/Figtree-Regular.ttf | Bin 0 -> 40140 bytes fonts/static/Figtree-SemiBold.ttf | Bin 0 -> 40360 bytes fonts/static/Figtree-SemiBoldItalic.ttf | Bin 0 -> 40984 bytes package.json | 29 + pnpm-lock.yaml | 3786 +++++++++++++++++ public/favicon.ico | Bin 0 -> 655 bytes public/favicon.svg | 9 + .../Figtree-Italic-VariableFont_wght.woff2 | Bin 0 -> 28132 bytes public/fonts/Figtree-VariableFont_wght.woff2 | Bin 0 -> 27680 bytes scripts/extract-pg-sections.mjs | 333 ++ src/components/Icicle.astro | 1003 +++++ src/data/__check.ts | 61 + src/data/load.ts | 305 ++ src/data/parse.ts | 114 + src/data/types.ts | 162 + src/lib/breakdowns.ts | 136 + src/lib/colors.ts | 65 + src/lib/format.ts | 77 + src/lib/icicle.ts | 406 ++ src/lib/pg-notes.ts | 124 + src/pages/index.astro | 1550 +++++++ src/styles/global.css | 197 + tsconfig.json | 5 + 46 files changed, 10056 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .impeccable.md create mode 100644 CLAUDE.md create mode 100644 astro.config.mjs create mode 100644 data/extracted/pg-sections-2026.json create mode 100644 docs/design-brief.md create mode 100644 docs/specs/2026-05-07-sankey-flows-view.md create mode 100644 fonts/Figtree-Italic-VariableFont_wght.ttf create mode 100644 fonts/Figtree-VariableFont_wght.ttf create mode 100644 fonts/OFL.txt create mode 100644 fonts/README.txt create mode 100644 fonts/static/Figtree-Black.ttf create mode 100644 fonts/static/Figtree-BlackItalic.ttf create mode 100644 fonts/static/Figtree-Bold.ttf create mode 100644 fonts/static/Figtree-BoldItalic.ttf create mode 100644 fonts/static/Figtree-ExtraBold.ttf create mode 100644 fonts/static/Figtree-ExtraBoldItalic.ttf create mode 100644 fonts/static/Figtree-Italic.ttf create mode 100644 fonts/static/Figtree-Light.ttf create mode 100644 fonts/static/Figtree-LightItalic.ttf create mode 100644 fonts/static/Figtree-Medium.ttf create mode 100644 fonts/static/Figtree-MediumItalic.ttf create mode 100644 fonts/static/Figtree-Regular.ttf create mode 100644 fonts/static/Figtree-SemiBold.ttf create mode 100644 fonts/static/Figtree-SemiBoldItalic.ttf create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/fonts/Figtree-Italic-VariableFont_wght.woff2 create mode 100644 public/fonts/Figtree-VariableFont_wght.woff2 create mode 100644 scripts/extract-pg-sections.mjs create mode 100644 src/components/Icicle.astro create mode 100644 src/data/__check.ts create mode 100644 src/data/load.ts create mode 100644 src/data/parse.ts create mode 100644 src/data/types.ts create mode 100644 src/lib/breakdowns.ts create mode 100644 src/lib/colors.ts create mode 100644 src/lib/format.ts create mode 100644 src/lib/icicle.ts create mode 100644 src/lib/pg-notes.ts create mode 100644 src/pages/index.astro create mode 100644 src/styles/global.css create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4ecfb0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ + +# collaborator (canvas) tool config — local-only +.collaborator/ + +# Source PDF archives — re-fetch via the URLs documented in +# CLAUDE.md. Excluded from git to keep the repo small (~190MB of +# binary content otherwise). +docs/sources/ + +# Source budget data (CSV/XLSX from opendata.stadt-muenster.de). +# Re-fetch via the URLs documented in CLAUDE.md. data/extracted/ is +# kept since it's derived from PDFs the runtime needs. +data/2023/ +data/2024/ +data/2025/ +data/jahresabschluesse/ + +# Original font archives. The committed copies live in fonts/ (TTF +# source) and public/fonts/ (WOFF2 build output). +*.zip diff --git a/.impeccable.md b/.impeccable.md new file mode 100644 index 0000000..559e428 --- /dev/null +++ b/.impeccable.md @@ -0,0 +1,37 @@ +# .impeccable.md — Design Context for ms-haushalt + +## Design Context + +### Users +Engaged Münster citizens and journalists. Mixed audience: some have read the actual Haushaltsplan, most haven't. They arrive because the new 2026/2027 draft is news, or because they want to make sense of "where their tax money goes." They're intelligent, time-pressured, and German-speaking. Many will share specific findings on social media or cite them in articles, so deep-linking and quoteable numbers matter. They're not finance experts — but treat them like adults, not like they need pictograms of houses and books. + +### Brand Personality +**Editorial, generous, opinionated.** This is not a municipal portal and not a dashboard — it's a piece of civic data journalism, the kind of thing the SZ or ZEIT graphics desk would publish. It has a point of view about what's interesting in the data and uses generous space, strong typography, and confident hierarchy to make that view land. + +Voice: composed, curious, never cute. Captions, not slogans. Numbers presented with precision and context, never as "look at this big number!" hero stats. + +### Aesthetic Direction +**Print-rooted editorial.** Strong serif (or strong slab) display type for headlines and section openers. Asymmetric grid — not the seven-equal-cards reflex. Generous whitespace and rhythmic spacing. Off-white "paper" background with one or two confident accent colors that come from the data, not from a default palette. + +The treemap is the protagonist. Everything else — typography, captions, side annotations, the time slider — frames it like a magazine spread frames its lead photograph. + +**References to lean toward:** NYT/SZ/ZEIT graphics desks; the Pudding's longer pieces; Christoph Niemann's editorial illustration restraint; Massimo Vignelli's NYC subway wayfinding (typographic confidence + clarity). Swiss-grid discipline applied to a warmer print sensibility. + +**Anti-references (do not look like):** +- Generic SaaS dashboards (card grids, primary-action buttons everywhere) +- German municipal websites (boxy, default fonts, forms-first) +- AI-slop hero pages (gradient text, glassmorphism, purple-blue gradients, neon accents on dark, oversized rounded-icon-above-heading) +- PowerPoint infographics (cute icons, decorative chart junk, pie charts, clip art) + +### Theme +**Light only, paper-feeling.** Off-white background tinted slightly warm (think uncoated stock, not pure white). Treemap tiles carry the saturated color; the rest of the page is restrained. + +### Language +**German only.** Source data is German, audience is local, register matches the underlying budget docs (formal but not bureaucratic). + +### Design Principles +1. **The treemap is the page.** Layout, type, color, and motion all serve the act of reading it. No competing focal points. +2. **Print logic first.** Asymmetric, typographic, quiet. If it could appear in a Sunday paper supplement, it's on track. +3. **Numbers in context, never alone.** Every figure is paired with what it's a share of, how it changed, or what it pays for. Bare figures are forbidden. +4. **Data does the talking.** Where copy exists, it points at the data — it doesn't compete with it. No editorializing tone, no exclamation marks, no "did you know?" framings. +5. **Restraint is the accent.** One serif display face, one body face, one or two functional sans usages, one accent color, one motion vocabulary. Variety comes from rhythm, not from adding more elements. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6ca0061 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,76 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project intent + +Build an interactive treemap-based viewer of the City of Münster budget so non-experts can navigate where money comes from and where it goes. The 2026/2027 draft (`Haushaltsplanentwurf`) is the primary target; prior years and historical actuals are included for trend/context views. + +No application code exists yet — this repo currently holds only source data. + +## Data layout + +``` +data/ + 2023/ Haushaltsplan 2023 (xlsx + csv) + 2024/ Haushaltsplan 2024-2027 (xlsx + csv) + 2025/ Haushaltsplan 2025-2028 (xlsx + csv) ← latest machine-readable plan + jahresabschluesse/ Jahresabschlüsse 2008-2022 (xlsx + csv) historical actuals +docs/sources/ + 2024/ 2025/ 2026_2027/ Original PDFs (Bände 1+2, Satzung, Reden) +``` + +Source: opendata.stadt-muenster.de (CSV/XLSX) and stadt-muenster.de (PDFs). License: Datenlizenz Deutschland Namensnennung 2.0. + +The 2026/2027 draft is **not yet on the open-data portal** — only PDF. The 2025 file does include 2026/2027/2028 *planning* values, which is the closest machine-readable forward projection until the new draft is published as data. + +## Data schema (the part you must read multiple files to understand) + +CSV files share one shape across all years: + +- **Separator:** `;` — **encoding:** UTF-8 with BOM +- **Number format:** German — `.` thousands, `,` decimal (e.g. `-733.670.000,00`) +- **Sign convention:** **revenues are negative, expenses are positive** (NRW kameral/doppik convention). Normalize/flip before display. +- **Hierarchy keys:** `Produktbereich` → `Produktgruppe`. Both can take the literal value `Gesamt` to denote a roll-up row — those rows are subtotals/totals, not leaves. Filter or use them deliberately; never sum them alongside leaves. +- **Time key:** `Geschäftsjahr` — each plan file contains multiple years (current + 3 planning years), so a single CSV is long-format across years. +- **Categories (columns):** ~19 fixed financial line items. Revenue side includes `Steuern und ähnliche Abgaben`, `Zuwendungen und allgemeine Umlagen`, `Öffentlich-rechtliche Leistungsentgelte`, etc. Expense side includes `Personalaufwendungen`, `Aufwendungen für Sach- und Dienstleistungen`, `Transferaufwendungen`, `Bilanzielle Abschreibungen`, etc. The plan files have one extra column `Globaler Minderaufwand` that the Jahresabschluss file doesn't. +- **Header typo to preserve:** `Öffentlich-rechtliche Leistunngsentgelte` (double-n) appears in the source — don't "fix" it on read; map it. +- **Spelling drift across files:** 2025 plan uses `algemeine Umlagen` (single-l), Jahresabschluss uses `allgemeine`. Treat as the same field. + +The two-level `Produktbereich/Produktgruppe` hierarchy is the natural treemap nesting; the ~19 category columns are switchable views (revenue vs expense, or a single category drilled across products). + +## Design Context + +(Mirror of `.impeccable.md`. The full design brief lives in `docs/design-brief.md`.) + +### Users +Engaged Münster citizens and journalists. German-speaking, intelligent, time-pressured. Mixed familiarity with budget docs. Many will share findings or cite specific numbers, so deep-linking and quoteable figures matter. Treat them like adults — no pictograms, no hand-holding tone. + +### Brand Personality +**Editorial, generous, opinionated.** A piece of civic data journalism, not a municipal portal and not a dashboard. Voice: composed, curious, never cute. Numbers presented with precision and context, never as "look at this big number" hero stats. + +### Aesthetic Direction +**Print-rooted editorial.** Strong serif/slab display type, asymmetric grid, generous whitespace, off-white "paper" background tinted slightly warm. The treemap is the protagonist; everything else frames it like a magazine spread frames its lead photograph. Lean toward NYT/SZ/ZEIT graphics-desk references, the Pudding's longer pieces, Vignelli-grade typographic confidence. + +**Anti-references** (do not look like): generic SaaS dashboards, German municipal portals, AI-slop hero pages (gradient text, glassmorphism, purple-blue gradients), PowerPoint infographics. + +### Theme & Language +Light only, paper-feeling. German only. + +### Design Principles +1. **The treemap is the page.** Layout, type, color, and motion all serve reading it. +2. **Print logic first.** Asymmetric, typographic, quiet. Sunday-paper-supplement-grade. +3. **Numbers in context, never alone.** Every figure paired with its share, change, or what it pays for. +4. **Data does the talking.** Where copy exists, it points at data — never competes with it. +5. **Restraint is the accent.** One display face, one body face, one accent system, one motion vocabulary. + +### Color decided +Two-hue system: *Aufwendungen* and *Erträge* each get a hue family in OKLCH on the warm-paper background. Tile lightness/chroma encodes value within a flow. No red/green moralizing. Specific hues to be auditioned during craft. + +### Stack decided +Astro + D3 islands. Static-first. Deep-linkable URLs. SSR for share targets. + +## When extending + +- Re-downloading data: see the URLs in conversation history or fetch the dataset pages on opendata.stadt-muenster.de (`/dataset/haushaltsplan-YYYY-der-stadt-münster`). Watch for the 2026/2027 plan to appear there — that should replace the 2025 file as the primary source. +- PDFs in `docs/sources/` are the authoritative narrative; the CSVs are the data. Don't try to OCR the PDFs while structured data exists. diff --git a/README.md b/README.md index 930becd..4810e81 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,53 @@ +⠀ + # ms-haushalt -Visualisierung der Haushalte der Stadt Münster \ No newline at end of file +# Visualisierung der Haushalte der Stadt Münster + +# Astro Starter Kit: Minimal + +```sh +pnpm create astro@latest -- --template minimal +``` + +> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! + +## 🚀 Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```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 | +| ---------------------- | ------------------------------------------------ | +| `pnpm install` | Installs dependencies | +| `pnpm dev` | Starts local dev server at `localhost:4321` | +| `pnpm build` | Build your production site to `./dist/` | +| `pnpm preview` | Preview your build locally, before deploying | +| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` | +| `pnpm 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). + +> a8d3b5f (feat: initial Münster Haushalt icicle viewer) + +⠀ \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..e762ba5 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,5 @@ +// @ts-check +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({}); diff --git a/data/extracted/pg-sections-2026.json b/data/extracted/pg-sections-2026.json new file mode 100644 index 0000000..f54b7ab --- /dev/null +++ b/data/extracted/pg-sections-2026.json @@ -0,0 +1,730 @@ +{ + "1001": { + "pgNumber": "1001", + "name": "Bauaufsicht und baurechtliche Beratung", + "beschreibung": "Diese Produktgruppe umfasst alle von der Stadt Münster wahrzunehmenden Aufgaben der Unteren Bauaufsichtsbehörde. Hierzu gehört die Beratung, Prüfung und Überwachung, so dass bei der Errichtung, der\nÄnderung, dem Abbruch, der Nutzung, der Nutzungsänderung sowie der Instandhaltung baulicher Anlagen sowie anderer Anlagen und Einrichtungen die öffentlich rechtlichen Vorschriften eingehalten werden.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "1002": { + "pgNumber": "1002", + "name": "Denkmalschutz und Denkmalpflege", + "beschreibung": "Die Produktgruppe \"Denkmalschutz und Denkmalpflege\" ist deckungsgleich mit dem einzigen gleichnamigen Produkt, so dass die Beschreibung identisch ist.\n\nDie Produktgruppe umfasst folgende Schwerpunkte:\n- die Identifizierung bzw. Unterschutzstellung von Bau-, Boden- und Gartendenkmalen, Eintragung in die Denkmalliste der Stadt Münster soweit diese nicht in der Liste der Bodendenkmäler beim Denkmalfachamt\ngeführt werden\n- sonderbehördliche Genehmigungen (denkmalrechtliche Erlaubnisse) sowie Ordnungswidrigkeits- und Verwaltungsstreitverfahren\n- die Ermittlung und fachliche Bewertung der Grundlagen für bestehende und potenzielle neue Bau- und Bodendenkmale\n- die Aufstellung von Denkmalbereichssatzungen\n- die Denkmalförderung einschl. Ausstellung steuerlicher Bescheinigungen\n- die intensive Beratung von Eigentümern, Bauherrn und Investoren einschl. Öffentlichkeitsarbeit\n- archäologische Recherchen und Untersuchungen einschl. Grabungsmanagement und Dokumentation/Öffentlichkeitsarbeit.\n\nEs besteht ein enger inhaltlicher Bezug zum Produkt Stadtgestaltung, der sowohl konzeptionell als auch flächen- und objektbezogen wirkt (städtebaulicher Denkmalschutz).", + "erlaeuterungen": "zu Zeile 6\nKostenerstattung von Eigentümern für die Durchführung von archäologischen Untersuchungen auf ihren Grundstücken - Grundlage jeweils vertragliche Grabungsvereinbarung\n\nzu Zeile 11\nIn Zeile 11 sind zweckgebundene Personalaufwendungen für die Durchführung von archäologischen Untersuchungen veranschlagt, die zu 100 % durch Kostenerstattungen von Eigentü-\nmern in Zeile 6 ausgeglichen werden.\n\nZu Zeile 28\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells)", + "breakdowns": {} + }, + "1003": { + "pgNumber": "1003", + "name": "Wohnen", + "beschreibung": "Die Produktgruppe umfasst die vier Produkte:\n- Wohnraumförderung\n- Hilfen zur Wohnraumversorgung\n- Wohnungsaufsicht- und -sicherung, Mietspiegel\n- Planung- und Quartiersentwicklung.\nGrundsätzliche Zielrichtung bei der Erfüllung aller Aufgaben der Produktgruppe ist, für die Bürgerinnen und Bürger bezahlbaren Wohnraum mit gesunden Wohnverhältnissen ausgestattet nach ihren individuellen\nBedürfnissen zu guten, insbesondere auch energetisch sparsamen Qualitäten mit möglichst geringem CO²-Ausstoß zu schaffen und zu sichern. Das Land Nordrhein-Westfalen und die Stadt Münster stellen für diese\nZwecke Mittel zur Wohnraumförderung bzw. zur Schaffung klimafreundlicher Wohngebäude sowie zum passiven Lärmschutz zur Verfügung.", + "erlaeuterungen": "zu Zeile 15:\nFür das Förderprogramm „Klimafreundliche Wohngebäude“ werden im Jahr 2026 Mittel in Höhe von 2.510.000 Euro und in den Jahren 2027 - 2030 jährlich jeweils\nMittel in Höhe von 2.410.000 Euro bereitgestellt.\n\nzu Zeile 16:\nBeim Projekt Quartiersarchitekt sind für das Jahr 2026 Aufwendungen in Höhe von 104.000 Euro und Erträge in Höhe von 56.000 Euro geplant.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1101": { + "pgNumber": "1101", + "name": "Abwasserbeseitigung", + "beschreibung": "Die Produktgruppe beinhaltet die ordnungsgemäße, sichere, umweltgerechte und wirtschaftliche Ableitung und Reinigung von Abwasser in Verbindung mit der Planung, dem Bau und der Unterhaltung der dafür\nnotwendigen Anlagen (Kanäle, Druckrohrleitungen, Regenwasserbehandlungsanlagen, Pumpwerke und Kläranlagen). Die Abwasserbeseitigung unterteilt sich in die Abwasserableitung und -reinigung. Es handelt sich\num eine gebührenrechnende Einrichtung, die sich zu 100 % aus Gebühren- und Beitragseinnahmen finanziert.", + "erlaeuterungen": "zu Zeile 27:\nBei den internen Leistungsbeziehungen werden die Erträge von der Produktgruppe 1201 für die Erstattung der Niederschlagswassergebühr für die Entwässerung der öffentlichen Straßen\nabgebildet.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1102": { + "pgNumber": "1102", + "name": "Abfallwirtschaft (AWM)", + "beschreibung": "Die \"Abfallwirtschaftsbetriebe Münster\" sind eine eigenbetriebsähnliche Einrichtung der Stadt Münster. Sie werden gemäß der Eigenbetriebsverordnung sowie nach den Bestimmungen der Betriebssatzung für die\n\"Abfallwirtschaftsbetriebe Münster\" geführt. Zweck der eigenbetriebsähnlichen Einrichtung ist die Stadtreinigung inklusive Winterdienst und die Abfallwirtschaft im gesamten Stadtgebiet.\n\nErstmalig in 2024 ist ein Managementkontrakt vereinbart worden. Die Laufzeit beträgt 5 Jahre (vom 01.01.2024 bis zum 31.12.2028).", + "erlaeuterungen": null, + "breakdowns": {} + }, + "1201": { + "pgNumber": "1201", + "name": "Bereitstellung von Verkehrsflächen und –anlagen", + "beschreibung": "Die Bereitstellung der öffentlichen Verkehrsflächen und -anlagen beinhaltet die konzeptionelle Mobilitätsplanung des Gesamtnetzes sowie die Planung, den Bau, die Erhaltung und die Finanzierung der öffentlichen\nStraßen, Wege, Plätze, Brücken, Tunnel, Lärmschutzwände, Beleuchtung, Lichtsignalanlagen (Ampeln), Parkscheinautomaten und des Parkleitsystems.\nDie konzeptionelle Mobilitätsplanung erfolgt entsprechend den Anforderungen an eine nachhaltige, zukunftsfähige, stadt- und umweltverträgliche Mobilitäts- und Verkehrsinfrastruktur. Die Planung erfolgt entsprechend\nden Anforderungen an die sichere und leistungsfähige Gestaltung des Straßenraumes unter Berücksichtigung der verkehrspolitischen bzw. verkehrsplanerischen Vorgaben. Im Rahmen der konkreten Straßenplanung\nmüssen entsprechende Bau- und Finanzierungsbeschlüsse sichergestellt, Analysen im Straßenverkehr vorgenommen, Öffentlichkeitsarbeit für Politiker, Bürger und sonstige Nutzer/Innen des öffentlichen\nVerkehrsnetzes sowie die Betreuung von Investoren und Ingenieurbüros geleistet werden. Anschließend erfolgt der Bau der öffentlichen Verkehrsflächen und -anlagen. Ein weiterer Schwerpunkt liegt in der Erhaltung\n(Unterhaltung, Instandsetzung und Erneuerung) des öffentlichen Verkehrsnetzes. Die Verkehrsflächen und -anlagen werden unter Beachtung der gesetzlichen Vorgaben so sicher gebaut und betrieben, dass von\nihnen keine Gefahr für die öffentliche Sicherheit und Ordnung ausgeht.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden folgende Aufwendungen abgebildet:\n- Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter-/Vermietermodells)\n- Aufwendungen für die Produktgruppe 1101 für die Erstattung der Niederschlagswassergebühr für die Entwässerung der öffentlichen Straßen", + "breakdowns": {} + }, + "1301": { + "pgNumber": "1301", + "name": "Grün- und Freiflächen", + "beschreibung": "Die Produktgruppe beinhaltet vor allem den Entwurf, den Bau und die Unterhaltung von öffentlichen Grünanlagen und Grün- und Freiflächen von Ämtern und Einrichtungen. Im Einzelnen zählen zur Produktgruppe\nGrünanlagen, öffentliche Spielflächen, Rad- und Wanderwege, Kleingärten (Produkt 1), Verkehrsgrün, Außenanlagen von städtischen Gebäuden und Sportanlagen (Produkt 2). Die Produktgruppe besteht damit zum\nTeil aus verwaltungsinternen Serviceleistungen.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden sowohl die Verrechnungen zwischen den Teilplänen des Amtes als auch die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1302": { + "pgNumber": "1302", + "name": "Friedhöfe", + "beschreibung": "Die Produktgruppe beinhaltet die Konzeptionierung, den Bau und die Unterhaltung von Friedhofsanlagen, die Durchführung von Bestattungen und Beratung von Angehörigen (= Produkt 1) sowie die Pflege von\nKriegsgräbern (= Produkt 2). Bei dem Betrieb der städtischen Friedhöfe handelt es sich um eine gebührenrechnende Einrichtung.", + "erlaeuterungen": "allgemein:\nDas Ergebnis des Teilplans weicht aufgrund der NKF-Vorschriften vom Ergebnis der Gebührenrechnung ab.\n\nzu Zeile 2:\nZuweisung für die Kriegsgräberpflege, Anzahl der Grabstätten: 2.776\n\nzu Zeile 4:\nDie Gebühren werden nach der Gebührensatzung für die Friedhofseinrichtungen der Stadt Münster in der aktuellen Fassung erhoben.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden sowohl die Verrechnungen zwischen den Teilplänen des Amtes als auch die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1303": { + "pgNumber": "1303", + "name": "Natur, Landschaft, Erholung, Wasserschutz", + "beschreibung": "Die Produktgruppe umfasst die Aufgaben der Unteren Landschaftsbehörde, der Unteren Wasserbehörde und darüber hinausgehende konzeptionell/planerische, wissenschaftliche und öffentlichkeitsbezogene\nAktivitäten zum Schutz und zur Entwicklung von Natur, Landschaft, Erholungsmöglichkeiten und des Wasserhaushalts.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden sowohl die Verrechnungen zwischen den Teilplänen des Amtes als auch die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1304": { + "pgNumber": "1304", + "name": "Fließende Gewässer", + "beschreibung": "Die Produktgruppe \"Fließende Gewässer\" ist deckungsgleich mit dem einzigen, gleichnamigen Produkt. Produktgruppen- und Produktbeschreibung sind daher identisch.\nZum Leistungsspektrum gehören der Bau und die Unterhaltung fließender Gewässer. Sie dienen der Schaffung und Bewahrung eines ordnungsgemäßen und umweltgerechten Zustandes der Fließgewässer als\nErholungs- und Lebensraum sowie der Gewährleistung eines ordnungsgemäßen Wasserabflusses. Die Aufgaben der Gewässerunterhaltung werden von der Stadt Münster und 5 weiteren Unterhaltungsverbänden\nerledigt. Wesentlicher Teil der Produktgruppe \"Fließende Gewässer\" ist der Gebührenhaushalt \"Gewässerunterhaltung\", der über die Erträge aus Gewässergebühren einen Teil der Aufwendungen der Produktgruppe\ndeckt.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienanagement abgebildet (Umsetzung des\nMieter-/Vermietermodells).", + "breakdowns": {} + }, + "1305": { + "pgNumber": "1305", + "name": "Wald und Forstwirtschaft", + "beschreibung": "Die Produktgruppe \"Wald und Forstwirtschaft\" ist deckungsgleich mit dem einzigen, gleichnamigen Produkt. Produktgruppen- und Produktbeschreibung sind daher identisch. Zur Leistungspalette von Produktgruppe\nund Produkt gehören der städtische Forstbetrieb und Aufgaben des Jagdwesens. Hierzu zählen im Einzelnen\n- die Planung, Organisation, Förderung und Durchführung aller Maßnahmen zur Neubegründung, Pflege und nachhaltigen naturverträglichen (Erholungs-) Nutzung von Waldbeständen, einschließlich Verkauf von\nWaldprodukten und Forstschutz/Gefahrenabwehr;\n- Wildbewirtschaftung und Jagdverpachtung zu möglichst günstigen Konditionen;\n- die Bewirtschaftung (Beratung, Betreuung und betriebstechnische Unterstützung) der Waldfläche der Stadtwerke Münster GmbH und der Stiftungen, einschließlich Verkauf von Waldprodukten, Forstschutz und\nJagdangelegenheiten, daneben Antragstellung für waldbauliche Förderungsmaßnahmen;\n- Maßnahmen zur Erhaltung und Entwicklung des Ökosystems \"Wald\", insbesondere durch Sicherstellung und Förderung seiner natürlichen Abläufe und seiner Biotop- und Artenvielfalt;\n- die Feststellung und Durchführung von Verkehrssicherungsaufgaben;\n- die Öffentlichkeitsarbeit durch Führungen, Fortbildungsveranstaltungen, Ausstellungen, Wald- und Umweltpädagogik, Waldlehrpfade, Medienbetreuung.\n\nEs sollen ertragreiche, naturnahe und langfristig stabile Wälder unter Berücksichtigung der besonderen Nutz-, Schutz- und Erholungsfunktion entwickelt und bewirtschaftet werden. Die Waldflächen werden in\nregelmäßigen Abständen auf der Grundlage des Forstbetriebsplans gestaltet und kontinuierlich gepflegt.", + "erlaeuterungen": "zu Zeile 15:\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 140 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden sowohl die Verrechnungen zwischen den Teilplänen des Amtes als auch die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet ( Umsetzung des Mieter-/Vermietermodells).\n\n.", + "breakdowns": {} + }, + "1401": { + "pgNumber": "1401", + "name": "Übergr. Umweltschutz, Klima, Nachhaltigkeit,", + "beschreibung": "Die Produktgruppe beinhaltet die Aufgabenbereiche Luftreinhaltung, Immissionsschutz, Bodenschutz, Abfallüberwachung, Klimaschutz und Nachhaltigkeit sowie den übergreifenden Umweltschutz\n(Umweltverträglichkeitsprüfungen, Umweltplanung, Umweltinformation, Förderwesen, Öko-Audit, Öl- und Giftalarm). Es handelt sich sowohl um behördliche Umweltschutzaufgaben als auch um darüber hinaus\ngehende städtische Aktivitäten. Das Leistungsspektrum der Produktgruppe ist vielfältig.", + "erlaeuterungen": "zu Zeile 15:\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 31.000 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden sowohl die Verrechnungen zwischen den Teilplänen des Amtes als auch die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "1501": { + "pgNumber": "1501", + "name": "Anteile an Unternehmen", + "beschreibung": "Die Produktgruppe beinhaltet die im Rahmen des Beteiligungsmanagements betreuten Anteile an Unternehmen der Stadt Münster. Abgebildet werden u. a. die Ausschüttungen der Unternehmen bzw. Zuschüsse an\ndie Unternehmen, Erträge aus Konzessionszahlungen, Zinszahlungen aufgrund von Darlehensverträgen etc. sowie die Ein- und Auszahlungen aus Investitionstätigkeit.\n\nDie unmittelbaren \"wesentlichen Beteiligungen\" sind in Form einzelner Produkte in der Produktgruppe dargestellt. Als \"wesentliche Beteiligung\" sind nach entsprechendem Ratsbeschluss solche Unternehmen\nklassifiziert, deren Beteiligung von strategischer Bedeutung für die Stadt Münster ist. Mit den unmittelbaren \"wesentlichen Beteiligungen\" werden zu Steuerungszwecken in der Regel Managementkontrakte\nabgeschlossen. Unter dem Produkt \"Übrige Beteiligungen\" sind Anteile an allen weiteren unmittelbaren und mittelbaren Beteiligungen der Stadt Münster ausgewiesen.\n\nUnabhängig von der Abbildung der Ausschüttung der \"Stadtwerke Münster GmbH\" und der damit im Zusammenhang stehenden Ertragsteuern bzw. Steuererstattungen in dieser Produktgruppe aufgrund der Vorgaben\ndes Produktrahmenplans, ist der Betrieb gewerblicher Art \"Bäder\" (Produktgruppe 0802) alleiniger Anteilseigner der \"Stadtwerke Münster GmbH\".\n\nNicht in dieser Produktgruppe abgebildet sind eigenbetriebsähnliche Einrichtungen, die im Gegensatz zu den Unternehmen, an denen die Stadt Münster beteiligt ist, keine rechtliche Selbstständigkeit aufweisen.", + "erlaeuterungen": "zu Zeile 07:\nVon den sonstigen ordentlichen Erträgen entfallen 2026 und 2027 jeweils 16,90 Mio. Euro auf die Konzessionsabgaben der „Stadtwerke Münster GmbH“ und 1,625 Mio. Euro auf Körper-\nschaftsteuererstattungen.\n\nzu Zeile 13:\nDie Aufwendungen für Sach- und Dienstleistungen beinhalten den Ausgleich für unterbliebene Tarifmaßnahmen bei der Stadtwerke Münster GmbH.\n\nzu Zeile 15:\nDie Transferaufwendungen beinhalten im Wesentlichen Zuschüsse, insbesondere an die Beteiligungsgesellschaften\n- Westfälischer Zoologischer Garten Münster GmbH i. H. v. 4,10 Mio. Euro (2026) / 4,1 Mio Euro (2027)\n- Stadtwerke Münster GmbH i. H. v. 1,733 Mio. Euro - hier: für das Münster-Abo / 29-Euro-Ticket (2026) / 1,733 Mio Euro (2027)\n- Wirtschaftsförderung Münster GmbH i. H. v. 1,90 Mio. Euro (2026) / 1,90 Mio € (2027)\n\nzu Zeile 16:\nDie sonstigen ordentlichen Aufwendungen stehen i. d. R. hauptsächlich im Zusammenhang mit Ausschüttungen insbesondere der \"Stadtwerke Münster GmbH\" an den Betrieb gewerbli-\ncher Art (BgA) \"Bäder\" und beinhalten diesbezüglich Kapitalertragsteuern und Solidaritätszuschläge.\n\nzu Zeile 19:\nDie Finanzerträge beinhalten insbesondere nachstehende Brutto-Ausschüttungen:\n- Stadtwerke Münster GmbH an den Betrieb gewerblicher Art (BgA) „Bäder“ i. H. v. 6,5 Mio. Euro (2026) / 8,00 Mio Euro (2027)\n- Sparkasse Münsterland Ost i. H. v. 2,80 Mio. Euro (2026) / 2,80 Mio Euro (2027)\n\nUnabhängig von der Abbildung der Ausschüttungen der „Stadtwerke Münster GmbH“ und der damit im Zusammenhang stehenden Ertragsteuern bzw. Steuererstattungen in\ndieser Produktgruppe aufgrund der Vorgaben des Produktrahmenplanes bleibt der BgA „Bäder“ (Produktgruppe 0802) alleiniger Anteilseigner der „Stadtwerke Münster GmbH\".", + "breakdowns": { + "15": [ + { + "name": "Westfälischer Zoologischer Garten Münster GmbH", + "values": { + "2026": 4099999.9999999995, + "2027": 4099999.9999999995 + } + }, + { + "name": "Stadtwerke Münster GmbH i. H. v. 1,733 Mio. Euro", + "values": { + "2027": 1733000 + } + }, + { + "name": "Wirtschaftsförderung Münster GmbH", + "values": { + "2026": 1900000, + "2027": 1900000 + } + } + ], + "19": [ + { + "name": "Stadtwerke Münster GmbH an den Betrieb gewerblicher Art (BgA) „Bäder“", + "values": { + "2026": 6500000, + "2027": 8000000 + } + }, + { + "name": "Sparkasse Münsterland Ost", + "values": { + "2026": 2800000, + "2027": 2800000 + } + } + ] + } + }, + "1502": { + "pgNumber": "1502", + "name": "Stadtmarketing (MM)", + "beschreibung": "Die Produktgruppe Stadtmarketing beinhaltet den Zuschuss an die eigenbetriebsähnliche Einrichtung \"Münster Marketing (MM)\".\n\n\"Münster Marketing\" wird gemäß der Eigenbetriebsverordnung sowie nach den Bestimmungen der Betriebssatzung für \"Münster Marketing\" geführt. Zweck der eigenbetriebsähnlichen Einrichtung sind die Profilierung\nund Stärkung von Münster im Wettbewerb der Städte und Regionen durch Instrumente des Stadtmarketings und alle den Betriebszweck fördernden Geschäfte.\n\nEs besteht ein aktuell gültiger Managementkontrakt mit einer Laufzeit bis zum 31.12.2026.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "1503": { + "pgNumber": "1503", + "name": "Stadthalle Hiltrup", + "beschreibung": "Diese Produktgruppe umfasst die Bewirtschaftung der Stadthalle Hiltrup. Dargestellt werden die Vermietung und Verwaltung der Räume für verschiedene Zwecke (Schule, Vereine, politische Gremien, Kultur u. a.)", + "erlaeuterungen": "Bei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells).", + "breakdowns": {} + }, + "1504": { + "pgNumber": "1504", + "name": "Öffentliche Toilettenanlagen", + "beschreibung": "Derzeit stehen 7 öffentliche Toilettenanlagen im Eigentum der Stadt Münster. Hinzu kommt die neu errichtete Hocktoilette am Bremer Platz, welche jedoch keine vollwertige Anlage darstellt. Die Sanitäranlagen sind\nherkömmlicher Bauart und müssen manuell durch einen beauftragen Dienstleiter gereinigt werden.\n\nDie Produktverantwortung für öffentliche Toilettenanlagen obliegt dem Ordnungsamt. Dies umfasst das Beschwerdemanagement, die Umsetzung des Konzeptes in Zusammenarbeit mit anderen städtischen Ämtern\nund die finanzielle Zuständigkeit.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "1601": { + "pgNumber": "1601", + "name": "Allgemeine Finanzwirtschaft", + "beschreibung": "Die Produktgruppe beinhaltet die Erträge und Aufwendungen sowie die Einzahlungen und Auszahlungen aus Investitions- und Finanzierungstätigkeit, die aufgrund ihrer Eigenschaften nicht einer anderen\nProduktgruppe zugeordnet werden können.\n\nVor dem Hintergrund kommunaler Beeinflussbarkeit erfolgt eine Differenzierung in die Produkte\n- Gemeindesteuern\n- Sonstige Steuern, allgemeine Zuweisungen und allgemeine Umlagen\n- Sonstige allgemeine Finanzwirtschaft\nWährend die Gemeindesteuern über die Hebe- bzw. Steuersätze beeinflussbar sind, werden die Ergebnisse der beiden anderen Produkte extern bestimmt.", + "erlaeuterungen": "zu Zeile 01:\nDie Erträge aus Steuern und ähnlichen Abgaben setzen sich in den Haushaltsjahren 2026 und 2027 zusammen aus:\n\nAufwandsart Ansatz 2026 in Mio. € Ansatz 2027 in Mio. €\nGewerbesteuer 385,0 385,0\nGrundsteuer A 0,4 0,4\nGrundsteuer B 66,5 67,5\nVergnügungssteuer 2,8 2,8\nHundesteuer 1,8 1,85\nZweitwohnungssteuer 1,0 1,25\nBeherbergungsteuer 4,3 4,46\nGemeindeanteil an der Einkommensteuer 226,0 236,0\nGemeindeanteil an der Umsatzsteuer 59,0 73,0\nLeist. nach dem Familienleistungsausgleich 21,5 21,9\n\nzu Zeile 02:\nDiese Position beinhaltet insbesondere die Schlüsselzuweisungen in Höhe von 108,1 Mio. Euro (2026) / 95 Mio. Euro (2027), die Schulpauschale/Bildungspauschale in Höhe von 16,8\nMio. Euro (2026) / 16,8 Mio. Euro (2027), die Sportpauschale in Höhe von 1,25 Mio. Euro (2026) / 1,25 Mio. Euro (2027), sowie die Aufwands- und Unterhaltungspauschale in Höhe von\n2,2 Mio Euro (2026) / 2,2 Mio. Euro (2027).\n\nzu Zeile 15:\nZu den Transferaufwendungen gehören die\n- Gewerbesteuerumlage in Höhe von 29,3 Mio. Euro (2026) / 29,3 Mio. Euro (2027)\n- Landschaftsumlage in Höhe von 136,7 Mio. Euro (2026) / 142,9 Mio. Euro (2027)\n\nzu Zeile 19:\nDie Finanzerträge ergeben sich insbesondere aus den Zinsen für gewährte Darlehen im Rahmen der Konzernfinan-zierung in Höhe von 7 Mio. Euro (2026) / 7,5 Mio. Euro (2027).\n\nzu Zeile 20:\nUnter dieser Position werden die Zinsen aus der Inanspruchnahme von Fremdkapital (Kredite für Investitionen und Kredite zur Liquiditätssicherung) abgebildet.", + "breakdowns": { + "1": [ + { + "name": "Gewerbesteuer", + "values": { + "2026": 385000000, + "2027": 385000000 + } + }, + { + "name": "Grundsteuer A", + "values": { + "2026": 400000, + "2027": 400000 + } + }, + { + "name": "Grundsteuer B", + "values": { + "2026": 66500000, + "2027": 67500000 + } + }, + { + "name": "Vergnügungssteuer", + "values": { + "2026": 2800000, + "2027": 2800000 + } + }, + { + "name": "Hundesteuer", + "values": { + "2026": 1800000, + "2027": 1850000 + } + }, + { + "name": "Zweitwohnungssteuer", + "values": { + "2026": 1000000, + "2027": 1250000 + } + }, + { + "name": "Beherbergungsteuer", + "values": { + "2026": 4300000, + "2027": 4460000 + } + }, + { + "name": "Gemeindeanteil an der Einkommensteuer", + "values": { + "2026": 226000000, + "2027": 236000000 + } + }, + { + "name": "Gemeindeanteil an der Umsatzsteuer", + "values": { + "2026": 59000000, + "2027": 73000000 + } + }, + { + "name": "Leist. nach dem Familienleistungsausgleich", + "values": { + "2026": 21500000, + "2027": 21900000 + } + } + ], + "15": [ + { + "name": "Gewerbesteuerumlage", + "values": { + "2026": 29300000, + "2027": 29300000 + } + }, + { + "name": "Landschaftsumlage", + "values": { + "2026": 136700000, + "2027": 142900000 + } + } + ] + } + }, + "1701": { + "pgNumber": "1701", + "name": "Rechtlich unselbständige Stiftungen", + "beschreibung": "Örtliche Stiftungen sind nach dem Stiftungsgesetz des Landes Nordrhein-Westfalen rechtlich selbständige und rechtlich unselbständige Stiftungen, die nach dem Willen des Stifters von einer Gemeinde verwaltet\nwerden und die überwiegend Zwecken dienen, die von der Gemeinde in ihrem Bereich als öffentliche Aufgaben erfüllt werden können.\nDie Kommunalen Stiftungen Münster sind zum jetzigen Zeitpunkt alle Sozialstiftungen. Ihre Stiftungszwecke werden in den Handlungsfeldern \"Leben im Alter\", \"Bürgerschaftliches Engagement und Freiwilligenarbeit\"\nsowie \"Chancen für Kinder\" verwirklicht.\n\nZu den rechtlich unselbständigen kommunalen Stiftungen zählen in Münster zurzeit:\n- \"Friedrich und Irmgard Buschmann-Stiftung\"\n- \"Generalarmenfonds\"\n- \"fair für Frauen\"", + "erlaeuterungen": "Die Jahresüberschüsse/-fehlbeträge der Erfolgspläne der rechtlich unselbständigen Stiftungen werden in einer Summe in der Zeile 07 „Sonstige ordentliche Erträge“ bzw. 16 „Sonstige\nordentliche Aufwendungen“ ausgewiesen.", + "breakdowns": {} + }, + "0101": { + "pgNumber": "0101", + "name": "", + "beschreibung": "Die Stadt Münster ist in sechs Stadtbezirke aufgeteilt, in denen jeweils eine eigene Bezirksvertretung gewählt wird. Die Bezirksvertretungen entscheiden über bezirksbezogene Angelegenheiten ihres Stadtbezirks.\nDazu gehören beispielsweise die Unterhaltung und Ausstattung der im Stadtbezirk gelegenen Schulen, Sportplätze oder Friedhöfe, Straßenaus- und -umbaumaßnahmen, die Ausgestaltung von Park- und\nGrünanlagen, Fragen des Denkmalschutzes und die Betreuung von örtlichen Vereinen und Initiativen. Darüber hinaus können die Bezirksvertretungen Stellungnahmen zu wichtigen überbezirklichen Angelegenheiten\ndes Rates oder eines Ausschusses abgeben, wenn sie ihren Stadtbezirk berühren.\nDiese Produktgruppe dient insbesondere der Darstellung der Finanzmittel, die den einzelnen Bezirksvertretungen im jeweiligen Haushaltsjahr zur freien Verfügung (im Sinne der Gemeindeordnung) stehen. Diese\nProduktgruppe dient ausnahmsweise nicht zur Darstellung von Entscheidungs- und Handlungsergebnissen, da es sich bei den Bezirksvertretungen um politische Gremien handelt. Daher sind auch keine Ziele und\nZielkennzahlen gebildet worden. Die Ziele der Bezirksvertretungen ergeben sich aus den gesetzlichen Grundlagen.", + "erlaeuterungen": "zu Zeile 13 – 16:\n\nAufteilung der frei verfügbaren Mittel der Bezirksvertretungen gemäß vorliegender Beschlüsse der Bezirksvertretungen im Rahmen der Etatberatungen:\n\n2026/2027\n- BV Mitte: 33.580 Euro\n- BV Nord: 90.240 Euro\n- BV Ost: 81.120 Euro\n- BV Südost: 62.590 Euro\n- BV Hiltrup: 64.970 Euro\n- BV West: 72.060 Euro\n\nInsgesamt: 404.560 Euro", + "breakdowns": {} + }, + "0102": { + "pgNumber": "0102", + "name": "GF für polit. Gremien, internationale Beziehungen", + "beschreibung": "Die kommunale Selbstverwaltung sichert die demokratischen Rechte der Bürger/innen und Einwohner/innen der Stadt Münster. Dazu werden nach der Gemeindeordnung NRW politische Gremien gebildet und\nbesetzt, deren Arbeits- und Beschlussfähigkeit durch die Geschäftsführung gewährleistet wird. Diese umfasst beispielhaft die Vor- und Nachbereitung von Sitzungen, die Schriftführung, die Erstellung und Prüfung von\nVorlagen, die Prüfung und Auszahlung von Zahlungsansprüchen sowie die Betreuung des Sitzungsdienstprogramms.\n\nDarüber hinaus pflegt das Amt für Bürger- und Ratsservice für und mit dem Oberbürgermeister, dem Rat und der Bürgerschaft die internationalen Kontakte der Stadt Münster. Dies umfasst die Pflege der\nPartner-/Patenstädte und der befreundeten Städte, die Initiierung/Betreuung von europäischen Projekten und Netzwerken sowie die Bearbeitung sonstiger internationaler Anfragen.\n\nZusätzlich umfasst das Aufgabenspektrum die Bereitstellung von Räumen für städtische Veranstaltungen und die Vergabe von Räumlichkeiten an Dritte nebst deren Betreuung sowie die Vornahme von Ehrungen und\nGratulationen.", + "erlaeuterungen": "zu Zeile 2:\nDie Erträge aus Zuschüssen von 200.000 € sind in Höhe eines Mittelwertes veranschlagt, jedoch werden je nach Erfolg der Förderanträge auch größere Projekte durchgeführt. Hieraus\nresultieren zweckgebundene Aufwendungen einschließlich des kommunalen Eigenanteils in Zeile 13 und Zeile 16.\n\nzu Zeile 15 und Zeile 16:\nIn diesen Aufwendungen sind auch die Beträge für ständige kommunale Gremien bzw. Projekte enthalten. Davon stehen zur Verfügung für:\n- Beirat für kommunale Entwicklungszusammenarbeit: 23.000 € (2027 - 23.000 €)\n- Kommunale Seniorenvertretung: 4.720 € (2027 - 4.720 €)\n- Ausschuss für Chancengerechtigkeit und Integration: 64.440 € (davon 29.440 € für Zuschüsse in Zeile 15) (2027 - 64.440 € (davon 29.440 € für Zuschüsse in Zeile 15)\n- Fairtrade-Stadt Münster: 10.000 € (2027 - 10.000 €)\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung von Gebäuden durch das Gebäudemanagement abgebildet (Umsetzung des Mie-\nter/Vermietermodells).", + "breakdowns": { + "15": [ + { + "name": "Beirat für kommunale Entwicklungszusammenarbeit:", + "values": { + "2027": 23000 + } + }, + { + "name": "Kommunale Seniorenvertretung:", + "values": { + "2027": 4720 + } + }, + { + "name": "Fairtrade-Stadt Münster:", + "values": { + "2027": 10000 + } + } + ] + } + }, + "0103": { + "pgNumber": "0103", + "name": "OB, BM und Verwaltungsführung", + "beschreibung": "Der Oberbürgermeister ist Vorsitzender des Rates und repräsentiert gemeinsam mit den Bürgermeistern die Stadt Münster.\n\nDarüber hinaus leitet der Oberbürgermeister die Verwaltung, legt mit Unterstützung der Beigeordneten die Ziele des Verwaltungshandelns im Rahmen der gesetzlichen und der Vorgaben des Rates fest, bereitet die\nBeschlüsse des Rates vor und steuert deren Umsetzung.\n\nDie Produktgruppe enthält keine Zielformulierung, da sich die Ziele des Oberbürgermeisters, der Bürgermeister und der Verwaltungsführung aus den kommunalverfassungsrechtlichen Bestimmungen ergeben.", + "erlaeuterungen": "zu Zeile 16:\nDie sonstigen ordentlichen Aufwendungen beinhalten die Verfügungsmittel des Oberbürgermeisters im Sinne von § 14 der Kommunalhaushaltsverordnung. Sie betragen jährlich\n6.140 Euro.\n\nzu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mie-\nter/Vermietermodells) abgebildet.", + "breakdowns": {} + }, + "0104": { + "pgNumber": "0104", + "name": "Gleichstellung aller Geschlechter", + "beschreibung": "In dieser Produktgruppe sind alle Aktivitäten des Amtes für Gleichstellung zur Förderung der Gleichstellung aller Menschen in der Stadtverwaltung und in der Stadt Münster zusammengefasst. Zu den Aufgaben\ngehören Öffentlichkeits- und Informationsarbeit, Netzwerkarbeit und Kooperationen, finanzielle und organisatorische Unterstützung von frauen- und männerspezifischen Einrichtungen, Trägern und Projekten und\nsolchen, die zu sexuellen und geschlechtlichen Identitäten arbeiten, sowie die Beratung von Bürger*innen sowie Beschäftigten der Stadt Münster.", + "erlaeuterungen": "zu Zeile 15:\nDer Ansatz umfasst die Förderung von\n- Frauenprojekten,\n- Männerprojekten,\n- Projekten aus dem Bereich LSBTIQ* und die\n- Trägerförderung (vgl. Zuschussbericht).\n\nMit den Mitteln der „Förderung von Frauenprojekten“ werden auf der Grundlage von Richtlinien Projekte, Programme und Öffentlichkeitsarbeit aus den Bereichen Selbsthilfe, Soziales,\nKultur etc. von Frauenorganisationen, –gruppen und –vereinen bezuschusst. Mit den Mitteln \"Förderung von Männerprojekten\" werden auf der Grundlage von Richtlinien Projekte, Pro-\ngramme und Öffentlichkeitsarbeit aus den Bereichen Selbsthilfe, Soziales, Kultur etc. von Männerorganisationen, -gruppen und -vereinen bezuschusst. Mit den Mitteln \"Förderung von\nProjekten aus dem Bereich LSBTIQ* werden auf der Grund-lage von Richtlinien Projekte, Programme und Öffentlichkeitsarbeit aus den Bereichen Selbsthilfe, Soziales, Kultur etc. von\nOrganisationen, Gruppen und Vereinen aus dem Bereich lesbischer, schwuler, bisexueller, trans*, inter* und queerer Menschen bezuschusst.\n\nMit den Mitteln zur „Trägerförderung“ werden auf der Grundlage von Leistungsvereinbarungen Träger bezuschusst.\n\nDie in Zeile 15 - Transferaufwendungen - genannte Summe ist im Zuschussbericht detailliert dargestellt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0105": { + "pgNumber": "0105", + "name": "Personal- und Schwerbehindertenvertretung", + "beschreibung": "Die Personalvertretung der Stadtverwaltung Münster vertritt die Interessen aller Beschäftigten (einschl. der Beamtinnen und Beamten) der Stadtverwaltung und nimmt zu diesem Zweck vor allem Rechte und Pflichten\nnach dem Landespersonalvertretungsgesetz für das Land Nordrhein-Westfalen wahr. Die Personalvertretung innerhalb der Stadtverwaltung Münster besteht aus dem Gesamtpersonalrat, drei örtlichen\nPersonalvertretungen und der Jugend- und Auszubildendenvertretung. Zu den örtlichen Personalvertretungen gehören der Personalrat der allgemeinen Verwaltung, der Personalrat der Feuerwehr und der Personalrat\ndes Theater Münster.\n\nDie Schwerbehindertenvertretung fördert die Eingliederung schwerbehinderter Menschen in die Stadtverwaltung Münster, vertritt ihre\nInteressen und steht ihnen beratend und helfend zur Seite. Zu diesem Zweck nimmt sie vor allem Rechte und Pflichten nach dem Sozialgesetzbuch (vor allem §§ 178 ff. SGB IX) wahr.\n\nLegitimation und Zielsetzungen von Personal- und Schwerbehindertenvertretung ergeben sich aus den genannten gesetzlichen Grundlagen und den hier geregelten Wahlen der jeweiligen Vertreterinnen und Vertreter\ndurch die Beschäftigten. Daher entzieht sich die Personal- und Schwerbehindertenvertretung einer weiteren Zielsetzung durch den Rat.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0106": { + "pgNumber": "0106", + "name": "Wirtschaftlichkeitsprüfung und Revision", + "beschreibung": "Die Produktgruppe enthält die Leistungen des Amtes für Wirtschaftlichkeitsprüfung und Revision (AWR). Hauptaufgabe des AWR ist die begleitende und/oder nachgehende neutrale Prüfung/Revision, die das\nVerwaltungshandeln der Stadt und ihrer Einrichtungen hinsichtlich der Wirtschaftlichkeit, Zweckmäßigkeit und Ordnungsmäßigkeit hinterfragt, Defizite ermittelt und deren Ursachen analysiert. Über den gesetzlich\nvorgegebenen Umfang hinaus erstellt das AWR auch Gutachten und berät auf Grund eines Auftrages bzw. auf Anforderung.\n\nIm Wesentlichen handelt es sich um Prüfungen\n- der Jahresabschlüsse, der Finanzen, der Kassen, des Vermögens, der Vorräte,\n- der laufenden Vorgänge der Finanzbuchhaltung,\n- der Auftragsvergaben, der Bautechnik,\n- der DV-Programme der Haushaltswirtschaft,\n- der Wirtschaftsführung und des Rechnungswesens der Sondervermögen,\n- der Betätigung der Stadt als Gesellschafterin sowie\n- bei wesentlichen Änderungen der Organisation.\n\nBei den Gutachten und Beratungen stehen im Vordergrund\n- die Wirtschaftlichkeitsuntersuchungen und die Folgekostenberechnungen,\n- die Mitarbeit bei zentralen Verwaltungsaufgaben (auch Projektbeteiligung/-arbeit) sowie\n- besondere Analysen i. V. m. einem fachübergreifendem Controlling.\n\nProduktgruppe und Produkt sind inhaltlich identisch. Ein zusätzlicher Ausweis des untergeordneten deckungsgleichen Produktes ist deshalb entbehrlich.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0107": { + "pgNumber": "0107", + "name": "Public Relations", + "beschreibung": "Das Amt für Kommunikation leistet mit dieser Produktgruppe integrierte Medienarbeit (Text, Print, Online, Bild, Film) für die Stadt Münster. Es schafft für Medienpartner Voraussetzungen für die Berichterstattung über\nLeistungen und Ziele der Stadt, informiert die Einwohner/-innen der Stadt durch die Veröffentlichungen der Medien und in städtischen Publikationen, stärkt den Medienstandort und sorgt durch seine Arbeit bundesweit\nund international für einen hohen Bekanntheitsgrad Münsters.\n\nSchwerpunkte der Leistungen sind\n\n- Pressearbeit und Medienservice: Pressemitteilungen, Pressetermine, Auskunft und Recherchehilfe für Journalisten, Vermittlung von Ansprechpartnern, Bilderservice, Bilder- und Videoservice, Münster-Filme\n- Printpublikationen: Veröffentlichungen des Presseamtes, redaktionelle Betreuung für sonstige städtische Veröffentlichungen, Stadt-CD\n- Online-Publikationen: städtische Seiten im Portal www.muenster.de einschließlich Virtuelles Rathaus; Konzeption und redaktionelle Betreuung des Portals www.muenster.de gemeinsam mit Verein\nBürgernetz - büne e.V., zentrale Facebook-, Instagram- und Twitter-Auftritte der Stadt, You Tube-Kanal der Stadt\n- Filmservice: Unterstützung Dreharbeiten, Regionalmarketing,\nInformationsarbeit und Kooperationen für Drehort Münster/Münsterland, \"Münster Tatort\" - und \"Wilsberg\"-Kinopremieren\n- kontinuierliches Reporting an Stadtverwaltung und Verwaltungsvorstand zur täglichen Medienlage, Schwerpunkten der städtischen Außenkommunikation und zu Reichweiten/Trends der Web- und\nSocial-Media-Produktion des Amtes für Kommunikation", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0108": { + "pgNumber": "0108", + "name": "Personal- und Organisationsmanagement", + "beschreibung": "Die Produktgruppe umfasst das \"Personalmanagement\" und das \"Organisationsmanagement\" und damit die Erbringung verwaltungsinterner Dienstleistungen für städtische Ämter und Einrichtungen sowie für die\nVerwaltungsführung. Das \"Personalmanagement\" enthält im Wesentlichen Leistungen, die die Stadtverwaltung als Arbeitgeber bzw. Dienstherr gegenüber den Beschäftigten und Beamten sowie den städtischen\nÄmtern und Einrichtungen erbringt. Das \"Organisationsmanagement\" beinhaltet insbesondere zentral angebundene Entscheidungen bzw. Maßnahmen zur Weiterentwicklung der Organisationsstrukturen der\nStadtverwaltung einschließlich ihrer Vor- und Nachbereitung, die gesamtstädtische Prozessoptimierung sowie die Unterstützung der Ämter und Einrichtungen in organisatorischen Belangen.", + "erlaeuterungen": "zu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter-\n/Vermietermodells) abgebildet.", + "breakdowns": {} + }, + "0109": { + "pgNumber": "0109", + "name": "Finanz- und Beteiligungsmanagement", + "beschreibung": "\"Die Gemeinde hat ihre Haushaltswirtschaft so zu planen und zu führen, dass die stetige Erfüllung ihrer Aufgaben gesichert ist. Der Haushalt muss in jedem Jahr in Planung und Rechnung ausgeglichen sein.\" (§ 75\nGemeindeordnung NRW). Die Erfüllung dieser sowie der damit in Verbindung stehenden Vorgaben der Gemeindeordnung NRW (§§ 75 - 97, 100, 116 - 117 GO), der Kommunalhaushaltsverordnung NRW und\nweiterer haushaltsrechtlicher Regelungen wird durch das Finanz- und Beteiligungsmanagement gewährleistet. Die Aufgabenfelder der Produktgruppe umfassen insbesondere die Bereiche\n\n- Haushaltssteuerung und -controlling,\n- Geschäftsbuchführung inkl. Jahresabschluss,\n- Zahlungsabwicklung, Liquiditäts- und Schuldenmanagement,\n- Vollstreckung,\n- Veranlagung von Steuern und Grundbesitzabgaben sowie\n- Beteiligungsmanagement.", + "erlaeuterungen": "zu Zeile 06:\nDiese Position beinhaltet die Kostenerstattungen der eigenbetriebsähnlichen Einrichtungen Abfallwirtschaftsbetriebe Münster (AWM), citeq, Münster Marketing (MM) und\nTheater Münster.\n\nzu Zeile 07:\nDie sonstigen ordentlichen Erträge werden durch die Mahn- und Pfändungsgebühren etc. i. H. v. 1.500.000 Euro (2026) / 1.500.000 Euro (2027) im Zusammenhang mit der Realisierung\nvon Forderungen durch die Stadtkasse geprägt.\n\nzu Zeile 16:\nDie größten Posten bei den sonstigen ordentlichen Aufwendungen sind:\n- Prüfung, Beratung, Rechtsschutz i. H. v. 1,67 Mio Euro (2026) / 1,47 Mio Euro (2027)\n- Gebühren i. H. v. 150.000 Euro (2026) / 150.000 Euro (2027)\n- Porto i. H. v. 153.000 Euro (2026) / 153.000 Euro (2027)\n\nzu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Erträge aus den mit dem Jobcenter abzurechnenden Leistungen und die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": { + "16": [ + { + "name": "Prüfung, Beratung, Rechtsschutz", + "values": { + "2026": 1670000, + "2027": 1470000 + } + }, + { + "name": "Gebühren", + "values": { + "2026": 150000, + "2027": 150000 + } + }, + { + "name": "Porto", + "values": { + "2026": 153000, + "2027": 153000 + } + } + ] + } + }, + "0110": { + "pgNumber": "0110", + "name": "Recht", + "beschreibung": "Die Produktgruppe \"Recht\" ist deckungsgleich mit dem einzigen gleichnamigen Produkt. Produktgruppen- und Produktbeschreibung sind daher identisch.\n\nDie Produktgruppe umfasst die durch die Zentrale Recht wahrgenommene Rechtsberatung, Prozessführung, besondere Rechts- und Versicherungsangelegenheiten sowie das Zentrale Vergabemanagement. Die\nProduktgruppe trägt dazu bei, die Recht- und Zweckmäßigkeit der Entscheidungen der Verwaltung zu sichern und Haftpflichten wegen rechtswidriger Amtsführung zu vermeiden. Dazu berät die Zentrale Recht\nbestimmte städtische Dezernate, Ämter und Einrichtungen und vertritt den Oberbürgermeister vor Gericht. Besondere Rechts- und Versicherungsangelegenheiten sind die Standesamtsaufsicht, die Risikovorsorge, die\nGewinnung und Betreuung von Schiedspersonen, die Abwicklung von Fremdschäden und die Aufgaben des Zentralen Vergabemanagements.", + "erlaeuterungen": "zu Zeile 11:\nNeben den Personalaufwendungen für die Mitarbeiter des Amtes für Zentrale Rechtsdienstleistungen und Vergabemanagement werden hier auch die Beiträge zur Unfallversicherung für\ntariflich Beschäftigte der Abfallwirtschaftsbetriebe Münster, citeq, Münster Marketing und Theater Münster geplant.\n\nzu Zeile 16:\nHierin enthalten ist die Umlage an den Kommunalen Schadenausgleich westdeutscher Städte für die Abfallwirtschaftsbetriebe Münster, die citeq, Münster Marketing, die Sozialholding\nKlarastift GmbH, die Westfälische Bauindustrie GmbH, die Wohn- und Stadtbau GmbH, das Theater Münster, die Messe und Congress Centrum Halle Münsterland GmbH, die Wirt-\nschaftsförderung Münster GmbH, die CeNTech GmbH, die Technologieförderung Münster GmbH, die Nanobioanalytik Zentrum GmbH, die KonvOY GmbH und die Bauwerke GmbH\n\nzu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Erträge aus den mit dem Jobcenter abzurechnenden Leistungen und die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0111": { + "pgNumber": "0111", + "name": "Immobilienmanagement", + "beschreibung": "Die Produktgruppe umfasst\n- den Erwerb, die Entwicklung und den Verkauf von Immobilien,\n- die Vermietung und Verpachtung sowie die Anmietung und Anpachtung von Immobilien und\n- die Bereitstellung von Immobilien zur städtischen Aufgabenerfüllung.\n\nZu den Aufgaben des Immobilienmanagement gehören die bedarfs-, zeit- und kostengerechte Bereitstellung geeigneter Grundstücke und Gebäude im Rahmen der finanziellen Spielräume der Stadt. Dies erfolgt auf\nder Grundlage einer kontinuierlichen Portfoliooptimierung im immobilen Vermögensbestand zur Anpassung des Vermögens an aktuelle Bedarfsverhältnisse. Dazu gehören die Vorbereitungen und Umsetzungen von\nInvestitions- und Desinvestitionsentscheidungen als auch ein effektives Immobiliencontrolling vor allem unter Berücksichtigung von Stadtentwicklungs- und Wirtschaftlichkeitszielen.", + "erlaeuterungen": "zu Zeile 5:\nDie privatrechtl. Leistungsentgelte beinhalten im Wesentlichen die Erträge aus Mieten, Pachten und Erbbauzinsen.\n\nzu Zeile 13:\nDie Aufwendungen für Sach- und Dienstleistungen setzen sich vor allem aus Aufwendungen für die Unterhaltung bebauter Grundstücke, Reinigungskosten, Energiekosten und Grundbe-\nsitzabgaben zusammen.\n\nzu Zeile 15: Vergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen\nUmfang von rund 98.530 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 16:\nIm Wesentlichen beinhaltet diese Position Aufwendungen für angemietete Gebäude und Feuerversicherung.\n\nzu Zeile 27:\nBei den internen Leistungsbeziehungen werden die Erträge für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet.", + "breakdowns": {} + }, + "0113": { + "pgNumber": "0113", + "name": "Zentrale Dienste", + "beschreibung": "Zur Leistungspalette der Produktgruppe \"Zentrale Dienste\" gehören diverse verwaltungsinterne Dienstleistungen, die allen Ämtern und Einrichtungen der Stadt Münster zur Verfügung stehen. Hierzu zählen im\nEinzelnen:\n\n- Beschaffung und Unterhaltung von Büroausstattung\n- Beschaffung Büromaterial, Dienst- und Schutzkleidung, PKW, Fahrräder\n- zentraler Post- und Zustelldienst\n- zentrale Scanstelle\n- betriebliches Mobilitätsmanagement\n- Druckerei\n- Kantinen incl. interner Veranstaltungsbewirtung", + "erlaeuterungen": "zu Zeile 5:\nDie privatrechtlichen Leistungsentgelte enthalten im Wesentlichen die Verkaufserlöse der Kantine. Des Weiteren sind Entgelte für Lieferungen und Leistungen aus dem Bereich\n\"Expedition & Druck\" veranschlagt.\n\nzu Zeile 6:\nDiese Position wird durch die Erstattungen der citeq für Dienstleistungen im Bereich \"Expedition & Druck\" (Personal- und Sachaufwendungen) geprägt.\n\nzu Zeile 13:\nDie Aufwendungen für Sach- und Dienstleistungen umfassen insbesondere die Aufwendungen für das zentrale und dezentrale amtsinterne IT-Budget, die Aufwendungen für die Bewirt-\nschaftung der Dienstgebäude und Sicherheitsdienstleistungen sowie die Aufwendungen für den Wareneinsatz im Kantinenbereich.\n\nzu Zeile 16:\nDie sonstigen ordentlichen Aufwendungen beinhalten überwiegend die Scankosten, die Aufwendungen für geringwertige Wirtschaftsgüter, die Mietaufwendungen der Hochleistungsdruck-\nkopiersysteme für den Bereich \"Expedition & Druck\" sowie das Büromaterial, welches für die vorgenannten Hochleistungsdruckkopiersysteme eingesetzt wird.\n\nzu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter-\n/Vermietermodells) abgebildet", + "breakdowns": {} + }, + "0114": { + "pgNumber": "0114", + "name": "Verwaltung der Kommunalen Stiftungen", + "beschreibung": "Die Geschäftsstelle steuert und begleitet das Wirken der kommunalen Stiftungen nach den Vorschriften der Gemeindeordnung NW und des Stiftungsgesetzes NW. Zu den Aufgaben gehören\n- die Stiftungszwecke gemäß den Stiftungssatzungen zu erfüllen und die Stiftungserträge im Sinne der Stiftungszwecke zeitnah zu verwenden. Dies geschieht durch die Entwicklung und Durchführung innovativer\nKonzepte für Stiftungsprogramme und Stiftungsprojekte sowie durch die Bereitstellung und den Betrieb von Wohnmöglichkeiten für besondere Bevölkerungsgruppen (z.B. alte Menschen und Menschen mit\nBehinderungen);\n- das in Geld angelegte und das immobile Stiftungsvermögen ertragreich zu bewirtschaften;\n- Öffentlichkeitsarbeit zu betreiben, um die Stiftungsarbeit für die Öffentlichkeit transparent zu machen und potentielle Neu- und Zustiftungen zu gewinnen;\n- Ratsuchende in allen Fragen der Neuerrichtung von Stiftungen oder Zustiftungen zu bestehenden Stiftungen zu beraten.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0115": { + "pgNumber": "0115", + "name": "IT-Management (citeq)", + "beschreibung": "Die Produktgruppe IT-Management beinhaltet im Wesentlichen die Förderungen und Aufwendungen für den Breitbandausbau in Münster und die Ausschüttung der eigenbetriebsähnlichen Einrichtung \"citeq\".\n\nDie \"citeq\" wird gemäß der Eigenbetriebsverordnung sowie nach den Bestimmungen der Betriebssatzung für die \"citeq\" geführt. Zweck der eigenbetriebsähnlichen Einrichtung ist die Erbringung von Dienstleistungen\nim Bereich der Informationstechnologie einschließlich der Kommunikationstechnologie für die Stadt Münster, die übrigen Kooperationspartner (der öffentlich-rechtlichen Vereinbarung) und sonstige Kunden im Rahmen\ndes § 107 der Gemeindeordnung.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0116": { + "pgNumber": "0116", + "name": "Migrations- und Integrationsmanagement", + "beschreibung": "Das Kommunale Integrationszentrum (KI) berät, qualifiziert und vernetzt die professionellen und ehrenamtlichen Organisationen und Träger der Integrationsarbeit in Münster. Die Stadtverwaltung, die externen\nInstitutionen sowie die Bürger*innen werden für die Herausforderungen der Integration sensibilisiert und durch Kooperationen unterstützt.\n\nDie Rahmenbedingungen, Grundlagen und Leitlinien werden durch das Gesetz zur Förderung der gesellschaftlichen Teilhabe und Integration in Nordrhein-Westfalen (Teilhabe- und Integrationsgesetz NRW) sowie das\nLeitbild Migration und Integration Münster (Migrationsleitbild 2025 - 2030) gesetzt. Das KI steuert die vom Rat beschlossene Überarbeitung des Migrationsleitbildes mit breiter stadtgesellschaftlicher Beteiligung im\n5-Jahres-Rhythmus sowie das Integrationsmonitoring.\n\nWesentliche strukturelle Optimierungen soll das Landesprogramm Kommunales Integrationsmanagement NRW bewirken, das vom KI koordiniert wird. Die bei der individuellen Beratung von Menschen mit\nEinwanderungsgeschichte und durch eine intensivere Vernetzung der lokalen Integrationsakteure gewonnenen Erkenntnisse sollen genutzt werden, um systemische Hindernisse zu beseitigen das gemeinsame Ziel zu\nverfolgen: Gleichberechtigte Teilhabe für ALLE.\n\nDie Überprüfung der Erreichung der Arbeitsziele erfolgt über die jährliche Fachdatenerhebung des Landes NRW. Das kontinuierliche städtische Integrationsmonitoring als Beobachtungs- und Steuerungsinstrument\ndes Migrationsleitbildes unterstützt die Ausrichtung kommunalen Handels und trägt dazu bei, kommunale Handlungsbedarfe zu erkennen.", + "erlaeuterungen": "Zu Zeile 15:\nDie Position beinhaltet u. a. folgende Teilbeträge:\n- Zuschuss für das Haus der Familie (Weiterbildung \"Kulturmittlerin\") in Höhe von 23.295 € (2026), 23.487 € (2027)\n- Zuschuss für das Haus der Familie (Weiterbildung \"Kulturmittler\") in Höhe von 30.730 € (2026), 31.001 € (2027)\n- Zuschuss an den Verein Iriba-Brunnen e. V. in Höhe von 9.220 €\n- Zuschuss an die Träger des Case Managements im Programm \"Kommunales Integrationsmanagement NRW!\" in Höhe von 58.200 €\n- Zuschüsse für Einzelprojekte (Projekttöpfe) in Höhe von 41.032 €\n- Weiterleitungsmittel aus dem Ehrenamts-Programm des Landes NRW in Höhe von 58.000 €\n- Weiterleitungsmittel aus dem Programm \"Kommunales Integrationsmanagement NRW\" in Höhe von 85.500 €\n- Finanzierung von Antidiskriminierungsstellen (1,25 VZÄ) in Höhe von 125.000 € (2027)\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": { + "15": [ + { + "name": "Zuschuss für das Haus der Familie", + "values": { + "2026": 23295, + "2027": 23487 + } + }, + { + "name": "Zuschuss für das Haus der Familie", + "values": { + "2026": 30730, + "2027": 31001 + } + }, + { + "name": "Finanzierung von Antidiskriminierungsstellen", + "values": { + "2027": 125000 + } + } + ] + } + }, + "0201": { + "pgNumber": "0201", + "name": "Ordnungsrechtliche Angelegenheiten", + "beschreibung": "Die Produktgruppe umfasst alle von der Stadt Münster als örtliche Ordnungsbehörde und Kreisordnungsbehörde wahrzunehmenden Aufgaben auf der Grundlage von Vorschriften, die die Abwehr von Gefahren und\ndie Beseitigung von Störungen für die öffentliche Sicherheit oder Ordnung zum Gegenstand haben, soweit diese nicht anderen Produktgruppen zugeordnet sind. Neben dem allgemeinen Ordnungsrecht (OBG NW)\nfinden sich die Aufgaben in zahlreichen spezialgesetzlichen Vorschriften des Bundes- und Landesrechts (z.B. Jugendschutzgesetz, Jagd- und Fischereirecht, Immissionsschutzrecht und Ordnungswidrigkeitenrecht)\nsowie des Ortsrechts wieder.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0202": { + "pgNumber": "0202", + "name": "Gewerberechtliche Angelegenheiten", + "beschreibung": "Die Produktgruppe umfasst alle von der Stadt Münster als örtliche Ordnungsbehörde und Kreisordnungsbehörde wahrzunehmenden Aufgaben im Kernbereich des Wirtschaftsverwaltungsrechts (z.B. Gewerberecht,\nGaststättenrecht, Handwerksrecht, Ladenöffnungs- und Feiertagsrecht) und die Durchführung von Märkten und Jahrmärkten (Send). Schwerpunkt der Pflichtaufgaben ist die Überwachung erlaubnisfreier und\nerlaubnispflichtiger Gewerbe und deren Registrierung.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0203": { + "pgNumber": "0203", + "name": "Straßenverkehrsrechtliche Angelegenheiten", + "beschreibung": "Die Produktgruppe umfasst alle von der Stadt Münster als örtliche Ordnungsbehörde und Kreisordnungsbehörde wahrzunehmenden Aufgaben im Bereich der Zulassung von Personen und Fahrzeugen zum\nStraßenverkehr, der Verkehrssicherung und -lenkung sowie der Verkehrsüberwachung auf der Grundlage bundes- und landesgesetzlicher Vorschriften ( Straßenverkehrsgesetz, Fahrzeugzulassungs- und\nStraßenverkehrs-Zulassungsordnung, Fahrerlaubnis-Verordnung, Straßenverkehrs-Ordnung u.a.).", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0204": { + "pgNumber": "0204", + "name": "Bürgerangelegenheiten", + "beschreibung": "Die Produktgruppe umfasst im Wesentlichen die von der Stadt Münster wahrzunehmenden Aufgaben aus den Bereichen des Melderechts, Pass- und Ausweisrechts, Einbürgerungs- und Staatsangehörigkeitsrechts,\nSozialversicherungsrechts (insbesondere Rentenversicherungsrecht), sowie des Fundrechtes. Charakteristisch für die in dieser Produktgruppe zusammengefassten Leistungen sind persönliche Kurzkontakte und das\nwohnortnahe Angebot über die Bezirksverwaltungen. Die Leistungen werden in der Innenstadt und in allen Bezirksverwaltungen angeboten. In dieser Produktgruppe wird auf eine hohe Bürger(Kunden)-orientierung\nabgestellt.", + "erlaeuterungen": "Bei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells).", + "breakdowns": {} + }, + "0205": { + "pgNumber": "0205", + "name": "Standesamtsangelegenheiten", + "beschreibung": "Beim Standesamt werden Ehen geschlossen und Lebenspartnerschaftsregister fortgeführt. Die rechtlichen Voraussetzungen zur Schließung einer Ehe sind zuvor anhand des Heimatrechtes des jeweiligen\nHeiratswilligen zu prüfen. Erfordert die Vorbereitung die Entscheidung eines Oberlandesgerichtes, wird das Verfahren durch das Standesamt initiiert und begleitet.\nAlle Geburten und Sterbefälle in dieser Stadt werden im Standesamt beurkundet. Das Einzugsgebiet der Geburtskliniken deckt inzwischen das gesamte Münsterland und das nördliche Ruhrgebiet ab. Darüber hinaus\nkooperieren die Unikliniken mit Kliniken im Ausland.\nAlle Register - Ehe- und Lebenspartnerschaftsregister, Geburten- und Sterberegister - sind über den gesamten gesetzlichen Fortführungszeitraum bis zu 110 Jahre lang zu aktualisieren: Scheidungen, Tod eines\nEhepartners, Vaterschaftsanerkennungen, Namensänderungen, Eheschließungen von Eltern etc. werden nachgetragen.\nAus allen Registern werden Urkunden ausgestellt.\nWie bei Notaren werden status- und namensrechtliche Erklärungen (Vaterschaftsanerkennungen, Zustimmungserklärungen, Namenserteilungen für Kinder und Erklärungen zur Namensführung in der Ehe) beim\nStandesamt beurkundet.\n\nJeder Standesbeamte und jede Standesbeamtin handelt weisungsunabhängig. Er oder sie ist als Urkundsbeamter nur den Anweisungen des Personenstandsrichters unterworfen. Einheitliches Verwaltungshandeln\ngewährleistet das Standesamt durch interne Beratung und regelmäßige fachliche Schulungen.\n\nIst aus besonderen Gründen der Name eines Münsteraner Bürgers oder einer Münsteraner Bürgerin untragbar, entscheidet das Standesamt auf Antrag des Betroffenen über eine öffentlich-rechtliche\nNamensänderung.", + "erlaeuterungen": "Bei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells).", + "breakdowns": {} + }, + "0206": { + "pgNumber": "0206", + "name": "Ausländerangelegenheiten", + "beschreibung": "Diese Produktgruppe umfasst alle von der Stadt Münster als Ausländerbehörde wahrzunehmenden Aufgaben. Bei der Anwendung der zu Grunde liegenden ausländerrechtlichen Bestimmungen finden die Aufnahme-\nund Integrationsfähigkeit, die wirtschaftlichen und arbeitsmarktpolitischen Interessen sowie die humanitären Verpflichtungen der Bundesrepublik Deutschland Berücksichtigung. Gesetzlicher Auftrag ist es, den Zuzug\nvon Ausländer:innen in die Bundesrepublik Deutschland zu begrenzen und zu steuern. Entsprechend dieser gesetzlichen Pflichtaufgabe wird der Aufenthalt von hier lebenden Ausländer:innen gewährt oder beendet.", + "erlaeuterungen": "Keine", + "breakdowns": {} + }, + "0207": { + "pgNumber": "0207", + "name": "Statistik", + "beschreibung": "Die Produktgruppe Statistik umfasst zwei Produkte:\nDie zentrale Dienstleistung bildet das zielgruppenorientierte Informationsmanagement. Hierzu zählen die Aufbereitung und Bereitstellung von\n- statistischen Daten\n- (kleinräumigen) Bevölkerungsprognosen\n- Raumbezügen mit der kleinräumigen Gebietsgliederung für unterschiedliche Fachthemen und\n- Planungs-, Entscheidungs- und allgemeinen Informationsgrundlagen.\nDas zweite Produkt bilden die Aufgaben der Auftragsstatistik für das Land NRW (Agrar-/Baustatistik, sonstige Pflichterhebungen) und Bereitstellung an IT.NRW.", + "erlaeuterungen": "zu Zeile 28\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells)", + "breakdowns": {} + }, + "0208": { + "pgNumber": "0208", + "name": "Wahlen", + "beschreibung": "Diese Produktgruppe umfasst die rechtmäßige Vorbereitung, Durchführung (Abwicklung) und Nachbereitung aller Wahlen\n(Europawahl, Bundestagswahl, Landtagswahl, Kommunalwahlen, Integrationsrat, Jugendrat sowie Abstimmungen (Bürgerbegehren, Bürgerentscheid, Volksentscheid).", + "erlaeuterungen": "Keine", + "breakdowns": {} + }, + "0209": { + "pgNumber": "0209", + "name": "Brandschutz und feuerwehrtechnische Hilfeleistung", + "beschreibung": "Der Brandschutz und die Hilfeleistung der Feuerwehr umfasst die Aufgabenwahrnehmung der Stadt Münster als Gefahrenabwehrbehörde nach dem Gesetz über den Brandschutz, die Hilfeleistung und den\nKatastrophenschutz (BHKG), dem Gesetz über den Zivilschutz und die Katastrophenhilfe (ZSKG) und der Bauordnung NRW (BauO NRW sowie nach dem Gesetz über Hilfen und Schutzmaßnahmen bei psychischen\nKrankheiten (PsychKG).\n\nSchwerpunkte der Tätigkeiten hierbei sind insbesondere:\n- Rettung von Menschen und Tieren bei Schadenfeuern und/oder technischen Gefahrenlagen\n- Bekämpfung von Schadenfeuern\n- Maßnahmen zur Verhütung von Bränden\n- Hilfeleistung bei Unglücksfällen und bei solchen öffentlichen Notständen, die durch Naturereignisse\nExplosionen oder ähnliche Vorkommnisse verursacht werden\n- Katastrophenschutz / Abwehr von Großeinsatzlagen\n- Zivilschutzmaßnahmen.\n\nDes Weiteren sind den feuerwehrtechnischen Hilfeleistungen auch zugeordnet:\n- Ordnungsbehördliche Durchführung zur sofortigen Unterbringung nach dem PsychKG,\n- Ordnungsbehördliche Maßnahmen bei der Überprüfung von Grundstücken auf Kampfmittel.", + "erlaeuterungen": "zu Zeile 04 und 05:\nBei den Erträgen handelt es sich um öffentlich-rechtliche und privatrechtliche Leistungsentgelte für Feuerwehreinsätze, soweit diese nicht unentgeltlich sind.\n\nzu Zeile 13:\nIn den \"Aufwendungen für Sach- und Dienstleistungen\" sind vornehmlich enthalten:\n- Aufwendungen für die Unterhaltung von Fahrzeugen\n- Aufwendungen für die Unterhaltung der Betriebs- und Geschäftsausstattung\n- Aufwendungen für sonstige Sach- und Dienstleistungen\n\nzu Zeile 16:\nZu den \"Sonstigen ordentlichen Aufwendungen\" zählen insbesondere:\n- Aufwendungen für Dienst- und Schutzkleidung\n- Aufwendungen für Aus- und Fortbildung\n- Aufwendungen für Telekommunikationsleistungen\n- Aufwendungen für die Umlage KSA\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0210": { + "pgNumber": "0210", + "name": "Rettungsdienst", + "beschreibung": "Der Rettungsdienst umfasst die Aufgabenwahrnehmung der Stadt Münster als Träger des Rettungsdienstes nach dem Rettungsgesetz (RettG NRW).\n\nSchwerpunkte der Tätigkeit hierbei sind insbesondere:\n- Organisation des Rettungsdienstes\n- Versorgung von Notfallpatienten\n- Notärztliche Versorgung von Notfallpatienten\n- Transport von Kranken, Verletzten oder sonstigen\nhilfebedürftigen Personen unter fachlicher Betreuung\n- Gefahrenabwehr bei einem Massenanfall von Verletzten\n\nBei dieser Produktgruppe handelt es sich um eine gebührenrechnende Einrichtung, die sich zu 100% aus Gebühreneinnahmen finanziert.", + "erlaeuterungen": "allgemein:\nDas Ergebnis des Teilplanes weicht auf Grund der NKF-Vorschriften vom Ergebnis der Gebührenrechnung ab.\n\nzu Zeile 04:\nBei den öffentlich-rechtlichen Leistungsentgelten handelt es sich um Einnahmen nach der \"Gebührensatzung für den Rettungsdienst der Stadt Münster\".\n\nBenutzungsgebühren ab dem 09.10.2021:\nKrankentransportwagen (KTW) 287,00 Euro\nRettungswagen (RTW) 833,00 Euro\nNotarzteinsatzfahrzeug (NEF) 890,00 Euro\nIntensivtransportwagen (ITW) 1.604,00 Euro\nKm-Gebühr (außerhalb des Stadtgebietes) 3,60 Euro\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0211": { + "pgNumber": "0211", + "name": "Veterinärwesen und Lebensmittelüberwachung", + "beschreibung": "Die Produktgruppe umfasst alle von der Stadt Münster als Kreisordnungsbehörde wahrzunehmenden Aufgaben im Veterinär- und Lebensmittelüberwachungsbereich.\nBegleitend zu den ordnungsbehördlichen Aufgaben führt das Gesundheits- und Veterinäramt in dieser Produktgruppe Beratungen und Öffentlichkeitsarbeit durch. Im Focus der Öffentlichkeit stehen insbesondere die\nTierseuchenbekämpfung und der Verbraucherschutz.", + "erlaeuterungen": "zu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0301": { + "pgNumber": "0301", + "name": "Leistungen für Schulen", + "beschreibung": "Das Amt für Schule und Weiterbildung stellt mit dieser Produktgruppe für die städtischen Schulen den erforderlichen Schulraum, einschließlich der notwendigen Ausstattung und das ergänzende kommunale Personal\nzur Verfügung. Darüber hinaus gestaltet es die schulische Bildung durch Steuerung, Koordination und Impulsgebung.\nHierdurch sollen die Schulen in die Lage versetzt werden,\n- einen den Lehrplänen entsprechenden\n- qualitativ guten\n- die besonderen Rahmenbedingungen und Bedarfe berücksichtigenden\nUnterricht anzubieten und flankierende Angebote zu ermöglichen. Bildungsergänzende Einrichtungen und nichtstädtische Schulen werden unterstützt. Die Aufgabenerledigung erfolgt in Abgrenzung zu den Aufgaben\nund Zuständigkeiten des Landes in Kooperation mit allen handelnden Personen.", + "erlaeuterungen": "zu Zeile 13:\nDie „Aufwendungen für Sach- und Dienstleistungen“ enthalten in 2026/2027 u.a. folgende Teilbeträge:\n- Lernmittel (Schulbücher und digitale LMI) = 1.435.000 Euro (2026), 1.435.000 Euro (2027)\n- Schuletatmittel (Unterricht) = 670.000 Euro (Gesamtsumme: 1.900.000 Euro (2026)), 670.000 Euro (Gesamtsumme: 1.910.000 Euro (2027))\n- Mittel für Medienentwicklungsplan = 4.372.500 Euro (Gesamtsumme: 4.747.500 Euro (2026)), 4.416.650 Euro (Gesamtsumme: 4.791.650 Euro(2027))\n\nzu Zeile 15:\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 3.750 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 16:\nDie „Sonstigen ordentlichen Aufwendungen“ umfassen für 2026/2027 u.a. folgende Teilbeträge:\n- Schuletatmittel (Unterricht) = 1.230.000 Euro (Gesamtsumme: 1.900.000 Euro (2026)), 1.240.000 Euro (Gesamtsumme: 1.910.000 Euro (2027))\n- Beiträge an die Gemeindeunfallversicherung in Höhe von 2.668.400 Euro (2026), 2.668.400 Euro (2027)\n- Mittel für Medienentwicklungsplan 375.000 Euro (Gesamtsumme: 4.747.500 Euro (2026)), 375.000 Euro (Gesamtsumme: 4.791.650 Euro (2027))\n\nzu Zeile 28:\nBei den „Internen Leistungsverrechnungen“ werden folgende Positionen abgebildet:\n- Erträge für die BuT-Lernförderung (Jobcenter) in Höhe von 247.630 Euro (2026), 252.680 Euro (2027)\n- Aufwendungen für die Bereitstellung u. Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter- / Vermietermodells) von\n31.268.000 Euro (2026), 31.268.000 Euro (2027)\n- Aufwendungen für die offenen Ganztagsschulen an Grund- und Förderschulen durch das Amt für Kinder, Jugendliche und Familien (Saldo ohne Gebäudekosten-/aufwand) in\nHöhe von 11.500.000 Euro (2026), 11.800.000 Euro (2027)", + "breakdowns": { + "13": [ + { + "name": "Lernmittel", + "values": { + "2026": 1435000, + "2027": 1435000 + } + }, + { + "name": "Schuletatmittel", + "values": { + "2026": 670000, + "2027": 670000 + } + }, + { + "name": "Mittel für Medienentwicklungsplan", + "values": { + "2026": 4372500, + "2027": 4416650 + } + } + ], + "16": [ + { + "name": "Schuletatmittel", + "values": { + "2026": 1230000, + "2027": 1240000 + } + }, + { + "name": "Beiträge an die Gemeindeunfallversicherung", + "values": { + "2026": 2668400, + "2027": 2668400 + } + }, + { + "name": "Mittel für Medienentwicklungsplan", + "values": { + "2026": 375000, + "2027": 375000 + } + } + ], + "28": [ + { + "name": "Erträge für die BuT-Lernförderung", + "values": { + "2026": 247630, + "2027": 252680 + } + } + ] + } + }, + "0302": { + "pgNumber": "0302", + "name": "Zentrale Leistungen für am Schulleben Beteiligte", + "beschreibung": "Das Amt für Schule und Weiterbildung sorgt mit dieser Produktgruppe für die Bereitstellung von\n- Unterstützungsangeboten\n- Fördermöglichkeiten\n- Beratungsangeboten\n- Schülerbeförderung und\n- sonstigen finanziellen Unterstützungsleistungen für Schüler/innen und am Schulleben Beteiligte und nimmt seit 2012 die Organisation der BuT-Lernförderung im Rahmen von schulnahen Angeboten wahr, deren\nFinanzierung über das Sozialamt/Jobcenter erfolgt.", + "erlaeuterungen": "zu Zeile 13:\nDie \"Aufwendungen für Sach- und Dienstleistungen\" enthalten in 2026/2027 u. a. einen Ansatz von 10.033.000 Euro (2026), 9.984.000 Euro (2027) für Schülerfahrkosten.\n\nzu Zeile 28:\nBei den \"internen Leistungsverrechnungen\" werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mie-\nter-/Vermietermodells) in Höhe von 90.810 Euro (2026), 90.810 Euro (2027) abgebildet.", + "breakdowns": {} + }, + "0401": { + "pgNumber": "0401", + "name": "Kulturmanagement / Kulturförderung", + "beschreibung": "Ausgangspunkt von Kulturmanagement/Kulturförderung ist das Kooperationsgeflecht von Einrichtungen untereinander, mit der Stadt, aber auch mit der kulturellen Szene außerhalb von Institutionen. Aufgabe ist es,\nAkteur*innen miteinander in Verbindung zu bringen, in die Stadt zu integrieren, Synergien zu entdecken und Experimente zu wagen. In enger Abstimmung und Anbindung an die Kulturträger und die Kulturpolitik\nwerden im Rahmen von Kulturmanagement/Kulturförderung Förderstrukturen und -konzepte entwickelt sowie Qualifizierungs- und Arbeitsmöglichkeiten für Künstler*innen geschaffen.", + "erlaeuterungen": "zu Zeile 15:\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmä-\nßigen Umfang von rund 162.850 Euro (2026) und 149.720 Euro (2027) durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbau-\nrechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abge-\nbildet (Umsetzung des Mieter-/Vermietermodells).\n\nallgemein:\nDie unterschiedliche Höhe der geplanten Erträge und Aufwendungen in den einzelnen Jahren beruht im Wesentlichen auf der Durchführung des Int. Jazzfestivals, das\nim Biennale-Rhythmus stattfindet.", + "breakdowns": {} + }, + "0402": { + "pgNumber": "0402", + "name": "Volkshochschule", + "beschreibung": "Die Volkshochschule ist kommunales Dienstleistungszentrum für Bildung, Begegnung und Kultur. Sie erfüllt den im Weiterbildungsgesetz NRW beschriebenen Auftrag und schafft sowohl ein nachfrageorientiertes als\nauch ein Interesse weckendes Angebot für alle Bevölkerungsgruppen. In Projekten erprobt sie neue Methoden und Konzepte der Weiterbildung. Mit speziellen Angeboten reagiert sie auf die besonderen\nWeiterbildungs- und Beratungsbedarfe relevanter Adressat*innengruppen. Sie kooperiert in Netzwerken der regionalen und überregionalen Bildungslandschaft um ihren Auftrag innovativ und ressourcenschonend zu\nerfüllen.", + "erlaeuterungen": "zu Zeile 2:\nDie \"Zuwendungen und allgemeinen Umlagen\" enthalten die Landeszuweisung nach dem Weiterbildungsgesetz (WbG) in Höhe von 750.000 Euro (2026), 750.000 Euro (2027)\n\nzu Zeile 5:\nDie \"Privatrechtlichen Leistungsentgelte\" enthalten u. a. die Teilnehmerentgelte in Höhe von 1.965.000 Euro (2026), 1.965.000 Euro (2027)\n\nzu Zeile 16:\nDie \"Sonstigen ordentlichen Aufwendungen\" umfassen für 2026/2027 u. a. die Honorare für Dozentinnen und Dozenten in Höhe von 1.207.760 Euro/1.207.760 Euro\n\nzu Zeile 28:\nBei den intenen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Amt für Immobilenmanagement (Umsetzung des\nMieter-/Vermietermodells) in Hölhe von 813.220 Euro (2026), 813.220 Euro (2027) abgebildet.", + "breakdowns": {} + }, + "0403": { + "pgNumber": "0403", + "name": "Westf. Schule f. Musik u. Förd.der Stadtteilmusikschulen", + "beschreibung": "Die Westfälische Schule für Musik ist eine öffentliche Bildungseinrichtung für Kinder, Jugendliche und Erwachsene. Ihre Aufgaben sind:\n- kulturelle Grundversorgung auf dem Gebiet der musikalischen Bildung,\n- Befähigung zum aktiven Musizieren durch individuelle, inklusive und vielschichtige Angebote,\n- Förderung des Ensemblespiels,\n- Begabtenförderung und Berufsvorbereitung,\n- Mitgestaltung des münsterschen Musiklebens sowie innerhalb der kulturellen Bildungslandschaft Münsters eigene Akzente in der Darstellung Münsters als Kulturstadt.\n\nDie Westfälische Schule für Musik trägt mit ihrem Leistungsangebot zur Förderung von sozialer Kompetenz, Kreativität und Lernfähigkeit bei.\n(Anmerkung: Kinder und Jugendliche i.S. dieser Produktgruppe sind Kinder und Jugendliche unter 18 Jahren und darüber hinaus, soweit ein Kindergeldanspruch besteht.)", + "erlaeuterungen": "zu Zeile 2:\nZu den Zuwendungen und allgemeinen Umlagen gehört ein Landeszuschuss für die regelmäßige Musikschularbeit und zu Förderprojekten sowie ein Zuschuss zum Klassikpreis.\n\nzu Zeile 15:\nVon den Transferaufwendungen entfallen\n2026 1.097.570 EUR\n2027 1.115.980 EUR\n2028 1.059.720 EUR\n2029 1.078.800 EUR\n2030 1.098.220 EUR auf die Förderung der Stadtteilmusikschulen in freier Trägerschaft.\nDie Transferaufwendungen enthalten außderdem Zuschüsse an den Regional-Wettbewerb \"Jugend musiziert\" und für den Landeswettbewerb \"Jugend musiziert\", der 2028 in Münster\nausgetragen wird.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0404": { + "pgNumber": "0404", + "name": "Stadtbücherei u. Förderung v. Büchereien freier Träger", + "beschreibung": "Die Produktgruppe beinhaltet den Betrieb der Stadtbücherei mit einem zentralen Standort, fünf Stadtteilbüchereien und einem Bücherbus für Einwohnerinnen und Einwohner der Stadt Münster und des Umlandes.\nDarüber hinaus ist in dieser Produktgruppe auch die kooperative Förderung von Stadtteilbüchereien freier Träger in Hiltrup (St. Clemens) und Gievenbeck (St. Michael) sowie die Zuschussgewährung für öffentliche\nBüchereien freier Träger zum Aufbau des Buch- und Medienangebotes erfasst.", + "erlaeuterungen": "zu Zeile 04:\nBei den öffentlich-rechtlichen Leistungsentgelten handelt es sich um Gebühren gemäß § 12 der Benutzungs- und Gebührenordnung für die Stadtbücherei.\n\nzu Zeile 05:\nZu den privatrechtlichen Leistungsentgelten gehören Erlöse aus dem Verkauf von Büchern, durch zusätzliche Veranstaltungen, Vermietung von Räumen und Kopierentgelte.\n\nzu Zeile 07:\nBei den sonstigen ordentlichen Erträgen handelt es sich um Schadenersatz für Bücher und Medien.\n\nzu Zeile 13:\nIn den Aufwendungen für Sach- und Dienstleistungen des Jahres 2026 sind für die Beschaffung von Medien (einschließlich e-Medien) für die\nHauptstelle (einschl. Bücherbus) 221.842 Euro\nLizenzen für e-Medien 98.500 Euro\nLizenzen für digitale Angebote 91.000 Euro\nMedienservice für Schulen 29.700 Euro\nZweigstelle Aaseemarkt 16.251 Euro\nZweigstelle Hansaplatz 14.595 Euro\nZweigstelle Coerdemarkt 11.974 Euro\nZweigstelle Kinderhaus 14.595 Euro\nZweigstelle Gievenbeck 19.084 Euro enthalten.\n\nDie Verteilung der Mittel für die Beschaffung von Medien für das Jahr 2027 wird anhand von Ausleih- und Besucherstatistiken des Jahres 2026 ermittelt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmangement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0405": { + "pgNumber": "0405", + "name": "Stadtmuseum", + "beschreibung": "Das Stadtmuseum soll die Geschichte der Stadt Münster auf der Grundlage wissenschaftlicher Forschung in populärer Gestalt deutlich machen. Dies erfolgt durch\n- Sammeln, Bewahren, Erforschen und Dokumentieren des städtischen Kunstbesitzes,\n- Weiterentwicklung der ständigen Ausstellung,\n- Sonderausstellungen zu besonderen Themen und Anlässen,\n- Führungen, Veranstaltungen und Publikationen,\n- museumspädagogische Angebote,\n- Erforschung und Bewahrung des Mahnmals und der Gedenkstätte \"Zwinger\" incl. Führungen.", + "erlaeuterungen": "zu Zeile 5:\nVon den 219.830 Euro entfallen 119.950 Euro auf Verkaufserlöse im Museumsshop, 75.000 Euro auf das \"Pay what you want\"-System und 24.880 Euro auf Führungsentgelte (im Stadt-\nmuseum und im Zwinger).\n\nzu Zeile 13:\nDie Aufwendungen für Sach- und Dienstleistungen enthalten unter anderem\n- 278.790 Euro für die Bewachung des Stadtmuseums\n- 68.000 Euro für Waren für den Museumsshop\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung der Gebäude Stadtmuseum Münster durch das Immobilienmanagement\nabgebildet (Umsetzung des Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0406": { + "pgNumber": "0406", + "name": "Stadtarchiv", + "beschreibung": "Die Produktgruppe beinhaltet die archivfachliche Aufgabenerfüllung nach den gesetzlichen Vorgaben (Archivgesetz NRW) und der Archivsatzung vom 23.06.2021. Darunter ist folgendes zu fassen: Bewertung,\nÜbernahme, Erhalt und Erschließung amtlicher und nichtamtlicher Unterlagen, die Beratung und Betreuung der Nutzenden des Stadtarchivs sowie die Erforschung, Dokumentation und Vermittlung der\nStadtgeschichte.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0407": { + "pgNumber": "0407", + "name": "Theater Münster", + "beschreibung": "Die Produktgruppe Theater Münster beinhaltet im Wesentlichen den Zuschuss an die eigenbetriebsähnliche Einrichtung \"Theater Münster\".\n\nDas \"Theater Münster\" wird gemäß der Eigenbetriebsverordnung sowie nach den Bestimmungen der Betriebssatzung für das \"Theater Münster\" geführt. Zweck der eigenbetriebsähnlichen Einrichtung ist die Förderung\ndes kulturellen Lebens durch die Erbringung eigener Leistungen und die Unterstützung Dritter.\n\nEs besteht ein aktuell gültiger Managementkontrakt mit einer Laufzeit bis zum 31.08.2027.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0408": { + "pgNumber": "0408", + "name": "Geschichtsort Villa ten Hompel", + "beschreibung": "Die Villa ten Hompel - ehemaliges Fabrikantenwohnhaus, Sitz der Ordnungspolizei im Nationalsozialismus, Dienstsitz für Entnazifizierungsfragen und anschließend Dezernat für Wiedergutmachung für NS-Opfer im\nNachkriegsdeutschland - ist heute ein Geschichtsort, der sich seit seiner Gründung im Jahr 1999 schwerpunktmäßig mit der Zeit des Nationalsozialismus und seiner Vor- und Nachgeschichte beschäftigt. Die Villa ten\nHompel ist nicht nur ein Museum und Forschungsinstitut, sondern auch ein kommunikativ ausgerichteter, im kommunalen Gemeinwesen fest verankerter Sammlungs-, Dokumentations- und Lernort. Die hier\nentwickelten Bildungsangebote richten sich an Schulen und Hochschulen, sind aber ebenso für unterschiedliche Berufsgruppen wie Polizei oder Pflege konzipiert. Kennzeichnend für die historisch-politische Bildung\nam Geschichtsort Villa ten Hompel ist ihre methodisch und thematisch breite Ausrichtung: Kommunikation, Multiperspektivität und Gegenwartsorientierung sind die drei zentralen Komponenten, die für die Arbeit in der\nVilla ten Hompel kennzeichnend sind. Kern sind Präventionsstrategien gegen Antisemitismus, Rassismus und Gewalt.", + "erlaeuterungen": null, + "breakdowns": {} + }, + "0501": { + "pgNumber": "0501", + "name": "Leistungen der Grundsicherung für Arbeitsuchende", + "beschreibung": "Bestandteil dieser Produktgruppe sind die Leistungen an Leistungsberechtigte der Grundsicherung für Arbeitssuchende - Zweites Buch Sozialgesetzbuch (SGB II).\nHierzu gehören neben den Leistungen zur Sicherung des Lebensunterhaltes,\nLeistungen zur Eingliederung in den Arbeitsmarkt, Leistungen für Bildung und Teilhabe und arbeitsmarktpolitische Projekte des Jobcenters sowie mit kommunalen Haushaltsmitteln geförderte\nBeschäftigungsverhältnisse.\n\nErforderliche Leistungen werden unter Berücksichtigung der Grundsätze von Wirtschaftlichkeit und Sparsamkeit erbracht. Passgenaue Unterstützung der erwerbsfähigen Leistungsberechtigten und den mit ihnen in\neiner Bedarfsgemeinschaft lebenden Personen sollen die nachhaltige Heranführung und Eingliederung in den Arbeitsmarkt fördern und so Hilfebedürftigkeit verringern oder beenden und Langzeitarbeitslosigkeit\nvermeiden.\n\nZu der abgebildeten Zielkennzahl zur Veränderung des Bestands an Langzeitleistungsbeziehenden wird mit dem Ministerium für Arbeit, Gesundheit und Soziales in Nordrhein-Westfalen (MAGS NRW) regelmäßig\njeweils zum Jahresende eine Zielvereinbarung für das Folgejahr abgeschlossen. Im Rahmen der im vierten Quartal eines Jahres im ASGVAf beschlossenen Zielkorridore werden Zielverhandlungen mit dem MAGS\nNRW geführt. Zur endgültigen Zielvereinbarung kann frühestens im ersten Quartal des Folgejahres berichtet werden. Auf Grund der nicht konform verlaufenden Planungszeitpunkte können die in der Zielvereinbarung\nfestgelegten Kennzahlen von den hier abgebildeten Quoten abweichen.", + "erlaeuterungen": "zu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter-\n/Vermietermodells) und die Erträge/Aufwendungen aus den mit den anderen Ämtern abzurechnenden Leistungen abgebildet.", + "breakdowns": {} + }, + "0502": { + "pgNumber": "0502", + "name": "Sicherung des Lebensunterhalts", + "beschreibung": "Diese Produktgruppe umfasst die gesetzlichen Aufgaben der Stadt Münster zur Existenzsicherung für bedürftige Personen.\nHierzu gehören insbesondere Leistungen nach dem SGB XII, Asylbewerberleistungsgesetz (AsylbLG) und dem Bundesausbildungsförderungsgesetz (BAföG).", + "erlaeuterungen": "zu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement (Umsetzung des Mieter-\n/Vermietermodells) und die Erträge/Aufwendungen aus den mit dem Jobcenter abzurechnenden Leistungen abgebildet.", + "breakdowns": {} + }, + "0503": { + "pgNumber": "0503", + "name": "Sicherung besonderer sozialer Bedarfe", + "beschreibung": "Zu dieser Produktgruppe gehören zum einen Leistungen nach den Sozialgesetzbüchern bei Pflegebedürftigkeit, Behinderung, zur Gesundheit, bei Wohnungslosigkeit sowie in anderen persönlichen/sozialen\nProblemsituationen und zum anderen die Bereitstellung bzw. Förderung weiterer sozialer Dienstleistungsangebote und Infrastruktur.", + "erlaeuterungen": "zu Zeile 2:\nIn den Zuwendungen und allgemeine Umlagen ist für die Jahre 2026 und 2027 jeweils eine Zuwendung für das Sozialticket NRW (Münster-Pass) in Höhe von 534.370 € enthalten.\n\nzu Zeile 15:\nIn den Transferaufwendungen ist für das Jahr 2026 ein Betrag in Höhe von 997.750 € und für das Jahr 2027 ein Betrag in Höhe von 777.750 € für den Münster-Pass enthalten.\n\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 5.070 € durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0504": { + "pgNumber": "0504", + "name": "Wohngeld", + "beschreibung": "Wohngeld ist ein vom Bund und dem Land NRW jeweils zur Hälfte getragener Zuschuss zu den Wohnkosten. Es wird für Mieterinnen und Mieter als Mietzuschuss und für Eigentümerinnen und Eigentümer selbst\ngenutzten Wohnraums als Lastenzuschuss gewährt. Mit der Leistung von Wohngeld trägt das Amt für Wohnungswesen und Quartiersentwicklung dazu bei, dass einkommensschwache Haushalte ihre Wohnkosten\ntragen können.", + "erlaeuterungen": "zu Zeile 13:\nFür das Jahr 2026 werden 200.000 Euro für den Einsatz von Künstlicher Intelligenz bei der Wohngeldbearbeitung bereitgestellt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0601": { + "pgNumber": "0601", + "name": "Förderung von Kindern in Tagesbetreuung", + "beschreibung": "Kindertageseinrichtungen und Kindertagespflege haben einen eigenständigen Bildungs-, Erziehungs- und Betreuungsauftrag. Sie ergänzen damit frühzeitig die Förderung\ndes Kindes in der Familie und unterstützen Eltern in der Erziehungsaufgabe. Dadurch leisten sie einen wichtigen Beitrag zur Prävention und zum Kinderschutz.\nDie Förderung der Persönlichkeitsentwicklung des Kindes sowie die Beratung und Information der Eltern insbesondere in Fragen der Bildung und Erziehung gehören\nzu deren Kernaufgaben. Die Zusammenarbeit von Kindertageseinrichtungen und Kindertagespflege soll\ngefördert werden.\nGesetzliche Grundlagen: §§ 22 - 26 SGB VIII", + "erlaeuterungen": "zu Zeile 2:\nDiese Position beinhaltet im Wesentlichen die gesetzlichen Zuweisungen des Landes zu den Betriebskosten von Kindertageseinrichtungen und Kindertagespflege. Zur Detailplanung wird\ninsbesondere auf die Vorlage V/00642/2025 „Genehmigung der Pauschalmeldung gemäß § 33 KiBiz für das Kindergartenjahr 2026/2027“ verwiesen.\n\nFür die Planung der Ansätze für ein Haushaltsjahr ist dabei immer die Entwicklung innerhalb von zwei anteiligen Kindergartenjahren (z. B. 7/12 des Kindergartenjahres 2025/2026 und\n5/12 des Kindergartenjahres 2026/2027) zu berücksichtigen. Des Weiteren ist zu berücksichtigen, dass das Land ein Jahr nach der Endabrechnung für ein Kindergartenjahr seinen Rück-\nforderungsanspruch verrechnet.\n\nzu Zeile 3:\nEs handelt sich überwiegend um die Kostenbeiträge zur Tagespflege.\n\nzu Zeile 4:\nBei den öffentlich-rechtlichen Leistungsentgelten handelt es sich um die Elternbeiträge für den Besuch von Kindertageseinrichtungen. Grundlage für die Bildung der Haushaltsansätze sind\ndie für das abgeschlossene Haushaltsjahr festgesetzten Elternbeiträge sowie die für das laufende Jahr hochgerechnete Prognose. Darüber hinaus sind die aktuellen Satzungen sowie die\nfür den Betrachtungszeitraum wichtigen Änderungen (z. B. gesetzliche Neuregelungen) zu berücksichtigen.\n\nzu Zeile 5:\nDiese Position beinhaltet überwiegend die Verpflegungskosten in städtischen Kindertageseinrichtungen.\n\nzu Zeile 15:\nDiese Position beinhaltet im Wesentlichen\n- die gesetzlichen Zuschüsse zu den Betriebskosten von Kindertageseinrichtungen freier Träger,\n- freiwillige städtische Zuschüsse zum Betrieb von Kindertageseinrichtungen freier Träger,\n- Maßnahmen im Rahmen des u3-Programms,\n- die Förderung von Tagespflegestellen und\n- wirtschaftliche Hilfen für Kinder in Tageseinrichtungen.\n\nBei der Ansatzbildung wird der aktuelle Planungsstand bei den Investitionsmaßnahmen (Inbetriebnahme neuer Kindertageseinrichtungen) berücksichtigt.\n\nWeitere Einzelheiten sind dem Bericht über die Vergabe von Zuschüssen an Vereine, Vereinigungen und Verbände zu entnehmen.\n\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 314.860 Euro (2026) und 313.390 Euro (2027) durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nHaushaltsplan 2026 Förderung von Kindern in Tagesbetreuung Dezernat IV\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0602": { + "pgNumber": "0602", + "name": "Kinder- und Jugendarbeit", + "beschreibung": "Die Kinder- und Jugendarbeit gliedert sich in Angebote der offenen Kinder- und Jugendarbeit (OKJA) und der Jugendverbandsarbeit. Die Angebote werden durch die freien und den öffentlichen Träger der Jugendhilfe\nvorgehalten (§§ 11, 12 SGB VIII).\nAn 47 Grund- und Förderschulen wird der Offene Ganztag durchgeführt (§ 9 SchulG, BASS 12 - 63 Nr. 2).", + "erlaeuterungen": "zu Zeile 2:\nDiese Position beinhaltet im Wesentlichen die Zuwendungen des Landes zum Betrieb der Jugendeinrichtungen und der offenen Ganztagsschule.\n\nzu Zeile 5:\nBei den privatrechtlichen Leistungsentgelten handelt es sich um die Entgelte für die Nutzung von Angeboten der städtischen Jugendeinrichtungen.\n\nzu Zeile 15:\nDiese Position beinhaltet die Zuschüsse an freie Träger der offenen Kinder- und Jugendarbeit einschließlich der Zuschüsse im Rahmen der Richtlinie zur Förderung der Kinder- und\nJugendarbeit. Ebenso sind an dieser Stelle die Aufwendungen für die OGS in freier Trägerschaft veranschlagt.\nWeitere Einzelheiten sind dem Zuschussbericht zu entnehmen.\n\nzu Zeile 16:\nDiese Position beinhaltet u. a. die Beschäftigungsentgelte, Programm- und Betriebsmittel der städtischen Jugendeinrichtungen sowie der offenen Ganztagsschule.\n\nzu Zeile 27:\nBei den Erträgen aus internen Leistungsbeziehungen handelt es sich um die Kosten für den Betrieb der offenen Ganztagsschulen, die im Sinne einer verursachungsgerechten Darstellung\nvon der Produktgruppe 0301 „Leistungen für Schulen“ erstattet werden.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0603": { + "pgNumber": "0603", + "name": "Förderung von benachteiligten jungen Menschen", + "beschreibung": "Junge Menschen, die individuell beeinträchtigt und/oder sozial benachteiligt sind, werden durch die Angebote von freien Trägern und dem öffentlichen Träger der Jugendhilfe gefördert. Aufgabe ist es, jungen\nMenschen zum Ausgleich sozialer Benachteiligungen oder zur Überwindung individueller Beeinträchtigungen sozialpädagogische Hilfen anzubieten.\nGesetzliche Grundlage: §§ 13, 13a SGB VIII", + "erlaeuterungen": "zu Zeile 2:\nDiese Position beinhaltet vor allem die Zuwendungen des Landes für die Drogenhilfe Münster.\n\nzu Zeile 15:\nDiese Position beinhaltet im Wesentlichen die Zuschüsse an freie Träger im Bereich der Jugendsozialarbeit, der Jugendhilfe an den Schulen und der Drogenhilfe.\nWeitere Einzelheiten sind dem Zuschussbericht zu entnehmen.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0604": { + "pgNumber": "0604", + "name": "Familienförderung", + "beschreibung": "Familienförderung umfasst die allgemeine Förderung der Erziehung in der Familie. Leistungen zur Förderung der Erziehung in der Familie sind insbesondere Bildungs- und- und Beratungsangebote zur Vermittlung\nerzieherischer Kompetenz sowie zur Stärkung der Erziehungskraft und des Selbsthilfepotentials.\nZu dieser Produktgruppe gehören zudem die Bereiche der Frühen Hilfen und der Präventionskette. Die Frühe Hilfen umfassen die Lebensphasen ab Geburt und die der ersten drei Lebensjahre. Innerhalb der\nPräventionskette werden zudem die Lebensphasen über die frühe Kindheit hinaus bis zur Volljährigkeit in den Blick genommen. Beides sind Unterstützungssysteme mit koordinierten Hilfsangeboten, häufig in\nKooperation mit der Familienbildung und den Erziehungsberatungsstellen der freien Träger. Ein weiterer Baustein sind die Angebote des Familienbüros, die der frühseitigen Unterstützung und Beratung junger Familien\nin Münster dienen.\nEbenfalls zu dieser Produktgruppe zählen die Elterngeldstelle, die Eltern und Arbeitgeber/-innen zu Fragen und Möglichkeiten der Elternzeit und des Elterngelds berät.\nGesetzliche Grundlagen: §§ 16 (Allgemeine Förderung der Erziehung in der Familie), 17 (Beratung in Fragen der Partnerschaft, Trennung und Scheidung) und 18 (Beratung\nund Unterstützung bei der Ausübung der Personensorge und des Umgangsrechts) SGB VIII, Bundeselterngeld- und Elternzeitgesetz (BEEG), Gesetz zur Kooperation und Information im Kinderschutz (KKG)", + "erlaeuterungen": "zu Zeile 15:\nDiese Position beinhaltet die Zuschüsse an freie Träger im Bereich der Familienförderung.\nWeitere Einzelheiten sind dem Bericht über die Vergabe von Zuschüssen an Vereine, Vereinigungen und Verbände zu entnehmen.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0605": { + "pgNumber": "0605", + "name": "Erzieherische und wirtschaftliche Hilfen für Familien", + "beschreibung": "Die Leistungen dieser komplexen Produktgruppe umfassen den gesamten pädagogischen und wirtschaftlichen Bereich der ambulanten und stationären Hilfen zur Erziehung\n(HzE), der Eingliederungshilfen und Adoptionsaufgaben. Ferner gehören dazu die aufsuchenden Tätigkeiten der Bezirkssozialarbeit in den Stadtteilen einschließlich\neiniger Serviceaufgaben für das Sozialamt, die Wahrnehmung der Gerichtshilfen (Familien- und Jugendgericht) und des Kinderschutzes.\nEbenso zählen dazu auch die Aufgaben der Beistandschaften und des Unterhaltsvorschusses.\nGesetzliche Grundlagen:\n§§ 8a, 14, 18, 19, 20, 21, 27 - 35, 35a, 39 - 42, 50 - 52a, 55, 58a, 59 - 60, 85 - 97 SGB VIII, § 1712 BGB, SGB XII und Unterhaltsvorschussgesetz (UVG).", + "erlaeuterungen": "zu Zeile 3:\nDiese Position umfasst die Beiträge und Kostenerstattungen für geleistete Hilfen zur Erziehung, soweit sie nicht von öffentlichen Trägern sozialer Leistungen getragen werden.\n\nzu Zeile 6:\nEs handelt sich um Kostenerstattungen vom Land, vom Landschaftsverband oder von Gemeinden für geleistete Hilfen zur Erziehung.\n\nzu Zeile 13:\nDiese Position beinhaltet im Wesentlichen Kostenerstattungen an das Land, den Landschaftsverband oder an Gemeinden für geleistete Hilfen zur Erziehung.\n\nzu Zeile 15:\nDiese Position umfasst im Wesentlichen\n- die Leistung der ambulanten und stationären Hilfen zur Erziehung,\n- Unterhaltsvorschussleistungen und\n- Zuschüsse an freie Träger in den Bereichen Erziehungshilfen, Betreuungsvereine, Schutz von Kindern und Jugendlichen sowie Jugendgerichtshilfe.\n\nGrundsätzliche Kostensteigerungen ergeben sich u.a. durch Entgeltzahlungen an freie Träger (ambulante und stationäre Hilfen zur Erziehung), die sich durch Personalkos-\ntensteigerungen in Anlehnung an den TVöD bzw. kirchliche Tarifverträge ergeben.\n\nWeitere Einzelheiten sind dem Bericht über die Vergabe von Zuschüssen an Vereine, Vereinigungen und Verbände zu entnehmen.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0701": { + "pgNumber": "0701", + "name": "Gesundheitsdienste", + "beschreibung": "Hauptaufgabe des Gesundheits- und Veterinäramtes als untere Gesundheitsbehörde ist es, die Gesundheit der Bevölkerung zu erhalten, zu schützen und zu fördern. Dazu werden die gesundheitlichen Verhältnisse\nund Versorgungsstrukturen erfasst, bewertet und fortentwickelt. Gesundheitsrisiken oder Ansteckungsgefahren für die Bevölkerung werden durch Prävention, Aufklärung und qualitätssichernde Maßnahmen verhindert\nbzw. begrenzt. Das Amt wirkt auf eine angemessene gesundheitliche Versorgung insbesondere für Menschen in gesundheitlichen und sozialen Problemlagen hin. Ärztliche Zeugnisse und Gutachten werden als\nEntscheidungshilfe im Auftrag der Ämter der Stadtverwaltung und anderer Behörden erstellt.", + "erlaeuterungen": "zu Zeile 15:\nDiese Position beinhaltet im Wesentlichen die Krankenhausumlage mit 5,3 Mio. Euro.\n\nzu Zeile 27, 28:\nBei den internen Leistungsbeziehungen werden die Erträge aus den mit dem Jobcenter abzurechnenden Leistungen und die Aufwendungen für die Bereitstellung und Bewirtschaftung von\nGebäuden durch das Immobilienmanagement abgebildet (Umsetzung des Mieter-/Vermietermodells).\n.", + "breakdowns": {} + }, + "0801": { + "pgNumber": "0801", + "name": "Sportinfrastruktur,Sportförderung,Sportveranstaltungen", + "beschreibung": "Der Verfassungsauftrag, den Sport zu pflegen und zu fördern, wird auf der Basis des Subsidiaritätsprinzips umgesetzt. Mit der \"Integrierten gesamtstädtischen Sportentwicklungsplanung\" wird der Weiterentwicklung\ndes Sports in Münster Rechnung getragen. Ziel ist die Beteiligung und Berücksichtigung des Sports im Rahmen des integrierten Stadtentwicklungskonzepts, um allen Menschen in Münster ein vielfältiges Sportangebot\nanbieten zu können und somit die Lebensqualität in der Stadt zu erhöhen. Dazu gehört:\n- die inhaltliche Gestaltung der Förderstrukturen für den Sport in Münster sowie die Weiterentwicklung der Sportstätteninfrastruktur\n- die Infrastruktur an städtischen und vereinseigenen Turn- und Sporthallen, Sportanlagen und -plätzen sowie Sondersportanlagen bedarfsorientiert zu sichern und gegebenenfalls auszubauen\n- die infrastrukturelle und organisatorische Sicherung des Schulsports bei gleichzeitiger Initiierung der inhaltlichen Weiterentwicklung sowie die Förderung von Bewegungserziehung im Vorschulalter und\nFörderangebote vom Grundschulalter bis zum Übergang an weiterführende Bildungseinrichtungen\n- die Mitgestaltung des Stadtmarketings mit und durch Sport im Rahmen von Großveranstaltungen im Leistungs-/Breiten- und Freizeitsportbereich, um den Sport als attraktiven Standortfaktor für die Bürgerschaft zu\nsichern.", + "erlaeuterungen": "Die in der Zeile 15 - Transferaufwendungen - genannte Summe ist im Zuschussbericht detailliert dargestellt.\n\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 34.240 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).", + "breakdowns": {} + }, + "0802": { + "pgNumber": "0802", + "name": "Bäder", + "beschreibung": "Das Sportamt unterhält und betreibt zur Sicherung angemessener Schwimm- und Bademöglichkeiten sieben Hallenbäder und drei Freibäder.\nErgänzend fördert das Sportamt das vereinseigene Freibad der Schwimmvereinigung Münster von 1891 e. V in Sudmühle und das Bad der Bürgerbad Handorf gGmbH.", + "erlaeuterungen": "Die in der Zeile 15 - Transferaufwendungen - genannte Summe ist im Zuschussbericht detailliert dargestellt.\n\nzu Zeile 15:\nVergünstigungen: Ergänzend zu den in den Transferaufwendungen enthaltenen Zuschüssen werden Vereine, Verbände und andere Organisationen in einem wertmäßigen Umfang von\nrund 7.430 Euro durch die vergünstigte Bereitstellung von Immobilien im Rahmen von Miet-, Pacht- und Erbbaurechtsverträgen unterstützt.\n\nzu Zeile 28:\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter-/Vermietermodells).\n\nAnmerkung:\nMit der Umstellung auf einen produktorientierten Haushalt im Rahmen der Einführung des Neuen Kommunalen Finanzmanagements (NKF) sind die Ausschüttungen der \"Stadtwerke\nMünster GmbH\" an den Betrieb gewerblicher Art (BgA) \"Bäder\" sowie die damit im Zusammenhang stehenden Ertragssteuern bzw. Steuererstattungen in der Produktgruppe 1501 \"Anteile\nan Unternehmen\" auszuweisen. Ausschlaggebend hierfür sind die im Einvernehmen mit dem Innenministerium bekannt gegebenen Zuordnungsvorschriften zum finanzstatistischen Pro-\nduktrahmenplan, nach dem die Ressourcen- bzw. Finanzbeziehungen mit Unternehmen in der Produktgruppe 1501 \"Anteile an Unternehmen\" abzubilden sind.\n\nUnabhängig von der Abbildung der Ausschüttungen der \"Stadtwerke Münster GmbH\" und der damit im Zusammenhang stehenden Ertragsteuern bzw. Steuererstattungen in\nder Produktgruppe 1501 \"Anteile an Unternehmen\" aufgrund der Vorgaben des Produktrahmenplans bleibt der BgA \"Bäder\" alleiniger Anteilseigner der \"Stadtwerke Münster\nGmbH\".", + "breakdowns": {} + }, + "0901": { + "pgNumber": "0901", + "name": "Stadt- und Regionalentwicklung, Stadtplanung", + "beschreibung": "Die Produktgruppe umfasst\n- die Münster-spezifischen Aufgaben bei der Regional- und Stadtumlandentwicklung\n- Geschäftsführung und Stadtentwicklungsaufgaben in der Stadtumlandentwicklung der Stadtregion Münster,\n- Geschäftsführung und Stadtentwicklungsaufgaben für das landesweite Netzwerk Stadtentwicklung NRW,\n- die Aufgaben der konzeptionellen, räumlichen und bürgerorientierten Stadt- und Stadtteilentwicklung\n- die Aufgaben der vorbereitenden und der verbindlichen Bauleitplanung (Flächennutzungs- und Bebauungsplanung), einschließlich sonstiger städtebaulicher Satzungen\n- die Aufgaben stadtplanerischer und städtebaulicher Standort- und Projektentwicklungen\n- die Aufgaben der Stadterneuerung und der Stadtgestaltung\n- Vollzug der Sozialen Erhaltungssatzung\n- die Aufgaben der strategischen integrierten und nachhaltigen Stadtentwicklung\n- die Aufgaben der wissensbasierten Stadtentwicklung und kooperativen Wissenschaftsentwicklung\n- die Aufgaben der klimagerechten Stadtentwicklung\n- die Aufgaben der Stadtentwicklung im digitalen Zeitalter (Smart City)\n- die Aufgaben der mitgestaltenden Öffentlichkeitsbeteiligung (analog, digital)", + "erlaeuterungen": "zu Zeile 28\nBei den internen Leistungsbeziehungen werden die Aufwendungen für die Bereitstellung und Bewirtschaftung von Gebäuden durch das Immobilienmanagement abgebildet (Umsetzung\ndes Mieter / Vermietermodells)", + "breakdowns": {} + }, + "0902": { + "pgNumber": "0902", + "name": "Vermessung, Kataster und Geoinformation", + "beschreibung": "In dieser Produktgruppe sind die Aufgaben des Vermessungs- und Katasterwesens gebündelt. Sie umfassen die Erhebung von raumbezogenen Sachverhalten oder die Übertragung von Planungsdaten in die\nÖrtlichkeit durch Vermessung und bilden damit die Grundlage für die Führung des Liegenschaftskatasters, der amtlichen Kartenwerke und der raumbezogenen Informationssysteme. Im Liegenschaftskataster werden\nflächendeckend für das Stadtgebiet alle Flurstücke und Gebäude sowie die Topographie beschrieben, dargestellt und ständig fortgeschrieben. Im Rahmen des Geodatenmanagements werden die gewonnenen\nInformationen weiterentwickelt z.B. durch Harmonisierung von Datenbanksystemen, ggf. mit weiteren Daten verknüpft und als Grundlage für diverse Anwendungen in analoger und digitaler Form bereitgestellt. Die\nBodenordnung schafft durch Grundstücksneuordnung die Voraussetzung für eine planungskonforme Nutzung von Grundstücken und die Grundstücksbewertung sorgt mit der Einrichtung des Gutachterausschusses für\nGrundstückswerte für die notwendige Transparenz auf dem Grundstücksmarkt und liefert Wertermittlungen für zahlreiche private und kommunale Zwecke. Die amtliche Lagebezeichnung mit Straßenname und\nHausnummer bildet den eindeutigen Raumbezug für alle adressbezogenen Sachverhalte in der Stadt Münster.", + "erlaeuterungen": null, + "breakdowns": {} + } +} \ No newline at end of file diff --git a/docs/design-brief.md b/docs/design-brief.md new file mode 100644 index 0000000..5a8e2bf --- /dev/null +++ b/docs/design-brief.md @@ -0,0 +1,197 @@ +# Design Brief — ms-haushalt + +A single-page editorial app for navigating the City of Münster budget. Output of `/impeccable shape`. Intended to be handed to `/impeccable craft` or any implementation skill. + +## 1. Feature Summary + +A print-rooted, editorial single-page app that lets a Münster resident or journalist navigate the city's budget as a living treemap. Both money flows — revenues coming in, expenses going out — are first-class. A time slider runs from 2008 (historical actuals) through 2028 (planning projection). Clicking any tile semantically zooms into its components. Each tile carries data-derived context plus, where authored, short editorial summaries pulled from the source PDFs. The deliverable is a static-feeling site that reads like a Sunday-paper data feature. + +## 2. Primary User Action + +**Understand the budget as two flows: where money comes from, and where it goes.** The visitor leaves with intuition for the rough shape of both sides — and, on click, a clear sense of what dominates a particular Produktbereich. + +## 3. Design Direction + +Refer to `.impeccable.md` for the full design context. Specific to this feature: + +* **Editorial, not exploratory.** This is not "a tool for power users to slice data." It's a guided document that happens to be interactive. Defaults must be opinionated: the page on first paint should already say something specific about the 2026/2027 draft. + +* **Treemap as protagonist.** Every other element — type, side panel, time slider, controls — is in service to the treemap. Nothing else gets to be visually loud. + +* **Two flows, not two charts.** The page does not show two competing treemaps. It shows one canvas that the visitor pivots between *Aufwendungen* (expenses) and *Erträge* (revenues) via a confident toggle that's part of the headline area, not a hidden control. + +* **Time as scrubbable narrative.** The slider is not a filter — it's a storytelling device. Default position lands on the latest plan year; scrubbing reveals continuity (15+ years of actuals) and projection (3 forward years). Tile sizes tween smoothly; tile colors track delta vs. previous slider position. + +## 4. Layout Strategy + +**Asymmetric magazine spread, single scroll.** + +```text +┌────────────────────────────────────────────────────────────────┐ +│ WO MÜNSTER │ +│ SEIN GELD Aufwendungen │ Erträge │ +│ AUSGIBT. ───────────────────── │ +│ ───── │ +│ Stadt Münster · Haushaltsentwurf 2026/2027 │ +│ │ +│ ┌────────────────────────────────┐ ┌──────────────────────┐ │ +│ │ │ │ DETAIL │ │ +│ │ │ │ ───── │ │ +│ │ T R E E M A P │ │ Selected node name │ │ +│ │ (lead canvas) │ │ → 312,4 Mio. € │ │ +│ │ │ │ 24 % der Ausgaben │ │ +│ │ │ │ │ │ +│ │ │ │ Veränderung ggü. 2024 │ │ +│ │ │ │ Sparkline 2008–2028 │ │ +│ │ │ │ │ │ +│ │ │ │ Editorial-Note │ │ +│ └────────────────────────────────┘ │ (sourced or written) │ │ +│ │ │ │ +│ ◄──────●────────────────────────► │ ↳ Quelle: Band 1, S.… │ │ +│ 2008 2028 └──────────────────────┘ │ +│ │ +│ Wie liest man das? · Methodik · Datenquelle │ +└────────────────────────────────────────────────────────────────┘ +``` + +* **Headline area** (left-anchored, asymmetric): a vertical-stacked display headline in a strong serif/slab. Period after the headline is set as a typographic accent. Subhead in a smaller, refined body face. **Aufwendungen | Erträge** toggle sits to the right of the headline at top, set as a typographic switch (active state = solid, inactive = thin underline), not as buttons. + +* **Treemap canvas**: occupies ~2/3 of horizontal space below the headline. Asymmetric — the panel is *not* centered. Tiles are flat fields of color; numbers and labels are typeset *on* the tile, not floated above it. + +* **Detail panel**: ~1/3 width, right side. Hairline rule separates it from the canvas. No card, no shadow, no border-stripe — just typography and white space. Typeset like a magazine sidebar: small caps eyebrow, headline, body, footnote. + +* **Time slider**: lives below the canvas, full editorial width. The slider track is a typographic timeline — years marked in small caps, with subtle marks distinguishing actuals (filled) from plan/projection (hollow). + +* **Bottom matter**: small-caps links to "Wie liest man das?" / methodology / data source. Set like a magazine's footer. + +**Mobile spread:** + +* Headline collapses to single column, toggle drops below subhead. + +* Treemap takes full width but reflows: at the deepest level it becomes a vertical proportional list (rectangles stacked, height = share). This preserves the "shape of the budget" reading on a phone where small-area tiles become unreadable. + +* Detail panel becomes a bottom sheet, summoned by tapping a tile. Drag to expand/dismiss. + +* Time slider sits above the bottom sheet, pinned. + +## 5. Key States + +* **First paint (default):** *Aufwendungen* selected, slider at 2026/2027, no tile selected. Detail panel shows totals + a one-paragraph editorial lead about the draft (the "this is the news" beat). + +* **Hover (desktop) / focus:** tile lifts slightly via opacity/contrast change (no scale, no shadow). Detail panel previews that tile's figures without commitment. Cursor: zoom-in. + +* **Selected (drilled in):** clicked tile's children fill the canvas; siblings have animated offscreen; breadcrumb appears above canvas (`Gesamt › Soziale Leistungen › Hilfen für Asylbewerber`). Esc / breadcrumb-click zooms back out. + +* **Compare mode (slider scrubbing):** tile sizes and positions tween smoothly; tile fill briefly desaturates and is overlaid with a delta encoding (subtle directional tint — warmer if growing, cooler if shrinking, calibrated quietly, never traffic-light red/green). + +* **Empty / missing data** (a Produktgruppe has no value for the chosen year, common for old years before reorganizations): tile becomes a hatched/textured placeholder with the label preserved; detail panel explains "Keine Daten für dieses Jahr — diese Produktgruppe wurde XYZ neu strukturiert." (text TBD by data inspection) + +* **Loading:** the treemap layout itself is the loader — tiles materialize from a single block via opacity stagger, ~600ms, ease-out-quart. No spinner. + +* **Error / data fetch failure:** quiet inline notice in the detail panel — "Daten konnten nicht geladen werden." with a retry link. No modal, no toast. + +* **No-JS / progressive enhancement:** show the totals as a static typeset table and a link to the source CSV/XLSX. The Astro architecture supports this naturally. + +## 6. Interaction Model + +* **Drill: semantic zoom.** Click a tile → CSS transform-based animation expands its rect to the canvas bounds while siblings translate offscreen (opacity to 0). On arrival, children fade in within the new bounds. Reverse on zoom-out. ~450ms, ease-out-quart. Transform-only — no width/height animation. Reduced-motion: crossfade replacement at 150ms. + +* **Toggle Aufwendungen ↔ Erträge:** typographic switch in the headline. Treemap re-tiles; tiles tween from current rects to new rects. The toggle is also a keyboard shortcut (e.g., `1`/`2` or `←`/`→`). + +* **Time slider:** drag to scrub, click to jump. Snaps to year ticks. Tiles tween rect + fill on each step. Slider is keyboard-operable (arrow keys). Selected node persists across years; if a Produktgruppe didn't exist in the scrubbed-to year, its tile shows the empty/hatched state without losing selection. + +* **Hover preview** (desktop only): tile lifts; detail panel updates in place, but doesn't lock until clicked. Cursor changes to indicate zoom is available. + +* **Deep linking & sharing:** URL captures `{flow, year, drill-path}` (e.g., `/aufwendungen/2026/soziale-leistungen/hilfen-asyl`). Browser back/forward navigates the drill stack. Sharing a link lands the recipient on the same scene. + +* **Source links:** every detail panel includes "Quelle: Band 1, S. ###" linking to the PDF (anchored where possible). For values that span data files (e.g., 2025 appears in two plans), a "Welcher Wert?" footnote explains which plan is canonical. + +## 7. Content Requirements + +**Display headline** (one of these or similar — to author): + +* "WO MÜNSTER SEIN GELD AUSGIBT." (when Aufwendungen) + +* "WORAUS MÜNSTERS HAUSHALT BESTEHT." (when Erträge) + +* Typeset in two or three vertically-stacked lines, period as typographic accent. + +**Subhead:** "Stadt Münster · Haushaltsentwurf 2026/2027 · interaktiv erkundet" + +**Editorial lead** (~80–120 words, hand-written): the "this is the news" paragraph for the 2026/2027 draft. Replaces the empty detail panel on first paint. + +**Per-node content (data-derived, automatic for all 87+ nodes):** + +* Display name (from CSV) + +* Current year value (formatted German: `312,4 Mio. €`) + +* Share of parent and share of total + +* Year-over-year change (absolute and %) + +* Sparkline 2008–2028 (where data exists) + +* Top 3 sub-items by value (when applicable) + +**Per-node editorial note (optional, hand-written or LLM-summarized from PDFs):** + +* 1–3 sentences pointing at what's interesting about this node + +* Stored as `content/notes/{produktbereich-slug}/{produktgruppe-slug}.md` with frontmatter + +* Build-time fallback: short LLM summary derived from the relevant section of Band 1/2 + +**Microcopy:** + +* Toggle: `Aufwendungen` | `Erträge` + +* Breadcrumb separator: `›` + +* Empty data: `Keine Daten · Produktgruppe in diesem Jahr nicht ausgewiesen` + +* Source link: `↳ Quelle: …` + +* Methodik footer link: `Wie liest man das? · Methodik · Datenquelle: opendata.stadt-muenster.de` + +**Number formatting:** + +* German formatting throughout (`.` thousands, `,` decimal) + +* Auto-scale at the tile level: `Mio. €` / `Mrd. €` for compactness; full euros only in detail panel + +* Revenues displayed as positive numbers (the source CSV's negative sign convention is normalized away from the user's view) + +## 8. Recommended References + +For implementation, prioritize: + +* `reference/spatial-design.md` — asymmetric magazine layouts, fluid grids, container queries for the side panel + +* `reference/typography.md` — display-vs-body pairing, OpenType features, fluid clamp scales + +* `reference/motion-design.md` — semantic-zoom timing, slider-tween orchestration, reduced-motion fallbacks + +* `reference/color-and-contrast.md` — OKLCH-driven warm-paper palette, treemap fill scales that survive both small and large tiles + +* `reference/responsive-design.md` — the mobile reflow from treemap to vertical proportional stack + +## 9. Open Questions + +These should be resolved during implementation, not in the brief: + +1. **Display font choice.** The brief calls for "strong serif or slab with editorial-print rooting." We will go with Söhne Breit, and Söhne Mono for numbers. + +2. **Canonical-year resolution.** When the same year appears in multiple plan files (e.g., 2025 is in the 2024 plan and the 2025 plan, with different values), the most recent plan that contains it is the slider's source of truth, with a footnote when overlapping plans disagree by >5 %. + +3. **2026/2027 machine-readable data.** Currently only PDF. Implementation needs a one-time tabula-py / camelot extract from the PDF Band 1. + +4. **LLM summary pipeline.** The hybrid editorial model needs a build-time job that extracts per-Produktbereich sections from Band 1/2 PDFs and summarizes them. Open: which model, prompt, and review gate before the summaries are exposed to readers? Flag-each-summary-as-AI-generated should be the default until reviewed. + +5. **Color encoding — decided: two-hue system, one per flow.** *Aufwendungen* and *Erträge* each get their own hue family, constructed in OKLCH on the warm-paper background. Within a flow, tiles vary in lightness (and a touch of chroma) to encode value — bigger tiles sit darker/more saturated, smaller tiles lighter. The two hues should be far enough apart on the OKLCH wheel to read as a clear pivot when toggling, but both must hold their own against the off-white surface. Recommended exploration: a deep purple for *Aufwendungen* (money leaving) and an orange for *Erträge* (money coming in) — to be auditioned in OKLCH. Anti-pattern: red/green (traffic-light) or any pairing that signals "good/bad," since neither flow is morally loaded. The delta-while-scrubbing encoding (warmer = growing, cooler = shrinking) operates *within* the active hue's family, never as a second color overlay. + +6. **Hosting / deploy target.** Static-first via Astro simply placed via sftp on an uberspace account. domain: faz.ms/haushalt/ Analytics Matomo without cookies + +7. **2008–2022 actuals integration.** The Jahresabschluss file has fewer columns and slightly different spelling (`allgemeine` vs `algemeine`). The data layer must reconcile both into one long-format table. + +⠀ diff --git a/docs/specs/2026-05-07-sankey-flows-view.md b/docs/specs/2026-05-07-sankey-flows-view.md new file mode 100644 index 0000000..5fbe12e --- /dev/null +++ b/docs/specs/2026-05-07-sankey-flows-view.md @@ -0,0 +1,384 @@ +# Spec: Saldo "Flüsse" view (parallel sets) + +**Status:** Draft\ +**Date:** 2026-05-07\ +**Owner:** Flo + +## Overview + +A second visualisation that lives on the budget page and answers a question the icicle cannot: *what kinds of money come in, where do they pool, and what kinds of money go out again?* It is a parallel-sets diagram — Ertragsarten on the left, Aufwandsarten on the right, and a middle column that reflects the user's current zoom level in the icicle. + +The view is reached by clicking the **Saldo** total in the sidebar (currently inert). Clicking it again, pressing Escape, or activating one of the existing Aufwendungen/Erträge flow rows returns to the icicle. The zoom level of the icicle at the moment Saldo is activated determines the diagram: + +* **Level 1 (no zoom, Bereich overview):** three columns, *Ertragsarten → Produktbereiche → Aufwandsarten*. + +* **Level 2 (Bereich zoomed in):** three columns, *Ertragsarten → Produktgruppen of that Bereich → Aufwandsarten*. + +* **Level 3 (Produktgruppe zoomed in):** two columns, *Ertragsarten → Aufwandsarten* for that single Gruppe — the middle column collapses because there is only one node in it. + +Visual style follows the d3 parallel-sets reference (): flat categorical bands, bezier ribbons flush to band edges, paper-toned default fills, hue reserved for highlight. + +## Purpose + +The icicle shows the spending side as a hierarchy of Bereiche → Gruppen → Categories. It cannot show, in one frame, *what types of revenue feed which areas* or *which expense types each area consumes*. The Saldo view exposes that cross-cut without overloading the icicle with a second encoding. + +For a citizen looking at the Bereich overview, the three-column diagram answers "where does Gewerbesteuer go, and what does it pay for?" After zooming into "Schule und Kultur," the same diagram redraws to show only that Bereich's incoming revenue mix and outgoing expense mix. Zooming further to a single Gruppe collapses the middle column, isolating the revenue-to-expense composition of one budget item. + +## Non-Goals + +* **No standalone page or top-level toggle.** The Saldo view is a sidebar-driven mode of the existing budget page. + +* **No year switcher.** v1 covers the 2026 planning column from the 2025 plan file. + +* **No historical actuals** (Jahresabschlüsse). + +* **No deeper than Produktgruppe.** Icicle depths 4 (Breakdown) are not represented as their own column. + +* **No four-column variant** that would split Bereich AND Gruppe simultaneously. + +* **No replacement of the icicle as the default view.** Default is the icicle; Saldo is opt-in and dismissible. + +* **No CSV/PNG export, no embed snippet.** Sharing relies on URL state alone. + +* **No mobile-specific layout** beyond falling back to a simpler rendering at small widths (see Edge Cases). + +## User Stories + +1. **Citizen exploring the whole budget.** Lara sees the icicle at the Bereich overview, glances at the sidebar's Saldo figure, clicks it. The icicle is replaced by a three-column parallel set: Ertragsarten on the left, Produktbereiche in the middle, Aufwandsarten on the right. She hovers "Steuern und ähnliche Abgaben" and watches its ribbons fan out to every Bereich and from there to expense types. + +2. **Journalist tracing an area.** Jonas zooms into "Schule und Kultur" on the icicle, then clicks Saldo. The middle column now shows the Produktgruppen of Schule und Kultur. He pins "Personalaufwendungen" on the right and sees which Gruppen consume most of it. + +3. **Reader following a single budget item.** Mira zooms into a Produktgruppe, clicks Saldo, and sees a two-column diagram: which Ertragsarten fund this Gruppe, and which Aufwandsarten it spends on. + +4. **Returning reader via deep link.** A shared URL `/?pfad=schule-und-kultur&ansicht=saldo` opens the budget page with that Bereich zoomed and the Saldo view active. + +## Functional Requirements + +### Activation and dismissal + +* The Saldo total in the sidebar (`ov-saldo` in overview state, `sb-saldo` in node state) MUST become an interactive control: button-role, keyboard-operable, with a hover/focus affordance. + +* Clicking Saldo activates the parallel-sets view, replacing the icicle in its canvas region. The sidebar remains visible and unchanged. + +* Clicking Saldo again, pressing Escape, or activating one of the existing Aufwendungen/Erträge flow rows MUST deactivate the Saldo view and restore the icicle. + +* Activating Saldo while one of the existing flow rows is active MUST first clear that flow filter, then activate Saldo. Only one of {flow filter, Saldo view} can be active. + +* The Saldo control MUST visually reflect its active state. + +### Level resolution + +* The Saldo view reads the icicle's current zoom path at activation time and continues to track it while active: + + * No zoom / Bereich overview (depth 0 zoom, depth 1 visible) → **three columns**, middle = all Produktbereiche. + + * Bereich zoomed (depth 1 zoom) → **three columns**, middle = all Produktgruppen of that Bereich. + + * Produktgruppe zoomed (depth 2 zoom) → **two columns**, no middle. + +* Zooming deeper than Produktgruppe (Category, Breakdown) while the Saldo view is active MUST be treated as the Produktgruppe level — the deeper hierarchy is not represented. + +* If the user changes the zoom path via icicle controls outside this view (e.g. via deep link), the Saldo view MUST redraw to the new level on activation. Saldo is not active during icicle interaction; the user must dismiss Saldo to re-zoom. + +* Decision: **changing zoom while Saldo is active is not supported in v1.** Re-zooming requires dismissing the view first. (See Open Questions if this proves frustrating in testing.) + +### Data + +* Source: `data/2025/HH_Plan_Muenster_25-28.csv`, rows where `Geschäftsjahr = 2026`. + +* Rows where `Produktbereich = "Gesamt"` or `Produktgruppe = "Gesamt"` MUST be excluded from leaf aggregation. + +* Aggregation by level: + + * Level 1: per-`Produktbereich` sum of each financial-category column over its leaf Gruppen. + + * Level 2: per-`Produktgruppe` value of each financial-category column for the leaf row, restricted to the active Bereich. + + * Level 3: the single leaf row's per-category values. + +* Sign normalisation: revenue columns are negative in the source; flip to positive magnitudes before display. Expense columns stay positive. + +* Empty/blank cells MUST be treated as 0. + +* Header typo `Öffentlich-rechtliche Leistunngsentgelte` and the variant `algemeine Umlagen` MUST be read as-is from the source. Display labels are corrected. + +### Category sets + +* **Ertragsarten (left column):** `Steuern und ähnliche Abgaben`, `Zuwendungen und algemeine Umlagen`, `Sonstige Transfererträge`, `Öffentlich-rechtliche Leistunngsentgelte`, `Privatrechtliche Leistungsentgelte`, `Kostenerstattungen und Kostenumlagen`, `Sonstige ordentliche Erträge`, `Aktivierte Eigenleistungen`, `Bestandsveränderungen`, `Finanzerträge`, `Außerordentliche Erträge`. + +* **Aufwandsarten (right column):** `Personalaufwendungen`, `Versorgungsaufwendungen`, `Aufwendungen für Sach- und Dienstleistungen`, `Bilanzielle Abschreibungen`, `Transferaufwendungen`, `Sonstige ordentliche Aufwendungen`, `Zinsen und sonstige Finanzaufwendungen`, `Außerordentliche Aufwendungen`, `Globaler Minderaufwand`. + +* Categories whose total in the active level is 0 MUST be omitted. + +### Ribbon allocation (the imputation rule) + +The source data does not record category-to-category flows; each row gives totals per financial category but no direct linkage between a specific Ertragsart and a specific Aufwandsart. To draw three-column ribbons we MUST impute the linkage by **proportional allocation through the middle column**: + +* Left-to-middle ribbon between Ertragsart *e* and middle node *m*: the value of column *e* in node *m*'s aggregated row. + +* Middle-to-right ribbon between middle node *m* and Aufwandsart *a*: the value of column *a* in node *m*'s aggregated row. + +* For the **two-column case (level 3)**, ribbons between Ertragsart *e* and Aufwandsart *a* are imputed as `e_total · a_total / total_expense_or_revenue`. The implementation MUST normalise on whichever side has the smaller absolute total so total ribbon mass equals `min(Σe, Σa)`. Where revenues exceed or fall short of expenses, a single grey "Saldo" pseudo-band on the deficit/surplus side absorbs the difference. + +* A caption MUST disclose the imputation: e.g. *"Die Verbindungen zwischen Ertrags- und Aufwandsarten sind anteilig berechnet — die Datenquelle weist keine direkten Geldflüsse aus."* + +### Rendering + +* Bands are flat coloured rectangles, no stroked outlines, with band height proportional to the node's total magnitude. + +* Ribbons are bezier curves meeting bands flush. No gap, no outline. + +* Default state: bands rendered in paper-toned neutrals; ribbons rendered at low base opacity in the same neutrals. + +* Hover state: hovering a band raises its ribbons to full opacity and tints them in the band's hue family (Ertragsart hue for left, Aufwandsart hue for right; middle bands take a neutral tint). Other ribbons drop further. + +* Pinned state: clicking (or pressing Enter on a focused) band pins the highlight. Same dismissal rules as the prior spec — second click, background click, or Escape unpins. + +* Only one band can be pinned at a time. + +* Flows < 0,1 % of the level total MAY render at a minimum visible thickness; they MUST remain selectable and faithful in tooltips. + +### Tooltips and labels + +* Hovering a band MUST show its name, total in €, and share of the level total in %. + +* Hovering a ribbon MUST show source band, target band, absolute € value, share of source band's total %, share of target band's total %. For imputed ribbons the tooltip MUST tag the value as *anteilig berechnet*. + +* Numbers MUST follow German formatting (`.` thousands, `,` decimal) and use the symbol `€` after the value with a non-breaking space. + +* Band labels MUST be visible without hover for any band whose share is ≥ 2 % of the level total. + +### URL state + +* The active mode is encoded as `?ansicht=icicle|saldo` (default `icicle`). The icicle's existing zoom-path parameter (e.g. `pfad=…`) is retained unchanged. + +* Pinned band is encoded as `&pin=` where `` is a stable, lowercased, hyphenated form of the band label (e.g. `personalaufwendungen`, `schule-und-kultur`). + +* Loading a URL with `pin` that does not match any band in the resolved level MUST drop the param silently. + +* Loading `?ansicht=saldo` with a `pfad` deeper than Produktgruppe MUST resolve to the Produktgruppe level (truncate the path). + +* Browser back/forward MUST traverse mode and pin changes. + +### Accessibility + +* All bands MUST be reachable by keyboard, in reading order: left column top-to-bottom, then middle (if present), then right. + +* Focused bands MUST have a visible focus ring distinct from the hover state. + +* Each band MUST have an accessible name including label, total, and share. Imputation disclosure MUST be reachable as text, not only as a tooltip. + +* The view MUST not rely on color alone to convey selection. + +## UI/UX Requirements + +* The parallel set occupies the same canvas region as the icicle; sidebar and page chrome do not change. + +* A short editorial caption above the diagram names the year, the active level (Gesamtstadt / Bereichname / Gruppenname), the total revenue and total expense in €, and the imputation disclosure. + +* **Visual style: parallel sets** per . Each column is a flat categorical band (a stack of contiguous block fills, no stroked node boxes); ribbons are bezier curves meeting band segments flush, with no gap or outline. Default rendering is quiet and near-monochrome — neutral paper-toned fills for bands and ribbons — and the active hue family is reserved for highlighted (hovered or pinned) flows. + +* Color: Erträge and Aufwendungen each use their respective hue family from the existing two-hue OKLCH system, applied only on highlight. Middle column highlights take a neutral tint. Default-state fills are paper-toned neutrals derived from the same OKLCH system at low chroma. + +* Motion: a single transition vocabulary — opacity and fill changes on hover/pin/level change. No band-position morphing between levels (a level change is a redraw, not an animation). + +* Below ~720 px viewport width, the diagram MAY fall back to a simpler list-of-bars rendering — see Edge Cases. + +## Edge Cases & Error States + +### Data + +* A middle-column node whose total magnitude on either side is 0 MUST be omitted (e.g. a Bereich that has only expenses but the level needs both sides — the band is rendered with the side it has and a single "Saldo" pseudo-band absorbing the difference). + +* A category whose total in the level is 0 MUST be omitted. + +* Negative net values within a single side after sign normalisation are not expected; if encountered, log a build-time warning and render absolute values. + +### Interaction + +* Activating Saldo while no Bereich is zoomed but the path indicates a Bereich (race) MUST resolve in favour of the path. + +* Clicking the SVG background or pressing Escape unpins, but does NOT dismiss the Saldo view (only Saldo-toggle, ESC twice, or the flow rows do). Decision: Escape unpins on first press; second press dismisses the view. + +* Tooltips that would extend past the viewport MUST flip. + +### Viewport + +* Below 720 px width: render the fallback bar-list view with three (or two) sections stacked vertically (Ertragsarten, [Bereiche/Gruppen], Aufwandsarten), each as a sorted bar list. Pinning still highlights cross-section. The Saldo activation control still works; deep links continue to work. + +* Below 360 px width: same fallback with reduced label density. + +### Failure modes + +* The Saldo view is statically pre-computed at build time per level. If data load fails at build, the page build MUST fail loudly. + +## Pre-Mortem + +*It's six months from now and this view has clearly failed. What went wrong?* + +### Likely failure modes + +* **Imputation misleads.** Readers treat the proportional ribbons as a real flow record. → Mitigated by the mandatory caption, the *anteilig berechnet* tooltip tag, and the accessible-text disclosure. Accepted residual risk: any imputation can mislead a determined misreader; the disclosure is the limit of what we can do without real flow data. + +* **Saldo click is undiscoverable.** Readers never realise the figure is interactive. → Mitigated by the active-state affordance on the control. Partially accepted risk: discoverability is a craft problem; if telemetry shows < 5 % of sessions activate it, we revisit. + +* **Visual noise.** Three columns with up to ~16 middle nodes and ~9–11 outer nodes generate too many ribbons. → Mitigated by the dimmed-default + hover/pin highlight pattern, the 0,1 % minimum-thickness rule, and the level-2 collapse to one Bereich's Gruppen. + +* **Numbers don't reconcile with the icicle / sidebar.** A reader compares totals between views and finds a mismatch from Gesamt-row leakage or sign bugs. → Mitigated by explicit Gesamt-exclusion and sign-normalisation rules and the reconciliation acceptance test. + +* **Re-zooming while Saldo is active is awkward.** Users want to pivot levels without dismissing. → Accepted constraint for v1; tracked in Open Questions. + +* **Mobile is unusable.** → Mitigated by the bar-list fallback below 720 px. + +* **Slug collisions in URL pins.** Two bands across columns share a slug (e.g. a Bereich name colliding with a category name in another level). → Mitigated by interpreting `pin` only within the resolved level's band set; the level itself disambiguates. + +## Acceptance Criteria + +### Must Have + +* [ ] **Saldo is an interactive control** + + * Given: budget page is loaded with the icicle visible + + * When: user clicks the Saldo total in the sidebar + + * Then: the icicle canvas region is replaced by the parallel-sets view, the URL gains `?ansicht=saldo`, the Saldo control reflects an active state, and any active Aufwendungen/Erträge flow filter is cleared + +* [ ] **Activation level matches icicle zoom** + + * Given: icicle is at the Bereich overview / a Bereich zoom / a Gruppe zoom + + * When: user activates Saldo + + * Then: the parallel set renders with three columns (middle = Bereiche) / three columns (middle = Gruppen of that Bereich) / two columns, respectively + +* [ ] **Dismissal restores icicle** + + * Given: Saldo view is active + + * When: user clicks Saldo again, presses Escape twice, or activates Aufwendungen/Erträge flow row + + * Then: the icicle is restored, the `ansicht` and `pin` params are removed from the URL, and the Saldo control returns to default state + +* [ ] **Totals reconcile with the sidebar** + + * Given: any active level + + * When: summing all Ertragsarten band magnitudes / all Aufwandsarten band magnitudes + + * Then: the totals equal the sidebar's Erträge and Aufwendungen totals for the same path, to the cent. The Saldo (revenue minus expense) equals the sidebar Saldo + +* [ ] **Gesamt rows are excluded from aggregation** + + * Given: source CSV contains `Produktbereich = "Gesamt"` and `Produktgruppe = "Gesamt"` rows + + * When: any level is rendered + + * Then: no band or flow derives from those rows; the reconciliation criterion above passes + +* [ ] **Imputation is disclosed** + + * Given: any level with three columns or the two-column case + + * When: the diagram is rendered + + * Then: a visible caption states that ribbons across the diagram are proportionally imputed; ribbon tooltips for imputed flows include the *anteilig berechnet* tag; the disclosure is reachable as text by screen reader + +* [ ] **Hovering a band highlights only its ribbons** + + * Given: Saldo view is active and unpinned + + * When: user hovers a band + + * Then: that band's ribbons render at high opacity and tint in the band's hue family; all other ribbons drop further; mouseleave restores default + +* [ ] **Clicking a band pins the highlight** + + * Given: Saldo view is active and unpinned + + * When: user clicks a band + + * Then: the highlight persists, the URL gains `&pin=`, and clicking the same band, the canvas background, or pressing Escape once unpins and removes the param + +* [ ] **Deep link with valid pin opens pinned** + + * Given: a URL like `/?pfad=schule-und-kultur&ansicht=saldo&pin=personalaufwendungen` + + * When: a fresh browser opens it + + * Then: the Saldo view renders at the Bereich-level (level 2) for Schule und Kultur with Personalaufwendungen pinned + +* [ ] **Deep link with deeper-than-Gruppe path resolves to Gruppe** + + * Given: a URL whose `pfad` reaches Category or Breakdown depth and `ansicht=saldo` + + * When: the page loads + + * Then: the path is truncated to the containing Produktgruppe and the level-3 (two-column) diagram is rendered + +* [ ] **Tooltips show absolute and relative figures in German formatting** + + * Given: a hovered ribbon + + * When: the tooltip appears + + * Then: it contains source name, target name, € value formatted as `1.234.567 €`, source-share %, target-share %, and the imputation tag for cross-column flows + +* [ ] **Keyboard navigation reaches every band** + + * Given: focus is on the Saldo control + + * When: user activates and tabs through + + * Then: focus moves through every band in defined column order, each focused band shows a visible focus ring, Enter pins/unpins the focused band + +* [ ] **Sub-720 px viewports render the bar-list fallback** + + * Given: viewport width < 720 px + + * When: Saldo view is active + + * Then: the diagram is replaced by stacked bar-list sections, the activation control still works, and pinning still highlights cross-section bars + +### Should Have + +* [ ] **Band labels visible without hover for share ≥ 2 %** +* [ ] **Sub-0,1 % flows render at a minimum visible thickness**, hoverable, with truthful tooltip values +* [ ] **Pinning persists across level changes** when the pinned band exists at the new level (e.g. an Aufwandsart pinned at level 1 stays pinned when the user re-opens at level 2 of a Bereich). Otherwise the pin is dropped silently + +### Could Have + +* [ ] Animated cross-fade between icicle and parallel-set (≤ 200 ms), no band morphing +* [ ] A "Saldo" pseudo-band rendered explicitly on the smaller side at level 3 to absorb deficit/surplus + +### Won't Have (v1) + +* Year switcher + +* Re-zooming the icicle while Saldo is active + +* Four-column variant (Bereich AND Gruppe) + +* Real category-to-category flow data (would require data we don't have) + +* Historical actuals + +* Mobile-specific layout beyond the bar-list fallback + +* Export, embed, screenshot tooling + +## Dependencies + +* The icicle view exists, owns the budget page, and exposes its current zoom path. This spec assumes the data-loading pipeline (`data/2025/HH_Plan_Muenster_25-28.csv`) is in place. + +* The sidebar's Saldo elements (`ov-saldo`, `sb-saldo`) exist and can be made interactive. + +* The two-hue OKLCH color system is defined and accessible to both views. + +## Open Questions + +* Should re-zooming work while the Saldo view is active (allow the icicle's bar set to remain the click target underneath)? Deferred to v2 unless craft testing proves the dismissal-then-re-zoom flow is too clunky. + +* Should a Bereich whose Saldo is approximately 0 (Erträge ≈ Aufwendungen) be visually distinguished, given the diagram's central narrative is exactly that balance? + +⠀ \ No newline at end of file diff --git a/fonts/Figtree-Italic-VariableFont_wght.ttf b/fonts/Figtree-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..06d4ee3a1c6bb9e65b94c8af33c84fd39ee82169 GIT binary patch literal 62292 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 literal 0 HcmV?d00001 diff --git a/fonts/Figtree-VariableFont_wght.ttf b/fonts/Figtree-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f93a4b6cd8e75ea5928c007478d59a85effc63b8 GIT binary patch literal 62412 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%0A4=_?#F&o_sXs%1iC(ov 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 UgdJ(P{$I)D(j|WO(xsSx10wb$cmMzZ literal 0 HcmV?d00001 diff --git a/fonts/static/Figtree-Bold.ttf b/fonts/static/Figtree-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6f8ad640402b7a214ae16197aa769b5ab06a9e2f GIT binary patch literal 40324 zcmd3Pd3+Sb)^=5Qn906R_GKoMWReiFO_E7M60(OSKpczN=EAANM7Nge{cN~er%=et?&P+hKukZK!{`hE~?&{OkwVZS6RMn~K z3FC}0Uz}VRt1K(82o4V##h8>2>e0&T(KV(WyN5HD^fY79`IR-}O3rkibj1q?7}Exh zu1U?PTOYZLG5!(a&#b8}uKmyNuf^m3AGj}@y{K;S@mJ6M!I)+PG8j9zu5~f!zIYyp ztLxl_SI^1$WW!O$hMi}uX2ZOOx_aZ34Lx{16VJ2ffuJ3$jleyXCwAVVCCeZ2Dt?%; z;Kz`E!oud+b$h)w?Lm2eVoct-sBZaU{vmr3@$nARH`Og_IP%Mx4#wO+Vr;;Ri!dG-6q>d+T2~LW78>I|J?jC?Q)8ib&;&D!5`8XG{kvNZGlX0HP=HcAPns8psZpL{F+lBM( zY#+||u%~c-hP{dNyX<3}KV{$H{5|^_=U=%O<9rj}gmXK8n92Mwe;nr%`~)Z+9PjcM z_zQ?Bq$4;eiI@yA|3$oDI+nslp(Jxy3tP=Lv7Kx`dzd}JKIXo>j92rid@gV0*YX2+ z<1zjp{-+cw#YyQ>fiz4SC)G)dr0b-|r01nKrH`bqCA%CYC&}4zi9AlOlW&%9m+zI2 z$S34avEgRK9`4F9(Q@c<;MYr0h0&J8PGCd^?*$S zo*nR~MynaFS)|#fc}HW@x@&{9G1@uW7VT>7M(u6decBJTXSC;BU0f4fYg}izE^uAu zdcErw*E?PBcYW0Lr0eIdKf3U(hz2m&Ay{CH5^=|dP z)_arpzr3IEe%-s%`%CZNe4>4Fe9C-A`^@oa@mcM&$!Dj}KA&SgXMBBq!+qm@Gkgnt zn|=5B9`Zfz`<(A7-!9)T{i6Mn{IdNP`tA4o!0#u&^Zr_YfBzc)>HhQmm-t`nf0O@< z{@(`Z0`vi80iy#Z2Q&m+6|gd3L%@!Jy#a>;Is&=^{uA(Xz=c4!Kto_<;Ml-vf%5`e z18)r69(Y&agMr1@!k!E33Xcw-7QP_-n(&*#?+iZ}{_pTt!#@oFBK-Ss zYq&kaHNr0vOn{kZs4&z6$?ytnaaw#S~1{U&ZeTu@v>+>p2laV>G{;vR{6DekxU(eaDoH^n~?|6=@qOtLA) zRAicCT4~y7+G%Px9XGvh>M>nNFeZ#hn3&Lz(2}q#;faLqgzpo6OSq7zN%Tn!PK-`8 zC8j2hOPrS2kl2*CH1T<1L&);UK%lTJbainl#QiK*gmxRlyjUvBMTaI4|=82=bu%*>buSbT;&^em0#!S+4OgLo28;kmq+4~JE#=Z*YzDFk`E zD0RwA*2wP2BR*;k^7us`pbybU==I1WSLCrozedetieal^rS{Aat? z_GjNi+X34)#y&%j_Stxa_F2|v#ocGSyKp?+{aN>W-LpRZjGlaY-KQ%*wID$DeE$BdI^28=n-~EyQRG%jI;CrK{_NICd#G%q`lI83XQJ3 z7B+GvpUpS(eXx_O_(Hyj&*IzpL_UvC0H-GL$^3S{lmCNH=c`d7FZ2k3EQA>#MH6}i zGs|WV_2v!f?&tkLLRcth*yn$WM*0as*Ms^eWx$W$3 zb_d(d?qWySL+Ek-$^OA!V6U>5*vsq<_6om^onl|H&)I+2m+UNin_1C&ZA4pG$K23M z`LM0bA3bmY+kp|(HuPdUSrGcoXy|Gr+XKDb$HLg1ESBBNjO+mV-uqb`yN@NZc9y^% zWa;b?mcbrH8#=@WvZE}EJ;p5P^>Wz>Hkfrl=buDR{S+I*o@K@Cd9=CbSSfpv4QH>j zVeB>Z-*2+9>^)Y?-e)!JG#k%8V3XKKY$E%RO<-MY8tX=n`VFgNU!Z^gjy15a*YNWlLEvTh9Ju%h(?nx7>gp_+vJmea4^TPx9yaOX#!2#C~E+*zbHPU&dSb65fV>dIR4G3-AEnkN)~T{vf}H-^=gk zck(-gz8d&;vL-HWxO+g}tcEc{kyoo>iMh&4)v(M`eVNYo96KdEC`nyLBdqb0MQNupape8l!>*NXd zbJmypLj%<^^8mEvJT-nG+K0+3u0whH${B=w-PJh32r+0-Go)CDoQ6S?bRzT^gqxxHVegMcgKHCL z3z6y|#99I>@#$*Fs}3!%LA*if5thJuwn8qcILMMV;N3YQoh3+tcuka6oKr+PbJ3pX zf!>PLD%5y-g+5- zGGdJvZ?}R@wbjE;r3mQzmF(ht`$|&>i&BU8i0iWifAlEvd{GYK4dq*mzJu(JbVKq45&iy6Kj>{^lYFYQfx+P7p zb*GtI@#JznJ5*X+t7q#=$KrfwMDb*tM~<%2vzeo+%JeL6?C6mQ!#M$Z?bs1GGltO~ z{18Z4f_-v9PwNKzO9!98C9$-BE0*SO#TszgSn$G#Tz&eL?Q$gxsH# zy$R!55ei2Lz7WvJCqOczbBH(xiL=6S4-wXiv#U7MTQWEvfKej7<0sBE7vShkFfhec zVv#O?xFpGwr7r0;>0i=*X|q%>R;po7~VL!hG=L(*KF-9jwh>xJJTQ58i zlot6@;vwCu*$VhNR?u6iZT7(l)yI^j844>c-I9e z!|3-UQY0S4Dt#%mo`Y9Pj^uHX5bGrP$1#$-^a;oN&XN_{t!i5FYFhqynxdwq6J?6! zgK$r&Mf6Ked6vSJ83qS`ovCW<@8XX0`hK)Di~*c6Vwk?)U0^?X5VtZ!zTU!z)%T8s z+$EODj*Ie=En5<>cLae3PQSyu2RYbZ-Dce zNSmH<%uh&)N6M^$x zBH;;n&H8*{RBoD0DKUu)dRV|`F*|qw^OUWac`Qf2Ium`tQ1m?ci0uM>T8sBdTBN_B z%!AJa*F2H(96lFkZ*F7*_%L3B`S~CogYZy3mS^*1Za}z_kKtLEyXz6Iz^pnGbL?n@ z%lT+-=7~HC;W9poXYd3biEt@qXX%*jM<85+xmp^J=ivw!W2TnM<9Ha;@FL95Q+O;& z6N3Cb*?Cc0h1ZK&7ASvd?<^B7Y%;sRY|Kt#=MtAOUmgJab(kIRXAQjI74(5$(2x7W z>k!Cw@CpPYuQ-&$gfb?g`~y+9K|F_QuV@i?O>L22W=3(HM9(A#>M9iY=nHfBtgI3_w77b?2RN&3h^Q>Nag}MG+$bTSi zJ*$%5W5&zk1fCJTWjO*P5&oZ$gg9Rzy-V=}=s&OlKovKzDjDNJTno9ueu}5T2V!6q z2>%ZJgs?$MK-v0m2i_%w3goL-x|ifhNNd0q5WtM`l@P?D>6y!9lywTyoy*3`I)raP zxIbpF1nF{Efp|liw*ybJ66x>YZOo%S_$#FQnY(l&)BXj^S-jK_{6Q8kzs2I|3izwn zzI$<%bSz5p{drgfhi)s+ejKgJ z0u%$OTw{L<_*S9Wzef0Xg#DyM#4*~R<-tx!VJIsAPYA)JUUje%uJSxQ%eex|QJyQI z1bN|^{G}*!q2Na~=GoVEPrh9$!eaO8cOX}Js5(B5S&{A=)F8D=MknGb<&u%E>UekN8x zv!!@+x>e{c9|2ERvos(cD_7Y96OrCTM&r~-z6}47O zpeLTi9-?so=C%)G{1eCGF-EY1n;PV4qB#OQoC&OfyR(Fe<5{=wd$aRVDfBL|kkLm^yc_j6+g5t&-$n zq?C?Plo?)ueD)pBWdG(_tbk{;FEK95fqy#>9`1Zzzzg{hUW9SVe2l3|;L%vf8ZqiB zgI8k_Jj>+Uwn3+wF+!_=kGm4>;#-Uc7xSSs-{-^FRTzDZfX8Pz>lMEAQEUXpa@COh z`Wy@fB+AspF;k9fe{PE-Y1U3qqKU%C3Oo6`}{(r0|Ov9@5a`@cGVzfqcvlSRu z*1@N}3f}S>w9HyI4r>gvF)A9*8{i{9FUFf2*#xXP%*P08HLS}Tb{)GGYX-C)(FA>( zj5UD8SVw4KQ{cBe!&})CdPzk*+bwTx9*LAn-e0M}uC;Cj9eD+BA{ zr{BY9MykV%AQ)O4in%Df|5!&LpYtZHDQxC9W4^fsYYW@3`f)4Y!EeK=$1bdU+|KWS z4|+G&8TMcmV=vZ8_QNxM0KVz_FiSg&mTZNW`T_W>+u`RXulK|JpP0EGf#3U4;s5>@ zKTe}~{sjLwRxO_79ZbeL#nYG@`@r8Hg>j?{RzqU2Ch{EC7icc-&xY`4__LVbJ_0{~ z2}Yit@UPFrDoYXk`7dBpe~kSLGpYw!JN*4mu>oi$M$Bb4V1|4XRv0#8j5-5e`?Z(> ztix)67M}U%;iun;^>lA|@qfaKfgUR{2CO;UhE<4LvC2?~Uj0Q_u9NWJzsz6ZuVNnl zIzPqV;BWG`_}ly){w{xypXTrLPW}P!;ve#l_{aPc{weQ<=lLV7Fx-rln@;u_Y~IIM zQRu>|NjLvYQ#`AsVQGW5t!aK*dTE)qcv0Q#mgXjHar4~friKL`rL*U^%x+sWXJNx~ z_tN_2C3UlBH#9BLl+CU~EL>We>y~KB#hrV(=l2t~Ad!-|~%g|YM zEgnOiain3xwZqgThN($V3DYu*)68k<9>bkcmE_FXnyR|lZA%(7RiZ2^wL~*Yp^oZD z&CHU^o923rp4Zkix2~ma(Zag6CEC$SZkn-5{IUJwXJu<@1l6PFl58{5b10+q^4xMw zt@DkH^kU68!B($v7iBU|t6*X#fzN{*YMYB+F zO|#G`&UACBrb(eT^`mBH%MDPY=8GiUtYoZ#Z;+I+rC6gjJz6ixHX}V(v&0!Q zBfUh^rl?QbMTxhmwQ5spHK0wX&oU*^WzIz1mh}l&vrJK+tDO%uS1anXLcHd_!og2X z9SJqvqfR_f!=e}>?5S9Ya&hBZ=S)x#yzBb1R9|%HPr9e77D_6rZipNAI;w#B!jkz5 z>l;K^vyd(s9*QK?uwah}D+Mu^st;Nh*0s(PVYd|xEzKgN6`>__G%#T)xGY)LjEn1% zc`XfeubtD})*`O+mx|}D^Ow`}Rv5x23N*~e{x6EqG+!j(sixO28}b3WQt~1|8BoAo z$%2AzA`>M<*@$?Qk%*^cC4x$3BBIDnghYnqLl$|60OdgeH4h3Zc_<;uL&T#zL_8%A z5mfRJ5k(#%gwhN8JWo+-CEV&U2PvsxPmzRrLoFmDEhkOArmNQs^=ekHnd&u5y=JRd zi+U9n6Y1nC_ZE>}T3U&?$5o_BlBKO{X=z^8wpct*&$U2tao<8( zqLOml1gXAxS(8f1RVWJ^=Jdr8B}exqN{p+;O*E3(&5LHai8e{m8M|z zL8U320ZqN{ORv~Xw4Hu$3!bH!)73XJ)R-B9XKCh)93}OP97^3=$uTpfNmL=YzIoxo zx|WoZvBjk$%4<`W*0mHbT!Q5aM!qq3jLB=6vNq(ct_``+I3Mdbif`2b&xxVXzs zjI3OkugfnkXF%tC0A`4seS*0Ue9{=v(Rl8tNKg2dUAp8?@D_PV|CC>I94|UTPs>mA zJC4dn<%e-RpdR}jq1|%du~XhE@5Hf5oGG+U9INHk@^Z(~A}hy2d5%0&9Fx^+tvm{$ zz8r?i&Z7i78B64R^~iRF^5ryfB;gz@jwqZ%)WcuwxbnxYD1Y@}(jV$^))D#v`z3q& z9Uox_VxLp>gIgdV|8CFQtJx=-4x9(PDP)Z-RugS1v0 zE7j{#X|dEO)vL#JX`%EHKLqGQ3j)k6C=)V3wi>Dr8*Jwyr}hg@$PvM$5qfjl5b~R9xClYnx{pM z1>#&P--z5xiO$c6@EH-FN%8qi5hqrhE#kaMz7F(_YMA0|qOi1#|Az2&avPnc1IT5Y zh%-`@@NSXsKPXMl( zUC&YQ2jpXJMZ2D}#jfWHvFo`S>*h_^DMh=UXNg_UYp|-j^m>)9%HI{z+qI-e6eo&SJUVPbW*30K-vJ`0!%(2l`sU^q|)&|boiX&SClB)yTQbfnD$Lom_nA(H<^6 z!r-5A9)SpZ!}s&oLxR`nF9$mhKQ+f{)lQt_=`86P_##nH!{zP7e~H%gIsA9DviK^| z`3FSjy+o0NMfgiW?-ntQ;;oY+JXM^h(HXO5N?ELzOD`cTf#Zrch6rt>RqQ}WeT@_y?7ca&WU!cg~N|YZzW+| z#U-*a9R5wBDEl~0i|`C_jumIIUx1g2@FsD-Nu1Y-bCfubq%(HMQaanjnY_NR+v41S zGp)(@+1LQsSki4jVQIr)X$Qd{l?pvK!q(gulf-Ns!sk^il2PPgno-4-?5w(s2H(r=b0JC&5nkMg6CwD{dtC zJjsUBsM-V9K=?l0VL__UzfDE&6^!0%3Anx%d`!h2{|;Mo0k)=Tx;8}=8B>VHKZGVB>?l7yT% z^(`2kPlun`g?b*G7x6_nH)Ea31zzH-aK@fuoZ%0KEND*!af1A$9yk*xXs=Bb&Qw-e zSX8CNvM8~PlJ3Ae#1)O;3YB;-D8vs}!4Hk#1bx-?8Fr*liCsjA-9(991V2z(q(eGX z?mgXmqSq*|GVh5V9UkjER=b~ff6*=9^$~4?CdOsA_e7VSE?X}-qAtFd%j7~iN6vAH z0xpfK-pd)%)7}%MCoX#&#cuutj(HEHOFKjiXn7f82S4rJ9|KlK#O44aRBzikv$io-X@CC;P^9b^^PAe*m`wcL2MAyMR5w z-N0U8A8-$F0JsmhA9&jS2YUv17I+SL9(VzG5jctGF99zDuK=$CuK}+Er+_zrH-Wbh z_Z?i{#q~YlH1Iyq348!_0UrV%0UrZBz~{ghz<+=*fv7Ik`qNmf#f?ReGZvO(EO!Sy@Qn0J z){fTJj@H(W*4EC7A%$*8p&L@@h7`IXg>Fcp8&c?o6uKdWZb+dUQs{;hx*>&bNTC~2 z=!O)!A%$*8p&L@@h7`IXg>Fcp8&c?o6uKdWZb+dUQs{;hx*>&bNTC~2=!O)!A%$*m zx*MGC2B*8h>27ek8=US2r@O)FZg9FAobCpfyTO$naHR)a=>b=Iz?B|wr3YN;0atp! zl^$@V2VCg^7rMcPZg8O+T<8WDy1|8RaG@Jq=mrs|HvyZ0n}IFBR$v>j9k>$;QB7E?*XTQ z_km8}1E34|5cmlA80Y~$2fhIQ1AGa51$+&B1AGg72b{5A0Ov1&^B2JR3*h_(aQ*@~ ze*v7o0M1_k=P!Ws7od-4p^s;wk7uEeWRp%q5~m@F(~!hzNa8dkaT=014N07aBu+yT zr!gkr_D5J5-gp|L$!CCPf#-ndffs-mfwzEnf%kyZ!23Wa@Bz>Td1mz5%`kz5~tyy}%#9p8)B^)6j_y=tKu}q60e70iEc8PIN#gI-nCB(1{M{ zLb;6 z4Eze51%3mp!0&(_e6xXXHt@{`zS+Px8~A1e-)!KA4ZN^{7dG(1242{}3mbT0121gg zg$=y0ffqLL!UkU0zzZ9AVFNF0;Drsmuz?pg@WKXO*ib(k>Ssg!Y^a|NrCyBLkvFvY z7nJ@1+`aj~ssZ(oJw)(5K>K>2eLc{=9%x?=w66!+*8}bAf%f%4`+A^# zJ>X(5xY!FW_JWJO;9@Vh*b6T9Li>84eLc{=9%x?=w66!+*8}bAf%f%4`+A^#J>YgP zw66yo?*+$u!SP;jycZnr1;=~A@m_Ge7aZ>e$9uu?UU0k@9Pb6kd%^KuaJ&~B?*+$u z!SP;jycgX3`+dPV#P0?E0R9Bd%pvm+rMT> z_H&q_uEqI!U>$G+upZa|Yy>s|HvyZ0n}IFBR$v>j9k>YN-T}@a{`bHSz>mOB zz|X+1z**oozzX~hoJaf%fDN$Q&w(fBz>{;}$vN=k9C&gLJUJ&uaH-fs?hXBpK}#;f zbt<%bK5Ta*deX%hk*vknDc1w*fE$4Izy@F=unD*c*bLkZYyq|c+koxBt-uc8Hee^P z3-||cJ8%cE8@LPD1KbVl1@-~=00)5kfct@yz)Qf(z$?J3z-z$kz$xGj;7#Bi;5={v zumN`aZ>alksQYiI`){cGZ>alks5{mJU|DER?IC;OcTm=0o$dhUp3h?(+<~1V%9sA)`*ns1q{kgp4{NqfW@E6EfV%9s zA)`*ns1q{kgp4{NqfW@E6EfV%9sA)`*ns1q{k zgp4{NqfW@E6EfV%9sA)`*ns1q{kL@ke@mQ+70 z>Ssm$tf-$A^|PXWR@Bdm`dLvwE9z%O{j8{;74@^Cepb}aiuzemKP&2IMg6R(pB449 zqJCD?&x-n4Q9mo{XGQ(2sGk+}v!Z@h)X$3gSy4YL>Ssm$tf-$A^|PXWR@Bdm`dLvw zE9z%O{j8{;74@^Cepb}aiuzemKP&2IMg6R(pB449qJCD?&xHC>4`+pKw!$`BVVkY6 z%~sfED{QkBHrEP!YlXeF!roe8Z>_MmR@hrB?5!2{)(U%Tg}t@H-dbUAt+2ON*jp>? ztrhmx3VUmXy|u#LT48Uk=;5rep;p*XD{Ls0X$cs1RCh>;%Memp_X6?oA)wb-o&hc*7_1A-m>if$z@hB~Roe8_B53&=N zp&vm@b<)>4;vdEg*-78!ptoc8?4)1qpdW%C(n+7;pdZ7pGYGmpS?ZQfIOvb_U*S>h zE9Wr>{ZUv5XFAt9=tnVgKA~_@ehi%Sfu|LmH0T^hmJuBFGrHpQ9=+`?KEU=TH`|JB z6L&ooES*?&_lgHs5pQ`i19wR%#Yn{$`%+_&j-NRrC`cEm(TcOiXfkJHXJy74jahwx zs_%y`%ukF<&&r!uapQ{goWktp#zC2R88f64$&*SF%R@tJ@`@&>T%DdcFnw`KQWAYn zX0+qip0KiHfGaX4K0YfmJDc(e)}~0t7>!037!-u$vn|2i62ETFp2?H%nlp6ew9sq) za)u@q%*e`~SvauL;&*N6w3VLI?rChiXPSA+;M6!vbU|Z9#exDuUVKWy^i1$j_H8J^PQd7s|#~^2s zk|;mzD$(LMD;9~IbCAPH=!}MPfYj7`guJnrnAKz%bi7Y;7v-D7huM1nnm13bueZJX zml8lyR00pw#e-_%&?sFM|F`WFceS14*{TXb14Uf4Ob_VbMX@;=X1_OVFJDE?QfQv^ zozg0mcS%wqYE9u$QaRuu6YmxJVR*=$bZUJHy&bCqPCCg%p&vv)>7-MuROp9PO;GZs zR;kdB!M`lxqg5t~R;kb*$5$`ZTT*;4@B_d6;oyf~6@SL|5_hqkN2MNEW&2Xq@Kez6 z*#AMpjSv--eA|M1r%%6kLD9mRh{b-E5<|(Hyxe(Z=IS(gKaZEj-lD2`eCfc7@T3r^ zdHKQuQ$^~6aWikMR5kRJ;1b%buxa@Hm&?!(!$U{4Gum?`ln%94;veUzr6c~m4*Ef! z3tzfY>;2M`iWZn*&tXn*uG+}UHg2??ke;-C&4VwLag*%>=)nN+=o`eANe@(Abi6Y_ z`r^WD^*wHd+PU|C8)YC4@0V{t8K_Uw;_H_qD77d9dk>tKMVmt2WY{Ub{TEp)op6cA z>Jj4O+ZI?Almhz_cqz0|28~*wpG;b~ahK4&3uUBub~`*{jE@$a6L0gw@S7nIq|11^ zybCoB7A-1M!jqE1BN7vz2O@yLjk1>@M1&_LMnongL`Ec@|5Yt* z1Ph`%*{|xh*IwJPp|cY;dz+^~_rJ6~ z%L{DbDnA~_8^T7IVTk>V+^=d2AHQLP?EvB@@zaR^sm(woL`fc(7ovo;k4EXC4qt{& zZ9ve`a*?(p{&D!xi8D$%tq%H8tWDD{qAGh5#fQ%XJwpc^LoaT&QhdF{j`qJJ($~H)(~^11ULDPg5o&aTv2R#a5!WGW9eHy&b>v;iOZG zRp^JX7U`r@Po~fx#!3ijnv(vEzg;8h!>`1jjenOq}2!(ATn(Mu&u=aaG??mo@D`WBKxw$_g)!nwm)wWhRV{3l=DCOyS5paKw*# zI0r|x0Y+0yjLMe&d>Nj<|IRHMFYV}+(dm(>m2@Jnp|pH{xb4St=XhIKO5~uNK1(!D z*yu5;jsDzWqx;io4UyVQ6)YM`0j*KuAII7~^<@dr-)wLwnKVY}%YuWbJSI~LM$zho zK^Pj$7lMP82@1DlO&yx5UGG(rkyV}J!@^u(C7lq5sEdvH)oMd7qes*fm#sLwdHKEH}`UrIlM z-zlQ{B-m4^+^7%5#~ecAOognAlFDIqB%grVJ7a74aoBmPeHCgy0kw}8?M3a#m5G-{ zsWZBvJ|>8&^R|HEh&Z>Hu;lE_+=4YhIi^8_Hm__gT`)H6j*+8VJ-q^!YJAKoNdsr! zcTTr3lT%` zVyfW95jIoQ*&DUMo2Z>aKdyR}N-$zrjTF)1L_a~}kbXlFjfPL3u%>)tT*UrJ#Y zV2DLL`7Olrgj{8chySusmfwHlrdw{@u;G@Q-rBluJv#Xy{;e&Ne=f!{VaONh%WsKs zV58vAL)aN5#({#~g7PTz!#t)Roks2oy&b=A!k|*LP_r(+v5`+}Y+S{kUA4+qD8|Y0m=kRgbE2y$N6d*H z#Fc)fit!sUs#0d?{nDTrx|)v7j%L%Bm@-SEZ{_)|VwNP*!<@`h^z5QU>MRLkjN*PX zql;!q{c}pYWV*CkDgNc=Ons$Lc*w68^CqPP2eBuN+Kf^HYI_R(ko}u}bZTP?opzXr z`1WMtp-RWRX&CV(3VV&d#H1jc=A09hT9}2I)tZzpSt}dSNsGa47KXOyaXy?pdqLe& zZE~VM(|?I~_Jko-4e4CIMhYm8&}T-CD9%XmtR7Z9CM6wHKz)HJZ~jo*cX=_fO;KrK zQglR6C~1b0FO_C3<2eWQ=yt;Jh$dOA+%Ws&GG1wT9l2oAQ<5;WYbY_a%@^V9IUTdxj8?b6!XjMjeLrzY^+*pe~+7cU+9Tk=3IWVCT=Ju>9 zv8ZiK_0poNV~Y|Ki;S^DaE?Vg2j3)b@C`ep`^~O`wa!TuIAsY&@0m1eMOoSMQ6pAH ztn?ln8<(Tk=f%Yi_Fffvjc4hyD%53oMRKIkSeTet5E~zzTscb7IiyZHM?15jbDygc zyoh?FUZD=6k~rc%)(cmKT0YV_C56M&ohf{*Qnj2sZ))3;!eF)hFPX;$)4W)1QsNZeKU(5d~VRVaG5OH-1${}O-G+KEvnQW(~U9mKte6;P}|5hSt;J9%Y zUjFaJ5*9`Z#P>?{JK+7K8XO;Q(wZ#sG{6hC1Z$%t?d9gsp~G5=@)lH<<+$pDhsS1T zj}9qoOc)Vcn3U?zi>?}G%!rK4G#bn}dloLLtXx<)$Y2S|$cl~fZ}LcvGG`^FEV;gX zcx&-8y(QLYiH^1yp^l2(!#551!xt!5zfxg5d6{+>{@)vx=apKIsxd)ACbvTt(78|h zB-NjKWQLPU+NH!jJjqEVi$+u}Z^y1-C!MrTp&z7mQb&$t>y%UuS)5d|bxQ1G*jKF3 z%~F)mbA|o{SAN$IUQvAc^#;xLXhdvQrX6Za)alF^Aup(@8Cx4!9G>nQ<`Eut%{6>e zV@CC)K<^o@u5pPGjkcvq8yG0*!DrgxEck4)L}8|fxm{M@%ukq-V04s_zueD<0+rxl zxfAmPGQCrZk`fAxq19$Z9nICD>x$aSW6Tke<``pk6h7;-yyqL{)#$48i7w7aGY!gL zIDAy=kko;rY$df<7xJ;j0#ibMOiX@)slX_BM5Q82aF3A6Bl8tr5S93^Q2Y2#)R$GN zmj4U8shzQj{}h{AJ@^kBmWOJ)qqSk=PkubrP|}*QiRz8 zb9gS!l-5vf`wwU4oKRjg#D;}xuuM%yrjh>`YO|M3jaS>gy*NQ?m2ekdCRv!U|EUaGe#pK{lJIVg6J&~P}K0&P@pPGK-Ke^A>2zdo+_UKbm^uU%};b=@-H&rST1Q5@E z6}`ySZHVM|;mdKDK5~&}H~5XOg(h5-N~+`S_xrtq+M*PEw2;KVL~S3kPZG5y`V=7v zqHFkJY^dP)9U}%?+~?8t!_b$e9lG3g2k(0FwL5PhWnBHlJGM`s&8JynF6Op~4UR#K z;N)@f_i98c>`Bp|2o29&NB%LyN8iGe#c2QEYFR8|BYJ@hi!z;X`LQwSML4tx-T0yHQKgPW@=sJ9J~=LbQ9hp_>Yvcu3uwwHoM%F zn&6?y1vLRd)mam#t_z9}OUqoRGliv@`Pt%l6Fdr*=2jbaKlL?2XGrCo8*)=xwUSSe zwqHg_K4e7N;M!!qE|}UiKU-!>yrfwZPf!`#F`a;YYFP0jby%DYoL7R=wR0n}Z>nqs)OCJ|Rc(dW({-bCi6FqFg-E!GgX@ zJVpAc^yMbx@%Q}Su~o}TOO|3VR#MVd6_*pO&y9=C#XwE%FO^<%1r7d*a1HH}tG zLMu)x9Qx2nCEKh}507_Jsc$4I^^GNhLrNNC1C-c@%zd#l94Tw@yRDdII&vh-prmpP zGb|c6`Jp7~sO|s4kL<@EYPHqeh4CjUUbT!W9*ePQZd@FVP|0pxx$=&ZkYtr|9}QQ_ zC%=K8idDb1b)h;xnDzvTN zz#PNI%7lT+pgbua-h`}+M&>jNAa9*I3qW3d{o0lC%5{wY%P-AJUgw+uTsE&LGpQEna;GGJA2Ocv%E#@KAV-trRnj89UAsL7^EIC#{GsiS74 zW%DL(6+R+(wP8nev=PHEcU|-hbIOYAVolMPbpNsHH+Xc?ar;6#>k+#R!-tfaKp5J3`12-Z#=B|8A5- zB0ZZ{TjYP0PiBlEHZnA2XwB>?sblgy7HPA?!y_ZYiqi*&XHD^pv?OGP7z6zM{WP8d zHQ6I;BQgvbfuX^HUVa*1&#dC;LFMs^o}mO}*)f)(QR$N-rWE%%?Cfy=+Rt3wvp5v9ZgtFHKRZ*u0r|1>fMvlP)!!xtjtsD?K!V_H#54W?7 z+)!Rz$Tc?4viKyVF47Sa?olL69~=CI`p8Ttm1L>JJzVXil5Hg_+17kvEtQnXwkoj? zrKqu`L5}>$w!&-Z$dPQTlFBiB8LZHgr6_*ZL4TZMcIb#tUKS<(qxhbf_@ad%;=mV- zy%bNb{O;=;ZoF~B>#(W!@M$*sO5Yu(Iu~&~`{JnH-lOg7=gnU`cmDeJwF?#^eg`kH zJ%<%*Pd?W6F!B`diL!sM@Jh_;6)JIssI(hH8TTu6;)_CWr@gC=RERGM{Sfv_QOOZs z@Qwq3gr-v#?`@(~}MIy69C|FBpT zpRc!cS9oz~x?iM+PVcVk*>=l@ZJ+B>O5fFaFL3h+4l?r}Z1?j?7e31vnM7q0X^EO) zXC1Y3(U&Szs+mGn`cj2T^-`$q!uO_7sa6UVJt@kl$LUFwk=FUM0>~XJn|1o%f9Jb@ zKR1(`7R|7|zmW15@kIXTl>F%vtiMo?h_WhiKSoXzm*!LZaaG0~VG{Ln#*1d^G-LeV zc~Pi8aClKlZJvK|qM&Rva)8eUr8uvY_ya2OrPN1eUygdD&m)Kwh`UM(hijd2iMvFl z)>I_4MoF3YtHeH(?u<>XMu~llZBSz;OBnMy=#S%13Ru$c^O-oKm$&K;wiVkxts#J3uhupmBuV-Mc*SBv|^?%apr0|UY zD|J|6;?UH}Nr^*K!i>i7@E9ZCm{6ILQkgKZ9H&X~QBfvSR22DDY0p3d`ozCCmM$B& zcKGn?#*Mpv`0%yk22~~?(Log^Q>D5+PT32(5-Z#l3kwPs(q2%KG|kg1z-zKS7)P11 zg0QvJ?Dw2;xG6L*H+YHU8xk(9lp<5Hg^l8eKtRFRuRwDu+L~&y(6&v*``Wi2K>fB> zqtP04=GdZvjX|c+&@^LIYLwB5piLK1>Q zGR9}+)D;ysB$o%KMJ}iOpiz24di4XFM43A4M zHKvcxv5X83pOimjN*d$=$qFy2JI%i9vJ6?=jNzbB7l(aaGi^`s>}@Mn*j{{m(<1(Y zt+Z{Eoum11hF?dPqQPN9pLa`m?G=U4ngXzIRGXb0tnRqracK=>0#*eT7&428WJYIt zUz5Z)+r9}5FNx2cZYf&qsV_>6(?<=-N-v2B2MH*N+dq`wV`NAs8{G_tz%BYbOrSRaHC8cu*7hY9m z$c%!Q*+8RaPxItu<<(o73iVO-L4g}?4X~6HE+{FUo3|t?GbSc0Iyx&RCKEq1!l}mO zHy1s!vJ5zlhuRME?`>aU*}UPxgJ|JNC~+Q29L^H)_woAttXRe;G7mlb}n3tJ0xTtXHI7>x^1rr#!b<+w8(o*yDJ<})T4Ve)Z zJSH<|d|KN0oXj!7VKav0O-OIC3{1@nON)+74&^zS2?MjT1}0<@KcnowLUtz=eimoY zFxwleG<|)p3F{2X-V{i%-`;FePafKjpQZZB$WfDAB7$d@mdwj@@-s6!I#W6chL(-l zvS^4QvR`B7>Y%aY{5`vmsFoUxVWdIt(Sk1sEG&TSER0B6^`?% zjkX7_Y#WmK_5fQe^$_8Z&@|~K7Y+ADw=3ayiU~p`YEji9cXFV;m75 znwuBYwtV?T)&ptf;9ZOKGSc$ZQ`#etc9KZj4+cf1-yX-#4ocgV+SoFxLYBp#)B2gr zeyeA3bG2<%75}l<`<7?2`3oa$;fq|`Hc3~FfNer*|1A)#WoVCo%;DZY$BMj1lwf8dv~4{5YKg)!SVpr948 z_xQb_piSGp1_i5)_&Y8X2Ubx~!tvHnK}lENqE+do`~c#>t1jY1+k5d>M2Ug{nxKS% zGL9bv1^y~ZjIHa^% zwA0tJs#6Ay$;=v^GN?K$HYFv_Fff_>S!NX#W7}F?anUTx~Ej^Fl zghMN-f!_|jRNtIY?I%PRx{!h4X8)Lo2wmiWIhw@Mfx~K3G3ZGodjUdLWGjq!NFIQQwA;PBuGkLV~vWJ+~LQc0a5HY!x-8>OA988jruR2-i% zDiMq_>%1bvf;@x0ilTGkO<57I3=Y-#hxp@fE2oA;nT-kNQ0S^ZYQNOkhH6X!!Lp+b zO{zSe_j5K++3VTJZ;Iod7Tbr_F117X;!N9ASnO!jq!#ZI-=OKviinkIYHO@Kv~ zVac>5w=ep~?L55^4@dc6);MfRWgxBAN1~*&P*U3QZlt~y+)>uMph*1-XX)1~!B#lp zJY8Kgwz|5eraC+(CX5gg6%`U36%{;motMVYykmARQkW5R<%qN78C!XJ&$ z1%`(Q>LSdA=@~^u8R^&rO`}?0=(dw*s)+jaL`tXWE%h(f-NdYbf!^_HJkTrKM9dm$ zsfYm^^?f|^1+zRo%Eov^C74P~d80BXSO$$NPx>}CB-8-D8L{>-64qgx;2E2Z9kY+} z&t}^&vJswrSSh(edeSAHtQ7ukLk@j4ff+y=w+cH#&(kmSJOdxgkWGW-kXK62;eE6r z@&0V_eukt`-naM46EE|Awwiu8p5Jqs_p_y9@jk4d{7>5TL)K5E-z?J4mPU%_!FZ1E zZtxtIPdqPHpGS-5q4u4y%R^xq$u8eOb{T));yqpr3fbj#WS8x`VHqh7*=3@HoOn`)#nxL?OFOlrT`n@k&t0E)yjfZw(c3$SxBl5^-jUIAoWJ zq64K`P{=M5B@}gyIRW?h>m_&|j`%}G{B&{e zkLOEeJ)UQX`)E9`758RwABOvJB7Ua04@Uf<;(3<1kHqs?;(4~X*YPFDkIG}A-?zcY z_-FhI)pnYD&@8j>8bq$P5`GEhBRIhW~=Jd@e}~dETbJdn@wh zWBcB+<)1l&5}+>9?QA>r2VDa6X9D|D=+6ZHI1@E*a{Mwhgcry!c(s+c*6krUn^!w80qkeC4FIxidbiRsrgY7@_PcXU;q50Y} zQ@>u&F}T+FNd5S9&w$~XrG*(rv-|SEt7LM_Z`du-!r(x-sbyVwBR^KmC%$Hb{|^C4&v4_ z^kMzx5t?reG#xOA^L>VF%xCoaECT}c_x>{Z41QF44Sd!L`NQ{6j6LSqfuh2!r7+K* zWx4vJQCC|`$D$4;d(ZR<4m=da>+VjtWpM5-37*MQhw7hrLSIxlh58Nh>@5;fSJGs4 z*j*ZDF=z+iD&xwFo9dcu^Sq=CFB^V$yJ@ell;KMz_1Ls&$LPv;O`Asg?_)p2_etLg z{fF)K;eo4dKh(-Y&OdX>({dvo?^|R0VKts&REu8%`GxJ^+lfQ=m++Oe-9D4k&cGK1 zB@;G=<2$3D!LwPE`ZDx`_|t(uUv(AejQuRdEA%$drFbGMbeAe8-K9#U``NefeRzvn zDdPL_tyhV3(qO+P%Jd78Y=YRJ4j+RzCR13&IGs|JoLrT%R=Ly{Y}q@0!rfa6iniZX zGj`9mV#+NZZ;w*nHY)B06ZSpPoaceHsUwn;N2Ds3`r>VS#@5`my{KTz-4n*|-2#ow z#=Edt%wKqcvc%c}1{q=j2k!@nIWop+Sz-c?@?^&+`1%bTo)>NKG){RXZ}>nz--P(u zDMl|t6tBq-NFOwQaZy;Ke&o>dsz}?gu%gA|2c-w(M~6th-^~jagUq?#!9>^15Xg8kZ3Va}dK*iBS%>32oQmo`~{p{W59iGMf9S z_7!uViNapF+Hb+{Vv@b3RAK!Lz-zF4w$8#0WO`wI;i>c#a zT0YVKlT?Bdr?Qz+IX~-S!tWk`hcat$CH|X19|q6!0P0tk87*+A2aEG7yS8lEwPV7r zTW;C4W9BQ$Kkx?W;MW!@K3Pb!Hu$+6I}lUEAl_x;IsLLWJs0V`F4CdrC`CU0`p!)0 zHQ4=C$X$!`{kU?Xv&V%sVKuP!!@XB|BPKR?ql89#iu|PXDt^Bc!(gYEM$u^UE;x-P z?O33FPqZ2Z?+5J!q;?ZU8>GmnVxiN5B|!|&g;PXwX*|59vf{eKjWhQzEzX*nZyx3z zQDZKco`r9NQb&b1g#^IIVV<&j#JJ6Ka&qQu9%rl$&rWI@k}^cYH6>}rtZ0Mf?Xr~* zHq3c&Wf`t>MlCPT%8pGcSV*6s8TGlgU7@;^FDQvH;^OJUC)}Y|D;R6R&nG?$^64E^)jKML>k7yP-!tUQ)k{*^mRdF85SRH$+qWZ-}65a zq+3@(4J4LlzZd=BOPJTxI=z0u|7`_V%n?n<*XiNB!dkD0$^TDd*B;Z>b;f;;G3FV^ z*yb97ZOrxc#W6Ovc^CsF0fGTzFoYz9Kxs-LO`$*&k^l)^)IgR7nyS*Ks>#+&EnTLy zQPNCZ*J@j(s$G;;O%+XDr!D)VUG`A7iM8uP$`%g$oohqrV{0UiFZbT>JnwhT`Q9fz z*d0n4Of8q)r5hcMRW0}R23kro`%)_;XOY9&)X+M3x4)xQ+pcwZjD>-XQn;#R_g$r} zWtju1B~F(|vNndJgFTLrJwHz-l5K;Snzg>AI=aIabXqq^l0C<&HDujc-qiJpR8_D+ zZ_9Gna>Z1G0%HwI`5Y$Ks?E}O0S5D5T>gxHjvgB@|LVVt)nGB5hIoW!wzr4KvSZnJnzs|OXws}0AA>R%mvm-Neqsbj8ac8@ADcjP`cLrjU z4GmLmZBya!R62)ki|1+Mc^CZM)z#hp5_hi6U=*tT{%VV$vzmONmhg0}eL5VTZjVie zfdy98Q?yy>fe1dnl4HS&{4_5214G3HkgJnT*2gI^tsu&49Nb80w^E5&4HIdsZVH7010$|6#Dyfh9_Ry;_l}H?j@-NSgF|G;6dAw3J}1vEEI>+< z&OQTA+rxf_a-8HWc>T9QCw+s|=9jJp7yb&v{5RX4FJyzoK3llORahs>b%m}ig0g=gfBZulmCB6yYjr7qye^CGHCU=ek58zO}y%PDPlTRw7fjxWnAVToVtZC^I z{{@@{#cBS#Mjcm(|008P@{$diix zV3_WNdm!=&T0v5Bs+Hdh7QG(edcB4H4P{(Ix_tA}8;rei>E`SEjmG^(a!|SO) zNUzmg0ymD9uEpW6+M6#mZTO!C=bVu1|9Ycy>|5{%ouFB?0WCKu9=$TR`&eCr5}E-{ zd#;r($hbEk@hkCE_LP?Pg!u2y-!<=RbvcSW4$RdurAnN(&Xa19CxUM|b(|Z;hG@x5y5w8*$CWJXe}A z)7MzsJy1~Vkt}YP!y=}bjQ4E{ZSx*ckKa6ruM7JMdIodT4k`|^B3M|g()C{(7X`GZ zghU?Oc`_Dzbmyj_cGG00x6#TC4fXV z{1LoWJ)n}p;e+9@g4e(YZgmLkyhrA;ydbD3tOn3+YekGtiB^O_Q7e$(-;X(~(m(!Z zdeC_sc)U+9BsI}3DW$Q1@vr~5$0ZJkuJHkbH+R6(;!mZ2=4BV5Y!CWZz$NM^I&MF* zq5+ZP%EP!_3bblPMw7L%v0|`(bAQD#zf>5waz!A~ha5S5!$aKUrLQsF<*o1!4R0;9 zKZIEX+Kjf+*Ayy^bGFL50gpI*EcP!|XbF zr=GmS0vCsec^QXs&c+hi#mnG)$6<2xlaUeRA5rztbaEq+AIE2ExF+B=b}mA;@t@8} z57`#Mf4GkTYD^V@Wn(J-Q&uxx)>{60tt4QKoW5cfMYGxAh$m4*oj(@MIii?j7D*Ex zE3eT#_$oe*(_~(cw}VIP&>-z6kFy7H0A<(k@MUyE4X7rXM4J>SPIF>3xHOT&&Jo0U z!vUE}jwXsg^Tanaba`lq_kI>9a^9dCt{;r!w~O;}+f`ZklB<1FB9`zv@J+Y# z4~g`rVNy3Z$gcMGK2FZEoxGN#s;9|EWL6mwCCZ5w z#uhpsWsOlbRxS8DPV>e+o4_NISEWkVdc94sSTsYVsKr~}o|7(`a&1XN)E#*Vx>|@? z^FupJoW%yoQGkDV{Sio>{-fX~aK9F~Z3n+ijz2T?6pMXt@(kWKvR8OQ3w_u*xINW6 zl`-K#8w_$r4F**pLN(~9Rv(mcA?q93NrhrqLSp6nza&%z?<+r<%= zD^l!h-ng;ZXLCAjuoqw_aO;Zrd@wGE_-wLlvpSu8*U=Tl0&w&8w3Y;7MO}V}!_O0O zefhD^hsXST^UpVfl_)L+!BL|!F>ne)s}7QLY`KF7!M%I0ZDlpIk1e+m%My;FzS>HX z?njO&IG(n|sPlP%Ig2@E z*rV;_>6q@pG4_E{5&2P!-Q7+eV*Bhdiur}!A}{wEP2?TalAwW8Qbab8b5-oaj-|aM z$`)%_-w?61k-L^2p_8nOy?;MR;x%Ke+NgRZcdbBV$z%^2)LK1RURxDax3fOpW0KFl zV<(RxM@S{m3%7c#j1^`hAwkW8Qdj!Y@2QhLr_{ArMFcd3y-2cZn9^s}TQo+mtk%ri zE$Ri0B-?51i*=D)KH7Zf3)%aicj!q;A_5s6y8UaQUHp$#4zE=YjwpaIgYL_UH}u0(iu=DYi8V16ENKEj*N z<2wnL4Sd7{(*@?{&{m2!utHV(xhglfIxu&Dz0!YToC5(2C1g>n>fEgovK$A?sP)Vl zl#opCAjg5vN!${x7W=jUL54|7bdNqV&5lez@+iGyCS`s;Wd^V+)CL_u9JUjxK`qo> zg6Y`I)bxqzsTmqjAD^2$u2%Z(B8c&T-G=wuiG_kQ=nB*N^YZP!LsDLzO!KVY>6@@)ZY zRCG8*-s5iAI$nVu2wIj}@F`qBr!1Xu$v_EY>^tmowo#X%Pwv)ON<>jM8+E!&+N}*y zDLXHFo!J%4!!=u9(SY(W5B#KpE?}fp^_Y1XWDE5pREpBqYSkrh@_55#GMBha=FOA* zd=LY?Gk7d`yx|fegZJUc!Gdb2&> z8qE~N>R+$ZZAwYY&>4-iIoXoo+2AfmNqO+TS;SfjHC#fDz{MW7q{`1aYaCwNZtF%J zf;eboo#WjcpOjx=(3t!=>Fbi!ovEoPB@3ne8~$bB?N_A{aGSkV%=7MWp|j3q&asx(Ua_^~_>}@37WX*1pgiID&Es=%OF76!ktYLBU}}#%=M|fTG~n;NVx#av z5`UkB_c${R?=LF%Dym>2?tcQg6Hc@Nj*Wj4jxk$8_Wgfw40WXe$G!!f8vI8tqV5$O z!TnE_wx%t6ae_fITL1F$fbt~qwE)5W57b}aB(O0n`}}S45+E29nal0*6Qj4yQJgLOU literal 0 HcmV?d00001 diff --git a/fonts/static/Figtree-BoldItalic.ttf b/fonts/static/Figtree-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6b3e86cd49c0c113e8a1394949b0c378142b89ce GIT binary patch literal 40928 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

puv1EmnJUZ~s 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

wvTUFM|$(UI85f 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 z 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 R!1en|D6hZHy!QI*{|!E}Y7YPa literal 0 HcmV?d00001 diff --git a/fonts/static/Figtree-Italic.ttf b/fonts/static/Figtree-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7ff07e582d51e2470a8c8787c72dd25d4d395fd8 GIT binary patch literal 40636 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 S6VgA}{Zc*&z7efBC)>Eg> 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 literal 0 HcmV?d00001 diff --git a/fonts/static/Figtree-Medium.ttf b/fonts/static/Figtree-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5b89c890b8f6f93d2701b5ade7dac12c3840e24f GIT binary patch literal 40148 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�*ejGFR{m^)4qv$m{AKb3Xl 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

BLO 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�znRO6SVN@Y#{E4zCaujrzY3Tm`Vs0D081f8Fp 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

ulFWt}9*Fx^8ma=DNf6 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

6({6&avmdqGAJBadT!@Lj~><3?rf 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 literal 0 HcmV?d00001 diff --git a/scripts/extract-pg-sections.mjs b/scripts/extract-pg-sections.mjs new file mode 100644 index 0000000..32a8587 --- /dev/null +++ b/scripts/extract-pg-sections.mjs @@ -0,0 +1,333 @@ +#!/usr/bin/env node +// +// Extract per-Produktgruppe Beschreibung + Erläuterungen sections from +// the Haushaltsplan 2026/2027 Band 1 PDF. +// +// Each Produktgruppe in Münster's NKF-style budget has a stable section +// layout. We use pdftotext -layout to get text with form-feed page +// breaks, find each PG's pages by its running header, then split each +// PG's combined text by its section headings ("Beschreibung", +// "Erläuterungen", etc.). +// +// Usage: +// node scripts/extract-pg-sections.mjs +// Output: +// data/extracted/pg-sections-2026.json + +import { execSync } from "node:child_process"; +import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; + +const PDF_PATH = "docs/sources/2026_2027/Haushaltsplanentwurf_2026-2027_Band_1.pdf"; +const OUT_PATH = "data/extracted/pg-sections-2026.json"; + +// ── Step 1: PDF → text with form-feed page boundaries ───────────── +const txtPath = join(tmpdir(), "ms-haushalt-band1.txt"); +execSync(`pdftotext -layout "${PDF_PATH}" "${txtPath}"`); +const rawText = readFileSync(txtPath, "utf8"); +const pages = rawText.split("\f"); +console.log(`PDF pages: ${pages.length}`); + +// ── Step 2: Group pages by Produktgruppe number ─────────────────── +// Each Teilplan page has a running header with this layout: +// Haushaltsplan 2026/2027 Dezernat +// Ausschuss: Produktgruppe NNNN +// The PG number appears on the second header line. The name appears on +// the first header line, sandwiched between the "Haushaltsplan" cell +// and the "Dezernat …" cell. +const HEADER_RE_PG = /Produktgruppe\s+(\d{4})\b/; +const HEADER_RE_NAME = /^Haushaltsplan\s+\d{4}\/\d{4}\s{2,}(.+?)\s{2,}Dezernat\s/m; + +const pagesByPg = new Map(); // pgNumber → array of page texts +const namesByPg = new Map(); // pgNumber → display name + +for (const page of pages) { + const headerSlice = page.slice(0, 600); + const pgMatch = headerSlice.match(HEADER_RE_PG); + if (!pgMatch) continue; + const pgNum = pgMatch[1]; + if (!pagesByPg.has(pgNum)) pagesByPg.set(pgNum, []); + pagesByPg.get(pgNum).push(page); + if (!namesByPg.has(pgNum)) { + const nameMatch = headerSlice.match(HEADER_RE_NAME); + if (nameMatch) namesByPg.set(pgNum, nameMatch[1].trim()); + } +} +console.log(`Produktgruppen found: ${pagesByPg.size}`); + +// ── Step 3: Extract sections per PG ─────────────────────────────── +const SECTION_HEADINGS = [ + "Beschreibung", + "Besonderheiten in den Planjahren", + "Ziele", + "Zielkennzahlen", + "Standardkennzahlen", + "Bewirtschaftungsregeln", + "Erläuterungen", +]; + +/** Strip page-running headers/footers and stray page numbers. */ +function cleanPageNoise(text) { + return text + .split("\n") + .filter((line) => { + const t = line.trim(); + if (t === "") return true; + if (/^Haushaltsplan\s+\d{4}\/\d{4}/.test(t)) return false; + if (/^Ausschuss:/.test(t)) return false; + // Page-number lines: a single integer (with possible surrounding ws) + if (/^\d{1,4}$/.test(t)) return false; + return true; + }) + .join("\n"); +} + +/** Find a section by its heading and return text up to the next known + * heading. Headings are matched as full-line tokens — they appear + * flush-left, sometimes with trailing colon. */ +function extractSection(text, heading, otherHeadings) { + const startRe = new RegExp(`^${escapeRe(heading)}:?\\s*$`, "m"); + const startMatch = startRe.exec(text); + if (!startMatch) return null; + const sliceStart = startMatch.index + startMatch[0].length; + const tail = text.slice(sliceStart); + + let endIdx = tail.length; + for (const h of otherHeadings) { + if (h === heading) continue; + const r = new RegExp(`^${escapeRe(h)}:?\\s*$`, "m"); + const m = r.exec(tail); + if (m && m.index < endIdx) endIdx = m.index; + } + // Also stop at the start of a per-Produkt block ("Produkt NNNNNN -") + // and at the financial table headers — these can sit indented with + // leading whitespace on the line, so allow `^\s*`. + for (const r of [ + /^\s*Produkt\s+\d{6}\s*-/m, + /^\s*Teilergebnisplan\b/m, + /^\s*Teilfinanzplan\b/m, + /^\s*Investitionsmaßnahmen\b/m, + /^\s*Investitionen\s+gesamt\b/m, + /^\s*Verpflichtungsermächtigungen\b/m, + ]) { + const m = r.exec(tail); + if (m && m.index < endIdx) endIdx = m.index; + } + return tail.slice(0, endIdx).trim(); +} + +function escapeRe(s) { + return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} + +/** Strip leading + trailing whitespace per line, collapse multiple + * blank lines to one. Preserves paragraph breaks. */ +function tidyParagraphs(text) { + if (!text) return text; + return text + .split("\n") + .map((l) => l.trim()) + .join("\n") + .replace(/\n{3,}/g, "\n\n") + .trim(); +} + +/** + * Parse breakdown tables embedded in Erläuterungen text. + * + * Format we recognize (PG 1601's "zu Zeile 01"): + * zu Zeile NN: + * …prose… + * Aufwandsart Ansatz YYYY in Mio. € Ansatz YYYY in Mio. € + * + * … + * + * Returns: { lineNumber: [ { name, values: { year: euro } } ] } + * + * Numbers in the table are written in Mio. €; we convert to plain + * euros to match our CSV value units. + */ +function parseBreakdowns(erlText) { + if (!erlText) return {}; + const out = {}; + + // Split into "zu Zeile NN" sections (case-insensitive — some PGs + // capitalize "Zu Zeile" at the start of a paragraph). + const sectionRe = /zu\s+Zeile\s+(\d{1,2})(?:[\s,–-]+\d+)*\s*:?/gi; + const sections = []; + let m; + while ((m = sectionRe.exec(erlText)) !== null) { + const lineNum = parseInt(m[1], 10); + sections.push({ lineNum, start: m.index, headerEnd: sectionRe.lastIndex }); + } + for (let i = 0; i < sections.length; i++) { + const s = sections[i]; + const end = i + 1 < sections.length ? sections[i + 1].start : erlText.length; + const body = erlText.slice(s.headerEnd, end); + + // Look for a table header line: at least one "Ansatz YYYY" near a + // "Mio." unit. If there's no such header, skip the table parse + // and try the bullet-list fallback at the bottom of this loop. + const headerLineRe = /^.*Ansatz\s+\d{4}.*Mio\..*$/m; + const hMatch = body.match(headerLineRe); + let tableItems = []; + if (hMatch) { + const years = [...hMatch[0].matchAll(/Ansatz\s+(\d{4})/g)].map( + (m) => Number(m[1]) + ); + if (years.length > 0) { + tableItems = parseTableRows(body, hMatch, years); + } + } + + if (tableItems.length > 0) { + out[s.lineNum] = tableItems; + continue; + } + // No table — try bullet-list parsing on the section body. + const bulletItems = parseBulletItems(body); + if (bulletItems.length > 0) out[s.lineNum] = bulletItems; + } + + return out; +} + +/** Extract table rows from a section body given the matched header + * line and the years that header announced. Returns an array of + * { name, values: { year: euro } } items. */ +function parseTableRows(body, hMatch, years) { + const headerEndIdx = (hMatch.index ?? 0) + hMatch[0].length; + const remainder = body.slice(headerEndIdx); + const rowLines = []; + for (const line of remainder.split("\n")) { + const trimmed = line.trim(); + if (trimmed === "") { + if (rowLines.length > 0) break; // table ended + continue; + } + // Heuristic: a row has a decimal/integer number near the end. + // Lines without trailing numbers are paragraph continuations. + if (!/[\d]+(?:[.,]\d+)?\s*$/.test(trimmed)) { + if (rowLines.length > 0) break; + continue; + } + rowLines.push(trimmed); + } + + const items = []; + for (const row of rowLines) { + const numRe = /(-?\d{1,3}(?:\.\d{3})*(?:,\d+)?|-?\d+(?:,\d+)?)/g; + const nums = [...row.matchAll(numRe)].map((m) => m[0]); + if (nums.length < years.length) continue; + const tailNums = nums.slice(-years.length); + let name = row; + for (const n of [...tailNums].reverse()) { + const idx = name.lastIndexOf(n); + if (idx >= 0) name = name.slice(0, idx); + } + name = name.trim(); + if (!name) continue; + + const values = {}; + for (let k = 0; k < years.length; k++) { + const raw = tailNums[k]; + const num = parseFloat(raw.replace(/\./g, "").replace(",", ".")); + if (!Number.isFinite(num)) continue; + values[years[k]] = num * 1_000_000; // Mio. € → € + } + if (Object.keys(values).length > 0) items.push({ name, values }); + } + return items; +} + +/** + * Parse bullet-list breakdowns. Each line starting with "-" or "•" + * with one or more "X Mio. Euro (YYYY)" / "X Euro (YYYY)" patterns + * becomes an item. Common forms in Münster's Erläuterungen: + * + * - Westf. Zoo Münster GmbH i. H. v. 4,10 Mio. Euro (2026) / 4,1 Mio Euro (2027) + * - Lernmittel = 1.435.000 Euro (2026), 1.435.000 Euro (2027) + * - Erträge … in Höhe von 247.630 Euro (2026), 252.680 Euro (2027) + */ +function parseBulletItems(text) { + const items = []; + const valueRe = + /(\d{1,3}(?:\.\d{3})*(?:,\d+)?|\d+(?:,\d+)?)\s*(Mio\.?\s*(?:Euro|€)|Euro|€)\s*\(?(\d{4})\)?/gi; + // Strip "(Gesamtsumme: NNN Euro (YYYY))" parentheticals down to + // just "(YYYY)" so the per-item parser sees a clean + // `value Euro (year)` shape. The PG 0301 line 13/16 bullets use + // this nested form to reference the category total inline; we keep + // the year tag (which the item's value belongs to) and drop the + // total reference. + const gesamtRe = + /\(\s*Gesamtsumme:[^()]*\((20\d{2})\)[^()]*\)/g; + + for (const rawLine of text.split("\n")) { + if (!/^\s*[-•]\s+/.test(rawLine)) continue; + const line = rawLine.replace(gesamtRe, "($1)"); + + const values = []; + let firstValIdx = -1; + let m; + valueRe.lastIndex = 0; + while ((m = valueRe.exec(line)) !== null) { + if (firstValIdx === -1) firstValIdx = m.index; + const num = parseFloat( + m[1].replace(/\./g, "").replace(",", ".") + ); + if (!Number.isFinite(num)) continue; + const isMio = /Mio/i.test(m[2]); + const value = isMio ? num * 1_000_000 : num; + const year = parseInt(m[3], 10); + values.push({ year, value }); + } + if (values.length === 0) continue; + + // The name is everything before the first value, minus the + // bullet marker and trailing value indicators. + let name = line.slice(0, firstValIdx).replace(/^\s*[-•]\s+/, "").trim(); + name = name + .replace(/\s+(?:i\.\s*H\.\s*v\.?|in\s+H[öo]he\s+von|=)\s*$/i, "") + .replace(/\s+\(.*?\)\s*$/, "") // drop trailing parenthetical + .replace(/\s+[-–]\s+hier:.*$/i, "") // drop "- hier: ..." asides + .trim(); + if (!name || name.length < 2) continue; + + const valuesByYear = {}; + for (const v of values) valuesByYear[v.year] = v.value; + items.push({ name, values: valuesByYear }); + } + return items; +} + +const out = {}; +let withBeschreibung = 0; +let withErlauterungen = 0; +for (const [pgNum, pgPages] of pagesByPg) { + const fullText = cleanPageNoise(pgPages.join("\n\n")); + const beschreibung = tidyParagraphs( + extractSection(fullText, "Beschreibung", SECTION_HEADINGS) + ); + const erlaeuterungen = tidyParagraphs( + extractSection(fullText, "Erläuterungen", SECTION_HEADINGS) + ); + if (beschreibung) withBeschreibung++; + if (erlaeuterungen) withErlauterungen++; + const breakdowns = parseBreakdowns(erlaeuterungen); + out[pgNum] = { + pgNumber: pgNum, + name: namesByPg.get(pgNum) ?? "", + beschreibung: beschreibung ?? null, + erlaeuterungen: erlaeuterungen ?? null, + breakdowns, // { lineNum: [ { name, values: { year: euro } } ] } + }; +} + +console.log(` with Beschreibung: ${withBeschreibung}`); +console.log(` with Erläuterungen: ${withErlauterungen}`); + +// ── Step 4: Write JSON ──────────────────────────────────────────── +mkdirSync("data/extracted", { recursive: true }); +writeFileSync(OUT_PATH, JSON.stringify(out, null, 2), "utf8"); +console.log(`Wrote ${OUT_PATH}`); diff --git a/src/components/Icicle.astro b/src/components/Icicle.astro new file mode 100644 index 0000000..b1da80c --- /dev/null +++ b/src/components/Icicle.astro @@ -0,0 +1,1003 @@ +--- +// SVG zoomable-icicle. Rendered statically at build time, hydrated with +// a small client script for click-to-zoom. +// +// Three columns: +// 1 · Produktbereich — left, the spine, biggest type +// 2 · Produktgruppe — middle, the detail, medium type +// 3 · Category — right, narrow stripe, no labels (visual-only) +// +// Labels render as native SVG in viewBox-unit font sizes, which +// keeps sizing predictable regardless of how the page scales the SVG. + +import type { + BothFlowsLayout, + IcicleNode, +} from "../lib/icicle.ts"; +import { VB_H, VB_W } from "../lib/icicle.ts"; +import { tileColor } from "../lib/colors.ts"; +import { fmtEuroCompact, fmtPercentage } from "../lib/format.ts"; +import type { Flow } from "../data/types.ts"; + +interface Props { + bothFlows: BothFlowsLayout; +} + +const { bothFlows } = Astro.props as Props; +const defaultFlow = bothFlows.defaultFlow; +const defaultYearIdx = bothFlows.years.indexOf(bothFlows.defaultYear); + +// Both flows' bars share the canvas: SSR renders both, the page's +// data-active-flow attribute picks which set is visible. Each flow's +// initial layout uses its OWN max-total ratio so the bars span the +// year-budget portion of the canvas correctly. +const flowOrder: Flow[] = ["aufwendungen", "ertraege"]; +const dataByFlow = Object.fromEntries( + flowOrder.map((flow) => { + const my = bothFlows.byFlow[flow]; + const ratio = + my.maxTotal > 0 + ? (my.totals[defaultYearIdx] ?? 0) / my.maxTotal + : 1; + return [flow, { my, ratio }]; + }) +) as Record; + +// Compact JSON payload — both flows' per-path series are embedded so +// the runtime can swap between them on toggle without round-trips. +const dataPayload = { + years: bothFlows.years, + defaultYear: bothFlows.defaultYear, + defaultFlow: bothFlows.defaultFlow, + maxTotalAcrossBothFlows: bothFlows.maxTotalAcrossBothFlows, + byFlow: Object.fromEntries( + flowOrder.map((flow) => { + const my = bothFlows.byFlow[flow]; + return [ + flow, + { + totals: my.totals, + maxTotal: my.maxTotal, + paths: Object.fromEntries( + Object.entries(my.paths).map(([path, p]) => [ + path, + { + d: p.depth, + x0: p.x0, + x1: p.x1, + v: p.series.v, + y0: p.series.y0, + y1: p.series.y1, + }, + ]) + ), + }, + ]; + }) + ), +}; + +// Per-depth label rendering rules. Sizes are in viewBox units; at +// VB_H = 2000, a font-size of 30 reads roughly equivalent to 15px when +// the canvas is rendered at ~1000px tall (50% scale). +// +// The size hierarchy is intentional: depth-1 is significantly larger +// than depth-2 so the eye reads the Bereich names as the spine. We +// drop the share-% from text entirely (the bar height already encodes +// it), and depth-3 (categories) shows name only — no value line. +interface DepthStyle { + nameSize: number; + /** Value line size; if 0, no value line is rendered. */ + metaSize: number; + /** Min bar height (viewBox units) before the name shows. */ + minNameH: number; + /** Min bar height before the value line shows below the name. */ + minMetaH: number; +} +const DEPTH_STYLE: Record = { + 1: { nameSize: 42, metaSize: 26, minNameH: 56, minMetaH: 110 }, + 2: { nameSize: 32, metaSize: 22, minNameH: 42, minMetaH: 90 }, + 3: { nameSize: 22, metaSize: 16, minNameH: 28, minMetaH: 60 }, + 4: { nameSize: 18, metaSize: 0, minNameH: 24, minMetaH: 9999 }, +}; + +const PAD_X = 18; // viewBox units +const PAD_TOP = 12; // viewBox units, breathing room above the name +const NAME_META_GAP = 8; +--- + +

+ + diff --git a/src/data/__check.ts b/src/data/__check.ts new file mode 100644 index 0000000..822026a --- /dev/null +++ b/src/data/__check.ts @@ -0,0 +1,61 @@ +// Ad-hoc sanity check, not a real test runner. +// pnpm exec tsx src/data/__check.ts + +import { loadBudget } from "./load.js"; + +function fmtEUR(n: number): string { + return new Intl.NumberFormat("de-DE", { + style: "currency", + currency: "EUR", + maximumFractionDigits: 0, + }).format(n); +} + +const tree = await loadBudget(); + +console.log(`Years: ${tree.years.length} (${tree.years[0]}–${tree.years.at(-1)})`); +console.log(`Produktbereiche: ${tree.produktbereiche.length}`); +console.log( + `Produktgruppen total: ${tree.produktbereiche.reduce( + (n, b) => n + b.produktgruppen.length, + 0 + )}` +); +console.log(`Overlap notes (>5% disagreement): ${tree.overlaps.length}`); + +// Bucket overlaps by year to confirm they're concentrated in the expected +// triple-counted years (2025/26/27 appear in two plans each). +const byYear: Record = {}; +for (const o of tree.overlaps) byYear[o.year] = (byYear[o.year] ?? 0) + 1; +console.log("Overlaps by year:", byYear); + +// Sample 3 overlaps to confirm they're plausible plan revisions, not bugs. +console.log("\nSample overlaps:"); +for (const o of tree.overlaps.slice(0, 3)) { + console.log( + ` ${o.produktbereich} > ${o.produktgruppe} · ${o.year} · ${o.category}` + ); + for (const v of o.values) { + console.log(` ${v.source.padEnd(50)} ${fmtEUR(v.value)}`); + } + console.log(` Δ = ${(o.divergencePct * 100).toFixed(1)}%`); +} + +for (const year of [2022, 2025, 2026, 2028]) { + const t = tree.totals[year]; + if (!t) continue; + console.log( + `\n${year}: Aufw ${fmtEUR(t.aufwendungen.total)} · Ertr ${fmtEUR( + t.ertraege.total + )} · Saldo ${fmtEUR(t.ertraege.total - t.aufwendungen.total)}` + ); +} + +console.log("\nTop 5 Produktbereiche by Aufwand 2026:"); +const ranked = [...tree.produktbereiche] + .map((b) => ({ name: b.name, aufwand: b.totals[2026]?.aufwendungen.total ?? 0 })) + .sort((a, b) => b.aufwand - a.aufwand) + .slice(0, 5); +for (const r of ranked) { + console.log(` ${r.name.padEnd(42)} ${fmtEUR(r.aufwand)}`); +} diff --git a/src/data/load.ts b/src/data/load.ts new file mode 100644 index 0000000..d9cae2b --- /dev/null +++ b/src/data/load.ts @@ -0,0 +1,305 @@ +// Build-time data loader. Reads the four source CSVs from data/, merges them, +// resolves overlaps between plan files, and produces a BudgetTree consumed by +// the page and treemap components. +// +// Conflict resolution policy (per design brief §9, open question 2): +// • When the same {produktbereich, produktgruppe, year, category} cell +// appears in two plan files, the NEWER plan wins (later planYear). +// • Disagreements >5 % are recorded in `overlaps` so we can footnote them. +// • Jahresabschluss values (actuals) always win against plan values for the +// same year — actuals supersede projections. + +import { promises as fs } from "node:fs"; +import path from "node:path"; + +import type { + BudgetRow, + BudgetTree, + CategoryKey, + Flow, + FlowTotals, + OverlapNote, + ProduktbereichNode, + ProduktgruppeNode, + SourceFile, +} from "./types.js"; +import { AUFWAND_KEYS, ERTRAG_KEYS } from "./types.js"; +import { parseCsv } from "./parse.js"; + +// Astro runs both `dev` and `build` from the project root, so cwd is stable. +// Avoiding `import.meta.url` here because the bundled output ends up under +// dist/.prerender/chunks/ and the path arithmetic doesn't survive that move. +const DATA_DIR = path.join(process.cwd(), "data"); + +const SOURCES: SourceFile[] = [ + { + path: "jahresabschluesse/Jahresabschluss-Muenster-2008-2022.csv", + planYear: 2022, + kind: "actual", + }, + { path: "2023/Haushaltsplan-Muenster-2023.csv", planYear: 2023, kind: "plan" }, + { path: "2024/Haushaltsplan-Muenster-2024-2027.csv", planYear: 2024, kind: "plan" }, + { path: "2025/HH_Plan_Muenster_25-28.csv", planYear: 2025, kind: "plan" }, +]; + +const ERTRAG_SET: ReadonlySet = new Set(ERTRAG_KEYS); +const AUFWAND_SET: ReadonlySet = new Set(AUFWAND_KEYS); + +const SLUG_REPLACEMENTS: Array = [ + [/ä/g, "ae"], + [/ö/g, "oe"], + [/ü/g, "ue"], + [/ß/g, "ss"], +]; + +function slugify(input: string): string { + let s = input.toLowerCase(); + for (const [pat, rep] of SLUG_REPLACEMENTS) s = s.replace(pat, rep); + s = s.replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, ""); + return s || "n-a"; +} + +interface CellKey { + bereich: string; + gruppe: string; + year: number; + category: CategoryKey; +} + +function cellKeyString(k: CellKey): string { + return `${k.bereich}${k.gruppe}${k.year}${k.category}`; +} + +interface CellEntry { + value: number; + source: SourceFile; +} + +/** + * Pick the canonical value among multiple sources for the same cell. Returns + * the chosen entry plus a possible OverlapNote when sources disagreed. + */ +function resolveCell(key: CellKey, entries: CellEntry[]): { + chosen: CellEntry; + overlap?: OverlapNote; +} { + // Prefer actuals over plans; among plans prefer the newer planYear. + const sorted = [...entries].sort((a, b) => { + if (a.source.kind !== b.source.kind) { + return a.source.kind === "actual" ? -1 : 1; + } + return b.source.planYear - a.source.planYear; + }); + const chosen = sorted[0]!; + + if (entries.length < 2) return { chosen }; + const values = entries.map((e) => e.value); + const max = Math.max(...values.map(Math.abs)); + const min = Math.min(...values.map(Math.abs)); + // Divergence as fraction of the larger magnitude. 0 if both are 0. + const divergencePct = max === 0 ? 0 : (max - min) / max; + if (divergencePct > 0.05) { + return { + chosen, + overlap: { + produktbereich: key.bereich, + produktgruppe: key.gruppe, + year: key.year, + category: key.category, + values: entries.map((e) => ({ + source: e.source.path, + value: e.value, + })), + divergencePct, + }, + }; + } + return { chosen }; +} + +function emptyFlowTotals(): FlowTotals { + return { total: 0, byCategory: {} }; +} + +function emptyYearTotals(): Record { + return { aufwendungen: emptyFlowTotals(), ertraege: emptyFlowTotals() }; +} + +function addToFlow(target: FlowTotals, key: CategoryKey, value: number): void { + target.total += value; + target.byCategory[key] = (target.byCategory[key] ?? 0) + value; +} + +/** Read all source CSVs and return the merged, normalized BudgetTree. */ +export async function loadBudget(): Promise { + // Read & parse every file. + const allRows: BudgetRow[] = []; + for (const source of SOURCES) { + const full = path.join(DATA_DIR, source.path); + const text = await fs.readFile(full, "utf8"); + const rows = parseCsv(text, source); + allRows.push(...rows); + } + + // For overlap resolution we operate on LEAF rows only. Subtotal rows (kind + // !== "leaf") are discarded — we recompute subtotals ourselves to guarantee + // consistency between the levels of the treemap. + const leafRows = allRows.filter((r) => r.kind === "leaf"); + + // Bucket each cell value by its CellKey, then resolve. + const buckets = new Map(); + for (const row of leafRows) { + for (const [catKey, value] of Object.entries(row.categories) as Array< + [CategoryKey, number] + >) { + const key: CellKey = { + bereich: row.produktbereich, + gruppe: row.produktgruppe, + year: row.year, + category: catKey, + }; + const ks = cellKeyString(key); + const existing = buckets.get(ks); + if (existing) { + existing.entries.push({ value, source: row.source }); + } else { + buckets.set(ks, { key, entries: [{ value, source: row.source }] }); + } + } + } + + // Resolve buckets and re-fold into a per-(bereich, gruppe, year) structure. + type LeafYearMap = Map>; + type LeafMap = Map; // key = bereich|gruppe + const leafIndex: LeafMap = new Map(); + // Track display names (first observed wins; consistent across files). + const displayNames = new Map(); + const overlaps: OverlapNote[] = []; + + for (const { key, entries } of buckets.values()) { + const { chosen, overlap } = resolveCell(key, entries); + if (overlap) overlaps.push(overlap); + + const leafKey = `${key.bereich}${key.gruppe}`; + if (!displayNames.has(leafKey)) { + displayNames.set(leafKey, { bereich: key.bereich, gruppe: key.gruppe }); + } + let yearMap = leafIndex.get(leafKey); + if (!yearMap) { + yearMap = new Map(); + leafIndex.set(leafKey, yearMap); + } + let totals = yearMap.get(key.year); + if (!totals) { + totals = emptyYearTotals(); + yearMap.set(key.year, totals); + } + if (ERTRAG_SET.has(key.category)) { + addToFlow(totals.ertraege, key.category, chosen.value); + } else if (AUFWAND_SET.has(key.category)) { + addToFlow(totals.aufwendungen, key.category, chosen.value); + } + } + + // Group leaves by Produktbereich and aggregate up. + const bereichMap = new Map< + string, + { + name: string; + slug: string; + gruppen: ProduktgruppeNode[]; + totals: Record>; + } + >(); + + // Track all years seen (across all leaves) so the slider has a stable axis. + const yearSet = new Set(); + + for (const [leafKey, yearMap] of leafIndex.entries()) { + const names = displayNames.get(leafKey)!; + const gruppe: ProduktgruppeNode = { + name: names.gruppe, + slug: slugify(names.gruppe), + totals: {}, + }; + for (const [year, perFlow] of yearMap.entries()) { + gruppe.totals[year] = perFlow; + yearSet.add(year); + } + + let bereich = bereichMap.get(names.bereich); + if (!bereich) { + bereich = { + name: names.bereich, + slug: slugify(names.bereich), + gruppen: [], + totals: {}, + }; + bereichMap.set(names.bereich, bereich); + } + bereich.gruppen.push(gruppe); + + // Roll up into the bereich totals. + for (const [year, perFlow] of yearMap.entries()) { + let bTotals = bereich.totals[year]; + if (!bTotals) { + bTotals = emptyYearTotals(); + bereich.totals[year] = bTotals; + } + for (const flow of ["aufwendungen", "ertraege"] as const) { + bTotals[flow].total += perFlow[flow].total; + for (const [cat, v] of Object.entries(perFlow[flow].byCategory) as Array< + [CategoryKey, number] + >) { + bTotals[flow].byCategory[cat] = + (bTotals[flow].byCategory[cat] ?? 0) + v; + } + } + } + } + + // Grand totals across all bereiche. + const grandTotals: Record> = {}; + for (const bereich of bereichMap.values()) { + for (const [yearStr, perFlow] of Object.entries(bereich.totals)) { + const year = Number(yearStr); + let g = grandTotals[year]; + if (!g) { + g = emptyYearTotals(); + grandTotals[year] = g; + } + for (const flow of ["aufwendungen", "ertraege"] as const) { + g[flow].total += perFlow[flow].total; + for (const [cat, v] of Object.entries(perFlow[flow].byCategory) as Array< + [CategoryKey, number] + >) { + g[flow].byCategory[cat] = (g[flow].byCategory[cat] ?? 0) + v; + } + } + } + } + + const years = [...yearSet].sort((a, b) => a - b); + // Default slider position = latest year present (planning years included). + const defaultYear = years[years.length - 1] ?? new Date().getFullYear(); + + // Stable sort: Produktbereiche alphabetically by display name. + const produktbereiche: ProduktbereichNode[] = [...bereichMap.values()] + .map((b) => ({ + name: b.name, + slug: b.slug, + produktgruppen: b.gruppen.sort((a, b) => + a.name.localeCompare(b.name, "de") + ), + totals: b.totals, + })) + .sort((a, b) => a.name.localeCompare(b.name, "de")); + + return { + years, + defaultYear, + produktbereiche, + totals: grandTotals, + overlaps, + }; +} diff --git a/src/data/parse.ts b/src/data/parse.ts new file mode 100644 index 0000000..a145b5f --- /dev/null +++ b/src/data/parse.ts @@ -0,0 +1,114 @@ +// CSV parsing for the four source files. Handles: +// • UTF-8 BOM +// • `;` separator +// • German number format (`.` thousands, `,` decimal) +// • Sign convention: source revenues are negative, source expenses are +// positive. We flip revenues to positive so downstream code can treat both +// flows symmetrically. +// • Header drift: `Leistunngsentgelte` (double-n) and `algemeine` (single-l) +// map to the same canonical CategoryKey. +// • The 2025 plan's extra `Globaler Minderaufwand` column. +// • Empty rows (the 2023 plan and Jahresabschluss have a stray blank line). + +import { dsvFormat } from "d3-dsv"; +import type { + BudgetRow, + CategoryKey, + Categories, + RowKind, + SourceFile, +} from "./types.js"; +import { ERTRAG_KEYS } from "./types.js"; + +const semicolon = dsvFormat(";"); + +// Maps a verbatim source-CSV header (after BOM strip and trim) to a canonical +// CategoryKey. Includes the known typos and spelling variants observed across +// files. If a header does not appear here it is silently ignored — the first +// three columns (Produktbereich, Produktgruppe, Geschäftsjahr) are handled +// separately. +const HEADER_TO_KEY: ReadonlyMap = new Map([ + ["Steuern und ähnliche Abgaben", "steuern"], + ["Zuwendungen und allgemeine Umlagen", "zuwendungenAllgemeineUmlagen"], + ["Zuwendungen und algemeine Umlagen", "zuwendungenAllgemeineUmlagen"], + ["Sonstige Transfererträge", "sonstigeTransfererträge"], + ["Öffentlich-rechtliche Leistungsentgelte", "öffentlichRechtlicheLeistungsentgelte"], + ["Öffentlich-rechtliche Leistunngsentgelte", "öffentlichRechtlicheLeistungsentgelte"], + ["Privatrechtliche Leistungsentgelte", "privatrechtlicheLeistungsentgelte"], + ["Kostenerstattungen und Kostenumlagen", "kostenerstattungenKostenumlagen"], + ["Sonstige ordentliche Erträge", "sonstigeOrdentlicheErträge"], + ["Aktivierte Eigenleistungen", "aktivierteEigenleistungen"], + ["Bestandsveränderungen", "bestandsveränderungen"], + ["Personalaufwendungen", "personalaufwendungen"], + ["Versorgungsaufwendungen", "versorgungsaufwendungen"], + ["Aufwendungen für Sach- und Dienstleistungen", "sachUndDienstleistungen"], + ["Bilanzielle Abschreibungen", "bilanzielleAbschreibungen"], + ["Transferaufwendungen", "transferaufwendungen"], + ["Sonstige ordentliche Aufwendungen", "sonstigeOrdentlicheAufwendungen"], + ["Finanzerträge", "finanzerträge"], + ["Zinsen und sonstige Finanzaufwendungen", "zinsenFinanzaufwendungen"], + ["Außerordentliche Erträge", "außerordentlicheErträge"], + ["Außerordentliche Aufwendungen", "außerordentlicheAufwendungen"], + ["Globaler Minderaufwand", "globalerMinderaufwand"], +]); + +const ERTRAG_SET: ReadonlySet = new Set(ERTRAG_KEYS); + +/** Parse a German-formatted decimal. Returns undefined for empty/missing. */ +function parseGermanNumber(raw: string | undefined): number | undefined { + if (raw === undefined) return undefined; + const trimmed = raw.trim(); + if (trimmed === "") return undefined; + // `-733.670.000,00` → `-733670000.00` + const normalized = trimmed.replace(/\./g, "").replace(",", "."); + const n = Number(normalized); + return Number.isFinite(n) ? n : undefined; +} + +function classifyRow(produktbereich: string, produktgruppe: string): RowKind { + if (produktbereich === "Gesamt" && produktgruppe === "Gesamt") return "grandTotal"; + if (produktgruppe === "Gesamt") return "produktbereichTotal"; + return "leaf"; +} + +/** + * Parse one CSV file's contents into BudgetRows. + * + * `text` is the file's raw UTF-8 content (BOM tolerated). `source` describes + * provenance for downstream conflict resolution. + */ +export function parseCsv(text: string, source: SourceFile): BudgetRow[] { + // Strip BOM if present; d3-dsv doesn't. + const stripped = text.charCodeAt(0) === 0xfeff ? text.slice(1) : text; + const rows = semicolon.parse(stripped); + + const out: BudgetRow[] = []; + for (const row of rows) { + const produktbereich = (row["Produktbereich"] ?? "").trim(); + const produktgruppe = (row["Produktgruppe"] ?? "").trim(); + const yearRaw = (row["Geschäftsjahr"] ?? "").trim(); + if (!produktbereich || !produktgruppe || !yearRaw) continue; + const year = Number.parseInt(yearRaw, 10); + if (!Number.isInteger(year)) continue; + + const categories: Categories = {}; + for (const [header, value] of Object.entries(row)) { + const key = HEADER_TO_KEY.get(header.trim()); + if (!key) continue; + const n = parseGermanNumber(value); + if (n === undefined) continue; + // Source convention: revenues negative, expenses positive. Flip revenues. + categories[key] = ERTRAG_SET.has(key) ? -n : n; + } + + out.push({ + produktbereich, + produktgruppe, + year, + kind: classifyRow(produktbereich, produktgruppe), + categories, + source, + }); + } + return out; +} diff --git a/src/data/types.ts b/src/data/types.ts new file mode 100644 index 0000000..e007300 --- /dev/null +++ b/src/data/types.ts @@ -0,0 +1,162 @@ +// The 19 financial line-item columns appearing in the source CSVs. +// `globalerMinderaufwand` exists only in the 2025 plan (23 columns); other +// files are 22 columns. All other categories are present in every file. +// +// Source-CSV column names are preserved verbatim where helpful, including the +// `Leistunngsentgelte` typo and `algemeine` (single-l) drift across files. + +export type Flow = "aufwendungen" | "ertraege"; + +export type ErtragKey = + | "steuern" + | "zuwendungenAllgemeineUmlagen" + | "sonstigeTransfererträge" + | "öffentlichRechtlicheLeistungsentgelte" + | "privatrechtlicheLeistungsentgelte" + | "kostenerstattungenKostenumlagen" + | "sonstigeOrdentlicheErträge" + | "aktivierteEigenleistungen" + | "bestandsveränderungen" + | "finanzerträge" + | "außerordentlicheErträge"; + +export type AufwandKey = + | "personalaufwendungen" + | "versorgungsaufwendungen" + | "sachUndDienstleistungen" + | "bilanzielleAbschreibungen" + | "transferaufwendungen" + | "sonstigeOrdentlicheAufwendungen" + | "zinsenFinanzaufwendungen" + | "außerordentlicheAufwendungen" + | "globalerMinderaufwand"; + +export type CategoryKey = ErtragKey | AufwandKey; + +export const ERTRAG_KEYS: ReadonlyArray = [ + "steuern", + "zuwendungenAllgemeineUmlagen", + "sonstigeTransfererträge", + "öffentlichRechtlicheLeistungsentgelte", + "privatrechtlicheLeistungsentgelte", + "kostenerstattungenKostenumlagen", + "sonstigeOrdentlicheErträge", + "aktivierteEigenleistungen", + "bestandsveränderungen", + "finanzerträge", + "außerordentlicheErträge", +]; + +export const AUFWAND_KEYS: ReadonlyArray = [ + "personalaufwendungen", + "versorgungsaufwendungen", + "sachUndDienstleistungen", + "bilanzielleAbschreibungen", + "transferaufwendungen", + "sonstigeOrdentlicheAufwendungen", + "zinsenFinanzaufwendungen", + "außerordentlicheAufwendungen", + "globalerMinderaufwand", +]; + +// Display labels in German (for tooltips and detail panels). Keys match +// CategoryKey; the canonical (non-typo) German names are used here. +export const CATEGORY_LABELS: Record = { + steuern: "Steuern und ähnliche Abgaben", + zuwendungenAllgemeineUmlagen: "Zuwendungen und allgemeine Umlagen", + sonstigeTransfererträge: "Sonstige Transfererträge", + öffentlichRechtlicheLeistungsentgelte: "Öffentlich-rechtliche Leistungsentgelte", + privatrechtlicheLeistungsentgelte: "Privatrechtliche Leistungsentgelte", + kostenerstattungenKostenumlagen: "Kostenerstattungen und Kostenumlagen", + sonstigeOrdentlicheErträge: "Sonstige ordentliche Erträge", + aktivierteEigenleistungen: "Aktivierte Eigenleistungen", + bestandsveränderungen: "Bestandsveränderungen", + finanzerträge: "Finanzerträge", + außerordentlicheErträge: "Außerordentliche Erträge", + personalaufwendungen: "Personalaufwendungen", + versorgungsaufwendungen: "Versorgungsaufwendungen", + sachUndDienstleistungen: "Aufwendungen für Sach- und Dienstleistungen", + bilanzielleAbschreibungen: "Bilanzielle Abschreibungen", + transferaufwendungen: "Transferaufwendungen", + sonstigeOrdentlicheAufwendungen: "Sonstige ordentliche Aufwendungen", + zinsenFinanzaufwendungen: "Zinsen und sonstige Finanzaufwendungen", + außerordentlicheAufwendungen: "Außerordentliche Aufwendungen", + globalerMinderaufwand: "Globaler Minderaufwand", +}; + +export type Categories = Partial>; + +// `Gesamt` rows (where Produktgruppe is "Gesamt") are subtotals at the +// Produktbereich level. The single Produktbereich="Gesamt" row is the grand +// total. We retain both but mark them so they can be filtered out of leaf-level +// aggregations. +export type RowKind = "leaf" | "produktbereichTotal" | "grandTotal"; + +export interface BudgetRow { + produktbereich: string; + produktgruppe: string; + year: number; + kind: RowKind; + // Numeric values, normalized: revenues are now POSITIVE (sign flipped from + // source). Empty source cells become `undefined`, not 0. + categories: Categories; + // Provenance: which CSV file contributed this row. Used to resolve overlaps + // between plan years. + source: SourceFile; +} + +export interface SourceFile { + /** Filename relative to data/ (e.g., "2025/HH_Plan_Muenster_25-28.csv"). */ + path: string; + /** Plan year of the file. For Jahresabschluss this is the file's max year. */ + planYear: number; + /** Whether the file contains actuals (Jahresabschluss) or planning values. */ + kind: "actual" | "plan"; +} + +// Aggregated per-year, per-flow totals across the leaves of one node. +export interface FlowTotals { + /** Sum across all categories belonging to the flow, in absolute euros. */ + total: number; + /** Per-category breakdown. Missing categories omitted. */ + byCategory: Categories; +} + +// The shape consumed by the page and treemap components. +export interface BudgetTree { + /** Sorted list of years for which we have data. */ + years: number[]; + /** Year of the latest plan (default slider position). */ + defaultYear: number; + /** Top-level: Produktbereich → Produktgruppe → year → flow totals. */ + produktbereiche: ProduktbereichNode[]; + /** Across all Produktbereiche, per-year, per-flow grand totals. */ + totals: Record>; + /** Conflicts where two source files disagreed by >5% on the same cell. */ + overlaps: OverlapNote[]; +} + +export interface ProduktbereichNode { + name: string; + /** Stable URL slug derived from name. */ + slug: string; + produktgruppen: ProduktgruppeNode[]; + /** Per-year, per-flow totals aggregated from leaf produktgruppen. */ + totals: Record>; +} + +export interface ProduktgruppeNode { + name: string; + slug: string; + /** Per-year, per-flow totals from the source row(s) for this leaf. */ + totals: Record>; +} + +export interface OverlapNote { + produktbereich: string; + produktgruppe: string; + year: number; + category: CategoryKey; + values: { source: string; value: number }[]; + divergencePct: number; +} diff --git a/src/lib/breakdowns.ts b/src/lib/breakdowns.ts new file mode 100644 index 0000000..1fad5ac --- /dev/null +++ b/src/lib/breakdowns.ts @@ -0,0 +1,136 @@ +// Build a path-keyed lookup of per-Produktgruppe per-category +// breakdowns extracted from the source PDF Erläuterungen. +// +// Currently only PG 1601 (Allgemeine Finanzwirtschaft) has parseable +// tabular breakdowns — that's where the major taxes (Gewerbesteuer, +// Grundsteuer, Einkommensteuer, etc.) get itemised. Other PGs have +// either prose-only Erläuterungen or no breakdowns; for those the +// lookup simply has no entries. + +import type { BudgetTree, CategoryKey, Flow } from "../data/types.js"; + +// Teilergebnisplan line numbers map to our CategoryKey + flow side +// per the standard NRW-NKF schema. (Lines 27/28 are internal +// Leistungsbeziehungen and don't map to our category list.) +const LINE_TO_CATEGORY: Record = { + 1: { key: "steuern", flow: "ertraege" }, + 2: { key: "zuwendungenAllgemeineUmlagen", flow: "ertraege" }, + 3: { key: "sonstigeTransfererträge", flow: "ertraege" }, + 4: { key: "öffentlichRechtlicheLeistungsentgelte", flow: "ertraege" }, + 5: { key: "privatrechtlicheLeistungsentgelte", flow: "ertraege" }, + 6: { key: "kostenerstattungenKostenumlagen", flow: "ertraege" }, + 7: { key: "sonstigeOrdentlicheErträge", flow: "ertraege" }, + 8: { key: "aktivierteEigenleistungen", flow: "ertraege" }, + 9: { key: "bestandsveränderungen", flow: "ertraege" }, + 11: { key: "personalaufwendungen", flow: "aufwendungen" }, + 12: { key: "versorgungsaufwendungen", flow: "aufwendungen" }, + 13: { key: "sachUndDienstleistungen", flow: "aufwendungen" }, + 14: { key: "bilanzielleAbschreibungen", flow: "aufwendungen" }, + 15: { key: "transferaufwendungen", flow: "aufwendungen" }, + 16: { key: "sonstigeOrdentlicheAufwendungen", flow: "aufwendungen" }, + 19: { key: "finanzerträge", flow: "ertraege" }, + 20: { key: "zinsenFinanzaufwendungen", flow: "aufwendungen" }, + 23: { key: "außerordentlicheErträge", flow: "ertraege" }, + 24: { key: "außerordentlicheAufwendungen", flow: "aufwendungen" }, +}; + +export interface BreakdownItem { + name: string; + slug: string; + /** € values keyed by year. Sparse — only years the source covers. */ + values: Record; +} + +/** Lookup keyed by `${flow}/${bereichSlug}/${gruppeSlug}/${categoryKey}` */ +export type BreakdownsByPath = Record; + +interface PgSectionWithBreakdowns { + pgNumber: string; + name: string; + beschreibung: string | null; + erlaeuterungen: string | null; + breakdowns?: Record }>>; +} + +const SLUG_REPLACEMENTS: Array = [ + [/ä/g, "ae"], + [/ö/g, "oe"], + [/ü/g, "ue"], + [/ß/g, "ss"], +]; +function slugify(input: string): string { + let s = input.toLowerCase(); + for (const [pat, rep] of SLUG_REPLACEMENTS) s = s.replace(pat, rep); + s = s.replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, ""); + return s || "n-a"; +} + +/** Match a PG by name against the budget tree and return its + * (bereich, gruppe) pair. Tolerates the same abbreviations as the + * pg-notes matcher. */ +function matchPgInTree( + pgName: string, + tree: BudgetTree +): { bereichSlug: string; gruppeSlug: string } | null { + const target = pgName.toLowerCase().replace(/[^a-z0-9]/g, ""); + let best: { dist: number; bereich: string; gruppe: string } | null = null; + for (const bereich of tree.produktbereiche) { + for (const gruppe of bereich.produktgruppen) { + const candidate = gruppe.name.toLowerCase().replace(/[^a-z0-9]/g, ""); + if (candidate === target) { + return { bereichSlug: bereich.slug, gruppeSlug: gruppe.slug }; + } + // Fuzzy fallback (cheap edit-distance via length symmetric diff). + let dist = Math.abs(candidate.length - target.length); + const min = Math.min(candidate.length, target.length); + for (let i = 0; i < min; i++) { + if (candidate[i] !== target[i]) dist++; + } + if (best === null || dist < best.dist) { + best = { dist, bereich: bereich.slug, gruppe: gruppe.slug }; + } + } + } + if (best && best.dist / Math.max(target.length, 1) < 0.4) { + return { bereichSlug: best.bereich, gruppeSlug: best.gruppe }; + } + return null; +} + +export function buildBreakdownsByPath( + tree: BudgetTree, + pgSections: Record +): BreakdownsByPath { + const out: BreakdownsByPath = {}; + + for (const pg of Object.values(pgSections)) { + if (!pg.breakdowns || Object.keys(pg.breakdowns).length === 0) continue; + const place = matchPgInTree(pg.name, tree); + if (!place) continue; + + for (const [lineNumStr, items] of Object.entries(pg.breakdowns)) { + const lineNum = parseInt(lineNumStr, 10); + const map = LINE_TO_CATEGORY[lineNum]; + if (!map) continue; + + // Convert string year keys back to numbers; assemble the lookup + // key in the same shape consumers will use it. + const breakdownItems: BreakdownItem[] = items.map((it) => { + const values: Record = {}; + for (const [yStr, v] of Object.entries(it.values)) { + values[Number(yStr)] = v; + } + return { + name: it.name, + slug: slugify(it.name), + values, + }; + }); + + const key = `${map.flow}/${place.bereichSlug}/${place.gruppeSlug}/${map.key}`; + out[key] = breakdownItems; + } + } + + return out; +} diff --git a/src/lib/colors.ts b/src/lib/colors.ts new file mode 100644 index 0000000..e4b4755 --- /dev/null +++ b/src/lib/colors.ts @@ -0,0 +1,65 @@ +// OKLCH-based tile color computation for the treemap. +// +// Each flow has its own hue family (set via CSS custom properties in +// global.css). Within a flow, tile lightness/chroma encodes the share-of- +// parent so larger tiles read as more saturated and smaller tiles fade +// toward the paper background. This matches the brief's two-hue decision: +// tile lightness within a flow encodes value; the hue itself signals which +// flow we're in. + +import type { Flow } from "../data/types.js"; + +interface FlowPalette { + /** OKLCH hue, degrees. */ + h: number; + /** OKLCH chroma at the darkest end of the scale. */ + cMax: number; +} + +// Must mirror the CSS custom properties in src/styles/global.css. Keep +// the two definitions in sync — the JS values drive the SVG fills, the +// CSS values drive page chrome (toggle underline, Saldo color, etc.). +const PALETTE: Record = { + aufwendungen: { h: 295, cMax: 0.17 }, // deep plum-purple + ertraege: { h: 55, cMax: 0.16 }, // warm orange / amber +}; + +interface TileColorOptions { + /** Share of the parent total for this tile, in [0, 1]. */ + share: number; + /** Which flow we're rendering. */ + flow: Flow; +} + +/** + * Compute fill + label color for a treemap tile. + * + * Lightness scale is non-linear: most tiles fall in a middle band so the + * legibility of labels stays manageable, only the very largest tiles go + * really dark. We use a cube-root mapping which compresses the long tail + * of small Produktgruppen. + */ +export function tileColor({ share, flow }: TileColorOptions): { + fill: string; + label: string; +} { + const { h, cMax } = PALETTE[flow]; + + // Cube-root maps a long-tail distribution into a more even one. + const t = Math.cbrt(Math.max(0, Math.min(1, share))); + + // Lightness from 78% (smallest) down to 38% (largest). Above 78% the + // tile vanishes against the paper; below 38% we lose label contrast. + const L = 78 - t * 40; + // Chroma scales with t too, but shallower — small tiles still feel + // tinted, not gray. + const C = cMax * (0.45 + 0.55 * t); + + const fill = `oklch(${L.toFixed(1)}% ${C.toFixed(3)} ${h})`; + // Switch label color when the tile is dark enough to need light text. + const label = + L > 56 + ? `oklch(20% 0.02 ${h})` + : `oklch(96% 0.01 ${h})`; + return { fill, label }; +} diff --git a/src/lib/format.ts b/src/lib/format.ts new file mode 100644 index 0000000..4f9a125 --- /dev/null +++ b/src/lib/format.ts @@ -0,0 +1,77 @@ +// German-locale number formatting helpers. Used everywhere a euro figure +// appears so the spelling and rounding stay consistent. + +const fmtFull = new Intl.NumberFormat("de-DE", { + style: "currency", + currency: "EUR", + maximumFractionDigits: 0, +}); + +const fmtTwoSig = new Intl.NumberFormat("de-DE", { + minimumFractionDigits: 1, + maximumFractionDigits: 1, +}); + +const fmtPlainInt = new Intl.NumberFormat("de-DE", { + maximumFractionDigits: 0, +}); + +const fmtPercent = new Intl.NumberFormat("de-DE", { + style: "percent", + minimumFractionDigits: 0, + maximumFractionDigits: 1, +}); + +const fmtPercentSigned = new Intl.NumberFormat("de-DE", { + style: "percent", + minimumFractionDigits: 0, + maximumFractionDigits: 1, + signDisplay: "exceptZero", +}); + +/** Full-euro formatting: "1.234.567 €". For the detail panel. */ +export function fmtEuroFull(n: number): string { + return fmtFull.format(n); +} + +/** + * Compact, headline-grade euro formatting: + * < 1 Mio. → "754.300 €" (full form) + * ≥ 1 Mio. → "12,3 Mio. €" + * ≥ 1 Mrd. → "1,7 Mrd. €" + * + * The dropoff to full-form below 1 Mio. avoids "0,8 Mio. €" which reads + * worse than the precise number. + */ +export function fmtEuroCompact(n: number): string { + const abs = Math.abs(n); + const sign = n < 0 ? "−" : ""; + if (abs >= 1_000_000_000) { + return `${sign}${fmtTwoSig.format(abs / 1_000_000_000)} Mrd. €`; + } + if (abs >= 1_000_000) { + return `${sign}${fmtTwoSig.format(abs / 1_000_000)} Mio. €`; + } + return `${sign}${fmtPlainInt.format(abs)} €`; +} + +/** + * Same as fmtEuroCompact but ALWAYS shows the sign — "+" for positive, + * "−" for negative, "±" for zero. Use for signed deltas like Saldo + * where the sign carries semantic meaning. + */ +export function fmtEuroCompactSigned(n: number): string { + if (n === 0) return `±${fmtEuroCompact(0)}`; + const prefix = n > 0 ? "+" : ""; + return `${prefix}${fmtEuroCompact(n)}`; +} + +/** Share-of-something formatting: "24 %". */ +export function fmtPercentage(fraction: number): string { + return fmtPercent.format(fraction); +} + +/** Signed share for delta displays: "+1,3 %", "−4,2 %". */ +export function fmtDelta(fraction: number): string { + return fmtPercentSigned.format(fraction); +} diff --git a/src/lib/icicle.ts b/src/lib/icicle.ts new file mode 100644 index 0000000..284d529 --- /dev/null +++ b/src/lib/icicle.ts @@ -0,0 +1,406 @@ +// Build-time icicle (partition) layout. +// +// Three levels of hierarchy: +// Produktbereich → Produktgruppe → Category (financial line item) +// Column widths are non-uniform: the third column is intentionally +// narrower (a thin "fine print" stripe) and rendered without labels. +// +// d3.partition lays this out as nested rectangles where each level +// occupies its own column (horizontal orientation: column = depth, row = +// share within parent). At any given depth, sibling rectangles stack +// along the share axis with sizes proportional to value. Coordinates +// are returned in viewBox units so the Astro component renders without +// further math. + +import { hierarchy, partition as d3partition } from "d3-hierarchy"; +import type { HierarchyRectangularNode } from "d3-hierarchy"; + +import type { BudgetTree, CategoryKey, Flow } from "../data/types.js"; +import { + AUFWAND_KEYS, + CATEGORY_LABELS, + ERTRAG_KEYS, +} from "../data/types.js"; +import type { BreakdownsByPath } from "./breakdowns.js"; + +// viewBox dimensions; the page's CSS aspect-ratio matches them so +// preserveAspectRatio="none" doesn't actually distort. The 4:5 ratio +// gives bars enough vertical room with 17 Bereiche. +export const VB_W = 1600; +export const VB_H = 2000; + +/** Depth values used by Icicle.astro to switch styling per level. */ +export const DEPTH_BEREICH = 1; +export const DEPTH_GRUPPE = 2; +export const DEPTH_CATEGORY = 3; +export const DEPTH_BREAKDOWN = 4; + +/** Column boundaries on the depth axis (viewBox x). depth d ∈ {1..4} + * occupies x in [COL_X[d-1], COL_X[d]]. At the OVERVIEW state the + * depth-4 (Breakdown) column collapses to zero width so the + * fine-print stays hidden — depth-4 only becomes visible once the + * user zooms in (see ZOOM_COL_BOUNDS in Icicle.astro for the + * per-zoom-state widths). */ +export const COL_X = [0, 770, 1540, VB_W, VB_W]; + +export interface IcicleNode { + /** 1 = Bereich, 2 = Gruppe, 3 = Category, 4 = Breakdown item. */ + depth: number; + /** Display name. */ + name: string; + /** Stable URL slug. */ + slug: string; + /** Path of slugs from root, joined by "/", suitable for URLs and keys. */ + path: string; + value: number; + /** Share of the parent total, in [0, 1]. */ + shareOfParent: number; + /** Share of the grand total, in [0, 1]. */ + shareOfGrand: number; + /** Rectangle in viewBox coordinates (horizontal orientation: + * x is the depth axis, y is the share axis). */ + x0: number; + y0: number; + x1: number; + y1: number; + /** Parent slug path; empty for top-level nodes. */ + parentPath: string; + /** True when this node has no children in the rendered tree. Used + * by the component to decide click-to-zoom eligibility — a depth-3 + * Category is a leaf only when it has no extracted breakdowns. */ + isLeaf: boolean; +} + +export interface IcicleLayout { + flow: Flow; + year: number; + total: number; + nodes: IcicleNode[]; + /** How many depth levels the layout actually contains (max 3). */ + maxDepth: number; +} + +interface InputDatum { + name: string; + slug: string; + value?: number; + children?: InputDatum[]; +} + +function categoriesFor(flow: Flow): readonly CategoryKey[] { + return flow === "aufwendungen" ? AUFWAND_KEYS : ERTRAG_KEYS; +} + +/** + * Build the input hierarchy and run d3.partition. + * + * Three or four levels: + * Bereich → Gruppe → Category (default) + * Bereich → Gruppe → Category → Breakdown (when extracted breakdown + * data exists for that flow/bereich/gruppe/category cell AND the + * selected year has at least one non-zero breakdown value) + * + * Empty branches are pruned. Only leaves carry numeric values; sums + * propagate upward via .sum(). + */ +export function icicleLayout( + tree: BudgetTree, + flow: Flow, + year: number, + breakdowns: BreakdownsByPath = {} +): IcicleLayout { + const flowCategories = categoriesFor(flow); + + const inputBereiche: InputDatum[] = []; + for (const bereich of tree.produktbereiche) { + const gruppen: InputDatum[] = []; + for (const g of bereich.produktgruppen) { + const flowTotals = g.totals[year]?.[flow]; + if (!flowTotals || flowTotals.total <= 0) continue; + const categoryChildren: InputDatum[] = []; + for (const catKey of flowCategories) { + const v = flowTotals.byCategory[catKey] ?? 0; + if (v <= 0) continue; + // If breakdown data exists for this cell AND covers the year + // with non-zero values, attach the breakdown items as the + // category's children. Otherwise the category stays a leaf + // with its CSV-derived value. + const breakdownKey = `${flow}/${bereich.slug}/${g.slug}/${catKey}`; + const items = breakdowns[breakdownKey]; + const breakdownChildren: InputDatum[] = []; + if (items && items.length > 0) { + for (const item of items) { + const iv = item.values[year] ?? 0; + if (iv > 0) { + breakdownChildren.push({ + name: item.name, + slug: item.slug, + value: iv, + }); + } + } + } + if (breakdownChildren.length > 0) { + categoryChildren.push({ + name: CATEGORY_LABELS[catKey], + slug: catKey, + children: breakdownChildren, + }); + } else { + categoryChildren.push({ + name: CATEGORY_LABELS[catKey], + slug: catKey, + value: v, + }); + } + } + if (categoryChildren.length === 0) continue; + gruppen.push({ + name: g.name, + slug: g.slug, + children: categoryChildren, + }); + } + if (gruppen.length === 0) continue; + inputBereiche.push({ + name: bereich.name, + slug: bereich.slug, + children: gruppen, + }); + } + + const root = hierarchy({ + name: "Gesamt", + slug: "", + children: inputBereiche, + }) + .sum((d) => d.value ?? 0) + .sort((a, b) => (b.value ?? 0) - (a.value ?? 0)); + + const grandTotal = root.value ?? 0; + + // partition.size([width, height]) — d3.partition computes x in [0, dx] + // for the SHARE axis and divides y in [0, dy] equally across depth+1 + // levels. We pass dx = VB_H so the share axis fits our viewBox height, + // then in the output we override the depth-axis coordinates ourselves + // (otherwise the synthetic root steals one column of width). + const layoutRoot = d3partition() + .size([VB_H, VB_W]) + .padding(0)(root) as HierarchyRectangularNode; + + const nodes: IcicleNode[] = []; + let maxDepth = 0; + + for (const node of layoutRoot.descendants()) { + if (node.depth === 0) continue; // synthetic root + if (node.depth > maxDepth) maxDepth = node.depth; + + const value = node.value ?? 0; + const parentValue = node.parent?.value ?? grandTotal; + const ancestorSlugs = node + .ancestors() + .reverse() + .slice(1) // drop root + .map((a) => a.data.slug); + const path = ancestorSlugs.join("/"); + const parentPath = ancestorSlugs.slice(0, -1).join("/"); + + // x (depth axis) — explicit per-depth column boundaries (Bereich and + // Gruppe wide, Category narrow). + // y (share axis) — partition's x0/x1 output (we passed size with + // dx = VB_H, so share already runs [0, VB_H]). + const xCol0 = COL_X[node.depth - 1] ?? 0; + const xCol1 = COL_X[node.depth] ?? VB_W; + + nodes.push({ + depth: node.depth, + name: node.data.name, + slug: node.data.slug, + path, + value, + shareOfParent: parentValue > 0 ? value / parentValue : 0, + shareOfGrand: grandTotal > 0 ? value / grandTotal : 0, + x0: xCol0, + y0: node.x0, + x1: xCol1, + y1: node.x1, + parentPath, + isLeaf: !node.children || node.children.length === 0, + }); + } + + return { + flow, + year, + total: grandTotal, + nodes, + maxDepth, + }; +} + +// ── Multi-year ────────────────────────────────────────────────────── + +/** Per-path per-year arrays. Indexed positionally by years[i]. */ +export interface PathSeries { + /** Numeric value (positive €), 0 if path didn't exist that year. */ + v: number[]; + /** Layout y0 in viewBox units, 0 if missing. */ + y0: number[]; + /** Layout y1 in viewBox units, 0 if missing (collapsed bar). */ + y1: number[]; +} + +export interface MultiYearLayout { + flow: Flow; + years: number[]; + defaultYear: number; + /** Year with the largest total budget (defines the canvas height). */ + maxYear: number; + /** Largest year's total (positive €). */ + maxTotal: number; + /** Per-year totals, indexed positionally by years[i]. */ + totals: number[]; + /** Per-path metadata + per-year series (only paths that exist in + * some year). */ + paths: Record< + string, + { + name: string; + depth: number; + parentPath: string; + x0: number; + x1: number; + series: PathSeries; + } + >; + /** The default-year layout, used for the initial server-rendered + * SVG (so the page is fully visible without JS). */ + initial: IcicleLayout; +} + +/** + * Compute icicle layouts for every year in the tree, plus a per-path + * time series. Used by the year-slider to morph bars between years. + */ +export function multiYearLayout( + tree: BudgetTree, + flow: Flow, + defaultYear: number, + breakdowns: BreakdownsByPath = {} +): MultiYearLayout { + const years = [...tree.years].sort((a, b) => a - b); + + // Build per-year layouts and index them by path for fast lookup. + const layoutsByYear = new Map(); + type IcicleNodeLite = IcicleLayout["nodes"][number]; + const idxByYear = new Map>(); + + for (const year of years) { + const layout = icicleLayout(tree, flow, year, breakdowns); + layoutsByYear.set(year, layout); + const idx = new Map(); + for (const node of layout.nodes) idx.set(node.path, node); + idxByYear.set(year, idx); + } + + const totals = years.map((y) => layoutsByYear.get(y)?.total ?? 0); + let maxTotal = 0; + let maxYear = years[0] ?? defaultYear; + for (let i = 0; i < years.length; i++) { + const t = totals[i] ?? 0; + if (t > maxTotal) { + maxTotal = t; + maxYear = years[i]!; + } + } + + // Union of all paths across all years. + const allPaths = new Set(); + for (const layout of layoutsByYear.values()) { + for (const node of layout.nodes) allPaths.add(node.path); + } + + // Build per-path series. For years where a path didn't exist, fall + // back to {v: 0, y0: 0, y1: 0} so the bar renders collapsed (zero + // height) and animates back when the path reappears. + const paths: MultiYearLayout["paths"] = {}; + for (const path of allPaths) { + let meta: { + name: string; + depth: number; + parentPath: string; + x0: number; + x1: number; + } | null = null; + + const v: number[] = []; + const y0: number[] = []; + const y1: number[] = []; + + for (const year of years) { + const node = idxByYear.get(year)?.get(path); + if (node) { + if (!meta) { + meta = { + name: node.name, + depth: node.depth, + parentPath: node.parentPath, + x0: node.x0, + x1: node.x1, + }; + } + v.push(node.value); + y0.push(node.y0); + y1.push(node.y1); + } else { + v.push(0); + y0.push(0); + y1.push(0); + } + } + + if (!meta) continue; + paths[path] = { ...meta, series: { v, y0, y1 } }; + } + + return { + flow, + years, + defaultYear, + maxYear, + maxTotal, + totals, + paths, + initial: layoutsByYear.get(defaultYear) ?? layoutsByYear.get(years[0]!)!, + }; +} + +/** Both flows' multi-year layouts, combined for the icicle component + * to render side-by-side and toggle between at runtime. */ +export interface BothFlowsLayout { + years: number[]; + defaultYear: number; + defaultFlow: Flow; + byFlow: Record; + /** Max total across BOTH flows × all years; the canvas reserves + * this height as the global max-budget reference. */ + maxTotalAcrossBothFlows: number; +} + +export function multiYearLayoutBothFlows( + tree: BudgetTree, + defaultYear: number, + defaultFlow: Flow = "aufwendungen", + breakdowns: BreakdownsByPath = {} +): BothFlowsLayout { + const aufw = multiYearLayout(tree, "aufwendungen", defaultYear, breakdowns); + const ertr = multiYearLayout(tree, "ertraege", defaultYear, breakdowns); + return { + years: aufw.years, + defaultYear, + defaultFlow, + byFlow: { aufwendungen: aufw, ertraege: ertr }, + maxTotalAcrossBothFlows: Math.max(aufw.maxTotal, ertr.maxTotal), + }; +} + diff --git a/src/lib/pg-notes.ts b/src/lib/pg-notes.ts new file mode 100644 index 0000000..cf3d472 --- /dev/null +++ b/src/lib/pg-notes.ts @@ -0,0 +1,124 @@ +// Match Produktgruppe names from the open-data CSV (which uses +// abbreviations like "Erzieh.u.wirtschaftl.Hilfen für Familien") +// against the names from the extracted PDF sections (which use the +// full forms like "Erzieherische und wirtschaftliche Hilfen für +// Familien"), and produce a path-keyed map of {beschreibung, +// erlaeuterungen} for the sidebar to consume. + +import type { BudgetTree } from "../data/types.js"; + +export interface PgSection { + pgNumber: string; + name: string; + beschreibung: string | null; + erlaeuterungen: string | null; +} + +export type PgSections = Record; + +export interface NotesByPath { + [path: string]: { + beschreibung: string | null; + erlaeuterungen: string | null; + }; +} + +/** Lowercase + strip German diacritics + drop non-alphanumeric chars. */ +function normalize(s: string): string { + const lower = s.toLowerCase(); + const transliterated = lower + .replace(/ä/g, "ae") + .replace(/ö/g, "oe") + .replace(/ü/g, "ue") + .replace(/ß/g, "ss"); + return transliterated.replace(/[^a-z0-9]/g, ""); +} + +/** Plain Levenshtein distance, iterative DP. Small inputs; we don't + * bother optimizing. */ +function levenshtein(a: string, b: string): number { + if (a === b) return 0; + if (!a.length) return b.length; + if (!b.length) return a.length; + let prev = new Array(b.length + 1); + let curr = new Array(b.length + 1); + for (let j = 0; j <= b.length; j++) prev[j] = j; + for (let i = 1; i <= a.length; i++) { + curr[0] = i; + for (let j = 1; j <= b.length; j++) { + const cost = a[i - 1] === b[j - 1] ? 0 : 1; + curr[j] = Math.min( + curr[j - 1] + 1, + prev[j] + 1, + prev[j - 1] + cost + ); + } + [prev, curr] = [curr, prev]; + } + return prev[b.length] ?? 0; +} + +/** + * Given the budget tree and the extracted PG sections JSON, build a + * path-keyed lookup that the icicle component can embed in the page. + * + * Matching strategy: + * 1. Exact normalized name match (most CSV/PDF pairs match this way). + * 2. Fallback to Levenshtein with a length-normalized threshold, + * picking the closest unique candidate per name. + * + * Anything still unmatched is left out — the sidebar simply won't show + * a Beschreibung/Erläuterungen for those paths. + */ +export function buildNotesByPath( + tree: BudgetTree, + pgSections: PgSections +): NotesByPath { + const candidates = Object.values(pgSections).map((e) => ({ + pg: e.pgNumber, + name: e.name, + norm: normalize(e.name), + section: e, + })); + + const out: NotesByPath = {}; + + for (const bereich of tree.produktbereiche) { + for (const gruppe of bereich.produktgruppen) { + const target = normalize(gruppe.name); + let chosen: (typeof candidates)[number] | null = null; + + // 1. Exact normalized match. + for (const c of candidates) { + if (c.norm === target) { + chosen = c; + break; + } + } + + // 2. Fuzzy fallback: pick the closest by Levenshtein, accept if + // the relative edit distance is under 0.4 (i.e., >60% similar). + if (!chosen) { + let best: { c: (typeof candidates)[number]; ratio: number } | null = + null; + for (const c of candidates) { + const dist = levenshtein(target, c.norm); + const ratio = dist / Math.max(target.length, c.norm.length, 1); + if (best === null || ratio < best.ratio) { + best = { c, ratio }; + } + } + if (best && best.ratio < 0.4) chosen = best.c; + } + + if (!chosen) continue; + const path = `${bereich.slug}/${gruppe.slug}`; + out[path] = { + beschreibung: chosen.section.beschreibung, + erlaeuterungen: chosen.section.erlaeuterungen, + }; + } + } + + return out; +} diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..8bc6f54 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,1550 @@ +--- +import "../styles/global.css"; + +import { loadBudget } from "../data/load.ts"; +import { multiYearLayoutBothFlows } from "../lib/icicle.ts"; +import { fmtEuroCompact, fmtEuroCompactSigned } from "../lib/format.ts"; +import Icicle from "../components/Icicle.astro"; +import type { Flow } from "../data/types.ts"; +import { buildNotesByPath, type PgSections } from "../lib/pg-notes.ts"; +import { buildBreakdownsByPath } from "../lib/breakdowns.ts"; +import pgSectionsRaw from "../../data/extracted/pg-sections-2026.json"; + +const tree = await loadBudget(); +const pgNotesByPath = buildNotesByPath(tree, pgSectionsRaw as PgSections); +const breakdownsByPath = buildBreakdownsByPath( + tree, + pgSectionsRaw as Parameters[1], +); + +// Default scene per the brief §5: Aufwendungen selected, year = the new +// draft (2026). Latest data point is 2028 but the *editorial* default is +// the current draft year, which is the news. +const defaultFlow: Flow = "aufwendungen"; +const defaultYear = 2026; + +const bothFlows = multiYearLayoutBothFlows( + tree, + defaultYear, + defaultFlow, + breakdownsByPath, +); +// Aufwendungen layout is the active one at SSR (default flow); both +// flows render via the Icicle component, but the year slider and the +// initial overview totals key off this one. +const multiYear = bothFlows.byFlow.aufwendungen; + +// Year-slider data: each year's two-bar histogram (Aufwendungen + +// Erträge), normalized to the larger of the two flows' max year totals +// so the heights are directly comparable across flows. +const maxErtrag = multiYear.years.reduce( + (m, y) => Math.max(m, tree.totals[y]?.ertraege.total ?? 0), + 0, +); +const sliderMax = Math.max(multiYear.maxTotal, maxErtrag); +const defaultYearIdx = multiYear.years.indexOf(defaultYear); + +// Per-year overview data — drives the sidebar's overview card content +// when the user scrubs through years. Includes both flows' totals plus +// the largest Bereich for each year (for the "Größter Posten" line). +type OverviewEntry = { + year: number; + aufwand: number; + ertrag: number; + saldo: number; + largestName: string; + largestValue: number; + largestShare: number; +}; +const yearOverviews: OverviewEntry[] = multiYear.years.map((year) => { + const aufwand = tree.totals[year]?.aufwendungen.total ?? 0; + const ertrag = tree.totals[year]?.ertraege.total ?? 0; + const saldo = ertrag - aufwand; + let largestName = ""; + let largestValue = 0; + for (const b of tree.produktbereiche) { + const v = b.totals[year]?.aufwendungen.total ?? 0; + if (v > largestValue) { + largestValue = v; + largestName = b.name; + } + } + return { + year, + aufwand, + ertrag, + saldo, + largestName, + largestValue, + largestShare: aufwand > 0 ? largestValue / aufwand : 0, + }; +}); +const totals = tree.totals[defaultYear]; +const ertragTotal = totals?.ertraege.total ?? 0; +const aufwandTotal = totals?.aufwendungen.total ?? 0; +const saldo = ertragTotal - aufwandTotal; + +const yearStart = tree.years[0]!; +const yearEnd = tree.years.at(-1)!; +--- + + + + + + + + Wo die Stadt Münster ihr Geld ausgibt — Haushaltsentwurf 2026/2027 + + + + + +
+
+

+ Stadt Münster · Haushaltsentwurf 2026/2027 +

+

+ Wo die Stadt Münster + ihr Geld + + + + + . + +

+
+ +
+

+ Haushalt 2008–2028 · Gesamtvolumen pro Jahr +

+
+ { + multiYear.years.map((y, i) => { + const aufwand = multiYear.totals[i] ?? 0; + const ertrag = tree.totals[y]?.ertraege.total ?? 0; + const aufwandRatio = + sliderMax > 0 ? aufwand / sliderMax : 0; + const ertragRatio = + sliderMax > 0 ? ertrag / sliderMax : 0; + const isCurrent = y === defaultYear; + const isPast = !(y > 2024); + return ( + + ); + }) + } +
+
+ +
+

ctwM zk+)bcr;y}jqJ(DT=|gGFD6JduUX;{=do84>68CDk{>ddXJ~r`Iu{OjZ)oh--2YALa zJ?4xA4*E$gJG@4M6)}zI3yd8|gtlk3XSr+dFPxO3D{NFirE?*h7 zZ5XS~0LF_Bgw13<+T8>iR$&ZF@Aa4yCci(sx8lL4vq$vgem|EhDJVS&SIRkKnsNK= zQqGnTd%kSwt7oK=f9Oo z{kKv%{jF4ve=C*hZ>3WHtyB&dOa%*+^UP%uXD`Gt-^RxFUK-uh*waG8nwnO1(ZJ@8 z&Q;XAwY#y2YOw#*PL(_)EF^#M@DvY!?`N*?d&NlGRUBTOOp_4F<6A$Rulb@h;2dRa=gV?^PJVjqmTn7!cat2 zJf=rX$=_g?3~$&Ug^!4Z0X+2LA+rxCd`m2J=Ak5IY#)s6JF!s3L*}2QD4W?^KCoN- z__H?;na7sG3k7+{T_9nKBZ>&IS@=>I5DvqiIC1R~c46nFQpiQJAL#(DSLu`R_uPW8 zh89u<{CBUz7xf_gT%{;UYJ&jF$Q9#$1NNpil8a$6Z6;gDB~(QnsS{OGXX;DCQL6%8 z#T4Xu3LY#cs-rrLI6vwq?cbp^M}QKgur_XmM~;;))xhw4w}`gdaa7Ouv1}=F#!w)drgH&M#~dD%W(F-m`hb4q}P#%(e9%2*#sH3lLsAk{12Bn7qSzG1Diw=CCc zmdlEg%W}tC?8Wjl{=7{QG#<~aG*lmFiIg6M+^nijDBuN*sDfE}1}QNtn2^FcbAe zK=$k{@jGNNdXP~lg@pI|Q~a5Qgr}V-m+h{y7BRo2y?iD7ye$77 zyqQQ@gJ-sXxEDK&_LR(@&03;>eUSx!whp{!Iiipfu`5zogC zN&=0*coeY9euh&g@pd*=R#?|y{LClg#6qmBQ?U;#V)w!UT5KOVh{!@)UrDC2vgr<#NUY{9#Cki|JE-jJKkWMB zv;ujJ(SjP5l7|>YutOe(ev5>(j1wzqrb_5+1Jh;joJW%utVUnOPJlCcgX@$SXtm!Z z+Tk?<^(2mZz!(1(b_)I=?=VilQw3g-1nNr?(SCpM{y6NSWbFL}p|4uecPa4PzXvPj z1FEN?*g1FvTs6X9mWCj159C&tqeItBjzbU85cX_4SpiuohE2PQ z+yz^)lvu#lPRLa$JWXYkVy~ba{)uvCo6!og8Zt8-_Wm?7#`kEd;KQh(^FhrOIxm_^tevH|0u5ql*U zV;80tdkS^%Z!N`MRx_DRTd?`$@1jH|I%wS(@Y|G=)*we&jds@*_uq&HzV?PkoCx6<3Nw{bgmw(i94 z*j?Cvy9YZS_hHZD0n8?+u+L(~?#F}J2icAN6SkZ3Fnt6&D*LgY@)+M&`7b@lv<+t6 zr?4CLH1^j-?0+4GHg|E`{j^GeEhH?EFcB($cZro9N zOj)qByJby_s;{FhDY>XvRj{hDsk^g7RnWPtv!i9Db5T=UcT?Z0*7lZl>Z0b(-o~b; zmX2O!aZ@8w;nv;R*sCnzPwEoedsT^COo?1fnY|dPs+1IUnJu}Zd}(91bGbc@P%%wa zAs1007r|PXlv=XG~XCHa7M3wkRukTV!mZvP!~MO~R(8i6tG&wAIV| zI+itd_pNGg?CVukOSLIyN$F=zN}raltmRne+HH0ybd1M$Q>a+NKNMt%ErmE zQ=)2=$!nB*tjS)fy2)07vYB&A*}`w?7TXI|i=4kj&cDo_UltmpdYLV`VmT9<<@PjA zZ3%2GfixKpZFiIor&#_mb!(@e@9j&<%ir`nX{Ol7Y-N|Dr9_wvYLWL#Z*1NV7H^<)P-7V}{)!NzD&F^h%`1_u= zb?ki)6k!L8w6x(&AxqHF#tYEMo{k@=S96f+V46mUmZ6cUxyOo2j5io4HzmlPTcB=mh4; zP?Yp_cS=o?nv#-|%&SCG(o~Jz-JNUuy7>F#OcMkb&)rN)WK@O|M>Th@?T|5<5~jVS zbs`OKIi@e(V%$wme2_GCu3GBE#~h2X+;~^W^^`HGC;`3}87FZDIQe;^yaFdab|&TK zJWDbr%Q;fylqsBNNyd~6sq~Z#R=Q5AF*Tusli<_b+1}pRolrQdplEtYUBa5i?t=DS zxL>%H}3a?%7h2kzH4cTLD*!8+piL zYxvbAc8M$G>q@a%z82xE>nwg%%J)*7fX%`=Sm{a-?H3LT;tG?mKwB(K^yZf zqFS)X*YCow!tc1g=OK%IZM%-zVjl}fgtsSMuL|sXUcL_5V)nfM71*^;zINMU_X&5( z*DZo{T`%mAugirk!UldFlJC7jhp=2&Dqjn5vTovtKFjfMv69KZdHgxnHoBVEHJxFENRFAopgKNq2d}=GWF&ZUBSbDi(7!XgyDsH78jCuns-=w`X8RAm4};n*ulg1czA;6eU-<* zX|pJlw#; z*LnB`ulH@9=0RYX4@>gFvXk@9SbgPSCB{z9XY!Nt75wCUExbD&Sa-3L^DX@3{G~V( zc{kQq_hJQg6Zd`Y;pgY~5q5t5FgyVx@Ts!%^GEpk`H%Sd`BVJ-{BQisyqTYwALVD} z$DmUPYLHGLEX92RfSo(70ZaoF1K5e&3>i|;>eak=xFnF5c>FUS9^>J6JbaUf@A2?u z9=7xFCxqwvxR|!&nhq=1+2Hv-Xw_l>r|FyHezP27DKjuP8j};Uzi$ z@`N|#>V@0G4_CeYvDD zuem4sbq3b{i{a}rz)P|dyQEC6O5qFW$IjlnxaM(Lnh)=Y5?(9j@9so7n9&g4&q_y2 zp0LkS@chFYE$l{ZcjNr=g)W6)yQt;7>vuYF{Yr7+WHP_#_qN#A^lN%lzCN~>B`Dw- zn0&pBr&sCo@`dk2Y}d!|8+=Uvdx2{oJSLN`-SDv3uRGy;Is3W=o|#+VsX71J0bkDL z(j`0yKhVUr0jF0xzLLjh@Nfmk{LJI?d02>W;wvHMmG^)oGC6dE#!G=0 zEFF4p3fFrnT<;Zfy;ljD+z1KW1TWk|Nas%YhpvI2XepP{<=8Rm$9d}~;Cb2v?e{V~ zOH5+76Q%=qzzcK?o+cH1s<&dNMoaGGI`Cgy2i}F&@Nd!hh-qeRL>pKrFfSS2+IJfy zD=va-Y5^W{oJpbv>mM}Q`T~uy{sI1ESdZ}>qRS9{ACfP?1BP65DLIPrl_-~388>Wy z)*pZY_pIOAP&{HiE^Akf}2TX7p@F&^FhoyPvB%YI}y&#gdfIP^r@VWH8^2EN@}t5<^*jaVDEVW zJb?oCz&jAKvIKbfFz=#&Zbf)EF7{p5y$D}HpTM5LMN!Hxu#11ikVG6%-?d zeL;}|8O=a1R$+`R0Pm%5CN9A|u@k<}Yp}m?9d?Ot0R6k*#eIy^{WSkpf_-W5I=(oN zb`ah{kGuyC3_(7>j2jSZUEc}xCyWea5LZ*z^#D00rvt9ThEZ^0M7$n0K5oz3Gg!D6}*2H@EYKCz#D)! z0dE1`2D}4!7w{g^et`QC+&=^i00sd=fR6wl13m$K3iu3g954*{67Ut^Yrr>v6M%04 z-vLGdzXQeqe*jJc&Y+HQfCXT+jzR&CViF&Pkv&R9fCAtEP~trsHBcbnKRe~|Pn_(! z2k;=^KY%@e{eZ^+PXL|-JOwxecpC5w;90;IfTMt8*wat}905)MHNY8o*0)yFvI?!E z@a0F~gxCK+dhPG_4C|Hu3)dK@8o;RraH;{EY5=Diz^MjsssWs80H+$jsRnSW0i0?8 zry9Vi25_nYoN5548o;RraH;{EY5=Diz^Mk#qfzWsZngG9ru!k&{gCN?$aFtsx*sy# z51H3+y`KV-TeGTjfE?uShG zL#78I(}R%dLCEwVWO@)XJqVc|giQBCru!k&{gCN?$aFtsx*sy#51H+7I)0MrhE+5u2I0BQ$7?Et79 z0JQ_4b^z24fZ732I{<12K2SDurs2u>c1E6*Qay1IM z8iibqLas(3SEG=tQOMOOI57ZD41f~@;KTqpF#t{sfD;4Y!~i%k08R`*u13L)0m#)T zJgChju0|nOqmZjn$Q9EN1K{=mxIF-F z4}jYP;PwExJpgVGfZGG$_5ip&fH{;}50hf#It=^kIl%LP7XU8;UIM%fcn@#{@F8FT zFbEg|d<6Iy@Co2kz-NHtfMLLw0DMsZ3QvND$Kz%77V0e1uL z1^l@_IgEZkjDA0iem{(UKa74qjDA0iem{(UKa74qEbEiQ|3A!DHv>lf&ru!|3_#vvu+kdkpo$vC8B z98xk4o{WPZ(JDaY)HHq=c>Ex?tPuAhAEA^$+3c^ZyeCY{nXagpEMLMj&A$ zkgyR**a#$S1QIp^2^)cgjX=UiAYmhrun|bu2qbI-5;g(}8-aw4K*B~KVIz>R5lGkw zBy0o{HUbG70hdmLOQ*r5)8Nu+aOpI-bQ)Yb4b3tF2^)cg!6OBD1Mnu`Ex_A=cL47K z-b30Ca6f|khkyaVAYcga5#VFMCxA}@p8<{o@D&(1dKw%(4UV1$M^A&Jr@_(F;OJ>^ z^z{EpZ~u<;V}L&ZrvYcso^gN$V6~1w!bTurBapBWNZ1G@Yy=WE0tp*|ZA`5{kyxA; z%m&ZL!1FQid<;Av1JB36^D*#z3_KqL&&R;?G4Om0JRbwk$H4P3@O%tB9|O@EL%4 z1cm`$0=@!#4fqCd0>Hcn-vLGd%qKVoU|xaK0Ji#O;T|3yz-pe^_Ct`%A;{$rJf?N(kE{7nOLy*fM$mI~^atLxc1i2i7Tn<4lhai_jkjo*+wU!!3-MApur3p%%H&x8qA=<3>wU!!3-MA zpur3p%%H&x8qA=<3>wU!!3-MApur3p%%H&x8qA=<3>wU!!3-MApur3p%%H&x8qA=< z3>wU!!3-MApur3p%%H&x8qA=<3>wU!!3-MApaDAz7%7C$DrV?QGxVhy`qB)2X@|2O4m3jtnxO;D z(1B*?Kr?ip89LC6S;Y*!W`PNX6tNWiRg_ry^4@IZlP|Gp>Cng^o%8! zUTImkTReOwKTCxBP{6n**bzH~blA0QqDGH!L#WEbD2CDu34Gq4DCq z>^D06tX3(9*rSX>ZTNL1`Vb`i;05rH!Ygqh{C=!}?fA{Ma`s`pX2EZpc{zl7x>-g-=~Q=1RiNec*4N)j^AZlNcyjs6D>(D=*zPgDC&8Kd zLzww}ATOlH!f)F026I4oXZ`6@)^3e%&@zR~eYRAI%?KP!6HLj~P#?ly5HL z4JY9fSo^?lDgEQjt8Giq)Z@!l8wCEw8+|!Pp*E+>lz-mWSF||Lo^furD!G z_@#bJ>&nq zyyd*4N%;NnBr^U>c*bWb{XTdb?RYl+B>Zli@U-I@|0Vn$_)_e6HZCRnUi=b@9nZ$4 zgg<~8i{mjaL75HzgtRZg+fxIIomel*6pNtuQ8&wTdg|hC`6U^|zPQ4I2~?8quOQvf zyMHF#;pi8gNZXfPU#4~}?z*lnw{3>kGM%w7D!sWTRp}VFxHxNRiS}Ms>Z4WXF4+hv zZ<@JtMYf?hHa#fLH@0$FPVw^WgjuPJrss9kB~8fZSK>CbKaBJFQJnjJRhHYY#A|K% zeega@_zVFpwc!uqgtfh#J8k$qIEVbI-1Cq$$TO2>F%%H)5eiQ9CebBHy?wn#%Uwp{ zkmV@Vj~CMv%iGcz5W|p%N#lep+Hxkk2w&>Pz0S%{%@92Gowo=r>0>hj%V9k!rU{1>Q8?9(9K=ZdIc<^3lHDw8xi4)xaEB`NA%!v zKN*MnnIBja8J}5Oj3Sd;sm?v{uFLXC%O|yQFLoX#@Yjk=Zl&}Gu*L-5`jIt`aY4o_ z=@T%@s1++q{1($8cyq~|umr(i3KqCpMN4(!fy9zTKZj8y%qUO7KLVp5TdD^;yR04we-K_-s5B-+ z439g;`C3yX)0$$aN_3%RE|xE(I!Bk>)M#NM_V5a+Wui?J8a>dL;T}}Pc-VM9b=}n0 zTW|UHk=da05G@`r76i+qbk;cb?zld&peC+Qz#QbG$hDpZ*JBV_zLO-vtM0?e zBrxvATTh7&(28zYw?Ho@2&PSt&9z}V zx6b<(7Ot+;YNsqIE$W`3)l6BcF|}M>yZoPXO)cANTW_DcB7gO?$~A>7>?>lF^4hpe z6w4et#brXmvr#VL_hH?`WJSWWnMK0y#u~|vXETU|-;1w?E`)y=Yau(HjZi850dj_E z5$o@uz7*7p7>$wKnxzhZ$^%DXVBL5ub*SD_7p8OXxWB1-Q(c>Bn(lB}Ls;8gPQ? zlE23dWc?u0={8WUXq5W|-}OzJtuQm4+ba$eGasx>+SmlMOjWe%AG79ep6cwF z*Sw{uWKETmI%alu`9(7woucPcuXF7I&Fov7>vt^AsJU@j{dH|w?Ij!Q%Uez5o2rW1 zvX{ul0+SSIMVxm#gdII^KH`}bsuRM)VbMy0!px?V<*kVt=Zemvo1?RKMrB7iD6>qL z35Rl4lom8+{z?~yXNRR0aJj=tgGIvAu-JStsy&PgvG8@LES3D!o$V0I9Ab`=H6<9>$w$#lc@*8jrJVK9Wc+@dd|=Wa1HFURK+dG} z2g&Eihp&OHzX~nF%Q)%7N4~6H($i9-q6`LE6EOQsEE{Zpd?Lp@cV z&Pmgg3zwu$DUT11P7XANhZ@vgE@@@4Wi4rFD{m90tzM>0vJKD0@5dKZjJ6s&T!+`Jb$ zxKB-wPjZ>|u$ym2g2h1yojKdr5a(I8O}A|3!ey)tW$3>RkQx<}8D@uui%&KWx(Q)! zgU!OM6)VOcW|Z+%oI?vZhxW_Xb{TpZxk0gnm*!7OrlOZ$K&f7wvM4@#$SXN!atJhY zc5jMyTJJQ+fV>1_eTE8A?c6JL#p`F%Lzd!{is+bWNh~&NLm{i5m&fa0Eceh5=j^%o zM{&Y{aa_W)o{-YZt9BXBbi0J#4PTi(J=5(Hey_CJ=IP&_RPV#^iP_UL-7cj+K%~{* zRBJk;+lFUf=c#S&VXJv5{bTT_9R&C5ut;+PpOoOf$gBqX#{=uP(5ag(T~Ow43aKy- zc`Ah)QfZ`ASj}S|4j09J3wn#b@0ogXt>xfFncpIVSx}Fk793zKD8|n)zM*`D8@JY0 zNPNThh_KdVJhRp${62gOX~#3ZN%-BgU=p5LeG+~zzD@%yE-#>OlUSni}s3$uAJI)tZ?3t#&8cz|qBBMzqYZ{76y zm6qp{@e$|^mM>_irOomQqk*U9G_bQ@%;MR{+a%!`4HAAIe$|rEAmJGe5`H&Ul6E|! zLBj9FPCTQ*iq_nL*1!U5GSN`BL}sgGI&4|(CPcYgg6Tip+v%6>?UulHv`0$MWui}R z557UX0DeEtC))AMvX|2D!I!e=dsYs8Lgt+b4jMl8jHr3}tTs1V;+n*snu=rg05A1Pd94GBv0&2rCVWyHb=X_Ji7k4txOq%o{ESZ~}iN;9WqfhYl zkJOGm=o^`Pz_XDl;rHTX&jkJ*zW$N$2XK;<? zNh4E84t94FH*vThMs_;U&FbQ=I?L(&1@TIU=;8&Y{F*SOBBo%LIy@`JM-X$25!vy6 zRLoyUZ?rvV zKedwXUuMU$^*Jj;N%t+bV?VT&yc?$#?Ra~Qds!}9OK!2HKR~v~_&CNN8~zEJKPmmM zHvD7wqSju{b2fZGejS5xS84rKY!pP;AO@1pW{novm{%FtJm&4~B7{Ym5H+e`;lsd( z*<~^*m7#p*$4svZh0*Whoz5J7Vkm5aC?#F$89BUg%Om-MRW;=Gk zmU<80S&~NPB0Eq2&d6-(>iat*Q&^1E&|i;C*zatd+{7t?)(-*X7&UZ1=@3`3rh4 zd)jyfnj;WjSbRYk`M&HIdFK4da31G_wD#ivJxDcwF%ThpQf;i?Aah(&H*ncw_)y-T z3=c_VGpC%I=}rl|Z|MX!OklcGDq}aZVQs0Iq)PZb*kQ5b?RDGIp=nZ`Ba`itrX@YwXnYaQl8@y`vIE$XV$^Z9|QJreB(SfRjE_HGius zt#A=ytLxl#Go4g1Q^rrwTNW(99DN2p>Ky0ge;9y!tgcpBJu~F>Pf|VP9oMN6wf+Jr*2>%gOhr#ZxWcGRd7NiJdIAd8N-SFBKzOW4ZN0 zrSegHp|T-Mu*ie}?yG)~w|*aXl9{(1D|D(57*%^YXZB>XwHUDE3w)U*GPy8{0rj2r z^pr&-r-ysTmi{4j)C^x;5W0kGTB($M&v07@*lEItf5%JReXf`KH&iJsi176f5BFzY zYUw_HA8Q7a^$WCH#`;Za-QHspX=?;FE~M5y^%-mPi?Gk^lt)oUxspEd70+RfftPv! z7B0&ny))n!K2CGq?V&K`P{KxQ41Ted@$SD8@8*GEhQ(R_Q}BY5GQO5Jrm#VvRORS(|ywrLrD6HBrMR&Q}S$?-RyXPxK}8p|jm; zdDp{afS*@1d3g4%?(@#3DObOG*{pu%h1)TM23Ryytg<`;{&-@QjGSok6P%KR@|Q~} zk^I3+s5RQ1b(Z3`^hS%pZ(N`_aG;0!ivi;7!oa9d3pRDUW5T|HB)bo9ES z8X3+Q#yJJ^%Ok+(m+lsz%GD-2yTyf=DqIpe>)IUi84($-3nbTgDUHf5z|Z{VTYjXc zifdN)SPs_CLXY`io=*lhT-Yo+$!=23EH;tUmyPq7BIE- zzu91G59@EKJ^k`J$p`D0_XH7|h~x1ES3kJHeD@iA#+6q9W$1X3{>ci!v9HYuzpYi! zkf2h;6k`c6GYsp=LfaC+7=a}K74u#d4lNkJOL+Cq)&QdQBx+~t4|(SRwf|}5+Ff0{ z{!ZQEwlf?5ylT`KfVwBGpi4YVMp3da_<@b{SJ3lXyxaP|{L2OOtHR=i6_Fw`V^&0Cb`X;0jzI|qI%MM!Rt2P*-*xoN2^s=j(d#b(J zRIZVIh8oV3$BAXScGXv`S_}@iu(Q+sk~$Y)w|fM-pq>s0|OjmM^6aV=V?9 zEVYt8-o$oOS=vwdd?sP{Wk_k`CZ%P2tk=S#V80JYglu@FgK*jna{*gqF#A!Ij{ERU z63%<0?eq^K-t1hEXT5V-dtu3vcxP2~-pu4US4C1@gwioJAv`BqSvSYckTFB$n3|s8 zs=j26yUXRR^!K8LNy!TfVoHobivm)@rWk`$!!0h$Gvnh@8d}@tEH*ZU2FY2{jYGnBF4ct#M$3HFgQ~)vw|v@+=y}OtMmF{QoxZ72L%RS zxJmh1L#+p&n&N{qrfCzp*mR{?-A#imR;J*~3aN`lQ(VJp<|XkSJ1+O+D&CW4QvH)yC<-r+%l8OKCni@#xY85 zWjsL*wlYEm<^z(-evEtKC|iXJ1>lVAyM`0@p^H|}{-DqDIn?fU+6Rjf{7Z-0oQYI; zU>28T*mpKDxm2A36s{(=yAg;1!ii{;Dbm%gtb9i|=<(ThETc=p?q;%dP8mwN zcRi!&G=i_u#XXY{q8tJ85S4J06_>&$lY;gQ(nL%M zp#dM7UZ7df)!^XjrSWmq2O2fC6++zjaF|~0G~dk)b+NqbnHQa^q@HFcnq>SvtfyuC zBkY_w@Jh^ws7uCUJ%LSJtS3;4w4U&gPQ{2!BQuRCw}Y=O8qaP_3SVbzKC4BLnsWT& z`TpU@Enw0Dwo~H7P@(S_uHFyQj zQO496=~V^kX>-%FjgjR!;Z;EiJ^`VDalQfJWf`X|N6_jb)U<=wgi~Lrhx?!Tl*Zg< z@J~yg=z*k?U`OYrg-ON1j;fT3gwRx_Ltr2a1L#$;(~^p65yTZoRVPL24T(`9(TpQF zH6dIipPJzN*?)49#Zc6o>!o#HbX9d>bDpQxZSj@WY4dV4TAxB=^4wglvv+|ev*oIq zWp~bHx0XBSuPExSsOT##?3q5Tw}{oY7~}FPoL^wS#EzL6ToFy)>0AQtTj|xZrr+H= zztBHF?^0n?E)L!OyqpFl`OV0j&if8QDq0%K_CMAdu-Sp8O2jKwc;u5jOe(B2R3yvElRk`KP60bNK1*xnWE|SsBF)#To$iZ*A#8i=R|LIol7rv56cWKE)1OK8lU1D zlNprgADA>VIb&&FR#RN9XKMcR2F)^7yFd68iP{61UYBgCU{r~=^P{gYAo%GY>?YZI zWTH(lJbucaZ*po^dPaxE7RD$XLP|{$I=`tc<)M!18J&&V!0Am&2V-JHq2Cgpius8J zOA^(N>2<9cnut6@s5aC$G&4Lj(SKHOW=+b}d5LsURa$y@T3BT4l+0k`+>H35cytLRM*1?)+G1&5S-xNKU*yA|!ljOnPakmp|Rm)?&HD*)t~0n`Si^6fesHhhtHD z1vsq7uRF_<$P9DYI-S^lIcIRehN8-f1&NLtZDxH}NoGrAabQu(}H`&)-hnBNnfsM!4OB3r}pY+LY zOZh;U=|ZbQ`5o2H>P%Lvr>(20>qvHXn!c_wzC1ypEXCoipEvAJbTzpHY{%RBwt%$k1m*#$}vNo}HOqn~*XuE3GEJ zEXWudn;w!L9*qMm`1K@kJ$-`f1zd>PR*<|>V5*sI45g*!3O9VtXhUT|JP2(6e;bYd*4A@%7fQxD z1Y?tx>>AEyr(8+a@$44Cp55_&9(Kl+IQhz+O?WRod-$>E5f#*toZ(MxHB8&P9=?m8VIU(xCn^{9X`i zp^0HIF0%2P;SXWXmA*PScg))6+#_k_fokWh`sB2V5NCDH?8KNNwK_a9nuXLYyE#91 zae78`;nc?TnKijt(`xcFE6{cL6>MJ`4E@6A!P>KA>e5`-8D$sibcQHh%9L89>r1pO zpaIp?JwTUXfNB(o0ocpXHp%WVU=G5D^n{j{Jf60B(5Skk${}+~k#8&&{QUf5oaegE zn>wvRtun@DyBmTQYl^=#(i%&Q+|&Sa72Y zHTtqsZ?HfnHfiKfXe2dvp{Y*@@6VYo)+wAk+(KgoF)TL3*(0wbR z-b|`v!H1jdGhVI1Lz?kaSPqHZIp0jN9M>e%1nq-)!lE*|BaG^jEuWMtDywL3k_B63 zSlfZF%TWS+#>}po(0Ym@Z z+?L~(%Q>?gd=Zl^yB9L^-JG0L>$4(qeN)_`U8a<1-8^z4W3v2J>iI>%i3*26zn~-s zhal=^YA_YH<$Aj3YSq>CuKEZ=L2Tx<>CwUd;V~frde)c4;M%nla~ouj@7Sq|zi9ew zriR9;m*Dk$wdHnNJ2M|jPl5kS=msvoz;|Q9nI=Q4*#QXdF`3*-lg;u`dizXD^LouR zC#QLpv&z+u^QP;Q6^h`%kQ4_oI4d~TLGQ<7PUR;@( zlv@!N;2Rtfawu%S3B&)vy6tZ&tr=`!&C|r^I zWlXStm?6XuB15h4Wbt1%#C{j^`0k^}7Fa^$9gz7DQJkk&L{abzV>Sb)rr2sZiN4A- z9)1gji24h>PoX>bd+gbZb;1kCk1@ydSM&TS^stoQ`iHpi0{PQXKGU(Wcz@jm@~7kT zMD{)%@AvckM!Eb>UVgd|$ln*^{l)x!n*1J2NBh(13HIK4+PVwBF;xzonP5F^xeO)x z<3BolPV<3D1ZEr3d}F;G|D~V|m?RnV9dae{T**={>vu>~&vT{7Y0OAdN(+$7D5n_% zW*X0xDq)BMxoUW>G&$GLNK?<#q|3Q}wBCgOq`+Eel5X6(pUR)>QQqDB zeHwo*!21XI`*i-Chv#egv&pR)`p6l-TXs8k8eqRO3w%O?mC70~y{qUj#otTsA}Xfn zyu!Wwqr4H|_&v3LY2Ar$sk@*NNf~rjVB`8rdWMJjOo3nfI7NR$d5}G>ZTP@tzD}%s zCzbziuTU4Md{>1cuAWunFvZV1gjGtHdqtooUZ-Ujua(Dfa_2XW&xAr!p3^!{U6$LhDuy$g*%fwbNl5Gnn4@}=MXSTfz zMzar2O&^Vs^oz>6U@xdK;pvOw#YZ;<9 zVqDFEo#X|%-9+}_e|+p@o}IOF6Qm{LiO>`u2ZxBX;LsF5r9))e9-K}MN(u~33k^!f zztwUe?a24J@Fuv+_N4iVk^(SIg+o7+fjYR)j`eriuiajezWB5Js}m!4NB>LkIdC8- zyKv^?w?^(rGj5M?j-OSG84E2W^4TY;OwtIciR4RR=5W9{sF30MVas+u!RTjkN3_~s zF#0pK{Zv&Ij`hOxaDO$FEwv6>_tLL~5ws5fXodX?pMP~)n(D;7Gtc2IX|(Re7Xtik zNjNnMovSTPop{SEa0PsfH_^)&k6>G>pbNLr82sPd|8mTFYC?V!{y$4E{!1`QUyD|m z+-RKJSYspJ;Fk!5bm>hW-na@;uIz>MMzLVh8%3r329ohFx(+$H76?^EyV7f28+mEz z)_>9m#ZY{AC!cF#XA`k<_PIAQ&BMi|q%mVnR!g~yXGUt%)NAjZTYvjMrV9Bt+*QAB z7;Ulsgxrl%?pp5SU zut--cm-aQ1S$=Co+K+f~Xl*jmIrDV9G+vT$2vtGeSs6N53o5j5rcen?23aCh(^Coq z-N1j7Ly0@HCj)^u!pA=`;(1vnpKyZ%TF35m-s6|`d-Pq=Mc;q?vIFjYm#?O=uiO8a zOrdPdoKhLQ#VTxoWSpIvr3*&7hKY2H1HAkOUcRkZw6z`o5$9^*P0T?Tqm3$rH{wni zp8UqO6R)K`cx4*>aC8)H546UMuL*D9zd@I<--MOE0ffJbjS%T9?Sxxd@(|j83V``k z{-4UOG`OwnI^#Y7#7Zm#Nf0}Tg#ZW;AOwI|NDvFbMWnbuq_}UOL{X$xTaslo!Cn1OlRDVQ`L4gb!?>*H%UFIJJTO+CW$T8jm4*a_Yn|f zw@sSi-~pHK?(f`l&+?u7R{hRJzhnvfSTX|r#r%b>KB;v2+z+?SpPO+>h2Gpiy(gwC zix*l1O0_lN6Kk4JZ{PGM2YV&5?4t{z8B4wYKr}t(lFQq-CbQ!%xvX=+>}hWlNt@%I zjz*Cz`F`7h3uAk)9LwQ*q+?HSy*1$^yV-L(Z&pRvUN{q zZlO7~s}mvFGj%y%^9Jl4EgLW&dhCGn%-cA%r6iwF)pOO*O&N+79;me#D7wb!hi*?; zbYMFF)H?2wNc)}WCaFN27!D=|-IB8KaAISn+bAsax*MnZ zBa%hs?r$sB4aehSwth?6t~2>+Ydog&?DhY6rZyZj0I=ul4Y}Gfj&#iygvw)7!O(JA4t1XwrL&UiMu*P{74+e*DagMs=f{bmM*gHA=nA!$ z3F};$rZ%a3=V+wUQ#M%E)g42OE^nRbEMs|{p<7k8zjZPM}`qfI?t z(YP>B=TC82JF*hlj&VoAsx{-ZZl~TZRV({iy9QuCt};6s>hvbDS~C{S4&A6r)~YKk zYOmd3lc`l3QpgjtSDWoVm(DC!RX~Zvkoh=M;s#%f889MpJPj=ToxQy{=n?=PBrW3X zbfpyljjKraxI?30m*ayDsibwXDYL0OFZP(N371IR(BO<|`pjDf`;H9NmY4VJ`C3ok zR|akL*CV}yU!PT!2Y2>uJWaoMoexj7#D;@yp-PjrHsK1U-DX=T`D|>+&R{bLsRaq=rDqS2cWUm5@=NeMUoF zyC7MS3nvY5Je*I?cFc^Qnd=w}JXHv=Psa``NM3O`4$b|!mtTgpNc;L5?8i{x^XyBs zzDc|XV;OVs2W(j%y5eTOpkckQE@2Tcfo{90UcfhM4L&|&ATK#uo!+d=(d_i*+`aXt z8k^h5>A={-97N2WfkSsXzTkz47k#jH%=@5 zKHIhOBYH(%Xqn^_j9N%N+SE5hvBcV_$o1HqcCoqXUG)b)RliSubn_;gAZHgUDi$zT z9HIzkoYUARCB?yxr1&8vAHpNbt(M-Is%k{}s>X_cSJ4`t#8^fqtU zYqd)>RZHn`zTpUe@2yjKE^64eUk5c?SGBOaFos`xK23DTArN|~=ub9}9ST*b=g$nc z6f*Kfd1tU`HdkJ*&xM`sEtLh!RXIUkp zc%uHt)Z{JoVRa?xs>mqYW@4uIJ{zuf8%90B&1048%%j1+#xn97PCi5%qZq55dLO7~ zF-p-xMPH|jGgHFh$zh2Q$SzQ8s@#H#E>%~xJU8E(p76+biM?((g32o2QN2@vu53^* zx%7Lck5bsubi3M5@k;kkFS#vCSa;OTx(s_-Niw6{2l!xmq=TzCjV>DFIlYAlzREVm z_Qn21Mo!Dvhv@azg$I|3!%B{>B*_4K`L*_TggO!OP4*ach#RQ+BDbnIJDH3b*|hQ^ zT^OLWO}uuzcSOmx%IWvCtzY#{_TEsDcU0}dOu%cf7wOM>~m4_aD0{wX4vnf(_|=v^7rzF7!9FsBI0-= z)xMwy+)>-1mfZP$uZldb`nk?5;9E7^)rPCUQmHcw`4+VPZHG={q#u$h{lZ|;qbC^~ z-aNrc==9VgAwDOR9RWzLP$at*w4 zCcz|2<*1E^(g0n$w>l>~K2wl)lq{nlZ z3^KIHzG_i7Q}=u{1Qzg=yF;VYS8E-z38}v)=*udlnrfw?RyHmPtbfa0r!zY3k-Xol zR~yx?TKvL%J%G2)-XMp#K0)>eePBa+Kt*<_?y*nXiE(CT_ceMVP=V}c7>=^3?u4G> zPgD5u_Ur$+ePJtfluq^s^n;!1-+({0f<}eFC+c8NKwc3)3QCL8fI)N>LR2)0|JLl^ z(=H91@9xyZB+7bIOTXNs+3J@7as-eqTOjPmKiqq7O-s6l40MzoI3}MY=P6Q6$O{7V ztAun;F~}D1ZP;t6@0wGxi#+3tws3Msp8K+uJjiUlf91&xpd=D;XhTD=%`6dxdm5cF zk;rUzBt&pEEK!_^IMnM4=1gKyc!S>&FDo-y9C6&_Y$*3N41^ok*W()KuJ4O^oq?#= z*~t1E@}V#MyAihZk7M=2C;@U{HTWVpYJ6}(z*0r_808o?S<`RbC%er z*qcN)$$rRAGe=gA)AED7D-2=_O64g6g03Pyd>p5n$tNxBvWlDv>`QKKyOJX>=cI*M z_I;B@-`|op+&Kmy;{cjC|Dn8T$&}j5EA)5&_lf|NOj@{Wbe(=kFqo zg#t?KL%;Vh^v%^=T*Y9N&~4D=6l!bt^^(QDP@!!cn8KY3b{}~&$8OA#gX~^whRmYG z40f|aYkkgWiHolRBpU)BlWb-G+PU}-*2XA@|~_)V%KOH8T%xLon)U- z!IklNAvbn~w!D$dl38{yIb}hYdHu{J-Ve1J<3laS|LZwaUn@rN{A)4F=YIzFfCscQ zgS@|EenO?jyX!frcf0ilmx~#684PuG27?QEw=sD82-j;+S4ewx_Q*yia`GhZJc2to z#SpW?Y5I>GJ#mV=1GyA;ep4JNcaPdy{_Eh8huL@UKl(7ugbGkYBctd2GxJ8NhQ{3X zVMc%PBE}j8%Jf;#wSeLpVPB~dg&;6!qmSQr_Us~A+`?o|@|PcCPz%HBL2Fmg+G^ei zn!*WtTG8dR`_A0AWy=y_BK+l(CzsJpI`RhcD)PeWijmhvL#uXRu)JS2^*hQI1$K)q zAY2kf2bl(E#$&MA_1-l6R(RhCaI!tjZ(+BuDa{&n=xKrdhKv~rgN*{V_I`cb8nxBa zBLz$vow2e;$<#*Nwy-(kv4u@JomQu-mP5`byaeMTmzXyx#yJE1isQmmLM-xN1eLff z_6ns!sTKE?w>DX7)oMjWm9Srlg4M=qRdrJmUsVX|brb^8am{dlv1h|>`6 zfLkaE9#&=!@^05g%m$TJp|d!x4eix>YwE|U%8*!5RjJnSyCf#5rzS)dl-nQO_96C3 zL^0;D2vA!hXG^794fyw1EF)m_Uh`y?-^%cHDxJWnbbJsFYUfmM|u8v=Gybm^LYOa D;C3n~ literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..68c9175 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "ms-haushalt", + "type": "module", + "version": "0.0.1", + "engines": { + "node": ">=22.12.0" + }, + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@fontsource-variable/geist": "^5.2.8", + "@fontsource-variable/geist-mono": "^5.2.7", + "astro": "^6.2.2", + "d3-dsv": "^3.0.1", + "d3-hierarchy": "^3.1.2" + }, + "devDependencies": { + "@astrojs/check": "^0.9.9", + "@types/d3-dsv": "^3.0.7", + "@types/d3-hierarchy": "^3.1.7", + "@types/node": "^25.6.0", + "tsx": "^4.21.0", + "typescript": "^6.0.3" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..4df5b9f --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3786 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@fontsource-variable/geist': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource-variable/geist-mono': + specifier: ^5.2.7 + version: 5.2.7 + astro: + specifier: ^6.2.2 + version: 6.2.2(@types/node@25.6.0)(rollup@4.60.3)(tsx@4.21.0)(yaml@2.8.4) + d3-dsv: + specifier: ^3.0.1 + version: 3.0.1 + d3-hierarchy: + specifier: ^3.1.2 + version: 3.1.2 + devDependencies: + '@astrojs/check': + specifier: ^0.9.9 + version: 0.9.9(prettier@3.8.3)(typescript@6.0.3) + '@types/d3-dsv': + specifier: ^3.0.7 + version: 3.0.7 + '@types/d3-hierarchy': + specifier: ^3.1.7 + version: 3.1.7 + '@types/node': + specifier: ^25.6.0 + version: 25.6.0 + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + +packages: + + '@astrojs/check@0.9.9': + resolution: {integrity: sha512-A5UW8uIuErLWEoRQvzgXpO1gTjUFtK8r7nU2Z7GewAMxUb7bPvpk11qaKKgxqXlHJWlAvaaxy+Xg28A6bmQ1Tg==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 || ^6.0.0 + + '@astrojs/compiler@2.13.1': + resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} + + '@astrojs/compiler@4.0.0': + resolution: {integrity: sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA==} + + '@astrojs/internal-helpers@0.9.0': + resolution: {integrity: sha512-GdYkzR26re8izmyYlBqf4z2s7zNngmWLFuxw0UKiPNqHraZGS6GKWIwSHgS22RDlu2ePFJ8bzmpBcUszut/SDg==} + + '@astrojs/language-server@2.16.7': + resolution: {integrity: sha512-b64bWT74Vq/ORcSqW7TdIjjpB6hcl+Ei/lMANIUaAGlLPiYNtPTRI/j2tzvugT+LoVwfJtE2Ukq/t2OGCyEtfQ==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@7.1.1': + resolution: {integrity: sha512-C6e9BnLGlbdv6bV8MYGeHpHxsUHrCrB4OuRLqi5LI7oiBVcBcqfUN06zpwFQdHgV48QCCrMmLpyqBr7VqC+swA==} + + '@astrojs/prism@4.0.1': + resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==} + engines: {node: '>=22.12.0'} + + '@astrojs/telemetry@3.3.1': + resolution: {integrity: sha512-7fcIxXS9J4ls5tr8b3ww9rbAIz2+HrhNJYZdkAhhB4za/I5IZ/60g+Bs8q7zwG0tOIZfNB4JWhVJ1Qkl/OrNCw==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/yaml2ts@0.2.3': + resolution: {integrity: sha512-PJzRmgQzUxI2uwpdX2lXSHtP4G8ocp24/t+bZyf5Fy0SZLSF9f9KXZoMlFM/XCGue+B0nH/2IZ7FpBYQATBsCg==} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@capsizecss/unpack@4.0.0': + resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} + engines: {node: '>=18'} + + '@clack/core@1.3.0': + resolution: {integrity: sha512-xJPHpAmEQUBrXSLx0gF+q5K/IyihXpsHZcha+jB+tyahsKRK3Dxo4D0coZDewHo12NhiuzC3dTtMPbm53GEAAA==} + engines: {node: '>= 20.12.0'} + + '@clack/prompts@1.3.0': + resolution: {integrity: sha512-GgcWwRCs/xPtaqlMy8qRhPnZf9vlWcWZNHAitnVQ3yk7JmSralSiq5q07yaffYE8SogtDm7zFeKccx1QNVARpw==} + engines: {node: '>= 20.12.0'} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.1': + resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@fontsource-variable/geist-mono@5.2.7': + resolution: {integrity: sha512-ZKlZ5sjtalb2TwXKs400mAGDlt/+2ENLNySPx0wTz3bP3mWARCsUW+rpxzZc7e05d2qGch70pItt3K4qttbIYA==} + + '@fontsource-variable/geist@5.2.8': + resolution: {integrity: sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==} + + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.60.3': + resolution: {integrity: sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.3': + resolution: {integrity: sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.3': + resolution: {integrity: sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.3': + resolution: {integrity: sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.3': + resolution: {integrity: sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.3': + resolution: {integrity: sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + resolution: {integrity: sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.3': + resolution: {integrity: sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.3': + resolution: {integrity: sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.3': + resolution: {integrity: sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.3': + resolution: {integrity: sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.3': + resolution: {integrity: sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.3': + resolution: {integrity: sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.3': + resolution: {integrity: sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.3': + resolution: {integrity: sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.3': + resolution: {integrity: sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.3': + resolution: {integrity: sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.3': + resolution: {integrity: sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.3': + resolution: {integrity: sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.3': + resolution: {integrity: sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.3': + resolution: {integrity: sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.3': + resolution: {integrity: sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.3': + resolution: {integrity: sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.3': + resolution: {integrity: sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.3': + resolution: {integrity: sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==} + cpu: [x64] + os: [win32] + + '@shikijs/core@4.0.2': + resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==} + engines: {node: '>=20'} + + '@shikijs/engine-javascript@4.0.2': + resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==} + engines: {node: '>=20'} + + '@shikijs/engine-oniguruma@4.0.2': + resolution: {integrity: sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==} + engines: {node: '>=20'} + + '@shikijs/langs@4.0.2': + resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==} + engines: {node: '>=20'} + + '@shikijs/primitive@4.0.2': + resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} + engines: {node: '>=20'} + + '@shikijs/themes@4.0.2': + resolution: {integrity: sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==} + engines: {node: '>=20'} + + '@shikijs/types@4.0.2': + resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==} + engines: {node: '>=20'} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.3.1': + resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + + '@volar/kit@2.4.28': + resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.4.28': + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} + + '@volar/language-server@2.4.28': + resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==} + + '@volar/language-service@2.4.28': + resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==} + + '@volar/source-map@2.4.28': + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} + + '@volar/typescript@2.4.28': + resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + + '@vscode/emmet-helper@2.11.0': + resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + + astro@6.2.2: + resolution: {integrity: sha512-zkne2lZU+iTZPBK8F4gbMfrw5f11bT4VXiBxcdFHcPvYyH+Hox7V1sZu97RDpvwmHi+wQ0efKv89KY5744a0jQ==} + engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + common-ancestor-path@2.0.0: + resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} + engines: {node: '>= 18'} + + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + devalue@5.8.0: + resolution: {integrity: sha512-2zA9pFEsnp7vWBZbXF5JAgAq0fsUIt/1XPbRiAmRV3lp/2C3upzH+sADiyy66aFCihoLEsrQHxNM5w1gIDfsBg==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + engines: {node: '>=0.3.1'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + + fontace@0.4.1: + resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} + + fontkitten@1.0.3: + resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} + engines: {node: '>=20'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + + get-tsconfig@5.0.0-beta.4: + resolution: {integrity: sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==} + engines: {node: '>=20.20.0'} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-docker@4.0.0: + resolution: {integrity: sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==} + engines: {node: '>=20'} + hasBin: true + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@11.3.6: + resolution: {integrity: sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==} + engines: {node: 20 || >=22} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + + p-limit@7.3.0: + resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==} + engines: {node: '>=20'} + + p-queue@9.2.0: + resolution: {integrity: sha512-dWgLE8AH0HjQ9fe74pUkKkvzzYT18Inp4zra3lKHnnwqGvcfcUBrvF2EAVX+envufDNBOzpPq/IBUONDbI7+3g==} + engines: {node: '>=20'} + + p-timeout@7.0.1: + resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} + engines: {node: '>=20'} + + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + piccolore@0.1.3: + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + engines: {node: ^10 || ^12 || >=14} + + prettier@3.8.3: + resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} + engines: {node: '>=14'} + hasBin: true + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + rollup@4.60.3: + resolution: {integrity: sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shiki@4.0.2: + resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} + engines: {node: '>=20'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + smol-toml@1.6.1: + resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} + engines: {node: '>= 18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} + engines: {node: '>=16'} + hasBin: true + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinyclip@0.1.12: + resolution: {integrity: sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==} + engines: {node: ^16.14.0 || >= 17.3.0} + + tinyexec@1.1.2: + resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + engines: {node: '>=18'} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.6: + resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unifont@0.7.4: + resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} + 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 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@7.3.2: + resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + 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 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + volar-service-css@0.0.70: + resolution: {integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.70: + resolution: {integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.70: + resolution: {integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.70: + resolution: {integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.70: + resolution: {integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.70: + resolution: {integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.70: + resolution: {integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.10: + resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==} + + vscode-html-languageservice@5.6.2: + resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml-language-server@1.20.0: + resolution: {integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==} + hasBin: true + + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} + engines: {node: '>= 14'} + hasBin: true + + yaml@2.8.4: + resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@astrojs/check@0.9.9(prettier@3.8.3)(typescript@6.0.3)': + dependencies: + '@astrojs/language-server': 2.16.7(prettier@3.8.3)(typescript@6.0.3) + chokidar: 4.0.3 + kleur: 4.1.5 + typescript: 6.0.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + + '@astrojs/compiler@2.13.1': {} + + '@astrojs/compiler@4.0.0': {} + + '@astrojs/internal-helpers@0.9.0': + dependencies: + picomatch: 4.0.4 + + '@astrojs/language-server@2.16.7(prettier@3.8.3)(typescript@6.0.3)': + dependencies: + '@astrojs/compiler': 2.13.1 + '@astrojs/yaml2ts': 0.2.3 + '@jridgewell/sourcemap-codec': 1.5.5 + '@volar/kit': 2.4.28(typescript@6.0.3) + '@volar/language-core': 2.4.28 + '@volar/language-server': 2.4.28 + '@volar/language-service': 2.4.28 + muggle-string: 0.4.1 + tinyglobby: 0.2.16 + volar-service-css: 0.0.70(@volar/language-service@2.4.28) + volar-service-emmet: 0.0.70(@volar/language-service@2.4.28) + volar-service-html: 0.0.70(@volar/language-service@2.4.28) + volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.8.3) + volar-service-typescript: 0.0.70(@volar/language-service@2.4.28) + volar-service-typescript-twoslash-queries: 0.0.70(@volar/language-service@2.4.28) + volar-service-yaml: 0.0.70(@volar/language-service@2.4.28) + vscode-html-languageservice: 5.6.2 + vscode-uri: 3.1.0 + optionalDependencies: + prettier: 3.8.3 + transitivePeerDependencies: + - typescript + + '@astrojs/markdown-remark@7.1.1': + dependencies: + '@astrojs/internal-helpers': 0.9.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 + retext-smartypants: 6.2.0 + shiki: 4.0.2 + smol-toml: 1.6.1 + 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 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@4.0.1': + dependencies: + prismjs: 1.30.0 + + '@astrojs/telemetry@3.3.1': + dependencies: + ci-info: 4.4.0 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 4.0.0 + is-wsl: 3.1.1 + which-pm-runs: 1.1.0 + + '@astrojs/yaml2ts@0.2.3': + dependencies: + yaml: 2.8.4 + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.29.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@capsizecss/unpack@4.0.0': + dependencies: + fontkitten: 1.0.3 + + '@clack/core@1.3.0': + dependencies: + fast-wrap-ansi: 0.2.0 + sisteransi: 1.0.5 + + '@clack/prompts@1.3.0': + dependencies: + '@clack/core': 1.3.0 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.0 + sisteransi: 1.0.5 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.1': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@fontsource-variable/geist-mono@5.2.7': {} + + '@fontsource-variable/geist@5.2.8': {} + + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 + optional: true + + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.2.4': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.2.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 + optional: true + + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 + optional: true + + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 + optional: true + + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 + optional: true + + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 + optional: true + + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.10.0 + optional: true + + '@img/sharp-win32-arm64@0.34.5': + optional: true + + '@img/sharp-win32-ia32@0.34.5': + optional: true + + '@img/sharp-win32-x64@0.34.5': + optional: true + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@oslojs/encoding@1.1.0': {} + + '@rollup/pluginutils@5.3.0(rollup@4.60.3)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.60.3 + + '@rollup/rollup-android-arm-eabi@4.60.3': + optional: true + + '@rollup/rollup-android-arm64@4.60.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.3': + optional: true + + '@rollup/rollup-darwin-x64@4.60.3': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.3': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.3': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.3': + optional: true + + '@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 + + '@shikijs/engine-javascript@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + + '@shikijs/primitive@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/themes@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + + '@shikijs/types@4.0.2': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-hierarchy@3.1.7': {} + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree@1.0.8': {} + + '@types/estree@1.0.9': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.3.1': {} + + '@volar/kit@2.4.28(typescript@6.0.3)': + dependencies: + '@volar/language-service': 2.4.28 + '@volar/typescript': 2.4.28 + typesafe-path: 0.2.2 + typescript: 6.0.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/language-core@2.4.28': + dependencies: + '@volar/source-map': 2.4.28 + + '@volar/language-server@2.4.28': + dependencies: + '@volar/language-core': 2.4.28 + '@volar/language-service': 2.4.28 + '@volar/typescript': 2.4.28 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/language-service@2.4.28': + dependencies: + '@volar/language-core': 2.4.28 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/source-map@2.4.28': {} + + '@volar/typescript@2.4.28': + dependencies: + '@volar/language-core': 2.4.28 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vscode/emmet-helper@2.11.0': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + '@vscode/l10n@0.0.18': {} + + ajv-draft-04@1.0.0(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-iterate@2.0.1: {} + + astro@6.2.2(@types/node@25.6.0)(rollup@4.60.3)(tsx@4.21.0)(yaml@2.8.4): + dependencies: + '@astrojs/compiler': 4.0.0 + '@astrojs/internal-helpers': 0.9.0 + '@astrojs/markdown-remark': 7.1.1 + '@astrojs/telemetry': 3.3.1 + '@capsizecss/unpack': 4.0.0 + '@clack/prompts': 1.3.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + 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.8.0 + diff: 8.0.4 + dset: 3.1.4 + es-module-lexer: 2.1.0 + esbuild: 0.27.7 + flattie: 1.1.1 + fontace: 0.4.1 + get-tsconfig: 5.0.0-beta.4 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.2.0 + js-yaml: 4.1.1 + jsonc-parser: 3.3.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.2.0 + package-manager-detector: 1.6.0 + piccolore: 0.1.3 + picomatch: 4.0.4 + rehype: 13.0.2 + semver: 7.7.4 + shiki: 4.0.2 + smol-toml: 1.6.1 + svgo: 4.0.1 + tinyclip: 0.1.12 + tinyexec: 1.1.2 + tinyglobby: 0.2.16 + ultrahtml: 1.6.0 + unifont: 0.7.4 + unist-util-visit: 5.1.0 + unstorage: 1.17.5 + vfile: 6.0.3 + vite: 7.3.2(@types/node@25.6.0)(tsx@4.21.0)(yaml@2.8.4) + vitefu: 1.1.3(vite@7.3.2(@types/node@25.6.0)(tsx@4.21.0)(yaml@2.8.4)) + xxhash-wasm: 1.1.0 + yargs-parser: 22.0.0 + zod: 4.4.3 + optionalDependencies: + sharp: 0.34.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - uploadthing + - yaml + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + boolbase@1.0.0: {} + + ccount@2.0.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + ci-info@4.4.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comma-separated-tokens@2.0.3: {} + + commander@11.1.0: {} + + commander@7.2.0: {} + + common-ancestor-path@2.0.0: {} + + cookie-es@1.2.3: {} + + cookie@1.1.1: {} + + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-hierarchy@3.1.2: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + defu@6.1.7: {} + + dequal@2.0.3: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: + optional: true + + devalue@5.8.0: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff@8.0.4: {} + + dlv@1.1.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dset@3.1.4: {} + + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + entities@6.0.1: {} + + es-module-lexer@2.1.0: {} + + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + escalade@3.2.0: {} + + escape-string-regexp@5.0.0: {} + + estree-walker@2.0.2: {} + + eventemitter3@5.0.4: {} + + extend@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-uri@3.1.2: {} + + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + flattie@1.1.1: {} + + fontace@0.4.1: + dependencies: + fontkitten: 1.0.3 + + fontkitten@1.0.3: + dependencies: + tiny-inflate: 1.0.3 + + fsevents@2.3.3: + optional: true + + get-caller-file@2.0.5: {} + + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + get-tsconfig@5.0.0-beta.4: + dependencies: + resolve-pkg-maps: 1.0.0 + + github-slugger@2.0.0: {} + + h3@1.15.11: + dependencies: + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.1 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + http-cache-semantics@4.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + iron-webcrypto@1.2.1: {} + + is-docker@3.0.0: {} + + is-docker@4.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-plain-obj@4.1.0: {} + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-schema-traverse@1.0.0: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + + kleur@4.1.5: {} + + longest-streak@3.1.0: {} + + lru-cache@11.3.6: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + magicast@0.5.2: + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + + markdown-table@3.0.4: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.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.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.28: {} + + mdn-data@2.27.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + nanoid@3.3.12: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-fetch-native@1.6.7: {} + + node-mock-http@1.0.4: {} + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + obug@2.1.1: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + ohash@2.0.11: {} + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + p-limit@7.3.0: + dependencies: + yocto-queue: 1.2.2 + + p-queue@9.2.0: + dependencies: + eventemitter3: 5.0.4 + p-timeout: 7.0.1 + + p-timeout@7.0.1: {} + + package-manager-detector@1.6.0: {} + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-browserify@1.0.1: {} + + piccolore@0.1.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + postcss@8.5.14: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier@3.8.3: {} + + prismjs@1.30.0: {} + + property-information@7.1.0: {} + + radix3@1.1.2: {} + + readdirp@4.1.2: {} + + readdirp@5.0.0: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + request-light@0.5.8: {} + + request-light@0.7.0: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-pkg-maps@1.0.0: {} + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.1.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + rollup@4.60.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.3 + '@rollup/rollup-android-arm64': 4.60.3 + '@rollup/rollup-darwin-arm64': 4.60.3 + '@rollup/rollup-darwin-x64': 4.60.3 + '@rollup/rollup-freebsd-arm64': 4.60.3 + '@rollup/rollup-freebsd-x64': 4.60.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.3 + '@rollup/rollup-linux-arm-musleabihf': 4.60.3 + '@rollup/rollup-linux-arm64-gnu': 4.60.3 + '@rollup/rollup-linux-arm64-musl': 4.60.3 + '@rollup/rollup-linux-loong64-gnu': 4.60.3 + '@rollup/rollup-linux-loong64-musl': 4.60.3 + '@rollup/rollup-linux-ppc64-gnu': 4.60.3 + '@rollup/rollup-linux-ppc64-musl': 4.60.3 + '@rollup/rollup-linux-riscv64-gnu': 4.60.3 + '@rollup/rollup-linux-riscv64-musl': 4.60.3 + '@rollup/rollup-linux-s390x-gnu': 4.60.3 + '@rollup/rollup-linux-x64-gnu': 4.60.3 + '@rollup/rollup-linux-x64-musl': 4.60.3 + '@rollup/rollup-openbsd-x64': 4.60.3 + '@rollup/rollup-openharmony-arm64': 4.60.3 + '@rollup/rollup-win32-arm64-msvc': 4.60.3 + '@rollup/rollup-win32-ia32-msvc': 4.60.3 + '@rollup/rollup-win32-x64-gnu': 4.60.3 + '@rollup/rollup-win32-x64-msvc': 4.60.3 + fsevents: 2.3.3 + + rw@1.3.3: {} + + safer-buffer@2.1.2: {} + + sax@1.6.0: {} + + semver@7.7.4: {} + + sharp@0.34.5: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.7.4 + 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 + optional: true + + 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 + + sisteransi@1.0.5: {} + + smol-toml@1.6.1: {} + + source-map-js@1.2.1: {} + + space-separated-tokens@2.0.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + svgo@4.0.1: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.2.1 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.6.0 + + tiny-inflate@1.0.3: {} + + tinyclip@0.1.12: {} + + tinyexec@1.1.2: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + tslib@2.8.1: + optional: true + + tsx@4.21.0: + dependencies: + esbuild: 0.27.7 + get-tsconfig: 4.14.0 + optionalDependencies: + fsevents: 2.3.3 + + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.6: + dependencies: + semver: 7.7.4 + + typescript@6.0.3: {} + + ufo@1.6.4: {} + + ultrahtml@1.6.0: {} + + uncrypto@0.1.3: {} + + undici-types@7.19.2: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unifont@0.7.4: + dependencies: + css-tree: 3.2.1 + ofetch: 1.5.1 + ohash: 2.0.11 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unstorage@1.17.5: + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 + lru-cache: 11.3.6 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite@7.3.2(@types/node@25.6.0)(tsx@4.21.0)(yaml@2.8.4): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.14 + rollup: 4.60.3 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 + fsevents: 2.3.3 + tsx: 4.21.0 + yaml: 2.8.4 + + vitefu@1.1.3(vite@7.3.2(@types/node@25.6.0)(tsx@4.21.0)(yaml@2.8.4)): + optionalDependencies: + vite: 7.3.2(@types/node@25.6.0)(tsx@4.21.0)(yaml@2.8.4) + + volar-service-css@0.0.70(@volar/language-service@2.4.28): + dependencies: + vscode-css-languageservice: 6.3.10 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + volar-service-emmet@0.0.70(@volar/language-service@2.4.28): + dependencies: + '@emmetio/css-parser': 0.4.1 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.11.0 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + volar-service-html@0.0.70(@volar/language-service@2.4.28): + dependencies: + vscode-html-languageservice: 5.6.2 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.8.3): + dependencies: + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + prettier: 3.8.3 + + volar-service-typescript-twoslash-queries@0.0.70(@volar/language-service@2.4.28): + dependencies: + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + volar-service-typescript@0.0.70(@volar/language-service@2.4.28): + dependencies: + path-browserify: 1.0.1 + semver: 7.7.4 + typescript-auto-import-cache: 0.3.6 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + volar-service-yaml@0.0.70(@volar/language-service@2.4.28): + dependencies: + vscode-uri: 3.1.0 + yaml-language-server: 1.20.0 + optionalDependencies: + '@volar/language-service': 2.4.28 + + vscode-css-languageservice@6.3.10: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + vscode-html-languageservice@5.6.2: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.1.0 + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@3.1.0: {} + + web-namespaces@2.0.1: {} + + which-pm-runs@1.1.0: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + xxhash-wasm@1.1.0: {} + + y18n@5.0.8: {} + + yaml-language-server@1.20.0: + dependencies: + '@vscode/l10n': 0.0.18 + ajv: 8.20.0 + ajv-draft-04: 1.0.0(ajv@8.20.0) + prettier: 3.8.3 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 9.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + yaml: 2.7.1 + + yaml@2.7.1: {} + + yaml@2.8.4: {} + + yargs-parser@21.1.1: {} + + yargs-parser@22.0.0: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@1.2.2: {} + + zod@4.4.3: {} + + zwitch@2.0.4: {} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f48a94d16071d6c8d06478c7458ab12e675019c GIT binary patch literal 655 zcmV;A0&x9_P)Rl-XF(A`bsas&GH{e7U1}Ri zJr5jR8B2*Jd6$=$AqgTM2o2FV$WZ9|#jJ3mmpEs{jB0ps@*Kxv}=RB|IJih8Z&fqwCG`%bN0000#bW%=J zQ=IH#a_&L{B{_6Lu_3m>0bMN%+@aOmN_3G~H^8EGi>+bXO=;-|Z`uFnf==AdP z{Oj-S=ltmI=<4`LcLE*&009F@L_t(|+I`d4ZUZ3@1<*Uo7H^LoCw6-8z4wsbd;b4l zA}zMFtOw2mLX6O5Mgl}(5P=uOM4%=tnuHiuAp%(G<c=npm$Fz%eL + + + diff --git a/public/fonts/Figtree-Italic-VariableFont_wght.woff2 b/public/fonts/Figtree-Italic-VariableFont_wght.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f7649a3bd20047a474a2fc01cf15889beac543af GIT binary patch literal 28132 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