From 79afa216102f4e760d78383513fdccc1aeef5c07 Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Fri, 10 Apr 2026 21:08:06 +0200 Subject: [PATCH] feat/astro migration (#538) * feat: migrate website from Jekyll to Astro Rebuilds the site using Astro (SSG) with Tailwind CSS v4, replacing the Jekyll/Cayman theme. Key changes: - Splits the monolithic /rules page into 110 statically-generated pages (92 per-service + 13 group index + homepage + guide pages) for SEO - URL structure: /rules/[group-slug]/[service-slug]/ with backward- compatibility redirect map for old anchor-based URLs (/rules#redis) - Modern UI: Prometheus-orange accent, dark mode (system + toggle), sticky sidebar, responsive layout, copy-to-clipboard per rule/section - SEO: per-page , <meta description>, Open Graph, Twitter Card, canonical URLs, sitemap.xml via @astrojs/sitemap - GEO: FAQPage JSON-LD schema on each service page (rules as Q&A pairs for AI search engines), TechArticle schema, BreadcrumbList - Search: Pagefind (build-time index, lazy-loaded, ~200KB) - Zero JS by default; copy buttons and theme toggle use inline scripts - New CI: .github/workflows/deploy.yml builds Astro + Pagefind and deploys to GitHub Pages via actions/deploy-pages - Existing dist.yml and test.yml workflows are untouched - _data/rules.yml remains the single source of truth Note: GitHub Pages source must be changed from "Build from branch" (Jekyll) to "GitHub Actions" in repository settings. * doc: new website based on astro * refactor: remove previous website * chore: add npm dependabot for Astro site + scope CI to _data changes * Update site/astro.config.mjs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update site/src/components/CopyButton.astro Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * oops * fix: strip trailing slash from BASE_URL to prevent double slashes in URLs Agent-Logs-Url: https://github.com/samber/awesome-prometheus-alerts/sessions/c85937ba-1855-4b8a-a72b-847eab1c8639 Co-authored-by: samber <2951285+samber@users.noreply.github.com> * fix: resolve Astro build errors in astro.config.mjs - Remove assetsInclude yml which caused Vite to treat YAML files as static assets instead of running them through the custom YAML transform plugin; data.groups was undefined at runtime because the import resolved to a URL rather than parsed content - Deduplicate old-path redirects: emit only the slash-less variant per service to avoid Astro router collision warnings (trailing-slash variant is handled automatically) --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: samber <2951285+samber@users.noreply.github.com> --- .github/dependabot.yml | 5 + .github/workflows/deploy.yml | 62 + .github/workflows/test.yml | 4 + .gitignore | 12 +- CLAUDE.md | 37 +- CONTRIBUTING.md | 22 +- Gemfile | 3 - Gemfile.lock | 293 - README.md | 2 +- _config.yml | 8 - _layouts/default.html | 162 - alertmanager.md | 141 - blackbox-exporter.md | 125 - docker-compose.yml | 11 - index.md | 54 - rules.md | 141 - site/astro.config.mjs | 105 + site/package-lock.json | 7330 ++++++++++++++++++ site/package.json | 31 + site/public/favicon.svg | 22 + site/public/images/grafana-map-panel.png | Bin 0 -> 128472 bytes site/public/images/prometheus-logo.png | Bin 0 -> 17587 bytes site/public/images/sponsor-betterstack.png | Bin 0 -> 16118 bytes site/public/images/sponsor-cast-ai.png | Bin 0 -> 13408 bytes site/public/manifest.json | 19 + site/public/robots.txt | 28 + site/src/components/Breadcrumbs.astro | 53 + site/src/components/CautionBanner.astro | 12 + site/src/components/CopyButton.astro | 90 + site/src/components/ExporterSection.astro | 122 + site/src/components/Footer.astro | 96 + site/src/components/Header.astro | 161 + site/src/components/RuleCard.astro | 56 + site/src/components/SEO.astro | 56 + site/src/components/SearchWidget.astro | 45 + site/src/components/ServiceCard.astro | 41 + site/src/components/SeverityBadge.astro | 16 + site/src/components/Sidebar.astro | 72 + site/src/components/StatsBar.astro | 22 + site/src/components/ThemeToggle.astro | 25 + site/src/data/rules.ts | 443 ++ site/src/data/site.ts | 48 + site/src/data/sponsors.ts | 21 + site/src/layouts/BaseLayout.astro | 100 + site/src/layouts/GuideLayout.astro | 420 + site/src/pages/alertmanager.astro | 237 + site/src/pages/blackbox-exporter.astro | 191 + site/src/pages/index.astro | 345 + site/src/pages/llms-full.txt.ts | 65 + site/src/pages/llms.txt.ts | 70 + site/src/pages/rules/[group]/[service].astro | 182 + site/src/pages/rules/[group]/index.astro | 88 + site/src/pages/rules/index.astro | 94 + site/src/pages/sleep-peacefully.astro | 148 + site/src/styles/global.css | 85 + site/tailwind.config.mjs | 19 + site/tsconfig.json | 10 + sleep-peacefully.md | 106 - 58 files changed, 11076 insertions(+), 1080 deletions(-) create mode 100644 .github/workflows/deploy.yml delete mode 100644 Gemfile delete mode 100644 Gemfile.lock delete mode 100644 _config.yml delete mode 100644 _layouts/default.html delete mode 100644 alertmanager.md delete mode 100644 blackbox-exporter.md delete mode 100644 docker-compose.yml delete mode 100644 index.md delete mode 100644 rules.md create mode 100644 site/astro.config.mjs create mode 100644 site/package-lock.json create mode 100644 site/package.json create mode 100644 site/public/favicon.svg create mode 100644 site/public/images/grafana-map-panel.png create mode 100644 site/public/images/prometheus-logo.png create mode 100644 site/public/images/sponsor-betterstack.png create mode 100644 site/public/images/sponsor-cast-ai.png create mode 100644 site/public/manifest.json create mode 100644 site/public/robots.txt create mode 100644 site/src/components/Breadcrumbs.astro create mode 100644 site/src/components/CautionBanner.astro create mode 100644 site/src/components/CopyButton.astro create mode 100644 site/src/components/ExporterSection.astro create mode 100644 site/src/components/Footer.astro create mode 100644 site/src/components/Header.astro create mode 100644 site/src/components/RuleCard.astro create mode 100644 site/src/components/SEO.astro create mode 100644 site/src/components/SearchWidget.astro create mode 100644 site/src/components/ServiceCard.astro create mode 100644 site/src/components/SeverityBadge.astro create mode 100644 site/src/components/Sidebar.astro create mode 100644 site/src/components/StatsBar.astro create mode 100644 site/src/components/ThemeToggle.astro create mode 100644 site/src/data/rules.ts create mode 100644 site/src/data/site.ts create mode 100644 site/src/data/sponsors.ts create mode 100644 site/src/layouts/BaseLayout.astro create mode 100644 site/src/layouts/GuideLayout.astro create mode 100644 site/src/pages/alertmanager.astro create mode 100644 site/src/pages/blackbox-exporter.astro create mode 100644 site/src/pages/index.astro create mode 100644 site/src/pages/llms-full.txt.ts create mode 100644 site/src/pages/llms.txt.ts create mode 100644 site/src/pages/rules/[group]/[service].astro create mode 100644 site/src/pages/rules/[group]/index.astro create mode 100644 site/src/pages/rules/index.astro create mode 100644 site/src/pages/sleep-peacefully.astro create mode 100644 site/src/styles/global.css create mode 100644 site/tailwind.config.mjs create mode 100644 site/tsconfig.json delete mode 100644 sleep-peacefully.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 64284b9..846784d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,3 +5,8 @@ updates: directory: "/" schedule: interval: "monthly" + + - package-ecosystem: "npm" + directory: "/site" + schedule: + interval: "monthly" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..fc37da6 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,62 @@ +name: Deploy Astro site to GitHub Pages + +on: + push: + branches: [master] + workflow_dispatch: + +# Only allow one concurrent deployment +concurrency: + group: pages + cancel-in-progress: false + +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: site/package-lock.json + + - name: Install dependencies + working-directory: site + run: npm ci + + - name: Build Astro site + working-directory: site + env: + ASTRO_TELEMETRY_DISABLED: "1" + run: npm run build + + - name: Build Pagefind search index + working-directory: site + run: npx pagefind --site dist + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: site/dist + + deploy: + name: Deploy + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d6357b..40d2e9f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,13 @@ name: Promtool check on: pull_request: + paths: + - _data/** push: branches: - master + paths: + - _data/** jobs: promtool-check: diff --git a/.gitignore b/.gitignore index 451be5c..b70799c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,12 @@ -_site/ -.sass-cache/ -.jekyll-cache/ -.jekyll-metadata +# Generated data _data/rules.json test/rules/ + +# Node / Astro /node_modules +site/node_modules/ +site/dist/ +site/.astro/ + +# Misc .worktrees/ \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index fd45a8f..0e67759 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,17 +6,21 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co A curated collection of ~940 Prometheus alerting rules covering 90+ services across 100+ exporters, organized in categories: basic resource monitoring (Prometheus, host/hardware, SMART, Docker, Blackbox, Windows, VMware, Netdata), databases (MySQL, PostgreSQL, Redis, MongoDB, Elasticsearch, Cassandra, Clickhouse, CouchDB, etc.), message brokers (RabbitMQ, Kafka, Pulsar, Nats, Zookeeper), proxies/load balancers/service meshes (Nginx, Apache, HaProxy, Traefik, Caddy, Linkerd, Istio), runtimes (PHP-FPM, JVM, Sidekiq), data engineering (Apache Flink, Apache Spark, Hadoop), orchestrators (Kubernetes, Nomad, Consul, Etcd, OpenStack), CI/CD (Jenkins, ArgoCD, FluxCD, GitLab CI, Spinnaker), network and security (SSL/TLS, CoreDNS, Vault, Cloudflare, Cilium, eBPF), storage (Ceph, ZFS, OpenEBS, Minio), cloud providers (AWS, Azure, DigitalOcean), observability (Thanos, Loki, Cortex, OpenTelemetry Collector, Grafana Tempo/Mimir/Alloy, Jaeger), and other (APC UPS, Graph Node). -All rules are stored in a single YAML data file (`_data/rules.yml`) and rendered as a Jekyll-based GitHub Pages site at https://samber.github.io/awesome-prometheus-alerts. The site provides copy-pasteable Prometheus alert snippets and downloadable rule files per exporter. +All rules are stored in a single YAML data file (`_data/rules.yml`) and rendered as a static site built with Astro + TypeScript (located in `site/`). The site provides copy-pasteable Prometheus alert snippets and downloadable rule files per exporter. The project is community-driven. Most contributions are PRs adding or updating rules in `_data/rules.yml`. Files in `dist/rules/` are auto-generated on merge — never edit them manually. ## Architecture - **`_data/rules.yml`** — The single source of truth for all alerting rules. This is the main file contributors edit. It is NOT a valid Prometheus config; the site renders each rule into copy-pasteable Prometheus alert format. -- **`rules.md`** — Jekyll template that iterates over `_data/rules.yml` and renders the rules page with copy buttons and formatted YAML blocks. -- **`alertmanager.md`** — Static page with Prometheus/AlertManager configuration examples. -- **`_layouts/default.html`** — Site layout (Jekyll theme: cayman). -- **`_config.yml`** — Jekyll configuration. +- **`site/`** — Astro + TypeScript static site. Run `npm run dev` inside this directory to develop locally. +- **`site/src/data/rules.ts`** — Typed wrappers and helper functions over `_data/rules.yml`. +- **`site/src/data/site.ts`** — Shared site metadata constants (URLs, author, schema objects). +- **`site/src/pages/`** — Astro page routes: `index.astro` (homepage), `rules/[group]/[service].astro` (per-service rule pages), `alertmanager.astro`, `blackbox-exporter.astro`, `sleep-peacefully.astro` (guides). +- **`site/src/layouts/BaseLayout.astro`** — Root HTML layout (SEO, GA, dark mode). +- **`site/src/layouts/GuideLayout.astro`** — Layout for guide pages (TOC, hero, related guides). +- **`site/src/components/`** — Shared Astro components (Header, Footer, Sidebar, RuleCard, ExporterSection, etc.). +- **`site/astro.config.mjs`** — Astro configuration (sitemap, Vite YAML plugin, base URL). - **`dist/rules/`** — Pre-built downloadable rule files organized by service/exporter (referenced in the site for `wget` commands). ## Rules YAML Structure @@ -50,19 +54,20 @@ Services are grouped in category. If you are not sure about the classification, ## Running Locally ```bash -# With Ruby/Bundler -gem install bundler -bundle install -jekyll serve - -# With Docker Compose -docker compose up -d - -# With Docker directly -docker run --rm -it -p 4000:4000 -v $(pwd):/srv/jekyll jekyll/jekyll jekyll serve +cd site +npm install +npm run dev ``` -Site serves at http://localhost:4000/awesome-prometheus-alerts. +Site serves at http://localhost:4321/awesome-prometheus-alerts. + +To build for production: + +```bash +cd site +npm run build +npm run preview +``` ## Contributing Rules diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 816a59f..7974f64 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,24 +16,16 @@ Please ensure your pull request adheres to the following guidelines: - Description must be factual (the "what?") and should provide root cause suggestions (the "why?"), for faster resolution. - Queries must be tested on latest exporter version. -## Improving Github page +## Improving the website + +The site is built with Astro + TypeScript, located in `site/`. ### Run locally ``` -gem install bundler -bundle install -jekyll serve +cd site +npm install +npm run dev ``` -Or with Docker: - -``` -docker run --rm -it -p 4000:4000 -v $(pwd):/srv/jekyll jekyll/jekyll jekyll serve -``` - -Or with Docker Compose: - -``` -docker compose up -d -``` +Site serves at http://localhost:4321/awesome-prometheus-alerts. diff --git a/Gemfile b/Gemfile deleted file mode 100644 index cddfa60..0000000 --- a/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://rubygems.org' -gem 'github-pages', '>= 232', group: :jekyll_plugins -gem 'webrick', '~> 1.8' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 044b68a..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,293 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (7.2.3.1) - base64 - benchmark (>= 0.3) - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - logger (>= 1.4.2) - minitest (>= 5.1, < 6) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.9) - public_suffix (>= 2.0.2, < 8.0) - base64 (0.3.0) - benchmark (0.5.0) - bigdecimal (4.0.1) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - colorator (1.1.0) - commonmarker (0.23.12) - concurrent-ruby (1.3.6) - connection_pool (3.0.2) - csv (3.3.5) - dnsruby (1.73.1) - base64 (>= 0.2) - logger (~> 1.6) - simpleidn (~> 0.2.1) - drb (2.2.3) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - ethon (0.18.0) - ffi (>= 1.15.0) - logger - eventmachine (1.2.7) - execjs (2.10.0) - faraday (2.14.1) - faraday-net_http (>= 2.0, < 3.5) - json - logger - faraday-net_http (3.4.2) - net-http (~> 0.5) - ffi (1.17.3) - ffi (1.17.3-x86_64-linux-gnu) - ffi (1.17.3-x86_64-linux-musl) - forwardable-extended (2.6.0) - gemoji (4.1.0) - github-pages (232) - github-pages-health-check (= 1.18.2) - jekyll (= 3.10.0) - jekyll-avatar (= 0.8.0) - jekyll-coffeescript (= 1.2.2) - jekyll-commonmark-ghpages (= 0.5.1) - jekyll-default-layout (= 0.1.5) - jekyll-feed (= 0.17.0) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.16.1) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.13.0) - kramdown (= 2.4.0) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.4) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.16.2, < 2.0) - rouge (= 3.30.0) - terminal-table (~> 1.4) - webrick (~> 1.8) - github-pages-health-check (1.18.2) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (>= 4, < 8) - public_suffix (>= 3.0, < 6.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.1) - i18n (1.14.8) - concurrent-ruby (~> 1.0) - jekyll (3.10.0) - addressable (~> 2.4) - colorator (~> 1.0) - csv (~> 3.0) - em-websocket (~> 0.5) - i18n (>= 0.7, < 2) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - webrick (>= 1.0) - jekyll-avatar (0.8.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.2.2) - coffee-script (~> 2.2) - coffee-script-source (~> 1.12) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.5.1) - commonmarker (>= 0.23.7, < 1.1.0) - jekyll (>= 3.9, < 4.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 5.0) - jekyll-default-layout (0.1.5) - jekyll (>= 3.0, < 5.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.16.1) - jekyll (>= 3.4, < 5.0) - octokit (>= 4, < 7, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.19.2) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.10.0) - logger - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.7.0) - mercenary (0.3.6) - mini_portile2 (2.8.9) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.27.0) - net-http (0.9.1) - uri (>= 0.11.1) - nokogiri (1.19.1) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - nokogiri (1.19.1-x86_64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.1-x86_64-linux-musl) - racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.1.1) - racc (1.8.1) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rexml (3.4.4) - rouge (3.30.0) - rubyzip (2.4.1) - safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.3) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - securerandom (0.4.1) - simpleidn (0.2.3) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) - uri (1.1.1) - webrick (1.9.2) - -PLATFORMS - ruby - x86_64-linux - x86_64-linux-musl - -DEPENDENCIES - github-pages (>= 232) - webrick (~> 1.8) - -BUNDLED WITH - 2.3.25 diff --git a/README.md b/README.md index d1c0528..c2fbcc4 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ There are many ways to contribute: writing code, alerting rules, documentation, ## 🏋️ Improvements -- Create an alert rule builder in Jekyll for custom alerts (severity, thresholds, instances...) +- Create an alert rule builder for custom alerts (severity, thresholds, instances...) - Add resolution suggestions to rule descriptions, for faster incident resolution ([#85](https://github.com/samber/awesome-prometheus-alerts/issues/85)). ## 💫 Show your support diff --git a/_config.yml b/_config.yml deleted file mode 100644 index fb8b54f..0000000 --- a/_config.yml +++ /dev/null @@ -1,8 +0,0 @@ -theme: jekyll-theme-cayman - -title: Awesome Prometheus alerts -description: Collection of alerting rules - -repository: samber/awesome-prometheus-alerts - -baseurl: /awesome-prometheus-alerts diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 2383368..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,162 +0,0 @@ -<!DOCTYPE html> -<html lang="{{ site.lang | default: "en-US" }}"> - -<head> - <meta charset="UTF-8"> - {% seo %} - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="theme-color" content="#157878"> - <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> - <link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}"> - <link rel="stylesheet" href="{{ '/assets/css/app.css?v=' | append: site.github.build_revision | relative_url }}"> - <link rel="icon" type="image/x-icon" href="{{ '/assets/favicon.ico' | relative_url }}"> - - <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js"></script> - <script src="{{ '/assets/js/app.js?v=' | append: site.github.build_revision | relative_url }}"></script> - - <!-- Global site tag (gtag.js) - Google Analytics --> - <script async src="https://www.googletagmanager.com/gtag/js?id=UA-118604063-2"></script> - <script> - window.dataLayer = window.dataLayer || []; - - function gtag() { - dataLayer.push(arguments); - } - gtag('js', new Date()); - - gtag('config', 'UA-118604063-2'); - </script> - -</head> - -<body> - <style> - #skip-to-content { - height: 1px; - width: 1px; - position: absolute; - overflow: hidden; - top: -10px; - - &:focus { - position: fixed; - top: 10px; - left: 10px; - height: auto; - width: auto; - background: invert($body-link-color); - outline: thick solid invert($body-link-color); - } - } - - ul.github-buttons-cta li { - display: inline-block; - height: 20px; - padding: 0px 15px; - } - - ul.github-buttons-cta li a { - /* width: 100px; */ - text-decoration: none; - } - - .fa { - /* padding: 14px; - width: 50px; - height: 50px; */ - font-size: 25px; - text-align: center; - text-decoration: none; - border-radius: 50%; - } - - .fa:hover { - opacity: 0.8; - } - - .fa-twitter, - .fa-linkedin { - /* background: #55ACEE; */ - color: white; - } - </style> - <a id="skip-to-content" href="#content">Skip to the content.</a> - - <header class="page-header" role="banner"> - <h1 class="project-name"> - <a href="{{ '/' | relative_url }}" style="color: white"> - {{ site.title | default: site.github.repository_name }} - </a> - </h1> - <h2 class="project-tagline">{{ site.description | default: site.github.project_tagline }}</h2> - <a href="{{ '/alertmanager' | relative_url }}" class="btn">Global configuration</a> - <a href="{{ '/rules' | relative_url }}" class="btn">Rules</a> - <a href="{{ '/sleep-peacefully' | relative_url }}" class="btn">Sleep peacefully</a> - <a href="{{ '/blackbox-exporter' | relative_url }}" class="btn">Blackbox</a> - <a href="https://github.com/samber/awesome-prometheus-alerts/blob/master/CONTRIBUTING.md" class="btn"> - Contribute on GitHub - </a> - - <ul class="github-buttons-cta"> - <li> - <a href="https://github.com/samber/awesome-prometheus-alerts"> - <img alt="GitHub Repo Watchers" src="https://img.shields.io/github/watchers/samber/awesome-prometheus-alerts?style=social"> - </a> - </li> - <li> - <a href="https://github.com/samber/awesome-prometheus-alerts"> - <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/samber/awesome-prometheus-alerts?style=social"> - </a> - </li> - <li> - <a href="https://github.com/samber/awesome-prometheus-alerts"> - <img alt="GitHub Repo forks" src="https://img.shields.io/github/forks/samber/awesome-prometheus-alerts?style=social"> - </a> - </li> - <li> - <a href="https://twitter.com/share?via=samuelberthe&related=samuelberthe&text=🚨 📊 Here is a collection of Awesome Prometheus Alerts&url=https://samber.github.io/awesome-prometheus-alerts" - class="fa fa-twitter" target="_blank"></a> - </li> - <li> - <a href="http://www.linkedin.com/shareArticle?mini=true&url=https://samber.github.io/awesome-prometheus-alerts/" - class="fa fa-linkedin" target="_blank"></a> - </li> - </ul> - - - <ul id="sponsoring"> - <li> - Kindly supported by  👉 - </li> - <li> - <a href="https://cast.ai/samuel"> - <img width="" src="assets/sponsor-cast-ai.png" /> - </a> - </li> - <li> - <a href="https://betterstack.com/"> - <img width="" src="assets/sponsor-betterstack.png" /> - </a> - </li> - </ul> - </header> - - <main id="content" class="main-content" role="main"> - {{ content }} - - <footer class="site-footer"> - {% if site.github.is_project_page %} - <span class="site-footer-owner"> - <a href="{{ site.github.repository_url }}">{{ site.title }}</a> is maintained by - <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a>. - </span> - {% endif %} - </footer> - </main> - -</body> - -</html> diff --git a/alertmanager.md b/alertmanager.md deleted file mode 100644 index d350945..0000000 --- a/alertmanager.md +++ /dev/null @@ -1,141 +0,0 @@ -<h1 style="text-align: center;"> - Global configuration -</h1> - -If you notice a delay between an event and the first notification, read the following blog post => [https://pracucci.com/prometheus-understanding-the-delays-on-alerting.html](https://pracucci.com/prometheus-understanding-the-delays-on-alerting.html). - -## Prometheus configuration - -{% highlight yaml %} -# prometheus.yml - -global: - scrape_interval: 20s - - # A short evaluation_interval will check alerting rules very often. - # It can be costly if you run Prometheus with 100+ alerts. - evaluation_interval: 20s - ... - -rule_files: - - 'alerts/*.yml' - -scrape_configs: - ... - -{% endhighlight %} - -{% highlight yaml %} -# alerts/example-redis.yml - -groups: - -- name: ExampleRedisGroup - rules: - - alert: ExampleRedisDown - expr: redis_up{} == 0 - for: 2m - labels: - severity: critical - annotations: - summary: "Redis instance down" - description: "Whatever" - -{% endhighlight %} - -## AlertManager configuration - -{% highlight yaml %} -{% raw %} -# alertmanager.yml - -route: - # When a new group of alerts is created by an incoming alert, wait at - # least 'group_wait' to send the initial notification. - # This way ensures that you get multiple alerts for the same group that start - # firing shortly after another are batched together on the first - # notification. - group_wait: 10s - - # When the first notification was sent, wait 'group_interval' to send a batch - # of new alerts that started firing for that group. - group_interval: 30s - - # If an alert has successfully been sent, wait 'repeat_interval' to - # resend them. - repeat_interval: 30m - - # A default receiver - receiver: "slack" - - # All the above attributes are inherited by all child routes and can - # overwritten on each. - routes: - - receiver: "slack" - group_wait: 10s - match_re: - severity: critical|warning - continue: true - - - receiver: "pager" - group_wait: 10s - match_re: - severity: critical - continue: true - -receivers: - - name: "slack" - slack_configs: - - api_url: 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxxxxx' - send_resolved: true - channel: 'monitoring' - text: "{{ range .Alerts }}<!channel> {{ .Annotations.summary }}\n{{ .Annotations.description }}\n{{ end }}" - - - name: "pager" - webhook_configs: - - url: http://a.b.c.d:8080/send/sms - send_resolved: true - -{% endraw %} -{% endhighlight %} - -## Reduce Prometheus server load - -For expansive or frequent PromQL queries, Prometheus allows to precompute rules. - -{% highlight yaml %} -{% raw %} -groups: - - # first define the recorded rule - - name: ExampleRecordedGroup - rules: - - record: job:rabbitmq_queue_messages_delivered_total:rate:5m - expr: rate(rabbitmq_queue_messages_delivered_total[5m]) - - # then use it in alerts - - name: ExampleAlertingGroup - rules: - - alert: ExampleRabbitmqLowMessageDelivery - expr: sum(job:rabbitmq_queue_messages_delivered_total:rate:5m) < 10 - for: 2m - labels: - severity: critical - annotations: - summary: "Low delivery rate in Rabbitmq queues" -{% endraw %} -{% endhighlight %} - -## Troubleshooting - -If the notification takes too much time to be triggered, check the following delays: -- `scrape_interval = 20s` (prometheus.yml) -- `evaluation_interval = 20s` (prometheus.yml) -- `increase(mysql_global_status_slow_queries[1m]) > 0` (alerts/example-mysql.yml) -- `for: 5m` (alerts/example-mysql.yml) -- `group_wait = 10s` (alertmanager.yml) - -Also read: -- [https://pracucci.com/prometheus-understanding-the-delays-on-alerting.html](https://pracucci.com/prometheus-understanding-the-delays-on-alerting.html). -- [https://hodovi.cc/blog/creating-awesome-alertmanager-templates-for-slack/](https://hodovi.cc/blog/creating-awesome-alertmanager-templates-for-slack/) -- [https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to-efficiently-detect-anomalies-at-scale/](https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to-efficiently-detect-anomalies-at-scale/) diff --git a/blackbox-exporter.md b/blackbox-exporter.md deleted file mode 100644 index 4782d36..0000000 --- a/blackbox-exporter.md +++ /dev/null @@ -1,125 +0,0 @@ - -<h1 style="text-align: center;"> - Blackbox exporter -</h1> - -## Wordwide probes - -<a href="https://github.com/prometheus/blackbox_exporter" target="_blank">Blackbox Exporter</a> gives you the ability to probe endpoints over HTTP, HTTPS, DNS, TCP and ICMP. - -You should deploy blackbox exporters in multiple Point of Presence around the globe, to monitor latency. Feel free to use the following endpoints for your own projects: - -- https://probe-<b>montreal</b>.cleverapps.io -- https://probe-<b>paris</b>.cleverapps.io -- https://probe-<b>jeddah</b>.cleverapps.io -- https://probe-<b>singapore</b>.cleverapps.io -- https://probe-<b>sydney</b>.cleverapps.io -- https://probe-<b>warsaw</b>.cleverapps.io - -☝️ Logs have been disabled. More probes from the community would be appreciated, please contribute <a href="https://github.com/samber/awesome-prometheus-alerts/" target="_blank">here</a>! These blackbox exporters use the following <a href="https://github.com/samber/blackbox_exporter/blob/master/samber.yml" target="_blank">configuration</a>. - -## Prometheus Configuration - -Blackbox exporters and endpoints must be declared in Prometheus. Here is a simple configuration, inspired by [Hayk Davtyan medium post](https://medium.com/geekculture/single-prometheus-job-for-dozens-of-blackbox-exporters-2a7ba492d6c8): - -```yml -# sd/blackbox.yml - -- targets: - # - # Montreal - # - # http - - probe-montreal.cleverapps.io:_:http_2xx:_:Montreal:_:f229cy:_:https://api.screeb.app - - probe-montreal.cleverapps.io:_:http_2xx:_:Montreal:_:f229cy:_:https://t.screeb.app/tag.js - # icmp - - probe-montreal.cleverapps.io:_:icmp_ipv4:_:Montreal:_:f229cy:_:api.screeb.app - - probe-montreal.cleverapps.io:_:icmp_ipv4:_:Montreal:_:f229cy:_:t.screeb.app - - - # - # Paris - # - # http - - probe-paris.cleverapps.io:_:http_2xx:_:Paris:_:u09tgy:_:https://api.screeb.app - - probe-paris.cleverapps.io:_:http_2xx:_:Paris:_:u09tgy:_:https://t.screeb.app/tag.js - # icmp - - probe-paris.cleverapps.io:_:icmp_ipv4:_:Paris:_:u09tgy:_:api.screeb.app - - probe-paris.cleverapps.io:_:icmp_ipv4:_:Paris:_:u09tgy:_:t.screeb.app - - - # - # Sydney - # - # http - - probe-sydney.cleverapps.io:_:http_2xx:_:Sydney:_:r3gpkn:_:https://api.screeb.app - - probe-sydney.cleverapps.io:_:http_2xx:_:Sydney:_:r3gpkn:_:https://t.screeb.app/tag.js - # icmp - - probe-sydney.cleverapps.io:_:icmp_ipv4:_:Sydney:_:r3gpkn:_:api.screeb.app - - probe-sydney.cleverapps.io:_:icmp_ipv4:_:Sydney:_:r3gpkn:_:t.screeb.app - - # ... -``` - -```yml -# prometheus.yml - -global: - # ... - -scrape_configs: - - - job_name: 'blackbox' - metrics_path: /probe - scrape_interval: 30s - scheme: https - file_sd_configs: - - files: - - /etc/prometheus/sd/blackbox.yml - relabel_configs: - # adds "module" label in the final labelset - - source_labels: [__address__] - regex: '.*:_:(.*):_:.*:_:.*:_:.*' - target_label: module - # adds "geohash" label in the final labelset - - source_labels: [__address__] - regex: '.*:_:.*:_:.*:_:(.*):_:.*' - target_label: geohash - # rewrites "instance" label with corresponding URL - - source_labels: [__address__] - regex: '.*:_:.*:_:.*:_:.*:_:(.*)' - target_label: instance - # rewrites "pop" label with corresponding location name - - source_labels: [__address__] - regex: '.*:_:.*:_:(.*):_:.*:_:.*' - target_label: pop - # passes "module" parameter to Blackbox exporter - - source_labels: [module] - target_label: __param_module - # passes "target" parameter to Blackbox exporter - - source_labels: [instance] - target_label: __param_target - # the Blackbox exporter's real hostname:port - - source_labels: [__address__] - regex: '(.*):_:.*:_:.*:_:.*:_:.*' - target_label: __address__ - - # ... - -``` - -## Geohash - -![](assets/grafana-map-panel.png) - -To display nice maps in Grafana, you need to instruct blackbox exporters about the location. Grafana map panel speaks the "geohash" format: - -- go to google map -- extract the lat/long from the url -- convert lat/long to geohash here: http://geohash.co - -## Grafana - -Some great dashboard have been created by the community: https://grafana.com/grafana/dashboards/?search=blackbox - -Since Grafana v5.0.0, a map panel is available: https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/geomap/ diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 4e55dc2..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3' - -services: - - jekyll: - image: jekyll/jekyll:latest - command: jekyll serve - volumes: - - ./:/srv/jekyll - ports: - - 4000:4000 diff --git a/index.md b/index.md deleted file mode 100644 index 715f9d1..0000000 --- a/index.md +++ /dev/null @@ -1,54 +0,0 @@ - -<style> -.center-image -{ - margin: 0 auto; - display: block; -} -</style> - - -![Prometheus logo](/assets/prometheus-logo.png){: .center-image } - - -<h2> - Hello world -</h2> - -<a href="/awesome-prometheus-alerts/alertmanager"> - AlertManager configuration -</a> - -<a href="/awesome-prometheus-alerts/sleep-peacefully"> - Alerting time window -</a> - -<h2> - Out of the box prometheus alerting rules -</h2> - -<ul> - {% for group in site.data.rules.groups %} - <li style="margin-top: 30px;"> - {% assign nbrRules = 0 %} - {% for service in group.services %} - {% for exporter in service.exporters %} - {% for rule in exporter.rules %} - {% assign nbrRules = nbrRules | plus: 1 %} - {% endfor %} - {% endfor %} - {% endfor %} - - <h3>{{ group.name }} <small style="margin-left: 20px;">({{ nbrRules }} rules)</small></h3> - <ul> - {% for service in group.services %} - <li> - <a href="/awesome-prometheus-alerts/rules#{{ service.name | replace: " ", "-" | downcase }}"> - {{ service.name }} - </a> - </li> - {% endfor %} - </ul> - </li> - {% endfor %} -</ul> diff --git a/rules.md b/rules.md deleted file mode 100644 index c4978e7..0000000 --- a/rules.md +++ /dev/null @@ -1,141 +0,0 @@ -<style> - ul { - list-style: none; - } -</style> - -<!-- CAUTIONS --> -<div style="padding: 20px 20px 10px 20px; border: solid grey 1px; border-radius: 10px;"> - <h2 style="text-align:center;">⚠️ Caution ⚠️</h2> - - <p style="text-align:center;"> - Alert thresholds depend on nature of applications. - <br> - Some queries in this page may have arbitrary tolerance threshold. - <br><br> - Building an efficient and battle-tested monitoring platform takes time. 😉 - </p> -</div> - -<br> -<br> - -<h1></h1> - -<!-- RULES --> -<ul> - {% for group in site.data.rules.groups %} - {% assign groupIndex = forloop.index %} - {% for service in group.services %} - {% assign serviceIndex = forloop.index %} - {% assign nbrExporters = service.exporters | size %} - {% for exporter in service.exporters %} - {% assign exporterIndex = forloop.index %} - {% assign nbrRules = exporter.rules | size %} - <li> - {% assign serviceId = service.name | replace: " ", "-" | downcase %} - <h2 id="{{ serviceId }}"> - <span id="{{ serviceId }}-{{ exporterIndex }}"></span> - <a class="anchor" href="#{{ serviceId }}-{{ exporterIndex }}">#</a> - {{ groupIndex }}.{{ serviceIndex }}.{% if nbrExporters > 1 %}{{ exporterIndex }}.{% endif %} - {{ service.name }} - {% if exporter.name %}: - {% if exporter.doc_url %} - <a href="{{ exporter.doc_url }}"> - {{ exporter.name }} - </a> - {% else %} - {{ exporter.name }} - {% endif %} - {% endif %} - - {% if nbrRules > 0 %} - <small style="font-size: 60%; vertical-align: middle; margin-left: 10px;"> - ({{ nbrRules }} rules) - </small> - <span class="clipboard-multiple" data-clipboard-target-id="group-{{ groupIndex }}-service-{{ serviceIndex }}-exporter-{{ exporterIndex }}">[copy section]</span> - {% endif %} - </h2> - - {% if nbrRules == 0 %} -{% highlight javascript %} -// @TODO: Please contribute => https://github.com/samber/awesome-prometheus-alerts 👋 -{% endhighlight %} - {% else %} -{{ exporter.comments | strip | newline_to_br }} -{% highlight bash %} -$ wget https://raw.githubusercontent.com/samber/awesome-prometheus-alerts/refs/heads/master/dist/rules/{{ service.name | replace: " ", "-" | downcase }}/{{ exporter.slug }}.yml -{% endhighlight %} - {% endif %} - - <ul> - {% for rule in exporter.rules %} - {% assign ruleIndex = forloop.index %} - {% assign comments = rule.comments | strip | newline_to_br | split: '<br />' %} - <li> - <h4 id="rule-{{ serviceId }}-{{ exporterIndex }}-{{ ruleIndex }}"> - <span id="rule-{{ serviceId }}-{{ ruleIndex }}"></span><!-- @deprecated --> - <a class="anchor" href="#rule-{{ serviceId }}-{{ exporterIndex }}-{{ ruleIndex }}">#</a> - {{ groupIndex}}.{{ serviceIndex }}.{% if nbrExporters > 1 %}{{ exporterIndex }}.{% endif %}{{ ruleIndex }}. - {{ rule.name }} - </h4> - <summary> - {{ rule.description }} - <span class="clipboard-single" data-clipboard-target-id="group-{{ groupIndex }}-service-{{ serviceIndex }}-exporter-{{ exporterIndex }}-rule-{{ ruleIndex }}" onclick="event.preventDefault();">[copy]</span> - </summary> - <div id="group-{{ groupIndex }}-service-{{ serviceIndex }}-exporter-{{ exporterIndex }}-rule-{{ ruleIndex }}"> - {% assign ruleName = rule.name | split: ' ' %} - {% capture ruleNameCamelcase %}{% for word in ruleName %}{{ word | capitalize }} {% endfor %}{% endcapture %} - - {% highlight yaml %} - {% for comment in comments %}# {{ comment | strip }} - {% endfor %}- alert: {{ ruleNameCamelcase | remove: ' ' }} - expr: {{ rule.query }} - for: {% if rule.for %}{{ rule.for }}{% else %}0m{% endif %} - labels: - severity: {{ rule.severity }} - annotations: - summary: {{ rule.name }} (instance {% raw %}{{ $labels.instance }}{% endraw %}) - description: "{{ rule.description | replace: '"', '\"' }}\n VALUE = {% raw %}{{ $value }}{% endraw %}\n LABELS = {% raw %}{{ $labels }}{% endraw %}" - -{% endhighlight %} - - </div> - <br/> - </li> - {% endfor %} - </ul> - - <hr/> - </li> - {% endfor %} - {% endfor %} - {% endfor %} -</ul> - - - -<!-- NAVBAR --> -<div id="rules-navbar" class="affix"> - <h3>Menu</h3> - <ul> - {% for group in site.data.rules.groups %} - <li> - <h4>{{ group.name }}</h4> - <ul> - {% for service in group.services %} - <li> - <a href="#{{ service.name | replace: " ", "-" | downcase }}"> - 👉 {{ service.name }} - </a> - </li> - {% endfor %} - </ul> - </li> - {% endfor %} - </ul> - - <script> - $('#rules-navbar').affix({offset: {top: 750} }).css('display', 'block'); - </script> -</div> diff --git a/site/astro.config.mjs b/site/astro.config.mjs new file mode 100644 index 0000000..d3cb79c --- /dev/null +++ b/site/astro.config.mjs @@ -0,0 +1,105 @@ +import { defineConfig } from 'astro/config'; +import tailwind from '@astrojs/tailwind'; +import sitemap from '@astrojs/sitemap'; +import icon from 'astro-icon'; +import { parse as parseYaml } from 'yaml'; +import { readFileSync } from 'fs'; +import { resolve, dirname } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +function normalizeViteId(id) { + const cleanId = id.split('?', 1)[0].split('#', 1)[0]; + return cleanId.startsWith('/@fs/') ? cleanId.slice(4) : cleanId; +} + +/** Custom Vite plugin that parses YAML files using the 'yaml' package, + * which tolerates duplicate keys (last one wins) unlike js-yaml 4.x. */ +function yamlPlugin() { + return { + name: 'vite-plugin-yaml-tolerant', + transform(code, id) { + const normalizedId = normalizeViteId(id); + if (!normalizedId.endsWith('.yml') && !normalizedId.endsWith('.yaml')) return null; + const content = typeof code === 'string' ? code : readFileSync(resolve(normalizedId), 'utf-8'); + const data = parseYaml(content, { merge: true, strict: false, uniqueKeys: false }); + return { + code: `export default ${JSON.stringify(data)};`, + map: null, + }; + }, + }; +} + +const toSlug = (name) => + name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, ''); + +/** Build redirect map: old flat /rules/{service} paths → new /rules/{group}/{service}/ paths */ +function buildRedirects(base) { + try { + const rulesPath = resolve(__dirname, '../_data/rules.yml'); + const raw = readFileSync(rulesPath, 'utf-8'); + const { groups } = parseYaml(raw, { merge: true, strict: false, uniqueKeys: false }); + const redirects = {}; + for (const group of groups) { + const groupSlug = toSlug(group.name); + for (const service of group.services) { + const serviceSlug = toSlug(service.name); + // Old anchor slug (spaces → hyphens only, no other substitutions) + const oldSlug = service.name.replace(/ /g, '-').toLowerCase(); + const newPath = `${base}/rules/${groupSlug}/${serviceSlug}/`; + // Redirect from flat old path (without trailing slash; Astro handles the slash variant) + const oldPath = `${base}/rules/${oldSlug}`; + if (oldPath !== newPath && oldPath !== newPath.slice(0, -1)) { + redirects[oldPath] = { destination: newPath, status: 301 }; + } + } + } + return redirects; + } catch { + return {}; + } +} + +const base = '/awesome-prometheus-alerts'; + +export default defineConfig({ + site: 'https://samber.github.io', + base, + redirects: buildRedirects(base), + output: 'static', + integrations: [ + tailwind({ applyBaseStyles: false }), + sitemap({ + serialize(item) { + const path = new URL(item.url).pathname; + const segments = path.replace(/^\/|\/$/g, '').split('/').filter(Boolean); + // segments[0] = 'awesome-prometheus-alerts', [1] = 'rules'|guide, [2] = group, [3] = service + + if (segments.length <= 1) { + // Homepage + return { ...item, changefreq: 'weekly', priority: 1.0, lastmod: new Date() }; + } + if (segments.length === 2 && segments[1] === 'rules') { + // /rules/ index + return { ...item, changefreq: 'weekly', priority: 0.9, lastmod: new Date() }; + } + if (segments.length === 3 && segments[1] === 'rules') { + // /rules/[group]/ index + return { ...item, changefreq: 'monthly', priority: 0.7, lastmod: new Date() }; + } + if (segments.length === 4 && segments[1] === 'rules') { + // /rules/[group]/[service]/ — main content pages + return { ...item, changefreq: 'monthly', priority: 0.8, lastmod: new Date() }; + } + // Guide pages and others + return { ...item, changefreq: 'yearly', priority: 0.6, lastmod: new Date() }; + }, + }), + icon(), + ], + vite: { + plugins: [yamlPlugin()], + }, +}); diff --git a/site/package-lock.json b/site/package-lock.json new file mode 100644 index 0000000..72031c1 --- /dev/null +++ b/site/package-lock.json @@ -0,0 +1,7330 @@ +{ + "name": "awesome-prometheus-alerts-site", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "awesome-prometheus-alerts-site", + "version": "1.0.0", + "dependencies": { + "@astrojs/sitemap": "^3.0.0", + "@astrojs/tailwind": "^5.0.0", + "@iconify-json/lucide": "^1.0.0", + "@rollup/plugin-yaml": "^4.0.0", + "astro": "^5.0.0", + "astro-icon": "^1.0.0", + "js-yaml": "^4.1.0", + "pagefind": "^1.0.0", + "tailwindcss": "^3.4.0", + "yaml": "^2.8.3" + }, + "devDependencies": { + "@types/js-yaml": "^4.0.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@astrojs/compiler": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz", + "integrity": "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==", + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.6.tgz", + "integrity": "sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==", + "license": "MIT" + }, + "node_modules/@astrojs/markdown-remark": { + "version": "6.3.11", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.11.tgz", + "integrity": "sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.7.6", + "@astrojs/prism": "3.3.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.2.0", + "js-yaml": "^4.1.1", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "shiki": "^3.21.0", + "smol-toml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/prism": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.3.0.tgz", + "integrity": "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@astrojs/sitemap": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.2.tgz", + "integrity": "sha512-PqkzkcZTb5ICiyIR8VoKbIAP/laNRXi5tw616N1Ckk+40oNB8Can1AzVV56lrbC5GKSZFCyJYUVYqVivMisvpA==", + "license": "MIT", + "dependencies": { + "sitemap": "^9.0.0", + "stream-replace-string": "^2.0.0", + "zod": "^4.3.6" + } + }, + "node_modules/@astrojs/tailwind": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.5.tgz", + "integrity": "sha512-1diguZEau7FZ9vIjzE4BwavGdhD3+JkdS8zmibl1ene+EHgIU5hI0NMgRYG3yea+Niaf7cyMwjeWeLvzq/maxg==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.20", + "postcss": "^8.5.1", + "postcss-load-config": "^4.0.2" + }, + "peerDependencies": { + "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", + "tailwindcss": "^3.0.24" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.0.tgz", + "integrity": "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.2.0", + "debug": "^4.4.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "is-docker": "^3.0.0", + "is-wsl": "^3.1.0", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", + "integrity": "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@iconify-json/lucide": { + "version": "1.2.101", + "resolved": "https://registry.npmjs.org/@iconify-json/lucide/-/lucide-1.2.101.tgz", + "integrity": "sha512-JUN7uuSLRG3GK/9c5b8cK9e7sL6EAWDaASIwBOd0zUeKS0ACcokJubo2RMQHyVUVpd8mYkrR3Zd2mkH9ghhw1Q==", + "license": "ISC", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/tools": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@iconify/tools/-/tools-4.2.0.tgz", + "integrity": "sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA==", + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0", + "@iconify/utils": "^2.3.0", + "cheerio": "^1.1.2", + "domhandler": "^5.0.3", + "extract-zip": "^2.0.1", + "local-pkg": "^1.1.2", + "pathe": "^2.0.3", + "svgo": "^3.3.2", + "tar": "^7.5.2" + } + }, + "node_modules/@iconify/tools/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@iconify/tools/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/@iconify/tools/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/@iconify/tools/node_modules/svgo": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "license": "MIT", + "dependencies": { + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.0.tgz", + "integrity": "sha512-OXQVlxALU9+Lz/LxkAa+RvaxY1cnRKUDCuwl9o8PY5Lg/znP573y4WIbVOOIz8Bv7uj7r00TGy7pD+NSLMJGBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.0.tgz", + "integrity": "sha512-+LK1Xq5n/B0hHc08DW61SnfIlfLKyXZ1oKcbfZ1MimE7Rn0Q6R0VI/TlC04f/JDPm+67zAOwPGizzvefOi5vqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/freebsd-x64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.0.tgz", + "integrity": "sha512-kicDfUF9gn/z06NimTwNlZXF8z3pLsN3BIPPt6N8unuh0n55fr64tVs2p3a5RKYmQkJGjPfOE/C9GI5YTEpURg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.0.tgz", + "integrity": "sha512-e5rDB3wPm89bcSLiatKBDTrVTbsMQrrtkXRaAoUJYU0C1suXVvEzZfjmMvrUDvYhZBx/Ls8hGuGxlqSJBz3gDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.0.tgz", + "integrity": "sha512-vh52DcBiF/mRMmq+Rwt3M3RgEWgl00jFk/M5NWhLEHJFq4+papQXwbyKbi7cNlxaeYrKx6wOfW3fm9cftfc/Kg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-arm64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.0.tgz", + "integrity": "sha512-kg+szZwffZdyWn6SL6RHjAYjhSvJ2bT4qkv3KepGsbmD9fuSHUSC+2kydDneDVUA9qEDRf9uSFoEAsXsp1/JKA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.0.tgz", + "integrity": "sha512-8eOCmB8lnpyvwz+HrcTXLuBxhj7UseAFh6KGEXRe8UCcAfVQih+qPy/4akJRezViI+ONijz9oi7HpMkw9rdtBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/plugin-yaml": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-yaml/-/plugin-yaml-4.1.2.tgz", + "integrity": "sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "js-yaml": "^4.1.0", + "tosource": "^2.0.0-alpha.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", + "cpu": [ + "arm" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", + "cpu": [ + "loong64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", + "cpu": [ + "loong64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", + "cpu": [ + "ppc64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz", + "integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz", + "integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz", + "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astro": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.18.1.tgz", + "integrity": "sha512-m4VWilWZ+Xt6NPoYzC4CgGZim/zQUO7WFL0RHCH0AiEavF1153iC3+me2atDvXpf/yX4PyGUeD8wZLq1cirT3g==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.13.0", + "@astrojs/internal-helpers": "0.7.6", + "@astrojs/markdown-remark": "6.3.11", + "@astrojs/telemetry": "3.3.0", + "@capsizecss/unpack": "^4.0.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.3.0", + "acorn": "^8.15.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "boxen": "8.0.1", + "ci-info": "^4.3.1", + "clsx": "^2.1.1", + "common-ancestor-path": "^1.0.1", + "cookie": "^1.1.1", + "cssesc": "^3.0.0", + "debug": "^4.4.3", + "deterministic-object-hash": "^2.0.2", + "devalue": "^5.6.2", + "diff": "^8.0.3", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "es-module-lexer": "^1.7.0", + "esbuild": "^0.27.3", + "estree-walker": "^3.0.3", + "flattie": "^1.1.1", + "fontace": "~0.4.0", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "import-meta-resolve": "^4.2.0", + "js-yaml": "^4.1.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.1", + "mrmime": "^2.0.1", + "neotraverse": "^0.6.18", + "p-limit": "^6.2.0", + "p-queue": "^8.1.1", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.3", + "prompts": "^2.4.2", + "rehype": "^13.0.2", + "semver": "^7.7.3", + "shiki": "^3.21.0", + "smol-toml": "^1.6.0", + "svgo": "^4.0.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tsconfck": "^3.1.6", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.3", + "unist-util-visit": "^5.0.0", + "unstorage": "^1.17.4", + "vfile": "^6.0.3", + "vite": "^6.4.1", + "vitefu": "^1.1.1", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^21.1.1", + "yocto-spinner": "^0.2.3", + "zod": "^3.25.76", + "zod-to-json-schema": "^3.25.1", + "zod-to-ts": "^1.2.0" + }, + "bin": { + "astro": "astro.js" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0" + } + }, + "node_modules/astro-icon": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/astro-icon/-/astro-icon-1.1.5.tgz", + "integrity": "sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==", + "license": "MIT", + "dependencies": { + "@iconify/tools": "^4.0.5", + "@iconify/types": "^2.0.0", + "@iconify/utils": "^2.1.30" + } + }, + "node_modules/astro/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/astro/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/astro/node_modules/zod-to-ts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz", + "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", + "peerDependencies": { + "typescript": "^4.9.4 || ^5.0.2", + "zod": "^3" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001774", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz", + "integrity": "sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001786", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001786.tgz", + "integrity": "sha512-4oxTZEvqmLLrERwxO76yfKM7acZo310U+v4kqexI2TL1DkkUEMT8UijrxxcnVdxR3qkVf5awGRX+4Z6aPHVKrA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/common-ancestor-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", + "license": "ISC" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.6.tgz", + "integrity": "sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug==", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/deterministic-object-hash": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", + "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", + "license": "MIT", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/devalue": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.4.tgz", + "integrity": "sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.331", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.331.tgz", + "integrity": "sha512-IbxXrsTlD3hRodkLnbxAPP4OuJYdWCeM3IOdT+CpcMoIwIoDfCmRpEtSPfwBXxVkg9xmBeY7Lz2Eo2TDn/HC3Q==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "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" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.1.tgz", + "integrity": "sha512-Y71HWT4hydF1IAG/2OPync4dgQ/J2iWye7eg6CuzJHI+E97tvqFPlADzxiNnjH6WSljg8ecfXMr9k6bfFuqA5w==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.5.tgz", + "integrity": "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" + }, + "node_modules/pagefind": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.0.tgz", + "integrity": "sha512-7vQ2xh0ZmjPjsuWONR68nqzb+QNfpPh7pdT6n6YDAthWAQiUkSACVegSswY5zPNONGYFWebFVgdnS5/m/Qqn+w==", + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.5.0", + "@pagefind/darwin-x64": "1.5.0", + "@pagefind/freebsd-x64": "1.5.0", + "@pagefind/linux-arm64": "1.5.0", + "@pagefind/linux-x64": "1.5.0", + "@pagefind/windows-arm64": "1.5.0", + "@pagefind/windows-x64": "1.5.0" + } + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.1", + "@rollup/rollup-android-arm64": "4.60.1", + "@rollup/rollup-darwin-arm64": "4.60.1", + "@rollup/rollup-darwin-x64": "4.60.1", + "@rollup/rollup-freebsd-arm64": "4.60.1", + "@rollup/rollup-freebsd-x64": "4.60.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", + "@rollup/rollup-linux-arm64-gnu": "4.60.1", + "@rollup/rollup-linux-arm64-musl": "4.60.1", + "@rollup/rollup-linux-loong64-gnu": "4.60.1", + "@rollup/rollup-linux-loong64-musl": "4.60.1", + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", + "@rollup/rollup-linux-ppc64-musl": "4.60.1", + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", + "@rollup/rollup-linux-riscv64-musl": "4.60.1", + "@rollup/rollup-linux-s390x-gnu": "4.60.1", + "@rollup/rollup-linux-x64-gnu": "4.60.1", + "@rollup/rollup-linux-x64-musl": "4.60.1", + "@rollup/rollup-openbsd-x64": "4.60.1", + "@rollup/rollup-openharmony-arm64": "4.60.1", + "@rollup/rollup-win32-arm64-msvc": "4.60.1", + "@rollup/rollup-win32-ia32-msvc": "4.60.1", + "@rollup/rollup-win32-x64-gnu": "4.60.1", + "@rollup/rollup-win32-x64-msvc": "4.60.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "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" + } + }, + "node_modules/shiki": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz", + "integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.23.0", + "@shikijs/engine-javascript": "3.23.0", + "@shikijs/engine-oniguruma": "3.23.0", + "@shikijs/langs": "3.23.0", + "@shikijs/themes": "3.23.0", + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", + "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^24.9.2", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.4.1" + }, + "bin": { + "sitemap": "dist/esm/cli.js" + }, + "engines": { + "node": ">=20.19.5", + "npm": ">=10.8.2" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "24.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/sitemap/node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stream-replace-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tar": { + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", + "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tosource": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/tosource/-/tosource-2.0.0-alpha.3.tgz", + "integrity": "sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==", + "engines": { + "node": ">=10" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.7.tgz", + "integrity": "sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.4.tgz", + "integrity": "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ofetch": "^1.5.1", + "ohash": "^2.0.11" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "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 + } + } + }, + "node_modules/unstorage/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/unstorage/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", + "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "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 + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yocto-spinner": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.3.tgz", + "integrity": "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==", + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/site/package.json b/site/package.json new file mode 100644 index 0000000..e6beb9a --- /dev/null +++ b/site/package.json @@ -0,0 +1,31 @@ +{ + "name": "awesome-prometheus-alerts-site", + "type": "module", + "version": "1.0.0", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/sitemap": "^3.0.0", + "@astrojs/tailwind": "^5.0.0", + "@iconify-json/lucide": "^1.0.0", + "@rollup/plugin-yaml": "^4.0.0", + "astro": "^5.0.0", + "astro-icon": "^1.0.0", + "js-yaml": "^4.1.0", + "pagefind": "^1.0.0", + "tailwindcss": "^3.4.0", + "yaml": "^2.8.3" + }, + "devDependencies": { + "@types/js-yaml": "^4.0.0" + }, + "browserslist": [ + "> 0.5%", + "last 2 versions", + "not dead" + ] +} diff --git a/site/public/favicon.svg b/site/public/favicon.svg new file mode 100644 index 0000000..0470226 --- /dev/null +++ b/site/public/favicon.svg @@ -0,0 +1,22 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 40"> + <!-- Prometheus flame --> + <path fill="#E6522C" d=" + M16 0 + C 13 4 9 8 7 12 + C 4 17 3 21 3 25 + C 3 33.3 8.9 39.5 16 40 + C 23.1 39.5 29 33.3 29 25 + C 29 21 28 17 25 12 + C 23 8 19 4 16 0 Z + "/> + <!-- Inner cutout — circular hole like the official Prometheus flame --> + <circle cx="16" cy="27" r="5.5" fill="white"/> + <!-- Small inner flame pointing upward --> + <path fill="#E6522C" d=" + M16 19 + C 14.5 21.5 13.5 23.5 13.5 26 + C 13.5 27.9 14.6 29.5 16 30 + C 17.4 29.5 18.5 27.9 18.5 26 + C 18.5 23.5 17.5 21.5 16 19 Z + "/> +</svg> diff --git a/site/public/images/grafana-map-panel.png b/site/public/images/grafana-map-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..41ae496a304cd2d502bc69fc751e3c02ae8ec129 GIT binary patch literal 128472 zcmZsCby!s0*ES3_NK4C5A|)*dL#GaibeFW0bPPQ-qLhN<P}1GqozmUi-8~;ZzxTS{ zc)q{Rb!MGdXRW>0zVCal2~m`X;5>Wr3<(JdM@Cvo83_qR0tpEa2}FPTrEIBh9SP~# zjD@76qKu>@jiQ6?XNxbUNJ!ElzhW^IRdz^x5FWPfY4lP8X@LyV1V9@4b0om1xT?f+ zX(lcPRHFK_8b2%Xcc}e-?BAGb>HuXV9e&nIUkvmj--&6FV)3e80wPN4Z5KVx<Tuw5 zoAYNWr$Y~BgJ?c4`l3E?8@@#<do@$mBS!t%Q{pAz5(dqAHg170djv<U!^@Wv$giXJ zmNpiI$4P(9@fw#tKHR{FaeNgAF_1n;@V}$kGE18e-IZ-pjln^3AgWAU|18^mjoar$ zu1(YTU<~JNP3Z=k!nrKhL`HrzF(m@TQjcBBc#xP}a+2cP6(rXbUn*8b0Xv>YYozV> zlAfS4rMtDB7Zd~<3w<p^+vPy>`2dMeI*pC9fPGK-9Xhm@$?W#K*q-(}WMlN>;!nhx z`D3+->1zhZ62;7~CgMM~`^1Kdxs46K{-kF%T!~^O3B8LbmnI<M?)9v-U44b+>P_3% z7;l&s1%HjZ{CdsAF`ZG1=_(?@WTs8pv`96c!|bP9S#HC(P_j(DSL?6WwnBcdG4Mk` z6uiBsp*fMv)cTovSzlErIigW-KW^YCUMABcWSfnO9BiwY1f*vKZS%a-0=S7)sEP~Z zXwIJk9intATkaKIn-Nd&0cQ9)b(DQ5MEUT~d;P)OMuI->k6UPvk8glzzCM_KKGa{O zroi}|gETrdV2=XwrNB}8H}(lkiM`^s@W|d@$JW{0l=~nMGFg2yVR1*|;E4w&7f^+l z`9+G}w-@!<U$6v_%{h_8oY$hm0v9<d4Uh(tR#;5<33&&msYxPzUZ<j18z6o3K`TMV zZ6U8gv0cXV69<1q$21UGMj_|{yotn$@tsITBJ%xXAjpK`(JEqx4?^x1Ljj`=`pPc9 zsKGq+3r@v4_aij`HlWbqqpr}tmh!KlmF&ST3j)#bu4CRvrYXLPMxvLrh(uKu>rbsz zBv8fvB~GmP_MFb?xd4Wq?`+zgA|DS@V~|KI@T2ceiO7JTS<9C=l;D<;V<9lkC)BOh zo8$L2L`4C3?H9-V*DpLt5B>C8+JRy{Kol;CFZjHx-vj7Eq+h?3RHq4)##9a&e<>%; z;y|$@f&L?c3=|Y(X!M2iFplOUc2I;?fR^u!4|6-HW89eCz{a?aOERul^R+sjRhV<T zL+Qyh&lmP8BptuPw&a#i9gCfpMoTMpVDv%ImLFCd{qm^2tUZNYy}fhIXI;S}48G9r zwaSx8S3FN}a_~?W=`wT`Z*6GRcE#g_8ffB2+v<xiCjCkpXa%GXkPP4s&<PM}11g1? zzjvYwB1G$;?~v<w=wMjIG2*Zf$dG@-=oa}~W+!7JLs^+^=j9H;4o>_>UWWRgTalgX zYU|3UN~fj{d^dFO{Egn7WWG`&iVllLiT>Q@)kpFASKn`U6~f$^@vw2rUAJArT@2!c zZ-vh^-ldi)XX<8t+KB0sRr{S6{~F@lWSMLkvTHv<k>_tI^)@D<_=SRXpmy!7OeJom zp>slAqkD~e%q{wb<gUi}-P_|AtT-?n-}g;jB4KAQgn0r!OPpn%SXf!yS&&*ZI)N78 zgPGZ5-?t&#*5|ZxIDg_3N)x`n?SHFa<-&!J{=L=I<P9%ZIM*SUh}>98S3Co}%3J%O zLT7BzYRA&e3bXQA<!;5HrPt_Z%R4JGbK4P{VebO}k<!ul^r-xD$ky+{RCc{7z1U)% z9FLDzzElNfnWVYZs<tVM&W(m%C=X&@xsUP>XSe?7*eJICPX5;DX4vT17D35DM(x%? zW;iL_Z{tCq8Oo#GeECf>%!o`fIP*9yxnFSc@`ZDKGS)S_pAIl-<CS?k^Lf<hjfthX zz?@UOMc57s_iysKk0w>^1rz(i{cz%L?QTnhi$tq<$3JHSRs+;pifj$6BwDK4^Q9eH zWo+E6P@TmJze0F{l=_A`UxA^OnN{h9&EDnC^iI(j{TNF&bXxHXn3tdTE$>1V_MGC} z+bWzY4zsvHX?UsW`@PU&7kQU>m%9V1S*vM`x#CjWGT4E^Mhlb)TC*nYjBTg8GrfIn znRW4TWk8r)Fv(oLJZX}@66|H~VjsglC4g5GSNE!Z-(kmKY=&STXTQHlQ-gZyS5daE zXdQpOX+5RmUHd|paQj1~2ZHrXt4-_9?824I<5=jmP@PbGa&PjIhl?Az+eyRg#$@+I zSFDEohC6T!+-cBoP?lPdI(`T<<*Lc1soyK{0l!(SS)!R2hJzqOyg@J`cOhFKzeSex zmG_lJN%Sufrxn-n6R5e>6{$`TB-(%8AapGOq<{4~gLT~^M=gi7!h%;w(Dib1CZcVi z?Uf<U3Jsj1>FvFJfLq7!uPIy0n^FVJDQB#sA`V(6Rzz%;;^S#K&=HZ5#NX6injK6= z+D2-|QAYX3OWik}#NE!FLtpi&U~J-y;_%_PuL_}Z1s_1kd!o?0`Ndb+8GacaX9HVo z$xzd#!TW)mY|<R|Wj1hfs9d<LNc4R?>0tgkPPUzjOD6V-*Nxyc2kN4qwI6a?aEa!0 z?CuY3_-xANkE*xUV(av;32?r7b(*ef?1=Apj4hc3n1Oo8{)F}y^uIKrH%p2(mwxk# zl;j1gZbONlB^z6$3!8&Zh1W<VtCTu@@cP+$*o>2tVqH;*qG$T{;K=~<&`l&oqK9Yc ztx@mlo@_x(f&OSLY2;PA@__Q=XpHImeszw$PlH;YN&(tG%6^+>_V(TXYRm^{Q0mHQ zCzamDzICzsHr1d<QC-EXFA7uh9^&&|8Yjvj>UkzGSzA1J$F`|+Qf<9QId!Cqs8m#R zt?Vhv$=E(ae+<fBnt^HDE^K#=hgm1W`3`16=U8VvZNE>&_;>Dhx^)WcnAsLCb<L~S z92{Jt%@s!vu+G%`S4fto=krul*k|ty{t*<74e2|Kxr?4U7@e#1p1ND`Td2NtJ<46k zZ>}~!%0B8`f~upck86~@mc3lL+}QW15_N&?;q6oB<vZnl%WDEfg0=<7+>RwGWt}f* z8zmDhmtVa5)3TD$&KGe_X;Dy_TbN@!PE3ggA%>(N;_lZPjcL2J!^<P49!)OCiU=zR z11}UGe%_{`D@ke?OBmnvE=RG+9m+9!S3TUcFsG|*WWQCg6_6B&f_*;!vN*Hy+2U-u zw!%@E4NIFUIYJb+)dt71CY5CW)I?;r<H?eJv2PmDpIua=$M5#bt8yjbtnzkGeoEnf z^}IiXcdP1_f}QV$ZQbG*%ajT4&6ue|$La?g{krx>#{-+`g-Z{vD*?fu0(AmtNe@@t zN6qe$X9nvld5~#HV8jGftk8&u@=g9mv9sQwUUvOMU9o7G`)x_^(%CBCjctm@S&CB1 zuXFNCwJX8%lovp<nj6o<vqjQTQaXRM=6pocUS?;1%H#3l+O6Wf;t|VC{>T)?qIom_ zvCHOM%*xjl#-p;uum+C%)Q6R2$YuAWf_=*Edk4`q(OB=&`_c2a>wD=V1tUt#3SAV` zX!xot<EluXsKvI{P?5~}kZJxT#T9p>C0sL*F&?M58lh8@njz&SAd^uvwy7g4`o6|e zQ?o^SsTg*NUXq@!jG#YNg#?FauA@8gFq2by`42|8$|5y6g@%Xogob<PN__W15<9C8 zsrCMdJ!~7QE9XOY;T%&M+9GOVw26?7K<N6G`85~902&G8y<)@XK}bkqNHS95s;<cU zjhOSM5UnlP;$cRV6XSx604<J;89i$m-OFcv?BBnIvkHU{E|H_XCm>TNe+MiBhWZbB z-h;zKDcE6;p>KWz%j#*FfIUr^zPK6XQ9*~V<VKGW-U?U6cW(LlyW{*<aF3zJtK6Zj zhAp^uviq)v+K{r^R+E((+-=Z(qm{r86@(0F`5y;gVzK4>GmadcS_`z<T{)-!Ye$9{ zpa2em);{g}|L4vp3o*VO#GKfDW^Nk@288?2E&um{;;#t>^tk%pKmFGQ`93~^68XdZ zi|_xJBY)kR{%fLGJ|_K_MH3BGzUQsOTyC}+W0I$GWmQ#7|E9(Ne&s)B1311H7Z<xR ziMF|yu(iETp;wf&@Kh|0hMe0?K0Ni{Njzf0^U(j_jn94MtP=AG73P)oyl+UqC#9{A zfL;9NF%wL$-1Po+!!Q~$ug$UEvEc{FQG!)4{0Q||+xE@BLzE0$uCKVsVB7)zDJS?; z{XawWU(b|$xg0(mxh-J*ua739e~NrqnGT%!-=^ot(10MRDGR~>6Zh~ICW5EPM=z{? z<o}l`5?DjW^QumM?tct`{|txsAy1J{-zPEa`<E$5s)aI*cEox1AAdiFv`})?s$7ir ze^PtsiSqvP;ll$dV({p?D4`l6azFAw2>qsnYSX-jJ3&YFm}5D{ps}RnBQ*N=vA!fg z`0&eOGv~j9%)kP_W=i--N6+DeGXLtaeMwzIuMt{tFk5?8uv<_*Sj3)uEKp^4Si3dR zkOXTD3@b>oYr~vaYdQ+f+q11Hy4`Db(=hfP!iOx23SaC@91MzN3)n4-UEm$v)w?o8 z{PU6)0w#$k?_b6VMLk8Hl>)GI*3+#@s_!J@eBeA4I!mBUGGA>iT<N|}N2Nz`d<b+t zn&5l5p~%03&7tH)-1i695uW_~uSC6l%Epb@-|zS(xy<<ZprE$@8K3H+r(1ol$|isD zwu+BBxcwdJCtcxv!zGm@=;7gRRLZUE#o<*$dfj22)t+Y}pKa0O0UpBDxtBgxolh6$ zbun4pTzfmeC8CloyrspFQ<Ty{z}|HIbC<Zdp`dOjD>1KIX!kDfZhp&qBCAqv0^{-K zVPbCaF-8CnHYkc{!{ms_bxDDWJ0Da|slv{0mqfKmcXX=0<R+g~Y>f+Y>fh`VPaHKK zR!*>0&r6Kj8}4NYi=Jk{G{yp!njh+~R1v2mcvCmt`w-Y~fi3u)2K8ePMm~n{aqC23 z^`ds;S`tjnYuW#(cx>e%!K$bTx3E|PTDO*zU+i@dw0nWr!pkrAzF_H|ApCya+AW+` zH&;F1DB!fMc+mv&w7s}GdPv-D!(uN=z7Bxtn2BygtK@A7Z;|HdBf_S}<1%K$qHeFL zZ+|2lVGTB?3LG_@<tuofu1)ASUC2%FHJyYdOp<4(C_QXP+>1tC?&pahic<;~Pc>jl z##ikMLi3lRi0^#rDL4Dsd6kuwyP~3NZWs1tQ}?s^c^5KsL<z?<OAk#Kj}uVgW7>)E zF@@r$<G>*e*!}I)M2+xuJvFcWho*EYimTeIYW0-IbH;p8x3#@@bxlxmED*ovwj`C( z*`M%@r$@}?b9kTVTg}!(Q}mNuW-oWoF*z`B_lwVjF1aG|51ohZ#t-f~7)7)nmiQiI z^q`nQ6mb{-DP!u`Pg7OBpuMs7X&fo4k;;SMY>YO!Y15@^=d*@D``WdRR=2_OM_Ed* z<K@;}Lp(Q=i(w4W-|oG#u(U;S_Zitw!d&l%a>k%?pzrmI7dFH}e7M9*7pk$Kbk|i( zMs<b9nUvf^_t<*MFrlk?M%Ar(8;y%P(fg#3Ge_?W$0096>mH+w6tByJyx4~A*!+~c z8#Bs33ZK{kJI%*_v8o*Iy;$K{d%kq$&G%&pbwT;+MHef*O`SvctKG`x2hn^yuWOVE z;UoK_*~l!f@xZ8KYS=3C1m7jB@pe30MCt6)87v@m*Zmge{o!CfCwcmz`F{R;{uxx? zZhWMrxAr_7ngHge&ONldbKHA54)JJRFE|^Nue!s9f{PbR+v7B97W{{D?d0`u^!2q@ zP#c{_F~AvZ`+`)*sk>$Rw>QtszB@#ConK9b4>uk;FYU_5E@s}|PF+!M$nhi|yG~0| zYYCs61Sf%a)9_L++DJv40UEmm5!Lga<vmo5)s$FxZpZB`Ab!Aw@D8S^wy13iSQM-U z7V>07r3PmYC50+^d^w%Rv^l;w4LMr~FqE4{{Ii^uv;nWDVp!&H7M&mlY6LBskE<K{ zIf;lM(VMkhSmWhXgumaB77%t;eN>cuvyV{qT8*O4Z@T$os}8N76V5w&EDD~K$6vCz zzsE{ZIl7L#T8UbqqnJK%+hOr8t$UyxEKEw(!Ch2tT;592dw43Tnr0p?)uJU$qBo4N zEEm7UhpD5S<jc^MJSZRMF*U+A*(n-insRoZJ>|TzyqsDhOB5u_-sDuK;^f#Ucyewg zl6m_edVL_!e+4_jv+23*67`V02sIO~d`gt4Qg``Unh$a~?E_Zxb;E9#mwvum{gDYH z3+c5htoxEODyd}8vTo?1)@(dTXvwH_?!1juxS1XI^LV}OYIJnP-DaX~Uh+dj_Cz=a zs*3`Mtt|pE4J$}W<@oei?2KsGD1<$|;_Q5~S)iew5yLl$qb*qEzV(*sE~;$}GfI!S z4R$x7A%A^6b8Ak$WWDl*X@3rCd|`!Ho0zbDI9gI1x4#-KJ@$g!?ocCksPj_1Hly;d z?k@x*(ldeZm$N<72JptyiDuO!)l!f52@=mFGlQX^!jyYFg+fa9#2{n06pyWL-#<q~ z{}k*{O5`Pi7an;0u%}Z_QdAKUdr$Vp^TEn7$L`)D^e!P>!a;m=p_Qi^t?AspzD+h| z`#4#wk!>^Q60H#qf0#)@$UHn|FjDb$OyL!3C_Lt-6s>^;g3em{9^=gp3)ZF&mYF8P z53;9@$SVGppuMg9;-);2XPx#r!X8b!N1=AC-_y-_?TGe&6?<D;P~y27T-^7v6ACg0 z91t>g21UrbSS+95Ahsg%NfE34jDmbnkp#~<>uNO(-II;m2kOPEtBW5ZySK}th_Ml& z6_kV8FJ(F|h&wNj3vLCk&tAG=LSQG|(nzZ-QU*vXP~)(%Ohlr4L?RrJ>@+G<iQ*a@ z;wa-fH@BpH)tk6<Y8K^P({wu<rk@Ypx2u?bS9_Lps7$Rd1i#|gds8aPCB)va{M)@7 zyZaaewtV7T+8d-!Nk;hWDCyqZ_g2RKa`7|k7hzK?z4Hs(>vVUFaJn#1)OR$Oa$pML z-YkMjZ~cZHdJ{8CVA&R#G^knQaHNsXQhaZDG2QJ6qsNFcTLmlc{DVM!O~s!UWz!uQ z+u)~F`TSeU+|o&m<ynW)O3w4{u)!qHyVGfiXp#F)zrH4Q<L@^vqC}4y={pfqL$hu! zNjP+m_Y0(xLtqMB(Av**yT#hA@4D9WOF~?a#w%SRr3%Z^pUA*PSEI2Fc`ju(H7mEX z{KEuIoE%4B+<+(r{@SKs*z^Gn+`cQ`aMb=NwsCu-lCT=KT5ym=Hdgxv^uub-MrS32 z5wwU?f7`?HxKf~*ee938kGQb!f}No#6v)pyC_fYu;##ScxXwRbLUYR7^KZj|a6|Yk zJ1rlHyvWUZdN^r4SWf(*kI(ek{xU(;$5|n{We*k?A3Gl)SiHmS9~f>B{}&_2yN}KN z1<8d3(hs6BjKU`nme9%AkKv_BJp6u_`@QlwM-g%NL-58Zy=P5Ve{<$u(PSpPb~6zY z<yrjrE0!{B3}wk-e(mrokCL&8jTY{{n>*3Vm?U&F@q{^&$eRufyF=()QC;ZR5u>E} zw#^9W<k4+b2&qdr@aV3)x%lXE2+tFNHzAKNI)9vic+9&6E^stn|KgQ>@N5eS?i5`b z!sopwYx|*xw|b#B)-7^L@F{A=X2~I97PHRnG-<$*5poSgtZ5)LoL55_ZJ5$2i9w_; zACwO!?W=GC|6t+HP8RCq+cq9mtJ!+@C%z8Pe>hi3R`PNi+PHvf*m}(APlgYp5rQxg z=e}3*qurui$2Iq-9FycL7yLtrnOS6keIh+Yubuu_4bg{jGmt_KZI(Uj$8h1~lAC~C zzcY@4y%sllG;bb%I(KNozB}{r8fAb2Y%}WHu4gPaDl*hhpnV&S@(FWx06~)hbf1T{ z9RGo!K-B5dWxA^)w+`c7TdktR{X-#BhxLPpD1Cu7jn?Z6UT?)^w4uAsUAm|RDsQcD zyFZm08q~ML7`sU?L%(>__$1-Dgze-0*tkhL^45768zI}fcT^2E2hp{aC*N^jRI}W_ zdK2`vS-!iP_kOrVUmpA3D!kzGtl#{8cDAbbM9_QL*H}*frjPh3VJXUutC<MrQ-oVl z@u$mgq-xZ6*ASK_;X3nC-tglcotR--w@Yq)Mc8+ztNMlVO@C@-#TI<n36{Rd4RWCE zI2k?y3PVhN2w!YI?i`u|8`X^AdV|EB%N$#ar&bhOj#RvNEheZRnwwLst6e_-{w4Qv z>7=MR&-;GqA-FfZbBzIkw>#QfExDyo!e2S-*crR~5)`(UJyMAx`KbGKrImooWny~9 zeS*ci^0p(x_WC6FAp0N(RzeHm_%+ExB61e5Am{CTMCGi%HZV>1omS3;jrwu;D7SfI z#g$H8_@J|O-6JRKs7}JY6bkh*%5jDN#pGCk#F$LlMcjWV&MeJw(N#mE3j?P^^PV_f zu6zoZl<d$f#koFV!1jK#ctTM0o~f0Nv0jWZxhC_Gc?;TjcW}Wc-h5Su(4&Cge|YgU zh`AqFirqSuNH}kapAclRM)OG`qH(o`5CQt7haEaO)x3hYdnEShD!5tC%X75_KiIzm z51@PUOL$^#=|=rW&ZPqUxr^U*7H}5kzHXMle;Md#-?bAQQM58#LJ{B?MC&=1Hn)3U z5w<{z<}DspmlH+Fey1dI-Wx$D-NHXW#ge$bMUf0`+Ou}{@~j6G-J)*{M(Jz$Gc47Y zq_-)^ot+KQACNT9vt`|Lk2DLf!cXL|Mads$hP>)-{Y7sV(%&s29<QDXoYZaaL3&85 z<g*BUw?7<HqKw{s>vKtW3s;Yogs4>d$>4HGdxmwb!HvxetmZS1X0<5@Vx{A!C<(4y z_~r<M3&Bk(YPig4ggSpr4|rXtOtYk+V^nzXA1bCMVQ>)2JrwfcILRzUSji+<v`mj) ztfBB}tt`<7E^F#SA6C{Z_CE(85;6RvsX@y?9o9&fvvrMGJJb&V$SSX`K-%NmDo#;( zz`d^5AGMK`ye^AYrTX0-DA((Vu{L&}w+<nK2jd4(NxzMkxPBlen(wVHhRn|T-T36g zW1qO(CXRd?;{IYO*W$!+W`Et_t7N@gi`zPkpc8<L1;Hsao)|wQqolz23>NfsG;NQ9 zon|u*E?29;9ybw!H}tjFS8Q^wU#VREAbEOyQ=3#2SohDD{hQ8OCq%uDy)Kj*U<hMT zEx`)V!QH|V%=)L0XvxVRo#uEapPy*L|5=CVC6|LJY;ua~H>azkN;i{4ZxBua#{K@K zx>Q?#b&HmtbOuS^hB1HdkWDc&es!`MK3gPm5F`Y@@hGl)Bjcz4x%~b$9raPLZ_O~~ zvojvA$RT!(*hoi`>0BU`C1G}<L-H$Ty^R8FwtSEBxt;6Oy19`|&kAyqZvBVtU^gRU zU)b@j^_7R%#Wuvt_F($d3buTfZF`SsTcudMpu?ni`Ox_vK2G!fiJxn^3XS}eybTE- zTQl$`v1771bN7r*-A;=H-))78LOyg5EZ?KVPdW1aZ60QXW<2fMb+f|$vl9iKn+-k? zT-0lgVi!@*W77B^3BXrPswJYU(5ToW@u@ogFIk9QD)r9@7*QHP4?<de^}lR?uk4{) z4p*e2R`@TL{ok^ZFa2M+fPP=q_UFH}j`b&Hf+->*Ti{>9#Ph!z$a9xGzTW?Q?*DM* z^hvXb?(SCkKMp<>bIiX&2d3ae;`+ZdCO6bFgyKclUU6USr_ym9+s4Ye)4p?<SG677 z^R#zj#w^7;JzQkTX-tk7p>+R*Yeim|QOko@0_s?yyXlKX$S<m!9}f0br*s|V$_9(h z=c4-!0hDv<*CKxzY%%O%&pPk8flg|<VoW|?Uif1C+X>$v&B3?USBDF=CJK(I>gdRi zN{5S$9_a_ddj;i|wU(xA<j{jzwItWo5J<l?gn(eo_&x&nT;q#Kgd6*Bs0GC>TD-}e zXT^!5yAPio8|H5J&xYh~0!<mz$tof~!95_ciq?-%;P7aqg9B5Fqo1_s!}*w%_(Jf? zSMD?)2}%1jCfoXhs#`bpaP)6mq1=P`EZqyumzBlVih0K~=tpZn_YQM>@J>b)y0f1- zlW}MG#R$(Lxjkx@7?Kv-Opk=Jd{EwtbJ^Fr9tV}g?|B5?JN0_>vsHhwdlo0_BGMWR zN8i-W!*vBY0x83u3z<zM^VVrTnBSSJd%6pUx0KN?L)Ns<nFb{jBcFdMkjeynLtU9% zXU*)Jb1ifav>%RbdpX1kkk`y(hbNP%mritP9q&4yfA@hOdgltfg&6STx0JSw08viJ z8fM+Z89PpA95S-uL>ukM5+vm+6j<Z=NNg?<(}qTd;bJ$cEv+xCkSKPf;H_Nz;@fpq zx8bED<5R{5SX=!BWQ2h7Qoru;Rc2T59^1tR{(K;-TY&1vndPrE0qqma0X!#6zd8Sm zRt`nWU@9K4&fGI`ZD;pQH+TuBJ1uh)f0#>neRQ(+o@R6XvX{%aU*r9q)VRf;XUP15 zc@d=r=>ueShBWd!hA)oxXK8E?Y!u?~X7DIaEyS@K-;0r?SAS*H|ELg2@?!ZotZAf3 zNpp*AafK~-LCCFR#?)6;-j<o;ob=(xSaD{BPzqg19x$VDOzqvP5gQ^v8+vyT@!|8e z@Hb2u)34)Q0t*Ofx;wi%r+x9TMZ-Y^5`oN_CSj69HuC&kyE}Ba4Xo6(a@T#7bl7Ki zcdNAc+*!Bgft%@@%G5kbL3Es0s1=TM!G36*PR|_C;^ThCXQWd*)RRY>+Tcgtq<Q}G zZs7tpBSv&_`o&~<auYpu$yRiky_vVt$dOIRTrGuoV!<(zf_mLX_kXA5EX~uDN7mM^ zlw3|n#n+|}$Is{`bqtX9$7Qhxibns8midVJLm%0_FMsXX2f_$t?T)DIkgUEdx8PXS zIW@d*v;K67-+U;iYS&^i&!4`WQx-My!ogLQ!&tix$*o6%qRaYqkCsd(VQ~`q=GS%6 z3!120*&W(2WnlsVMOsRjZG>2^9BtpZ*_cH7>FvUkN27mBL)WJHHzK?bfOkRm5lF9z zb)&1%=at%`FhDQ(-*&JR?^d|ERrw7aW~DBt`u{8!|1jM3XP1Ayb5izhnQcNoaVmup z8Q%c6_H51AP>BEt%auD2%OWgbm*$t~xv7!|-lWAkcy~bZ<VQE8n2VS0AgSY+YJXhB zRqef@PfFk=@Z$!su(()l&nhura!<8kvgvZ|LxDyjgURHiZT{q><?rr|I4J61MD(){ zxl*n>Op<-%W!67SA(RE!v&IhNW>8JVFZ+rF)allg^g7+F$t%4Au7*j6sDWRvJqQ70 zp{4eVs)J*czFah^wotNm)*PAlvuJdyZV_zwN`rj}&BVz3XgpKfC_>ai&7{2cFdJH~ zfh6yt73%!A`)it15l=|h_cN-1pafXFS}h8XmGSDaZI&S0(y`J_>WTlx5vzhl>2V|N zXgQueYYlW9t;h>&i)uCdm9f1epR6iyA9JV~vd9CCuIqdS4f3K|dM!7`%OQx1N;brt z4FiD$NW;ZmAj1g`HfdN!Fn%tvdY%+Ac5x29`S#;vo4N^u&G~cW13w-4Z9rr)oACyJ z*?d-}&Nj0(L2AkmtMhn_r?n&w53oR))+-<B?1!KCyhJad%wjBScQ{QF@{MZILOZ_> zK{vuKwBDCml68~(4iF)r=r>&6$F2djcyXQ@W<Y!}S~j*Rsie%PF{nxJ6@xolad3LN zChk+(?&nu5ACaxV%6J}z?L|>+c8>BU`VlM4ZbR#rV7+7;lI}X{h_@9Ho$LndF9Q_4 zM@B_<F@5J{^IY8PG$H%Zt#vCESkWg1K`P`;Y==Tw1EmSdarPcJa)<#PAc-=qy?X_h zaIVf-r_$^0ayNiZw6(VM+i5ig!v_b%V>=7o@K)SB8Nlz^M$3en`HahU_6L4$+&>oB zf&sMOB0Q)Yv_$5Ftg>ahkyK1GeN=X+j)3d<2BF-G3rIa_JSjZ4=<y_XAx5EIkECJ2 z?Z6B;%?h2D%4)#&HIE?QFtPQ>vm>y`&-QcjA=cCpTbEDbjMe4TqZd~$K%YAv0iF79 z2bLG}Pk0Xh<?sx_D4#g6Uj$A=HYYHn7D@N&mbU%O6;g{wY!pOk&(xOHV)?wy4jWly znZNoab_)0-709;;Xugta<;F3E2bk?_aor>rra`H<;Ocm>E9Z8%;?kgM)E!{&{ecp{ zBvwU||9heJTeqI?@T`<Ciu@Ppa%WpB_((?<ZJJI99_!<>@D?(B^QtO}8k08)^@JI( z&tdlGA~AyBjDczXO2K1<&!ntlqXwT*LIHv@E}b^4*Iy%^V}uJmxj_a9bu60KHNF~e zzbA-Xqm#EY=c(qZ`w`EjMXwb!FosL;ApEDO##OVUo)d*s*dOCM1OB2iO6U^SbMghc zR^Tu7sZpnHTxZuQ_fzwgKhl!-$kgstm8xWLm9^W@(GzwECWw352|%Nn*)U*~%!e}J z6~S9$+R*|7e)ybLe+zvBe24k|aOH|;97}Xwt9P$YGQ64Bq7CrL^>P{L^iFIo!F~ud za!9-OZ0%3CriMu{b1*WSzcA1CtEnEzW@hR4Jxq+rj|`$Wx4eD!!^?lXqv$?$*>#gu zb$?@HKhAc;pR<VN{y=3H7=uFs-62XGET<TweOd02J+!S6Hj<Uls{qSgdK;V2=T`Rw zsn!WJE&7Sk0u-4En6wwx?@&QxF4lGEMBE#h=kF-o$w+FSz<}LLF=mV-X8PE4ZtDbf z&%!dcwD>jBgfo}@53|c|w-6*c`Ljqt$I$+EFu`!C?gg<UAJ6Ivi2QqKWT=t%(M&nx zEK{G=qhzduI`4a|cP}gNklDI^t$%s7H=k}!M=I3LaZpt+z#2dh`>dic*XuXi3pi`4 z{O;PJp*L{2+9Am34B{SBPl-{6vfPl1*qRb3o*~f0Mjd@##rQZiIhnVxm87rd(3?4- zrg2pGmpD!!sIwVQlX_DP&ROipbXP221Q75tc}8<R^A{vNQJ&T#PxYL#jbO^x*Y|@K zHo0tM%JSQZrTO8x(hL-)%8vx-->u<BuRQO1Q=+^f?9ESL=l`Yj_Ltkh2=Au1{3A_% z+!%csGHPnJ;80H>FLFBdO`EGW4+>Y6)jK#qo*rE0I>kGEgBC`{OSU?jWGTCJrVxzu z;9H)q!l;;jRM;rKgdazmz}V2QwL0Vfl!Xe20Ymt3An7MnucfO;v5O(<Td|9qA(#tM zI6k6471@;1F(9MCK4G8WZD;;{1=Phgb?AdZ?oT?=B~@A`f`AIc802K)mUJS*>y5TZ ziITH|W%<ZR%|efwS(!a@3T@g>X(mej{J{Ay+WoqCIA-hPhYR(43l<kD-x7<;FpcrL zvs4+BMcwAs6;6cqu8D@eW#hHP*S7suNkj@OLA0GNv&K{PZEzMhD@6FLQy9ZVIv>SI zM>Wp<Nj|wv-j@zWZ1_0!<snixPDfv^4~2_S`O4j_Pe{vQl4(;DGS%Me5%@E-ajENn z%TkZnv|wtp)#)s_)MNzGbNCiJH5W4gLakiL$?)pb2}5qGU!cU-_9peCF9s)<OZI5b z1-)~v0^@~Xl<A^hzg#Zs5qh~6CwR_y_I-@j!DKjl`~4p4#;xAqoAcC8zu$kC049h* z31wQ6;7}gbL(Wm*pwQaDH?#1bg$J7}_?IiH#}!{_^A_a<Y18qIrI*(!p8qC3cv7t_ z$}f^!dnW(p7Qw`n0bf?}##D0A&_w%5qjt-BIKI&3CVQefx~QrZp-+WMhT(GcD~3x$ zcz_fcq;lIu#XnZugwv}<U1lo%_*tBSGK0?Hjr&~@Y2D>qM$?X9V;Hc*Nk|@>6f1Fn zJ2?^HRAOwGkRe%XjKy;R;2pXAyCr~6_64$?!N#aYs_)so`};e4{C!Fq<=f<s(^woe zId$jZvFh1Lbtj}YpK-w9C@dVuuaKXw8ODh2uw@o|gr;!frYoU;NOYi0I;PYHd5QCH zy1?xgZ-Fb8j!yut%ZSEcOCO9&7VNTR$E95X)-@6{<O!_FN86=X;2LC-Y|*56BL-t? zhe<aDr{ds-cjEU91~XJaqM9b*{q{hdFFwbD!h#Bp8^V8{z!C#va}Z!<cCRSc`|9eG zj`d7gX5Cfep^osj?~<O^p<_z!;@cU_x{a8`y%53T1)90f(bn?I1_8hJL0SoVDV3*T zYa^S%M4Tr01^a^mfKnC?0{~tHwHf~HxG}UFzs-wWvQ}h!7M-IS3>-#;GKLBtzQAME zbdAGB=H~}>)6y`yqMH>8^bc<?3|a^-b)vaNV)ZbOPG}5A6{y1dDjFsGH7e$QZ{Cn% zB0IhAp5E6rJhY#oOx8_gvg)5}7?9JKD*Jj}PKOUM;Dl^1xB5>IYk1bqR#>PwKPkWy zkY$^BsIl|S(*}(+g{+t&Phmw`WMPZM4588cHlBl@!#@d97m^tgj(wLigo2D+D{^u@ zUsEDuv9Y@Z;m?yPlBpX6wFFIxNPLL95}&gOr9i%=%1(6aBwPFGYZG>AUv1PdUutD# z8WLXH%5@eiE4ak!f*;`Vv1<mr4mkCBYP4GQnl*M5c&5(11_M2@U>~>aPTAy<g#p3M zpCoJv2}xs#axQX&)(TKmbu?e^f@w4e7Hu?EhB3T%Mr<VZSsq9)k%8*fH2zoJah28S z$O!#5$r1-c>AsxO3n#CxYhP;fE6VZBrX7LCP6@F!pIXiiunsHF?OIIIXG1JC;r<g< zxu2vx6r1j^rPZ1B>Sf$x3G=V2pd`ujU#-3;Y(Y2(Ni6nDTw4g7DE5EnhuNMDfI2_* z{#oNa7b>PJ833*e`%r0nZx5&K(jiV)c4hUO8U#vU2qpS?l%4pWVkIR;D!XwNrnt8b zpG;C|dN_f#{jM@2^puk5bm-c0H!4obCz8+9m`hX_o`4J(@bJ<nRIG~g$^>kgjWLsU z9mgsz@}mebMK?G-k*I#Cm_lJIF@9u?Z?K=1^0w-2(cEwx^pn$dh2vLVA75&=B&e<X z!*{<H1JM`*<Y_+s=U15=dY|+h58e`okNid_^6EYO7<*|LVE!(~41`x$u-hYpsTaVs zAsfgHC})n$#=(<2Z*#g6O={zT=~JS9=vv)P9nqIHKEt|cIeF_5@TU*^0r;Un!7iY} z+_-js4NOrX3<l`oi$UyF2_L#^-UqX5`&>0id^x;)H@5=@^aqHQ6E}P;O#016hB>JS zl%aL1xqWU@@FiDXT{_sI#XK0BY(hp*@%22{#~M6xhZ<b1;xQLgb!22OM3f~9x-q!h zvAzPVuAPxqKq8~*yHshVk(70=nw0Chg!6%R?IaTz0QvKwKa4ho1W-3fT}cZc`gT?S zwA6qiT1rR`PcGQLVEYBiz83^wbrz?adrC?P3<jwGj;@wXS0m|uw&rtt>rlojI*u|_ zkYPA{EMi6bx`9>yasO{BXoj7nzEUdyBSxerX`mA61MGbP^>X8xww`ubueu|dGc2YA zC*SmrYbJE_1D^VGHfg($@2=IEg2)|zx=HJmPhN0&3k?#)@d2<7fHJ)wR(?m{aFWr! zk!qO{2isRsWh46|ZOAnMEDBnTguaSqI@hXTgyTzmPj{0<y$;adjjuH5z}!X2rnR$A zD1YZ;-|}{k3p}Sjm|c|>NVGTKLi^yO8+P%o*E8&3zk@_5bts&Nr?Q-fI-o%vVju+M z<S_b<Kj!fDp>5tI&EJef>?u?E;Vlw^61l{L47JYkx4R|*QN$py?&OX{e70*s3<l== z!f|<74%XsdvvJ6Tn+IpYy4HtLRb$$$sBxm9?X;VRMzkZM)jfFZa9kH3N&e@KHf_|B zU+psyUL>+uYZ4I1eTm9=g%$DWDHLKbL$LjZF;1mN;n2_^ocrikmPg#s5~Z)2<nr~* zD6%h0lf%1U<uTF_X4{-MGg@BQ#7F0EH<`~Xu`;yrRrfiW&FLXWUQ1jOTIA?_>i%Yi zkwNHMOV$qV-vh-g<vG+@y1Lo&`whO^t9|2o<KqMR@JoEN@<+L+Br2QB(G35Q(S8`7 z-c}F6HZ}6*m${aCiR>;C9<2;|^OMp)4c7g^TToOIOy5r++DAi6{j~Ai56quWM%2ag zbz=qPW4+B&Wp6aeLnG`=F<LuuRb4~r)tjv0>cK6}z}sUK>rfU-!)P&^{`@U{c~psR z7{3mGiaM<zXJi~qu1p2=MwBbZAsnB_*`#{?D@AyOps2+3(O=59sW<jxQq$s`ZzE%@ zmr&4;9U^<$vKcXQ0frc85o~u7Bw&D<oaA)nO!|XYYtn}g2EYB`JKzQcMTFg9SFkww znftp~No(BAj?40cnEU*w(L>Zt-$m)AH9;*pJV=x0Du&M3*#V_o%{7JOj9a((^*GQ0 zy;}xSp5or``@<2%>wT^XPt${k&WF-RzRQBSk~=P9<w}$*X|N%P_l)GW9E?0VZ#1+5 z9H8=T2uc(d?R;C-mRq<W>~Sfj!A1boF6=ly^7wtVf=cVNtkNa*frcQ0j^~d}*zOM% zAi@(P)fU+#lmsdv`F@vTH!(LTPuQ&$-+-Nud>(5uW2EdmYY6#!t{~G_ouh5w)8|Ir z4s8vOhflN36ljhtiP-cbB%VetBR5jb*rQizzX`{VB$RR+EyXZV=`?qT)0GqeSqtbg za1GnIXKn~kLTv<BGUIw>h1%L5YkbX}8uwCgUDy=(Q6u0KsGs`2Mn?Hb2GdBH6PP!L z_ivyYC%K&l*QL^m=elmsQ2Qx*P6?iG1h{0bY^Y=SW+9x*1*Ea3l-Fs`K;(pj2;D;U ztj$yALMdEk+eE>J^0|Np+1}p&)O~57CL<bzp}Oa5BMswM-XO=H6?UJ>*D87t{uV!O zN8Kn%0f}9m@*Xyd;j=3xneo>dIOK|5zzhq&hY9*SY&mRFI3_zb5}+;8eP*G}{`Wxz zH<6R`W(PH@L0k$H)k=R!VCBoxe&+{*k`GN4p<67HKELz<4k#!<e?~aMG`i1$R$tXj zD`Zo*2fY3AD3Z-<%yzTI5e#@D@NS_v21%6tdSg4WaX4Z(RaF6nV=0ur@7@`#Km#~a z@zI$s6>Ec!W|gzbjRYm11BO|+2401>CFSt?`yM$h69#`1SV6`BikqSc^6Rd*ryBBo z5R~Cv;u#w6MZ@E#P0Xk3gcXHm7qSDI>O?)4==9@adt$X76p`PA)<vr6`CY4NxyF8+ z)U$Y!dejM!_wnTIIW<f;dcsRwBiSirPSUJ1TuEf4H2z9KF_gZ6(15rKRJl(KUc2cM zd*Db>)tt#%nxu(tP6aRxKGSmvL+xI{3%k;KltQAT-}GkhjwI(-P_~M~xTVO|EwWpU zzE*+%oV@fQB%1p}$<h72m;5yFUFuJ<Pn&PhCn_A>67&prgJQM#ZRn?6sUQZSK!fy* zeIk-qvxmuV5VdizC$6j}X0Q^`H6!20FV0InBw+b@?Ev}=2!KB~-vqP)($lO`srW&_ z!qNa<Km5?F8Da|A#H5HB+Li`;Msr?Qx|FBIz@8r^7_V%mvouJJf*kUxue_vv;;s2q z{gV*zcTYskE3^U&cZ}7@DR-zJ3^<cA;EY8)b$I1bAtXgX!hT(rONo!GVH4S+54}%N z-D~%<-yGsr-uDISt=z#ZDdHhD_!{=B-SAr{OOjwXb`Uy`h0YgxwJr=dphL1|VVaP5 z*N2BUTcRYfWGu(CQ&&=4w^Y^hKu)|G9*&s$$}?-qQ&}w0{gUPV{e^nIKB65krwcK8 z@LPs4R^(fPIu{HK@>Y4G!Pv0s4dtPATOEdX{cBH^`kmP2`?<^5Lz?Q$y_+X7?ImX% zUBGj}vw<WfMx(vS!iiqOjcG_rym)W=SEcK*0+S990V?Ks=7362BAh<68yn-aM+Svj zUAPiUYC$h>vI6`}@MJK8H%FLjR<CN#*h$EylE9$Ia-fj+d3$woASs*z4l=<z;v%P) zmo`hbg68b>uwyYg=;mO|{xlmNHHz52`zv7vL1_58gNqle>`+Nid|N?jLx{btJW{<& zKTB)t1MsV9w7<=C9QESbwPHJcz2KrYDXE&hAGiEpwjB&BcF1%>Uo{^xY*1$rMsU+p znWFBxMuL8qfR4r!e^c}?@#4-N`;Uy7#I2UhOsrNpyLm&zfa`GUjS~-1AZNAnIO)7w z1i8$B?P%@3!p<g$(FFY*_@pMzM3&`KJHfxvm3RW3lAr@-oAns~(4Bn>S~w+~h{4#E zV5$2DSU~0(c)x_fUt}O9J+q<0-_}r>w)6Yxm<_*vTI91OwIGk!s_9euA+mR1hcp7h z7&-p$h9WR1ssk{it0LTPqt9L219iG^Wjo=xb42DsJX8RSm-*&%7z4jn40@S$LXx{| z|C2roNyYXpatyCse9s$gzg7$KJ^7nHo_q#wL#1O>;qsqa4n+PFvJ_0Vzv|@19OcE9 z*Uf_=H?@S27Z<&8JtJwM8<G(DuhatO-Im+#@JCBJpH>jo3Osb<q{argEe*%cP*kT) z{L&m55lBrUeVxTrDg82@q3APnv1<0x-@XAlKq=)?7=L(UugmIIO(8Z7#+#XqQ?7!0 ziyM5hee-$NG^5owzL+1)3&mDxessNh9}?{6JE0U^<@`Z$H#*{AII_66wQYr#y5gOG z5=|&B`SV%gGBRck`;30g6|JByR(SL<xJ>AjwW-bZDL%7L%n!~65ptycWpj4x=z)6u zUfPjtrbloI)epMe(qZzspsNIQ`b^8z^hHIq!YS+f{<Xg?weF~K9%XzImIKbc8h<*6 zZ<NTtFzz#~2RtQDi$L=k<m=!_$7X!5RT2&ZKWU#9M6!p`&@c>^NGfjhi+^ZX9uvp> zxs>ENUN@Csm)V}mi~A_*CK)s081P1?s}j|(ojcrztST*`+oGkNLR^4Lx1+PRaCl4~ ztuF<+L=3kH&Jv*<_tcKQ)z_J=ENbJ@h9|oAS1O^=<uOf$+J83b=Y&=Ij0Vczk+@<) z3|xS$VRR<6<?@PTwv@D^_+$>e(WGXOB|c_(XdfRxR-Y9md1vO~?1-{}^YPj<)Lm?7 zd35oR$1^@149&L>e$jtBy~MDQH{Y{r(h0{L+PA-K!AsN3&djY+6%7iH+>U0gVk-Wd zzf@ts3V=0S_DgFzj_D>h7TGlIu)?1^ULN6MI!+SQ)yW>s8VVmg2B&S+4i~pJV&YQe zT~ub+R6U&ARrX}`mrDW259dn);2^?q`mY#|OdCmI7AmPxCSmCUJrD~n<LXB4QtNB^ z(2IFA2l}173H%u0<6@IK9!!Wz*}I`NBRc-n`4mSCVA%qu)kvCB7fEo>%utr%0{whk z`I*XhQ|&PNC+8+;M+Wf#QC0pj6ewsbc?e>on-eogDypwt)65&@_SwyoEkk_ZhLH+e zPl~SosW820mBG#_NXOMOum8!Zr)h$`PxRop#_Qe~TDRqZ8iVJXOG!(#QW!;z0yZqO z7O>vF%Z@)FDGl`s2ymvU7$rCjZ})FwP*fj$`hQ?Cbocke<cJ@vNEOM$$|U17@T4l7 zvv8eqfYZTlw4hv5dGZVlxa?sxU++q%ZjbxpYACOxMOP~g2T^U-{ZVNncWP@H(I!#R z{3>3x3C}GlXntx=7vly@^HV(y&ZjxNR;j90D^qmQTdB@c{v?^J%~ji`%#sV(b)0|) z0O#3QOxonT^A{`*WG4;j8IAxHls{Q`hSB0tYAWPpV5vOP$AYoXBQ)NN$RaBQi(KZO zvF3}yWn>pq-x;I0(rbI;%;baKbFY2ldY2GvNMOLeHz#WH-B~d*{XB594vcvxdvckq zos*`InPGJ?8*^s%Bs~465sL)q<PyMJs5X&C*VN~Wa>r66f^x2c+>Y5fUm=^mK+S9~ zTb#@4wt?D9BWYp$>R5i5Qk(3#9)RZ^gy%+6%Q@S{OFEWoBy+K;&w!I)J1Tl)OhZrJ z%niT9IQC?S@3nT0BFll0B77-W9Esl;RuXuF{g~!ysZtNh$$E3%eDv&X+WJm-iyg2B zomp$1EF3F)A2@*FI~YDZduvS?&W{^=qA5^q(U`YmChf@jU4|u?R!xmMzn9GV&8c(s zMcT0nvOj=6<vHj5b6K(+e}~*EaalhWR>5MZtK7jStz__Xl%rXk5{t)%7r^P8j<^v% zvjGdiP4X>=3JsKa`--2B%r_e~3|pBY=w7l*9#28>y`l9f^xc2QAxo9L|Lewn=dB>1 zowg*GWv8<8B80+8r_#bf)bnEz3%!m_V-|+qcD7$=Cd0eL*Gs%jGAr4kZ&9(k<uni8 z4|f2pLoky{ta<V36^0L=vnH``IGRd;rkTeEDK5%Z6{xNu%kG+TsQX5MHQ&-!zre0< zikRI|s}CaBfS>$Tu)4_r&oZaDqqO~#$AfQ0v5u%&5TtI5IaG>wSos559;&cgZMYvD zr#Gs=5wP@k#Hv($Ao|DYFQ-``WO8weXp_&3(iKVt>LahczY1DcbPK)Wd1{>IZtOlZ zXo0MjHdF{_$josv*u78<7g|TV;%q*~T9f<~%@KOEmQ=N}-;+9OFHSBbIk|v=kT<>r z9;47E5WZk6-)gf$MRxIvRH1((<tP{kI+Z>BkU!v(9a58pmPKS8@po@<2j9RZ3q&<) z7a5oC1<#2OSK&ASVn>LXL8K9OL>L$-8eJblO+oah+s3*ZTbi0tgv99(IEZ%FR=JP) zMdryd1tC!RJkzOQ#H`-{sS7SJi$3@Uf5l&bOTA4@sQY8vuW3$wYKRj4&tm}FAulIx zTPgk~t?0eG9qRhN;PW$x*lA`6;kq@ryZucMEBoHQxo?1bP|OUi=s!HA8(*4VyxRfv zNK44(GUp0&L5;!j4O9Q}+nJ1o>}3C24^#D0)$;Ojn)Sdku?!KTTk1%Llo|sx7(E;y z-^zolRurC9q3gkn6){;O?IkNE;-b9Hl=lgaRyg`ie$bZ&Cm4s8vHP2YF4?Pn))OJ? z7B@8L?3h%9h|xV0wPy_hk2M~vf?F5s8gcDtu&ySR$>*i#B(duS8J1>LvFB0FKB@FG z-K!x^(s{W5gmVR-$=)xA(hYx5ZN1Xz#ttN43Nfex@@RJ!JnF3JpjVkjVXD00?@{?V zG%7DF38|Mj9(Oile%D;=3K!*P;79S};U_a(Shl^R`G|q_uu3Q&>{1-`TpQS}C>A7i z!VdXmcA}u)nvU^=kvJJ@OkNp>#`Y179N(P-IkOW%w6~eEEnLb77v>{VkncMwA2cL3 zq6lBuCSO?<vw_MJDR9$5>XhH<4==BHm?4NG1!zHXOg4}@$r3rs&GEnKpkK1??rCFO zM}z4r7+v-Yb3d8q7pvkqzYHL7r<a#ip{#Y<m1<E=+3h}-sSNzP^M#Lm;QdBqlUYNe zNqr-Ue{LPy**T!a&YZvE^~3ssE-UKorwmhCuIiiw35?orq1Mj^#)yVkKfBuf&13<c zYMBG4!bTA1vNmeFK$Rb0$zVWFUUmxk^W8J|{dHzLr;_i>syA8naLx^t`tw65B$Wuc z3s?MV)FHW;8kN(@?yEBTSfoQn3JI9_9~maL<`&o^wMkzk73&t4Ft&<Q2Ns*gnx+eg zTljtdmjj{wee0;S3!v^}-}Bi_x1i*Lf|lbjqO{^89em3)6s6h4s+;T9z%;;tUAi-q zQ&JHfrw6L$yu{{ACvgp#_TXSs=BISJ5;7nsHNU0&wgZ5XH>EwMe?(cx!H3dd9|KMY z5{N~X=sxNXXc-U3@B1mkYinlyRX&8D#d41aS1I%m|NeUxi1@JJ{Cq|O_+I^o6E<!u z`3uF>_9xMT8Bk;=`{M-z^{MsIVq-f#G>;_^NdSY6s?o>0rR7isqYx0c{PxeF@>n&D z3!9lRW(|_maAaieHvf{2vyv`=03?qMM{`j;N7#}Or^aywar=%aP+(Rx7OL>%C(*3n zHZ#%jOBuqL^``_MK2n16({P~ybuVkRHzNNZP3PecSNDZ`M(;!$ok;ZFdkv%ah~7pG zqSqigVT|5;Cj`UjCA!gTbVBsr6NKc>`@8r41#>=g&fa^iXMLY%(*czx1cwPgqC&nE zx{ozcKl#35e0m(FR+tZB5W>&Y@;Sxk3pq{Z+814_Gw-YrI33wMXS$DHVJ^Q@`JK7{ zI|$m#f!uyI!Te_ZMNMUKBl27C^!Om{t@)v8^Art^QzwKMKs1;fHRaP7d)yu~G)PQ# zx74+3TB0au(Cf$DjuA{Rt^fU^>)qq<XOw7on)oyq<6*ueNap@d@hf#=6M4-5IUdb1 zgUK0m=J+<4ftw(oQQeD6V)Gh4G3`t5=gNBX?LujxuFGE>RHTg_hit%2ve1ElMI15S zdF-xqfAn*`1-rLqhwf&E(%OjPfY7&TIsC8aH$ART;~cZ<{QReIun)0WJLeLtbh{jz zyCd9aMxviwAIs7hnk_rQo`h?ch9;Q@rc&rYugAML`)R|f%P+3er>2p0#P38DJX(pD zqPwlp&tB(b2cJ<Srjdk1mqyKRg}}cBpdzCDL^DIVXlD{L33?j27Qz++yo2C{8j1f- zky{45yW8xu9qacrtlw=wDiKmH$}X9)QUZ{Hr*=P1v9AM3oTWl}By>%>dEL&U$_&)k zT67u)x%R9)u8i9Ax*}sLKpj>EK+d3GgF&JzsZ&?0E;j!Nj>ILEL{-b#uXgos|Lbwu z1-ykvxny1oNlkk)$^G-<w-6Sw;eMq(r5l%i)wWG6r_3~vG|8p)pBRE9PCf$ZQAZbw zo%?^u`Epvh>9i6oW)%Mm04*{rx+mFNe>4htYNthgbV~nou#A|p8b;shZ+mBDv*mw_ zK@UHB)0nE|Q*oa5okW;6-^iGSdE^6PJXsp>5WDk{g+-W9+sGoo9j-Tp2?tN5l(Xmc zza?w_9QbO%zr~1+NT}a`bK97ce~hM6(Jy0UsrS{c=y2x9S4_ZDnWU#;JV~{oGqh|@ zI-~`gQP7@U)P7B({;M0hE&9P>NxYOsVlS8b8~e3<z$sZ>g&e&Lw{Q9$aGdZx$H`HX zVko~*yoXRHMRR?%3iYTv48%-U$w76C?+XFaMy!9SA6xE(4zd#lmgg%5qmNm+==!zk zzc$H98cT$I7{7sfkzt;o56@Le;$JdNAYFWrE<V{Ok`cOM@IRuY!)wwExVlg*<;5-5 zo`=-wRL+<}rc}TDmEy(*4mIw|Pz4S2PlGVztU}6~3fV>>s~F}`=$pjM2}=l==$V;u zgSQhUAWkz>5N*Hw87y8Z^_ZtK*V@80y==Caj646l@t?%41SJL#qR}emA#ti~wwzZQ zc_KgV2U%E2CA?eotfHO}4>}=vxZ(hbebhws^T2&`*R2&y+H7Fqu4+1yEUI<chT#3o z7wo-3$)m2+OtHue-@5lNL4SKe96E#&FQUiZHR9HH1+S9?QOwIYN+j&bh4OzG30~%4 zzvSEeU$fbT&3L2Oo%)l4Ztq4aYRda+*$Jj(@EB9$EN8Dx3Zyy5*NiC2q<ewfY$L5* z6DU}yv@nM|2*lL3-)y&K<A>ym{^G(Kudr58Y)y;a7z&ex!usm{BV?N~uxier7(t9( z?5qb$PYOhptUlgaQxtne%nr)X_`^${)!iKsE3t*^-)!S$BCDcDgXtMRTHaNX>p6q^ zRW0#ImNPB!LQS|-a2K`;yMXq<!&iPji}QRzkX18rQV&r+<<D8|!&W`x>8D|m>lu1f zYy9Xf`hjF2?q4nS)>$u1$oA-W0<ui<zcA}S<rYb7W(2ltVJ`%~kR%O`Z&e1;68lEE z$70W@QHcXj%7%R9j{7k_u_ZDCz8P8}t{Caj@GF&$*c;igAQH6$cH{FsGbH^?MLgd} z=vMjhxw-$W8@j7Fg*g#=nSy>yZ@qHRcYQ}!#!g5dmEG`q5?6!Wvc_9!{38A{%5%+I z^?huw1*q3>`2PqbS->IZk=_35n{-C;jcCQO5=tpJ2xSd}COT==n28ROTz*UA>8pWC zM`(HIop}X5raE}-?17LU?X&eWJl#^(Q47^8z)A9asggNRvST~bNC*t@L>*AW^vxnN zDf5tL0KKVU;kTZ(7ghJs#Zq7^1LbmCQZT2V-4NQJzKTMnkFHx=R5gc7pHhm4y@(bY zKNT1wuE;AWW-Vx+7g-I{!}e(L`E&D=QBKwq_NVfJ=fKayWIIm+F#b7I+8%nE&c9jF zjQGGk(ahd@9MDIz5^G)@?^nYRmE1g_GSV|^lX^YzN9!YYwa7&7H~xjh{0Um{R2i*> zdz!frQGrhhnBIrz?ZLjjmiS#G@apSY%UkE~t~68EbE<!SU(~a{wmaS3c}5ah>m_0E z2rMGQH5PCEFexlT+NxAh*Hr@=gtyo<u8Ho<NB<>TX8OPdtmy^KtscAa3<=jCJ;6R^ z_gFi$ee)u{mG_lgU6(yQJr+yi^?l=m;gqY=C!v6aS&%=<CziHHveH%p%d}GM;?Ht- z4Yb%U8y$C5wbngtf^gdB<F7^<=rd<amY;&Zih2fiSNj~!dQFK}rbFCH+G~#vM^5TG z>lTx_UY54bdaT2k+kDU00}TAa(S8vJ*!>``blCVzqn?ypuT&4a6vmWU$ZSk)h*ywS zp(f<<^0WX>)oiu|!+ToVJC0&ylQ}xUBinB0i2=asJkU?^{=vvp-L)j?oQbkU-6}pb zx`|i1Tlro1gcy;6QjwkbWng#b8N_yx%o&RDh;pZvh?bAL+xybJ(F|~Cq|kRl|3Z+? zGn1v!>_OB2&jM)LjUwlOzG=``lI@#^qvo87Ro7RRAMA}p^p;?+UNP?HAqRI%R(|W9 zWAAqbWbb!C+hcz)K4NvjOl<-+CFPe@cLxajGmch4dwF-M`a#E=MBn#{`tt@_nwb_` z8=0xl(ynHR04t>)U&0BkQv}5MZOOB;1R7QpM&uo-cYSNjz1zG($WVzfkIO=EQ0J;6 z!ivC#9E$Wjj{H?@<L88^tg5%{41^N1TlAy~B6K0x{1FL{Zxgu{^V9GGS^}c|GrU$7 zDwvL;v+!r2x*I7d*F9QDW-aZmYeyl}gF07x=jU9z2YLo6>K_98RKjVdPz~jg2eYYS zGVPr*^kuMYnG1U!1K$UM@MbpJdZ!*3oanDU=-dAIM$r4jN%5b(qdY9jL5*j$BS(K~ zXGsA5XFmrcO{>vf88+v>kU*bd(bB?v$iD1ao1&yc_X8rdtwOhoti5mW2?|sbXB)i{ zq|TL-ih;+HC1%EF?$%v?1TEZFI1E<u-TbU*8j7`@i_(jpaH1GdVZ-6E)*ByuRQ7-C zPvRMCh5xA)yy$TE<uV$tyJFGg0hv!;Y~}Mad&?ZijW|7J+jLI5amBzF-){vB-m)u@ zn)%fDb_jG|=Rb_rDJLcglcE+ZOQwWu@V^M$`>hO8G4)7-NBf@oQ|HeLsj51pC~%${ z`Q{RrEvU+<bDA;1oUFa<?)8<!F_^{i7wS=M=h-qz4@=y}mk($O#e29DmYetzal}_g zkL6EeUf94hxS@aNmURnxO=&W_rK^Xc?A%&gr~hj?<|X7!+$WC41Dah)j+Gor>nmV* zHfN`~7PU|w58%-<FL)DnJXbd-aEo`=I)w|C)A|4*++pTYlsVPdXArWxLGas9e)cA^ z!?sOsoWcq<wYsaFN+K~aJljruI^~y4kDz}imOSA1z20*>|7r1IHZ)AT2leMvQE`Gu zRUUfh+?`g3ua!&toI`VVhoS~ps4DSue|`=7)|;2M%S<HGnsyoNbf^&nhyO2$f-zBU z$=v&vw_}0_y6=2#Kr9ynhTACOZ=)no*{#Nh4F5HG3yKXH`2{`~T4`wE?VI|bmc-%! zno7JD9Bv5fT|KDO8U4`&C5{#vX+x1%$ABGBcu>IOQ|r%-IE2IvN6KbGXLi~6@6&$+ zhZ3}BcGX;$N>OYiIdycO;p$UlcTRWFQZrCGk5b53DlfhU`t>0Id`+rN*Prceh{!#R zy3OV@OEXnMK0{w0IvP=Y6pB~xfBe@3CaU)vO7YJgcJJU017|i%;VwI!NM*fYncHQ* zpan_LRnkk=IOc}x9Me3o-1hR&N<!FA^V8_!yT2%XIu!f?<7eNoW(Fk0qU1ol$T4(+ zb6=b=UhDFlilrZDnS4QW?OA9FL6<+8!INB;a2^}U57hSozfnhwquS2>JTxws4;E8p z5=k4yaKxrO&tRFx|3F4?U*SJ7+v;?Q^_7@1*I}ig&)}ZNbS<M>ded!ub6~TFpJ}G7 zM!{k>;jptp3DK}#(pCC#Hk-Y(SY2}0#iaX3)RaIv4#BP6dsBT=Ab4A~sP0Bp>#drb z&4@`%>cf<z2$S8`5MAkj^x`4*kc7zZc;_*qEya-D4_HKmXaLCB@C-kRYzJrk=0GPM z5dW39_oB5fm1ERhIcE8o`}AIMfsuJj(5RpfA{jS;i~U<wfY~<J`)RrzQ-z$N(6`i` zBgB`iAS)m`UkG39>UmD;H*GBItVK<b53*b9rhnbP<#yttwFKam_C<#ycx1{?Za4R* z%vcc0&34)KVp1YHl+bqD(7F5Uk0*TWA?fEs|3E55D7N}Vr0(IwfKUd!`E$MH>lY%g zySBMzud0jslsb+Pv*}GtfgGj31Ae%E+@BohI(E1g{42$U31Gvd<Nv;HEz`98V(ROV zW3tx~Hj)aOtk>f~`Z$_zwTO*ore^%PhS(-Xa9*suwqE`6jrri+#^oXqJO9N{=6bUg zPq))}q_60OSsKnr`Qh%VnfgbnLQ_cve5*Vh$YfgIXdUi@i$fKD{_u@Zje3iP4_`j` zWZZ{>bFv(H9*C4Hh*c>h%D(+Tab+dV5@J7Ve{3`)GL5??b7D;o_IJ!1!-h@$;lMkP zf%%%$B!uqkR@LX|SZl4$Q))g?is$?Kx^fEOLE2+R4iBPKC*%q!d0Q+_Wr<=)dbQ41 zwU;X<4zjvQ2gKeI3Elg~4}s2~X2N%ezTE0pmU{eZi(`>iPRM%^{EfN3&`%m~d7by; ztTlUOw9wjB7w0#hBm?c!DJ<J+E2q>-RgcIZlMp?hiI?;;?jr5=CPkAFjIZ9cCVxiO zEk-}PyNu!B27tu=EC$EMAvNJWY^yxMM4{hm>M61dG39pexEbPWXrpNKljvO<tp^2z zCwYP#=h?awCBYo8PyQ5rixq09%q}zsJYy6bs+`i*0f!+NS{4Y4>F-Man(m3dzRmuZ zt1Z5_Fm6-iveEL@q~=5XYuDH{k<nIUp>ej}-Xzk|`e7q*;iy=#&BzYbEOO}Y^PiJZ zUu4_@f%mOKh$DYMKnBw%B>Ge;shTU|x{m1ovjGExFnC|1f*f64zsmH0%om!F<xI!? z+rq=5H#zw4k6V~pBW!O79yC5WGK<}Gy+=LB4FRwF1Bn0=^=E6X@BaKctJ%W@r?!6> zVGFK&s8&jIpGvG$n)=Ml_W^yzZ-UobUhN{9ySGh2G|*8Qg$A`931V;chV26c$HFF+ zzLlco-ZDNX&?!nrzej^p>GO<>5~7@f_Z?I7oz(dk4=o?l#WjDxRzkUHKS(TlE+ZDo z8$~8%6f<F|rFJ)oR{_DUUOxH*LF>qviJUu&7Cg8j85%*aF+2N_t;9Rfe*Y(YTsjs# z22_ckRDt3h_*`@P^dD=vJT4^-*ot}A`@G5DS@l+VW7t-Ocy^31htei-%>Y#IITdd6 z^9x7xuYgGP+%W>Bqutv9r9<(!UL+_{nm6m^x8W*qa_KVf>*u<^_IWcIDFUvKm=^u| zD6V6?A1(L}#B#h#SI4!8g5{-J@*ZQn6S}iDzFxy5eX0}nJF}=IVb|lpr9_8hxoB5O z3H4O23{7QieTNh`3)IciP?w((PmeP+J>WCe0#4d{O}J`h-dE<gn4r+E8rrN&b3O~Z z3H$H9oojJ<jwz^3KgUmy^#?)N+>lE1+CfPY;>QYXA4D;8RXsE(6=khI`wuvyDM9>~ zfAGkUE=GanH_29Cev$nvMN=iH_IsX`LMd}ssWH++zsEv66R~ME=lwu&Pkj5=nR!a+ z{Yu%4_{uz(nyI~D;oKl}ObWCK%sdXjH?$wGid@A1m<imgUmN9&-)j^OJz7z%bvU{r zwTGLs6DcFOh~zhDZ!L)xG@ZH`p>|8^HLpmI%4gT7A7A#c-lRQr-ita6>!ZgzBld`# zRj1$MrQ_r%>;zXSuDK@Ds>RGVyfx}t!~|SuTAP?1{dwyZXp=>_k1b3k;>}1n0H>pJ zULf{(@e*GPo#EoLKo2P9U+bT0ses5R=DIQm_`J08wAMvBnTzX%9u<OTC^ahur2)Pm z?DuR|lw<Qd$7Hmq@p9GH@fKhYp7MDv%};gjp9u+{{uRS8S7?FDQpk};LhPfFFMv@0 zNQ~Wy(;If726=c9Sd)Ua?oNBBI{XFxar2CJf<&RJ!dGj!M=f*~az%@Yu5`3(FQ<-( zr3jBLx=)h1&_Dsy_+yi_Y?7E@bDTf==Si7-R%nw?ZS+j?^wIH62N=z`RbREK8BKJ4 zg=ll99P$(x;dp^m9Pc+s4zW=8$vQxftV-V#7Rdyz{P7I|zZBTUf4;V7a6UsR5T<}* zmwU_#iLAQQulmg_mblYM)Z{JwTI1N^t7#$H$7V7xj_M8Qt*QiPGY%$pr|z{aYlS*M zj+_*h&l~8`qpu@<q5`(jxY}LXo$gH+8@B|bEw4=tgVx}94h4U=a3g*SWA%G~VqgFu zd?9jFQ9C>C&EhG2xr(Se%an|s*mPP08MFOmo`Qd8C&6CPNyTP4nOtS>Gp!NxBnwol z90;sqR=%mhRKD9zW<ED`Os_~sU@9O&M(Frp;}Et;WMQtb<Y|6vGAIB<;~)4)vWA4H z1-1BJ-73C}U#B>D<^#kxG&GL|5ApbaKAqRCemnf7`mDGq)&kX%!e5nUzK&SR<H#0g z8eyJCyz4%i<=D@x5%b{?UH4o1Z?V+N@b$|rYzRh}&A4gA3i%JCj;RMEfPfd4Hc*$Y zHdR-7&1I<mF5XnMWMt(>Ii8#%aA@aEnPnaDH?8&oyl)w5zT@sr;x6SLs+Rw=j!hMM zFvk4D++vqFuCkg}(Lt(U4ZQZU;Yv0YvwTJ2wYx*3mwCWmddLJ~EAmBhs$<Es#~bWR z)CRYa#8O2gm2Cvq7*%=fwe1KH^`a(n=aBipMw~e5YGHx8(2s_sKkU_E55Lb2&2qx? zV7%{_q*keuV6b|{#|RMtY5c7Lp5(dSxUL%NWhUp&%U-E{M<&WW>Dxp(-!}r*?jil3 znFl_d0*VOC@U<|hTnSqJ6eZvcW-eRi%J~Vu4<49{-jdy2Jc*lV62f1^zI4d}*L+TD zUH$J1gWR)#Vgq6c{XmEQ6HyET>W@43W-;JiBCa*+HugZp!Fl?;<O<~2@5ABnuDE|_ z{P-Vmm4KnU<0{vLr=Ehmguz9~1r}1Jc|-0Q*nb>b8Nv6LQk>72D$Da%&MK)__(I4W zJPutN9R-a+eyl0x;ia5qRpG(-==((;<9;(a-x-Gg4NgCytKnOC=TG<Tz%pSg!$w2J zv};#lYmLPr6dMxqjpa!fgQd=ER*nzm`wrq|nuINUR!}`mvkfR2$Ma@o<J1a9F_=O( z%X3{DEg5G*Zr*CZ%GonkZ^Mef^>9o)?rT<=BQn)E2si)y>b4&F6pRkoJg+1(oE!pr z4g=4ia&H+dK`}xY+^fQSH@8B7Jb~WPEs)g=ui?K+b#4&u_1da1!nc_LWcDlF)s<s& zpXxDNCbx2Owfw_&tv>e_B!POs-|;CU`L6+#ICKji7B1jCkdG?wC|PwstO~{C6a!kD zwXS=rce`?7^vlg})o@B&$2|6fJw&8`)sj~j<@|Icl5(dcGAB@SoG8^^$bfD3rK;aU z)2Eeo)tA*sGPX2ii=;M4Oa|%w3Pxh(j<lI?l4ZRX6vY9aw6kBgT<qwe#GWp-|IE_$ zd4pqgJ}^&H>3d=~b5@%(jeg`7`#q`6-rXVsX5T2jv0hp+2R)KKkBYX^S14M&S4C_o zvrUu;0<krCj(1;fk;jlWqQ6Mj78h1)g}awvzg8~bUfOLoEq*`VhlZAaT|5WCx=i9z zZbNvKYNnOr-zO={CDk`Zpj*H~nzR0RiK6#@=K!V^?yEy>#Ok~P{)gsYW2a5A-bUju zNDX~gRgxXPMKkgknw$B$%-{(%MCD!~H{6{6u)?tQsuNvOX}Ul0_Y6ylbm<jdL9m3z zPn?4=iNmI(f3V+lz^E`^Ygybsd>cQ;iIJA35^4#wi0%`QMghZ`Rh+ppJ*s0n;R+|6 z0cNz%I9A>7XJLLUYA#mtrLHKXn&(C<X{2RcY@DX_^rxblV^}<5a*ON+7JIXFsHAgm zR|S5E_itH?p}PxZi&ED^n%sM$n>pQp7Z*r}8B*%omGI)JtjY2!W?Jp3@JOF|X=z$# z8yfMBunB0sjZH8nGTH%5P>L(<*2LR9MByI%;>uJP#GppoLc=6#q396%o5fW7Zne`q zt@MM7+<tEf7v}CT<-Ij2kD95=H^^Q)B`9`yq91|JnkKiaVm!YqXT*Pn9K1BbB;k(& zGoH9uVacQg8jlT95Bhd$tI8kQ6Ro!V-;jRb526qz<a!;X4|dXB6T$2m5RcF&^ST`! z8T!Hy5B%TyvP2i61bae<#P>Is!}DI8HKbjG#Jw4=^MAF>Ivqv;m0$am7UojCRX^lX zqwhq#55Sal!F>$vL12sq-zwmo^P5&`{@eE_sb46La=Q-)4eMFn?fSE+4zx$UyH~T$ zh~q832w<t~dPG6(`=Y84qk@fe7|dBU4ErjoLD=uXB?5<DXmO7~e~n0|HIh2}<rbY7 zh$qsnc)Yj^ui+9ecqNpxip;hf92Qs^nxFCG!(bgwj`@JiSI1ul%zV*{K-n)IN+;*I zw9j*@bv8Q~_7JV>N<%iOp(tLne|LG5)4mfNw!kntt-`yK&N;W|TPnXsus*!io8~x> z-yd<oxQt)1Wv@jf@>oGk%#+95c4n!}{iO9olJl6v2QNp4f~W=*_$4wlF(<L^$?GX- z{C~~Rg;moQ&r~J%kq-OWX%mJT#=gniz+by6@1NFsNl=v}%F=~to|TcKVJ)*c>U@HC z;|Pep3T%azoBK4L8Crad;fV_i(hN|ooHocTZ>pWXjTe5A(VVZ?g7>;_*?PT!Mjhpy zq}JzwHfx^b#CTY?DQywtKc)6C8s#Q_NM^r+mVv6lWSR4O`i9t{#n>^2|A@-e(e$}6 z9Vd?AJmw|&;`|&nIAB*oAg`04anj}6%I&&Wrhs_hYo}ZNsr|TeYZ?+8LMzq$;9Z;( zdwQ?1Z?~6Hm#3w!;1ZaJck9-~Ibge3AZdYVokU=J*Gax-DlQp=8=q^|Mo)lPNagc8 z6Vl+lrUNBcs=2S1b`4Qzv-{K12ls%QyvwrM;{?qavu-wGLjkdI8VLx@^VWP+)DYGf zPrXDjujG0_9JB^wf1Dtl3?A}eC3L`MjlG)ay8ACY^O-qRBmQecsY98w@7e12PeanW z@M|<GLBp6y5z2}31MYt!(<QRtgIVR(7|oG$^xsZCj+xhe?Xz8}P>tIGw4+|HDQ zy6;SL4)s@JUB?6e?vNY`h4Z;&F}A-AOS$lcIyitK<}hoW7w|DIR3hGXVlR953Y#fn zxKOnajyoG!W(}*xIF6_P7)HZe$FZ8AU(h7$6qV2w__CnZ-WLsyhGc8vf&QHw5-W>v zCM|DZKmUl-T*=TE2#lB%Idh3t?mZqWKA{em8D^14Rcg;WH`q9IGkjR1uG)I_xULxR z`mx+^<#qW3B|F3N46hi2Ic+A>D#vpI0jsou0A|JP!+aVY0IhOG7LdD|WNWhpw5kHH zZ*f<mhe?OL+02@Kvr)FaK6t2NWlTQ`3c-{O+J$gl_m$%FtH-oNqOM{ajU_{i687-M zqb|}$#T_+C;{(Zey^p&mrK2rtrOu$+4C9@L9@xIanx8MtZd(ZZWOrT(hx7@zxXWcP zNYRFaDvz*hsR4!#gR4+2j_+8oYsDehOpJWIRED5|-n-0SRx`{oE?c*eF=7A+`=bMw zR#MxWLaRzuqETID`jBS-iF_fRxem<RoR~f3Eq^!0Sql~n3o$fYkbDGR@^ckh7}_h= zSe&RGn|yS`P?Z>#+pjy;`Rt}dQhaTrg?Q9Y8rYGwj+HFYv@ByD!n4}n^S!2oRQ2up zjDu1r`!s1&ll_|6-xm1qk+clTllH_iHw<aYq$QnyX`N~q{3P_Zx5<f?mmj}dIN@sa z>18PUjtY3juwTmIX>UK~|3;(DKu{iQRiO!QTS~pS-BM@<nJV?CXga7ihSJBt$;^fL zk8=VoPhX_R_j`Fx1ebdXGU^@$l|jA+JleHpT+l0l=w2y@TJ<GpSf$-|F@mHY8;K`z zc-x&Cp(Z2^0Bx*BM;RGz_waQS$M#tWyo)o(OSN7y1T`JM*?7^Smbfv>OP@|?d0CC} z1L%vd<!pe*x!3f&qL8Xp!JMIF-mosEMUV1K5rxkh{`0lQkUG2X*f)GXzGT7dlTtg! z6RuS&I!1izVKT39nEk;sm;aRnl6!uG60m4{T8uT^hQ?z|J3lgbw$a(T7_i9F5DckX zZ*rKP-FTHtAu}F|f06<vxT$}X6dRIZI7G|TleEw2cwCU3;7urW^3Q4Edd!IO*eCFk zfFD(qe;eDQp<_BhPd`ORWubfHz+`KKmLfJc0JXj5KO}R@4>w}nUf5+J_ug&Oamf8l zzzg*A#mIG-jbI>9@ke1rPDiuN5MN~?6{M7~Lg4QixzZ`A7qegU5?T_1(#>xrB_VJI zjW#%1+u>Ob<-Z(eUo(La;a@gE!jnfvRR44CivbY)_+?oIZ*k^EfSywEmbQ4qKaf^X z^5$)=wXzt|S8pta5Al_kX_eB_kAekWbu7~ao~QmLh6BOiEX4^Qckt$NJM&tCBxP61 z60#slfF?nxX;JV(>Ts`3Vwfh>9Yz^(^Er=;xU`}qM1-w#LXyJLU*R|D^>7z1;4u91 zw-9SXkgkb0diNi&Sg6GCxDwITCm9|~x2~aXQfL==5NAu>s@A!D=~4Pz`OlGg`KP-n zEk!v2_@`hL!@WR3&hTT_>d!8ue=4>&E1^VYH^Mfc_M+^h;kE5Z<iiY%-acM#o^ao# zeROHKjVd0EdmVVgW#Js8PIOWil=G(=R_ONdzTEy3m;4lV685^xRx)fdE=U8oDkdRK z?%B!8G5`Am2$6_ccs#zL&TsICf1PT=I=@{4QHaMLQcXHiKUrs7R{*OBd+j<Hb~nQd zfJoz*Bdse&r>(w~``EQC0QPJ`>g}H!M#Kt!2lp*O8He9yC}yg$j<M&tTq%alw2a?8 zQK1X%H^lGT@ixq>Zgc?WAr3s^^6i`9eq$5y|7hL7>PTIWRLgFmR|p{7I<CLUhY6&s zcEh#V+r>_bE^53G`Gl;Bx3hf_IK}64p`k7k=l1;XOV%nr%=Q;?(cN>DN~U5wVT%>c zZ08o!{@S$$K;MRaah+dxq8ZcO0V&k0|I-*45y<$S_>u2JJ5Zh4ZGzRh8{+y~L>$nh zTr^sY5Jzp=|Gv1SyqJN&KU7_swZE0#GstlJd<)@$KN5&5h1jNhhwptad`E;TKGI0j zJ{{<w5-1oQGXK=alYT~>iVE=ocq!k!G@Sl2Xon2@MJYi$+NzL~Ic^2b+t{V?W>kn_ zqEqH478_FAL=Y5^O*dhh;!NsEDKX?+*7m*M(Z5RuDHM2mT8IPW)`q;a4n?1f6u+D+ z#bOm^Ss9^kj!cz8u+M81tgZMcsA6h0JbwT0utUnx>cXslYG4d%uJ;_XxgtcK(Qa`` zH-}Q+Uq7qT;)Tzp!m$T*@hT7;L^TO0P@;dh;k`|CmQ8ZX;B@}c`|lrBH^f}TJeNZ_ zM)EzhO&tHsif}(pcjUi5%T_8lofYFpDH5n67ro7&dTC@$UZekD<77<>xA}MQYNFDQ z;AMBr@0JMV8hobw1xeDRK4(8)y#R8eX)`vJH3!cRDvC4e;#GO)@Xw=53%+}naLF@8 z;PS8e#g^c9$Fl<AZ&qK<J~j-o+nD_q=NEQFA{TwI+x8w<W7c&2uFJPw5v!Zp)OM7r zVXkJo1Ss&nHp{1PWZWAR`VjTCH_Oqv)2IH<UG-=}1n=w%X^(NN?USHv!^ahj?`?z! z^c^{PACm=YfN`|N0inzT`BUQr3VTR~^zewLyh4ClOoSmdybp(fMK!k<g`0pnYqxb; zbFVKh>_a|d`sZelQ^&kWzN)K<t3kF>=g6>N92~t+$@xU;!ERk3LkLRyBj8u`Qa2a2 zRTuMsjVG52cwWIK>yzOHB6^P4%ag4pilVc(zrX61>oFT6D{Wm~`zLW!@q!HY_`@Gh zrrvuiDSqhcYG5#9Uz;6QYc^+fAS@MjX5-6bSB1Bh{J84EQ+8|$zgGrf>pULDw)8Gf zHH7n&fp4Oms{PUwKUdN@i+(cz<<F?#EE{wqXWU~kCC=)m@GavwIgfQ@-<R)jY+F*b zvHjjS>yz#e@L3M#jna^{VUS=2pNZ6exm>r{T#x^HoNAf|EPV%1ZNrov4LV-X#efw% z(nZx0nHc6X4}I}}tOHyi86(^b0FyyZx~9hbM>!i46Nu%Ry+<Vhd(Omb?pjBSyV+=^ z;@Ly&$r>i_ED23IvYny*`0~o1r-sGXkyE;D0+I5pAf}Pj!>HeRaxDQ=vG}VEA-Sw~ zToX1&?LvF+=o_*|IAZUC*YvrEwGtJE^f9}3ZylXA>eW7W=R<pSum>qT^?Zu!hbe5X zMTeLr=Ev;v=y;CUO{XMy7K&2|H1CSX2ci`4N7g^2d|fKcq(mL2+9@5}WUlw=tyGGF zS-uw>K2A~8rrzmvqE9MxJIMHc9&cUNhWu~ciTUPz<2YQr94@z!20g1$#)R)Q=R&aS zGG774T5uT-lLQ+u<a330d8nr=rZ6W7HNti5^EVzpcFM1><P=AU{0$|h<Ed?)l|Fh% z*jcF*PvQPn8fxVJQM<@90DQmp0U3^Q`#IDHKj%>3hmAme^?K5gt8J()?Edpn;7~E| z*NKXPxsIZ+x`6<NdM^?OSCp%*-`^ENAM}6HIwl8k-4KKbRS1JTrALTTo0GZ4P2w|< zgQHnSL*@JAumwVl{t?`w9=RfBu!Fziqd6A60?%%)uP2j%s}<u=<oi(+(tME!NC$9G z%=uDqJap%?eyE-fvFv4J>LR(<Z0?fuBGw|)Fsgl**KcA_sQ5tE8*#oE1@LQ&FJEqA zZn)Ezc92LsBQ#W+!%(1b^{~o6;dv;dR-;B_H%?e?z?=qIbm$q|jvrEWQy$+}SblwL z{EZiRKHzYt?3+|$e59+4-?PI9E3UvMo_6yCPX+fXJqD5As!i9j*tL!G0L^p_g-D_2 zSas$Qb+^x2%loe#XO1tn%sxHeeXr2W{lab9vH<P>b+%SRC+TZ&a&qF+6M*WEoH4v# zi?sB2rn!$jMVi=s_#-XUl3r*_roX$Ju|IAeQ+3+Tzea);*rll#GtsP<o2_n^0zZgx z;4!L^C3c?uSX~38z)P;p=&Da_Ik)L&pjFV1pN#y`i^x=s{{V>LTn}X2B6@EWfAPaq z3F^DlnV~9FQ+H%ii5OsmSnmA8Mn|*7E5(1u+2T}q6Z+RW9|}<at{(D3<h%<3nD!bh zg#r87ptWe)l6=iZ6(N1U+y1G1NzR^;oD4%Gh--<D#PiHF1JwzM17L}@qyzo@P)zXX zst!c(lw`~**9r`_Opfs%tNv?Tq-1`HFdL$1ym6zr`)xe(xVnE_f%);{2z360Bc6^) z;xly5Mh@Y>{_WGJjicg-8HWfp$CdQbl&3Lfte9WL25m86s8eyFn2uRfy{M^1#<`T> z+%OC}Ofyw01;%xKwYo^<H7O0Pw9l)Y7TZIZtC}BeI=MuCEEgPkC0Gw9?EU*vQ}<;} zTBKkELA0X)2GHgXi-eP7=nA|WUbZ+GB?00A5DxncP>jHs`1Yy?;0~#@Kz(nV9}TNY z&`VA-N7IR^B<_+R1QV^SHPdtXZH44xA}Oj>&`yFVefd1n2lC%y)zfm@ZYWwK6B4DW zAM|pPT9q0U<b_EK_msbb)vqqcl}MiDKV~Z~KSDm8ma?q*u1dtP{TL=0`>Xh!%*$IM zTAWTeI&>?Cr40HcpV~J{(p`bV;)}tUUMN4U6yjUjrVkQRWz+5ys}N2kZVBKD-k_wg zavmX=svAbVg8e<LIkzhxXj68qXj!5<L8l<+`ZXRG(~8VMdx5%7?TJL<bl>j2JC^JU z7<1c|&wON$Kr2_$Iv<Q`%of?fXZj>Iio#<ym%q&Mi%n0za0^|xU?%E<<*}eA3)_m+ zi7T30<(Vck<*F3+*#dvW*JzsS$DI@UO^olFHn#of2-orZJ$XK26g!Q43>EC&VujHa zon!mnOfiL@`ci^zz4O$Gz|S);>AM_Ug)(k=r97(X-Y>n}<ezEhdvz;Kaq*bFI>T-@ zC_*?S2=3*;+NA1yao)0-;$e3){YVv&@}NQ^H9?OmJ~qy%Zy!ZJEYpD|9d%WZ`|&Wv zm`3pOtqp#~Ww^uY>mL2HQo`@0594$}Y&5B$YKc8`-PZq6-1NXt)Ru7vGG7yV?;*3z zJ`>l*UaCHGGL!N{d*_BriPh%p1@Xc%a#m~*enc!?xaeAO@J!4*93wIrPGfwsulrXT zUF7Rv8Wo8+6iYaWGbMOSkcfJVd$02G^G=F~$k!s$4W;h+C9@o&bt)_|d5FVV#jFfE zi$A;D^8UiHah6-g1;iTC0-J0$w&A<z0D>S?kG)f%uNnfwS*i3QFMET~cx}_a)6jU) z{jv0P#m`AnUh}(e^elA^xLzAVu&gMAjMAM$=qOs*Mm{=jCI7&b{HNaYr`hf~;DN+y z7WH5iO1hsvye@=&D-X_j%pIGXN_&d(+ppFVAKK6Mb#-9>l(SlPYXd^~cHt)OX|Y-% zjKH<Ln`#LnHEmu#f=SC`td0#vO7f-(r5`m&(Jh=J-nN11Y1(@loUCbjX$SD_*c=f1 zmO~DC^v-E~qNiFF`Ja3>66rV}b3$6467vu2wiCspyU;$8m635@bqQ|1`WLJJ*a-iY z=!;EyluD~PdS*<`eEf~pvK`(ag-H%Bex*a<P-Q@$T*!|Vyld{%{=!0P`X_Vmz1#sm zX0xP$1O;XL9X!`J8jmK2^L1m4lo^7NyTqiE^T3fH!5qdM*-*Zt$Q<m5seUv-*}nlW zH4({7Bw|qq<QtjDM)VTWVy?W5a>wTrag0dgN-Zag4`|ID)%@WUJ}(Mk;-MM_Z{Xy= z_Puq}I!v}l1NTEc=6cB_z%&=fZsXr%i6T&TBL8MyLAkc`hnOD2{I69C1~9JB_nB|V z#RvRoOLSQu3rj%;*?#RvLxD7>gCmmGzEiMcBkJ&_3Tow->3bOiLSTVPinXN=BSd_n z;7`F1#8zA@{Ig4K^pbjT{mz^DYg}$xHQSEew)6S9bG@Erl5jB%_2eP+czj%l8ZGuF z6<-rI8&d<n++b^(Ggo55z{9+6;n=FTbgJ_6<M5j+m?Xg0Fl+F*kcDRuCCHJ;^&PeA zKzl<(P>w_l7pLOHFOW;KjS4+Qn8;03z*iZ<0G3HiKDc}%)7#DcyMsMNlpWLH>Dd>X z$utnWA!c>#$NPK-3MQ3zGP}58Qja1867+=3j2biZkHfkWG>T|XNj~LxLGwS=HcV`D zGBU>E3x*SZ{%I4O+A<D<*(F#EA$_cu9{d|XtG_RQ92}ukV|=A$!Yv+jN#auo9Rwu2 zB8r=)&V_Z&59<=)>fw?rN>KoNtKmj}=XP`#60N^Jg5j}fr1(R{S31wP1U~(yg<&G0 z%r)rLSS9s6z&~T$!R6$7S6bhUDg&`k4VGT6A35xI3#;|L!8DxMwwsv!Jpl^8zHuQS z*p#ltL>}Mx>iaaqwa*OPYKkJJ#xJRmeS}^h7XPFvByc!028<obn@KRy86cj}qRp*s zUYM+^2rPjpj-MoHy<2MeD2{YW5?j?VjWmY}*82{1XHu*)isb+T_{tU>YbJ8Wd{tX9 zKOJ87ssl4?&<gA(_O96zT7<<Fb}@+1+tb87u>Al&o_FN7RgKikl;&5|)I7mgQk)V% zOsf|*ig||lqXTWQU}4U``{s%JqFTgwfIut;9NwX*E}OhY#j(5@f7rBj$R|q+bRokm zMF=Xs24|(P4B5y%ZlZM=t>Zqsmw^u#Z`^z{mp6n<cvtL3GIL~~H<&{Dv1ytwk`(>Z z<>-)qq#yUM+tJQ>Ph?jD#x5e-r_1Ti%Ah?y3`Z{#PVrYZUI80$kG78SlyfMyyxnHb zUc)t$ATNatu7vXfvaE$(2KBKCp+Fnv9x!EZv8LWx!iD|6PcwPJqkhfuH1kdfUigvG zpM`2a;>k3hFl`#nKIpEskMp6hPO|>oI~BC(O9)V~bk<0Xk?TlknvU_h|6vD00jF#* z3=`epuMkfO{>*ZQh=%XR53x{G-kRlH-%CSLyeLnP(7Xqi71#t<k9S4RX73d<_&-op z{-@AeiJ=P}MAsB&Un3_-n8XQkI39_@*ov{e(&?4iljq_(J(tGUXIj5apy_XBnX8P= z6|+PzB7@itqu%PT%z3-Vu==B6p$Fxf*BMA(;<ShmgQU^(ULChca*AAZ6*fx{FnF%_ zVu3aYYWy#%KJmNQwY}er$j1MYrB7CQ2#bfJTt~J;A@Uhaq_6%6jR+~<a^?lLy1M0f z!35GA&eisf0{@ythxSm;J>@S=QG>DQ`$LrXm#rvmU4jayt@`~xP^Shj9>M>UsTlKq z-1J(NMzZgs$iMBVVJ@!tXieU2UwV#ArC6w0b|q(dSi{}q(aPi-3blHx#i=W10L=H4 z@alC;ryqDlwlzos^bRKIYS1pm`{&uX>#fTRj3#8b0^{iQu8O05vW6Cu{}iX_ahSw< zj_1$KCAAugBGH)fFLhaa5Iy-75PU|`Yc=SfA<ylAr8W^TN1mlmO%%67e@@Jv(3Rp0 zVeMw7B-iVlQ~Ujq9(9f3xW-sg5n*(T<99{8LoH2loNv_Qv{UwJZBA9(%k{`V1Z0&> zBG-eEv6`BebonnEmp7gt_J50E?hFH(eQ|4YZlQ35X0FKFHI}pYG>c11HAsG#g7QQU ztIL}012Tl_XLes-RLTLAAH{r=q(##Aw2C}D4G=&`Ct)zcd9k``LWk9j<Y|`dzQ>|r z5iU3dUhHT+_v7rvS$jX<EiIL)qJi#d)k7IBBSZmy`2LqoSvQ26aEI@7FYjP{oJZ=z z3_t-)X)a2Dm<TWdg7ugciqBkhm<2{3WuI(ye_Hml#kwH~KxFm7Y|giz7+ZH8-8MRW zA~gP+LSjW2L$i@n;vEtc*2|?R`~#||Kgb)oSlUP1R1yemVR`1mrlenG{3$409g8!! zeMnqOMb2)!puKQx$2vu<PD2S~wrR`L|0>_lJ%}heNy0*lV>t7x;<Oqod?z*o9&}c} zUN_uY?@|;*eJ@9gFBTbPr@nnox{zt*p+2wwJSG`MzhPKDbF=E1;t}z*WKgQCa;DJN z)A;DaUmh_PQX#YRb!nRi!Ikv`EjLqs20)*FsNZm;c~pVu#myJl!J0@SYvYuq8!iff zm^^}VANMBLZ$B>oPw|rzwW4QL5$gaY^%E}B9V1?GpO(1aT&-3KZRecK`PfLxZ3Yx$ ze5JPvbfK|B_Sq0e6b7^Q1CCTEy5w$cT)&@xT0y#Jp-jZN2P1k8|GXzw-E>9cV$u^u z0CgA-)lK~ja^O?u-aQSWuM1YdQp6}Fz1vPcd_9@*xb(aS;5x%EIE(HFLB*&ks-lU) z{P&ZTy3_B%@E0}SSQYI<<kGB$w2T~$S#9wg^TSkGZxkm*>_}3R*bcgILLu<$TPT>z z1pggXyq!yDh(AUQns}6p&3WYT`}YMyd|{Yg1c5EI(~Ir$6wFJ>;0g8NY>3XN%syWi z0+IOrz=MWF&QN`7lwFU|R{S}Ft1@vFam(ZbxzGJg_c7L^4c9eabkXA9H6x>V0=@P5 zAfS={0V)MLzjb}*EkTV{3KqskePKPdC^Eu{jZ(Q|@AKv-5ePtRpSFjMsg~i1p2lhF z?@ci#H-g2*K328f6a42`>uo@8{cU#R3=B0w?#`VkF;_R*RoT601Bm()btkM3{U0uE zVJYt)-}lvMwTEb!{3Aw#F~<c5=3*;gCMMZi(T83LUYE2GbMG=*C+sdj@Sva+2bGM( zD_T5(tE4bFK}zslo7fZ!xZ|@$7IZ?6VrZAd)A(vm7U7uo@=lMH@&WkKp&-DX8*h6_ zkqWT-jC!E68CK){N-P!n*HL0IoTo?@JI#&e5NrxUyfY0{+;=b&py-5qsr2NvF!R}? zXYnG)c8R>`p2MHxQp+ZBY*TiL1W@u7X<Mj}zXDJ7WGxhU*e<}#)dcMz!)6WQNMy!w z62qeSrZDE(#pqe=2#V0jM8Y{J5S;F+F_?_wR4?;eUd|MQq|{K#-7p0A4t0EhLa%7S zcOpYk(4<Ks`o&q8(<LIbq>v238&xKDjc>ObfoC)m5}a7tqw{>zHGrp<(^FP>C<zeT z?j5z>of_18lnStj?4Z(@^gCbY`$ZAvb^xOaLte_#VW@$S&dZ>2>w;zYOi<a<Bjb?2 z`_yeM@KNe|R)=cn%ZQsVOqK@*urT@o6XVI;Mf!-_rFb`w(5$oi32R4V@+yDm6S7{- z*mUVseEwim=o6W=vQQa9cr*3Ke8=#2z|GE`Bp^N%#h1$~Iv`<UU!k>Zzhf7>5uIwV ze28ka>`Zd%bcCeiY|*rF7{8xLo<P4T>;53mOY1C12uCkXU@WDS>~i?aYo<N)<Y@hf z11B^)RB}{8%~g((a7o<w_#iWDMj}ePzRGygBx>vhy9c}zXtyHX9*4~RYiUf{Gc;!Z z(;5bD`ddmLudCX>u~%Y=Vi3Z|><}CBY*i|1#_i=StipI5Rxl1LV&Iyo*9PTU-iu~v zAkSKh6WVEu{V3m9k4|v?bE|Bh`iN`SU6&|eJ8b;As3SIla*ir<byDvUcyZb0cd^+a zjd-<+WEf9S7PkyvY$bP@OeUl!Ps#tAsT1jwP)IA~Ii>}N@+SP_zdn!>2Y?k(j3Zp3 z!75gSOuTA)iLQzHpIm8+@58#7)5OsTQ)z|Oalk*pPNzjPNi7P~B4aWGXkA55@Okk3 znP9leSegUR*gil_hJtNe>qVRp{sOA`bs0cexNmWK#o4!3O@TD{IGP>}%f&@Hqi5Cn z<aPbES7ngpv(m<lt&97+Lixgj<t*6K)O9xOdt|;L7Z8vBCw3@_SfCL-dQyCf_4{;N zWer0W3IW1hY$jH4fReV~;g_zT-mD21LffFbm>(qU_1%hzPlqo@{jZd$JsmZ`A_jlE z1}f9nT7ng&OSOBe%YF=^HIjgMXnEBR3QQsJ2hV9=$V}_p<O1E#%+j6zE-B>ugq}6M z9GP;mo;}`#A8=vSkE2oI&PVauT@9F4yr!H~ariRnttewLF-8Gd6t^?R>*-LAr1V7p zpYAXHTkO(6e#bh`aXVTMX5w=?J%*o;&=&L@VjDTYCoR)f6Bx4W<%A5LY6c=t^4K9! zs>Ri=V@uu+p%M8*Mb#5hb53p?d?7m5?LAuQ=IQ?XY?(28@+jHXf5@l?cw3oRZSVjS zOxNHy;L9;KB^J$6EVe`s*Ywg5{yKEm`^F~|3x8$h;vZWdAxx~f(YuryYWYU@ax!xV z)U5ncpG#$hMLI6OIWN_90KuUi_9tP!GzFatNQ*SmLt%+ts}X%&>-rVUkR$}h+wLb! ze#=HC|2c^QypCIic|G!)`H8=XWSF1X<cI^PPcf)#p_P5TD$?r*@!Q+ek~o8hiICdd ztp@4A2jxL@Q|3Z0f9s~LqF%&e+z}ZK0*+`?(J1k=v*sx|m&jOM_^WdGK9mSgdqcgr z1pYPkLd92wDDC@VmiVOso??84Ur%kf(X*j>Dw9~85ePJb;V7RfJ=&DSc6+p2_y7v` zram-_+o3SInLT6_BoQB63~3eGzr+9V{u3$DEe){xU(PjW{uAPm&-?oitH~=F$6^0s zX?RUdS12#faQI&G-_j4ZB!nMFv+&kV|D$4%Z@ptIx-PFWvyYjKL;yHx#>escvrQUF zLXtkScVg0*GIAkK5rq@VYwJj_(v|S!LPIsE{>~)9>H}j_858(f9TfH)d8hN@S-2^6 z)~(1nFdQ37UeoFed8(P&6%qX7H(`U2QKVIJ-5XaXx1|KW{p6qdqJ-g%>_ijW#TJUp z{1%MO^{n5ax_B|FB{N$Zka7VD*yp*%qf(I5s@O-pGD~C9iS|3Zs#Rhv_h`MQHI7xZ zi8xkh89kgFbuw+46ui?B4Vv<j(wEH&l@@@fQRWejZKGgUru?d*4PXa7<8Hb9(YPx2 zyWftpj@xYZIdCjt<+c>zz2z?4iY8nb0u=toY#7m^Ck;*P7)MVv_i+KnFe59VLDfvy zH+t4;7ChoKB?(1}TgDPy<8ANEUmzzrbRh~ko*^plj2)R=MtS$tI{<KQOEIgosMd-i z%Xyr4lI$SKB09Vm*DyGr*7BfZb%Hfjw>~DsMTU$|GITJ$<vMenojK>YGQ|^&P%N|| z!zLOYf<w1~tKUV5wg${zXa&#v1vVii<HRTMx#!Y({JtF9jUpjZ4h^=Y6o_oEk9r9e zl1~hsM+-hod8ehr_A#JUz<94e@K0b2<#FVN2%(bYoj$8r`eK3^z;g6(u3bf(RyMws z*695Bx6CR=1w5vwMP6#HZMkVU^!wWGyiv0qB0l0ZR%6ZIMj>Q2fIGT<42l4LHvf2% zPoxzBckIRREBNg*PCqZ1|IA)WF(hes0}}^sWSo{3iko1l9)Y}wc{#d)C!ML_X(qaE ztk1!5qS7(e@RTP|gqxxgc`vP5$F)aHq0a2`?Rpb8s8hH0mI2BT4O+$$HxWtj<ZwP| z2pIkanSEX0BpW11PbMl7;xI|HgFlk(LE_cnFqyct#0!}Ch;O}1NGX8*Kv}mb$eXl= zz?&q1Xs1VTQk6|Gi!08&RB5@Y6Q@Y^$)JDWn*l$(FOhyOmKMXAvo=SBGkKyF;9O3u zvwOI!UB_1Hh(y^9VYvdF=X~Or26ej>QfsDrjpXcOWfNd?5?c%-BfnG;-yCuLj*m+! zl}7%zTujlk>Z=2!U$N43Cl*!I;p-AA#Q+A4Y&r{Ol=-3n1=pdGjA_^8pLPl8$ger! zB+=N8JYQvWDbHdtjx)m(%VRud2+)MuY^1&fTT}fZbkpPGrxtM=Z6YK0IpE_iE|+4H z=ON?Yk;i>^1a5aW`^+%R_l}`0Za?cBUSkXCyIKD8L8FZajTa$2jQI?Wh=A-t@prQQ zecQ6f5jbbJd=;l{DT212Z2O?%_-1vmNq&E_3-d=(aa`pfPB7Zp8+&bLv_8v6a)~a^ z8QGL=sWo$kT<r&kfEY@;jgx-7;F4cVHD0KXkayO}<0t<+76{R^b_``F;%aJ{g$PK0 z0gW=#!RXTRac`r6SDrFD24Y<1hcT{-4J8vKa5no{Ephp@R*;B7;4ivj4ap*BMXiTc zD*V@HmBH;ndR)7x`r|Y}Y|8OZYYwZ0JH_1HJva0JAcAY!Z2ApO^9;c^!er8q=?`Qr znqJVrBVIn(jx}3I-uV-W)%X0~<rx58qYij*ieMk(0zxp1ok`2K_F^m*E61!WM*eod z|Bn{^an{=;m{z{|E`?nZLrXV2%+GqQg8LGDz&UM(?mx)X9Q~=5*Yj>0E<f_igXhzl z(5e<)@r|KcjOTkxr%$0x|7`~D$ndY*W9;Hn1!jqN0Xzi7&@B)$Y#)csf}M4fWSQ+; z=J-v6$q>`(Dme~@TQw<qAsdR}KtGBFo7y?<>fezoHXJK}a)z?1_+D|>o@Q{B_qi2g z>Bz8OKr|sp@c$6?6>d%U-T#z?Qi4jCh=6o6Vu({|rl8WHfPkY%!$<{{l#Wp%OqA{p zk<lHaI|d`isEzpX+|T{|zJI{yy3X}E=e$n6&Uw2id~{?|03{Hsxgfx`TARk8_n&<? zp2Z)#U0iL?nG`CcU|h#Mf^qi+zcARp{2^d0&8Jo6;p(rkU0WO~udau(i(^$EN+x<X zd`G}IoA_%s8Wf>)T;`)a8g9<X@Hc2hU^DdPWZ2x_0!9-r69zu5AD7D)`6_&Rclf?3 zXI*TZ3?5lrrA|pz*zQ#f0wBcD_wUUDFg4AP3n$3?!Ls#b>w3A}Jj`Y#as+R7y#ifR zhk#_ncm2MzF<D>w#_i2|rn#s`#kpibE>}yS(U!wX@IY%8MEWE{QdA-5ug!-RP_(>B zyOWO2noxtiel!;+uGYsj3RSM;Se;Qd=f!HmZv{i0f{oN%oC<h`=<O&YdG_-ufNvo0 zSe{iSktWW8dS;86Zp<NmBubUOjAP&C^T)B!_`IAZ;W=R^1vlWmQz=Jf#x)y<2H&#l z>v_-Kdo>npYG><TrzWPFA{l0C(s`$yQ2}I&V?mJBfR1!|7rc8p-Vm#n%F_fK&mpQD z%$uA(Y?F-Tc$7PvvtEp<atG6@S!nJ%&)J4PDE~zZdo1@1+`pE#J^Fe;%UvLop|B3w z$-}@F-~Vkg%?vMd+_k`*(bt~fngrFu9F+m13nG;xGYUH4RV)FUzsh9D7Rs<g_8Vc3 zL5uIMAFASh8r)$y5S&n+Tglj1D;63$0^s<rHI;ZXhD12<6=1BmPt3;>y+WUx&K)Wt zOc0zAt1G?>L-wC`s2V--`oMNU7ezrQPDx9rwBPzZI&5ojQ)*?EdJWGE-)DfX%z6~+ zO8}yLUBoydWZ(^>%xV}YfW&%ML7o1NCU!-A^tOADg0*yTm)_J6?T(|agLlE;X-@b- z`+P0%)y;>H&0mY+e_ODiXy?x{p!Lp&sV10#raOu+vF|vMdS||uhD~oKu61PUK=$U= zM*-pJA`TGko2=!VW9$P;2QEb-D>ElwO*Y~A7u8a}=6sgI5TJm;%{YeFNgOWzD;7k2 z;5t7+>FW!?M=Di~F`0AX<fSDJpG6}X)M>{zdt=`23561$YXVo>zV~4uihN?%+bUwJ z?(0@Jqhv5-&{Nxs<(Gf-CpObynfFAXll%}w2N-kWPA@>Z6i4b?Lhat=hs*VCP}sod z?RjZfkJ9ZO;w&E()g2MgNKx(K*JaQg(D8RG%jslG{XpxSl6jy0iuo;>du&R!eKRC^ zfJ)=J|ETHw{<WIO?jr>UcstevqC{?hyN>`P)Flg#?4&lX=Y9o(n+2gx_Ord7J%98` zewOdv2{jl=hxY$m{}S(sqzwlMhFOU^&A`7kBgjg-*aw%&3fT(R_=cWIp$LB)R&yJX z`s{ZaYwy83Qg#*A%S%QZqx}IjWAtcH(76%UlmO4I)ll6^z!P1qi%B&r;TY{_6P;U8 ziAxlL?qlrckvb-wBR`7xtxD0O-}vU-;No+~`6L;p6kxul2ydF2k>}*0g@d!nwl))v zmtNz=km?_E#cU)r!H1t(=NogF(*e&PIlfbx)enjs82K2M0OiUkr*5&~)>DYQJ`m+` z#lDTTr#06M*usNOPNS{FUm*sVejN9MSsEuC_v_!kco98b)%xO!Z&!wnP+OyD!m3r9 zFu90W_29auBIYmd4oz~tGcAhoxXm3(6@*??x>2U@d@)376^*W+rPfa;;PoAP#XC0n zW@O`DJo0#+C1r6uaiaRM{QSFldr`H<#M^=_Lg|v6VY|l0vv6Cbo!M)9D-3Oo!o(US z-^|5Wu70>t>ja)Dkg%3`4=Ry#KuDU05^Mjmpi;j~fS$tj3^JMz9H0p-@gud`I}lCf zN~m^0%X<!tBXvtzxy;!lzsRK1OxwKeRn+kTZ)+VQ)WOqG3>VCQCvQ~a9+_%S@`K9i z8#iXq??nb_9B@rZ!p^y*y<<62HOiZ!67#Z`5qk6CY^DhECGq}mb+rPMRj#sRtR$oK zhVQ%chs{leZbtmE+Gp=J(RL3HV<)|ts$Uvo?Le)t)*K-L$E1k&t)=wv>szhdf$#p= zpm#iH4$UUxgy%U9w9^*>&h}OMk7UA8W?P&jy=JEnM=%$$DxLCUPBgEtvw)q^BPsXJ zVq!q^7SYZSnuUT*rqak@IagG1*`vPs<Mp8=-k}=Zd~#KkJ_JA${2x>HC5x7%|MPxx zOzLk#Bd6Cz>BgG)JHUDs+}tnfVC_VB)UOGv60$yK;I%8d{R$5&nce&i*w??!UV_?q z6<K4KcYWHveElbfH#4OYnr5qi<bSsST4nSKW|D_S=Z!f>Q;jg*qMa2#TFPYM*qp_% zdA%gW`PQ<{t}~z$uQF&eVVbpT0pZBB-JYIgy*9+_t<+{#wc8nQ-fc7A4zsfB+@Wt= z0&$Z^j4rq9r<c{W=86d%u|&y8NHPVeyjHk(`Y7vB(KuH<lCkfk?iOVWEb^_0@I*E# zc*Ws5WP}r)F&I8@`5dXXx7u8?GutR%o}*mT<e5nxbzrR&l9Pilf)dz&wK!6H3t*W2 z7Dl;N>^F7D-gzzb)w$hhDDx@7)DW)!RW?s4P4LS>b?)U8Aw-ThGc~eLpVs#4f%NGR zV&M^>Gsv0LW5=y0OSJ>UMGilOQK%xV&pobAN4%Qi8_CJ3>U-)?3qXeO?r$ip<Usiz z4Cg117H-HD&Z>p6g^_hRXDmlL5iU&UoO+ZqoODEo3$9O-hwHiLDLAAM%J3lf{MB|l zlV6xtMlkkZ9AQv1tVFkl%*xH=V)L6K>ouHeD?<bopa%X?tR*c;u5shJ?=<^&$oSE( zJNzoTo5t=NBUD_l5~u#WsviN=e8T%LmfHj;4P0IvPHzZz82ZeGN|@Zr9Z{7uCuekA z@o0*9b=Xo8aNI^<)>)AsW4$KvBy#YRfGmV^oplLb^03dtG$7T4Dqa3zM%T0(AX=<W zcw&8C%;lJp<lPIoiTvW+t1541%*kYLp%~Y88L}_taVL8!NTKC#f8!1>w~A*ZYv8rC zt(Ui%VKT+L^P>GZj5oZgX*Z2&FJ;do6K@ZG!&8$AGsiqYh5Ifv4jTP|tRtrw?_Tlq z`YcJ=p7C9EXSvPi?cBj{t(pa(@X!QR#Cb(h<kAbsYT?__)28xu0^AKB9$zok6b^({ zKUiXNp76}*5&{g^RskkxH5Q-TgL};}56Nx7G?y1^+?7dE18oll_a(%RAoJ_`FZ?Dv z4vr`*;s5azX8PLsIBJ)U?y6gAFFQ)9Uzy3IV=+?RzdhZa{w2Ga_f3?Po;JuQNNs(E zzA#xS;Ubmod7=N#O=o0l@FN<g&hVUexz6mtvq$#HD7*ZCFFHoHD2$s9W-#S=jcm6E zQ+<3&cf9`R!v5i*BT8;yK(x_Y(@{yJcIHNh+|2uo##HFq*T%RnIoSG3xZmN%XYE1z z-=dl9OJyZ67Jru?P476A6N$*_w2(i|ngrG9zTdq_Xx^`Ohr?DBz&<Xw7yrs8fP*A; z4-L20S8Jfx);vUScq{lNonTMq@}9mPM4~Ke02p~t4Fvy&ADSsdvNx06rzQ^{(N7*3 z+KWfwl*cFnG;_0jkKnHKg}fT#V>Ruz{xDroNXyWCC*XW}*mYZ#p7YSX$Up7|+Zol1 zm6RRQiaP0jKt_3lsDu;bBlK@w)n#E!QW6gl*p2_$@hadr19!VFecHfVYv`pyH(!$^ zm*d4y>e@6f|2H1&cUtNY5Er<#d|p!ly<SyR`8sBob`EGPve(m?B2=4rNTH&(?_el% zjjc4nFdp#_J0B=&b_TW~tn)v5nN`kK<57*At=SXL8>Rm`SDT-FbzOM>nOW?J`TU2x zT#r0!$W0Fh!<D%sEwLu|@t2<uIa$|y1STJ0wtZop9A2h0LDf+{sOAYfx)p!*A2IV~ zN)lh%S=C%k#H};f*yiG^kqFqP0N-iD$-EySYyn%%O%MAs^-->HDP4y`lIRfj-~xav zS`egij%zh%+iCxeLEppt7PAqaesC&?>6my%x5?}Kc!3s%FrSizH1v&D-%#bdzk)Ji zEVyx10O56<uKOq36;`#BrvF8SOc^`d2{0pLo*P+2+8?;*&qtZoY(NUAXseZ3-nNEq z{h%J4h~}lOx1@wwt@w|Hm9CO;wq^HO9I~pAi2Aepg{bMlWlpdho!C2{dF>oq$5^}c zAKQXu;>(NYX2`naD|Ld*qNR4=5Mvvo22Qmg?ZjY^%b-$J&3sWpe0ui#M|otr-(EuQ z`xFx<nk4d?1JK+)c>zTP1KBs3_z8q-0#1LOS`Ah;b{&nSuXWNH(OMY8$G#^X9WND@ zn&Y`nIo-576IEDeVDPRIAT+?R0>|heGp{IVvA~NL1|ZcJTTljhQuYNhRY8zNrh-hy zNbvqDXby$|s(o01iRL*|C@JPoFgLD_GmGW5ylLojtaDm3LTT&*qDWqLH{p?g+c<89 zj5KE?^SmHe6=;Q7bekF@Y&0_ut3TE#panv?Y*@gn#5$5MM`LCkFwnwTMh%EN+xwZG zPQ0DXKcIPy@PTB{MP3A?^hs=do*=im+RoVF{17ViGboRrC(<q}l>Y_8zO`INdsm7A zbnH-JEC=p+v6vTwDyV2z70e<U+bPFbtW%I$sf^VNWk4H$ELeHG-|yIr@J~9;IQA(0 zn^mP>%vGBd?6@xy`t~UFs=93Ti=GD5Bt62Mc40AqQW$-^UIcR=%IC6hv><KBk6d<% zdYJKKPkzgF;sn~6#jgsTslxv&tcyQoB>58wQ5bUdG|cUsea(voPJ*nzq$lRhM5s=2 z$o*=(+V$-bV%sW8-8WGv*RqQN{AT}QsXxMbE3?NJVg?-``|aA*-&wpepD3r40=3oP zhRax*EgH3Qbh@D~C+r5Nssf}CJ`69cx{XBSZhfGrYTjEBQRqREm==yFh20jHGm`Qs zDl8MMMLBlv4)?R7O%M|YL&za|GwID9h3s}e_b3IJ6_psMvJ+dh>DC`T?)bl7?Q;Gf z>EE^tru-<(*x+f6MW%{`@;q;#_U=JEfK!~nbpJNamlXA9CtLh%sIHvBb*oOv7^%=! zM%L+i|IA3*W=DCPzy`k|2TeO2Ec~Ax<Jr#(!<)-t2U4Fzo5`M#n1WT>5!EjJ(e*NB z6l(hDlkqPge+NU{fp416dWeIKSz_auq+yas(>-?wzjt5wecR%5fX#TkZc}siU*l3A zTaht*FSC~s?`BO5A_?`cUE9(HYXs9<A&I1UO9#lLM#R^MteF%W&Nq1srM6r-m5U}j zK8IIJ*$OBg!%20269thfj;r?TI(dt14%UT*ULHPpZ{Q2X@BaRMRmF}2;-QCqY8)^6 z@?6n)7-meKJ+2P8;{%j_*g3*A+ufLJy0MGWoe9a#yI3n27-EgHpisrL{!&Sdfmupd z?Y$}a2P34(Ce$oPIvJRy)U+@>t;9>zH=mO|PZl++-+C|s1~G8|#8k!9`%@VJ%`*N1 z9xD<XY_jJK3>k?_j{_dpI8!h=Mnmm#_~jLf9tcF`-sQ}XmN@cK#w_Gm)WRQfHbmz+ zWCaBpgjfDZ#lVKBcMjdd7-8nU02cPRK~QAiz<HjN2txl<xHF^GRM9svK;-a)FN`?A z3^6D74>*TiKdE9la?jFUeqdl|fD@q)e+uPsneG6*-zKcTGC#9^&laL`+D0b}t~^h& z-GYdO)aRfM<O$~AjChA;kc4VC=*xGjK;q5nYDmH!gdavTzdj_M9J1SI&pru|&Yv(_ zz5~vKO<-;W*5^9Y%AaC;Wm+&P{hbL!=8L!I<f;Z8w1t-pO4SB6a#mQ2*l`dpFcLaV z%xiA);UBD`3HG2*!97Jwdr_fS)(`XrGvtYphRdZcc1eA=!tMHeKDWP8poBGg>wq7} zR~7|qB{tF>3{IsiKmN4NGk}!yh=lB~Y??0oR)!1#@6fcBNm%O`dBJo~jn8p_V#qMC z*ZuzCsw3qUO#VbaD|1n>WK*{Tu#z&ZreQEs*sV91fd3rOp}#PibN$xiMGfYkWOImK zo|Ek1jcXdUkylSN1vWsp$AHdil>jmCer?<R+ik{<U%dzN0i@(YFMoR=Q@r2x$w4fN z#OuO+mp-szosj+M!Rc*Wot&CYYdwU^YNsER#V9+mKG}n9$yHi|wz_h4v!8L9^{eiv zCBxUL)GcUgzjb#7SY+_|%(&B};fQAR$a(bfPfQdW#ip{+D@Eoi-VF4KCA{$(SGbzI z|H;TjseSX~K<A4XuRHn{JezF98=uND(~xj-8&_P@z~66ck6k6>vjT8JpNDHObtO@W z(dwSIAOiD1n;@|{{5uFso?Az|%yX7L!=yIqd$SrkLpQEgGCRff%j?@A;1C3%3WzpF zdUZg4w#4lka-2sNC8A^DTJ>7RMg2f(v|Jk<^-S0zgSAQeKN7h#QflL)h7QUDf$~CG z<RUD$)gFsWbg;bY9B6FKbLW<4KmEMI1w?ua%_O7j71s(mHvTY%T4}m`4K-}8ZWmN| zH4=D+U&_JH*{WDY@5BXEI3-s$2{=|?1c-s(kP$<Q_Z*=*#Yo)q%puC8vEP{W0ICHl zyM4ng9Xu_$9ZGdNZPGNM3Wc2d2QQ*Ig6~o4q~u^_B#`1^K2JuAUT;513Ns9Kq<zZu z66}HuNh+tIXy@_9)@|p+FeNw+9pm^1)QqZok0cb!*XL3W>@p)^yYVG_ldA<9>}`C~ z(N$4Z)#PDt3sr*8U%URgnR^aD#2^iO_Ub(wnKj)qbNUpl9$fB4I&6)6@&y=5JM_a1 zK=92ppE&aX=3voiAm>)add~lO=CkY@PZ-xlkx8x_!Y;3xga%^kZC`QB#2NH08~%>b z&El=uso|MEYmr=Q*zz770EGFospJi3>B$ARC6qbkCc9OVS?T-eHh|y<35#)~vYo@z zpHzZFJQ4#N8*UX@K_C}<<pIl<D6nXZBfPVf4kmujVMy6#zoNHsY~`7kcK+ehd?$l> zwe@|QdBO;5+gBM4In?<UR7V?s>g@BsNLNpZGf5s@+eG`?QnU2tJa{Y+<!R9*PafbU zb<CQ6GE@VYbsb>Y+y0nT;!KsGhloioyCiJ!$K(ciUKpG8BxfE(KXix|p&FU+4w3LO zogiu)jA#b~dt@{@tBVd<rJ@CmesfIJn>VzCJZ5od?T4`w$W*BkEET<gNSEE2MGY9n z@`J^a+{RGXl!7s@WzItAm!oHDx@!`RmH*A9?I_{OWX9Z;D{zS<syNMDc8c7X^H|>G z?EDfPEZKbx*91stzw61(kyu9Mu|RZm#>%2LRoG%%FpJx}o`5ll%QB+k!oZ&p-8Whd zyq0rgC6;coHAOzBCY_l<yX8(^Tx|#X0&?=2XN4&7I%zK4#GNU)lpE~ZQcfKMS=1(y z50=9;2T_jVTR~cxiQ&~uDnDc>Jg-RnZ+?6Y!OyaNe1!VU;9r=n9{@<HMMGJ6n~H>@ zBfXYa#3#Vv_)MJmwt3EoS7eRvbu!jXYHRr=v;Z6q>@~ZLtH#K4uoqjtM7h#&G5>-( zbeqE8NXl&pjt`XiadrPh`2g0f{51`+UfL+@&$M0dseJC6(3W#5-<|64^J&5u;-rp; z<7Gm*8(CvOEyEHs$ZR0TEd;u^zW+slS;_wyqnc&hMtAmm1Q4t;Fg>(Fzt}KOV+s|P z_&xxqe(v?*R|aL9HhM_~`eIankSF#Xx-*2kO^Zat)^O}%0!P>#HLx(k4y||jim0*9 z1aqzcaJnmfM&Ypar58%3KMYz6TMGG0?$;-UO%QU{7YlKuVi@T*S{4LFA&)Ht1^5E= z%HloK8bl9!tXd2BJo!{26BmH{!kO_79?diJ!^xWYo_AUGqK93bxz%~p^M6XH>(*0v z>*^Kn-xQZOgWsWl)S=bys8ONLa0ZZLjh}tbDCH!$EkmkOBzvFq1DDaFQbEH5${ug| zJ62zEJEmHbLn}r$gbTd-z$*EcDq-z$<&KB7AJ-*nx~D%?$!x}=Mx@EQq?CES@oQK< zzU(3TcrFMgimkx+JZZm3_yN4w5`3j>L1i~g1=hFw6}tZ7PlX%)=@nJb><OQTgZi`R zrQwil;16T-e`Kxo{ts3&OAJ&Purc55G}54cpV=dxowp<x2JH0jFYEUp>S+et^FDc% z=PB9a3oQnuz;t`rS+|z?qq_`E+87YL4HKI!4y3%DDTn$KD!8h$b&p)waYmK*=jLNT z^m9TfrC}DFU|e(LsyYyMP4MYu-G-QK<bWt5iwv-PSImiRhB}DmtanyqDoBO^M(U$Y z`r5@{&N!s_Pape}|2cc}?UXx|H%O4e<N`honJmgkhc5X&%@zl)+*G9#_CtlDZml`n zIaD<P*lu2Z+cH71#Aa&9!}ED~4`SW#1CRPl7?W++6+m;OMQlEic8pz3(4E!?S>d`q zskXo_9ld6JSV70h*1w|4t%}UkN`9z#GLbTdNL~l><)l|T4#i?{fV+UBnoUxVp4LI{ zN|ur2tz`cMM+A0!>wn&K23j2B+;I`Gs?^+wlbCr=wxLaGjFw8s<9P}SIJ3HvZ-`vg z<BZg>u#?|gxy#?^(;<R1Q-KlBvBQ%l?tZ)u7$N)xNFz>!&e!<C;2s%PM8{QF!IwZX zL6Z7Nn|Br6<BRWgs>kRj!-8Z|_}RCvk7-vl<F`(_9l5ydo(>)*^2cPRX-YY|%}>zM z;WB~nIa}@G&gm6pk5LQ7|7BerPc843M1XqtwP`q+AL-`dC5$D~sG=v}w6vsFMr@tH zfE%J7O@Kzb2qcgsd%un9k<YAw1xbRVVsp<8immlq7W=!m?yVNsHhnC{kiB48D9b#U zl`A$otCH=13w&25)HHGF&-*wGtpk1yzzt`FvwNILd;MI1k+W?-MRJ&_C!?iKK>mU; z7n>EtpdI6Ye?11yNwS^Eiw_iGtI*{B$P(#_mT#M({#FmyYzaJg`uu|W=j@s(<L=P4 zzMCuBYaQ8TL{{9iskpbQ_4lmK^|L_V2kQi_*8J&i=uy3?9$pV(hU$f+1JC<Hn|t{m z<6}VO*20@7g_&=cy%&Qi2Da!~7bu<t!4pgPZF%iKoP6u9+j(N4h<DXAp6<LeJ#10H z){HgDSv|?<PFrXk(T`4hW0C&<^L<1(kwtQ|?y}tUQ$&juN>BEr(U|*=TC{4Mrj?mw z$7fdh&`jcOh0k%9#VD<)@2=2g1UX#;wgA>7{vqw&7ouEhg|UP7CCgnZig}S=_`sWq zP-_Yg2M3Q-d}*cV)&sho@_r+#pzS|&QNKAi;DoMzxNOmG!0n$Xbb#NC?i`Z<#)APc zKacNcU5()!SZ`0~n<=U6?X;~PFZP*x6PWCVZ?8q}Q>qMXu?E^3dTq8;IsTi}Uhu@0 z2w;NguFqM-Al)xtIlZC!IKqOI-(XOyr41AB7u>KMv&nINGl=y3{CAN+@oQu#9=`v! z%<utq013?`>Q-k{U9Zpw_8XOJdBtbT(he9Y*ey3nl-=o-I64`JePlKb|5V}H))tLT z6V#nflV&SgqkO97I74JO-`<#%35U*u6^HrsNqH1pHA-c?BJr+6FRi}p=1`3DIY*;& z%RGw;|E*tinSw`7R?{^hQ-5ER@<e;V?Pz)VNpic}z2QrT)<Mjuf&pS`Po1?8=I?jm ziOJvG&+g<qr2|}xnNpOZ!}#x8Nq<P&QrH&`T4c7ljq(^Afvq>3Pa;LnDF|kEmDQO0 zF2btxM&?r4*)fo_%&&0ncORy0big!vW4Q*CnSxZ&!zft#6Mef%h5vz&JQ@1zfv?{V z?%`3QfK;jL*a{hM|C!ClW$Kc#xtFosqe;1z>ogC`UF1bQ7A42K(QI_#?cP$IFb^cQ z(!*spuDlci)DLjj*snX*&#_|Lc(&fjZflk)OY8n2^W9>{1y4w1v+E$$$MrE0!uKq) zob3)nqMzp5-D9nyzAppUC(9y$!e>sXf8`m9d5jZoh~;$_IpFV<?b2#$irB$yY_HxL z0o{NevJ^{fFdwp8hB<PPruOa`AN5ihN365DGkcc^9v|2iCpD)TD!jEiY;vUbFoBQ^ z+VU0k3xyZwtvs>Z0hlW&luL{cXH8Rpr0-edhI6#m$>jF+14Z|c5jDWM*VvBCAEIZ& zgVoI;Hh`LGC%>ZN?HaTHfs8cSB#}b(Se<?9LdlH#_N|YTM9tsbC|KQ3r|l<HUU6(G z_0cBwg6S*!UqlVdS4*w{lTfz!(z4S<bN&eX^!S%Gf_ox=3rfBx?1U8$8^_PTP=Rc0 zoLt`?zG$NhC?!vQZuN{TdhH86z+B1|zxfF`Cq6-!F>Kq1oEDZbCdny#OtVL|ZW{mW zxyQ{n?mB0hLLf!{RyH<gA;`aOAVgWpg2T!-ELoJ|_%3BKb}6GI8iv%YH0QS;3(!_V zi^C)7)c!E_u$%K5f4GC7UX|Wr4t%&FjklOa_)N)gn?XgXzTOC&h%4DHO6*y1EqYcl zJVg_1^=+q0j;hNkBnQ1e7t88ownYW&r;_ifwxP4542UG|KQ{++5Pw^caAIS!+7j~D zu=1yws;PAR&!G1|&DUDaV0?cT24dPR82IR$!Wt-S<eu~Bj=jo8BYM1+nf$r!Oz~!{ zM0)#b*+fP|uCMTlAw*Z+&gfP{bdf2#VMO7TpAxiQ-Wrs`Fr8B#H&`Km8F%H`q(X*H zb))I9uc?;D*-X6>eW$%%nW4|b1*?9GqG7f|K+&A%ILGW*zOyarBPLewSAh-=gvnsI z0=VeES%Q27WvPVzIY^;)qGkH%#!Hw7s`dRbBM-F{HFcyHp7|S)pSFEtF6eKnq1Am_ zjdnyKN`3umBu^`yKfu#~aXg(65myL%V$$-^)-geG+{*iJ8OQI@p6hon-JRTZa3#=? z;JPl#!on#K##Tw}`r`9xFSh`3w9e<|J9XPa@doeecYgb8opEk8to_%<4kL+R${P#0 zrD|oa{sq%nH{Y1&%!C8YaZf3EX_22L`lD^ICvA2?@<~#;vrI&sw*o=_57f)h6KM#y z`67yM=SF|uQ&u>hAtAGCj3beOH<1MmMOkkGByN|6EuT^Z<AG=T1K&_}!9xjEN_kgx z9+8R7?}RZ3C2y=>R<jO;+cWUV+r+Z#Xan_eIQq|^^jd?9H%XxLN#7A1?tZcjc$d`% zWZ;g_0-y6s?pK~&^en9s`A<^_;)~FS_>|JJMfp203-n|nSY8p!7i+eek#{Wq$x)B2 znp(aWGZtU7?i}@`CL@NF7?W+vq*Yt~96vF@U_2c=oF}~*l`~hLmSxsyHo|KGBaTu4 zo%NtM%doIX@{8;I;6J@q(fcGJsRgq4PfO#?ZFl`R1{eu>&MF@-ht7^r7JE*$OJPUA zEakCb`*o?~hc-Kpqg;2=OGnu;v(4e2nj0epm|PS7Q>Zmkk0e|s15tK4A^Q7lKzZp{ z9%cMs$hC3Nn&wRX$yRZ{ey*1<WeUWC#MG+&uW>gcHE(&+kHWnE{z#Q+z)-4IsPM`s zCFjv#>uG277*nM7<}EOQS`hyLb~GG|V#?lZ`RhpjwCKaXNkHGz$3&I=C=72m#nxfy z`RY3d-rql}{)#qZd%SeFCwJzy7bp`sl2O!eBHyG2rlEo)B#7-q%<+*2#+8F?90Ogi z&QbWC5sA0zwSwf)#)3n|z2H+$#=)p$4|+pP0fgl#Wg&WMbW9b0kDltd$GUN9D3)tw zy-G&1REN&mAyWXdLQlj;`9wbhr~o6T18Sv?255%tu@Y}5G#h99x0k?4Z^%kU6O{o= z{nc{hI12C_K1y&u!>$eJ=VVw!jk2`=b-}UZ3ikCC<(7;9m_L;0vL6shzdHH81{KX0 zEjKIuB2^hh-ucVjyLwy&vPPDetNy02qndMYntEUbWo(WK1Q{t#Xsya@_^>w_&9L?< z_)B@s-wpVX+QDQ_U{D$>*?H>F`Jy519&A~y7U%2j;wcWtAMCMuQr)Y_wO2y_YXPhz z?UX|+!|Cl+>xrdIGjRbol((PAF73C`HdYrMXq;Ws#ix~z#^Nz#Pa->V0^C_k5zGP} zL4dqnvcBRs#Fs{3c82IP<4G4K;by)ox=xblQCD+|yP-AhhTWR%DkQTbXHQ%GOTHDd zq-(n`+_|n7`2o);n#^o02w2dKnE<vFBJ#k~*lX6HBt7g~+27+ueg(&59l+IL@&Ecn zDPfP#vG!FpD6FPw7HnDW;Pw=a3P9lE*->I=&GdY4B5O#F)W-0jj7!6A=5esk8xkJc z_SpEGLg$>LC@)P;I7eyf;ndU0LyJ!bE5437X@9PAwo+o0syWiqK?fsv02^g&L?H{d zDq{BL0D7p-*PXJUuF>!iX5r2D-C}*zXlil`<Avfb+y32r&waC^WTD=v!TFyEVS786 z&o^49oT~W^E8gsdZ1V_shkyC4AeY)*O1@TRDOoEU;-48M+~TWtPyq)2!l?1tv$hDc z*$1fa=Xtjj+@sHwq{TY>pes8#dhT11q0$D;ni*TuWe+GB9w(-2o<9C9`@A9hDU-F- zjU7GR1Rt!F*LlOfesxE(rF5{N(ZoO8i?CKBwbpRQ@6fZic^S;34G{bXkSe`H`wY+p znD$t`GTA_=5yJt(Y+HUtKD6Rmgd3!}2#3bVban@)ruV@%t&5IkzSj9)pGFC`ddf{q zGXKG73R!|5&H;JwR)Fw#X*{r^vKM{oH={izbdjHQyDhp&@pziRQ-P?%A@AeFg^+9* z&kXuMOofK~FSdH(-r$5T1Upcg7Y^8j`dN(47QeIb<F|BJLZ6u|5{=q_gU!OEJJky& z|IXU*EBamGvZnQT4Z~pbag)QHk;RJoXHcS9&xrSKa1%xyDQ;ol@?7%x%tIFXRuz1g z5}YrY6&&-z2)Cx7ZggF*MBgUXg+(HPr@2tF`)A61a3H#yheJb`Mfp6rC2Ba!Gj1_d zyElUKx%21sJM#?M<K-6BIzzc&|J@M_4X>@LgCtlIO5eWH_aAJww4i({7d^#UpD~vW z(iaQ9)f^_<p>M!JCpZ~YUfjI-l)|jQVRJ@F#t}B55lGNPa8gQCQ-u(*v@-{VlhfYu z0JqC$*id8;B}Dj8E`Zh;vlUWDk6-<Ko;SxOL_*yUWDHH9qtPDsa$Vju*x4*h8<c4O z&V?+{#`Y{)@5bmI#UwMY#~n{rNucGb-xlr~+n6&BX9XbMHNRPi()|bjCc}s>6m8l8 z$GJZY@TDMMC43skqTEPmnb4-9ET8Y3kJECD)1k%@)AZIzFElU$h(sNkqYZZwdzs&< z(#HlXcP{=^L|mp7`e~=2PA7i&Q5si4E8b^){1^o2eA`p(W}&i$yAb0zeAIG&U)_Rm zUCzkgBU7@8`aaJDww6<EGvva3s3RbpsNaN8d7w*I!Q*+>Y&#>d(Fbvo$Xi!uXb`q@ z0N;c0CXAWL(BWxx^<4|>EB~cIh><aT-i`p)m)ZI#@`L>txD!3LASe3z{vBm_uUXg5 zeEBjG4l}I8gs0||Dk;zNsJ9X>q#EL7s~$0<(k~((sLe6Qg?-;j;A)@xGsW+;@8aUy z6MzrliPnLa@;Eg9I&3ASqrO{n9@hGj`+B#}ZaadfoMFS?gln}ZCJQ@WqeP=ex5Lbf z{SD*rep;PdQFHJjc{B#E9f(d;_+Fevh_uq2tDIV6H;r7-&k+pX5WT3X{;y@wlDONF zgaUSwCW>G)=+!)2k7rehVbYpH`rBPc`TDGe+f2rw4LRkr99E%qsntxPj;@;z^I1;- z4&vtM-BIuF92>;W5?JV|lDpY0=1Um(?Zo1Z^&|hUi~VY;*!Bi_4jUt%41<Tgjh=J# z@;YSYsf*(}3fw1o<?|GQ)?Q!rfz}T`tbFn+*D%*o&WHIp3sZ|3nLUc3S{{1V%a|t^ z{9?a@kbqx$-H=Dc=`z5S5NWhfW~8-Q?fGB%4am^nVKZrFKJe-0*&wzLyp%$roWz!n zy<yV>-7T)VYi1b9kM|#cDRXOy7~Wdxy#KcG!$w2NuBea9f(KFQtsPkPr(V7A_ktF1 z%82=I+>}KUeU$#@2%~9d2#S94E-|J`H`8)PyA)Uvc9H|f1aud1zq2EKD?oWOqnzX7 znP_h|f7|m^L{WWD(nIFWTO3NQk5+yjRR(ARL!FD93EmO`ouZB3A?KT@i(=f6-G3RI z+aW|vXfKKIQkjN*K%R(2EXQ0vYU+#R4rIHx$fSEN5(C>S<nt|zI-|bF|GJ1jcBzny zNB6$_%|v;wd4efcbD6=D@qAtB6S+TtdtQrAn!pew*jTB+#2BnV`4uZVYzhBhW0q6` z%P{EE<b9&MPd_I&#&5o|xM4bx#}tNpU$ocbIa3_^4Z1pcy<#&=)q{I^5}FlR7qfw* z2`$5prTe}|425FoAL`pz{fi+6WVH6So@*Y3ux+~{3`W-BPtHgiX%385SkcQ9LR#Lj z;=6!!(BW+aM?Og(wLWprYI^}^gZa|fYW(3+SeMWpV^Ap40a;R!*tonbQNg%vI=@fa zkCQzul~T_~H>Q=0{T?K_>H9(5U^pIRWA)s==XuA_!`qilVM#x(^bA(0U|5Swq~H;B zK0LZpi^V0s#M9}Ya25X4GCEV`fdv#_zPXm@<{8lp%y%y);c1;veL*drTkX8B<FYBw zG5Yl6AjE)nAog$+^<LLp!;9+JJ~WzRdelW>BeG^(*@AMc?Sv7mROZDYNzukv|1kX- z>>>ecoP2WhY{9-_=k-k4<EY46{zGl)2tAiUavhRVN%>zsGaE4XAt1r7@}E4om7WB5 zKg0WtekOhp#ulm5Wx|5nPs{2pE>qGErq7kHmSWER5KH|bB>VbXV#CAvzefOS$Z?sh z$oVoMWz=Vq2JqgW%^AhpdXNvojy;P4B5Ke3O@6X3%YEI1Y)5*n2*}YVHDA6_IqJsH z=u=ByXmt)Pcnm#I!BaFx=JAhPfxjS;vpxTzfP}UBs0LkAl!+GU<r5VGoC3>eTqbQ5 z(47pPER>;ap}-pn+Ycls!>4une(XpNfNGA|;1zN5o+2`2w823^s>>+^YecRt=;kH! zgdivORo?2%Xet^h8My1=Zf4<PIKn_S+%om!SJ~$1nz+}Zg~@qw8?@V?;lEnxj3k<~ z(?=H~%H&A$qaAy~W?mV?js~>3|L&XDyW1aTp31I3vZ(^JpJbKokXoS{%ejbC)Iy@C zPxqz=({|{-4C*!a%Ta6jCy#vCVI|S0=WbyDS??Hy>Z2B#6OUyt4@6^QzY9rm`cPp_ z!5T;%aDuOPrWIQedI`ta?8bHJwkI6Z>@@*wdtrq5w>UriN;KDVTzLB_{NeL$U3<Bt zeUb=Ri+$C?hK|;A<)Md)v7{X+8$|OLv{W@p#*nAII8Vd2b~Lc-(F!-m%Ae{X+D|X{ zQ~Z!wTw40HgnM7>8msUdbirK(75u~2zF#9_4=a_WANkzSX<3p9*6e0HOBFiA*$H~( zyc{X&G$FSTY-a)<@Cp1nvffIxP0=kdsJ8!aJ7ZD!{^NzU9YjS}VD}*_SNazbq0M3# z>^(^ifHdZt?Pr2HT`CBoJLg+d;m{ikU1glx#c+WVVVTL8KE%Q4mbw;AFo;+DH4Fc~ zymX*@hGqYARhCMLU$E}{zE^W8kAKkmZV~FUc<`rCZJkxFV(7GX-rT>vTPxL|Vns1k z`athrb4rfqgMGhUp+WCzS$yMN92kSSN_t%xJYm-I6!8`2sBkfPAKOhi9b1k=<kelW zu7by*=5K$7#g$_Vx?eQG*5YHPPpLOm{B>!j!$JzmTw5VO_sTqBHfIjU3_v`(s`0;N zL?k8r7%~od`{(^S#1%4x>zIJyd)wc@Xm-J0$Vmq&W0Z3Md=tf<5h`s%%`M^`JU*Lw z$<I|<>}*d`ER=)q^4Nigi$$|MT_2PA3#cxN<G`O8i8AtUYZ1Mo;KC|v7}fWtw2E0Q z!f!PkQ`P=ShZYZqnw)Zd2djKa&QTC)`KQMQe@*6qgReiIPOCkFnc4|nI0PkL--j;B z@!Y_Ei6v?;yXQiXZk<nND%=)odraRp%)Hfkx-~fM=AWdXLST+?O&QIR*v=h%Uco~| zOnf@|+vr=_sChaJAMMZ?n^5ruC78~IY#Nh?U<4CC$~DTzl?bne@c2LC(zI83HIE%+ zBC&!j`A1bot$*jWEE1b5RCvBUQU1y0t=Qx**ro8h$t`x?dPbiuDCI-hrefpBy)<cz zuKX!`h~wTYYNvY6B+@f9>Mh#-s{$-Wd=07#N62f>cpK%;vRfnGIu=eWmJG{hQ6@k{ zRG$elVs#JghnTlcADtQ0fagK&h7;ml_@|Jbusat&L_;^~opSql0HdV)&MhoGg&8ds z9z%Md#rxcrMO?ox48I22b6s=ZL<1!JkLx4?M;&XLcJ@vrd<os6=o-<MAp`duthwJ# z)p({b4Kaf5`Ng<_#g0?s0TRQWoZ~rz9p<yHSqLC-_itnc28@=}+kCAEMp$W{`d;t$ z%c<=waxi8^B_D<oO*O71naDy0;`P%>^Gu(<G50^{&}r5Q2l2yDlEQYDO8b~9ATfQj zGDi~n(}*S2)7@sm?zrK}OlBGaxV*K9SxdH<za!-<-VsBZ<<kM4OJG@0oIi+;ijJ4d zD`~zonZLZP&aLPXJ(h0lbv0YV$x1>{4GKg~seoHx@0}+me|)_NIcM-UZ&}LURdk+A zaI8R8n^p6;x4P+m33YL?lqYU@5d6ombiYq(&~$}z9Ofz-Ewc0ll*~0C0(0D$M2?>V z0?5c18J<}nx^ABF89<a?7Z6gQ7Q2!o#Mb%Jx;-oKfgD9dF)*Ze%+q`9xj0$x{<d+C z@^l>0m&{e|F>svh-RZ2{$CkSa@;CF@7~^l(UbE@suxUC;-85n@&lH5gN}}S_p`eBF zD~<=V`a>i+oG<X@@-z}i*cxPAf;B+#uTR}xGhyNZEb(6W@{5(a>CLZ9;yp2w1`lS` zWyp#_*{`~;XM`sy+XB26HVv51#qhRlw<mv+n-3OWydmc+KD55YwhI-0i^-sypK99R z-P_&84|{nyH=H=m6*;%$H5`b@d6vMgs&?0$0}y^oBe&)lvjWTga517DV3qT}3DITg z7{F`f>xti;wN>$Nma-|Wi$?_gwql+8^BYYO1r0G$XX*=t?7(k!)0I_I40F(L$Y%G# ziA#IuB#||kNkbR5+IOahuC5!FPs*byRq`^DrQb0KET}@mQ<L4}>iS23eWhBl$vwyA zKAEu=196frX-t|$j8@cIEUj%ns6i!=GFGab>Fn$5T602o&amG*pDqs#vDkiKT>}4p zL58*?=k*u_6Bc`5Zt%ip_NroU2Y8ws@WT(IxG>#xI=Qx+hcMsDy!Zp1`z;peeAxa* zVJj@XVRzlDF|T2d_r#OyA~D8YO!-9bBsK7|Zda@2V(sg6dd+D9nOr6omsb_($hDJH zqe52r((P?@k(TY@wsEQtN7|uG-8(sBW2Ru(WeUtp7o42d`fb72eAKu;l_sixF6?f4 zho~5h=%73IQ&*Cn-vS#lM$~J69&vCyw;m93w=)vvYbvO9{Xxb#t?NqGiAD|^{ZT`I z|5irE+hg-<@uTi_*%%UZv?}O8{aTi~uu3U4&qa$xdj{XwJ6&wA(}bXlcjGXMcczwo ztd~@O#6oLD-ocn1bJ@>@acW*!->nl<MwwkAYl?Z=co@jm<Wy>!-5@6!h?W`UqfJCZ z%{=tFq6x(CH^iJ{V?3_5xGvH$ne<DJ-Rt)nt1=|zP~tOAv|&M2Df|*PrMwHXMqcal z7p&OOhYFA(1!i^I(%kchaU4$e?7@>sV?FutSMlv$06Jnld#L09-v+?>d~ys*HduF& zu^Gd6Dq#a(sv}*fYVJNJ{a~M^vc;ZT6dA{FYSq2G|MFuq*Q=N+p<Z0B^2Yl}M0x*^ z%&h;NcTA+8!sF;FXZ3rK=?hTmgCQ&%i3~{y878h`J<!>#+22RMqaGVf8~r+Dx9c*) zYrd{vuk&)v*L_FrGTb<PqVc1b|JH&bvjK{POsNMd&I%HY*0DIFyZUn-Ixk8B^ZoD< zgPvf2Y{71WSo4|0UE-l${@SzPt&{myQVVL<v#|{?(ZCwN^TQaAn&zE}U8bwwfh~TU zQ_fz4=bO;<V)R(UZaw5MA=zB)V0$I6Ps(WpTItSC`S*Dm8!e}gxQZ-uPo0Oz0;@*4 z8Hq8*BG6iY`qP9fw@;&KYuc6Sz!`-I4KLAeyp{AsbEw5LT_g@GzP2J{wDLvBwEC=i zt!oLwJ8D!f&ZRZk@lBK%?x$n4;d;r+2&}mR998^QM(9|~!QRmfGPm(v{GbW-+8oKF zA$$y$P!ju^=d5cy?@JlWh!IzGn<~ryd_%=1yUj9D5K`O+ZQAM9Gz&~76dqzXy{RFY zaW`>s$<2`w=Rb6@m<nIIi@XyrF8msuXW(g!$`p){>g;TdaqM{52jLGMiUJC_>eU43 zAe+kfTFM~jryHDm=Kk1@UE8bUER0jr%EYdI%jHxQaeFUAhURfpKLDT232InSA;A^< zaBIcYiSt{x`IzYOOV$?c8v5WzoV5s`R#PpV^=d2X+(uV=KZd6MtiGe`&TYf<^EOA> z0=iFm^()#ftSE}VJXq~JYMaa-Rmg4aX3cGT|FHgoqR%On&e`uN-3SJ&MNW$PbF|NH z{|SWn8Im#Ml$v;E*cC9+;2@WFZ=0Q@S(@%-kL|>85L;arc$I3<`@|O#N9f9GwdzCv z^h1GXr(mbaDr2x?#w?7v&%sxakV;7#U}0NhPoori$fjG$(WEe}=3}EP{%JnzY&;9y zOc?QMKwP2gI?A2<Tzj^FGZ&ZiU97xf6Y+r3%yROLt)=<^v<?fgIm72~OMJvf2?53# zLX@qFzPXt-VZ%q1t?HKM<Qr#E@3YM6GXG3<87bT=Pw$6R+X!ax31n;<tRztzvXN|$ zCmDN(V=)1h7%8kr6KGcd>Aj&B%d>MX?KB27`WDJ7z*X-NCPbHv(qRv+s^wFCM9e~& zlGTAP4MHq>$ME8fr^IdgMemFL=|f}M4fsj|YD(VH{i%6Xc`-I6Gj0M{(kU1LwaB&S zFd4LVU%=e9z<)LGg{XVCL#QKsUGI!X9TfN&fM?PdE|PXt@L881PEr?6O;5153@%aN zE#IAfh>MDRPVQbKLygaU_wQa<l@>VIN!HDL8Go@CaP2jz$qg!3Syv7xxQ(n$b7h}# zC(2&jlvi}KxHB??&|EL#EJs%8<+dDnJt|l3%P1mtBfH{*S~|wwtsL@njH(~3%l}O+ zM!Pc(Q5|xED&@&EPPufSrxTLac@~d!s-J#^3CJxhvNp}BO|cQpn0xF(YW9>A8k0uL zfZcTqdE}w+&S?js^urIcpQt|y9BAteJkEQHpp@z`sh*MLAqaP>u~+5<Fi;*HI1t}t zXQsPea0KF>bzN`<XG4+usjZ@aRKocWNp3ws%e@?!DFyuXHsR|05+w6vo@3&>$7Y)A zg8V6eaFADhQ4ZEiYRiUytgG;Ky;WDR!NT-I2thki4f*1jH)eF%q0jSynbrVOcc6=o zmD<%)bm_q0l3=lwdAh>iu+i+fR-?q{hzenMXTa5ZQbzZHEb~fgG9Bjs4gs#C_1Wr| zq2F^CDo~4)j;oC&os9Yz!4tc53M<Fx{X2iFQDyHp-`B1y9FO{jSCAfm%iVd^39-J& zMhs%<*}DzY%HJ!yRs|FpH7?y!5!s<5u1#+7%8_DSKirRQc?XL2f5u;5lhmD9RVaM< zVvZD$ZP48%!6&KE>BZa5a%H??7d&+D0gL9%_{B8g2mwWtVx48f`i)G#;@ua|cw)v4 zlFU$5iJvZ`Y#eS2{$_f}vpU-rG9-9CAvWNeE3lf8JuY*Dwa(Lt@Sd_i>ao1}W=&o` zJz$ZO_^F@vm&k+ho&h<MiLfKR5{WZw)#gy1U!j{oBS!hCO_~Nz8}TYS_mxPrkYsGY za_PibPm~ecN@ctHJ^j7*7F_Nesmjsglf(srruvS5*n){}NN2h({y|GgCNp+JRC#9Z zr0m2~40brfPmDT@AhgQC1df(UQ}%B-s>_*hxp+LJD`V<5VPu6pJ-%L})meV#<~WyP z>p4E1gedx9KJ6$uo%Q;55R4t=;AF@s(hmv>2+2Ew^jFXY+;6>d&00;fn6~vAl1Dxk zz}&ZDR%A1AwCdafi=;DBnsqHuzKpwP!OrxxVs>fn;TRZrwmMc<YYYxVq(;_h-!rF< zDBCEY28z5RF|HAuDe*B=_=f*Mo&Q6?+Jg{K@vL?1K#^vn3`_#vEExw_P*Sp2^I^Uz zQSWr+U8EEm`pry-55T1^yM^%PH}VF*+pb0(ygJEsTx}L6d}+BX+dUWrzIngne?dx% zp~{DENp7kIT3uQFEL`w%?8C`TAr_L*TfllIi9yzoTr&O10V92g<vlhIWBkU)6&<6Z zlcGQmGIj6bnQ&c2F*WY=dI5*S#H5pQ6D>?T&$E+}<Z$yAtK8OzBQ2z5&)$Kit7Ed> zVEv%s69bkem_vb>ouVwKR)DA}w{;s8$#?bOm*lFuEJN~lc2VjGkszcAcJY?p+2i1Y zXW0X3OY~1!v@9g^nKe-)-_KQ2n(-og%iNZ8+B#bk<UeVn-?<a)jQy<pg}kbYH-D=n zF<BL>C_KWZL8rH%PET?jyavPP=jL2bIOZxWb^`gFL@&lpJnGJ?xqSxkKIjduEgS*Y z-g_knca`65I+<@mW8*ds{T)RNt+wAfs?aL$;$rwIHe9=?<W71fea}lAd+C&qt+wcP z^Jqg4BphT7xoFP;KME5U`D6F<HQep6V1h%FQ~QwNsU%g{B$t)z#N}jMT}oQyPUWb( z6F7Y|5s%;|cBUBrzLicE;+~Yi&o9zInHTqnC*I;#WZA8ojOw_zFGnUjtAGd~@fJp< z@g#A4#nnQw6t-hLf2I}$O{Ss4l$Z<gk-%(l>VjT27da5euvO?!9c;Ikd$Lkk7$ZaK z?uvxt23(8u_%bUX+i&-q$2AWzwrxgtz>`Lf>$L#$SXMwX*%NQXXed=VWJ#~oJ4bYB zgIlN$NJCUE+8tEc4>Td&dj5P`VG=fR`fS(-#|#+o-`0fzKB1r7aWJ+ytjJICHCOF5 zu8tn)nQlb{b(6;&nc;P|+x2GjRw|LORS&izvZ9%-ord#2H=Ynxor*lT)%y{kkDEH0 z+XxxC&L!^8d&CJoxJjgQ>-XN>(q<0Bi{du5d(h3GZH0Wnon(R1zJojXqJcBDR@Uk2 z=q`hd!rZ!YQ0K>qF^`|X%MYQ-<3nTqbaT0C(SX|;CotUnF4oH6vcLg5q2PSEG1N`i z@!)npJLt^_NPci`3yiYu;xT?g_+DN1KA!9@;*<Thhj*&m1oAC)Uc0EFDC+EvF;f$* zkL1;`32vks!5rQy?B8+4f{Aw$-#ajf<b%9Tr(w?Z`zdJ^m1RsYMz(-kJa(BYbn(+H zYDhO>rG?2(^s}zsKVH>8x4uZdBxw5hR@{Tds0#`%{HQ5ic1XlUl{jm+<rFro)+3#% zqCl0K?d$Xx)xc;vVo0#?ad(HT)6S!Ti(r1`c6umxV?N*+9c2)^tlS?&g_X#ZNM{;w zwFwjKm2ti@mfW-ax<u~Ezv}x>l?zdgeHu~r1=wQ6$C8TahpMqh6oaEk_iq2?j1`k& zh|e`LWz&ZAw7PNT9eqgG_cvmK%I2Y|!e#vtg@;G-Gjx0_e@~1wsN^95QK8C;N!*ly zOtSQk_z~dPu!m(1HLJ!J(K3v|(fWxTp)#A!xp(u*i{|Z<p{9eHt)A0{W*;wER14hW z@W?q^fuh_TL?KLi^;>*b^WmLv?R50_{Y_3Vg!S3Ei<A7l&5i#@({;yF_5c5dLNbc7 zNeE?>J?|}w%quE;g{X^b@9Tz8S=q_BAuHo%XI-So-mYw2`<mC~y8CxO-^b(k&-v#( z&f`4JdY{+p`Ff5<4G{7Rq3W1*ze<A45`|nk`f3a#+NCCloXWmhnzfC86L1EEk?w6! zN}{pRRtH;5tj)c&kJ|F9&Vr0<yA1SZ{-|BNEQ-N7sdf0RM=gDY`tRg6mOfFT4%}Pr z@FYV6&2wh5Ja^fxkR823aRR?DL9cjou6~~}`p2c`8dGf{5{dG>qU`FE;=ud`x3j93 zU3o5C)c56;??OBiJd?=CyB~FY8y*5rIo>RF22(KA!bmV0w{)7x--<%gtnmww_E{*Y zk6!M>2r+x*z=)Et^??!lwIR2vZVA!Hz$#BuZQw?Z7qXl^H4l6BKGMGsv5oqt9h?|} zp64;dsn2H)TAjAIy9LVx(6gW`{=_S-v=qN$`pEy_<3kH<N+EyAlNnf5+qUwmKLp(w zTzl64GJ@!dR#`jN6hK?d#_mj*M)U;oZCq!%R>sNXaP6r7a<u2q?F$x9f!_?n<+09} zoc<iDev8~m;pGX*YP_Hw#z46I@z#>FZr(gggy!Lv`RprTZ#kA09L_guF%!<w34!F3 z{v9o_0)vkV$TCe!^9zBfKA<XfS)-Ma-WRn(w2rFwCOQuPVgM3?`P0+Jn`-~=QkTPk zGjkq9ptcUtUBBb5zW1j(LJGvFTJ5-bajtXt?26+n!H;Qm`GX-IXn|}kFj^Th{i9}2 z-K3u3fk(0NC%dg(PQ#=4rD7>(o%2=BCW}<3tk;0P?V4f{Ab3zutLmP#gI4M9Lm^Vb zkMNiTN7Hk+b}D(I4)$#K{`t(NuD9vsC~s`-O#N`?`g!#B(2AEut(+Aernl6qD=%wu zQEfcJ0L!q+O&x~sdqGJyDzsz?c;QK?CH2s4vyF(wtM{%!!YfF#`@q?Sh<(om5Ty#f z1HcXdrzsUM9HfQ2BVx^2az*2!<}L~V+rajLLnOixgiryff6)+=NpBy<C!qy)NixK4 zFH^&7QIl7+^zQIIW#!;e)WKb#{#t`(ORiUayk-DZ8*?+y892;oG99Iqaf7Bg?B<a} zh?kbO+E`^yRHX~l1THNdd`9JFov_H|IJkA`$-mT7ldD#6FubSwP$QhZ-O1-2HIC>W zX&PhnN|SWm_8Dc<OZ3mZmsi-(w=ZmL@+>Ln0J4O1YBs9*2%>Zmqj&B=skXq^@l$rz zt~*Rm)<YU(1L!X?8g|^h;6R4ZwDAY~;l-qJh*s`vI|mN`hJ!>Fn*Y;L+|Qz=oy8;c z{uXtehK2ig(Aa5TT5$;BIaM{%rKkjvtr$Z&e@GZ!u;QY&`w~uf*)Ps<L+ma#U3qI- zxW(_N{<84;uja|V9zi!{;$S<bJm>kbX7Ro=zzy2d6##<s9?gQ!8e^ZJ!v{}|R)&5! zHY(ej6BmO7kHjBcRL$uV<#%!Sn70BIr@fx|Hxuo2^eX%?Ec4%G{`$b;x_Vmq?w}Ou z8Rok)>9uW-`4Ml2;##jSa;tG}@dQu$)J$1z;#z8%rzPJeZNr;1e;&`iSGelzo!Jw& zA3pX$K8#A(P|>zm=W=_cX&5a2hMrV7pzCBRv?rx@X(YGNzvc?ZXd9J?$yt!<&u%jc z8Tot#tDyk?<I~Nm;(`11AC{mt!9Nb7Zuhpr2_RStX%G@#9kvICQ00VnmqP!2U6l%T zTu=LdFM!8O(rskyK+evb$tKHZ`w(iz-k}^|47!7W)`tx+FFBAVi^Aq6Z%FjS#09l& z>@KiFm*ZNvk;rPnH(kaOl)H<FT=K~qWWUdn-rlYdX&${`K|28R3mu^Qc&(mq2<`{> zuFtl2&#R&F|ADd5N3Vsf$E_x!Pm%Qe0OfH0J8?tAzk_4ULVIYAmlQieToj9{9_XhH zttO7;kDxK9^Y_dI2y1SVtD`@6Hk7zkis-*$^?f*T!ny`9S%98Lp@W2Z>$}iHpST^u zebR!Y(UpX|Lg=fNRVkyjdn?`veZhZu-wR0|^W>wC1UdJEFXxlL%a1Oqz!6K{=J-4n zkF7?e^$o>09KRiFtb#9_+^R#UpEUzKjT7O$jVWpZ3q9JPgc-<b#P*oq=}@C^$Rlbz z{FK*6=k@Huefb9Y<EA3rbkE6NCUM0D3AZVI?u|J^2$Z&CpS@?oW}>Af5^`0HiMS&H zK(&*9X0#>b3f+iPmh@6fDV2xfe=)ICdTFXLu$*g16o7BCcZi2l$2MBoX>r2a_Ry`? zg$aj<5|5TyCA~KZsvX4s3W*LdF&IDNChU+1(7yYo^^ngwI|9cIoT0SBuzh>Q8`aCP z?7<nK2|kH_Y<{Oj<$IRnx7bADKG~~&wHHEHAue~Ea_#W)_i~N&Tt1J&F0>ANRbZr; zq3Sj4(aY}vLX!)z`{@8sYm!eFbHp_3#vt!YsA{fqhdI%0pW!@|%wIuHpRih;JH<R4 z9z3+_`Z@FGmu!Ub-8U%#Z>ITh+Cf8ghqWxJA&Q`tYqVAWav7Vnk<{y?m=PVu2f?2> znc4|L5Bs34`7!seJ1@L*ymuq+x-2Dx=;WqH8#faz(K_ot?2Hf1?e%4cv}L~U=0#?` zFdYY@SkE$9T0k9mu{k#o-INs|)dk-lPf1ckJDQ8=-|rMz8<lsd7Kc9WYprT+CvET3 z)z80a>)b7+NURYa*NwTTLv;@E=e5$N6>r#YM{E|fsvx#JKUu9LABKsuUF^yIDomL| z-(FKjrM&Vi-D3h*$l9$t=91R$l5<bgTBIM`h>!=a$l!;2uG<Mh^L+7A6PcpYlIi1t zetuZJh5Cw-a=+&z({JvH-(X|g8&GnkXov+wbpv|r{%K_)8^<|d{YTs7H5wjld*d6n zLii_3^E}aq^m5!quu|VoW^uF}Uc&Ujz`iPy!2o>H$|3_!%twSQ#jFEnk%YcNsOge| zan#46z1xIg=qm#?r+9@_qLK{ZiFSEfUCZ@vq9MbseEo75>GmFrU>gHbmQN`%F<w&b z(1vK|rQ~_3CPzm=vhkB0mSo+a4yMa$OMrxBl?O{9RE-?eY^6%15nF5EzG{f|R))&i zE*1$y)uoH!l5ehDXBbl()6gxjrxG>?BtQnEs1a-Zj;M1|M5z!sg&Q`%K;y(Crly{$ z_iPOKc<YDm_wMfljz)l4bA20Xp(b{r(i;DG_g9D6p5A*fAkYr>$R()0U!T<ED*~@= z^0umPzZ5J5cKhv`O6(?E;YadP8Gy5{GCURc_#r*QE#K#Q)gPF5Y@(ng`<`xow^<MM zXfqr#Y05gs1EIa)tW9>nkEY3T{JrkNHrwd(`YWf#onf<WadK`LIl$_xBc*9tgFV4= zNc4{ApW@V#(Lye1zBu(K{xftf(b{a8d835{od+o{-YlCu=_h1RkVD;G5cf=suG8U| za!^<a%A%uneirJj2j8n?JQVZ-7O=g^Isx0tyGW6{vG--z2^_ucz@z-Vlc2>#t;0Bw zXH=dADC)q*<Q%-<DOKmmzPtioh#8l2YGXcMdtjlcmqr1860X@m*i8cY!nT?^a&M;% zyPTn2{hMSoYUrP=S-WRcjU*5T7QnPa@B%w+l^x!86F;L1GTwGKEN<)3+1KBv%!GlE z*YW*3haOum>s8TD%O@dSj`fH6mx=}s(r&n#Sj@T#4b>4`9R?9Pw-E~!rEGDwm#$-f z>S2|y4WA01^7whkXeP)h&mK6!?{#-wX|{4cowkfJXVYrVvH)cKwg?u$aKckC2f4)X z59%Y(^+s7k4NFP>+o1LdRXr7%l;nF6iBq;bB(C{hcfrES{G8dB0#R{Dz|6hcf3HTZ z^t*+~ygX+af01gg?~BqeYDG0ZTKgUymmAMgzNA}lp?YW`XbC!GBIdkvjX5pr<n1nH zA4ZFPN$Krn%n$ze-ng-pW3gG#AX)2VCU%dsh({*YhMlg&AueSDr1>cC);q8nh|4Kf z=?>JRo*=D*>LDNmH*$#rXM^_~KP!^}&|L7F!geit0qOoTrH{=Ur+L}TzQc7;xhGo8 z+C{mb4#B7Z`k2~|<9o@Uw*eAXb-9<ex?yY43oH_}%Ss@%?WHrGw^_+fzZe*EP)sIK zc{!lH0YQNJ>$>j1RKze^;=y~Gp`r@MI8?yim%H??$D@mR=o=C1@Nguln0CnBYSBS> zjsIsZ=k+ZUQD3|}sSqB1&%{xpeRlzZ0sL>Zo?W82nd?`Yjm&T|wJ5(ly2O1HF6mb0 zUq9hi-nz~<-S&HIO_~q1-jJLrPbn|8TW?3~h4iru^Cpwj5z?XxbKXXjn!4i)&h@7< z%G)y~JD*8#t*bW0iyR<V;dR*u&$9Ph<ShRXM=!G190vc?+v>FDx6%M3;&FNiV_vtO z*xppcD#EA7Flsy@jJ2h8d=p)4p9~EM+zrwvc>v(zFpLqScD7j50Iw{K6x#3G=stNx z)#o;Y0@s-WY&Vg#-vKKMf6bShGLR(~H+buvc6Xt<3N7gI1%IY1vsURk=S&DwEQHq* z8umEKQBN;`a;gOHI;K4c=R;Y11`zKE|82|JZ%7wUnz9W{)anm>Y^iMGaOKC3()wb_ z+bEsgjBE$y;Vnqo7*&zs`V9_=nDb8%twDfbH~e%EGT;dKrX;noWZ<D3^W8S(4cbm{ zz@Rm3D>08elspZ>YHEd^RLBLfQ^-1bLrFvxCGjER=Lwgz$Dgqz9wO$woaSH37>&BM zCkjLNwjjvU@IXWass9eU5-q?1if4}6d<JS>BqlZGhui+^ZCN5Pc4&YFp!FN;K0AeQ zwY=QPd6ti6LUw>GYC6&1Jc=E<uK!E6@oYyh=yQKZ=(L_8>L!O~U;A;5*p2UvgL2l> zfLsN+o%C7;F|44+bsPO*T)b|-0UIYzdWbX1eG~Y=>J|TSk+km@Hak79!%xSNJ>%(0 z$&C>>_!rY`Q40R}Y;x)bQr+-KUiMQ@fr9~NboYQQXI5D-HTl$by5GuR<0i+sQ!V_w z-?J2)@fqi|8-FH5qh79XsCNxUvjct<I31#N#kx{j`hf?L>>g1<1g>Zu-mdi@Wt=gQ z+^(*^2qC9Cn2dl-TXy=>0$5Y^3%hBz2@|m6sUh~l0oWqX#_bOU$vvr>AD~8$nXZPv zb_xVeSFelfJ_6)Ahp&&9Z#9zQ<2y&w^xn1oH>tG`-x*>}yO)j(!d?@^m@iLcF)*pX zH}9xx_xEx#=;nlVRH)qx9?`<u;_1+jW8j$w8z04el^-FeXgCSL928GN_`}vMV1;3; zG^l@fucrj;f~)!Yo5N3C#(1=tuQEW1DBuL84-)Z8=V%lrPqk+6jvey;^?bGMR&s%G zPWNAXQCC~==xfF5HWPPhAFBqO5S6I*wh4<&58!g^s4l8fG3uwM3K+k((V&#aF|JL& zZjZnKh<k_p`C}ioHI4_=J%Xk;MlHv^HY?!_>8_*fDBs-EyU2q$q4^-*efoEXj1V*r zu>KneM`go3p`8^cd5sP9wIl)<zh%u19bhujm65dhEbw)PljlJaYUIG;68psi<9Fh% zUl^p(-hrC*r<HU6aeGU9peq!w-?wj5rsKN(ud8OdP>{HhxZ*cwb$|7s8VOr;kIVE+ zz2^aj7$pIA#-9@!9b^4Iq12eJt^HsSjRajSzNI<^+a1h5VKWH!*r-eFv;z{W>7(On z%^Jn4T}kW$-qf^8Pf$?oxi6D`CH!KbII^rHM$N&7^RaCN**9oO523m6_h~-C?VE?F zVKwj=BhfY5SK4|6dI2Y4k8&J`?m(jyH50|LmDQoR1k_5QThDBsE^lut@}sJw&(9Yc zJ-GR&5o3BP2szi`p#eTzDRyj|RrI5hqlv)!JJtcM-nQKC&t}bD@*M$!_|2(4KJRqR zAH!OJbT`W6?#4X+*rCZyM=<=W$LVxH&)%U7)3<0zDF69NdHdskcgo}rFZ?N1CmG@D zkjKCA%c482BcABUq4c*Sr!D5&P3jgLs@#zrD`H0ZmqK>YDJl_iPfdISE#j{G2cC(& zo*N#uqoQjjkXD;4g%T!?#+5wHdDaVr)SF|{+Lt2Mhb(Tsyb@A`MN7~I4}MEH>_nVE zXw7@m8eR*kz`4!N*feK0UtB|Wtxf0mPj?K;p0+*t0QJXc`ehTIW~!;c5}pK>*kKG8 z#Jip^Kw3L~FtzP2rondbF)B2l?e)I(_g9Y9ZBmzh88JthEm@6zOcwjW?Y-KhL_c-$ zUKc#f^rZ5k&>tx)e!pSjyIFyd6Yxk7tqVptT4)!J0O5DI;k(F?tszHt2;t{~F(mwA zZndHpp{aeNYJm}W(lr!!g?vjAlushgiX$e`DYRysqgdCU$d|bz#fpYPn?=?R!+FW6 z_O159XZ>6j|BCjtX<%J$YJE#<uG8&5ZmKxS4=6+Uwi|^sD3Pl|O6F#ay9|14u^C9m z<u?U7-=e=v1|%6hlD#T$0gM;F?mDN0AP9z^qiloDWI7uCy(htwp9yrfGdes>y3%14 zX?lJ89@{UB=k>~>#p7Oxz(+Hu<HVxtiZ}o^CE3>eS{2!T`EwMr%G!RS*#aa!^A;$I z;Q=)SJxY_wHnh1LBh(W3rm4O0h27;UR)a)u)7*xS9F``joe$d?M2FWuo)xi8PgeMy zqwef1AGgvQzM&r8uMjtFl<tKjE9o}TCH1i!KaO{s{1Hg<IwS)7_7`Vv+ia#>G3yvl zzl6k67&_>~G|=kBR|is8A8;&e!_xwFU`j%U*FMUxq^X8LkBL|YxegMLhS`GxgJ|pL zuiz=G&;=F;7&2_FISqC@4Ey&Wt0M%fMlZJBc`ThI%_$=m7O8u4EkXI=-`D0wB3enS zK+5DIEdKE{`eXIl{Q@hxBr1G;wF{{3ZqoW3f0yZ3prv6-T5k8*u)=vwgT1Mm=j)Z+ z8Uzogou`|^bALbm;fmN2k#ZjS<OgDW=vDF}^5r>c&n-=gpnQg(BS4UM;uV9=R_m`X zzc^vuEQ{vkuc^~~s0LWm#UY(B9@e)!{m#Z~H#>`BUc`xY9P2L^4c@E?hAt%jyy;>! zvuTOry%T3+bydAzoWM0DDgnx^uLyaZQ*&ev(h3-wxWp3p>W1PPT!o&z{QOoKF>Q(b zb6tr?qth_ZYlykc@NA?UIr>$fj$nd2W|_&r{H;b;29YaZwgn^)iMr9J1W?PO(>612 zdec!|N|pyiZH&`?_$$!Bu0B0t)@mf=nsI)_maP1>4UvG};c2anoAM=|xNOaG|BLf! zoO=EnrL;9Sbw(|mDC~r?5C#l&2pZ|#Z{EYCFOhrtXcZx+ggsCMdSx$L4j6W~G**Gn zUO^dc`FZ&Txk0ooeUVR7X1BE=C$968$8U#s;gh}!4H5tY7s%_JiORSodC5Pgf47Qx z9@?XYzpp44ZMCloh7R(^AN~eu8b>5J(8h#M``3XE6}f3T&H>L!{H$+#-qL0+3WyMT zRFE|UfrdBY`q_^}t#3WW(~H>k_etULl5n~`oC4c}^c?kb!ur2<%~AFp6UmKzAX-j> z49rXgnm)yhbQFnildeD<jqnFS1*=O~G&EW^*WoHu;u7iC)a#!1M4)rL_iHALbL!J3 z&2PT41#goo5^%PwW3AM<^k+lo2RCqI6P^PtUzjYNasA*W*e)N#fATT#9;!_$`VRaj z0(CTrtmnLZZ%^PZ8{qFPjnxMK{>jAoQafUeeywNG+u?`67CBEm)V{7`Ss*-cO%Pe5 z(n=?^;-lX*FE++bis(%<T77W%{<f$gYDXNpKihLEICsE@VayC+WleJVO8xlDk_64< zwNXw!O^FLvs+l)Z?zxI?kp{Trb$~pE)py74moboLE?VEoVG;qrBZyl=`!PTL`WfV+ zgg~*|G>Xn?I(woTK@NHPucYeBW1+6RoP)hTMT7Ml37p}sAum#Di94Ks={46ml3~ZO zw_W{2`;9-eQ*Y{tzT-a?9bp>3@P0pR@o^`Ebh@^~Pgri5)LB#aPo;LLNYxUv_3%qt zk)?;0=U2iETAy#cxapW^b!RR1_rMa_1V5W70q;PPv0e8MnZs%932l#nL%X&%ap?=g z4AQIbBSZ~Xe}+6>pMbak6%Vgj<qkLp`?2NW{P;FDLw{6eI8KZo-uxI~>nFJs`Yzl> zsEW1rXCtE7WScsIhTcs~ihPBf36n<u=A?XjqjCiJ<uE<c7^<_ornjFS(69NxD$knZ zsi=GekdG-*rTwIR)H4A8WcZ2{%`F*lQ`73rmIdJVDm>HdY2nLZ<btigv{!(@tUCMH z^Opq$dhQE0pF;j!;UlsMNARa(R0YlnQ&1Gs!h&m5OdYIb6MlP7lpyAny$xG@r=n-p zb8UVZ>~U8HQyj5mHD?DO>>RQ+SpQ<QQZ+cx(6au7M*lcVZqQxWwn-bmR65Wy3;2BK zQINLz=8jn}?JVge&B9)x3Ps{-@xPvZ#bwkLs(7_cRd1N&UQ`4fc5x_Vc~PIIgGkoJ z{<I)Y#18ul{ZsJ7hvcKr7_XeSKX}iYJzg@UCU9;V-r%0U9ROYwBe-URF=A`en8tJf zaTQ`Scl1;!M9xRDMk}-CrPjgOI5NNUll&XMKU>OQ_pi<DKRiN2WnnS{bsS6YyH|qK zp2}|4wD|RFb9=^D%xm43i0?)})o(vY0ejXP8$^Ua#^@w&DXW~iQ0%Um%ag47G5_TP z`!<H2J2L&!^P0^!Bv-_>ixf-<qvj&}t4s6=YtD$BL-+C}l{K)6$VT0)Gp+3&PZ?yM z>;C&Eo2!?jCEqg?&hFkGb%thY#wO=xtl{<7T`d4~73he>x#>71+v;+9i@CZE=S<7c zDb`pDbHnds<+px|U&rwa{(h44uW~FXDn<R1NR#^o_G5$4v60zwmO6pcp@us3O)*tJ zL8>hncKPg>KyL5$IH|{FUi_uAr}f_zj_>QWd$nxG`Q(B#nU`I>rZVcAdN5qX{JZRG zQvo?gp`h!_rV`jIIfH;+{5OnXHxwseKiCv-AHD)(Ub@>igE>4bu(oE5%sW>A=wh?E z1!RlB25J@Q`@Hp9`g!|E`X*ipzK3c1+*E^=QpBhSkCZkUy3O6(x7pm@U?exB;y_#! zh2J_QQna=!FW24XG}^bH5WNpHZaOb0C0=+?kk}Mzzo!4ar)epfZY4;UNr^u6a{eSt zDKcEpgRP0?z)aezcCFWffWbld-=OdioniG`dOB<te<hq{rfN;6r4UoexufN?YO89S zXtVuHPrtkqR~y#?!O&qJb@WpgBLR><gHAa&k)$3MH;On8#b)IvcDM0nVH&pN)+!oW zvGu+C_bWphHT=?=<sEeN?J!Ch4X`r*c~=d8*-#D!_D>;(z5C2*rvT-58GpYjahv0e zXZJA)+<@~G_%9(B=egXMP|Nd%sWnL#G>G;FVa&jd<{^{FQJ%ZZ&wI8#?i6|Vzi<4` z^lS2~7uVQ)qYl()w}a~(OUvcJeoR5cYN@@H2bRM5dw`P`-%fOX|1X8<#PTzCgr7Hl zXY-e3!q{8ab38{+BW#^2?HsJ4%E!y^-a0x1y!0sBu~&(z=`(=w_Ni61<Ffs}kEvKw zVyIob;RJ=^dErSBAxGt#I-1u)N0Jxow)TG`97x6Gn*;QE5#uuSH$^=-s6!@0{t=?I z9nc>UyEzIY^7=YPiT}OBnLlQcUn@n)Pz-EV9)@bz_gvsd`%XK+>)HlXt>+dvzIzR& zsin$W%$0r13dm`8h4g>X%Tr#m`1tmj6eOj?SM*c048|iT8k&)#6QS*ILEM_~S< zzlGFyuu=WREm(m<HLlqucanKq@_QD2CExROi|4sxzL$-v``;7`xipDtTH^Jd20MMj zT;k|2mEKn;zyy+^#KV@^!Z3%pRyvWo`r=)khmG{cl1cP}6P{(A%ksNi2JEli+YtVX z3=VvkOc_+x_WDe<+N3z&{0;H7qb{C@&jm{nAavLl{O53UA6gW)Dc8{vwlW6sTCkkC z)<A;&qwdAi@L4KE8Tp63YO0rV-&H!VVGBWO_SNQq7;Z(L5UJsX^uSZ^uOmohXB;kj z0q2_=JQ7TFuTF`Bv=uKYxu1+NRre=M&Gg*eDjLI1KYFu}T3Lg&weM~8yzN1VHktN) z1!+`lHT`|}cC@yy1uR=8bdx8lAQe^c{^p386j~=>ARL{Oy4<Dm0%mQU)Y(8Izfj9- zZ%DW~TO6(Ao=!1;Gk5*AbE6E?i=A~<(UleYR5`+*T(t%28L!?qdS?$ko<bIavAEJD z<S(a#$Cex^Z^|x5rHgkU+H2+CZB=l()ge5*@^3KhJrP<L(e>mP_9MMMmSa1YOzA=| zV3wfmVf(#{t*8gI0}$04-=2j;LAM>kiQDGaFV;-^B_JAh2i@KBChVqL!+O)-Qd7A~ zk?WqfWp)pQ^BcMqA~y4&Vl%6wjBYP;kPh+e&e7Ra(m1kb9))@|JkTa_H(>v+oS}!Z zbd{@K-M!W-=~@TO+XczJ(g1%Z`;D*VR8#liVtC*#`PMng?8y+esQH5vk9?U_ueU>9 z0am_4$YT>X#p`=xviR<W2T=*uhkseepCd0ouCQ?ZOOJ~qGQVpf1phQv=^y}8&0tx6 z#Fpc?`};|%notU#++v-^3+d`;LFA~gIrW^RKM&7o!qkvzoVQ^JwC6nFg8OC`^iL4G zLvkzKC{X&*@=?c044vj02j903-iaBatymkll`UxO(^uzF*nuM+LtBujPN}H{=tXM& z4oNn-nZ|}sGSeM6SqnJ#aZ=`$Cri>lRkp4ET6hhZqB_bVgAY!#IJy_$0fiREdExH0 zM@A5L!F4a~y=8kp02VeoErQKd&_FI2IO+J)s|z&8oyC^a)f!-Sg&O)UXc{%jf7Q?3 zuD<0U*&|J#u@zcr8H-ZGJmkkX+Z3KpUFM+O3L&Wq7bZgwv|`q?nchkkNER~PZ~oDk zVPjifB*-`1$A9j_xLNX9?INRsf_agc{1(D)d}At++ILfLPJ0A3UcW}p0*;ruj2(~! zlUj+h%(0WlATE>%kr*Lj3&jmYL^D#0-eLI*mdEs*B}aZZUO19}yj20ZaV)j@`SZUS zoD^?}`#+e?k~s-{EPLzRQuwMb9ztsZ?f{4t!dn2+`;h=d+m9W61L05zwAZE;wl4?! zL88D;85cMmg0Y`(uZ~@5e;8+pN-_6c`?y*D=d6`+4n6aI{5e0WKTk)GYWYDkc`DmF zws*7}2v}_n%uI#LlV2L?P|D(~8_jSG&@WXru~d#krK4^}q?p^$lWlR$SWrN^aUSP! z=~u^Q<pn7yJW%kH#$c<`M}pi@7M92QVCdM)n!7+Sw=#grP9BQ$yGq-%<U}@Y!9U~8 zhB38RfIs1F>W~{q&amBd+5sI3uSYFIxcMN}Wp-sdHC2y5Jb?cou+YO1Gm3qQ2|M6) z`Ih$qI|zEB&hki$ZjVcS|Lx2#+SSxiD2=q#(OgYC-5uucIQ?zh_&ab!3qScxx#Ro+ z+nrKT1DSC0p)l>RBmzqr-l(QCs$(zO*SmQnFvG9s9O<xY)t7_YqHgz$cHJjQe4u9k zYeb<-BA6cN%>gn$!WNknq|meTZHIBS2BuHfLCtJh&TmV7%r0g3V#}@a0aa3;+^h5< z{hw^|j^1~s(e|?U*5`!w08|uU`aj&uDMLbsKIEQj5vElDr=bLuj&Utg--e2=obQ=O zy5G}9e07plC*)E@1Ez|C($m}`?`QWD`?os&xDq8Xcsp<$b&?2GBw|N@8D`_I0oEo2 z13G5)ySkw6tbJNq>BO8K#?xp>I4>xoTeaB6bNZjsk4@BU8T<gWvQat3ygm)sak4`H z&1!PVRay{N91i1GFTEUbYEX>i|6Jt!GlteMg!o3tYiS0vX82yZ6Qa{nxmUX25Z_6E z+54Af=b`w89E(qql}ND}sTi?KCREd#F4UD***p{K%(X8Z$F9xH!)TP8Hj%Xwd)~KO z5+=x#guG58(&+M}*h0ugUe5h@SC`K)l_8G?gIa_`ml@*Hgk4F{5ip{?vE2TWpve5P z_tnu1LV*T;2d;uVory;sSdHH`k#d$CD6wZbWdNo}s--YIUo+9m<#hHlK5Mk_D7#;; z;y<Zvq+tg>7(a`*-;Y=alFIj1mIwy;(~V5n{4Yq-e*k{)n*OM;W&^WF|FU@G+3b&h zZfF%J9ep&)B&1Z-2bJX1kK9U(*j%v2Z#S*R$=<hVuVq)vDj78jBYqzo7<TVBk5xg{ zi1<VNw>~W{n~rL1S1ZLHC<n561q-1e2|co|Rtn7NPTqeG_kWUPJ*zmuzbu`EH9A;^ z3K}<?6cf&bpPungburmi`Y}S_UH1rmf6vk!*E{(z&Y0C@RF=}xfSR0yOBxBz)u1$9 zzgKK#>pIgr<80cclO7-=a6R_S{qG!%_roqir3;3b5nEH9s%t(xqYah}+Sk2z1>7sx zHbg*$LQve8aZY+hRK8}EV?wa}Md#$S$b1|*%VBfzI8vh(5<$VP$3yI!TgUdg-~aqr zAN~7ta^g||jlL`Vq~<{a&n|-;|E=rf$d0A0yGY(Tg0$edB%{E1$!vxUmKLxv-?^|y z^o(&*D1HhAt0Kj89Bs5F(-M<|lHq?wazS9)s7_GOKIN3M5Cj4|#e!jYc)$qkIHrP} znrwzhxzO_j(5}rmsz1hS!T+3l`<2d#0VOW;>9!>Fqp@OxUs7&Kejs)s3-`^7dubcA zv|`~9e4A77b7$#bX~&_P^M^$q!+yL{Y)wRB+>m6zq9xQdc;OmmP*nZktw<ZgLv9f( zbMJb9fS<rj{F@PxUUwO+-C&=UF>m+N=7f2Wpd3LOF4XLBXDm#7w_#IAA+Lz-?HRWR zKCx0RQ6i7Ol#vqBAC;OAp1w0vD9>NNZ0wbvpU!#B+BF|cu$ou1`IV%e5zkLMS6W}b zRW{I-{GjmNh3n@;(9qQsy=p2vuatV4z1P)oK;2shX)UyenlUak<ud);ZCXM)J#d`l z{xn54ZjNJ}r8Di0dX{KFswafAtvhfqIM~-&Ha0y+zQ^GPmwKN9;D}XN%H*<}MDVfv zv^@X0(syUjxL+3V-3ZD)w2*WlM{&n<!YIxQIzZa!I$VU*VGGcAKrU_{n}h84!}s&@ zV41{mKe+%nxfH&Q#LYP%UviBp6|;Q>-8>q*$CrUZai}%FkND~4e>+551qAC?c26-5 zxEX}~<G(s<H8(0Xx9^*GPXi4a2l@Zx+4XQNHtB<5x9b4%B`qGpc>g@-{@`t@!hQfX zJuG;e`&JLeBdK?Kh^xh|D(SFxtVeDaO#YrUn5&e))`d7`FFHLFx9PVFxM^<Q`vpMJ zP^sc2e}%N9$~CdiZlQTbP+|Lezg(}sE9Fnuy6~d3^WhWAJ#dWcq11?Z!OrK<f1(|7 zeIt;MX4Dzy<YPW<&9y)OjNgcMnDjZjytW?*yVTj<sn<Ut(8WPzV77nqcZUn$i=Eua zkpRUn;!pOlDlL1NX*Y_DRN!QX8=g2T06+#~)I2=#sc8v@y%O!#v7kjcP(UfNum%5w zsO8t*1f*ANv>3VbwBGNVzaSSdDT852om@LZ@1Rs!m@E;~RgOJA|8alYX{Ew5Wb;)< z*k0F=#1=GhEbcM+WdA=d6DXY8w@0I6k_!RY%)?X#-!7-erXOpiOz!cD>hRlPb#-Dv zLbGGwVog2SwG8NZ_h~0+yH)oNVZ}4c&wX15zT%cp!pf;G9$qY)AP}qw#5KKrDR71k zC)QXPntNCGsy!T0ZSYA~<x|icq&*6`%22et!gp~x%lU)!D+P(J@NLbZg0SZpYlsJI zTEv6sa`LG+E=bS+V*9_)ZOyc%&Af6n*Y{4Z#Pmd0&B{l9tVlL}bm$1>V|y~r)yc~A z?XQVkX=U9{Y5T9vJbEUl9Fpq=imA6~B71@yvZ4}+D%w_)u28yMrT?p(=F0hG9Vs%3 z{0(6=>QtFT7iv;(^M(^lqigQYFm(Q;^h2Okq)|E8vKR+(da6aPgN&Uj)s7PF5S|t1 zz>Yk3I*JsAm628v(DjzXD}3RY^A66;BkMmcoj5L7sykOFE(x5h0Au$pm*@_6-h51! zM=r`>A$DcXZPu9Pw%_k}(^AUo4Vt?pHlmO8l+kBeK&DUo^CJ{WHnoUSp{C8?5cinH zr;Ehx48?9yYR}c~B$(&n7rX3(&5w>Bgap{~8WW3FCH$Tx7gtUM<td@1Gd=}B`$$!G z;1;*)=n@0}ol)TSJIwo#6X0&FTaD|E_-uh9Z3o?kfl<*_I^TL3VSooX-EEKC@DyNA zX7g9bU=de)ttZdyFl!Vp62QCYdR|-;+iVc_J#pj660p+@$GXdWmwfpkvB+r8P~^_Q z&dZRWX<vR%e4!_-BQOu$MSsm!a6fwVM(VqsiM^Gf{X!g>K|VzL*)+3fe^wNEnGyIy z>VycVAI<wJ-htlD!dAIqKUzt8``h^>Y)0pn41_^EinH%rvZI&$EwV^@Q(oJPtTP)6 z!qkGj1`B)4e~bl-3jmh{#M2jj`x<DQ1whw^bgYTP{YOqeHw#(7!qqbS!B=hwr=XOY z6BaG`9GByBUGd3-y;7Iq?ifA0jh*pt7VEt}iY5VR@_U<&tNXsXX<oh2n3=eHpL?$B ziN*qtw+bDz)%)3a>6&hySVWB<Zq+ic<+A<vsO*z${^N9g>>!-Ar!uZ~v1DA0z^Qpz zBKT$AzyL9@J#akv_*r$UN7OA)-a$hkEw04P)6I5RIf)=fXFYtWYZ=}IIp4h{Mf}sQ zHlJC)^t&|Dro6Z5*dh}ghd0~LSmWL$N}d-vr(=~}hAdUW3P!OY;-~t~9dbSXUcdXw zbXM1LfE0Sq+>tBYh1=Ns#bL6P4C43cxS&0qxPT9!SB&$zj~S#0w<lDPhlz>z(p8l0 zp-*l;5g=?N$^l8f_&jd=Eid)1T@49PjF(!7(lBSiejbx^RG}0omaOwk^Gks+d<VL` zvA0AvB{l4KAk(5v(fqkiDqQ4;R?1GS*7TI6P34?hK6hUWDqRq+{d7a}cp#Z2y>`20 z5;CUsN)N=YhK-VP#XWb=tk-tl;~i?&DClAqUMU43yp0$h_cSYx<|+s|Z=s#vU0mc$ z|1Zr;C1M68byTSN;K~9*m<QKT{wlX2%z0>5ky^P`nUafFlEqEv5oJj?bEa?XkopH& zdc!@n)Ucmj_Xs@WsR7|e=(XsVNePMbMuKTX7Z3eHxk?-GV_NkF!&BvaFs0*d^3mk_ z<av=a%iE&MEy)Fj2UmU<%-<v)!~xp~TE<JL#Yto2{a;$2b@V^}E1Sqd;)*LS-Emzx z5AE2{zney$^vl#s(V{QRe`wrhz>c#9?K`(j!><;L@YGt0huiG@H|DEOQgJ>U;RjM+ z&}vdm$H~fGMF*u}FK5J-*|FcT594{R2v;XEdlYBN^3`75$DYBM8d5~F!D`T!gH#Y$ z=_>+9Tm`#+nU0osh~yG*lHaI8Zsrt+Y5>EZLx6de-{u898FMA}fYufP)>^~;QN!xE zsB`tP#L0_tE)IE0SJnLzB8Z9?%P*grJ%^74Z4U4>t~_gk`w1f(8){a#E1RbB%)KIB z+!+cwbqZ2@?eho!zDpniRR)%3e%sjB&qo<5c5?oHS@-bWMx8RFNAP<D1{)zO+xr|2 z%DBgen!NGO-inXm!g<A7A)KK}FYX1oZ?lmeR(FSK-ha*$LLxyO=Og~{z%bYxIC!_B zPB)(xna0ej)j#t#TQkigr93OzPwvU}2*#rJ3+2eAKCzLBFSa(Su7dTe`m@J^?&YPx z4W?S^YBTIVal9f<v^bf^ba%3srS~y3GS;`p_{%NVwkJ`W#hyJCf_%hxT`lBe?pA)2 zSs?B|3G*I?-aaD3W7sLG;Saq2h#b{3U4&@-jU3mDx&ey%j{&j;pkUxz0K6Q{rCZou zz&x!}-&=|a!)fZ*dteZJ-zLZS{z*>-)SQla&@)Tkow2G8nEM<qUxK^8ntD%6hY;%G zZ{`4B)zYX7P@@!j`g4T(J2_~_C8RkKzncW7u`{-PTe3iS#AO1CfM&6oZ6Zi>#J-0S zG_(xig~gp8k<u(3npcosPL;sx>=x}$jfAsLRUNIoN+PavRD~w?#Hxc;l<9;Jw=MfO zUI~7On!k94-ZwYOE<>oK^?i;u>D}o0+(*dLB-E+F-%qtke{O0S3-6}(FQpVYdmi8m zB~}k>4px_!#$CCk+9SG+bDDBW5(u$D3&;6)^248z_R>(pLL?&md2?KIgJu8IJKHU7 zm6(=lIfPe{NnYt<<J0lQX(YmH_A8C&C(o-MmE_cJ!`UAepzn?<+7bEn^CY*W1xhpR zpW8)Rh-i#~H?MM6%IcI_l=PLa`}vZK<Re{B6m?alqh9Jr&tWaN`ubDu?G>N7Bt{XL zUj4^S4dpGbn^+@@bZ@ktl3t{a9j(qM0sfXJf@Pdnq7&qM{6{|d4077kH`Mrym7X6p zQ2Pwk7xX;LHNJVQJ;KXMG!pbL<X?+JVmJGd5hocEWkWqfvrwLibcts~yV{cFa`v1L zhGx?rLNq{qKN4QK4+#xe4$--~)TBHVUtL|4&k#O6Oug^a0Qk~I<4Co{uc^U8wv0D* zZL@##FL|VXR@rE4qY@Re8*9_D(HJg#!?{iQ-{U<gxU)dq%*^veR5ilb!QNr6piOPp zT*Xb%Z|J+iQyr;eGocvwvC;*Lhz;;U5xm2H0SMtbbL9h(bIzSG7&xwB0!V=_^#c5l z;VRP(jo(5>O=xEQk}>5bm%3cYT36^Q&5J!J8%!MU(!A<KdUWoKtVLYPnSCf*GU;Fz zN8XY^TtO)w7@mMPq<s0c<R<|SGD9y1=hpbroj>*J_Da|Fv;rolOfJclSLCLEgbT_6 zb`~g5D-@1yvlQl45bCCTUhx-&<klkTq)fJKoL*B_c`hT5i^&RFm4$h4T^_t+8PWq! z9I5LBzjvBuYQHC8Dfue56nw<3RXgybXZ4PH-)ClOv3>S8x4@Ns>Ba><rn3`1JN^Hp zqlEJ@7Fx?%E{?lKx60FEc8M`@4nOw(*Z!{UWo(#4_~FQRBoIST$dPsa@@D27$o^V0 zW;L1%Kfl<%i)?~WL8ePUh>-(yBUMiupu}`ZMt5Px@PYAvPH=4R&!`zVesS=9KH%i< zG##=!qLrOGnbMYI-L%AIbgCokadn0eKUQ%J+4c}^8Vb=yrNL_)nUq(e&CU08Te1x7 zI4<{VQkF0DxJI1rgVW?U5@7E}YWI-UYWG&mg{xPhnvnO5*PKmkGzHW-e!>Am4HyAl zhr9ZM1S`4nx^*?mP*)WKcJ!Pv7<!x}k}TU<QM0eUr<2gD-jL0J)<K|j5+Gi}{to_Y z^Nj(N@*{*jxqH+d`TXOLlQty|GwAIDRH|2yImefo?caShx6kK$`b(eGMiA&fiGw=e z_yX+^ABYbp=kHB7EsbZ;+75sB+V2QaCX4sLG)$2O4U$%@O()6CS=xl?IC?U~+N*p! z&JWYe#U4CaN_%Azf1@M3C57nhwtLlGZA1M*3iZMR^Puaz%jzpl^95A|1SahX^p^M! zgZz_wI046&GZ$Tjv1?Ly&X<o?)|f;L&l(H*&F-K*09O^=WM8|5>U%5dvHyg^BXxzn zjz4czh>pzv6g_J8^kg05?N>SRUFZ^l7AFSWnj%Pzs2$hlr@<23oPBsmHH_B}xEO|} zpuO+HhRmCvR|@<6^RTZxMjo3$WR8=^JJb--pVL|M4%hVmRYTdwfFOd+`2x@WRn15r zKIg6Otn<$<D$kv6`$^XyhRz*1KnqA@NVt>e<^NJ^lAb1X1zb>&myDywO<df1-XQYb zf`KQifirs;a;h3reJl#Ee0=$(45|O>>7-`HgC};%f$$qIbI?Xh2^aWMAn13Z+X>at zLQdYCT$Aehc4(XJUsVOAJ>H+qFS3A29AED6ataCdSidkICYS>Kas@yv$3^?0tgK_g z1HHm@0|)Ky*~aU&J-wULN8hU3_!J0TO5gz~um4oN{7X;2w-Nz|k`9YjkEeO_`(8~O z;x17W*Xq+kx<&1iBjHMie?C7*GZ}$2RCR6Yxmtm`3Z>1FV%cu~I$`f(0e+QZ`=-DR z85sD6|Ki2)1oV5eoB{qAo(l+>vmaM|awWft>DHO(#1>UI?NZyM+C0&oYa5Jbd!hu^ zFp1zqX?|XpRO#7y$+bjI2_K#p^V1)TG}Zd=xcIa5^6ug$RCI|>(i{dkJgCjggWSV1 zi#>(`6rx5W`S2rPyRK2^><c^mNBn_2om_Guepy;rS6ntYTH!JkcCsgTl8I?yCmoE7 zJ+c-PH@hWeczNq_?Y3%cwEC;vp2yKQBi_wr-DFBVW1O-sbv6os8!;qa{jzCz9w&0F z!&eV|{4wqZRBE)I>ElIruqc~jEAtJ#265ebsrT3n{cU@Lufh6@b4weh4!(YVFNX(n z)nKr&vqw4E?I`=Os)qkIT7K)??J*94AMY9dov~VC3oO~a%9K3&&#h`%iTSgSC~VJA zXiDv1`Ent*XW@WtMI68N>_b#nz{TN$D&y@8X6wIh{aM>y6JwFIkJ03v+wxNp;%hDe zZ_)|d(zN9W3#Q#sA4p~HmVcindzHCXTH;=AVq~)gHB-?qb>zZfMr(gs^7Pvz>I1DL zkI*D`=Jr5j=uorN3QqAZt{IbRPA5_)h>k$tqi4Sg_!%9$e47I`_v%HLMEXs=xe&hl zP_l)C19#y9(O;~r?_Z<8`9oM#?oMW$$#wMU2Y`M38e>ny9R>-G&&^F|G|stpeq5Gx z?aKDkML&&{{bP@rf<^_Ryf<&umfbm<)cHZ!;heh$&RH5vR2oX<4j^WUrE8)*OBRcE z!Os8zdlT&rgnkRaFVHEDz2`!z_{^&;%YV^Bfd2@8Fs+s2XS)JlcDh3eQ;3KF^J?R4 zMK{WTx*lznq2CNCr5X+Fk$N9A<b~_Lwem=Lt)HBfvg3Ss-*}?^#Qz(VSayhW9mIvb zzYlQ%wf!EBU4OkR95lvA8k&C?mp>r~OCfwv(NwZ5iOgh@nV9=l#S^3!!k{?!W{k!5 zjlQ)y%+=~lkAS&=IN9!vUm0mB#vVMU=<UvGY1@yV<($b81rMc}-D3G98u^IGaewdp zX;#~C#_zVhIK;B~Y38`_RPdUXZJVA@=pF9WKgGtWk+qdypV>2_cs)1DH8cF#d=i@g z!1(?9+lhEnc^BKsk;7vD>>I`oW7qOWF%tpP@s(FjBN-hu@N4Gnf9|d&z!b$Ebar^$ zPbRNiU=tct(I2d`X;OZmtm%3%D)}Ir;r?6;JLu7jKz`qSM(_J-7n^$xcLJm9e+rXd zCRp5PddDEB_8QPHAFdnN0{Wsg=|sNyIbTw(6ked5Wh$hB_QQ(gihaQaNjiKLZu^cV zzDlm~`5xjenJ?=U4(3hDWa72u{MHqQ=yf^dw{A1g`rU`(6jgPfkx}L1(c_$on!JTB zs9z*nnV-)#zpnN%tTC@t8hpZS?P~gj5!RI*)<YWAtoM$R&R6n`WD7aGD)`kn5rf>5 z00`y@ypk9#Uh*Wq&06M7Wbg`bD9{KTu82DQpn0%>$nYQLRS5;%HPFSoTs|nWVlh(= z)II-DWwp>j9W$Xs-V}ji9I_j$;UVkUiPSg`mjq$|7ji0)#hv`n?Q%R^`-?EsQt(uA zV0Aa+JfOWK*W(8CN3y0XaBGCulTv6nY_>1HIFA{f@{;-N7xL*ta>r)&&?rAt?a$fC zUfm2mggHsoqHTs>aO}dukIXZ-3Sv1)fb?8)WU!Ze+HJoTQ?l&~Afx_UgY)rM<8q&E zBPOzCvHot~M3wH<eR^miFm1hmCT@M^?~j*b!{(LJf1G!%?It?QUv+A8^7q(~)ABIn zjtVH&Ll)!4eV2Qv?{rSY`noUH)dz9d-y#)XsfHLy&Btus#SxT!FUkA5_d+h9pk!<J zw|jLX0Dd!@ksi*4tK)k8r}GCjhThR$!AU|y@(<+w(;M8BTceZH?I^|4*>lzf@yY;P z;;p#=IJF;%2`FS|qzb%~J;uB`PYL~rW)j}gYfr2bE8=x-(}>-Xg=*51Cxy47siPoa z@qJ>l7XuNhDo)J>*N<v)zf0Qut68ApXW0p<6#MD@B5UI&N;drEUcr-y`CBJtxx1{M zfQluF1CWm23pmA|dzOB8jBXF7JaP4DmA#aITVlcJ0<qrGdQkOlaua&KWZW_;>(OHy ziuIpVCM%bNu`jQd1(Z4)F=}O(KiQDZK`oc%lLL3%wqHn%P6y>lPg0Ih2aSi^f?ZY6 z6!}iQGvEi_o0{P0mgRMI{{>PW6Q8p_i?E{7s7$X0#Vd_dSe!}hu&lki;ocWit?ic# zz~<zG>u#sbpaW*uB{^?{4h(=&bj=Pk7vL!E&AxOx&=43re{nWga2Vrt9~cEbDS`UC zNVofb-BW-Q1}|Eixg>1j-%wsg71K8oUVRuh-@`Q`E~zI+k35_`4g=N5bI<toY_@F1 zwq+~0DC2)AmliU%ojuZYsNjStS%S_p8ovGRaW?0l5sGuaR?5fT$B~q(IPBP;^e`uv z#22HBALVnzpVMPWUUoFTZ`0}CWfwNgbdE41rIEGnpL&V^4iw3&)g@&w^GAo=!!GU} z3&%*W7OdGuH6BEQTYT7ziTx?H3{$gZ16Co%F!Sa$(AD$dtCFrm6WUNIH%=YsD~Ent zY*8Zdz)0x0zyJQiar(n|mg4X|g%WpFgHcEy$SMo$nQ+!Nyenw8Y^yl2jwoisT-LX- zmArJhT#uU-^&c-S77!r}BOe;eixz~e#BeX}*L{Tpmd`22v*i&bqe~z5r0iux=Vn0C z!X~~@ngc^$$dSXt4TnozE``Vpub<VZ-XKdIh9<QMh+QfCG~TQn=MN}JjrryE)=o1% z^LOQgiOzu0&RKnqJgeZ+i_PW%(xy#sST049)S#ax$XHX3FZ0PUD{9*@s(=Mvc729} zpLmo%;hJ7Jvps<)xL;=^z#guB=Zh^+X<<@MtBCtE@yv?rZR6d;66jS%1pisAuJHC) z;MWmcfyee8-<l`-@jmZ`#=dREQXBntB!h!9R^M)<Z&c=b1dexY0PxLE+hHeSjEGa| z$XvRC$}pekLA+<@R8IjMclcW_qDHK)*+h5+=$v(=$0zXJ@o^BN%SvJE3zZsHKaaUj zb)_?w>!Y8d)=wwysrzB%;iBeSHXGxwPbqw=mN$Qi$OZIMDx1ck;2ZHd5w@tV5hMwM z%ek0T9O)UqX@-<;BUzdr<}9;AsyA@XUSS_x#*Dw%5By>LGLW1s?&tl-YT`=p@<ilw z%H$<>HhtTuMTXm_A81z;(M}G|T+Knnpq{G-prp~E=3i0>g?xXGzXL?uEHJnnJxSNK zRGg<AJR27W=U-evLc>JetoC0ehB`Bf-8&G|+<Ywz%}~FTh@+8@Mj#*TL)J3rH^M~N zJ^w|e6TpP|#}ap$oze7}R%uR#lb<x)S&e9nEvXC;?&=Yg1QaZ+`>F}5aGuEjE)<_7 zPKN8`u!n7*_ZD#LHRaE3yqJ(8Y<i1F&C`oN$oTw#k|{})<<2r<yQR4OOU9Clbn(5( zVXv|?N^LzOY%A;;EI<14AE^XyhRCN$fX*?wGLPDoLa09jj71~FB5|YUck1hh3i6cu z&(3b$A?N+$O&*IceHA6wa_#9*$g_B%!VQ3$q1~kVez$}5%ggfD#aZQ32f&_D^;!0z zTRP|>A)0;igivyboh<w>o7UQvgzK=2k+8jUAqZdYXCjQ#)a&5C$#~km$X|&#d-4qO z?eft1AM3*W22uBVu7scX5B@s;e>}ZsINR_0KWvq%)zVK9yEUp+YVVk>+FEUG(W0mk zGiJ=Tsz%h_p-QUuCU&X4V#F3|i!Fr2_~-jOj{AP_etx|lT<3M3uk$sS);Lr3GM#OK z@AL}a;$Jev2&$iu1=XBaC3qU8zH}^QEC>tIxHh`14bGruEDdYr+B~QzEU(HnxDlPb z`hhX2S@1>HIIw{*X|1|Vrv09ZDsE@hLHyp=>D~Gdj*2xL#ZNfn>&ga%fU7Usw$+Q1 z49|rrt+&)h*Ax^-yt;4fC3Ugqw1Y7OlvYBc#OPpJ;Ga(FgO|sDtV6|R>w<Z@3J<um zZyMD4@&Fvyg})u)@(jJlU_>R?u}I=X_P6XTfC}PAYC#a2t;}m;p9>m?S__#rbNS6A zWWN*Jk{bNTCsN@!dd*U|%`UAv=ckn--q}X#&TLQD0?kk`%6yBNA&Ks*b6h^@>IyjX zhRLwcG=H9?4qe!)ZU3PllPcl|dHBTbVEZrh77t<5LJCn+>LGF!e!$P~m}<1&{yRb= zWEOX*He!dR6X~yNt+U5$xa(8XKwo@GxQ$|HxwX`<nzP60GjrE0QRJLqqjk!}w)gqr z78&97p1alYQjVySFom}|db5|EU);0Yx~aw^HkdHzKYp-nXtm$kvGy?(iW3k{$R%hq zfwpOHEjjS7xw!W}mvGR9dyDA*<MS$54a<6R=aF>P+==7;8jdYAAxo;=EX}eY!jw5C zJ8>{}sxT}7Ut!6K*Z~+!F4aBLJwSku!NUBx6Tz$s_Sdx2H(0~ZE0=g%^BG@hz=9yV zEDeZepv4*LzM-&jtnW77F1Jl}PoRb5Qow(&Y%4OGKi*j8KXlDxB`{Wt`Sbt=?qRdj zTmG5tmB6$60PMXETr2Y8u8I;4iaDI#9@e0A$pt^4#s?WX$wGmTU58p){UvM6ytrqb zEJac6u>!H?nFC|0%-nQQs#>}4m;1xL&BkP$GN^&0s-RIfkD4?EG=-Nl{h-?QQ*RLz zn{zp1oAb!r8QBFLXE)h?_)R5xa&7?%ja&m2N0;%L+p)%vglPN|=DQZFwvvRN1s}f} zQ0%!vbK}LiQtCplD-Rj7V}z9B-$-b%mT?Kg%Cb&ah!GqMYn-#YLFa(p?lAc~nVX3U z+Khq6ncd<c8DfJcDEWe_S+OP8IIx_6nL%>u$y<VPa>Zfo8%j>~d#rRde_aP>Tm+_X zXHXAoQr=^a)@ht>I5p3D=Ix00FY{YZ<>!mHvvJ8|+?%LI(At?L3YwdFBdD7F{)>4b z*k`#dy}RZ8Rcq~nX(@uLtBImzqIpNht3(<4y>=&&n~M1TiNfa<ceq5&GQ-xda&QA9 z(rVxXk)X})AHyIYYux>tbAL%e3j)70<@U8FDSsuyKqsRNTU7;zK>YzWwsGwH!T+BZ zz<Px(eN_}iIj&a2b+8Gz)Wl3PlpX=CfjoI&>~y_ZdF_gvuEk){t;%<hZV#+`Ge1wI zE>oQR)b&@CWgz`plx~<3!;>{}F&D-XVT6D3suqZ7YJ)%2q2XGxvROnFzXCVLWz~w^ znSSKuXBhILjdmM*nx}$~8RnCLkSuWRgpl-`D-MU>5j+XxeQM$2KHph`X9tr{M$cCH zBPD0Ha+&T2+U<0{d^=#Z(j=QgQ0PiyJe=ugLWJ>UZm+Zp4kq!xm=j0txWwwG0l7Dl z&L65X5D$)hc&2v$|1;l^1%2@vA-9ulR&`CCvZM@0i#(MFh3ilm?_hqU=05H)9To;X zD!(CH?vf;R`kg)*H`Q=&b*$6UI#G%?zSg(FU<po~O-b<U;G%oI-kSp4s4)v4AhE9A z+uF-F12f-8&>n4U2i|J4|7Ub0S+Fa^iR-mP%uY8BH@Z1nPEO`p2D%QMoBrFPu_nB# zuM@Ek*(IC-Y#tv9+0GB9OYRi!<JAb-N?pTCdRu`p<yPC<L-&=|I+>bAU0qd5NK+lu zlxJ!?E<(IARP_m5?g{Ilb3we|PA>I!sL$;~`o~mj6ve9HQpc+ID;{TUJJV|`^n!zq z0o3PP8uArHAWaQx(og7xUid225H#%hj^0A!jRx=aua~1{{g&eo()$C}1b+GYeReUh zVFeKAMnjwe_ayJRqtRls>(TzU7g@=)3Y2?9H0zn4zQiWCn=lh#ud|*&omx)5A|fNs zqf`WgnOb<#G7-+r9TPn28tg<xm&^5<$3iyK+MpaCi@+Oe0LQ3N&jl+@UAk!6p2nSl z4$DtJGHyozZmU`-5h$`co(oyNQyXlaP9D+_{o&<TyOe>~un{><-)K}LOP~1^D&6th zIZ~lK&R#a9Y#9x0m}>hQ5;MYgWmv#@oeKo7z!pDdyErEXPm3z+ifqm+yF-?qWs8eq zCEs$aehwKO@%tPZKUNMjhI?)tgwyQKmv<P>Xf**r3>7!Dm_JK&2)#M){&QFO__aV3 z457MXa36lotPpttS3YE6Zu@Y}9(D=0xL*^(1@~q$V-w#(LY@i@1=;TLOYz!RFxO;L z9h>M)G+V^<lX=j>9j8qzMsx1-&pdG8xv8mEnhBgoin#7rr(Dl{F%a1czjsL!P7>J# zxpk;gq*EE=1`y97ec4D?PbXH6M<<oL<{Y-ET|dA<Ct^!1XKSjgaA??49S|D;&FA3y z3ADF^<^14~L(%3$WY!%dlY5U_o55q8e0L;)T;F%6FD%WkWnR9o##zper-5G5u-Z|Y z9=)6^3Fu4ha*E+@mL?M;V5?Jsi|Ea2RKx7Ak2(#lfZq4aTJcs1*y8Vk=ROmme`~&o z1VHIt#m@QeOaB_(EXMez|9u@V*R7Frc9Xxa5%&45ktLA)pnr<<S7MR8D?Tcd%!H?` zPo4^w!Jj{ZCd@iLXs7J<*nTYTUMpQV$4q5wJu6Fs_?)AjjFMX|k;fjqA4C~P3a!zq z_ob?$r9(|lc`io%n6MFT(pNOnJ#Bxyga`QK73^C|@**W@)nPf34)fKSMaR@Ykl8Se zeHc{vKMBMB#&&S(mBeNJaj^6#bKd1P{%28-npc{Qh@*m&8o*1RQt=~iM~2wLfNzQI zkiN&am}8(r0*1yS=(B+z*;50*av4Jt{nD^A2M^zTHoOS;yz`|kg`R@Bxf?@|+6`=Z zR*_iAYvGtAQQ|Q~qwvF+l<WbrDzt?9(Z*Hr-zn3e3~o1BSr5OOSx(Aj6w{?F;ulWv zle&+;8{FrZHTvRx;%R~CQj*f|XzqbvorS#Ed(BJvopIAN!Q&3vD+-`-V{0|5k4%W) zD#88YRCY9n92$Q1@{0fP=efYZ2~c`PlB;jya3njf&2{)$nH9m=l_>3w5rX>>tU;5B zCgsvWE54x3;*a*Mzry5(>F$<BO-NNFQuj|aslRX+yj{#HL}vl|^BrQlK?3u3FGI!r zHZ4Z8pCmz}y`zlxzW&H7<@MZV`OR;x9rve4)FHZ=jD4v#=!wCC(fik@QRQUjv{l9_ zp9~ubK;@3uGRw|<9@}*1HQEN$E0a`VF``x{iZuqyq^y=y9h{=>2ip~J)L>Ovp7Uo_ zRk`>PvGHmVINN~{<e8mw%p0-p<M^s4uVszf<aVLs*T5=dZ4IX#Ji|$($XSL1do#}~ zyRHpp4*uB|p8YN&tP;=YgACJIE(*n6pXyWk?gv%`u6?9*x)rqKRA^(^C0^lS%91Hn z^T4^?PoF_2Ztx?v)oCdg@bEJIZ}0GO!e1FZA@Qdh|Af344Tk$~NX)6KPDcto&Ca0O zim+_zMfV_<)GB6KHF3!&sE7U%+-r&dRYk^CizmEBt2IIjL=)mW-UzXw1gA*LXQQ}O z;;8XrDpf(O<ZO6ahLDf(yKhh0XZ||?SV*|7a#EgnzZP1Cx)xFe*@tKZFt`#l#~a4L zPOKe`aU0XCKHsxLrUkUq-YXu8J8wzVDf<l9!9`07&S7Khcz2$^81p}T3UWe}N<Q)R z%x*UWQL6W{scr;r{k-D}kh5hl<!52rtD4pc9ZhGZAAV^P<T7k;aonVLzaOb#E%enC zIrFb5%LGbh4sqD}9(4GwK*|5dn}0t`x&}_BGo+=gQTPcevevHmsdf)9_K2M6k+|aP ziFB5Oe3+HL2GbKS`&&cIG=^)JWz99Gh*I*Ep|;%&{sZC2n(RC#NqQ#^@L`^YTxn1v z^;^SFa$RFlq7J3CN=elJ$P7;COd`iLun4DIL&|%(RxG*lVOBg$#{C2eReRk;m@sts zuNg9J?of<8+qI^f8J_SqA+dl~=fXj|dLICV@NZH0XP_bjAKC8+U8E?jz3H0vL0>RC zZ29cSZ3uhw>w6Cv{29+WH6}R9ArRzVU{;K!4u2jX@Uzi^IY+mbE6Y{JWvXXAwpc$K z`sm%B&3<C)^Cl1_`-2TD-#3In#{zxIjq<Q&Pst7CL#Q%2U~Jt;H4ZNy#DoG>&+l6t zG(AbzX0B%dKLY2m2H}l!HmO2VtL@Z4+S~sEee)Xk>$-dS%%~D%@w{H|y{iB5Ku5m^ z7jA!bOQd%~C})bd7Fm4%`+S>9idPMOME<>~B&AJb$5~RE_Pv)tg$hl4%{j%w>n2fI zzJ6>%aMPj{WuX2ih(r0y>3V7rfFR=7yra9--;FdIGZvADnW-LZXlqbtteKtlpXbMN zH5buYZ;B~n9Yow~Zl_*6*>xy|&@yiSRSsY%mlxZW<+(eW6Ss}f%xkmD+EnzGWo5bA z6zc0r01A0mDtxQFUtH<gU|>@p;9x?PpDIpT%d;A46DBzVn=ZOd6DF2CrP>*%48q_0 zLd}0)zUGOma^<l~L;AO$&XmFSD;D@qH7@Ip7Nkfebphvlr&J$FMa9Zz#PY+*<{86; z;^$z?{a+pL)BloU%(_)pFDE`<7%3&wMtu_RfDAjI<x>gB1njH}zALrQ;&4Y?CO~G{ zqAPPB;|!N$Ol%WYpWsPS*}el)9u1@kckj5Y*AX+HS4K{^w@*}6`H6z1_c7W6yyoc@ z=XTBq?$<liI+W$PFXh?!mTTRF*6tY0nRPDGihbqUkVH(I;_-{M^+XYX4b)XOdeHem zcWR4BeM+HRa=Mo-MhulV3{~Hg>$b~%YWmRFO1L+H3xf;O`5%z18zN4ZBR31^nIpY< z4<OV2*(^q5=axZ=O*^ZcIYtwZXXvA?P2i3uyjz`l9ATk=(6CV=CRnTi%g8t7T^Ubq ztro6OUTlqzkRz2HSv9-{IRP0Xx@<V2BZmaRtIMIP-1V}Zy?V+eZh7X8k!asHv8OpM z7|xrU9AXTo#bGE-$KIRxfmiv#HyLg!=^?50DfKBk0loL7V-A-A(di3Hbf%4)P&Vfl z#puG%o?i`ph%Y42i8digh5V-BY_=)6As^lQd<AXbkJKFZ71PuDM`V=hI=^({WiF(* zV>?aZ+Tr~|uW4T^H@>kRR&0JO`8HTc_GI#>wB3wstVY~Gt9`mIyiKyqxkci6>cz8Q zA+F4R|A&0<z5Gzt&GeSlwpu~ur+d1@@wXw)t^Z_AU<}vF|3d*{L?VK+g%%3fqx)tO za&<W-1xIE96@JNTldlPDKjdnMn45Pjk5JH{6uLuZ!c?BVw?nBeucV-CcDL^b*OJ5K zim-qo`b%W9TgWZ^_ru%G!&`JJ{`z095UR|44c&#{GQGTUcgFHCaiVc5=99oXv;KF? zDS4+*+zcq^zLSZNeU8o_@qHHENT6a3YE(;BZZ}Boe+Q!$p81FgF;U^nEJa95*;MTl zMtG-|@==ZeIUfc)#Qwy27skjY^(b#)&@0{*qjanANO*IzxZJQKCe(`TK?8f|GZr_l zUqW{jQf;zg623wyTSjSH<h#A2d7^G#4lnDARD0XnVvb}9O-}75)BOKMQqjgUu`3aG zsx#e6SzSsjWv3;2(}%k2NZsJep}vbo@nn|kL4&t*OG?s9J$-^8$oR1Fw{D;D_F!pV z)1&;UJl|FXF0Px8m(GP^rxgea*ecL(_j{N_@ROUY@|5*;Y~D)2)SRMZo2eu<JUfaL zc^kAvMmadD`H+z!LK=`#lHnsWKp`{1?w`XP+k{eeNZ57}wq?C(A;gr@rHZ<*2k<mG z?u4&yd$6wSjdu9I)K2FsA9Bu2)Dv2B+ZuF%xcr^5(y$%fFLp=<0~1O?JC6KuE_nCM zp|p*7b-VxMd$;(>p3A%|d2#Fd8)yoBI!FZUW9Xi0cq(%Qre;xIH*~X-sobS{7r<bf z!t2CwRk<xm<GIMn!<@MJ-XI}C#`s(!c)j5;YkcH2fdSkG_?m6kn$nV<C?gFC6TbR> z=_mO+i-mBa`6!gNxk?gjEI_NHd{y7_g>@bR%%c7vpgx^IKdI&e@t%+jUw3r;C)FPQ zeTu^{BES3Dc)OERJB6%0BIMDO*+ZsfnkP&5Fs)>HtE`3)ktg%33`tYM7RNEcanf6R zI&_94R4fa~wKgk*FqHbT$wBA*kf0&wMVO^=V~(9Z0uoduqi7X###k+6Avt?4)#nKg zyD<fj@1-T+DMUHBZI5B5<O!QWWwto&Ou{sT9>?^)x?|1w96jh?6Q1eiK6fr9{gl9w z$CtwXj?)i{7K}bNBED@6VPIobWbzq9Uguaa=~H5zdFh6L_fnu|kDET-)1#~Bb%FD? z5BzH`6(gtgC+8u@q#OFW&`}rm^U1ZF^f3|a<DVv@fd`x9;6oVdb6_MPh9v5GmEx-O z41w~A;+Z9gySXQ2Gk=0_+VeD{9%r9!IhLpxx?aj?1Zw$lebgASW=K^f$Lq4p=K;;n zgQeRI&hEAgGSO-`pY*A0w`H-Gt;h~-KucamCgBxMeXcv1LN35K+N<74hs!<e;%@OQ zJuX|(SH>WQ#dD~V6sW?nK=PHDRzB)|u+M?b`kP;0{Z`I`@?InY9vmQfubQKtRL6vV zkw-`KAj%jn(7^Efz?bbl`-?5HA(ol@35yF&zOwZR^jCEw8%MMk5+T`y8n14#Ybfz_ zcSu^LRTC5bB~upc=J+|-j{$tH>DmwT=;p{?ikkO!XzqRT)PZFgl&%V}?yozH*)t7| zGw4>ww6kR~k1|cOf^e~?%!KZ6<rUO&@XZ*wYVz=m6fsL7PD9G#{7}kf=U?ZaXX}SR zYsJTxxmetP905C(Ju*Cbe{`cb7H7}p01dvF%Z1Db!Fj76U*7*j)?-^~bC>b?ve9q{ zroqE@<rkZF)drhEpK6n}38nXC7mHyHZDW}^M=jkXSx7Da?czy3qkGc=yewJ&^SN3e z?K3}4w9F@l@suU<U4=4r&rJw1ZHDf64!<*vPd|n3PApHF+r;)FJ$lLhj6b^#<PSlM z;Jxo&Z5dSTwmVRO!=$sM(URVr-8Y$>M|Z}F2@;<FBCSu!aadlw<<}hk$ypdG^s%a- zR?gATZuv62kb0U)@y7c1SOot8aVZUcRMS=?3&h7?IrDg0-5-*V8vW-Gb1(Rd34qGp z+&$SIAx-kRW~T<VV8us873~FbAZzd6plh+P;DOeypH8_>xgg3M>s6oV;25WZpgh=v zn^hD+mb)Cr_2piKyPRYW!6xVPWbxO6Q=GXYuEAU_2kf)U$42EzoA97DLO7Vly6QvY z7mG64BA9hGJDXWbRz8fsSl4kUe<-OkYaEQpFsRoJE#m~btB2UCGWLPH{pfv%6i)wI z>$Ft}UOvaRtoAfim3HNH2lNRJGeZFwjq_50i&~j+sS3F}>N$5Nat9H0D}HiFx!-Kg z^pHW+kNj3h(yaNXb<rJZc&Z;pa7`fYW1<rX@C!OH7R+y4-f}uSwq9JPYs9O%@i?1H zH&o9nfsb76;xy~3gsz}mt1~Z1C;q#T5<0zx>(-})653ZJ7566)p?_A>!QN`M!-3Fe z{<_Sg!@~19aUwM4<ZN&m<wqtp`b`-bC%Q38CyMOO1IL6L=bU_|SpnKF_FSb5b3w5} zN2$#<*eyV=N?n3@G*HqcM%ad?e~EGEa;wFy$4<*-<u)n2r|{j*?=aX03CV}%{I;P^ z_cUU|o=%9|^{{kLqLFpQdg)szo5!>WXw=prPtCevzkeo6G0=bHjo#w@^XXRkJpXNY zXshpCU}A_RC3DTuq<o!#U=YEw<wvPl^Hh9oxE>U$tIon-@Pw3E%h+I;UfmjF)o1~W ztl3%-sL4W&iUl>x&p!rH=;G>r!sT5h1pNlaV;heOvV-$|ryO~h|I{Dq+|H~50w?s> zP}5AyaVMxL@MB^H^=5e%rWP1m(71iGOnmS7Kc2$oi(zaUfq7-St>fI;2BG=&j6Tm& z@1ur&JbksL=@PwsobV%ki@td6S7SM2SFb!6Pug@v--PIwVGF`$O@_V$$t!pdlbG{* zKZ(U3bIyF6rvl_@o#qKW+iEKmhm;T9hHsw*(r`i@l(i3x$3@Reu_f%AxtRzJfw+^d zjP-|<70ifc15o%f$#ourO2_i0_XC;yxfXHkE&97EYCp=GOKB@9kr}rt`4m1hRp!MU zGS4ta4lZjP4ehPhq(55m>0${4G^uubz@u)@#<`p#_8}ygXz)r!z4lj3o>Z5HzPrK0 z=(jT=Lzp6rS8tdlyjtmdL3Sp!ffZ#sSoeH2g38~%q9F;Lv3sB)(=&U;=ITl83HPDc ze1jA~rfu(!)i2R7=@Nc01)v;2f%fSC<igjBjLNjUX6=KR;}LB|3ba?i5$(}G*ooH7 ziWKLMb9_nx-`)S&)4HzU#&pG8dmUm>G5Yi;7OB|G($!yBB5C0Xg-k_a`s<uSMQu|P z^i&2MY5O59(lJcVHisrFK)v-AUn%2mUfqMAf2NX-3R0`wQk@e+y$&bi^}bkb?iN4c zhW>Z6q0Tr(Odj>$)v?cyowt9@hEeHO--6WaK~+*neah4y<RG?;6<I3X_ADtCNi9Qt zo^xb+t{AA&B2!DDmlc0hTPu&GSGmYjolBitKSS2Q1JPPRl~`bov0;dp-+QLb!~NCm ze5+#)!a-PTt!_oRwbjA)DX~>n2Aw3ZlD|8P1<sw;c9?*mK0>J2(!(F%qx89S*&Tl# z!gDWBjqj`OI~=LNT07ggq5SXik==Z)OY238d<0>iv9b-PC0<bMW3zAKk5?>r?xM}) z5e;@Uh#ka!hQ?!%??Vq9EpvsQSz7<8vz0@bCX->U+jb!B5bUBC=E9vfcR7(`%e!F# zZjnCgbP0eBIv*}>N-<derrs6;Xm}oh*OTSbvX}VgjUO_>BM*F?Pww!v6kcuS6=E0P z>0wVEb|gU#o4n4|EG%lyu&$?n$~cz?%q*Nk7j~OlBiHl7xDV>|zhsE*a)v57legev z=K#3BcNmX8%%iJzrO%r90WJ|%Yy;C!VNm}-Ri*PvQl)xkcBn!bAYZ(G_`=0q9$>l_ z6+bA~#P!;iwO3TvNrV{i=qHG!hpN}EJ)$oj@nBo70YI~8soFXGJ)28v_o4iO4Whr} z`v>yg;a7sqbp_Vl1cb?D-u2lE3=HAz{n?yU`}3tr>|^Y#&$#M%dmtd5YG!SZ(rY+K z(qZ8Iv60072>DqQACHI5#kiOX;JQH&Y)A^Neon*QIl7*|)#Fz<9Pn<Q<#ta9Vkk>8 z!;JFWZ6!WfM}aV2&ac(hPB6McCzjV+JBB#U<s*~?`UqcOn@rd8F?^g3kw;46BKFn+ zT(jP_DclJM2b6hRE<3T&zy*Bl!Yg_6CO2CZZ*#)bD=`<Lm6s`ojnAjDoIFPFx?0H$ zX9=kn^Q%t?6W66yaMiaPV73ltx(q=sy`vNL&xGjGoM9t}VKk8viGwGvDsK9jKQOvq z{p?Y6av<og$9~q|_L)D$))?&%g$K6@0%fPr>&hIKX}rqa$LEeyB*5SodDBji1}OBw z*&$PuvVSa`&7#KeW$;DZjU`04<n>KbRA#Q#cmWS^!c>uN{@lk9xO6)6mpS`yFx8|g z&skJ+|A|BFs}F-!Z_$@#ic6(`E%e*=fl$<UyAF03+WaCRl5xSpm&?vT!VKF|4lA<v zPOc65m?^Fll$ZyW{KRR;D>l=+^}<E`Iq5Ns%D9T9<S3vd`OyrK)K!lmlT!$BaT-V^ z7tZ4T1Y!aE214RHd=nt!q<83LW0&kH;xu*a7VMyQ>fn)**Jcc_UQ&{)6489|$D_?T zl=npjL6e5tnqNQb_v%-T|GqY2ZfvFpJ8$R>uTw!#F3y3&fEQ$v{1J@~CXG3=9rd@T zS|9jqc&<}2|Jq|V;?%KjR?rD)d5#Hs5&~AzT}nK8v;ACE$&ST-u5s!Rb)gL3-Fb2J z%x#U(9Z~z99*stsg0>G}Dl(r{kly^l9>YOVCGJyH$UhNRQ$Jz_gSj+Rr(Am3I(*xl zuUA#UgXoFCjP#$T98ndmfA8)f>bCgUhfA|!)`ikjr;!jtl}lV>)WX?91T~4k_5InH z?R~HKm<(~Drw%_EeTZbk0tSs>=D$%x>2`J~0}e$g4+G<KL*_Iu&Y6i*TR$k{opQpf zDH0!NUV7=jx*`sy1WxkK+b+7{H7gqbguZNMX~>5>i>p-Kf4#a?OqB%%2C{O;7LeUb z3g~^F9<WAO*hs@_@t|8c(M2V1&Jrs+@+0{I>rd^hCP}c8mJHkBh8(}CS7}GiQrS%X zc?V-%-(6yRgg8aFqp;YfqoN&n)xO%Ly<5C-CdwoAX242k5G^LkkWpTcxHn+QK8`ZI z#=YxoBrTj@vhZ!oMpaj&A25=CBWo#{n=)dMXTL1UB)snZ`7f#YR;tP3>EB~!WR?`o z49yTb&Z!_dJD<8LidXok-yD=6*2n()L3Q2#SYr&TgI<OKk?Ujf+cA1^wTaQt&G(?F z+tz(zUwwy>PaPh(@EoN`9d^N1gdxgFHwzZ>dhWs~j03t5wOk{_FZ_=+jv=X6TTdm@ zh2|*smvnPDL#^K%&-vZaT1^&%PKMGLh9%hff3%A8A}k}w7IL>}-_KGZ3ZZd$UHiNq z=wBc@t>oFpuW@YmahB$0#I<H^cnX_NmY;mouA^P5hOEE3UC+vBJMD6$@l*)h_)j9O zy|3UAXU2%|Weahy$#@iCFy21%F*hrOIa|c@Q236X)n$!L-*^6BI4vjRoFP1QDuVnf z8@@4cBemU>j=z4Ui?8<1BJP}&k4Rspc-DPAimVmO+3LR@9BZo`zp!BG<$wM{&j?dK zW8(NdYVl+M*efN-8Wez_jD)b$?0Rw$$6%g>SKX<HAPmWZR;Kma$p3{z`kbrt2CEAN zt;alne~)9pv7jYzYU;mD!GOg`#u5PrQ4`AIvMWJkpX2?h#2G02#EUO-iLS#AJin(L z1PvO=lA+lF%%4n}SiDWeHuna8)+7~M$ueX`Q-9>B8@=)I`u;=V<vGmNsn+^4Gmtf` z#lYlWE%taqmBJL5y}-6l6-V1_s4am_ycU|GK^u9-(^@Mt5oSxw-j+){kJjBwq?K!; zA<SxpaQss_(+F|ljbczq2qqG~818SMJ;29}$$s{gqWl-rYfoQYln4o0FlGK^K=90N zS5o?sFM@Y3V_~Z&S+__)S_}eOM61d&ZobUu!^q|(dw3R9N|eb(YCO(5?u5~HRVIfb zyq*Rje@+3H97oi?02eLH#>p6BX229*f%*bQTgBMN1IC4|NUtX=om2)4i{qhWFFjw* zCJi;%^0Ul!^DFraG%@uqwYSCg80)PQ&bS{*rp7WgR#*Bu&P}#;Hg{0wB>3^?b-*cq zJ)T-jauzH5Dq^p6Hyua$&v)HrHg~@r?!oi~mvr*idRvt1C<Rq8Fta)bqjoFNPl=G> z(?<gcoHCRtF}UTa-KkdCO7Yge4NG1F<Z7yD3*!Xo@+*9_+5GR0*XK52XlxZ#3dLI0 zUY3uquxE)hHO2VOk5s7}rHGs8LOw;&bNdnWoNGJxG{GFQe9|I~?mG~biGRq3;HRIn zo7IB)#T&6v;)l=fgE0XXM=!CydfepzbHq7Z*rue~pRR2pggF;^E$ltQB_!j$=P7js zLy+40$Bz&GX@6e%AGtcDCtSnBeNWJvmLlGE$7MNEa#_ieMy{3Wg|OnJq|j3Kib%%t zT+8Q>-oCiW?B6A^<%MCcfZL`?Uh-!_1`wMecE5DIeW=LjFJE&FQm!YIv_!bVcRX&h zCTif(WaQW)wS<VgsntJXbL)5(dc?e$yrOTNVD$;GxoW7+d3Wj-@bH7B0mC4CRxs&1 zN88z3&~c7GE9O-<Yd2Z@OD1&(FUbQM16+2c@!PTIl2E4j#)f~J6>&mh2BU(bi_#UT znhz~|!srzAY~r~RCT{o+rqej=N(y!R+wsLb@F-&)tR-4Ua|3Vq(ULtd=7G``^CVf^ zu9duJ2OgDjrv*Hvnf7D2rw4(zk3n}ZL3eV~Xk^?h=@gDM*3Uj=tP5ij#nk=?ANxBl z#`u6n?VbRRGb7ilcVIA?6lhSY-_8uvUYMO$6TgZyx5a*@kbpI&7P1zg=Fmg|aQr7N z{-;a|KgnJ0*Y)^?=Z|@|WP*_cz3Tb{cmhN3(vjF)P|Q%eXElqy>$Z5ao0m0b;?NTX zGnN<@E^L0snzK!Ll+i>_nv#yJhkU49*u=(QdgkC9r^dmQ+)C7gbr;-#zdYUVVSDC@ z0FE&br!Ni-yuq$tbKL0Mt~6|ndUa1tH@tq3Zi7UCqr~t}-|@@Aj`JNQlrtvjv{?2y z+h(fPq`<*ad)MoUc%P7MEuPKby`o4YiG|p)XUw#)$&I{zjz>57Heo`rZuq(SJ@4zC zb&Ca+^Yys}aI<H*V0CI>P_=Dv@U8Y@SwL;{PVJCkUSA=nStp_<J>0fM0Nw~;w6PZG z=n%64aIDEYH0!kG1Fy6%EpNkIA_P{DvFk-shS@B-t8%Gl;3${Up-5@>c+D57^yv31 zEv5#1290)FGt5FS$I=30S%;MwV~-WIA`?DmDTTQj{Nr4UaoL@hy3KG?kJ;|0$cDr@ z4_#fq{|X@s&bSORLNDb5mas&i`hf!+i&VL;hVSIG>IAi3WGgP1fI<+&wvheOz1n>Y z6y7VO0?8+$wDvIk+9BsXJiFGx#|wMlkn@v0o*>t@>+W1mU6qph=R*u*C8c4FuC<+= zv)V>yeKP^ChdYztN9=9dF`ji>Sft+9l(O2jY1kGYZbU!CRw8y1HPD(vz2$4MBh_tD ztf;~;e|^wNG82TlsCb?rC!q^S#zmH|M=G{cjAoaWSMq5gOUWTd{bA=DkPRvJ&0$dp zPVw){8X<LP3Z{QppR(R<VVfbBistG(&*at4DV@QWxYm%uN57Wnn%{1~pEjvPsz&fU zz~@~Zu9clujfDI%KmKsBDcHKtq!NH2W~!XO#qTS5fbe2vR}2H!M}P1n4LbxuJk9iN z+HX5v76R@iU!zNXk)T$cgvCbRa^i8wL1dH4u`QEZ0wT2@JUg|chwP~i$=WJv-<_+M zT`@1uw*6G4-OhbqHUMW6Csz`paozQ*Wp!Yl{m&Lw#hbX@FCn#@VM{U{DyiKG*>zrd zmeR$7yLUOX6>V@q`G$5g&0uL}^^h>1C!4U*TP-NcHSV<IuRj}$ws*7{R(Y-Lcwe(c z@X-UAN@4<oT4ZR>I1v4_PSqt)i1=FnuZmf1g?p}X_NN=CSqZJilh75c9Ki2n(j-t( zhDju4z3UYy{CQ9cLU*0^y5J&-JS1FPZMvwFkA)BUG#HY2Jtzr=wBd|pk(h=PH#`iy zIMouc(OT?7`f9f#5JI-d#JiWX`<N}D$I0ETwo6<1PV0HgzVG!>Et8O;?Jfe%uB(OC zcV3xTaMzAkHRlKrouZmLANqA-;Q3nch0HjPwnmysUF%@?sZdGkndDTB$A>`en!>@B zB}YuXu=pDjM5q=?0mL+HHz0kjwy~y$Kza4GiN6&(=c2$J-`a1)y1wW}W)1%1P$=n0 z92x7z5+ET^si&j`!E~|5#K?;Q+7UITT^El*&KI1ke339oph?Bk<Z{YM&ldr52@;3w zfC!{(6Br;T&5%@nk<?sy=<*>6i0GPu3^7f3_5E|sOSa+clyzN^Kk<7Y%WjZ9auC=n z3BAx#Aq3!4;eokCo?!g$9=?@i3;g}|f$suG_4Ii%xMi~CY{3`VcBKVGDW8t+?xkK$ z)@Xh-5c2>16rrEMtJaW@JGb>-x*_Xz^J-c_{H-k7#LU4m;i*V=wLpull@|4({_24y z(%Sd1C-sHj68bm^jHNr(ZQQhKLb^tIX-|1SJdB2>RH67X9ja?FqKE$*4@<)$1l1KB za<eFw`1MYK`EPmV<yh<^$r5*8bvUcvn{36eioIDEoLc+Xj^&lMt9;GPW4xl*2*X6R z>2ToA3kkXgMJmZ&?54;#CBz?0<ryid)i(s6nsb@Aw;yup=1a_GO2|EUAa`=tgE45O zX&(}@QE$C}HEXDZUI@l2E?}VVtck)<?T<5yNwG+Nwar_Dup4MdTe^5;;WWtQtx;f{ zP0(i3;zPcsd;`;%wNbwxwk_Nd{4Z_gQjN6AQLdn7$B5J+Sx12BkFbd67xdHLwHiGb z+4d#f?18j|qX98P&mX#Xjq2Gwb)**?7rnCPvapT)=(AR9Krf@slUn}I;Fq91$0<MK zebl3lmUaUbh|7ubO43;m(qQy2LV&H?xgYj-N}PD|rlIY`3%-4|p4vLz0>O6_^WyT$ zr<5)ZG)&rh{GA~Zxb4Zv|E?D4FbkvCW4>->S8wEPQ$s7jEiu-vqPMzqdmE}}q}MgI z1LvfzXKeZs*~rpl8Bgpe1r`gJVy@ypmu;mhl@WPY9IaE@c3;Ll-;SJ}k{W1OW8RQe zj-7EWLgXPFZ8P_3N#U+1W9=Ow4>VgmVg#G<=3IhT@m{jz7lk*k_}T-<Qg1;Nw}^|A zOwdRiw5Uq9QB;faUTXkNJk$40x?4N9Z{2KG_yZO><T_uVR4CJR2Xm(zYB#6gUXEE3 z0kAcuIuyQ%AqdXQc_gcTeGK<2Ax?tZCNI~E!JwAdgW<_D=mB}yW>=a{{8_K>VmjV# z<3tgUoWeBDT}F<Cln{wxG5hNzw98?ouRDhCX<Y(!q%&lDcK&ONAg`?KdpaD{5mO#= zaXu7{VOr*EgTCw$e9%)gvoUc<Ykk3>BE=t#X&4RD?>iF@i0A!iLZ}$sRn)y5zE8h- zo)Bt19pgVkv(u7v-X{d#(co~wM9<$Ev8MD2et<*aDH!>IT018qEa@vYgA%8Fp_x&@ zPviXvC*J54shuyAQtsw}B_U>|q^y~zeJp^eQ9d%B9L7W2E8pm6#Mf%MQ7X*_YhI5Q zi%9Z=la1h=tGy_i{r!tVAzn7Fa4l~CvyVgPn=JW!7fJc$JeRwaCCTl63JGLu$er;s zVKI=t*X|QK_*az)rOL&?CXHMef~wqapjIxI-ceV6c-Oo{JqO4e;%&217^FZAHz4sF zyQvur6Js2%p7a%L!nk|2U^vO7hAC&Y=sQkj9hMB7Pww2x4^QRS;B04m@kK9=y2;t5 zw{pjz@ueeRx}2I|y<0=36Hav_oILmsg#s?4>owyI$+;i{8PBW}|KHK#Ds;@2OOu5! zc-o|gWw`VvH^dLG`VEx=PTInN%@(b@^{NSZ0=fVDllNd_nVJ|2kbBH?=AR_Od6BQ} zJDz3>-=ic556<xOhae+maDU@H<#yr2m{^8;8{)qX&;BM{na))r2QL#4;up}#L&Nv2 zm8Jz~6yRuIH|IItTiP9``Sqj7D7_rrNg7fw4r(w89pg@P*3Ra7aBVa4&ZJbSJEzPQ z>pW*LQFmI}>SO~4Yz6|7a@E^{qIku_tU<hT$tqz-)9RcGv^s-o&_D(6NAd05W<Sy* zf)8RrG&jov10v`Wq_Pu3=AT|gs04H1wj%d2&CDh#fy!<iBL0t7ClxQZe0gkKV&ESA z1T$D{C6!ObbPtnxQwcj%s;8fTKFqkTJVjWOx?bDc!RHAvTEXSmoE>*71kklGr*v-f zOzznNSpNYMB3fQ+Yn<?V&_8o>ZgUdXvxm}wYxohe{`n4^I+pc0Xg67b>ZlF=9o~va zJvSt85d5XpK@4?e@#cXJ=Q(x!JCK|89DDqj>zB=Uk*o|}55}akdp(VeP6i-`dMBGW z>W_+s7KXt`Kfexb_+*k4A*o&;Z^iO6-SZ5-#pC6qx8-mv?i|kBh^EQ;!<w_DNA};t zL#xPp=}SUUx2}rd*Ap;c#W?~Y4F|XQZ1lHXj&APLa0m2WkDf32ATzp0FH_sR5aau# zHq+szJ;KwLEJmNpGR0Q0faR>)e_KK6^Ez9c^xtAnG%GZbPaALA<n>$9kkD@GUoZr= zE*T%jbwt|h5ocW==W8iQX_5K{u60Fjep_DKB?T`PXO*j^0?y&Gb}<wz0?0gYkm;pb zqRxGhKl46We%84G)vnF2{_ewedS#}ZM%;%-*+3<h?bjWN@ZQ09?jOi~r1$sapEqQQ zM4~vKNuh^Ha9y+q!wvwaEd1Leb)MvISGS&x0r9glyYEET^W~grU4^wRQGUc2)fsD* z9~M!31B7d^Zr`v7m%;ToPI;d~VfC#xM;kc-zlhsdo|E02vjyY{Az2UR65PDl16Lib z+?7TmORsQ&CuR}IkF`XgS?o(jg1fSPOiTfWQQL@-+@GQVV_cmty^8Qc(y&uXWIDtp zRX;wJwvUmCeST#(Pjo!g(hfS~7bkC_nNEN>WqP0t%%U=7bcY@DqD+7vr_!hxuIPqH zn^RpW_mrsHYSoTncLGZEv)b8)#kZ@x){{9HOCa1?YLKqORK)YL8}Del{?TJk4+u7o zNInQ}(NYzK)Pw{mZuge?w4|?>bw2obILLxxJ<H$G%^bH--e<vMNGqDPv9t8AnErR| zKBeDgA)KGvey$ZV*MD|gnZ4t>I~ln_mF|>(A(Z1+PdwRgT~NL{3nX_;pSY=BuNKwD zAbWxdT3Og*RUt02F1~_%trq{5{e6Lry;}G-mqEwEe>AYU9Ex;Bn@86qzuxD>F2U7& z!$=9dwqAAFkyVf$bCOkJYz(~dwOji`hmE`u1j=d0PH*pkwXxg1elkyuCO7EV&Z4O@ zz`K9ifxdoHngQpO8&ZqyRH~F9heDpB?P6`89<KaC|7>~uWcW$Y^7jV=#q|Bg2sqV4 zd-b169qb$5pFQ^{34e{zWPv01xq&QptF^I7VzlPtkX^};1Vq((xxB?d<y-iAGv#HG zngIyoXP`Q1QZC{tP!ZK;mT^0;zGn9}On74>$8V{%c*ML7AINpOoGfP~sMg=pdY?7G zc%<Cw5|n4C>^%=(Heerkm7`HcizacyMA)l_EjrOR|LDr&eO$ShqyuDOn@J^5kI$bz z1=%oQZ1#vVWZbxDh@UDbJ)pefIo^+pQcB>>>>r=BVmoz}s#6q7Hd{`ypUu8xq|wLE zc~q+6HKjx5%{ys_FnLsgj`$&7`klN+6RStCpB`vCVS1vO1|hOx)2-U_fKjd-?P1D% zf6aSZD=@~b*cl*KLp{Ao(o;57&WJSJLx(<_A*W(>A6&5_&#r<O;QG(MluOHc9Hgq+ z#M*otq_zHm<!kKw_d<PDudWdZa&9J^-91zGTiJTtx_H)$bv@}}ZkTAb>)rqQalW;6 zyDGBm$`B>aw<7*I(zfKrdP(q%D-VA>=0haZmC5WwYZA|kD6vQWn-&g3R<yKfiVixn zCqC=;j>Td`R@tKQ>$?jn9KU38rvD4*7PWm14C~Jn@@bQX?~>S?ccl*0_&sjTXWb;# zG8TXRB@sCy5K-Ml?x|j2%dsNum*q2)>a0fL(CeYtSwy~{P)}vy1N~oz{fT-y&nnRC z1vAt8xkeLe@RQ!4Y{1i)6X#Z1)j@GDr&xW?8qS~;TZVQ7<w71=?VgY;)eF1)dI8#( z`o5*a`o$I^2~&jC2|c@v8YO98`7XKXrb{}fT_{)TPBZFDM<x)MG4w&K5H_JP+doYP z0g*9DA-jGC)b5&9g=@bU9ie_1#Gbtkhq_cJ*Bnww17$A+w;pJ%hs3hXL)-vz&ls|N z?!Q(TmQEf}n<kHnu#PxQ%5@mJBKWOW>`(~U^i#0=%Zm>)C&lSC$u$9yr6o>Fw*m1n znW+L@Uk0j-TV<vORgOo4Ec)Bp`8imENJfh4etKk5$uj;fWjE;$H@Hh{&olcC4}z~t zn-=~zR39T}*^<ipll_2sPqZ_RXA4LrOeF0isNe}#w23oM@XW2?{@PJ<sW&MkyQJ0u zX)jTpT2SU(D-(QJsYRRyRZhIEa;R|*Wd^JoS&x`tLoW0|Ap057fQMT(*upRkrzIB_ zz9uFw)-8FRwRrgiX+df0dbKRHOtTes;OCc^R=59N++N{U;lu!rB7;dvk)0ppr;fv^ zGEH<XMXon)I1@6cI9A1JhME)(*j5<CXmtu*Dq>K8-<?dYxayy<-oLP$b)&Cjw1)W> zQ<APvOBEMjK+kKmrlSbz(7v&C3j5^@1rLVZ@HX7gXpiGB8AgzyGmcKG5)igC`hA_F z(wDncFJJ7Pg-fp{X{PiI#WQRU6y8wu7`kVPSJN&pw@yC|`s|1J%b;QYaSib+Y^Alm zIsdsx8MIxTL4Ol?(JB%5PMhqhW^sA5$ciT8mXchtXXGzy`o1<;&q=}HF4D=SjQXg{ z)2+$speKB#!24WOku>IMs_{zwbx23JPvHzTBsM!M@7DbH=`ZZLfrMsUk*C-i-|p4S zP(5-)1!>W~?}S=`5w&3Bo12DhJ!Ey7J+><jLwBU;{xLP4ilBPZICVEmC%?qaoRryc z#?S;bg`OuNRQ+u~SR{0_+Ls|k*P?=qcQjPiuJ6x1i$m8rEyV+-UC~?#<G;mN5?40o zcApkaxo0^}L%C-QewzZCcULMk*Igh!p#m*MQ=HbjOJ5*fz3~`pcRz|(QLl0!?9r}_ zzK=i*<xVy)D0_5<hZ6H*Q~9jxlk+#8;%}6NvmLwig7_b@cg~<UvI3MC4kaQPRUSR; zR8i^Jf9M5kb?yN!!-I}@_r$Kx@)xcNiYskAO@a8uw=yJK(Uk=fm8i@w#P%*;2zY3N z2VF-m3rXb1vc3kCbK=++7{7-HGR8}<zxFGTt;0S9Ezc#Z)NrorG-@}-y0xU+tmI`G z;vzRH{R=@+z;qpz$kRF>E6dQ0Dnne2D+y6#1jx;4e)SZ1C<v1Gn0iY9)F4KGu_V;4 z{n}zUk$o*1y8KYSSwcR>MV`*HPJTEe6@rm^`i8RS=C?C8@;|L)m;9U*DV9Rhk0`}_ ziZHAydBxWf4cg~plIGf9sk95`b)5`c@f_vz*#E<*NF@AR;*d!s=*=l^L>y<4hues_ z#Y3EKGI2J%X5qOE!v0pd++&HkgBg5IHusBi8G0IWa~A!x*42Zxb;~@rO{}8tVPl#E z{@`D)v58Xht_x=+6TwS4$!2Y`o>?o?)mc7Z-J5pyv$fe`8Hri&hLUKpz{FoUqMsRa zFLaE&WKuc9en};=EVmTG>@^Dqh$2iCEE&tGkLtt*C(WJk&Q75Wf?L+n>oN-K9`I7I zvur&OI<40$eXU^~iG`juGzRT`Go-#U4~4uqn*#;65J#>KZ1baT2N&|IA8-e3c64ZN z8Y*2@?zIueTpf$aGathERa_!4*@|K@oul1TAN9&Lzs~p6L6vYV&ngqXM)!>l#JhDp zkE`s8wR90Wz5BdQK<$7aV_&1l+VrhtH>gGW0QKUO{^VVPA^{?VzAcoPoj<+KNu}>W zVGLQ9%X5{QihuV6aE~I|%{sPt%d^*`6(@}g`MwPyy$&|tsHsMFoE?|p>bA7QbwX6S zj%e32cCRlkv^sIM-~Wh(X<!@CeHr-cC1(<Nu+@Xvy*iU*@@YFNy%Lh&@7v)icH2+a zKg+PZe0}rMWWRZC3oOhQVr#^`e|XyQ_)~Y`d|JjBD^kA7K;OyNg;QxnABSE~-<SV1 z9Mk9nvA7^(QZZhCXz?Tj`^$A!{#deKspv$?fwgTshq~0&KX$QI+Wk(HQ4&A9L{VbH z&!AYzj5xU>In5{-kc-m?@>Xt7+-PJgHxaWKvt0fr5(I1O>yVEVc$f7qefqDz0;P|@ zL#CF^&o06d9FfJ~GnB11g0v!vapHx@eX0JC-N=;*N_5jN##s>*HQ~}sslnHv%USG# z%H_DBk6181dyfONYxtU9CcK+8efnV^d!88QjRaj>?TrAh5BD%c6*tjW1vYcvr3J7$ zdm2fut9^OMqIhYCM^{BlL*G4klsFPA5s#ct)1^^tu)bI!k54B-9PPSeoNYe_zXx~8 zx=(-gbgpF>@w_Y}hS4#>XE_I2FRJ~N?6S5S@=26aS%xG)!!OORHo>y1Pwyn8#mFbV zVmB^B^<Vd?w!t6-t{**lAEy4YB#LWEYTBlHB8AVpnP}c>WN~Vxa|ujk+0J?e+dX6{ z%rNi=%c{iJHG(%t&D?~l%jI4FIaWj3xYK9XrrwtyHdHPh+Ax<VDo0U!`xj{JLNVpF z$tKAkcgt-d;PO#Lz)w6+$(N8|l*#InipNPv#MQqIU~696YQ5UUlNLIWQa;;u!R4D5 zOQgYzwhFNXXO63V&%=>rZ1<BCESe@&00%@4+CpsR1v*c@*y$sh9c(vsa;n(1%loSq zo3u>QyLwNIVt&kv`&^3on_<l{D3)xw17O#&`K63PYJOO>?k5SU^xVB0SAsnm<U@B6 zoEywJ{gPUCN8GbvrZ-hCw+z9!cc``1o=`7Ninbg5wg*LYJEV3^QL`+Wv=gkM7L}Hl zb1K*mYiuL_X<D#lTG;zP6zsBvwN>%V?nU?m(|PLF`}oZTS!CP6eCL7~^c)g-Woc3Q zmj56NX&_+3g?;Qi`ue(AA8k9CcsQDCh{aS=e6+1+n7-A_PXRqcS)q@VPQo%9UIfw_ zGGqBwwMFW-meNiqg^1$kTO1K@A+rFvW?%Vmpx*o8_Mdy1QqI*s#b{{$zVvuRzQ!3R z^q>qT{ch!M=TyQmKq>_{H!H=!X->Ibd9EP+LRl)r8SlGQbv4!&(A0E^CLxvo2Zk+2 zV=hO*UoQ4~9)p)+Wf$kq9PKp@B;gHnmqbJ5*~^VKNHGz9)mAUt@iR1`w9Bogz!+=j zq+td-8>1@FxSUwqbOdL!&!%bMO`Y|I_C@h_azFLQwkks~3Nmh}X9@4XK1pDUB;*%5 z7fWhHjCT0I)wHhT+TwW<NcwRI@vhmrl7Ma|q_q{$a4#x;dF{2FOkC*kL)QG-NFLWX zsVF0D6~+<~=c#ci_f3Suc*93iR6F0jfg|a!xWKPonD>ESgDrT7<Do*bAj0s_UfX#- z3=(o8#JwB5hTr$TCJYf}4a4|Vt$iu4>Wx76ai3wN3RG%1zv<TE1;Voi=VPxh`+fme zrTXnT(qGyPt0Gc}RE5LZX-i3d?ubyC@F{+E0oN(p4%}S=;*&-Ww2X9F`&9Q}KHPNc z$Df`nB_d=sTEEBoWruK#mf8uE%xCF^4cj{8CnXmxn%#frdj$kpWokbBT|c*cyT-n9 zHqwj1)!>b~-FtNWvtm&&{u0pe^H~e%&#|a-*L|lv8Mx|BhZ6Jc9b4|y2S3_c{Vo5M z_&|T<mcu|$x=|KO{IaD^I_BtND<r6i=%oS)!JAx<<}ZXC^inRQf)}=eiC07<xYZ*+ zaCci)Gr^`uh#QGgKCTR0@M6MDL6;-J-m?4in^!%UE#&p?`h$HME8O#t9lLL(?KHYR zrA!cTHfo=5eW|iL*pbUB6MmLjyER-e<)Cs%7mUCv1dkM-x)hZU%?A%msi8D74fvle zCAhkjl>x5o9hYVW)Y)Yc<yjOIh0`}XwiLa9Haeq!qmmRK)h6m(LoaKpf*ES8a)Mhd zQ(uvXepWDalwfLc`&c$fO2KWJmb>GkfEcND#G~%`;aXb9BAY(2Uq3epJ0DvL(hp{Q zHh?I*Mv*E?@VfCn<oYxp?4yGJe*iQ=%f8e@-7kLjk?vDh$<IUg-{|gKJr#QO?R(wV z-niTS`mL_}@4t4V`_k(ld}BLFxnPuiOtq0+b)3ZOI;<sGd-q`zp-rC|%YF1ShbCW! zuhN#>^L63TH9x^G`Ms`tHnr3bT3?f7rC+qs)puf~Q@1z%Gdh~1^M-ppHE?Ycp>nuQ z7)N$JhMWjTz)|KMT8^S`A%la~7@z^K!E_DKH7DKR{4}s;0^64$m~R4jFef3(T;8V9 zA)m0V-IDtFjszl0Xe?>NztQ24Ut2=+oZ8U)KmXQuyZ`IOJ6CKwJ^;RY>X*a%?DGRk z>s`&^X}w;LM@jI_M%SJfX!?NAsX-Z&WNvOtKs+(u#aC$?U&@ctwZp4*d_xj1Yw@vv zLuF0zw92`J@L!g->!yJ*4YWk4&<@9wPeGgfoI)IfMMr%=00m6Ca^d5!;AZC}_<hdX zP76pf6(<Kbb!o3o5)hn}U#By@HaJfWlyhgP1Qxt{UWJx<YOyvS*@^prIceT_jidzS zc2VoOR^rsxee<}++4Y_bCI7q9o7z6}Ye>ga>5SnCrs&;q2wjfxQr3m1A-$L7V@drX zWy14ygTA$OsSe^RPF0WD*okfS`OrEZsD0cL-I)LSc9gLVTI@SV@RszkMjQI5<)y1* zCunQP)@U471J}=!PSCFj=BS-aUsE`CNjL=#B0*TWaF*@h*tN-%jkJR^)JB~NFJLp# z`y3*i>i~2xWn8X<F0Px5`Q-eV+~$xuX!qWnG2hHjVD4nzl{8Xcmi1kuwH64%93X*C zNxKd}%DR1Aho61+n?CqFu%<qD)k*yJ5FNa}_S$P3+d8)YWiNu%>*xn<K-xH5!*=NK z*kd_lZ)N$mab^$Oa7ubpuH#2bTzcm#&13ca>#;Xy!%O&FTMwbz&X=u$mI$pdz9t`M zG&P8@3oWRtcQdxJ!ubm#IBzu0!HI8^X>NUUUe8y7002M$Nkl<ZbaOR!JbVkMg>nr$ zl>kqjFXo{{NT8FT$-EInnRjTd5lC&*tVNo=`c0F~k9+s-ZJH?OFYpGk0fHyx&WGS{ z)A`jOebQCADU-T2&yg+iu1R}WTE-*^8d`OLrObHYT`;(YO`|y#=nhYg>+S>TAaiG` z{%Sll4n2l74{P1C2k}5@zq`_=o7xAtXaDLlhmFHA?Xl!#SD9P;>#Kp52(2{sCZq*2 z&SD$csX-lwEl5GvVhCL8@47;JDs<W-pI3+MvabPSufz?}w|k#tC;`5*LqLL6NnjE$ z^EFQ$1Q8DNxQ4#68fWeMlCQOChaR2iXX<8A+8yd#>OF~}GJ#(FZh}8DC?iiD1iB|{ zaChN9eV})p{e7)N^Ll9h)VSB-zWmDDKICP8z<h9BCS1lL{(c{QZ=;!4o6S2hmDu3A zZW3?PRjVJ?Kud&%bu+uhV&xcG1UV5&4RAe#myWX#3Z^(4kT%ae^USqf921yCPwjkK z8dy7ML(kKkxrvNLQ8H2nx%<>q0tRzDPkht2d24|dSf^~CyiBESF5!FM35ulQ)MT%9 zL=X6+6Jun|jHPqx(uOQau=9J-)UDy4@FC!D(60gGvWv}T9qp%nUZw1fEk-9({fl<7 z_dc8D!^9crmGw1!_iOw7sUx6Y8_*fgnzyNR8s7ERKud)7F#Z-Wj>BRJOil|aN97e6 z0h()$2A=y&WcLmZ3iwQL{q#uvu^i8asU!cn&axj_^+)U8d?@D$M$7{+wD_4*>fjCG zYzVCIM=&hW(NB_~nk;_EQSPYLIDPkg2S9sYa_oyPzB5iaD?2rajTj@>&W`x-l3(@w zw{bC+?#m}b?w0_1+B)jwY6-ndZnIR!rB06dB%|bG*K4|9tNc!qp=~s^kw9ppZ8`th zGGFEZ@mJcQU*f7aM@suwc1REplu0pu%_V%{xqUq0kfU*)eJ%6Y=PBz!xwep%i<uy< z43JD#&Vy6oT=K;$*8nc4lOScsbUOM!HeAXAc5FSKTmO=XG6~K?Z4PCFp<bj9A)}2C zPoB(aLB$YQm<1o?=nJsRb{24WWfG(eXuGX_No(jDz0h|a<9&$6lyY(ymjqN(+8h$6 z)aw-cfg|wZs~zN07Ju(-e5TMMr~c8o?tXpFnDYa>*lfmpPM@cWOBb<2eu(|`#SP(~ z-pon!y$?^BgO1pwbCM-CUF&_Sou~hOoby!3#<6uF@s(KN+u#27rpxH4B}V%gf%B%> z5}^Z)ABW=Ls1me!)rXT&=A0l;QZxo|uQNnX*I5VGQTEt<&e4H;hXt_QY*25mWdU3> z&=(A#i@y1roz?KvcNQ=Rppy)ZB~EAuzYH|eFZ$#W(2!l=UCRg8QR)khLzzBu?;3Aq zUwtwxDMJ$<rwVj|$GNf_KVuo)p|dTSfs-+D?P&gNnPt#pZSzwpWxP*G_clwn+0T%C zeaScd#6Q$?o87VBF`%P5QBp={OZ7h1-_kmI<NxqwF1mN-lO;V8q40fOlAyL(JkOf0 zcSJo;SF2zrAu>?|jFux4P;GNgY17V41J_Xl7I2GNHWOScGp{Uw?n}r*o?x}EFLCEw z3o!E37R~gtjRsr?o<Za(+bMJK1vS3{kTRJn6B)SfofB-QKJ=9f-U0gRfinM8k}uk} z5wmG9@eeuZ>XiN3E&+AMf_;&ZyaF=kdhC>);y>=3IFu)cX51Qlpn*DxqMy19cI+}| zW#)gMzfo5L8;;K?%a3_YMu|{-aAK?SOg8o6tm^=$l;EF(zFQ)60;9xevy)vqry<t% z{gs%Zep`9dz%ex-`LUQ;jDdwN*Y3+#<;o`{+N2I%KwF17H)Y<{?ZQvWr=Bg!c+WyD zuuv9Iu55@W<pOXJ9P(!OH*)m_HbX&7S&j~RYe0fkGS$1%YtY|?20h`+xzzt$ni)@e z%ebK%n&=M&rE~il!_VB%-*pIth7!&(9hG(TbZNl;*dALbAqkO<j?8s7nQOKRr*AW< zq%(AV>?aVJd-$k<op=&NwgycDeHyqtPtYgj8I*BenZ$N2hQ5%+d7Xj-$E)N`fO#Dj z-7_$ui)YajQwNX$2-cGbm=orZ<OH~`Aq#yuf8dpgMct<FKJDvZqYt;QEd80wIr4QT zGNGSDr?0)T$X(X&lDr6r5=^X_2;s?L$C+Gxe3vq;c^%#AvrjkVR3`{5`I^gT=*Q;r zl;{|*;ov3qxuz~pm6kC~!a0XWwsC6f)-L0g*dd7x`AUdwD&x1T-I?#o*i8~?_ch>+ z|Lo&Y*|Bs<ZhhlT+>{Nk=tEunw0h-v;_bfFOD%J|zdjmhiO>m+b>3%{1jUiXv6XBd z%jtv%J1Z6+4p873ew6JqF^ba*AMJd-G{DZ-06Q};*k2jI(nc0^*X5!u5NDf?v{9dA zzK<3fC76>I+_hd|&D=&;ppJ)QEzES10G`Zv3V)>zmR_S@j>l3uQ`!me93|9=5cwSS zQ>r9v36@G4L)RI%(k_Q^cPZcI{{(i|4am$+=i2JA=GoBr2-bHQzpTON^J%f~zW(&X zmii#RF?DR)T#7%4ji>(DXX75(%P~zE{>b2nj>+%ZQMNg@EUo|JX`m%S$J2dp&q;<< z=5cPhJ6t=eULt!e6i`Tn@_T~P;pnzZjMiqO?rUxOjo#^NfDKr@obxrHBqz8p7x;3n zB;d6O)~|n9B(pe{ZE9`k2ZUB#Kj%J+voo-u>ziyTn?r9+T)eE!1De@^9@Fs}a_~_C zH~l#JWWkG|uI5EqAO09$k&BG_jeU-_nOkRbj9mI^|6l0C+N1BeiR&e<B{pdC`WHJK zlTjUC$=2&R5beg6-H-V^c*laFzRlxo%EoU;AM6E0SI6SL^?N!RXo=A2jK%w$NPtXa zj>;sq@Y%iKurjINN8a;=#n*3=%KvA?k#Hj61)p}I;#ly?!E!utI(ufbk-tV7$bv>> z2@GJT=Eu;Yo^rNXLv{wy8hRx)ZN~ZtPJK2P5^!jr03$q=0eQ-58vDK%U?-s8M_-Xk zALQLPBq>S1b$=O;x*Yycn;N&g*9Of%=^s-z<y<E6WN?%`4F!HvXkRK0f55KzfGJRp z(-ize;KYyZ(igcLdFoyI$v(R3t>Jw>5x#o1SNf-#4trdK_nPjMdvj$-Ms<>7`tX!D zc!^ceC)*f}DLgcs%h13Fp8GQ7xfm%pv;5wHlegQG`+W;(5x1ytl4W4XsYq;+6uIXl zE!H(~GAW;v4Cx!)IIfy*yKfqZ25cBu$i{XngFAL+Z#halWx$y|n}b6^L;jag*<PEp zFUwt<8+{3Z^1Pmv_I2B}@A(%;^yoUWPwA`H9llH61xs)es4fZSOPXc-vK+4^FLW6` zl)H8&UybWN{%TV>^G|dbI>y#GX0vFBTzu^=eGk#TPUZ9;``RY=CF+_VB$u_;rsUK$ z*Cr?2(icf=_&Re1^d(E`wA*Ii+s0yPJ$}VVLy&ooKiA@kY)&Nk@w?0hO#?L05}^~d z0~1$ZA`vMaQXYTr%K>o~`UP<&QIS3+K}n7{+--{rdK@O_6A0Zt8OSQ(LmNbPa?{Dn zFTcFmfl4qFn(cf&HNYm=(NKaiMJsHW%_jk2b8HmdEVc<0V!Jh60R^10KDMh&aB=V6 zz4wEa(5vadbqMw|w@R8d{;v0UG?#{WpGsd+`qWcTb$9RH?Y{DruWWe7x4Ewm$7eqC znO<@?Z{FOz=J@Qh&vuVJ_SpM4Xz?2YT;mgcp!LNsesSX`zWUX#ZuFHt^k*FT3&5A$ zx^-*gv$R(a&?NVB&po%ff8m7}HguNg8ZG+6gT51x$EM=vB1`1ZabJJN9&ho(8wP*y zrw_lZzpmH(Ksjg5Ne@{Y$*>f(Wmk?lUzO#T^zWQRfzLyS9hW?@Z@@O;9~1D5$CAI2 zAH3odWFC^oT;!{~Rz1|Vq|>gihXz_Abi(6o(KDg5_zCtL%Cfkw&3+l6rQh@+xX2=J z(GgT|o;6<Zoz=bc(o1F0``4Ul0uzocuh*6IN}SMppFq248o1Jcg?pPFmh-4jX>86R zkS#%(wy{&Yh!)n;M&S#%&B<&MC@XQyTQtlYV3E#T+7$fYk9z%C<Xxjt(kXG*xK1DX z(=Tw1zabv$ezkl2@y9pCH*Vb6v<p4-`IP97o*X3@yY#J`AF$yfprg|#pL}vdQ__P@ zsW<KP0g^~bpl;v3y(#0fBxrDKqQEzP&gEF6i{~Y}PMe(3&UO02Ov*NlE%<}3qd~t0 z*sC!d1Nwt^O0ZTyPBwExpg#xnZ=RR~=A!u;J?3n#>?`J&!z)}og0W;QI>-hEpHq&z zxwu9Gx?!aKIeQH>uX@5mXrc?CoXbGZB(|fG$$khCvIu7}Phf+$GWeUrOPSb(ZrwgX zQg(O+I}Mr!N)1@ZeY`^u5L;xgY}7emF-(2R%Cq1*PdpP`vr9C}fS{b0vCBHRFX_5Q zCr5TD-G^@Q(^p?zaMnDNlir*&r$ax1C0>RgdZq`-hbKCMrX)XTm+jq?zl3s(l&gmq zc>ek4H_0x3N?NJMyF=f`;p<=j`uloCJN&>2xRyXmx&(M$ZA{YA*GJlIJ4bG`LMP{K zZOi(;He@-KV6^1*RIcfUj{0;L9@)ZLiAQLj%9-r^i2#4DjIpbn<CoBMoC+ikniBia z1N`_g^WA0$8z}#=@e+NViar`2>uBI~EPNe#E{cl4#N-8>Q60ohnZO(Yh=beQjQkl| zL<E0=jJiI7;0VdBRW;4Bfx5^Yr%W$%9eqi&U0<dKEO?S@Hp5;eH3HKByGat0vY~SV z0rjPQqKAgX)O<+rjCP6FM>hclJoIxPT){aR&;;A)rQOoA{_vom1Pi6UrqI=%?7-%X zr#O5TdXgDOEvNp<q(ptGZ?r-au4DzxK0Nh~&wlo^nr)IGeJTUm<cnfxM(?3d*Ld~R zNirl*+6B<pKl*eTKIYIwqt=J^wI1itY`E_|h0VHQ?KDot{8FILW|qiCFD00(Q{#uS z-P+fDJK%q(KzxIBz<hLXuEz$@$VT%NdJX4tHE`o{MY{~iOj?Ht?6sT(5XuB%`GjyS ztpvzI?6BB-J<W9zqdxqhAix4F;c;X!POv6OITUbYoIN=jG!67=z)qiqlC35w%7Vyl z5>WTGH8)Bd@54b$VlKFLj!l{enHzoWl(F5+U+r?O&UKOpb%%g5SQq@@q2y^B59EbU zr=A9pFMdIQ*(V1XJ>lWY9Cmj50ytykz!&<U)>-(AfAUHkT4lekQ|8(MAAkHO`tc`T z@7p$p>2vIirhe#mjy}g|s-wFG;~E&!w{b1U*7z8wq4jgTm(#12*u{?dqFnF7DP6MR zsfoufeQj&Ymz&3Pc#*sXU%XV_r$2hS6dQ<4?L1!t?TOHQogJ-($t-Y?uyA|=gd{we zO2A-pa~g5}oS8+RGjS*{9}S0w#i0-2qp5$6B>^BlhT8PeS*xrC1Z!#XGU-TW*lV9{ zDzhM(2Q>trz2~~d8M-$g>o(|sl;^BW5XO$vR{}Wm_7G6_hc`OoEAZfY8{j>!sPGBy z$;H=rO-&!A%;*^#M?msY<9OQU0LIGijs$l}Fv5Fil;`NYEOV`o^dkvEGf5kH^ID%V zDRFB$Q}5{yE&4=HACB-aL?=3{@zCOb8;om!p4dqV%IYUS#sWC=1qqnTcIR{*dGH+H zCLUN~Guk-V?kPZgQGCrDo`z(gqv*_;|6Zc2IlMI7)73yrgid#C2063X3lPc$7IGY5 z8kT_y{4zk4{3zpO>UL?La~y{L1Ssgbt{3az@AI4mE6#DLv)?C=jrQ?1&}W;<*sdeN zI6De%Y|Ffe%}<pCzC|~4BmG!hGryF9;FPqLCD1R+_i-&SbYu>t4>Cv&$l<8#gXfH2 zL3_UP=IKr#0R<XpM!)J`dF7S&Usa1f(k^HE4<rflyPuLy>YbHKl=uR2m3@X!c=)B` zBw1y`6`qx?H4f-F^y@$yulOr@#2dhC^j^xUybk2wYtjDJ8ZeI0Vd~gK4W)iFMzMh! z_gwGI3A&gId}BEW=eA!HUxKnLKm2cAk3)}M;*;?@<cHRjqtQBT4YWk)w8y8HyX=gZ z)D~Aeu&ynx0Sjln0B~+_B|#j6^BgB&@z6d`h0@m{&m35snBW3f$ZA;+$y4j=v@|ee z)3F!avKjNi5qnB<WM0gL^yzG#l!y6(X3FrP|6@V=Fa1S$!J`C-Ux_TKb5@oki6ft& zUBI=Zgb$Kfm36_<H$D=ml}VS^c<Dz!U--foHe=*^2*R^IJ?VBI{pv%Kh7V=@gygD^ zXSRTbHfZ$mJ;cLUIa#A?v>jzqlz#A5;)Z5)l>2rb*8sa@FB$K?1SdL2$u-<_PBzI~ zCxHAKd+w8eOoQgZsQ}*R@?Y}K@5Z<A@5VWEF?hy*Y0?-P?R?%E7+zh@Tdr%teVjxb zmsiy|L=&9@=t~YHOl44!AaIVt%0*;OyESnI6LI{J*ZnR|b4~slt>bBc4G4zVc4@1w z9fII2hUN%7_z8|vH%9_<u%w%|`ZE{JIX0X5nfgPY^}me=JST{BP9UzF49;{UnD=Vi zi!Z+TAw82x@{!M8!|ww${MHIhM+w?E_%#222)(|3w1FqsK|`PZHxRz~x+J&yDrG6Z zESG+5F!|IrdEpQ79sDI{bRDHV;M=|a@K^%-jDIi7+x55x=xj)D?4lmq*!#JzAM7Xc zCh(^rwsx*EjgRnnZ4#i2vpJSmVf$LLi3ZnK11%A{kg+$B1tvgn!2u|%ouGx4(*#4i zwVTS3KWRULvezp8mr0P$IDGQZK`rxMnQ6pNQUd~DbD&K0^8~{p8DLAw?VN%VKR8p) z+Lr-HUz<AE@59-5nfY(7BtRJIk6!TW5G0281QX^T|KgvOqJ?HaTe{E}-MWS&QS>Cb z?ps^*(MvLl7CddyFrMfoQGn+Npuz8{=K}<V{D7TaG$I4u@?nRPXLS6|$p;fk9~t^< zpUD<k^yi44%D$90SXTo>>jQfjs#}+X^{It#bA=qSZT5a0!QA4b$ZxLk2mH%W%v1ZM z>!`EqEc5l8B^Nm2afC#(ds^O?;&KQA!2~pA-IQyAqClg3jld^!^Qv7O@Dy50apJTD z31xrE+avC!TD`1x?B7C|*CE(FJ1v7v_9B>;#ITzrPjfYqB%!p$l7@a9>MhKN3Qq8q zz61uYmC?Z%lz8DiLA!S9-TMcp08R;!HTCLB{1P|Ubi*elPzg=v@*gs%JhXF<4jS%D zUX=$2-+8K(GW7xNLpNpnJ|_u^++}~pYRHe5c<p+=2G~Mv1MEg3act<@z?{RAC!6ND zwVF(P-?_prx`^DFLphhautv}kduVWdHPA-?0>{2@!k1!l5EfYr|6H(mShUgLqyqZn zR0Nbuchy5{?2Pa1l9oHdWgCu7P`gbJWt(<=nHpfHj`~#z(z0bw0l+Q+5c=$X2-qyp zpX)jR8)~;pxw)9WEb=+b`EBz)!NCw7{<q06)OJWF_;^fWAdpkm*VkCzefa599s1<s z!)h37TjQ>AA6fg7AoSzs*66Fz*sg&~3Wja&B#H2PDIaAc=-Hq8Z1?m}{z&)47p{Io z{LII@haP>fyYWLey1Vb(?cRF*PWRn!eYbn{E3b9G_nY7DzVqU(?MmAd2HrEzm#pLF zcnu{@b;g_D&xaIh{C0nRG|&>E>oe9Ll9Z$HD#;Sypz35t&?4CMw5W7AoDD~ovN*RT z{c3|2$JH0esK<jo^xIyOqmc$QAP@lM6QNDP)gQJZa9}r*hq*y~=nS3Fv*6ylcW*=6 z+zTK2leh=m2k^6GzMxO01lX<<80dEl^bdb+9gOvvI<n%=yv4&lAiKY{-s`^9FV%ld ztM7hW5=8#kY+w6Uwwng%znlx@9NCTX?yZ*u{(Zfg^K6)Jd-A8B=zj7S|BdeBpSpUz z^ySyP@BQBQy5IluE8U$pKG@8B@R6(kwe!Tsx+gyWiSGG-_qp!--?@51`hR|{`^G>2 zW*_;zmKmG)ApT&^Tu7`@>(RY&E`2Io`e|^zHE`c2pLqISp9-G5dc1n$-krXxR(1gz z-~g5;LSy0!AQE)J<8&l0d3`QB@MAQF>atjQ5>zK*Lv6-h6C7&O$}d*~?7r`*CEJR9 zm5cBcO|W?j^;Fw7KeQ>KUbIu^pZz5uNZHsKZE}#IT=12FvaF_);C!z9HJx4W<3skv z2l`|k+DySeoH=@*BXjheM76K&+~BW|Mk^cE06&oNHy*n@5gzX4_%-()zuW!nfAYt= zhaZ2q`^LZgM)#eUZg&q{`GN-?d~hpskAL>j?#VAc*}eU}x4SR>!!IA~2~qv(zOj+4 z4Ee|iVoayt#IMBP&q=b<S394+2JYVXVE4+^`Z)#efB4~#|BXJxN3IO-zV6+=s#bOZ z8jzU0@x~jQuPd!7jzCKQ;RnffU-jYskw+fcJQccgXL)k%v$qy44sR-*`|i7M6QJV3 zj=cY4g0CFPAG}%=d}WGG8eFypjIkisn6u45{;?<f%}(lA(vWsJ`+qv{$J!(Sw*Y%} z6E8VJr#=e+*!mdVv_TgiufF=~NASt#7z6d@skyNYcZ|-ib<tyzI&*YQK!4kKP0{xf zo~9&0?8HYK8thL4=A8iBVJ==G{DGhUZ1*Ssi=Xd)@5?v4mw)~014`d}ce6=iJ~<w` zva>OG>-L@QwXa?MBlU+L=zi+Y|Do>9t0zRae)slRlb!3V?fh5ie_Y2`ivf&X9}Jb3 zxN!K?%&+z|sMOA7UEjO!{_f3UjUSV)B|>A`x!^jxE&`r?K<UKLx3CMaIJjK^T@GA; zWar1BtnM#;=+`30i3)7A4SvpoN9A^j1e_f0wq2#rZ|C#XfH9T~8S~P9*a^GYmVB@q zwxVqoXEfPT3GghoPdxF&`$5-S`<j{znPd1#&`|O*<(eF5*u<C%<Sg~Lq`l-MdNmHl zK;n>jJD27dzJ7o{Ya1AAw@clWBnW*^gQf&^yYSN5o{t732RCot+{}Zi>(l3d;m5ik z|HUtKzx|KD(!Km!FK_1NovSw~-u}U+icLY+KXm1@&>Vv|UwyN?ef1>i^S|)9tIhGQ zd-Y$Bzg{~=Ypl*&9-h+Ge#E_l9}u(PosZrXE;Rw(RWFy)eoi8^pBJ$&MUxjShsVK! zfqm_KmZ}r@js2Ls#NBp{UrCE(NU*?}<rRmrZFc&GKB$mD2%WU&XdT)rZ*bWf$Q&^K zWAlKmIM{J^5R=RZQUaxo!)Hf=-!;I(&o;+EU*^VAhz{_c>ut2)nk#7|P}#;On(*<P zc9GA$Yv({YM^m=T8ND))3J<%`tlOfQL!E1VZnHJK#kOji?f!adfIYCEtWU0ivpP0Y zf+s<r`-MN){p)}FweI`3-}}UT>8FCb`O@pvCgI1g{M0sh^R@49=%IV(&9}SX{pGK3 zYqEMhdF$8M$kpb{>Z-nW1V319uAS&j;B(YKoS_6qu$D!kltsWHU=<Yh1$5fjbrraV zPTAhh6bI`wqzx`x0~XOwfBMs#okrsxn{sAH7T&RBrd)&tB<xPxdcodRi+EwTr9H>? zmFe5LtY6Zn_WGLgv{?V?*IdhelA)RxxM(YfE3kv>TKm2PDm1kXZg?c$6h2EmnD=Ow z5T2CPJePP=uOnwI&$c88Uy|nrO#`(C*i?Sg8yj_wjj0Epc>eM3kNm}->VEqleYLxD z_1hksg$_wiA6Vz|8{WS9vJAc7`Q_i;(7*ll*H`(?P?^YVo6G!gJwHnSTk_hjn+E1+ zVA97DN@Lwdd=Bn5TCIM68Zb_Ato!TbJ<6PyMSkeV<N^^+PEvxeIQQ_SUSOF=+3*Cd zXlloim$bL_mp~}(^F%29<%~`in3T2iWov-_1x{^|#an^}wrgJ0Jen7~JQYHd%?~9e z(T#KFM%f>}lxL2a%L&}fRdY>UJ;zJB^)-BL@fHY8=d%CQ_nq+-8rtPRJD`k?$M_3B z!PORB<)M!!^;1DxNm@OgQ`<MZ%hy2t5rI--wquR_`Tz1~yEk5WvwP($AH0VC-5+f1 zmH6fLV^_aNoAWB>lV5nEd*sQ7yI=mBzgm)+eN7&~_JNH_YkcmNWez1aFo*XwNBGx$ z(I!iS!)jp8#}YogHCFM-FgSFE$so%eatm&~$ho%=XtPg)t=Me03p8NDXIvLFpVfrJ z<EV##-QXv$9mV+xNZ65kju4$PKvC|<E^pcm^^@`vj}FH4;HzEDmZQ1LKcDhKh_~_| z8TX9_|C_)*NmC!*P?`DVFej!!IhWwO&&C28Nf2BoIjGxg>j!?h4h0`gbJJ1Es+<hz z8-93!SK_LpuWSmrMo)WvmVkzObk)0d1eBqT-#Id(+mfJYv7LuBAkkqbnO`LyyZii~ z{9O0I4?obo@~ht{t2S$Exxw?H$^|!)tVcil2fAne=+oV|e(m=bQ0O)rnTZn-$aUs= zh-S{2llz8K_Wk>o{kqd1{aC{5w_fW$^O?_V4m<9Q($0ZvKd^iL`R6xvcFw>4^{;Ox z>2uFLx7pQa(9N(;+q^tU@k8N#gC9Dw1&&;>&<FU4y>RO8IX`y9@w@K}E`0rk9OVzh z^|$S-P<Vjnt8#*wvb{RN4jOn_>&KbsHfS2ymj-MU@XL8UZ)mPf>A##m{Jwkh#M#{N zp$X^wh`EoZI`bAE`Cv&O-qbSmN^p;E5)vPJaNtW>_{)#M&E-<A(1NQDgkN+@Srd?< z<)bh9B^Ms(LLi3*A64_2eumCZJ@wT4zHbPpl{XF0fHjhBTDRD0fZhG^zw)!)w}0!~ zo3F#A+?nmZJ7Sl<9+x>%wi~;C_s%=rvw!Tf-S7NAFO8w~*6~yMaFRKcwcUI(k1~hM zBfR4+Z-ev_Y=un&JsMc;V+jm0i>YgqFgpvM``qU?0VsoJ*cKf)cJ3_*7MBL6s{!Na zsotT0jYw=bHg?hn__5;^o6Bo7eYh#>`&a_{9O@K^J(sw6#A}>#crS6<b<@D9X~4Y6 z6C?h3DWJplGY8BEM*@A<p`W?Bw68VV@e}@E7@qMH{*v63eWboFBTr=EKjM2LyK|pk zNfMQ|CEY34?McuSEj64{1L81q6J!m4>c@Yid*q2nx-b3jzqyIi9==MJ%Gcf8-@S^< zY#OcsuYdD<-DiI0Gn?NeedonnlSx`{>$SOz2g>UZwb9<7X<(lk7=8bNQF=8fz=$mn zeq0Q^PT(F`C@ef*{pwdY3q}^?yh67@y845r#iJQ_G;*AC?Tq%xg&-qARiC3v->FN` z;XY--={xt~ObtvtrK;PrO$mKy)b)Klw6dmwV{0Hj7axM9GPs}18{1DZ#QypAay}^A zh5lTArr>9uhTpz6WZ;XOgI~&-GHqR#_cguH=}Wk3+`fBB5dYJlX<&&4*q@k;EkE}& z&vvi8_{xTiGD*)5U&UEThH~!f=k8T<G*;i&M%nFe-0GhG$sgJJ(S-1bPe%>bd$RP+ zHTYu47BALXYxiqvU^Eeuuz2$0sgHz+!<Pg-`Q(!u9yoFaoaE=HfBL640i=826*`OM z=Rg1X_aANAk?<Owx^m&(G-!YJt^rQT!r$kR_SLzdjFV$e+ky-AoSw5MG0sE4fr2DX zeRymP9rDJR!uKRevg52iG}vq3QzkeqXz9~%D?3#U)N?2Er7j=h-<*M~UF|PUDG7>P zLvobm<Z$ps<z|qw_<$0B>>7SH0>|+B>RJ-ir<GPVrU7e^HA~DDV8?9t(|`Dx?$%Xe z5)fy7?<!vNA%uX$$Um4A1C)U7jURknt}Nen{k@xSbWeQYlcQ+jM*MAqvAHDf<Zr|g zhX%SjM!$!a^Sbvpng}sIV4}Fr&X?VT%|yHU%10K;EJnWk;aV22jo%Ex%{!rf(_s-v zvUJ@C;E?hgKMCj|feo-92L~>h$m9GzKJdu7Cqe1MNg3O-FpSYmzk(jWoq(^Ma{YjE zVQ~)^P6_F!ENj<I1E;J3ezvsZ_~@GF5=Wgms4Pc~@4ikX`fv_eCfFh`-W_A09&QO! zg0&KV={0}I-?ZRrsRplaJL_D%8Ry;x-zT5_WcQ7K@y!n@N8II$asE$`YjK-v|47yP zrwlk--~9Gy4!rs5_q(Tm`su+Y_1i#0h~}cWvGzm3SFXNZr&GVLvm~f|18QIWG`h#v zz-S_rNoSGZz%70<d_V4Fm@mKl@}^v!1DIeITx~oF0x!P!;`>If4X78QO=0`9R}Bm~ znzcGL?sc%mX6mxBM2OA7A9IW)ze#9nnh7}I3OeFM=^(hVYdEgMXP=(5QJ>^Vn+8n- zr>cQG`3-;Z&*c*g_RJ5n{n&hLJaa+&^2v$&)M<ALfOm&^9yv~duabx8HBY6>x^~?( zu!{z)ZI687;qKk<fAsf1{J`y7?>#B9x#+_K4_tlR!{LJ;Z~b5nzf(OWn!?YWH{R|Z zdi22!s(wJ3;7{=n@g>&rF~IvFfzPAY{0!ufeYd_2uYu7-D4#R7gO=Bo5(qMKi>q=^ z8S11-J>wP7y3VJ!O_*}B9A4z>*`qOxv)Y#iI5p10?ouGTP8<sxVN>wxfJK>lHX~T8 z>qD<T!_(F)aFUhu0Z*T$Glo|~S--7McFtkPmTOw=zG>i8G+@4$wvDg&?(i6Ucjn9C zYv%ywi}@V9v{PP}rS2GKa+R;Zh6j8`<}#V<^8;zKk8?I<+Pb$7?OtD+Wh`~$hi-H} zi179glAcm4S%a<1*4Ny70`$Pu94X7^{#Ho8)<pimyfV+&yCXirwRsr75&xoG8NU<U zlJD|bOu!edv5`P;V^5gWizW0|>bT^mU0;?4J{lPo@|iRyNfr*q8bf6KWqFb&M$Nzj z!C_F^n*{1ZCwT3=e+`(}96%h`zIrsyeSNS2kmQ+dI0OiJZEa2xgqFUvK{HPoIb-FH z66*W1ZtC?KG^X~|@R|meXdv?}NdOx0!+rGNv1|UJoPWyP*MQck%mZslHbKf{2hVu4 z-juStCU1hVTDG<C^@YC%O#^FdfPJ%h8*_Kxxx0DwEk9f6>q`RUDUi=)i|s(34yjAq zImwWIv)=L_?A^UMFq`9vBb6(IV;+h{^ea}F0@}mZPYwS+d*=Z+M^*Lz^CS?GCyjK{ zNF_0Zj)?SL1VKdb6_j3;CWwf>h$#4CLqRDj3Ml&OtB8PD`HKxJRUigJNDm>M^hWah z=X=9>a-Ye}?#%A&?(FV4&u5;Qy>sum=l*8yx#!$A=sfsgM-=LCARao+*9l=>YQvHr z4$<)8!^2VRcY`5N&=I1nyj=RyQ1R5sp&`*1l5l<5Nuw{K_B0Sr8zjCx#BOuEVCD>g zR^<o<1MXC8i07yd1J9LbPzgdA@jir&C{^4jLbkj0$v43K@Fdspt=8Hnedm+NWpNCF zS|EV_MNd;Nd<y^Oo_<J_Yu;_r6>}2MBT>BIQB6WtWG=KI8##ShiH|-kR>q{|D1-%h zSsRxWNsE^j0h|inZQAj5E7nVw)@^0Gwc9yorw}il4o4ha7nH{NQQqW7zFNO<9Mrz> z>m7EWc8nrxDRzf;a>C0eb$~ciua!6Tk^>!q^Q6Rm!V1mm&@{-b`D%JQHzoo_9U)!@ zUJQsA4I`Hqix-^+mlsg)`%V*K><)+H!$(<_{FhS0>|7ZHd?$z;cxE^ZC<rPzXPz(5 zk!zHMDz#E1!oeZEKZ@w{;hrAk$NPlhR3+)h&EqvayU1;12;><7bTURsnz~HgMQ4XQ zFY;VY<PGb%D0!)~U_lw7tel{zyfn<5AVtE?l|(=t?Uk>ulx}^4jfqwyTepWZ<m|U# z;{-;9l+rjv<hNp8$Ieu2h^*Ul%BZ7DdRBSSb4qH5s$I$%dsCex;t{8i6QsN-1C&OG zYFazj9|8rfy18@bx&{@cu0#(aFNeN#`l1k*21dhqd8rgHz4TItkt2<x6<GN;+L_7+ zQ5o|_JTnvsvY}XXNF3(~C#D>SD2ZW0{`%gKSKbLjO5fKc!|!=7kI7fx2%uXE=@sf0 zMn82?>shf96F=#wtaf4)<5}tZv^9ksH|`^=p23XKqe_!GL6t_>_=gc#^2$=_J9c|n zHfM#~GMlZli*-70+O)~(2-<&to9!^~xZm9ew#t&Jn@55Cc08%hiQ^j%*J*s=aJ8|L zI5y$5g?^(a&>LCvEtIF-t1SYZ3T2N`OarNnE(%_UCUxF3hBOTg;hcSs9pjOgiHf1= z_^n1|p}gz;9++V?*NRX~jJU*+4kI%{gfYRH=Y-P1A>z>I9>*gpoOhs+2n@i2#-gpQ z%@vL3iX%y{kt*XxDzlX(-v|_|ml!~4M}#P`ue%E&fRRwl$SRaRi+f<e5odHU^_I4V zc8YTOm}S}ig!6}Ymi)88%6K$B0(1X8PkIjN<qE2f4d+6nb$FYg9x1I4>^KeAu()%t zp}l4Pq=oJ4jpE`}DxA8PRA*%=18qJXDje4SXNhd>coiHG(y0V0UffF;7hWu#-fz@1 zP6fTPs*sA|lqC*@oS?XTaELG<bhL<XJ{9V54f7!`P6LL3-$N9RS5Lov#|~V4(lXj& zN*@)wt|bCA%;=o7w0QAip}ynf6k2bm^`X`V0CL31fd26vA0G?Cwch&SSzME^KYJnz zp2ouvNP@u9>2JuoW$UE(u%2#Ih&0$6Npt}_$3Zwior7z&S6pDsKk`}o##(t}#<H4C z7e`lV2YZZ|E*L!#rw_vEh)X+9J=SwL4!pvnMc}N{>9CutY3qgMv)}0vDCh{KXJ;vV z1gIQT2)|OKsgypiG}lzfQXC=8LyZO2gQaz9mId2)_UqTLV#bEbSdB9{fFllVxaU{% zSAz^gQVlc0Oc^RdcCID@{(G1vU*28SS8?gk1?U6}gtU4gj%TUi$g6dd`sN!t$QVaj zN8|3N4JU7OggHTJk+b+&BEb7U_4m_d+`GoKJ3?+pxFEdPJFf<Or(gsri4%m}{l@o` zDZhTz6@k2Y|KX!`GOMytzkK`2=ZhZF_F3alR-7Z1g>b^cj*HL7zosnOnNdiOkVf;O zW5q8wGU22_@KPDzO&XhC@1V)mzs}vd^|&EQqSl}>X^}0vZA8Vfu)+vXk-B&b5s95t z(G=!f_^!VbRN<H%?^03OMTUya{9zOdW$4wbSE8OJxRDMgfV5oKGx6+jf>2yMxAnoo z(lDXumM>r4;T}qnZAw)cleQYqJuI93ZaxHfUrVifG}wG_k%l}>Off@0Fj_=Ch^h<W zG?n~~tQbig=q&0gQ&-VB?xT@`tYN|kAwK1x_q$yEL_J5>!IzP6BSWB;2rQVoK!&|z zh-}w=J6W@2^J0HSc+dxhh<ZbP=6z;s?PAn#r@q0+Q74)7lgaH-;X&P^-OGxoQ;bqa z5uG+15VDgu^_f{I$Us@JUC@VWgC%W)wY@GDA3KST-zYsom>$TXyp%U`YZ%u?*(1=_ z(plCdd>;$05z1aP<5&#@Xy{8JlnzEe4Ligc#e!17;7`I=<0y|(<fwHT%0LenXOtaf z;n1=nA9yg0kVYnMPBm#rPcOalsdd>b|HejucNC+b7!l8ZpEW*pJxuV!pg<Sop<Yur zF)p<3QNJJzBkEZcAvf_fE~D1)DTi<vsr&FUG6ZUk0G$JWzvo{vY~LZ$t<Pp1fUzA_ z&!c4JUDmdYGY-XuQ0E_f;s4@Kw>UxYB5xf9iQ=6$3?~SlapdbMuIc>Mjl7V9x=kC+ zHHVKuF&#z+CZkQoNNoUQjnlb)zJ>UqyU4ScY=wAaaj(|-XHkYyc-YjqQc!EKG*nic zAQVcJAwjPP_fe`^QK<N;G=W3IiQ_A&dW4FyXn9nAj2;vpW#%4djH+-vjqjg{qly*h zDXDVwdDyifkQ9Mp1_|$<8t)hn{HETLE?jrH$9u01L{b?l84o82IsLUv{8s(smtX6r zUsp*-xfspSHIY%HV8zOS4kS-_85sh3K%iw=CwcDv7i7YT<7L|8(`Egt4XzVI>p?LY z>0Drhl`~sxzsdXk)~uE;-M5ty2kz+jvo<J-qI5`9ykcQ~9WEBvzpoCEhK1`UIMCTk z#}1B`;^N06JkANjNy2H-sdl8}z#d4dLx>L_i0gUt=C$ix>@V~RI+uG{lja*&zDneo zbr~wbFR>$}FMtZ+8^MIpsBo~8hJTNS0wN4!I_?3uNcJyN1gKEODkm>KMiI&($_YXs zlm&(cl~WC+u%aR#c)(BNWLlUUFjHqnMNuWHzl)s}n`Tuu#qhEF*&u)(Mqh{PzK*15 zE*LvF0zUc91>xv#;-!7peV$ofqtmEA)J3i-D}+AMb_aPO;%Qx@?O{YqiSnpJ#65Hy zJj0l2{HSxKjFqUoEX)u{iomQV=1Au*on+jxJITx^W{E7_T#vPW6yoz{P%nswqrky7 z+>8qK8q~`<L9aeGP2e9z)U~V}A#4b(yHR<mK_9+HI2|Q%X$hy^D#gXq`{8q(lY|~Z zSE^kEUvx~^W>9{_;~wP<+e_#mI;d2?5jU-znoszw@`b~j{dYk}h?j~7j|a@d8Z~NE z`<I9rHpS@~F=B))Sg@eO1K(}8-P)%u=$DIWoMz6P>F_pZsIspe#*OwY_&uSTE0u~$ zhN7cl6mo(zjT#>M+cy~Chw{Op;yvMgX>{_-pR}wfM)2m@(AaR+X90dtRthhvOct*( z5unEs{p`P|TGus<_mTHaM>RA&&xlZOkQ>8;c7$sP9j4d())6e?p^yA~+*cwT2MK+s z9X*VI$HgZdakWQS`PkVI$P)t7AD<=b*KClz&)!4k{PQ*0_|isM9=z8{NaN8avEHuN zs9rMeu(56=2q%d8gwBYv<IpGN>Jju*6mOLsz2-X)8XtR=aOyMD)vDc=A_t@n4!^;I z-@fxj9Axy%Kv<Ya>to3}O?9?PEnCubJY#gH`T$|s8tr$%%@UR^UF<3Xjl#Hb<J^md z14K_6y^AcOr=svsTUvsx6@o^J2gL*9B_JJfxz?dboF+B;8V$@ml?S|8L>P8Ts0cVL zEac-^Qc068e5T^+;g=O&@a4?HM2r%yjXEL#Ml34zH&*~BeNH?p6b}c_h687b-{4B! zGBN~`B7mOd-O;+p`-fiOJ<~AG)M?&94fFY9ki>1E;K!@hH8N5TWTJD8ve5P*r|LS4 z2jX$4<5WyOFd#j3j1eMu#_2^H2`YxB-OmF8E9R_}8BflVk^Ai^119vBPHio+Vo~%O zI+d69NvZd69H5<~OV=*)k2{}|g)eSii$_NRbtB4-qyErQz!_ab9N(Dd9(An{(bh%r z)-+3&EYVAM9yoAddp_`{-jgRbYEr^hC7s{KVjE$<!i%<;cAIPBQjRduRwJ9rpydQB z`0Az&IC62iCCt<Rjow3_kq7C~frM3pR95(_j`gvrM4nmmOtV=+!4V-q2LwifAVzff zO{2rZoH%i!3#UQir6)dKB*cp|b?Q|2!tg@jNEuZR0V*pB%O@%?jd+p~AU|EPYbpzh zi(XjrAaA3s5dfEB*hIx4jG^-I{O7H6un<F_BLa*L^X}+-MLp#`qR~!5bYf|Po+N%X z;;1|rDN3|IQB<tHh0`c5lsk&hb%lDXqtaNIAy6v>*3DlpPki|wGBnuWVC)g2Wcb^M z$-?Q2WZ7%WWaYwDvUbIm9U{B-45pe6=q|m7^p<`jgX!{%SILVHPnJc`ZFYdP424ER zsUP7wLY-2l1pAOWi4CH<MeCgMFIK;>F?{C=eL$Y!Fy&Y5tnDlD;7$1mQ)dj_f{jZa z5b|<Aj03h6Wzx=nu2m*2BOOy3=9rcE4;~!k0bZQd_AZfSY%+aj*#4EuBR2CY-H6uq zUgkJA>f~Tp>zr~x;T~Qh4}_Nhhev^$GiQ$LS%VcXk&?bl`rFRgBfxXunel9>uu4>N zl!jJH4KMes3Pbsq%g@qBBfxXxpss1d5*^b*4S_8PptI2lT2FnQuqD>kSLkZ=2)aJ6 zgpAtulp-VP!+6l1F=`&=Flzf&N?w-65U3RbbA#z|9NUlVEq%vrFTF?imXYrqDcyPp zqc_`jmW>-W%9>?sW$EmtGVjIL<saXFQWi{E=<L06ZMMOK2X`p8)>#cydjw;ix?IfQ zR!4;n9tb-WVkVMyj=(D^ArEPBQq&1ky@1Z-TEpQ<82U7d(3cSLiKkQGu)9>YsC1=< z`Su(*qO*_znX@GLaTI$tS>{<yUIpJ43~6<C^kqXhUKs9iF!IA0q5<)*^`+LA0}#`^ zppL2iOND?|&?ua7RCMlqDyBsulNS||iqAV>R9OUg#?(jZmyscm1OeWa@S34;I&D00 z4A2#%39r2gr>Vtn<kQBUX>7<?s@@4ZL6nCu^d!8=N7oF2k2ylMc;c34RtT`$n>&Iw zL>-W<c$dmYjdyi6qHLEiZ|b7j9eR(tiT$b02l`IiNY!l`H+&{-xNgU#Av`=9r2M#t zQ>DCc0?{Y5*`?|z<z4LTJ6m9?WiOU4&3(!Ru5sm0!z)j53w}q4!urmRPP1TyXYAOq zt{gZw{tH9H;X6k>9DTuwtBz8hKxh<MsBpe=qax^{K@1xxs^L#tex5hHc^^1<#ynfj zm9Fe*Wo^{>JZE)!8?}s9u51xNpR2B>vDWWj&}dSR83jQ<s}scg<?EAdr74{oItC*M zdFc?SgpBA(3@X|>@&OYyZc3NjQW^sJK!Ele9gxK7sI<h$qBbIVsg5d^ugV@}Q*sYJ z*d$5$70WN_{ji=Oe{?T;7CoYJC*@a4Jai)4a%W-hkw0w#{1^m*u=g5?3XTX-P+m}m zAV-fLEi6jofONVW!0=!>>kHsJM?44(Cr+bzk`9cV{R49yHb%+Nv&l1}=d@g+GBff6 zFM3V=ie^qwx#*@#kFo=Qt5fN4Yv$M(^%w^bIsyFv(a@pm^>?^#yGS|uhjB4`_UwvF zL>)t~p+kLRt>PJ528KX|5x_2^<C?l(k8QWF#}q1bns1|EixO6CXGrDo&#GGqqus`a z#wM;5_TWQj4*6!GyA*Hu<pED0+j6gqIzm(yD$1luliCd~e)Dp1j~7iH9e~oUw5eba zJ$4MG8C4zuUQT)({EEf1;>D%XmD_Vl4>Hd<??zJPk<L#JJZqd@p1bypQ8%+teEBJ* zNs<);=m>OyZvYWS!;G$`Vdm_2aAcKtmVA&;<<63C6fg3kPH{&6S>1|4Dcdl8zS(j$ zZeawdLv*BJCq&r?+|MJSr_?a_<wIUNYB>`pFHVpzBiG2sp|*3eY0KgCNq>V8`aX@$ z3fDcA4F@xhPdH6d`SKF4s3U}+7}C5{Ivl1>jygd;ID~Ou!{|w)VTG*c+QCrKe^e~r z5h62`T)9N0MXAukV3aQeP(mC&QD;$HMutEb0d<&FPw2Z7^&W-O=H)kyJI=q#UP-ys zXsKi#dFKtzYIthfUarivOZpDdZgHrc0p<{T%&77RD9-9&(AMkou6*w4b3i_o5nZ6~ z3!L<tGO5j)K8Ng5P<K?OIIe}9(YQ28!^xlLs`WN35BHS7lzK^B)Q&OgXt61MlrPLz zdDg=@kt0Mw6vRS>ii#5zR)~k)%O?Ul9WI~JnN(o}P+sN;g;BBJAb?J$(PD%*3Hc3T zlK9n#gONs~T@6x)i^jf~K~oKRs+|Y#iW)~4oxBeiO63xKciCkZ=L}7sKHc$TV~X+P z$Ggtd=bwMR+$=183IuQ*=)|U8@t*qzatbz8iHdx>{y8o~^jx*=&nRbr&f{XTQU>rR zy><@7l`CyH{5W{7;DId%`La^KeaF|A!QcF$P~Main<ER|P$-{D+^bGYQVGe8XCwlu z#CXZGB>4K3BTL@KD|-ZZR=%RkJ_qAi&j`@yVbt=DVAwKBq~~zCFgj?Yb=_h3el32Z zkNk$ak}{ANSV7I`2vK%=tXUsCckbMFEW((l(Kp1!DC47$7~DRt<VR1wj$DTGN%K36 zOlkNwYFyuO;F@Vs+UcNY3|+M|YKeosGkJQ(DwE=ZY+#j?z`Rm+7SE6Aj~sOF=nO6L z<e(l>?^Lf6rqc|Q$d9v!Geo^5Z9P%)Csa?RYGPTbi0lA`haWZPw-jjLnWi$Al82?q z9sv|;STSdxi*c-11bqEKgAM7~FB9((J;gMhm1?B@{E}SLV6*W9@>W_V@<OLJD`6P% z>>)PE!8ihU){6S%JJV`p>3!NGo|DEQoaYCDFYlMWdoyOtaN*jsOt@~5?x%N=f`5dO zABJ4`BjOq#`Ellrk|V%#(YmF^F=q{<_dgC(o_E~6<Ps!{nddeRryi#usf@hyyvK^M zj{r89J_kR%lxz6&e6^0j13AlaU??NcTt~pl;Z;hR%1L96P&w%3I4v(EjQ|R%9MT3v z8?thES=#C%fU>jcan;4VUUH+6O5@njpwrMrHPDoqd)la?cW4YNNf^g!Y*l*m7V=^= ztXZ8Qo;i*R#5HXT*bf~#)HyTY&-58acOW)QVkAMGA+AZoCpR<>BTK5Ac(-t_IO80_ zS4W=oIm1hLtlhL}liM+nu-4XA(J6GKkCO?0zD!O~`xlD<xI;W64D%=hoQ@RYsliLV z$5>Zef&2W12lt2vFD33Jbr3X7y`8n(Y2-$a#_8EKeB$C#SE<jHz@BI9Z_Cc}&T1-c zTzRqxFZdmyEHW@2wL<^}q&<11N<n4udx1*jW9h1o01C*+5Qswn<1{H@@aWv~s5IKU zPs4|S!!!vRM2>QGP*i?|VJt9Gpbl7Eyez^gzZ!>G@T(^t7;_j-I2v3-z5&cLUb=K? z`v?&Z3+)DR)cL?cfpC&=ocOKJjpwNCjJ_*8SMtQD9zJ}ybArg9^z>vCh7%N)NqMSF z%a<>A`D*^n`V1WiDgN<1z!Dw7M?vF=XUDVWp!0(c1K)_pcF=pg3y`);<k1M^J9pvo zsFN5DFZ7!<S`YkqQO>A;Kh1R|vFE)}{#rDB1zS|z_cqN?0|>&<F(6%1!_YN!gLI2@ z4BgV*DIG&2ponyLJT!u!beFWWzT^LQz2D%RefHUV-LdW!eB@L(28+0S@_d~_Apd6S zXK(_Y`DYvYw9mX4_@UJFQr1JMgAh6F8KU{NEsbgf=v*^AdL7iDED-UtAp<B)26K3F zcOzhC%N{p8!PnR|=5ztCV#}_7(8A|^_st*=>Q%$>8s4^EtIxBKU%MG)J;*w>GnW3N zh~yCGR<c{&-|MZfxm(02Rq!B~?w7UZHh?%Obaz6IQt>K`5Ud4JGXj$L{VA70>GYF; z6fTGaHQRqkiBf+7R9w#%5MzI-FY0z}s+>#Mu0D}2pjP7B`6EuJ#8>N<)OhZyUZ<jJ zfAEUKri`6^n#t0rGJUX4kJ=-`Au=%YvfOGL|9)60_oJ7(Z>|8@5)m)P5jrX*o4->! z(J_zbPBctEQGL#ep6y<p@PS1|R{H9E8p>X_Tb!z}ZzEy@MAT8l?$=D`?2muJz{{tv zXye=Jcde+lPnLvKqgKF(5SS}umc{lwP+LI>c+#kfg5O=;p<lDfv1@_|b;&2yokZ2# zY#tInd;cwpa#<8rky73rnvJ$lzG<_fo+5P1O?5-quhP5wL-wG$W~~?E@*+1udTotq zboSB7A^$%MK;$|oO87D)r%<q`mH%QUfSs=3`vENIRW7h_VZ_0L&@5%V>@`u6(`X*{ zYXw$9jgtP?Gw~{z+lndz5M5TvZtc0s$>}ZI=#byv-;K;d1S!!3wvMDoIj9oJ6Tkiz zdX@7_Dwhch_PO)<v2#h_<N45`)*s}l;?M5nc7J#Z6+r{3sd_{-=_K&3i_E2xd6|Ho zH!02uq=SUYmK@ipOeF^eJAGYh8lJRh=cIS4=P!9rbYFQbK#mvGRyZf|ayBM{>J!<+ zQM{663(yKHp|G9NtMKc#DlTaVG}3lFAi`4BsQ;#GOBlYP=6|U**ShJ}MQHx3PvdG& ze9y>6&zjn7h&8{Zf-9^3d(h?LEm?rtG5KLic7SCmKK1BejzD*y378HW60zi5v!+ko z|Mcaq?lPt42>b4ZdQdqc?CHkPHr19*>_1|5%&$;YSsT`G5GkBgi3!?8XvC*qa&HET ze_;rRdc>n(B~bDyMU-9WpbIHIS;2W<_%;NA@%#X`O}OFFskKZnwa=YTk1NHGmXmG- z%?=rGHPMaRovo(xz`i_wgdB90U^}6eNS*i;;7l~FBrKtc4VxZhrkm?0M91xiZyC#q z8CS@>ro>2<j3T{H!N%ZOZ<Be|zcA~bdSWh5T-@z8NU_|>gA7{bxLIy!0G)`v|Fw;B z{&QpCQ8w@!Drs+veT+ik`IgD32tC&snI92dH&N&ITW{jd_dBUC`{ECywd4xo8Q(63 zLn3$jW{aIHqvO^i$7>B>yG5@Oo;G){WX+BQEtMS{kIozlCW&jv<^-prvw`x`;Pfm- zSy@^1J&r<|z)=kX`qS7eb6>Sur1=njApo=wq|J@4&?&T^l8~Gm+RcozrQOm7_Hg>8 zjJ+MDLlY3oWcr3`xD)!Pv~MJ2c1?9xB|NE+5$KN_G<4?nym)6neXfNNbzbpLn!XyS z?zLF3#UXPLyWr$~2XSnuPdX@mAESazIsNu$D;$XH%jXag-p{YSuS`QxNHffLXz%Lw z(O{b&z9pAkxUQM6`jDS8=Cj3{ka!s?)fzNMEK@c=E3t;|<zlxj_|tVsAi>iC`~1Hf zQzq)m`SZNnw7X6)(Zx13ki2C0Zwf(9ACoFXb|KO&XW$|O+e<yRX@Q&<&sr|Oinphp zqljsr)lADzbE>sf>5`2($v#S3vvyuUH=-;_wKZl1Fjq??#OrHsKj=x@N(t6gozqg{ z)8%c~lz1p5NyZ{96wuZkukt;AC&6+1q{ZfoklGv|;^@S4hO2aE6v4#e=yvJ5E@cl> zDrl7w<NPyL-`3NjWd`?D>o^o=7_$p@59o+x@Yu|vuZCaL!NS(>vW?#1qhv~7IqiJe zDl<mv3^+-w(SM!#a$677yrh~YEt#-SHmZ||FTR>GP=_b%4@yI0Y)2J|?ENal(6``4 z-tsmwz#yIs7RzqcCPCP}f>cp;H#+>q)s%&>-BYXYrkfL{@0H7jV!0aKo_^i>=$Pn9 z&&Wb3gyoeo_enXDploYA4m#DnT*B9y-ug7zF55R9-&i6UCmxU~UhA=s%=-FCH1tuB zs7l^R-I-MAh7yL}r=s9$!X`H$Q;yIo<qLD8eE5BO?0;L8@kGo2E}{10^&NaB<X(rO z-ScqE{|=T+drHmf`*6X#Wsm<gm06OVH;xbqLtO3c;c@tD5wcD<I6YP2mpq1zgS!Nh zm&MfM$&akCT?N1ELTfXYznYBQjUP!qtNlkwFV!_q`&;=f;d^uQjC5=-zSvF>#HfWr zNs0x&SDfV0Kq|AYne~q06PoKacNvuWInhN<az0jGETO5nS%^H_(Nh9RaT3Fo&@aR` zlmgG0fMPgTelPUruT+(i#VE5M*-0MEY%cvCUK5X0{UPp+>N~X2!9Q}(@1x~r0}`Eq z9+G@Ae4=k_3ju!5;q58S_zRM5ct3;|_>SnFsyM#u4if0BJoO(A^uPl@O)NH;pIyfu zMY~_wJK~(Iw!o4H{G#6fh|vV4V*OP^=#G1W*n!xY=(c@yemJ)%muQHxchiNZGi8>g zEun#5trDq4=JX)`*j^dfyJc5B(F9a`%_`+qub6l81nkq|)g>TrS;hTH^CEdwAqn`Q zOaO~d+Gh*j)zV(6Q6Dj3v7eQBzbR8X8<8h3J53z4kTI_&R%byipexVF7NFkv##shT zG&dWki<H(iQPV%5g>U(0<#ii$kFQVNgriJngtsd`FG9@@47bIq3AU317c{EBq$5MW z)CXw??l(gq2!!59P5npD{bcW-X+1|vtj}pQXvQ9|73>^UDWMqQWuywD*pc=?A|9@Y z`I0W@qajBg0(eaFg|t`#g;}6i)`uDx<Ry{3{F4>}*0yH6Ri65C4O#uQw*2X%!qw-^ z%ntY?*mIoNOZ*@5?F0ZbGl$nP0*7hC<-hocs!bFWkG<yt1!?bfcxD7WF|?*tb}^IR z373)Ti&CL|l?!Rkr=W+3MCQ}K9i%N;v#N}64l&9qdE*z3`o$_^Cfbv%nqMv;<cqF7 zi{h06?cX+w+l!BJ;`(alzm};>+=)L9T<`v#B74mUTJ1Zqpu~;0rl9CYv06~1d5P~G zGd}zk$`(N!?N%@+V^GdolU6IMUoFNlL{1$v^rkv6!F8KKGttK^fF|hL?hg0xg(UY< zuq;J)_KxtO{fWIvP(eBq7hG|=$uxm|hg-j}?0%1{kWy{bCdy{5Q2lC5XVhTPC$qVm z_}KA{KfsBU?nL-*G0k)D#czv@f~>DjdjOk6JDT%tW{wu0MV?nL0ox&F=J*Nv=0V>~ zbxJ-&PlTerww<EZ?~B2!hRZ#$4#;s-6zOLzwY$)(6n@>nMCQ)dlZ^_)3Kzb(MayL| zTVq5)H3$)lL6^GVNMfojI|U_^wZU07m%+_~XoZYl=YBIOa|2b0qCN46A=SSa2)<i5 zSzgbVAavjYNk#f#^Q(MFuSS7wA$EZ|BqkDn4mLbAo@I_vg-A5g(5uudMQ>XCkoul^ z{N-&$E|@f06+QYYEmM?zXCPdsJn1D2{V7MLUm7viPDiPZ@7)g?AI6c!dM?hYh~^P1 zw!%uHG#LDLUv9#}OnH93Aj)3E-K#cUnRU@So?mPvfjZFvLW4jS_@|T?Oa-gHRSl16 z+RATV1lQ8`&MZ!mbT!;w`z%oGt6VK!Lu^1dD;peiUZV%d$p*_Y4VQv>v&n@O|80*X zyZVHY(&d-r@Y_NY{3?*}9}Et8E~R;WfbN9#6@2jaO@X#O{wP(~P@9q8gH4TIcQ?MF zX&yM^Wt!KpLbT*Jlu?;LcCa$4JZc}+b|~#aiEMQ9EvQt0SHN=>MOnUpj#67tX2DmR zB9&raKK9A2ir0N%W;Q@+s_Y_>CsR^srE?IK1gT1zU?^8hDqWTJ?VRI8qnAo}BtJ}d zB+Qo<P=eMVN|e!V!H$)&g+bl$rQDt*ML2B9u5DK2hzU+uFjz$lm7X8INWxu8O|J^L zA&a8jTP_|b!NenjbWI5YnQ0WPN0Ktf(pft8(ccjr&a57p)Lb2lrYdcP^fY6RPuQF< zN(T94WUtNpB-sA<MTkW$^|OZvzz!SNJE^(HzhVGo%k*mf%Kb84rPiC+U**`u<fn3k zZ4Qf<m`bqygkzGX(I6$OM5Z2x4%twtbboO%s#S}SSB$Pwv6NlLX!>wQL;M%y4EJy) zf11S208(8baEl~501QiT%i~Fjz9bM1G0Z5Z_2qq`tFo&_2+BzqBPuS`%bUT><?+g& zwOX^MCZ?wSwVlFy8b_e-76`DN{Q{*t_`n3kUzHIPjQTdq_U2tC4|VdnjF-k0gX!m1 z%Qe4;#1m?Wv{Q>Hl7(lX6<-HgAQ3i^H;TOQJkGF3sGC_1P6%Q!Yl+AiZ63jpAXg}S ziU}>)$Gz`Je1RP-w!JwJ-O@rJCc1(x(X(-eJASollWj^(mv3;YIe+&s)e87MO~gu! zy5<3R3~%2gfuf2Jb;QtaYeoYKdPS?wpl9U`EP)b3^<N8#lat;Z88HOuCYaZqEg5+u zA<Q$@0`Gfv)+mMC!f!HL+V}RL<uT^YKT%Oyw-*Y22VY&X>wrY#p;&Vb2Ozl!>A`_e z?J%C(eq5z9;Y$kZ!BHYsa#ZMxOBt<pz=(o^lUs~i!oujcsVvC-*U+I2sbtn_zEWgv z>il(o4Zi)QRORe40;ZqaWH>BOSBnoaN%5AlZv!asY&%_YU#Pm}`@+ihbL?5jp(>RW zrH`|_5Ppcz`L=LJ)Rvp2T)$&~1kO~>9FV_Ia*A9|R9ZCZ4>pfiyYHH3GrWRJrZC$) zxb5x0yv@76_@OOC8$sLRZ=S;?HiC9P4hmv>6Yn&r=yt^WyrE%M%if`0Oy5D=@G1Gn z&l971L_oJ@J$vjHs;UejFKVdoTnIDMl!2BZ5my_+>i7gKiDm4>{Yon6Fwi)RLwuci ztB{gUpwY7X0R^Y%wT*JXAId3;LjP&PeM)q>f_hF~oGYGNVFT%WwTsO7it<X?uy$>w zxm(hp5blkSmP(g;=xE!hV9-F`HE5;VgJcL#JgiWYcHvOKPvL@7kW+1KaJP4ceMpmC zZ`cir&-qORLbEwV?kR95V*=(cQzrrvTpnjI{F>b>zJ>cM)*@7YZm-gF*<K5%gQf`7 z3B)qUr-(5m2IbWY1tY96HG<RMZ4Jf>2JETRKQ3tk&XcbGMBThPv(WCZkS@wJYEi26 zCiY|0sP0S~|2cZ`AF;zuW!@(z2NR|QGu~XG4FMT}d=UEzB#Ol0=O>v>;Y^c68cOqi z-TQ+sNcWEH6R&x{pho?G?tvM^r7k!;_V?(bGS);3AJNQ%?%|xpcNhhZgA~hTk$>{% zNq`n<532-d?9ah#KkewIFJN}H@_uD_FGy`HJ`@3rHV5Xv^h#>-F}WcDax~79xfPo$ zsfZ!F0v8XRBz{GZm~U^+^y<$eeo!24F29)axY?eoNNpLH3)~TYjWI4C;v+HMtT>Q8 zg?T!omY&qQfVYmrh#ypS6Tc2SB;r+Ir7<I*$itGQD*T8W)2BU(qnt+gk}4c?+3x!X z*ZPRinS?SJj6Z92Jf8+lE79KjXUksMd`)wAIyc4uxoJuSuaGXGeV|~!mqT1sr8qfN ztn!4$_LT{5Q^wt7DDWd@C>@MkXWdOI=Rp+|aTV&M8W{!Jye$xVTfsTV!2P}Uk2Y<> z!hKSWHR+Si$dHfOlTe)PL@sk7`X=ONMWV_>uA80EZwXhH3)!Vbhq}g=<PKOx+!T{a zzzd`zeu$dkmNMq)^JQf%YEz);NuvyfGsvTlNF$VazNjx(#Svx2GR#N;?uNa^U#fVa zVhKd~ytquX$9EDO<x{+r16^gX)wHy{ai4QcG&wNIXIR{Gn|vG)H|;^>{UEA1BTK>o z5+35%4xraFBo43wp#@1?$Q_4R=R0b}{#+QN&NufZD(2Arh!aj14KVBWz>vI*jHzAX z?)^i7#(<Fq5&6#0sj`~_)qZfP+%3Oh%ID@5qn-|SO$<o{I48zNz70Vc4`U-)Ik)L; zG)1ju>?fW(=DedKlr1(Sni+02+8wHzgigym%@9B-rOr6~6}=)U@ef#h?R+UYxBPA9 z&jBOySyitY8nT%4E9QFqTy`dX!oIH(*v81>jG(gs0=;xF$BR3{8o%VdaP*<i2Pa6) zeU3$S^v&3a2FrDe(dE;va-#18v?b1^gf0h`heWmtq1|F&8s`3sIkv#u>;eK*qGD?d zg<Sr2dY8edTdsKj2Cp0-VZO)OjX)WqdQ(8F9ZWqEtN^x1(iGrUBhTH1GO!CpDbCUU z(C)36GbS`=8#SbqweTSHLu?jL5&ENsV`8IiV-A39V|ZywdI5bKmZT-53RN#)3O_wN zly@@smXE6lI_eKssOGF8TTLMyQ0WMd$z0leu$P1{8T5t1V=;U|nnCqGl}-)>1Fy4e z-Cr0dYTczRx}v*%46G#n2@=^cyh@nJN!r0^d`}RKaz=fYAc;F6c$V~6UFV!LpZ+MW zdmUOXz*Tj05Iuj9q_fXTax=Vk%PVuyGf5mbQc?X&6V8ht7^w+Bp=2(1lU1`;ij1hb z6FA?51p9BnC8=S)AD(<!Ke^?~+{>+AWh!Un=k^q7d`KRyzFy8Qne(IgJ1k%P=FF9u zs9fE`AfkY-C&8pvf>EL!hzJe$w7)LQ3T-kZzATvt%n4e91Jmd#=aww~3r&sWM=KG{ zX(W>er5bVn3jabGLb;wSdylv~{Ic6U%s{(zzGEmeIR8i)#h?hfJG4vNbGDU5u@$eU zC8;l9r5_TFyqbJ8Pm;}u^mrl67?JPLb0`x3wDIHMZIUKJa+7oyF*h?>HA|FDY8@7Z ziH;UY{DxIP;(SXYkzt;yKT!;rCRAEh>7zl_4+$??6F&`IXzETF4Livno6gpmuc6*) zcwJ*9eQ|%7DGax75<ysi4z(pHD=GJlb_^5U4Qap0hdeB^$`#1DlGdglU@+s`#XMk; z8U4KpPUF9SCqML7LH%@hl6_kHzA8PHN&G=rJ=^i&<Cff5W<<-l<^G;b@rOio$_0^c zR0n`0_k4Qa#^IR5+@T{(_yn`l%bqXACc!spv;lKo#ZBHyoQ)zfu_X>kF%TZ2B&Gb# zMB)%|7;1kY+>2IG0WuyAfo4-<570SF<7_A%2IZ4ph801r&vDa#yA##hKSLreoN@QQ zZ1YO9M^`Yr_DB5#bLPyz##G@SpBa}DENq#2p4fTdp2{$4q4Qd%R9C?aJLU<CPRDo@ zg1{~kuaF0TWieA-a@m!FfwG`WKZ2@!Bi3w(l}WT6H|S`><o_gWUJM~{NC|#*`WF$; z<G+7`sEgeT=-orGr-;1OGp@S7k{U;s9ge>4`Yaf%#jppEFPYo1gve4uAV*THOrRGK zbP$8CqCa)j0xN;@3?Fx(mB5hex&2QiotRf@xw;3<9V7h)5^J~&<YMp$fgV=oke?7o zh<I5MQln2dp69Pi_B0|R;L$Z>k;?p2qL?~{EKe{|k4n~iv-=TQ_P)2zhuZ9TP|VBY z`n9X+1Mc^yj5p9aYelniO1{z3u35{~qlxOJoq^QI?Q*eGCx8GynxTkbxm6YN`L)>) zvSq??3Mh|+D@cP_t!Q)5?>8w1A&eo`q4UKstW6NGorDm~1ENhRwWF@+yMOu87N;^i ziW(f{JE%V*a}@_25DlyfFTKcQc{(^`=vEJ!h5X5Rq7Y%ERVRWmV8d_@+0tEE`^o)c zr^NxbvFApb-^V^i;%C`DGj1$R`g3C5WVc5bS~BIJ(;$H8UU~{&x5q2J$X8)Or7kSY z*NH++O7q2E+?rGTexEF>FEPQxHZ-6fVQGxc7x<w_L0Xb@o~3**h8xCW;S+J1D<d}V z`E#M8n<qlHB*6YWLSv-<Q6~S?Ooy?UK$0ix*IYQF<Z9(`b?~mZ@+EedZ#TG)m)E%L zh?U?eX4($FYd&E^j(9!)9H&qVci{czW@4(2-GKp(P{GuGB@3as_uVFbzs^KQ;Jy34 zqGi5?)cs+QABR_>DiYX;Ge`xMtz{bP^D25e)R+h7GcX@v)4Uu6n<rrPsOu!pN`e4C zZ|B*QTlqVc^0H>~lxT{0U2D%Q<xW}{Qm9cqfnES(L<Telta~`6a7_Xv{xSGiKs$Q! zw_+iKCDB8teo8ILv)k(OKW8~s^XW2%vRSO0aoodepg2jrcpYW7udaInA<au|S+vRu zB0h(0I?G5YBkI@GocS+--5#i)C0J{+$?uV#h)3?vx5;-#X5%Q;n{wSoW;{yrJl|q# z?OqLc+7lIXZ<yE>RO$BF&%jlcPYvZIV6Ii$5T0&plB}GlqABtt4lH#0r%QNI07y6z zmNXDp9Wc6ag*y`aXsWo@DnMyw4_3YU{Doo04p7B?uAn!IV^589<iZBjWizlcwjeLz zDPhfvR?ifOcpB$XYkwE-2$q@rJ*dLj@SF3X=`}t+b3U$@CogF~5G@KDNEC%J9G!&q zGS`;wD~$D|GeyH!F1B+kpL6c`(`)6ZYa?zhyi1Z{itT9kRCO9iq5|Z0g3moef6jvq zW}v-B)*wPu{0CkYnrPkEF}du@`xU70O+-E}VDkZS`@|2|#ZGDPesu@OH3icR<8@Ui z#fpiP=F{|VR)UZM8A7vsQJj~#M>|Fgkx-)Ti@XGjbBKzkW*KC}m!?*<CyIvQ?1F@9 z(c*of1uq0K^-swYi*^#a<q5ND2GVx4&fxzM*W9ugFyB|_AK_at9eynmN3duO<0>l= zFl>#8uuJgN55NrWB!=_$qWeNr%S!sUt5R)0D9Tb(Q*0G83DQwh`Pb{gYZ&7=cn<a8 zkyoGBqoinwH%u$}c0XdZQ~p$CQ;~(du&)TxYN+D>$hQDhSY;oKZUr%d1j}Fe*%@Xk zFa*abkg3O<nK-N|O&@^4vb{u#$tb6tP~Ic_!?Ww3HAQG0XreeYa?yMbc+Z9o6ukq~ zC3pLFNt$9p-XpRo1DN2btJ;R{qt)d=k$3-rgfrD>NF>qh7l`L(=>;R6eE$d{6fFCz zW}H8_VH5U4bY@eNi5W?;;+V!$==0THe1MItFy{;7%VuC8PXv;2tl)%T_@dg2KtEQV zdo6C?H{qrJEw!l)yR!y>h;@C+<tBsxy-dOE4J3}pEBaxS0$YKGrfb^p%%kq2Du8-H zm|$B%tke_tHjT)yoWV27JETm>7EXXFOD_p1_6d}!T%anc6qyO#9XEG*@E_o=>)ZpB z%YVe#-e$G9MwswE@r^#)JO5Y0OwAIZmGfz{wCl4@g)01jnNPhGman)kD)YdaA$h;` z^E{Eh`CF2EL<}BbK2<&!EDAz@H(emQB%*&5LriW{=0`->4KW@CaBn^ij^&PyjEFh@ z8Afim(Yc%o^@Gv4^&g7QGl6!4nRW@))<3r?N22+?ltdYu`W8Jz!0frMa~{n3^qv(B zqG{tYVssq>hn)2cGbaE6?Nu#PgDHMzCb98825x7SqVDjOQkUO&WZ^yz#&lj2{kiz4 z)C~R(nY`lz5qt=_frcpJB?zwNR`*%ehHB(Mzx^EnPXgZVnJB~gyxZk&%bDjrJhn1$ zfp=TtLNNcSbcb-_@QPWDnYA<CjQNtca55BSN}dfYWj|x7Oa%>pkS*ByIM_~gL|uR% z+*&c_4u4HU={a|IUq!vi57&DiahCZ&)n(w|*E;}}RF+?x6XZbq&aomr{}B{1kq8#> zJ>PJ1ll{B4Fegt&zMP?g`hCu{lEGUDLk2JdB6m!ICxKG6!o%C@Kqe3zEjh8o+FL~b zb>aJ0W~Ao*0@Pqer9Xp&RP694y{IyGhd?Cn=qD4>9{ai2t6aOWuc-aSt0UvqDPruA z7_G%tPfLlR;CW&hSBDJzV55Ax%gGfSMnYIu>G;t;osX&N{&4vhH{?%Cd@gE}M}ggQ zav<&5eMm}|$+h%b`Wu(QcfA|{Z(3;tNtlN&&UTpChRXD7?0dI6u<CWl9YUI2U%Zeb z(o)>Y^0jR^$_=w?#6bTZUa&Z~{;-vf%nV&72uHiEx}$tyos&<~@C13eLeU`7hN{et za{0Yjwxf2A7*29X=9ZHQ9pm8Jt_7bL*}wvb1ca?xt+kEy2O@fOZt=4O<A!ySBwv~@ zF_J+u8(<ey3fzrNiJql6a%pR<HjCk)qbh&<ncsx^JwatSYaMq@lnHxL0YNBCDr9O& zTfv;F<O%7-HjUtlq8S=ZIsCvClLKzT#Oq)uK~3OT_butS5mc>H*DN`7VU_mx^&<Ap z85&c&Z2CdD4|5}7S^~@vJ=_Qq_HXeP^B*i&Bog0<*O8R$&UhXGd-4z1j&utvV|NUN zhL)zHr0R%^llbHQQ;bf;U=E->kogw9hwnW6A9cywv!o&AkPt~hZt3emEnX8hmo!fQ zVG0K(1;qf@7vVO<1fdZC3n!hH1xv*bAGc=h$_!l<E3pu=o2IPkxKhi-=c7daHMvPq zlr&1a6;t}Tywnti`U&g>MHj*tjWQu;$5r!){g1xFBy>Xm%}#B<^NDdv)a38F_cD5O zI;-aJ$<j9>vB;kj3X2PxFQY9oc^=K*pM@3dX&+J2j>BBx+Fe?)m2bxLpBy0e2MQix z>=%QHw#-Duw3{fCdBW3)?>10!NOUFUEMjDJRcH*A*?b8bbDib>>;W<_NjcRRF&d5T zR0&;j&Gfb!v#QqEreO|U){d91Fe!z|%Q$R=w7{ahLf)a6<)CZ<TTkEtcEwM<@b5T0 zTsF(1RJI#$a}-uC4FhG1L1>^hP{+~Jr{+k1$0-fI9p#R*_q62#z;9|p^}R>b3cLBu z=;PEStfX8YnJ_#_(A5&Q`svwxY7{;+ARW2st}6oYPKTGkci#>u>h<n9*PrM$34uN< zvv^zN4nOCGGRnp3v=@alYdHqo=O{95rtLrUJPTno%At(VV8;OQ^JzVT8|8!x$$dw> zatAAGR%xz9r-;q~Q|=$;R^B6xPsB~@ISf)m<5s#c+0aSdmL{0aJItvRtwk)Ys8Whr zELoIj(djcP1pCKF>q*VDcC~z~V+_7e>`D-$^1vpc<0(R+g3;|ahna(GzDq1<p47aT z)(DAj?}IJOTxnie+K&3{q&1O9jPC*N?Y?^%0_4~}wa!xPJzIa5BZlSB4u&@TO;aep z82A7qVUDL`Ia{(15V$m>P3Kt$ytU+f^b(r5&2FEDv7NuY#$DBl@pRT)Xo5(ZGAl&l zCc^GtM>J4bD!aC-{{BJ48i4{NLP&X1F9dX$R^|KkMAu~vPmRm^El|jiRcK{HcbB~r zCkE!7h$u>7&Q%88T7&WNC1L%D*~)#gtrkkcU{`K?mBTLP0$_prWZ!|VxUP4;<c{EL zjG9Q4o3z{d4_BIsv@rgI2q{84Q*KhpN%8BLq)!_Ft(GzDu98IIo@JY)&h!khvUz!G zwdPN4PqOKdfl(qmEDTU+aov*tD!$EB0LACj#skvYcOtVnPVDj{WM`!NO?j$0U-c$g z7B~Ec1pk0IuE{*;WFyBbqT+;}K$=FV&(4i}Q<_<WI^mU|gdKE3-!%1InJD+>ZLTcW zw%gQ~_oV6W_lEwm^aN-Nl1IvO{$xXWv?6t`TDKE8h(C-7?_7EoFL@eXC}C^%!Y7$U zWoOEeUrO=T<!{-rJyaY4x@f3Jv^U`R<T`zs?svPfBqjcMrp6l0fK#bzo%jj&2%%<Y zu=Cv9$Fqb?(Fm!((gU&##=*Z2S8AUXlGp0y5Vs+}*Ei$;gc}V=zjz5NBRF0fE5-C^ ziPNyzJ5PLFf2j1P(y3NX5O8jz72SYkWsnsmRZn~{UzvRTy?BJjq*BlANSo4D#!HTw zGQju2y(S@YN{FkT2<qLCN>n_+==^L~cDetRQ;Zx4FwOIR%iOTb{z~64DMdtjXyfZ+ zCd}do_hIwcyA@S7nDU$5;%v-twM+tW5a?|t?{H(<@*U`(l%-{vkMX_?qD+g=aimWh zqfS6`qs~Zpv+gPNqKs1=OmCsnbM=?>8*HqnY*)n~3#=Rbd$^CNiW?0=17ZC3DuFry zoB$ma_J2Bdn6SC0K$Ac#S3SI(xAjx&nyKrG7m*I`E<+TOgSYf*e)TQUopQZW;quhx z%Q@+0umA|~ph09N=ad{fh6T?8)-srFLj}6DK(tV``ZTE&LWL63OZJ?e3n7f7m#9eh zOxOf8j46p=_wBRg+#wtilvyUAPFBE#L>*t~Q{FW-8S;)<i{#K|>)!5Z{V98$1I{32 zi_bR3P(D=C1J`Qfp;6rT-CHI(fBEmr<SCw2*f(Z0)o7KDq>wwMr4?QGB?yX!gOslO z+Zt}VPMp;lfF@6_{feHrr0O*rjaIpfiYbpxOEvuFvP^Z#0K@HF)u(GLa(;={vol@U z6)Sry{-oAWEo;#pc@%4DuTYdTSEGIKaTo)-&K8J3*;qJM0}5q~yMgLxTuGIC?(9gr zr1$;9upVK`(skbUzGm$twsW(;SCov6ri2)EDP6MI6#(Z9T!4XBlK?_2MI+f-&Cg!A z)KU4V44TP+3{m;og;SN69Ny6g+U@`Bwrg+G3gan^7IZ3x-n18%#;0kveP9_I*aD&X zNu$tc5#}+|TT_b64^B>eQ3PW@KvV+Q)YdYSkhtStXQ@6W>RzMOcZ(eh#o1al1BUTN zpYT9uToZ<-Q!{aTDVi<T@;>WHf?*V|l9?)P>i2Veb!wtQ%0qY*rTGl7SU2cs52c*M z5Uj%OsfJlYaNNlcgr-DPY?iSyn;P-H8a_jFG-KDLYZ{}DbNn)~0X~*}ht$N|`JM7r zDfQ0~*g?3*+FcrjJG<+*XBTSpiW37~5T4AU0L{BUdox^rbJX~K&n<3e=iEiRn%(N2 zGm#GR_gJr_VSr*%$cGoQuAB-Cwg6_SA^k}0I8fP8t2U-CE}@DwU<W5u+b0S6<Y1A7 z4p!T!_R{&;Qdpp!LC#vPprt1>O~Dw{^>V1~N>aesIhynMHHG9qnd~5<tf1m~60cgP zcg5_e&ZQ#EY#_;EUpXHyGe@Y%owxlY`KWYYZ@TDgOIzsf=IHCLXk4)0CNcv$|2O?x zDUBp5;i<?;WSy+GyCf!vWavp&cbn|zR|?4IN@f4KwviUS?By@E9RZ#*Kx&948K(jL z)!w8I*)P@H&(<SQn%&AnqOr$NYCLjo&)2!&9aQV=DCC^j5O~(RfHgNiJ}0DZ4U-Ou z`hI4ks>6LsFr)~$>b2`d?PuGdL=TP1<fVM;1)AI0ACdp%7L5T@uA_3g+()5$EASd4 zmjbm8+mG_4HjC9@46!=l=92}96h!_z;Naswff76VF5;ipa;WcKdcEYmTinLgQEfvz z^o$YXZw$#=G4n_8W^I9dne6+`h)5cS-Rk>;gXAa{k#usKxk($h#TkvAm)UfIsX2|p zFP398!QyHh@koE93iGY7JU|wKg#$-&K)j@$Mz~aF_VdQbYG9VA_jBL*EtTI96+yi> zgqJId*WdK(#gH_6IWUY)jF*1Yn994~;S}S3n#>RR-tQDb{6jYDZv+T^tI)$#A)E<= zRoqsd0e9z{F1pcER4^mfaHupy;eb0I+lw3G=+9Losa$5+Js?eaXO&z$f@~g$1a7Y+ z*B;ImvFj`ZC6ar+lC0R1Ik35A@neD4^j4+jGyLFWI3oD`sU3#0``Kx^G0a9Pv}&u@ zVj^9eo3(XS0E0aNh2X6Ssk+9tI#^}<kP6#G=k^2Rz~;J2UQd$Hrp0Wy@^cg&R$MCb zoZG=hJz|2QSxah^MTx5uO`){MqKl&1#>`UF2+p=bh%ywmkq&h?H`9b(=~JRDtB&H1 zPv%YFY^{<{>df4iAq=nip1Ih87o{<+2R3u1*=*QPGxL5&VsU9*FD!Sz`r<HA3VHgX zTq_$s49{VFb|kTx>6LD@*hI5;bgWH8$#Q%L&}=KQg1rQbbfdBBp=4yGGR!CfHgsoN z$!lfdHWlhKQaZ>X&UT6ppur1HGIa&4#I`h{Yh+JMR0u-~Ax2eg<|4Mea!tF;4VnLR z3qk8E{1Ge#%zLj_0ROpUmF_2CH1X65O_7_Jng3z=Z~C3yLk8-=(R4?z?*730NxOv) zeAYiH>E9|T??ld{+neR%AQB*9S~iN~J!@NffpW-B-1nyS?Uy8N1CiwSJ!|jV1CQ$i zcBxu|I6#aid7>0*#n*uIXJUWI7GN9SX5ebcHzIRIG_!1pMV$;!7~?WdN(3n3g<~BG z`%0-!1WIE8QkRM69-!^;zD9afpXj9mCbSwNJW3;EQ!_pZe@~Gj{3@wPNN3uBNW$4% zX+wZDBkm)<lu^xpGGoO_CBGZcDd3(v<jid)u43vu7F55iG-zN>NPS#8dz!g<Bb2^G zg)TpUq0^?vXNh7-ZQp<!SymbT7{Py{8o1i0^iti3H?aJJP~FhKM?;yCt5)w;_o{uj z{NaTH`c$AF0E{jIsI^7Z=7NmOqNKhO^#Z0Rs?ddsS8%=)Yzm4TK`bO^)=219`xO(t zuS2Ld2lc3!oQ%ngz;cwHFEKQLMF+b5(s4#TvJje%!C5br;FT)JJ4f54A8Wsxfm)@! z2Sg>P?-za&Q;PY<<lmQg*o>wyT#j?-?2so*F!9??rp!y6Gf)V7cLx5h&}bP5-hD~u zL-4Z&IWZnDU^<p%BJ`1tGjBy`?2Ps?@#)XSdYjwa?=#`vt|n2953EJ^CzWq6(zxbd z#atio&}FSl{B{)iW6CmmF;Z|ax7_mpL$Qg{mNL{D(*o)`=&7!thriIl2G~TB$gOBA zW-77Sb0spQ=wnm~-@sPdqze{+xHL31EsY;KqofdEsns&BDRfJ0-o`L+-zcuJ(XlT7 zjxM&WGo}-cC;k+10S~2mB_0sRR!EN(b_7X{h8k@GS+|Ol+vs)y)hE!>3?_}Y5eu&_ z=TivP4H*<N0|p&4)GKnKGNLEE1}<H@z+0KgLVlIs>t|9T7JtKc{_~KaFA(+0iY4*! zvV8yeNYZEZDYS82lrZJJ_&wq6fAtRsf|pZ4w}klX<x}B32Vu#rB}374ewx4i9=rQj zm=>Qn%|Dw!F$t_c1m7XfqQg&o(CLenF-Bkw14G&@ikbR%-AL?_OM^-YIf`|yn)ytm zUwIiueq$yoNLijbh1dKlnjwW54RqTbJeKBTWCkJmGm1NvlJv)}l1OLeE(!=2F({H1 z%f|(thA_LnD=2=iOHNEC=#?l2@BJ{02Uq)`0a5zM(=URv4yJ9CYB#IW+~-u!Ou{<! z2{*AiqXWyqkJAKlt!7xE%@s*AcW{z0LX9qN^N!Pr*FnPq%Rw#TJ3W$q;rZvk(lMg< z21(X9Mrb`cHvoL@=+93j*!k(<B-hvc8e`-=f$4aE*Tf~$($}sevXfBqi<5(%+;jL_ zTJ?W{zV}2ageb@Nm%gyw#Sn~Rw7ZLT#Z*m1A*k?X{WQsrg-Q@e+XJA}gHQ|qqu)kZ z&_H*7j8H!}IV61$6usSBg@c%E=L>_<Lg0ZMfV{9-&{ip(p=0<!e-)19!Aw;uIhUvq zMtdBDTB|?}!Ucg0>IFlO2<YB2O77@))jbJH*eYI?sv_$Qlbs<Ut0oo~4CU=Gg|)(x z@vPq_Itm9G?}JTVJ?~?R>=X~|JY8|Sn4duHHh_&*ySO=zE7Z&OCwn|6zrIY1+I&0G zyF6;DcE1eJ@Y?-pIRm`R(Qx&S0N9-_u9yXzDSCvhY}!5Gd4-{%$(Jjam{>HmRGCO* ztr3la(VQlfd05Xx5=9f8NUJxctWDTTQ7dU#PUVx*ziMAnnE#_5qosToL`;uPthXaJ zs1KSTlME-kMD<hH^9OG98Gz{P1P|?mcmI9ZEVZMQl(5{i_tv_IjrKqwU{8A+Ep!!^ z2SJiN^|QCsLowHhGRB2w1j+(dBdM3=Jb`LRXW%|{ezsXIXSfe&jvMDVcuM3rP~_<o z*hcCv>Sd+m-@es(h%Z7QVJ6N3_h+LGO*H8$!J{nz1HgNokfsxvg2~Ey0XrlfLnGXt z{Q%g|)O4+q^yKAZDTK`wLHoVlAU;}>!b6%yG6Uh`cISAh++y6MBflunqNJROrCMhE z(pV6bhH2x7i)(5aKS6_=(Q`qRg6_|AfKL9$9r8@GUAr9*HJTESDG75UBcmOJzUh__ z{{dOT0k!u5@u}}$?(hF?obXSlUrn`*MvC9fXsr4T|99vfL;dRg)BN`3cG1&JWM4EA zLIS|W;sb_I>GMHiWOpzn4JtIxP0mi!%P2o-O4B<ZQHBt(|IFyRP7D@DXi&4Od|*k+ z^-hUATXy}o|H#pr5O6OM^R!%K&`9C}j>$`fn5dJKaKc-@3}nNS(A|fHx66M0+<ic} z?WhXRUj=pXT><jwNF$=I1f7abrtJ}p6q||cu};5+w)2s{=YMy?D+>-6iM);$l+1uz z|Bl^!u;+ayoj3fXhyeu+<V1b_##Wxy#UrdyX8vvg9S!<WucHi)>laTn%tp6`_2BL8 z4>i5q+x0Nto$Z{&(PlzYX$#nBLS3D|r|madQD0k~ZNB!+rYV~~mzb;b(Ld~T{`9yP zmDu>sa0XQ<p!&an3$L8}YbQfqo2#Zan7@l2Ji_40V=S8I?7Zo$?abx=a60(JJ6QCt zST@r7VoTm79o;)!$NySC8Cfiy^+n+*J1&0o&SNsUnbl||cmXhPajE<HG(;t+ymeJ! zp@UiFJYO+r&uJAzU)(ijsIfdtT=5{)S0;ebC>;Wf{Is1)uy4n`gB_`m2P&}Af*X** zVx5>+DOK<Uk=J0zx8)V_oQvo)rj8z4{lm3}4$i{Q23eD)uRMwZ)E4UvesJq974|Lc zpsw1S57NBN-ewuE8LHh`C+wlGHD7*FDehii)^vR+YWIbOh+V43BGsv~`KDwhNpjt3 zV(+-OuCC7IGli&i#No9?Q_SiHclVB%;fn_{A~<q%xrAGxP+P-I)cnfXo|MH}zP<5F z(%l--K^qaT=u~=-h~}^#Xt^k;)P$yX#)(@FG>c;J1kXCnR*&%31T18<LzL7r1F!2^ z=issXQG@4w`Um1-be``T&3O6wONB)o@fFNPeDm);B`KOmc$b^J(>w3x$1aBxZ0<QM z=w~akxEmpT6@&ouOyUwN);hB;|611P@JV8I=tYqG;HJXZg1&jIXPDw!<Sma`fQbP( z=zeO?Q%S>Ig!di_Kq~e>m6stawgkY2lUsy>6?-J+{Y-41BH{dIzhmT6;MeX)OK)cY z2<;{m<<zr8{^>?5?jgl}-+Fk$QlFYp=MS%**`Mc(1(|JuI$!5Z{Pmy@)K6p2yKRr= zDTW&VDNV9y;J9xB<WU>1B4XVaQb#a;+;Oqmj~kO};5h;@co#K4uB5A0FU!XvGU~nr z?PIU~gWQb0F{*;(Lfa^tJG|{ww}}L>I7<6XmoMGMZ+`8`hj@Q8$Nt`_sN1{~P}rGw z0>AuqxsY6#nu({MmA~8^=z5UJ+~_~+kmI)HdpPH8ob&MgI_>@&)RMbm_!}k0L{B$y zOfKb!0L40SX#~^@D>Ba$TO@(AySyKYNkdWN+NA0)TP%igH!SxxF-r!lH4sh6(;$_# zg6z?8h?DwSxw_c&NpL(rwK!<nH(KoPC|;wtpWktSKW2eW;Ks|NxgcYTpgY!_r_qTv zN(yCu!Frv<!dM$5>w}M)pIv3?oglnO#%nZqKy-miJWM_hcMJ23GcCFEp8iK%Iedn3 zyFh8@_Y&|?WsAFsi|e=+X_tI(967`t!#)6Si`Lb-f8dld9bv$`g1=$q+z)atZzq`A zJf?Qx)QG-TsQN{lgJXh^O3Lnt*FVTgg!OWMyER!_-!4O;Wh=5stqTWX-;;+-&H-^P zm{uJ9Z~uWc<AGUCRkI9n;=Q4NHcbczhXEgP*lnTtS@S+&0#1{2UtjMRHH>jrs?QX+ zL-)NCHBC$G`uA{AGxSQTMUh(kpyeql=~^i{rUJ+oU-I82{5=c>rs8{anAMTl(+{Y| z9;m)lGyq0PS<_32s{Ei4%tO3kE_<&0Qm(0RkSpl;Q}<D9>~wpGZ21JJKRyhQpzBH+ z2osd;@}Xvvy`^FFK(DMS9HlPt_cwaw$cPaqA~TL*8&mDhIb4wq?sOSN26T-h`Evyf zhh-59b<Gi5%O2zc(u-nzqMPA65y+F9-UPW>Xb=?<n7JjnC0uS$Ulh<ck4}YsN^d@$ zW6t`vl}$eJ9Sq9>lg6j4@?zA4pv18zUP}9M88wYMmxXL2z)II>%vxc3tZ6oufSnhp zN7y%&xpFjLQ;QuKUHmA}65~;T8gDxKYq~;CdqZ8yJoKF7jEYBB=q0jp_e7;5cTN_n z&mD4YJl>3Mh+}trmGOJ-*3`Xsl4HeviC1fkp(z2EZHdGk8YP<F(KMkFcHxXwVEFTI zS1@55+<a^%c?*_Kyv8y##1CCzD5haQ>eQ8a;k!-5437XshRu0yy-M{PTpO^tNZ6rM z;ToLJWO1X8pS^6GcsnzQ+V(u-kn!}-J7Hz%6_0`oL{C)C8`cEVC<DrE#HYL-@6^uO z8A8CiYF63EsdSJUHpH$C^0&W7((fVchbZ@es_^Y-dDB`Kyav6bxV%?R=iH*BjlFzq z+0A$-h{eT4Ij1*V23$ctH4Up`9)|#e{2Bd+#8a?1*4J^NA6{9)OU@aYSNaoM)haf9 zJIt}PQSuJz7zd%71IP>%`V=b(-eDRb@%Y>*@-N#WwlJm9QRYwsaV9LhnQ*K2^h@YL zVqH0~R9?YNOiWRF6573GW;e|B^P^J<n>$3sv->ir`C~Qm@_K#Sb}7VdVXCRk0=Qq| zG~@{PrpxfsVn=4tCu!dPS$%t5GEjiNlTB%B_ec|N8Wv_fGx+EAY4R7FZ>564q#Z&S zE5wS&81^zAVWc=nX)Kbs7&{%-z0m&VLkDE-E3Zl1n9c1!F*E?fGd%P}#C6l4Hiz~= z=`!hu&6hNq24w8QaiM<3?S(E)-AdTo&Dxt<VT_K2A=fHRh?n!Py<y^hoRxcVYn#0K zyq-5y*w_fU!N=(Vok@x~^s#;&a0nwUuZ7f+XI3wf-5U%y-A4C_h3Yw1A3=_aH!iZp z6vP(F25boF1A4&oriQHbk`RG{0-sI<<SXOl@a9Ejx4i=4ZHn-iQEAhq&sy^*@q!5R zN((twF0Yk}^9o%1dp&5d3pE2QEKWok7waPCZ$G+@K-JOyXKQcV3N5d6au#v(n@+9) zUko?9G;Yo7wv^$2UnC72vMFtC_7U}#D$px`fmI6`8P#Cz&c;>ok7{K^i(Dkw`z&tj z1NDlSi47j%(Al4<EQf?g7M>0hP~oj|`xA=O+@OB5!V&Ijt2W3mS)Gmq59ZRt{O5=+ zl(N6&mS_ZT`RDL?<USpYNV2jIJDYduU=h+X{=<`!PZziDgO&<oBlT^a7VX<>UNX_X zohB#h?=r;EKzgiWUdM|fdo_Vu?lNpS3}n$skyL22NGZ&1<G;J($b<VbttG652IC_X zHif^1QOnE7*U7~TMJ8W}iigQ+j#5Z96!W{W_qUhP63GUS`h?x7<vd;=Zch!Jyxd|b z7o1pBUfQs(DOXQE&T<RKFfZh;`!U}B^7y&<r}=(Av6Xd%c8sT?h)lw{Q@RDf?I6W+ z3a9-(UU>Y=v^dveXV7|YXs(&=QzRaF(+CxDV9@P^dFM9~jW4#-?754KObQ`u_M|w& zA1Do3)r2%R3Zcc<stCn4{V|dDG3J&JQBpySQsUOiR5XN2k}?KG%!1X(%~z}qC{}PI zJ<yGHk7`xGwiSm;NxXB&zOytzh>A3NMr2Kyv5RAQ@+=e2O?~|IF*4Za_=nz`ZnITW zdAzao9kc&+N4@+k$V+5gb{;eIN=ed(m%Tv?n=oB_kJM$}i^}gb2UCmFdSK1#q@!HL z0)@w90Un)noA2iS>C1@r{gwG2)@bU$)=sdSoA(bdACa4kd6S_$iDx|uA<tHm;AOoz z+eeA1QL{F8c?$zqa8S5uVqws4dkR7KrhnC|$&<%aH+_txYDM>hvSzg~07!a~#bf-+ zw!qJ22F$A&MMy<^qT4JZ;rn3t+Hq0Uu-mFl<?%CzBtv{QXVy@>@Y(o6i>qYYHJC0j zF`VDqC1qXocGVo2rL=j6f`WLnUlfo^9klRyZgKI|mv_^it(x8FzeP2H;yZxlpj+|X z9NR*78`&f<P!j4!`DXn1YG2;UxBucSbzVbMb~uTG#bXaE?+peJOYUC6{bJW0naQbK zsm|p-{`g1b&+l87pIwFG0b}-mZ=}hax6f&IBgy}s?!bll?^@jN=YS?|z6a&7YRyy; z&`rthKVL$J8T?h!Ke{d>8pZ3Q%K6ZRHs#c%d-DR41Djz56iXg_kjtJC+P*#~*69B( z-dK1OpG9CSr=&2?#$&@Yb-6on<Gs9Z7VfY7m+#r;@MDsY_KV@s{^n)-SkyRXo%NKV zh6V5F{pPHx#&<VIa$EaW@+2MonKDZAS~==}dnw%i21#alOhF|<VJF7C9na`2n+rM; z^a?b72~FOPnRrtj21z0h5PKZ_z~@HpE)p)Tg16J+zq4e~N6?T7R!!8ty?ySpnAxpy zfm=9dnMlrdadqC8i;JsoqT7!?>1w<;^}FMAOUF};@40kzn^pyLD7dW2^Dyl@WK^CO zqC&FP{3Y-Z&)j3o|K^CfWz9WW^#d>8fz9$8?)&qXmxUx6-nXplN@spWok3?lqu!>? z9_nad-44~Cf*bSt5?-e_>R6NJ)B0u?@cS9;>8xfoXS8JFZqK|m_xoSO5Ix;XLUYfY zPU|9{_5ju|#;$FqN#c9H(KtF7u795NSLXGO!ied-?PmpXGRH^mDAAD1Zh^erqNKb5 zybdx7%pG-ni3!Irrtz^RsRH&9N?X8V8p0$O33v{L8_kuRwqW&fe8+-KE&mlQz>7-^ za*ft`=nnCfdws&vpn}2PWgIYw085c)4OQsfQu^N%x~H?-u#%-MLi^SBukL+Awi6X< zc{_PNf%?Gjf9dZhUEi}wzCS>{KiJjB)7b{uXoat5Zy#B7%{*aV?Z!<=kU^*(?^=EW zW_`LJ)r19;_>U7_^#~{-=QQ(>pPkDlr<C`NlIk30jIwY~VTYxX{aQV5J2oL4zdd{Y z?2${xZM3n-6Lh=giapiqf4}uNP%jC(1@b%CED~wXILp71JQ(+x35{+oj1ld*A;=Lp zjI<y<v=X)|zdz2=s;w;ill`<CD~YLNi8Zm*<DE^V<$yB`gbVSsJ;|^LtCJ<McwVQD zV2RUo?KE<5yMIU_M;Jp?hsX>ayOAywWZBh=JY)ZruShWwAtYA*;j4@$na&O}b%?c= ztRd|W;&H6h-Wa+RZy6)r;>@d@ndMJ-%;vamz~TCzL6(rc+V;McTugF#mW<L|;*Ue; zsnH@bRp-Z5>mKzT3<f+HRGp~F>HhWMthiq?((}}0u^A{#xgAV;cYD<<()UQq@Bc9Y zn8bpn09Mt4g9?t;R>VO#xvY{8ebYPLXMbFImA}16V5edKD8ABaZ@n=Xr10nL{rg|A zTHm(Jr_1N<qW9T;S7zzcCO(Lt9=C))N0*RE?o}{nNsWhTyna%dORE7u%oE(DYUZeu zZ%EUAzrcrp{lRD-gZTGS&-2hKl-(_bU9J9gfK9z;@bLQo7UTccB-9Fkq-3aRg<^Z7 ztaenAIbjhgoBvR#tT&aBYCiB*Wtj;T>tDWQbq`PXyKdQcB6q3r#3e&I+3m^Y6+_{k zLkCyF>l-kxDT!^dw#|oWQJ%+m^KPYz&P(^tWqKWd`|<vIPxbF+n;~ru(X@X5udc6- zi)w4bMI2Ho5s@4k6bYprhf)cV5EPX*5OC;jqy*^(X{EavU>F)H3F#i`92$li=59R4 zPtU!-%O4wty=Lzf?|Rnr#(I}!UTqq1@b_)4y~+BN=oILo2ioL?_Fm;S^(1j$66&;u zp|ScPe$7Xj{;U5{P6}dWz?|n`9+P}io^Z{_nIKIZ?urg%`sy(|heK~6PCF?eepiSt zy+%`M;HMcQx*zJ};oW?v_(10A>fnt=;-Tptnft?@7m2E2!>rHZ)o$@5sQWqc@}0++ z{1yw(#rt@O^f0rg@`kEl_WsoUow=g+76;`pRs?zYh@K<glYaH#*ZUJWMW!z*WERha zUNV0I<*29Y1QD0)YDfHF0#na&Pu<=?d8Sz|48?YejOg9i)$`zsi~QUJIoR!<jVHUp zk{Npgy1y4`ZsSeRXxtxQFyO-z5YWu?y@%SKd>CcAB&XYRclX}&I;*+q#TVaGa5X^_ zCa#o5u?H23ucosSPu;6`4>sEm8pm@sr#w^z=_}>5yu*_POEO8?X1g02tJWiUr_3^| zpl5!#r9=i%rR6CX7pIZio93#=d2qRyIP#Ht99}HB-*N{xZj3oAf|losv-Y`0_wUST zpv)!$#r=pF3aM0`#5&M9jE))*RnH0~JhJkt*<ZQYe89veaAs=_l}1DdRa^Rmy&ne~ zbtS+8i;h_NxBXLMMi-B3)}&ZHj(6v%6eoP7ID_m`PF>s&7uQ0p;B`f;33DavjELb9 z2qPj-M#^Q2d*i#qr&*qx<gjSKiYG9lkCCW8Nx*a*c(R`xYMu6CDG)jDQ?TE0?RF{0 z`8I`GNazf92RrWx?t<+ub_R=0u4j&v*a5+Ab#HiYyB{}%zHMWYZ-;NxJhx|*YzmeO zW)>OVeuo|U;>XC3BH#EC`KA0__xq!vB99rlppDaSQ+KRec#gg?=||F7NO;p1MHtC_ z{BMuYf=b7SVk%@ks?e&XySJ&+VMTk8Mw+HPC5)M2izlSh22-!*0P`-_;d47C4=A5K zA%NJ~zUMuCk}ft;nJ@9=<3b_=v&of4!KAk}mm36{0TpPKXC~%bhsW@hk5ygB^09-i zuiFn-XSJHMsqv6AT>07X)A8_u<0Nq;I23l1iCw96R(|^}ZM9K~3l~opSM^Q+%nM!7 z*6Bo>JeEuVi#^_7OK}X=bZG+7?k+y&y?&|fR$g+n7u}fhpOF;=-I10ap)zdfEE(OM zpL!b_=@5%MwJ*)rxsJT&8J^ADs5!0ZAI_4P`W&3Vr2$Sz=1?4(HGRLr7D#&yb)C%9 zx<pPPys_G8#`DG<OIiI_0z1s!T2toMK)UOTE%B-812a)Z$-Onz4Q)~fitqs-QpgID zLla27RNLY!Khw0q$=J&CJ#zEr?PnpDiMKNwuzN;Q8$hs}K!>>-(-p%l_O6+Q%PqIB z{aysm*TSn0S@OuJh0~0{u6n}-THJoRR{oEVng`oO?k9O|5^=H)gKjg0gr}a{bRsz5 zR@NeHQQA>AZ(Uabp~#N6Ro!_Q#N<>d9$(37dVTFJO5iYr3Prlgyk3auW0#^HzWXeY zG?;jsb5-`zl|0V0g*WGm@9#C39&}jQ*PqcUMyS+m1K1+1e-fN@*h3MWu-;xXlvcvN z%#?T18fgLb>p)X`zc+6{!=MGbymeuASs?J#$>o+gKb60Y&uF`h)YBNHMrEGAhk}%) z;iIZa9dA0j;`hE!?6d2xd!WyblN0F`7J0W)5RWwlbl71r`O*7%@cg`u{+a??fGO8d zn9@kbbOM`%*dUvTX22wXndhrzrSiA-iMujVq%Vc}GV<|OIZfvuWREBG<RGUaCl`A4 zV)4W7)rHHxkWX;%m^Ps@Ba52@X-xWhAN%zit87V?D;x>alN@WB`LXAj#5s#@MIS|8 zTeJu9oL)({^0BUvQ@B)$)6+HF{4~+g{$=7341Vn;GE@28_bC=tRV{80mv;qnWo4|z zH2C7uQwRrmH&vzVH~c@)lB!2#Fvl%g@w!F|F;l2j@jfq{P4r_Ec@tF=t21zZ5#*}a zI>;(=#mp&bc39?+6x%*DSTzGNWzR|(6|(#=i!GzGK}F%*-uixbhq|{H$-bbQNMtKE zJ~Lf9Rcm~LC--~Y&WBI<B7V@-nd>t=zGf`CZ+yI4jGu%Wkf{l&#Z!Hm6qgm3d7e0> zUE{!eW|H;{CfZ?!;S(~-rkh>_8BS&zcDW9Ne((kS!^Hj(24zn?l`HHIx@SS#Y6If3 zt;mp@NUk6dr<E6_pJPieWPf!?Np4-d|I>>8lCHV^2L`}5J>4pN^r!jf01FH{&l4dD z8G=;*S{f-LzB|r__%ErS8sF7<TG+y^8zFLk6S{I$VzxN#Zt>AzmK6Va#KiU-cY7<X z9vjm6Af~#gJ6ynH!Q*XfCk@kV=20WYJr3@)Bv#K4cEtJ3r(UE87wS1HA|Gi(u7S9F z0mbwl*;;NZa?4BU?OyhebHewWPqph@bN;(#*<AS5*MDh@JSH_z%qZl=J(SYB?}^jy z#gT-1J7g(!H!QuJJ2X^rO5Z}p6eTfZ2})EM(C+*(A;W{jm+1O5{==}FrNa38>pwIO z+}hlO)voe-|J{FfpYYZ^Bl-b*T7;b0q2u}69IDiTw@o8mx(0JJ=6Ut8vVOopM0*Mt z;4oQ9n}Y8NnE3q5a$YKq7{&hnel{~RGqja_FeBfl<Qa5lC#u8x=LJ9Fknau~M=`Z0 zRn)*HV*ALf6eo3eY=S;v;LvavfQeIID-K$2)8>ujo7b1MZMYDC*`X>id@lFhx0jpm z7;UT{xU`q`PGHF96L>L`4)BDfj&3VRaO|A->C4lDG9nMQfz0~V{-0Y(j6olQnIJvU zM`z$^?gUY@E1h^nM#*lELc~vv9X1>Nn8QRYI%JsJm`==(dgm1{a4})$WOvZjOVidX z@{%_<rO+I)^;n_*b~``5ucQxs3~0h?rpfo9pcOAJ<eJ6xoSWEpf$Qg;!#w5ESv&*j zJhwVXy8bY1a%M7a|H)cvH7B<O+CDj=O`hWbJiMbx`zRpTVCpKIBH2FECXxK!PlM{E zjgussK|4gD?4g8F(&ksNeLEF@VP^1MAz8cSMn8l$VzVyGb#;8rH#{2ZwWVEmx^Dn$ z(RA1xhZROrB)P|!GSn6mF*#<tp4sSI&sbc_+?_fc6KLnBc8FvmB#RL^?d98uH>0sY zE*v!E+y&Bht*||AL;xDNm5CgI##GqJSA%f|jLN+kr1k!@ks6mba-lStd%?_5xq~qy z{V}r<sE#;}v}1(1ga2<?1Z>$K@h0ALb83r~6XXEoYC9=4U8Vclk5)JRb{vyKw}SFg z!{-;}#$RmIr>i&5tbtWi5e9?#g({z0L`#g_x~NEY5qmp<lgF%ygmP+ywa4l&OW&4E zIyQHgVx~|0UAYs#9&V<E-W%@N@)elkfQ=MH!wS!y7B@Ee8#qsyjsXf|7gnn3x%+mP zpCJxQ9>vRl5@!pzxFq))%e+gAVs`oOH5*EwZQea_q}%W35hK_F)QyOvON)roJ6g?^ z{g0j#twmH36~WnUq{UU%ylQ*zVr(%C+%P{GNY$G7Q3&b$w8(X`<|D5<w-MyVX@fV8 zyWVA8Y-1eQdHOeu%~N;^hiIIo_o{r=5tntnWw%tKs~#I*tGGO?)B_6@wVEy5`MhR+ zS@hy{b_>EZnKLyucFw-z2CD$JsRy1Wwm}>-AelgKA$FCFK2`T)cCq-~DFdHRHylFm z9f#HK?aUuM$r$kd!A0(W!$sV{+nXxSWI$Bam;H1=%rzp?b#`t<!jDj%=y(lvHk(;6 zQ=YF?;k1!GtzB&CE?8i`8})!O{$&|FAEt$L?kY!$AITAFpe;Ks<Gz7ld4SjXVeC@v z$WnFL|10<TG+HIEeNVP-g5xMWv=!h3-_Asg6gX%@`UWD0qvwgk3$Nc^SU)!fNFCRM zYxV^PP+Cf5Zv<CM4bIlggUK`&MrF)LbR8VloAhV-V&o+-R)ze?Q&~Du)2hUsI*N9u zC7tEOm<rg)-AWV!m)x-Oc|4hb{oy6=@PazG<4V7hDZ5yMw;%1)TnJ$Hw!s4pp5Buc zcV*Bdvb0Ju{8k#fvW*)?iLUiWXaV23pWftlJ;P?GD$bkLzW*Jer&Je2LCtit2AY)Q z6t8L&@ki+O9+p^te#SpcTtaXVRBe%o?|-OR+4C(-3Rr6Aca(}EHl|#vMDCdSY%SHF zJ~=y@m(oejXLzmKcUvC3lt`J`|19wAWW2Y1!~)r+{2U=RdilaCmAHj~igRP|T_%S1 zJ-Omf__mEl;21M}iZe{86xaQam!mHpNGT8!^z;<yBk%V}VO}2%Suope|3mnz&((rV z3RTG?Ra$1u=BN6zmxKiD5P4>+^0_v8jtudmy*gm8@ZbDo$MXaKOEr__7y31}IW_^7 zAH-Rpu-bP}KmjJ+!U3Vi)~#bmYPY9$L-ES|?)`rDKn!EJkd$rZ<Vg}(+#+s8Z$156 z{1^SRRVsK+!?X)}jxn@oy2j}~ehM7!nFyYAM{f!);X^n^OHUHphezNjr@To^tnyAb zq;4%S=4IKtn(%9flU5^UJK=!>u@e?2F$m1MjVeOqQ7CTaHk`}fPO@*dHE{j_Qnx5q z>%PCHU$wJ^W&0>qPvx@~B}pqWi`oR^k{H3J`Ia+BU@MdBGOwSK+~fdbQe0Q{(Hgsl zz!@ul$leE5H3m=|X`69q&#m0xtNW3#^X)gTYqh#N?iUFavMQU{*)1xgE75i?TwenJ zr6pxQ+n&*pG?~O>oolE#N>>483;xiKM;kuuOBF?6QBXjFD*9%Txm577Y}l-ksfS|h zMX1m2A~m9`gkUy+rVDGZ)UvlWf|77%GQWC6<wwy$+VR}StkuF|Ai}iZMJqwc<-egZ z`!>F<53Tm1Csy3ivQ0MvcFX?Vn8i6i_eM8HsueP_(m3LfHKbsr1&GW#S6iXAX;4Fa zDhI&JLz5CN0%;-Q=Onam{26E#I(%2|?7nO@+!>a^zRX8BM9n<&+fgWuQ5z#Om<sSY z{QY{s+RoYlgffOurpZ*knS94+Q}R-_RQ`R*e+vPhQW-&(K0%_uuJSM>$=`T(ZrQrX z+OT2u%Fhq=_><7Mmo&d_6ZXV33R#KbVMkOb!j?o|B1;~=%Qp!(nqI!;p*`*txMzRv z@%is_m?#Y}RcJU$Z`yG#_@JN^$k}V6F?%;PDv}~M_i=NLSp)^Sn}!_7D8=%l{YGPn zBKa!(iMzN1!{@SZgk`Ql>*rq6zbmc=dO=ifK6Mvka<z^j9d*5QUnU?-!Q4K$nWX0R zAmIwLIJDLHnV_ug#GY9<-A%%$k&|%Ux%hb*?c0Akw1JYxOFCY6&RQtHNkQ!jw|^;h z=;8k3^C&FB%h#6!e(EnFA7hUXB46G2The_T+53N0g2!K)pAk@Le6yNqqV85Hy7qHs zob!=2Njq;w=k^(<h#;_(Or3ofdS}W4C6I!cdABl_W^{s`L)m#v9t9&7HY}#OV_gpe z4z|<<B+p7zJLUQ7COL6~+=a2BdhYw0BW(mu(>obOvGEUE2Xq}9Ie{o2)QfG`TNnSH z{pVvCK|KGD7lB8y20*NKr~^*g{CJYq5Uz^}V<I#=3gExgVSc!$+@EJ8;Iz8p(J^`( z(y=7zQbuh!+oHRW4}`PO@IG$`{QTkG6nCHYKu^5XTTE4jU<Z#sLya^~HnRf(=R<qY z=YcfyA>HdL3w4{LMH};?o`3hJAc!99sk2Vswqco}7GY~<mN4Iub;e3@?~wZFcw}QW ztlN`_ku3@05c7vLCMHu)yG4|jm$#F&)wl8SpR{lnS)0`Dv`)OOcVK1#h@JxxbCBTe z)&lvTmH;8q<WhE)VRqVEvL2>es@ZBgLs=|r;tuna%G|NeZDkj|{lVu9l49x&201_a zCM43ZYdTE--f{8w&yb0!<_<?x$7bwpndIKH6FR4@B`Gsi8^DO!&PoL4+SN<prXXC< z17cLWP4N9T=Ob0Zfmr8`bISWKlZ<%6E|0L5+FjQ;4~sy!P)P25$ahi-aht9yVsuzX zEJ#Ii6FA!KCC$yVH$yR#+Wgpd`2}oN()<qG<G+*QqqH97vhmQc!cBW$Uf+mxZKQL> z<bJ_~Z+MI#8Qr}HqUMv!i7XpXT$2qyDa`(OA1x4gjn7o|JnpN1d>n~|>oFGNWUN<D zBw1WGD?)8Ir*&1_H*?J6r}z=;8;&|ot!;)&B-FZl&EyiYmg=NGl3mvM{Fq&<0!vRe zTspG~k<-c}6YRwG3tjpYl~7X}xzf7hXbbVI45eb#Q;#I)n#66u$r7)jdh|iZz9afh zDo)zTNRZxU35_C|b+Cf?PSQWVaPJ^)E<-7nzv*gif)tJ>_T3<$y8OIA)b+5jTx=uB zvB_m&HLuVPV_6>8FXp^=eatAuZ7Mq+L3J7!sk%9F?nwK4W@lf+XAm`2h<?T|=X0o{ zb|s5T=T3k0eIRxQ?UL7Q^yBNp5M9_$)1Q?2TFBfaEJIfe;8OYF&c4l$oMoep-G49v z3hCsGHA|MmU|l?JwK2LSGANrE#ca(kvxnO4xXmbub&T7=7UJ`yIN9wPS<~c#!>5t( zSS9}YJ_*O?ZhQ1&7Qk`DXW&U*ZbEh~f!f2`$-|?yq*@2y7*6ZaFMeHsTOl&J(ZA2o zGjW&py8}60nuspK-Yj-;6~^y?DXdz5vvYvNSk3(5k|*DK-C5)Gs=N^)k(=4l8@di- z1#Su7EKqhufw=!KoxG0!lCAjt(9M-0!!^&qs(U~H%y!AsI_jtxh3Di*x*)>aA}S<H zL|XN)kO_B&Ij<`|nXM_{)A~l%7$ue==5@m~Nvl%)ao$Dl96$I4?{7-hXC0~@9Dp-K zxy}WH?U`|!|KT^E5zCD*F-;%IabHb+5`(T>qkl|rn)Rl)9DYulbpea*IjQ6({+m?x z`>r4fE-ex1vriBE&h&kchj!`ihEj<F%;cO>hLQN0JTBgN-|wMks~DGS^xuWsfcR~2 z1E5)Y88X4rpQp?x+RP9`cjb&QC4=*?EkYD)tc@E_M=pAMFsuya#op4d)3Kkjb7<Sx zAJM0%Ye5Va96dR^z84hqG;%b1rXNVPIa)kp{YVhIQES6*t8xhzY}qO4GH2KGO5=0f zVq4hHp9b$!u4wBb$iQAAGUxR11@6K4FWa)6m$3U`?c0?Ia>&XNW^VrE+@Hc|D%hAk z0FcL4)psNR_k7JH-r9a4$(Zo5^0IEaVzkv{Js<j(&`3J9?_oNx-!E?X%Y#(R?|;Ko zoRGnb>I=8G?)>2nzqWDNH@}KI1DQxI75kilGfYKFcoE7uHlfgdQ#(Oeux1Znmp>$K z2Q7Y27McjIsl^QrFnWjzi!V3aH?$RW3)z>;=X@RMr;lBH;s9<-_rP5+XQCqi5vgj< z3=N>(_?skNCQZzO6HEm2wsvG;fJ74iU5ua7Um(QqFQkyo1hh5Qc8Vo)_UA$4VasW` zd0rJVEdsvdZ@czHMeiRj6fs*d5EYMIV85x4+*b-g7hP=gq#~>A`>2`!g4Mz8#NGjo z3ryf&YFn{Hs}=<!+?BpfY}P(AuR7y8T4X}mrHPll>$YX*+j>*b{Y0L5Zupp`nZn%> z+_;0>^muN5I!QZ!30LNH_2a&5J$9-{=U5+mOk0?5I@-{+6MW7S19h6>JnB789eU_$ zw@yQ=gvA4bZUPZ7b7zsNSS3lfX6|ZWv&i4zAqcwZg~#w|fB8qV8BYwCcZ{SP5s-kQ zHVR94IZVY&d$`UKJ}!VVou~~-ho*iHeAOtgE+xL#?FD{r2%JM>tkOx9F8j44+4o5V zKnPQ|=Sn~0t(lM3)o8X1B1K@sHQ_h)2^k~Yv3EDjvoI&7D0xl7OW&?f?c}J@OX(fP zchk)Z`bP?UPgAdln<&EXD`d<I*8NwCDjphWDAB&Gwe0HY^-b@HW>5FpKrP|m4gx=) zXgV;r;UaxF;vP`?e+p&6H+Q(C8CXfPMh1$0jSS?Q(k#d?SKZbu8ghnNIgAbGIyM*N z{q$|qJV`AW&b1Q=EksvVRpe((XI!~ufEO7CiTs|7BH84iGn$>e@{S9&d#|~6w{9sB zQ=8Ipf7+vG0euI0>sc>J|9fjKCY4L<#wu!=%`;v$TYBR7AX(pCU29HamJfLNz(tx1 zKL;ec5-iY_Zl@UatoVLIB<Si(N@=_cpi=(SFU|DtWMqNADS1pi2Q_(kOfMCZ1D}A~ zUM%i}z;Dl2Y|<>kkL!&2ssH)^ubUue0&8pINntVWWoq4bBH>}thz!Q@DK<lGSt^%- zf*52^Hys=6KQ;JO4LtnM#Pd&Co}ynTN<aehGZ8q>8`tBPy}o`j$I0+3IJ-Z94`K3u zPD-(-{HojUizf%j`kis2SE|rmDSA+=p0^jrf`<E*^OpVlTw<265a}L}>?(<Ruj(De zqbR8q4KuW)rY;g*?^8EX?XLW$EvRDqM5TTIUBBc%wg2^W!mI6{zF5UmUxhH5H)tZf zJBzG4zSG4YcbM28o9vp^lTf2WVfrO0_i8#TEl`W9R^vHF<LfWm_90UuBf77Ym6h#h zX;n(8my*_>Q>s@ZVg%M=1%@b|>)2ORRQV-NyY-^&yPu6rge)>0Osy5J!=b%N8tCfv z&Or47cZD5+yB;OV$--kjxW(%G){-hfy!XG23e(4@63gJca<kGL)e#<ibc>4DddP=O z_nP$@;alE?2k?Mvathp>8il!~o#s^=TzR?U1MVjX)F@SoR3|@jzH@mc)8kmpV_jgg z0REGP+|O*hTy;#sNMNtA6PV|Q@?epH9th^txY|}!bP#D|#~^n3MS0!XMO4TIp@j~a zG4Mfk^KN>D@UIa!$OgqHB>1g9O(ePi`uIXxMlJRRu{vH<FpB~$<<5SN-cU+G6g5;< zi-|vJP{aIZwi;AMS6A15Xed@r^)}|v=?5A}lsYzHQEwuKDiy9#W#CS73|RT%EK{9; zGyKdXIY*4}SU_TTy6-K%kZLI?{o2o^D%mhx;4<XCJve9IGt#qr;(<LaJD9*Zb;Pc$ zukYC%<gxVl4Ob2?Ppg7m{kx&Bl0`&CM*(b^6s^-=3cb-TKDSq98UR`1h2aeHz#g}> z7PHwyOWuSe8zzWaln&*AD<~Kw*Kf>uH4f-fj9wseZPMSppQowi-~d-1_b5%;Yt=wg z6xEuRg+iyn+Sr!fe6!~e$&=5`rqh!G<0<;uMy;*bH%kxD10-3hQiJ@5!<_cRUK-e= zBcPMcr3-6r27~QVMn^~gKn31wiAf;?k=~bv$`nG3!}v3^vTnSc$sbIi_Eami@qS$- z{@I%1o^AaK4M(?y$@}-0CAAD6Mn}hnmK(w+&5G)`;|rYUFG$@oUyrk@w1c?`qad4g zW`J42cF(5x3v;G7MZ7uKwYc@JgZ(k9V^*STjTz1o;XCDVfT}wr1-J0{$Ju>1MK$kz zFRQ;C;4!ZYeM<Uv1A)^=|Mbq95J6Q>Pdl%X0oi#2x@{MFbq_Ju$T!Qi&Fh-sCq)U< zaDi@Iz_Tjp^)G(UM^A<7O?P__OU=gjo+nhH&P3Y?M2$S$JZY-WS|;3Wv(P2-zBxvZ z?r&wPK>LWCBPZ3wbQAEInIK2$1FmZDd2kWNGv?#o4W3-f`r?BW@ech^`s8dk8NB`Q zz&Awy%m9^CBytKDerK6ZUHSn_ODG|}FKeF=W8spPEh<OFZ}#h%hl1+DBg7;a&A`A= zP*KrJtAVBGiVcpU_6$p=j(V&{?b3KN_K|vMPZs&T_Kn(;O5>6we#aa9H@0O$@x$o+ z+@^aZEIgxQVzj#WEe*|$Px}a{x9cA)Ab!qT9NyhT8f8QWU4IoQuudn3`5BNhN>WJl z$WtwM<xs*#w~x9qL#nD{95RmX>?*Qq?0x{g8cZ)Teoeo;T{ueRK9<}8t;u3rx;Eyt zuZlAweLXnsvgy?DuKV6_=cBGu%7#n25O`Ip@<{G<{LapfaT&kEZiMan>?MJ+UdH2> z^&T4}+**DRjKq>#tB2kWGDA~aV+~GSu_-=cE)g3YedH>oSJzaJGu>B3SL;j7!T%9C zgF{k~jH;DY37}}jvlt(q@mMYp+~{-hPBx+BU?zBy%T4T4DmK}3iyNQy*V^$&BuA%o z<--k+H?cal)!@v7ra&AG-$8flrL>87THEFdrODTL8mD0;{Ztu0-i(Jlm`$<BV%WKs zPAKM6z%$4oxT2J2+dSH@7%F+-&m@j!L2OR@xi;(uW+iVSHR-=)+MX12VO=OwS7;x- zd|6%KbmZV({}IWjvnNvTHbgUW{6Wq$q+hAt=?9T4DX>|?`P+M<Hpy(%YfesfS4je4 zhE>r+Gwi_lIK))o$;pAkee@s~!DEfYlNu>pN9>3i^w%QLuysw1@~QU3E|CaXBs=Q| z=^4_u{nUfcIkorq3N$7psECm(AFr&w%E{r1R^l33*L{Pk-%e2uWS*>9_xr&XZ<O}s zZRn|OH2Ao}9Sb=dbuS#rXzb4Wk(k1=@=*`Ue*bfM?j%9sh|%dGiG3!+M&;I8pljdP zYB|!*I{3U6xR}7KUxx>)KGw$9&BQ@Q@Dv(PWapnyMon5>0vzu&-Sc2VhVtrssM`po zltio2r}3;W9?mA7B>Q*y5Oea|0c8~DcwrEC2?V|0oaoslZ}5V2S@J2SN<`#jbgihU z%piMR?e(6$?&XD-Z+bE~i{a^`R~A&?t(Z==;0#vG+^bE=Xa_9$kU(07qnAQP6Ax*1 zR+mOyoB7BJSY)7burmxs)Ouc_-lsAKHT)H{SvNt=(<<!IC+UuXh>fD*e3<4T&2_DG z8Klztl<}hJ#F}8cx{-zaqf4$3VbEqayV0>8U$<Dl4jUPX>+$ETQ!4_lxo^)Vd;{yz zMRwis$<t{MXtz-U$e-@gFteWZIpqrrC@h*g?Im@EK)ff}UkmOm@pAIPphizQf&OtW zlXLsh6&0CJ8p1Gy^;da?=ewu==8!a@YQNm~=3zVBk>!@2`1D9&eQpKSvz;Y(mF`ZW zO?X+ob78?D+z)$Glzt<F)v(^$)7x3N+^4cXgb8AL6uNmiKpsU+7904^e`*<0%m1Tt z|8nDiP9{T9eaA-ink2Z~baX3u)8t8XJj`Y?k@{2zTro5AjJINf*>Ou!dk33QxtHSX z{7P7Vd2A{9U?JsfDAGL~)J>t@`-910YSmjtU$9XMcLwe~GO+w1<=Pedgd)OAFvD{^ zYYwJ&hSYVK8ye^Mi}+B|EL#R<)*i2dr=a$c1-LHAnVyKVrN5}GOK{Fg^;(F;%;@TS z-hjOxw@(u5QXko&y9%>RN=Et>u#Uu}hZiMvo<U_uy;e0+)P)Tq%MU-qWQQngJ(k`z zpJfW{hP+6@Oxmc@rdJ@O({Y$DAKtEyp5;vtn2o~r^oG}&r{f=ePBpE?Jdo^6$adRa zr3-T7Wc?OL@sZb#?KgkQA>9k6__hg=d}THDX03$pq{f61(4A8bK58SKQprCCZ(0Nm z4`HT@zI<sEsJX(pP98m8c|0AR;*H&&w#k%N2-dLNRWN}ouaSOcj>%mDnTSa2<C(ky zb(1`LC$3X_30vj%37?5?J7;9$F+iHERExkdbxN+7?yL8JJj0S^6i>NCEl|CmT%)+3 zoE*m(G5q0~p3<pRRV`eP<Ce2h^6h$C2Em6!q&{BOC7X>mTT4zNj}kRJ)%pwwAZw?x z#8!|zFVkA~-|Yg(RD<BPzP(smjR2*q=`Qr0tb&L5ZYi3QhemUk|M177Thc61y(nfg z41R)`#la<sWnCqKVT9Eez!SRsH_KG}AkD){Mzr%V_3PKBrkP?3bHS9nbPjHLx5Z00 z&=1Z@^f{|0)%$>G^}+>Q!r{~GnNHOV>1QWv_FOzB#X*)xsm@CP#XKJq5c}MrNk28G zU0z-;&dtqrSK{6{ko$r6zxm>sc#Va!bEU}d8z;M<^WO5?((r$|1yF=V9yC6#h2G|7 z7J{l8pB$JCPfbDR`PeDxt*ur3|HmXhoWtYKGQ+OLsep#pB#7vg$p7@u1|<vSIMZt4 zZ)zWLt<Pq54<PQ+?j*K`CRN&%tDlD0DFbL`g#IO`^HCo(FB(4VOFVvLd>Q{D@q@2z z^b8Dq11xe2&r~f|3+f&8owez@sp9YMH|+I1x&bQX*;<4Zy)6;V{iSC7YQMtsRGzoP zNM217Gqc;s($7ylD%ItnvS@U{*n6UVmarH+DQ}aKC&a%6;rdliwe+r`1f*WVS#Zz` zRV)^hd2%C-`3u<^N&!<F)g|N!oRcuH>ukS1`fBc5un@FGn34P>HU?^HVp1|Y`x<6! z?63EEM?_3a+r<T;PhV0~bJscO4>ox=Q4{;JX|8*HQOI_D-m4~BW6748%t9cOTW`@1 z&DBiJ%g$a#KyuJQ_+Qd{q%*xJuS-~`*OL=KNWDZYrq|nGYkvI1URNnwGYk2#&l+3> z(^)<lowbl=;9gSu!ObS#0miBw6v^Du06d-J->!VCD&6>~y-CusL$9DPQ~dT&5S`HJ zjp0Jwgq@r_^z^YiV?1Fa_@o~J;c&%E{~#w5=Il~l;4tMsGCX`do#IHFJDq-f?5uhA z$uIJoq!TZ(dQk#C8}^}(&;Q0hED;YX+aVFoE5~x3JZox|secJ*d5Th_df1@%phJfS z!DAT#xxTKe^9xYB3v{a)EDF52+3=9$FM~`sJpX-6v+4(F<3qQlm({PQOwS2Ojqs^5 z68dNyZ2DYNQ%g{|2RykSil0`X4L`0WO&u&tx0Y#W33k;ln6IR{OmP1i_v5%Q9aiiA zp`sI4s?-@_^UNKyyPj&9Ud>gmeQDH>RW$I@z$$#Xsp$+hWYL%K8POV{VT)Jyr)WWv zTCOsN3M(Y-Po_D3&yQ3!f^tFGN_FF++alOlz0qg8*Wt6V41-YxyK1TzE@cxbK&9e& zuU-xvP_F*iYNB5pk$A8oMDkmtfGOBWxm-$BITd{G5f|s_u8X{jANom;7HJ0yIp&_* z5-3Mr)-yDwb9j<<{|wX^>g=lU2Q!E-$9#Al_g15cnf004lb42u3x?*%4RP2IrwifE z|JwPhyf+W!rw5N^)Rb&`Yxm!(h#0U$Jtml!`HdF8AY(`QLy5)FLGTZ~->o~p-Tndq zoHw#J|AmZyaKn`v00p>3(82%k8+eQKH$dyBqgKE0TZ25u!1)9`PqjL?H|4Z{+I#_Y z=Nwex!bpF;_umT(3PkL)gJwuW{?$U3uoCHx(bd%;-Y;I?3Dn()uTmhoCll%ae3A4% z%aDtSu3ff0>Qi`A)#+(nz}K&AynK9RTRmHCl2p%S)H?jHtgWvXZ)|Lw)>&$W{!cDH zNPoo7nN%XmdTp%3Qj&n8>EkKB!7Few8pA^&)7N$<{KEh0Y!FABZY{tRb}E(X9%15M Tdo>yl_)&bQ@}N-G!0Z12#e4Vt literal 0 HcmV?d00001 diff --git a/site/public/images/prometheus-logo.png b/site/public/images/prometheus-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77721090ce7f8d9a7a3be566aac24e87295281fb GIT binary patch literal 17587 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 literal 0 HcmV?d00001 diff --git a/site/public/images/sponsor-betterstack.png b/site/public/images/sponsor-betterstack.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c12b050434998779024ee12aa6f843c450c241 GIT binary patch literal 16118 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 literal 0 HcmV?d00001 diff --git a/site/public/images/sponsor-cast-ai.png b/site/public/images/sponsor-cast-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..ba23e25baaf052441eca07ddc0b5100f19055980 GIT binary patch literal 13408 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 literal 0 HcmV?d00001 diff --git a/site/public/manifest.json b/site/public/manifest.json new file mode 100644 index 0000000..aa4da0d --- /dev/null +++ b/site/public/manifest.json @@ -0,0 +1,19 @@ +{ + "name": "Awesome Prometheus Alerts", + "short_name": "Prom Alerts", + "description": "Collection of copy-pasteable Prometheus alerting rules for 90+ services.", + "start_url": "/awesome-prometheus-alerts/", + "scope": "/awesome-prometheus-alerts/", + "display": "browser", + "background_color": "#0f172a", + "theme_color": "#E6522C", + "lang": "en", + "icons": [ + { + "src": "/awesome-prometheus-alerts/favicon.svg", + "type": "image/svg+xml", + "sizes": "any", + "purpose": "any maskable" + } + ] +} diff --git a/site/public/robots.txt b/site/public/robots.txt new file mode 100644 index 0000000..eff0940 --- /dev/null +++ b/site/public/robots.txt @@ -0,0 +1,28 @@ +User-agent: * +Allow: / + +# AI search bots — explicitly allowed for citation +User-agent: GPTBot +Allow: / + +User-agent: ChatGPT-User +Allow: / + +User-agent: PerplexityBot +Allow: / + +User-agent: ClaudeBot +Allow: / + +User-agent: anthropic-ai +Allow: / + +User-agent: Google-Extended +Allow: / + +User-agent: Bingbot +Allow: / + +Sitemap: https://samber.github.io/awesome-prometheus-alerts/sitemap-index.xml +LLMs: https://samber.github.io/awesome-prometheus-alerts/llms.txt +LLMs-full: https://samber.github.io/awesome-prometheus-alerts/llms-full.txt diff --git a/site/src/components/Breadcrumbs.astro b/site/src/components/Breadcrumbs.astro new file mode 100644 index 0000000..e1f57f5 --- /dev/null +++ b/site/src/components/Breadcrumbs.astro @@ -0,0 +1,53 @@ +--- +interface BreadcrumbItem { + label: string; + href?: string; +} + +interface Props { + items: BreadcrumbItem[]; + base: string; +} + +import { SITE_ORIGIN } from '../data/site'; + +const { items, base } = Astro.props; + +const allItems = [{ label: 'Home', href: `${base}/` }, ...items]; + +const jsonLd = { + '@context': 'https://schema.org', + '@type': 'BreadcrumbList', + itemListElement: allItems.map((item, i) => ({ + '@type': 'ListItem', + position: i + 1, + name: item.label, + ...(item.href ? { item: `${SITE_ORIGIN}${item.href}` } : {}), + })), +}; +--- + +<script type="application/ld+json" set:html={JSON.stringify(jsonLd)} /> + +<nav aria-label="Breadcrumb" class="text-sm text-slate-500 dark:text-slate-400"> + <ol class="flex items-center flex-wrap gap-1"> + {allItems.map((item, i) => ( + <li class="flex items-center gap-1"> + {i > 0 && ( + <svg class="w-3.5 h-3.5 text-slate-300 dark:text-slate-600 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" /> + </svg> + )} + {item.href && i < allItems.length - 1 ? ( + <a href={item.href} class="hover:text-brand dark:hover:text-brand-dark transition-colors"> + {item.label} + </a> + ) : ( + <span class={i === allItems.length - 1 ? 'text-slate-700 dark:text-slate-200 font-medium' : ''}> + {item.label} + </span> + )} + </li> + ))} + </ol> +</nav> diff --git a/site/src/components/CautionBanner.astro b/site/src/components/CautionBanner.astro new file mode 100644 index 0000000..29ff95d --- /dev/null +++ b/site/src/components/CautionBanner.astro @@ -0,0 +1,12 @@ +--- +--- +<div class="mb-6 p-4 rounded-xl border border-amber-200 dark:border-amber-800/50 bg-amber-50 dark:bg-amber-900/20"> + <div class="flex gap-3"> + <span class="text-amber-500 flex-shrink-0 mt-0.5">⚠️</span> + <p class="text-sm text-amber-700 dark:text-amber-300"> + Alert thresholds depend on the nature of your applications. + Some queries may have arbitrary tolerance thresholds. + Building an efficient monitoring platform takes time. 😉 + </p> + </div> +</div> diff --git a/site/src/components/CopyButton.astro b/site/src/components/CopyButton.astro new file mode 100644 index 0000000..a9aa149 --- /dev/null +++ b/site/src/components/CopyButton.astro @@ -0,0 +1,90 @@ +--- +interface Props { + targetId: string; + label?: string; + variant?: 'icon' | 'text'; + class?: string; +} + +const { targetId, label = 'Copy', variant = 'icon', class: extraClass = '' } = Astro.props; +const btnId = `copy-btn-${targetId}`; +--- + +{variant === 'icon' ? ( + <button + id={btnId} + data-copy-target={targetId} + aria-label="Copy to clipboard" + class={`copy-btn inline-flex items-center gap-1.5 px-2 py-1 text-xs rounded text-slate-400 dark:text-slate-500 hover:text-slate-700 dark:hover:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors ${extraClass}`} + > + <svg class="copy-icon w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" /> + </svg> + <svg class="check-icon w-3.5 h-3.5 hidden text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /> + </svg> + <span class="copy-label sr-only">Copy</span> + <span class="copied-label hidden text-green-500 not-sr-only text-xs">Copied!</span> + </button> +) : ( + <button + id={btnId} + data-copy-target={targetId} + class={`copy-btn inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-600 dark:text-slate-300 hover:border-brand dark:hover:border-brand-dark hover:text-brand dark:hover:text-brand-dark transition-colors ${extraClass}`} + > + <svg class="copy-icon w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" /> + </svg> + <svg class="check-icon w-3.5 h-3.5 hidden text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /> + </svg> + <span class="copy-label">{label}</span> + <span class="copied-label hidden text-green-600 dark:text-green-400">Copied!</span> + </button> +)} + +<script define:vars={{ btnId }}> + const btn = document.getElementById(btnId); + if (!(btn instanceof HTMLButtonElement)) return; + if (btn.dataset.copyBound === 'true') return; + + btn.dataset.copyBound = 'true'; + btn.addEventListener('click', async () => { + const targetId = btn.dataset.copyTarget; + if (!targetId) return; + const target = document.getElementById(targetId); + if (!target) return; + + const text = target.textContent ?? ''; + try { + await navigator.clipboard.writeText(text.trim()); + } catch { + // Fallback for older browsers + const ta = document.createElement('textarea'); + ta.value = text.trim(); + ta.style.cssText = 'position:fixed;top:0;left:0;opacity:0;'; + document.body.appendChild(ta); + ta.select(); + document.execCommand('copy'); + document.body.removeChild(ta); + } + + // Visual feedback + const copyIcon = btn.querySelector('.copy-icon'); + const checkIcon = btn.querySelector('.check-icon'); + const copyLabel = btn.querySelector('.copy-label'); + const copiedLabel = btn.querySelector('.copied-label'); + + copyIcon?.classList.add('hidden'); + checkIcon?.classList.remove('hidden'); + copyLabel?.classList.add('hidden'); + copiedLabel?.classList.remove('hidden'); + + setTimeout(() => { + copyIcon?.classList.remove('hidden'); + checkIcon?.classList.add('hidden'); + copyLabel?.classList.remove('hidden'); + copiedLabel?.classList.add('hidden'); + }, 2000); + }); +</script> diff --git a/site/src/components/ExporterSection.astro b/site/src/components/ExporterSection.astro new file mode 100644 index 0000000..8a11c4c --- /dev/null +++ b/site/src/components/ExporterSection.astro @@ -0,0 +1,122 @@ +--- +import type { Exporter, Service } from '../data/rules'; +import { formatExporterAsYaml, getDistUrl } from '../data/rules'; +import RuleCard from './RuleCard.astro'; +import CopyButton from './CopyButton.astro'; + +interface Props { + exporter: Exporter; + service: Service; + groupIndex: number; + serviceIndex: number; + exporterIndex: number; + showExporterNumber: boolean; +} + +const { + exporter, + service, + groupIndex, + serviceIndex, + exporterIndex, + showExporterNumber, +} = Astro.props; + +const distUrl = getDistUrl(service.name, exporter.slug); +const allRulesId = `exporter-all-${groupIndex}-${serviceIndex}-${exporterIndex}`; +const allRulesYaml = formatExporterAsYaml(exporter); +const wgetCommand = `wget ${distUrl}`; +const wgetId = `wget-${groupIndex}-${serviceIndex}-${exporterIndex}`; + +const exporterPrefix = showExporterNumber + ? `${groupIndex}.${serviceIndex}.${exporterIndex}.` + : `${groupIndex}.${serviceIndex}.`; +--- + +<section class="mb-10 scroll-mt-36" id={`exporter-${exporter.slug}`}> + <!-- Hidden pre for copy-all --> + <pre id={allRulesId} class="hidden">{allRulesYaml}</pre> + + <!-- Exporter header --> + <div class="flex items-center justify-between flex-wrap gap-3 mb-3 pb-3 border-b border-slate-100 dark:border-slate-800"> + <div class="min-w-0"> + {exporter.name ? ( + <h2 class="text-base font-semibold text-slate-800 dark:text-slate-100 flex items-center gap-2 flex-wrap"> + <span class="text-slate-400 dark:text-slate-500 font-normal text-sm"> + {exporterPrefix} + </span> + {exporter.doc_url ? ( + <a href={exporter.doc_url} target="_blank" rel="noopener noreferrer" class="text-brand dark:text-brand-dark hover:underline"> + {exporter.name} + </a> + ) : ( + <span>{exporter.name}</span> + )} + <span class="text-xs font-normal text-slate-400 dark:text-slate-500"> + ({exporter.rules?.length ?? 0} rules) + </span> + </h2> + ) : ( + <h2 class="text-base font-semibold text-slate-800 dark:text-slate-100"> + <span class="text-slate-400 dark:text-slate-500 font-normal text-sm mr-1">{exporterPrefix}</span> + {service.name} + <span class="text-xs font-normal text-slate-400 dark:text-slate-500 ml-2"> + ({exporter.rules?.length ?? 0} rules) + </span> + </h2> + )} + </div> + + <div class="flex items-center gap-2"> + <CopyButton targetId={allRulesId} label="Copy all" variant="text" /> + </div> + </div> + + <!-- Exporter comments --> + {exporter.comments && ( + <div class="mb-4 p-3 rounded-lg bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800/50 text-sm text-amber-800 dark:text-amber-200"> + <pre class="whitespace-pre-wrap font-sans text-sm">{exporter.comments.trim()}</pre> + </div> + )} + + <!-- wget download command --> + {(exporter.rules?.length ?? 0) > 0 && ( + <div class="mb-4 flex items-center gap-2"> + <div class="flex-1 flex items-center gap-2 bg-slate-50 dark:bg-slate-800/50 border border-slate-200 dark:border-slate-700 rounded-lg px-3 py-2 min-w-0"> + <svg class="w-3.5 h-3.5 text-slate-400 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" /> + </svg> + <pre id={wgetId} class="text-xs font-mono text-slate-600 dark:text-slate-300 overflow-x-auto whitespace-pre">{wgetCommand}</pre> + </div> + <CopyButton targetId={wgetId} variant="icon" /> + </div> + )} + + <!-- Rules list --> + {(exporter.rules?.length ?? 0) === 0 ? ( + <div class="rounded-lg border border-dashed border-slate-200 dark:border-slate-700 p-6 text-center"> + <p class="text-sm text-slate-400 dark:text-slate-500"> + No rules yet —{' '} + <a href="https://github.com/samber/awesome-prometheus-alerts" target="_blank" rel="noopener noreferrer" class="text-brand dark:text-brand-dark hover:underline"> + contribute on GitHub 👋 + </a> + </p> + </div> + ) : ( + <div> + {exporter.rules.map((rule, ruleIdx) => { + const anchorId = `rule-${groupIndex}-${serviceIndex}-${exporterIndex}-${ruleIdx + 1}`; + const ruleNumber = showExporterNumber + ? `${groupIndex}.${serviceIndex}.${exporterIndex}.${ruleIdx + 1}.` + : `${groupIndex}.${serviceIndex}.${ruleIdx + 1}.`; + return ( + <RuleCard + rule={rule} + anchorId={anchorId} + ruleNumber={ruleNumber} + /> + ); + })} + </div> + )} +</section> diff --git a/site/src/components/Footer.astro b/site/src/components/Footer.astro new file mode 100644 index 0000000..80bf8bd --- /dev/null +++ b/site/src/components/Footer.astro @@ -0,0 +1,96 @@ +--- +import { sponsors } from '../data/sponsors'; +import { getPopularServices, data, getGroupSlug } from '../data/rules'; +import { SITE_NAME, SITE_URL, GITHUB_URL, GITHUB_CONTRIBUTING_URL, GITHUB_LICENSE_URL, AUTHOR_NAME, AUTHOR_GITHUB_URL, TWITTER_HANDLE, LICENSE_CC_BY_NAME } from '../data/site'; + +interface Props { + base: string; +} +const { base } = Astro.props; + +const popularServices = getPopularServices(); + +const featuredGroupSlugs = [ + 'basic-resource-monitoring', + 'databases', + 'orchestrators', + 'network-and-security', +]; +const featuredGroups = data.groups.filter((g) => featuredGroupSlugs.includes(getGroupSlug(g))); +--- + +<footer class="border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-900 mt-16"> + <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"> + <div class="grid grid-cols-1 md:grid-cols-4 gap-8"> + + <!-- Column 1: About --> + <div> + <div class="flex items-center gap-2 mb-3"> + <img src={`${base}/favicon.svg`} alt="Prometheus flame" class="w-5 h-5" aria-hidden="true" /> + <span class="font-semibold text-slate-900 dark:text-white text-sm">{SITE_NAME}</span> + </div> + <p class="text-sm text-slate-500 dark:text-slate-400 leading-relaxed"> + A curated collection of copy-pasteable Prometheus alerting rules for 90+ services and exporters. + </p> + <div class="mt-4 flex gap-3"> + <a href={`https://twitter.com/share?via=${TWITTER_HANDLE.slice(1)}&text=🚨 ${SITE_NAME}&url=${SITE_URL}`} target="_blank" rel="noopener noreferrer" class="text-slate-400 hover:text-blue-400 transition-colors" aria-label="Share on Twitter"> + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> + </a> + <a href={`http://www.linkedin.com/shareArticle?mini=true&url=${SITE_URL}`} target="_blank" rel="noopener noreferrer" class="text-slate-400 hover:text-blue-600 transition-colors" aria-label="Share on LinkedIn"> + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> + </a> + <a href={GITHUB_URL} target="_blank" rel="noopener noreferrer" class="text-slate-400 hover:text-slate-900 dark:hover:text-white transition-colors" aria-label="GitHub repository"> + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"/></svg> + </a> + </div> + </div> + + <!-- Column 2: Quick links --> + <div> + <h3 class="text-sm font-semibold text-slate-900 dark:text-white mb-3">Quick links</h3> + <ul class="space-y-2"> + <li><a href={`${base}/rules/`} class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors">Browse all rules</a></li> + <li><a href={`${base}/alertmanager/`} class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors">AlertManager Config</a></li> + <li><a href={`${base}/blackbox-exporter/`} class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors">Blackbox Exporter</a></li> + <li><a href={`${base}/sleep-peacefully/`} class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors">Sleep Peacefully</a></li> + <li><a href={GITHUB_CONTRIBUTING_URL} target="_blank" rel="noopener noreferrer" class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors">Contributing Guide</a></li> + </ul> + </div> + + <!-- Column 3: Categories --> + <div> + <h3 class="text-sm font-semibold text-slate-900 dark:text-white mb-3">Categories</h3> + <ul class="space-y-2"> + {featuredGroups.map((g) => ( + <li> + <a href={`${base}/rules/${getGroupSlug(g)}/`} class="text-sm text-slate-500 dark:text-slate-400 hover:text-brand dark:hover:text-brand-dark transition-colors"> + {g.name} + </a> + </li> + ))} + </ul> + </div> + + <!-- Column 4: Sponsors --> + <div> + <h3 class="text-sm font-semibold text-slate-900 dark:text-white mb-3">Sponsors</h3> + <div class="space-y-4"> + {sponsors.map((s) => ( + <a href={s.url} target="_blank" rel="noopener noreferrer" class="block hover:opacity-80 transition-opacity"> + <img src={`${base}${s.logo}`} alt={`${s.name} — ${s.description}`} class="h-6" /> + </a> + ))} + </div> + </div> + </div> + + <div class="mt-10 pt-6 border-t border-slate-200 dark:border-slate-800 flex flex-col sm:flex-row justify-between items-center gap-2 text-xs text-slate-400 dark:text-slate-500"> + <span> + <a href={GITHUB_URL} class="hover:text-brand dark:hover:text-brand-dark transition-colors">awesome-prometheus-alerts</a> + {' '}is maintained by{' '} + <a href={AUTHOR_GITHUB_URL} class="hover:text-brand dark:hover:text-brand-dark transition-colors">@{AUTHOR_GITHUB_URL.split('/').pop()}</a> + </span> + <span>Licensed under <a href={GITHUB_LICENSE_URL} class="hover:text-brand dark:hover:text-brand-dark transition-colors">{LICENSE_CC_BY_NAME}</a></span> + </div> + </div> +</footer> diff --git a/site/src/components/Header.astro b/site/src/components/Header.astro new file mode 100644 index 0000000..d1b28e8 --- /dev/null +++ b/site/src/components/Header.astro @@ -0,0 +1,161 @@ +--- +import ThemeToggle from './ThemeToggle.astro'; +import { sponsors } from '../data/sponsors'; +import { SITE_NAME, GITHUB_URL, GITHUB_API_REPO_URL, GITHUB_CONTRIBUTING_URL } from '../data/site'; + +interface Props { + base: string; +} + +const { base } = Astro.props; +const currentPath = Astro.url.pathname; + +function isActive(path: string) { + return currentPath.startsWith(`${base}${path}`); +} + +let stars = 0; +try { + const res = await fetch(GITHUB_API_REPO_URL, { + headers: { 'Accept': 'application/vnd.github+json' } + }); + if (res.ok) { + const data = await res.json(); + stars = data.stargazers_count ?? 0; + } +} catch {} + +const starsLabel = stars >= 1000 ? `${(stars / 1000).toFixed(1)}k` : String(stars); +--- + +<!-- Main header --> +<header class="sticky top-0 z-40 bg-white/95 dark:bg-slate-950/95 backdrop-blur border-b border-slate-200 dark:border-slate-800"> + <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> + <div class="flex items-center justify-between h-14"> + + <!-- Logo --> + <a href={`${base}/`} class="flex items-center gap-2 font-semibold text-slate-900 dark:text-white hover:text-brand dark:hover:text-brand-dark transition-colors flex-shrink-0"> + <img src={`${base}/favicon.svg`} alt="Prometheus flame" class="w-6 h-6" aria-hidden="true" /> + <span class="hidden sm:block text-sm">{SITE_NAME}</span> + <span class="sm:hidden text-sm">APA</span> + </a> + + <!-- Desktop nav --> + <nav class="hidden md:flex items-center gap-6" aria-label="Main navigation"> + <a + href={`${base}/rules/`} + class={`text-sm font-medium transition-colors ${isActive('/rules') ? 'text-brand dark:text-brand-dark' : 'text-slate-600 dark:text-slate-300 hover:text-slate-900 dark:hover:text-white'}`} + > + Rules + </a> + + <!-- Guides dropdown --> + <div class="relative group"> + <button class={`text-sm font-medium transition-colors flex items-center gap-1 ${isActive('/alertmanager') || isActive('/blackbox') || isActive('/sleep') ? 'text-brand dark:text-brand-dark' : 'text-slate-600 dark:text-slate-300 hover:text-slate-900 dark:hover:text-white'}`}> + Guides + <svg class="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /> + </svg> + </button> + <div class="absolute top-full right-0 mt-1 w-52 bg-white dark:bg-slate-900 rounded-lg shadow-lg border border-slate-200 dark:border-slate-700 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-150 py-1"> + <a href={`${base}/alertmanager/`} class="block px-4 py-2 text-sm text-slate-700 dark:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-800 hover:text-brand dark:hover:text-brand-dark"> + AlertManager Config + </a> + <a href={`${base}/blackbox-exporter/`} class="block px-4 py-2 text-sm text-slate-700 dark:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-800 hover:text-brand dark:hover:text-brand-dark"> + Blackbox Exporter + </a> + <a href={`${base}/sleep-peacefully/`} class="block px-4 py-2 text-sm text-slate-700 dark:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-800 hover:text-brand dark:hover:text-brand-dark"> + Sleep Peacefully + </a> + </div> + </div> + + <a + href={GITHUB_CONTRIBUTING_URL} + target="_blank" + rel="noopener noreferrer" + class="text-sm font-medium text-slate-600 dark:text-slate-300 hover:text-slate-900 dark:hover:text-white transition-colors" + > + Contribute + </a> + + <a + href={GITHUB_URL} + target="_blank" + rel="noopener noreferrer" + aria-label="GitHub repository" + class="flex items-center gap-1.5 text-slate-500 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white transition-colors" + > + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"> + <path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd" /> + </svg> + {stars > 0 && ( + <span class="text-xs font-medium tabular-nums">{starsLabel}</span> + )} + </a> + + </nav> + + <div class="flex items-center gap-2"> + <ThemeToggle /> + + <!-- Mobile hamburger --> + <button + id="mobile-menu-btn" + class="md:hidden p-2 rounded-lg text-slate-500 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors" + aria-label="Toggle menu" + aria-expanded="false" + aria-controls="mobile-menu" + > + <svg id="hamburger-icon" class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /> + </svg> + <svg id="close-icon" class="w-5 h-5 hidden" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" /> + </svg> + </button> + </div> + </div> + </div> + + <!-- Sponsors row --> + <div class="border-t border-slate-100 dark:border-slate-800/60 bg-slate-50/70 dark:bg-slate-900/50 py-2 px-4 sm:px-6 lg:px-8"> + <div class="max-w-7xl mx-auto flex items-center justify-center gap-3"> + <span class="text-xs font-medium tracking-wider uppercase text-slate-400 dark:text-slate-500">Sponsored by</span> + {sponsors.map((s) => ( + <a href={s.url} target="_blank" rel="noopener noreferrer" class="hover:opacity-75 transition-opacity" title={s.name}> + <img src={`${base}${s.logo}`} alt={`${s.name} — ${s.description}`} class="h-10 w-auto" /> + </a> + ))} + </div> + </div> + + <!-- Mobile menu --> + <div + id="mobile-menu" + class="hidden md:hidden border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950" + > + <nav class="px-4 py-3 space-y-1" aria-label="Mobile navigation"> + <a href={`${base}/rules/`} class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-700 dark:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-800">Rules</a> + <a href={`${base}/alertmanager/`} class="block px-3 py-2 rounded-lg text-sm text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800">AlertManager Config</a> + <a href={`${base}/blackbox-exporter/`} class="block px-3 py-2 rounded-lg text-sm text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800">Blackbox Exporter</a> + <a href={`${base}/sleep-peacefully/`} class="block px-3 py-2 rounded-lg text-sm text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800">Sleep Peacefully</a> + <a href={GITHUB_CONTRIBUTING_URL} target="_blank" rel="noopener noreferrer" class="block px-3 py-2 rounded-lg text-sm text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800">Contribute</a> + <a href={GITHUB_URL} target="_blank" rel="noopener noreferrer" class="block px-3 py-2 rounded-lg text-sm text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800">GitHub</a> + </nav> + </div> +</header> + +<script> + const btn = document.getElementById('mobile-menu-btn'); + const menu = document.getElementById('mobile-menu'); + const hamburger = document.getElementById('hamburger-icon'); + const closeIcon = document.getElementById('close-icon'); + + btn?.addEventListener('click', () => { + const isOpen = menu?.classList.toggle('hidden') === false; + btn.setAttribute('aria-expanded', String(isOpen)); + hamburger?.classList.toggle('hidden', isOpen); + closeIcon?.classList.toggle('hidden', !isOpen); + }); +</script> diff --git a/site/src/components/RuleCard.astro b/site/src/components/RuleCard.astro new file mode 100644 index 0000000..9bb85ea --- /dev/null +++ b/site/src/components/RuleCard.astro @@ -0,0 +1,56 @@ +--- +import type { Rule } from '../data/rules'; +import { formatRuleAsYaml } from '../data/rules'; +import SeverityBadge from './SeverityBadge.astro'; +import CopyButton from './CopyButton.astro'; + +interface Props { + rule: Rule; + anchorId: string; + ruleNumber: string; +} + +const { rule, anchorId, ruleNumber } = Astro.props; +const yamlContent = formatRuleAsYaml(rule); +const codeId = `code-${anchorId}`; +--- + +<article class="group mb-4 rounded-xl border border-slate-200 dark:border-slate-700/60 bg-white dark:bg-slate-900 hover:border-slate-300 dark:hover:border-slate-600 transition-colors scroll-mt-36" id={anchorId}> + <!-- Rule header --> + <div class="flex items-start justify-between gap-3 px-4 pt-3 pb-2"> + <div class="flex items-center gap-2 flex-wrap min-w-0"> + <SeverityBadge severity={rule.severity} /> + <h3 class="text-sm font-semibold text-slate-800 dark:text-slate-100"> + <span class="text-slate-400 dark:text-slate-500 font-normal text-xs mr-1">{ruleNumber}</span> + {rule.name} + </h3> + </div> + <div class="flex items-center gap-1 flex-shrink-0"> + <!-- Permalink --> + <a + href={`#${anchorId}`} + class="p-1.5 rounded text-slate-300 dark:text-slate-600 hover:text-slate-500 dark:hover:text-slate-400 opacity-0 group-hover:opacity-100 transition-opacity" + aria-label="Permalink to this rule" + title="Permalink" + > + <svg class="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" /> + </svg> + </a> + <CopyButton targetId={codeId} variant="icon" /> + </div> + </div> + + <!-- Description --> + <p class="px-4 pb-2 text-sm text-slate-500 dark:text-slate-400 leading-relaxed"> + {rule.description} + </p> + + <!-- YAML code block --> + <div class="relative mx-4 mb-4"> + <pre + id={codeId} + class="rule-code text-xs leading-relaxed whitespace-pre overflow-x-auto" + >{yamlContent}</pre> + </div> +</article> diff --git a/site/src/components/SEO.astro b/site/src/components/SEO.astro new file mode 100644 index 0000000..767283f --- /dev/null +++ b/site/src/components/SEO.astro @@ -0,0 +1,56 @@ +--- +import { SITE_NAME, AUTHOR_NAME, TWITTER_HANDLE } from '../data/site'; + +interface Props { + title: string; + description: string; + canonicalUrl: string; + ogImage?: string; + ogType?: string; + keywords?: string; + jsonLd?: object | object[]; + base: string; + siteUrl: string; + datePublished?: string; + dateModified?: string; +} + +const { title, description, canonicalUrl, jsonLd, keywords, datePublished, dateModified, base, siteUrl } = Astro.props; +const ogType = Astro.props.ogType ?? 'website'; +const ogImage = Astro.props.ogImage ?? `${base}/images/prometheus-logo.png`; +const fullOgImage = ogImage.startsWith('http') ? ogImage : `${siteUrl}${ogImage}`; + +const jsonLdArray = jsonLd + ? Array.isArray(jsonLd) ? jsonLd : [jsonLd] + : []; +--- + +<title>{title} + +{keywords && } + + + + + + + + + + + +{ogType === 'article' && datePublished && } +{ogType === 'article' && dateModified && } +{ogType === 'article' && } + + + + + + + + + +{jsonLdArray.map((schema) => ( + diff --git a/site/src/components/ServiceCard.astro b/site/src/components/ServiceCard.astro new file mode 100644 index 0000000..87a7e92 --- /dev/null +++ b/site/src/components/ServiceCard.astro @@ -0,0 +1,41 @@ +--- +import type { Service, Group } from '../data/rules'; +import { getRuleCount, getGroupSlug, getServiceSlug } from '../data/rules'; + +interface Props { + service: Service; + group: Group; + base: string; +} + +const { service, group, base } = Astro.props; +const ruleCount = getRuleCount(service); +const groupSlug = getGroupSlug(group); +const serviceSlug = getServiceSlug(service); +const href = `${base}/rules/${groupSlug}/${serviceSlug}/`; + +const exporterNames = service.exporters + .map((e) => e.name) + .filter(Boolean) + .slice(0, 3); +--- + + +
+

+ {service.name} +

+ + {ruleCount} rule{ruleCount !== 1 ? 's' : ''} + +
+ + {exporterNames.length > 0 && ( +

+ {exporterNames.join(' · ')}{service.exporters.length > 3 ? ` +${service.exporters.length - 3}` : ''} +

+ )} +
diff --git a/site/src/components/SeverityBadge.astro b/site/src/components/SeverityBadge.astro new file mode 100644 index 0000000..a846eaf --- /dev/null +++ b/site/src/components/SeverityBadge.astro @@ -0,0 +1,16 @@ +--- +interface Props { + severity: 'critical' | 'warning' | 'info'; +} +const { severity } = Astro.props; + +const classes = { + critical: 'badge-critical', + warning: 'badge-warning', + info: 'badge-info', +}[severity]; +--- + + + {severity} + diff --git a/site/src/components/Sidebar.astro b/site/src/components/Sidebar.astro new file mode 100644 index 0000000..11ae56f --- /dev/null +++ b/site/src/components/Sidebar.astro @@ -0,0 +1,72 @@ +--- +import type { Group, Service } from '../data/rules'; +import { getGroupSlug, getServiceSlug } from '../data/rules'; + +interface Props { + groups: Group[]; + currentGroupSlug?: string; + currentServiceSlug?: string; + currentService?: Service; + base: string; +} + +const { groups, currentGroupSlug, currentServiceSlug, currentService, base } = Astro.props; +--- + + diff --git a/site/src/components/StatsBar.astro b/site/src/components/StatsBar.astro new file mode 100644 index 0000000..748d245 --- /dev/null +++ b/site/src/components/StatsBar.astro @@ -0,0 +1,22 @@ +--- +import { getTotalRuleCount, getTotalExporterCount, data } from '../data/rules'; + +const totalRules = getTotalRuleCount(); +const totalExporters = getTotalExporterCount(); +const totalGroups = data.groups.length; +--- + +
+
+
{totalRules}
+
alert rules
+
+
+
{totalExporters}
+
exporters
+
+
+
{totalGroups}
+
categories
+
+
diff --git a/site/src/components/ThemeToggle.astro b/site/src/components/ThemeToggle.astro new file mode 100644 index 0000000..e3c5b1f --- /dev/null +++ b/site/src/components/ThemeToggle.astro @@ -0,0 +1,25 @@ +--- +--- + + + + diff --git a/site/src/data/rules.ts b/site/src/data/rules.ts new file mode 100644 index 0000000..84359a4 --- /dev/null +++ b/site/src/data/rules.ts @@ -0,0 +1,443 @@ +// @ts-ignore — Vite YAML plugin provides this at build time +import rulesData from '../../../_data/rules.yml'; + +export interface Rule { + name: string; + description: string; + query: string; + severity: 'critical' | 'warning' | 'info'; + for?: string; + comments?: string; +} + +export interface Exporter { + slug: string; + name?: string; + doc_url?: string; + comments?: string; + rules: Rule[]; +} + +export interface Service { + name: string; + exporters: Exporter[]; +} + +export interface Group { + name: string; + services: Service[]; +} + +export interface RulesData { + groups: Group[]; +} + +export const data: RulesData = rulesData as RulesData; + +/** Slugify a name for use in URLs — mirrors the dist/ workflow naming */ +export function toSlug(name: string): string { + return name + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-+|-+$/g, ''); +} + +export function getGroupSlug(group: Group): string { + return toSlug(group.name); +} + +export function getServiceSlug(service: Service): string { + return toSlug(service.name); +} + +/** CamelCase a rule name for the Prometheus alert name field */ +export function toCamelCase(name: string): string { + return name + .split(/\s+/) + .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) + .join(''); +} + +/** Count all rules across a service's exporters */ +export function getRuleCount(service: Service): number { + return service.exporters.reduce((sum, exp) => sum + (exp.rules?.length ?? 0), 0); +} + +/** Count all rules in the entire dataset */ +export function getTotalRuleCount(): number { + return data.groups.reduce( + (sum, group) => sum + group.services.reduce((s, svc) => s + getRuleCount(svc), 0), + 0 + ); +} + +/** Count all services */ +export function getTotalServiceCount(): number { + return data.groups.reduce((sum, group) => sum + group.services.length, 0); +} + +/** Count all exporters */ +export function getTotalExporterCount(): number { + return data.groups.reduce( + (sum, group) => + sum + group.services.reduce((s, svc) => s + svc.exporters.length, 0), + 0 + ); +} + +/** Flat list of all services with routing context */ +export function getAllServices(): Array<{ + group: Group; + service: Service; + groupSlug: string; + serviceSlug: string; + ruleCount: number; +}> { + return data.groups.flatMap((group) => + group.services.map((service) => ({ + group, + service, + groupSlug: getGroupSlug(group), + serviceSlug: getServiceSlug(service), + ruleCount: getRuleCount(service), + })) + ); +} + +/** Hard-coded map from old Jekyll anchor IDs to new Astro paths. + * + * Old Jekyll site pattern (spaces→hyphens, lowercased; dots/slashes preserved): + * - #service-name → service section heading + * - #service-name-1 → first exporter subsection + * - #service-name-2 → second exporter subsection, … + * + * New Astro paths use /rules/{group}/{service}/#exporter-{slug} for exporter sections. + */ +const ANCHOR_REDIRECT_MAP: Record = { + // Basic resource monitoring + 'prometheus-self-monitoring': '/rules/basic-resource-monitoring/prometheus-self-monitoring/', + 'prometheus-self-monitoring-1': '/rules/basic-resource-monitoring/prometheus-self-monitoring/#exporter-embedded-exporter', + 'host-and-hardware': '/rules/basic-resource-monitoring/host-and-hardware/', + 'host-and-hardware-1': '/rules/basic-resource-monitoring/host-and-hardware/#exporter-node-exporter', + 's.m.a.r.t-device-monitoring': '/rules/basic-resource-monitoring/s-m-a-r-t-device-monitoring/', + 's.m.a.r.t-device-monitoring-1': '/rules/basic-resource-monitoring/s-m-a-r-t-device-monitoring/#exporter-smartctl-exporter', + 'ipmi': '/rules/basic-resource-monitoring/ipmi/', + 'ipmi-1': '/rules/basic-resource-monitoring/ipmi/#exporter-ipmi-exporter', + 'docker-containers': '/rules/basic-resource-monitoring/docker-containers/', + 'docker-containers-1': '/rules/basic-resource-monitoring/docker-containers/#exporter-google-cadvisor', + 'blackbox': '/rules/basic-resource-monitoring/blackbox/', + 'blackbox-1': '/rules/basic-resource-monitoring/blackbox/#exporter-blackbox-exporter', + 'windows-server': '/rules/basic-resource-monitoring/windows-server/', + 'windows-server-1': '/rules/basic-resource-monitoring/windows-server/#exporter-windows-exporter', + 'vmware': '/rules/basic-resource-monitoring/vmware/', + 'vmware-1': '/rules/basic-resource-monitoring/vmware/#exporter-pryorda-vmware-exporter', + 'proxmox-ve': '/rules/basic-resource-monitoring/proxmox-ve/', + 'proxmox-ve-1': '/rules/basic-resource-monitoring/proxmox-ve/#exporter-prometheus-pve-exporter', + 'netdata': '/rules/basic-resource-monitoring/netdata/', + 'netdata-1': '/rules/basic-resource-monitoring/netdata/#exporter-embedded-exporter', + 'ebpf': '/rules/basic-resource-monitoring/ebpf/', + 'ebpf-1': '/rules/basic-resource-monitoring/ebpf/#exporter-ebpf-exporter', + 'process-exporter': '/rules/basic-resource-monitoring/process-exporter/', + 'process-exporter-1': '/rules/basic-resource-monitoring/process-exporter/#exporter-process-exporter', + 'systemd': '/rules/basic-resource-monitoring/systemd/', + 'systemd-1': '/rules/basic-resource-monitoring/systemd/#exporter-systemd-exporter', + + // Databases + 'mysql': '/rules/databases/mysql/', + 'mysql-1': '/rules/databases/mysql/#exporter-mysqld-exporter', + 'postgresql': '/rules/databases/postgresql/', + 'postgresql-1': '/rules/databases/postgresql/#exporter-postgres-exporter', + 'sql-server': '/rules/databases/sql-server/', + 'sql-server-1': '/rules/databases/sql-server/#exporter-ozarklake-mssql-exporter', + 'oracle-database': '/rules/databases/oracle-database/', + 'oracle-database-1': '/rules/databases/oracle-database/#exporter-iamseth-oracledb-exporter', + 'patroni': '/rules/databases/patroni/', + 'patroni-1': '/rules/databases/patroni/#exporter-embedded-exporter-patroni', + 'pgbouncer': '/rules/databases/pgbouncer/', + 'pgbouncer-1': '/rules/databases/pgbouncer/#exporter-spreaker-pgbouncer-exporter', + 'redis': '/rules/databases/redis/', + 'redis-1': '/rules/databases/redis/#exporter-oliver006-redis-exporter', + 'memcached': '/rules/databases/memcached/', + 'memcached-1': '/rules/databases/memcached/#exporter-memcached-exporter', + 'mongodb': '/rules/databases/mongodb/', + 'mongodb-1': '/rules/databases/mongodb/#exporter-percona-mongodb-exporter', + 'mongodb-2': '/rules/databases/mongodb/#exporter-dcu-mongodb-exporter', + 'mongodb-3': '/rules/databases/mongodb/#exporter-stefanprodan-mgob-exporter', + 'elasticsearch': '/rules/databases/elasticsearch/', + 'elasticsearch-1': '/rules/databases/elasticsearch/#exporter-prometheus-community-elasticsearch-exporter', + 'opensearch': '/rules/databases/opensearch/', + 'opensearch-1': '/rules/databases/opensearch/#exporter-opensearch-project-opensearch-prometheus-exporter', + 'meilisearch': '/rules/databases/meilisearch/', + 'meilisearch-1': '/rules/databases/meilisearch/#exporter-embedded-exporter', + 'cassandra': '/rules/databases/cassandra/', + 'cassandra-1': '/rules/databases/cassandra/#exporter-instaclustr-cassandra-exporter', + 'cassandra-2': '/rules/databases/cassandra/#exporter-criteo-cassandra-exporter', + 'clickhouse': '/rules/databases/clickhouse/', + 'clickhouse-1': '/rules/databases/clickhouse/#exporter-embedded-exporter', + 'couchdb': '/rules/databases/couchdb/', + 'couchdb-1': '/rules/databases/couchdb/#exporter-gesellix-couchdb-prometheus-exporter', + 'solr': '/rules/databases/solr/', + 'solr-1': '/rules/databases/solr/#exporter-embedded-exporter', + + // Message brokers + 'rabbitmq': '/rules/message-brokers/rabbitmq/', + 'rabbitmq-1': '/rules/message-brokers/rabbitmq/#exporter-rabbitmq-exporter', + 'rabbitmq-2': '/rules/message-brokers/rabbitmq/#exporter-kbudde-rabbitmq-exporter', + 'zookeeper': '/rules/message-brokers/zookeeper/', + 'zookeeper-1': '/rules/message-brokers/zookeeper/#exporter-cloudflare-kafka-zookeeper-exporter', + 'zookeeper-2': '/rules/message-brokers/zookeeper/#exporter-dabealu-zookeeper-exporter', + 'kafka': '/rules/message-brokers/kafka/', + 'kafka-1': '/rules/message-brokers/kafka/#exporter-danielqsj-kafka-exporter', + 'kafka-2': '/rules/message-brokers/kafka/#exporter-linkedin-kafka-exporter', + 'pulsar': '/rules/message-brokers/pulsar/', + 'pulsar-1': '/rules/message-brokers/pulsar/#exporter-embedded-exporter', + 'nats': '/rules/message-brokers/nats/', + 'nats-1': '/rules/message-brokers/nats/#exporter-nats-exporter', + + // Proxies, load balancers and service meshes + 'nginx': '/rules/proxies-load-balancers-and-service-meshes/nginx/', + 'nginx-1': '/rules/proxies-load-balancers-and-service-meshes/nginx/#exporter-knyar-nginx-exporter', + 'apache': '/rules/proxies-load-balancers-and-service-meshes/apache/', + 'apache-1': '/rules/proxies-load-balancers-and-service-meshes/apache/#exporter-lusitaniae-apache-exporter', + 'haproxy': '/rules/proxies-load-balancers-and-service-meshes/haproxy/', + 'haproxy-1': '/rules/proxies-load-balancers-and-service-meshes/haproxy/#exporter-embedded-exporter-v2', + 'haproxy-2': '/rules/proxies-load-balancers-and-service-meshes/haproxy/#exporter-haproxy-exporter-v1', + 'traefik': '/rules/proxies-load-balancers-and-service-meshes/traefik/', + 'traefik-1': '/rules/proxies-load-balancers-and-service-meshes/traefik/#exporter-embedded-exporter-v2', + 'traefik-2': '/rules/proxies-load-balancers-and-service-meshes/traefik/#exporter-embedded-exporter-v1', + 'caddy': '/rules/proxies-load-balancers-and-service-meshes/caddy/', + 'caddy-1': '/rules/proxies-load-balancers-and-service-meshes/caddy/#exporter-embedded-exporter', + 'envoy': '/rules/proxies-load-balancers-and-service-meshes/envoy/', + 'envoy-1': '/rules/proxies-load-balancers-and-service-meshes/envoy/#exporter-embedded-exporter', + 'linkerd': '/rules/proxies-load-balancers-and-service-meshes/linkerd/', + 'linkerd-1': '/rules/proxies-load-balancers-and-service-meshes/linkerd/#exporter-embedded-exporter', + 'istio': '/rules/proxies-load-balancers-and-service-meshes/istio/', + 'istio-1': '/rules/proxies-load-balancers-and-service-meshes/istio/#exporter-embedded-exporter', + + // Runtimes + 'php-fpm': '/rules/runtimes/php-fpm/', + 'php-fpm-1': '/rules/runtimes/php-fpm/#exporter-bakins-fpm-exporter', + 'jvm': '/rules/runtimes/jvm/', + 'jvm-1': '/rules/runtimes/jvm/#exporter-jvm-exporter', + 'golang': '/rules/runtimes/golang/', + 'golang-1': '/rules/runtimes/golang/#exporter-golang-exporter', + 'ruby': '/rules/runtimes/ruby/', + 'ruby-1': '/rules/runtimes/ruby/#exporter-ruby-exporter', + 'python': '/rules/runtimes/python/', + 'python-1': '/rules/runtimes/python/#exporter-python-exporter', + 'sidekiq': '/rules/runtimes/sidekiq/', + 'sidekiq-1': '/rules/runtimes/sidekiq/#exporter-strech-sidekiq-exporter', + + // Data engineering + 'apache-flink': '/rules/data-engineering/apache-flink/', + 'apache-flink-1': '/rules/data-engineering/apache-flink/#exporter-flink-prometheus-reporter', + 'apache-spark': '/rules/data-engineering/apache-spark/', + 'apache-spark-1': '/rules/data-engineering/apache-spark/#exporter-spark-prometheus', + 'hadoop': '/rules/data-engineering/hadoop/', + 'hadoop-1': '/rules/data-engineering/hadoop/#exporter-jmx_exporter', + + // Orchestrators + 'kubernetes': '/rules/orchestrators/kubernetes/', + 'kubernetes-1': '/rules/orchestrators/kubernetes/#exporter-kubestate-exporter', + 'nomad': '/rules/orchestrators/nomad/', + 'nomad-1': '/rules/orchestrators/nomad/#exporter-embedded-exporter', + 'consul': '/rules/orchestrators/consul/', + 'consul-1': '/rules/orchestrators/consul/#exporter-consul-exporter', + 'etcd': '/rules/orchestrators/etcd/', + 'etcd-1': '/rules/orchestrators/etcd/#exporter-embedded-exporter', + 'openstack': '/rules/orchestrators/openstack/', + 'openstack-1': '/rules/orchestrators/openstack/#exporter-openstack-exporter', + + // CI/CD + 'jenkins': '/rules/ci-cd/jenkins/', + 'jenkins-1': '/rules/ci-cd/jenkins/#exporter-metric-plugin', + 'argocd': '/rules/ci-cd/argocd/', + 'argocd-1': '/rules/ci-cd/argocd/#exporter-embedded-exporter', + 'fluxcd': '/rules/ci-cd/fluxcd/', + 'fluxcd-1': '/rules/ci-cd/fluxcd/#exporter-embedded-exporter', + 'gitlab-ci': '/rules/ci-cd/gitlab-ci/', + 'gitlab-ci-1': '/rules/ci-cd/gitlab-ci/#exporter-gitlab-built-in-exporter', + 'gitlab-ci-2': '/rules/ci-cd/gitlab-ci/#exporter-workhorse', + 'gitlab-ci-3': '/rules/ci-cd/gitlab-ci/#exporter-gitaly', + 'spinnaker': '/rules/ci-cd/spinnaker/', + 'spinnaker-1': '/rules/ci-cd/spinnaker/#exporter-embedded-exporter', + + // Network and security + 'speedtest': '/rules/network-and-security/speedtest/', + 'speedtest-1': '/rules/network-and-security/speedtest/#exporter-nlamirault-speedtest-exporter', + 'ssl/tls': '/rules/network-and-security/ssl-tls/', + 'ssl/tls-1': '/rules/network-and-security/ssl-tls/#exporter-ribbybibby-ssl-exporter', + 'cert-manager': '/rules/network-and-security/cert-manager/', + 'cert-manager-1': '/rules/network-and-security/cert-manager/#exporter-embedded-exporter', + 'juniper': '/rules/network-and-security/juniper/', + 'juniper-1': '/rules/network-and-security/juniper/#exporter-czerwonk-junos-exporter', + 'coredns': '/rules/network-and-security/coredns/', + 'coredns-1': '/rules/network-and-security/coredns/#exporter-embedded-exporter', + 'freeswitch': '/rules/network-and-security/freeswitch/', + 'freeswitch-1': '/rules/network-and-security/freeswitch/#exporter-znerol-freeswitch-exporter', + 'hashicorp-vault': '/rules/network-and-security/hashicorp-vault/', + 'hashicorp-vault-1': '/rules/network-and-security/hashicorp-vault/#exporter-embedded-exporter', + 'keycloak': '/rules/network-and-security/keycloak/', + 'keycloak-1': '/rules/network-and-security/keycloak/#exporter-aerogear-keycloak-metrics-spi', + 'cloudflare': '/rules/network-and-security/cloudflare/', + 'cloudflare-1': '/rules/network-and-security/cloudflare/#exporter-lablabs-cloudflare-exporter', + 'snmp': '/rules/network-and-security/snmp/', + 'snmp-1': '/rules/network-and-security/snmp/#exporter-snmp-exporter', + 'cilium': '/rules/network-and-security/cilium/', + 'cilium-1': '/rules/network-and-security/cilium/#exporter-embedded-exporter', + 'wireguard': '/rules/network-and-security/wireguard/', + 'wireguard-1': '/rules/network-and-security/wireguard/#exporter-mindflavor-prometheus-wireguard-exporter', + + // Storage + 'ceph': '/rules/storage/ceph/', + 'ceph-1': '/rules/storage/ceph/#exporter-embedded-exporter', + 'zfs': '/rules/storage/zfs/', + 'zfs-1': '/rules/storage/zfs/#exporter-node-exporter', + 'zfs-2': '/rules/storage/zfs/#exporter-zfs_exporter', + 'openebs': '/rules/storage/openebs/', + 'openebs-1': '/rules/storage/openebs/#exporter-embedded-exporter', + 'minio': '/rules/storage/minio/', + 'minio-1': '/rules/storage/minio/#exporter-embedded-exporter', + + // Cloud providers + 'aws-cloudwatch': '/rules/cloud-providers/aws-cloudwatch/', + 'aws-cloudwatch-1': '/rules/cloud-providers/aws-cloudwatch/#exporter-prometheus-cloudwatch-exporter', + 'google-cloud-stackdriver': '/rules/cloud-providers/google-cloud-stackdriver/', + 'google-cloud-stackdriver-1': '/rules/cloud-providers/google-cloud-stackdriver/#exporter-stackdriver-exporter', + 'digitalocean': '/rules/cloud-providers/digitalocean/', + 'digitalocean-1': '/rules/cloud-providers/digitalocean/#exporter-digitalocean-exporter', + 'azure': '/rules/cloud-providers/azure/', + 'azure-1': '/rules/cloud-providers/azure/#exporter-azure-metrics-exporter', + + // Observability + 'thanos': '/rules/observability/thanos/', + 'thanos-1': '/rules/observability/thanos/#exporter-thanos-compactor', + 'thanos-2': '/rules/observability/thanos/#exporter-thanos-query', + 'thanos-3': '/rules/observability/thanos/#exporter-thanos-receiver', + 'thanos-4': '/rules/observability/thanos/#exporter-thanos-sidecar', + 'thanos-5': '/rules/observability/thanos/#exporter-thanos-store', + 'thanos-6': '/rules/observability/thanos/#exporter-thanos-ruler', + 'thanos-7': '/rules/observability/thanos/#exporter-thanos-bucket-replicate', + 'thanos-8': '/rules/observability/thanos/#exporter-thanos-component-absent', + 'loki': '/rules/observability/loki/', + 'loki-1': '/rules/observability/loki/#exporter-embedded-exporter', + 'promtail': '/rules/observability/promtail/', + 'promtail-1': '/rules/observability/promtail/#exporter-embedded-exporter', + 'cortex': '/rules/observability/cortex/', + 'cortex-1': '/rules/observability/cortex/#exporter-embedded-exporter', + 'grafana-tempo': '/rules/observability/grafana-tempo/', + 'grafana-tempo-1': '/rules/observability/grafana-tempo/#exporter-embedded-exporter', + 'grafana-mimir': '/rules/observability/grafana-mimir/', + 'grafana-mimir-1': '/rules/observability/grafana-mimir/#exporter-embedded-exporter', + 'grafana-alloy': '/rules/observability/grafana-alloy/', + 'grafana-alloy-1': '/rules/observability/grafana-alloy/#exporter-embedded-exporter', + 'opentelemetry-collector': '/rules/observability/opentelemetry-collector/', + 'opentelemetry-collector-1': '/rules/observability/opentelemetry-collector/#exporter-embedded-exporter', + 'jaeger': '/rules/observability/jaeger/', + 'jaeger-1': '/rules/observability/jaeger/#exporter-embedded-exporter', + + // Other + 'apc-ups': '/rules/other/apc-ups/', + 'apc-ups-1': '/rules/other/apc-ups/#exporter-apcupsd_exporter', + 'graph-node': '/rules/other/graph-node/', + 'graph-node-1': '/rules/other/graph-node/#exporter-embedded-exporter', +}; + +export function buildRedirectMap(base: string): Record { + return Object.fromEntries( + Object.entries(ANCHOR_REDIRECT_MAP).map(([anchor, path]) => [anchor, `${base}${path}`]) + ); +} + +/** Format a rule as copy-pasteable Prometheus alert YAML */ +export function formatRuleAsYaml(rule: Rule): string { + const alertName = toCamelCase(rule.name); + const forValue = rule.for ?? '0m'; + + const commentLines = rule.comments + ? rule.comments + .trim() + .split('\n') + .map((line) => ` # ${line.trim()}`) + .join('\n') + '\n' + : ''; + + // Escape double quotes in description + const description = rule.description.replace(/"/g, '\\"'); + + return `${commentLines}- alert: ${alertName} + expr: ${rule.query} + for: ${forValue} + labels: + severity: ${rule.severity} + annotations: + summary: ${rule.name} (instance {{ $labels.instance }}) + description: "${description}\\n VALUE = {{ $value }}\\n LABELS = {{ $labels }}"`; +} + +/** Format all rules for an exporter as a complete groups YAML block */ +export function formatExporterAsYaml(exporter: Exporter): string { + const groupName = toCamelCase(exporter.slug.replace(/-/g, ' ')); + const rulesYaml = (exporter.rules ?? []) + .map((rule) => formatRuleAsYaml(rule)) + .join('\n\n'); + + return `groups: +- name: ${groupName} + rules: +${rulesYaml + .split('\n') + .map((line) => ` ${line}`) + .join('\n')}`; +} + +/** Ordered list of popular service name fragments (case-insensitive substring match) */ +export const popularServiceNames: string[] = [ + 'prometheus self-monitoring', + 'host and hardware', + 'kubernetes', + 'mysql', + 'postgresql', + 'redis', + 'mongodb', + 'elasticsearch', + 'rabbitmq', + 'nginx', + 'kafka', + 'docker', +]; + +/** Returns the ordered list of popular services resolved from the data */ +export function getPopularServices() { + const all = getAllServices(); + return popularServiceNames + .map((target) => all.find(({ service }) => service.name.toLowerCase().includes(target))) + .filter((s): s is NonNullable => s !== undefined); +} + +/** Flat list of all exporters with their parent group/service context */ +export function getAllExporters(): Array<{ + group: Group; + service: Service; + exporter: Exporter; + groupSlug: string; + serviceSlug: string; +}> { + return data.groups.flatMap((group) => + group.services.flatMap((service) => + service.exporters.map((exporter) => ({ + group, + service, + exporter, + groupSlug: getGroupSlug(group), + serviceSlug: getServiceSlug(service), + })) + ) + ); +} + +/** Build the raw GitHub URL for a dist file */ +export function getDistUrl(serviceName: string, exporterSlug: string): string { + const serviceSlug = serviceName.replace(/ /g, '-').toLowerCase(); + return `https://raw.githubusercontent.com/samber/awesome-prometheus-alerts/refs/heads/master/dist/rules/${serviceSlug}/${exporterSlug}.yml`; +} diff --git a/site/src/data/site.ts b/site/src/data/site.ts new file mode 100644 index 0000000..c76fe71 --- /dev/null +++ b/site/src/data/site.ts @@ -0,0 +1,48 @@ +export const SITE_URL = import.meta.env.SITE + import.meta.env.BASE_URL; +export const SITE_ORIGIN = import.meta.env.SITE as string; + +export const SITE_NAME = 'Awesome Prometheus Alerts'; + +/** ISO date the project was first published — used as datePublished across all schemas */ +export const SITE_DATE_PUBLISHED = '2018-10-21'; + +// Author +export const AUTHOR_NAME = 'Samuel Berthe'; +export const AUTHOR_GITHUB_URL = 'https://github.com/samber'; +export const TWITTER_HANDLE = '@samuelberthe'; + +// GitHub +export const GITHUB_URL = 'https://github.com/samber/awesome-prometheus-alerts'; +export const GITHUB_API_REPO_URL = 'https://api.github.com/repos/samber/awesome-prometheus-alerts'; +export const GITHUB_CONTRIBUTING_URL = `${GITHUB_URL}/blob/master/CONTRIBUTING.md`; +export const GITHUB_LICENSE_URL = `${GITHUB_URL}/blob/master/LICENSE`; + +// Licenses +export const LICENSE_CC_BY_URL = 'https://creativecommons.org/licenses/by/4.0/'; +export const LICENSE_CC_BY_NAME = 'Creative Commons CC BY 4.0'; +export const LICENSE_MIT_URL = 'https://opensource.org/licenses/MIT'; + +export const schemaAuthor = { + '@type': 'Person', + name: AUTHOR_NAME, + url: AUTHOR_GITHUB_URL, + sameAs: [ + AUTHOR_GITHUB_URL, + `https://twitter.com/${TWITTER_HANDLE.slice(1)}`, + ], +}; + +export const schemaPublisher = { + '@type': 'Organization', + name: 'Prometheus Alerts authors', + url: GITHUB_URL, + sameAs: [GITHUB_URL], +}; + +export const schemaWebSite = { + '@type': 'WebSite', + name: SITE_NAME, + url: SITE_URL, +}; + +export const SCHEMA_IN_LANGUAGE = 'en' as const; diff --git a/site/src/data/sponsors.ts b/site/src/data/sponsors.ts new file mode 100644 index 0000000..7d97925 --- /dev/null +++ b/site/src/data/sponsors.ts @@ -0,0 +1,21 @@ +export interface Sponsor { + name: string; + url: string; + logo: string; + description: string; +} + +export const sponsors: Sponsor[] = [ + { + name: 'CAST AI', + url: 'https://cast.ai/samuel', + logo: '/images/sponsor-cast-ai.png', + description: 'Kubernetes cost optimization', + }, + { + name: 'Better Stack', + url: 'https://betterstack.com/', + logo: '/images/sponsor-betterstack.png', + description: 'Uptime monitoring and log management', + }, +]; diff --git a/site/src/layouts/BaseLayout.astro b/site/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..243d1d7 --- /dev/null +++ b/site/src/layouts/BaseLayout.astro @@ -0,0 +1,100 @@ +--- +import '../styles/global.css'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; +import SEO from '../components/SEO.astro'; +import { SITE_ORIGIN, AUTHOR_NAME } from '../data/site'; + +interface Props { + title: string; + description?: string; + canonicalUrl?: string; + ogImage?: string; + ogType?: string; + keywords?: string; + jsonLd?: object | object[]; + noIndex?: boolean; + datePublished?: string; + dateModified?: string; +} + +const { + title, + description = 'Collection of alerting rules for Prometheus. Copy-pasteable Prometheus alert configurations for 90+ services.', + canonicalUrl, + ogImage, + ogType, + keywords, + jsonLd, + noIndex = false, + datePublished, + dateModified, +} = Astro.props; + +const base = import.meta.env.BASE_URL.replace(/\/$/, ''); +const canonical = canonicalUrl ?? `${SITE_ORIGIN}${base}${Astro.url.pathname.replace(base, '')}`; +--- + + + + + + + + + {noIndex && } + + + + + + + + + + + + + + + + + + + + Skip to main content + + +
+ +
+ +
+ +