From 52f513556a6d7975e113a735f1d955e33a3cc250 Mon Sep 17 00:00:00 2001
From: shadowusr <58862284+shadowusr@users.noreply.github.com>
Date: Sat, 15 Jun 2024 21:36:30 +0300
Subject: [PATCH] feat: implement responsive landing page (#5)
* feat: implement responsive landing page
---
.storybook/preview.ts | 2 +-
docusaurus.config.ts | 80 ++-
eslint.config.mjs | 5 +
package-lock.json | 405 +++++------
package.json | 10 +-
plugins/svg-fix.ts | 56 ++
src/components/AnimatedAppear/index.tsx | 35 +
src/components/AnimatedPlanet/index.tsx | 2 +-
src/components/DemoStats/index.tsx | 13 +
src/components/FeatureBlock/index.tsx | 51 ++
src/components/FeatureCard/index.tsx | 35 +
.../FeaturesDemo/AnimatedHeading.tsx | 2 +-
src/components/FeaturesDemo/index.tsx | 7 +-
src/components/GradientUnderline/index.tsx | 21 +
src/components/LinkBadge/index.module.scss | 12 +
src/components/LinkBadge/index.tsx | 26 +
src/components/pages/LandingPage/index.tsx | 18 +
.../sections/additional-features.tsx | 112 ++++
.../LandingPage/sections/animated-demo.tsx | 34 +
.../LandingPage/sections/core-features.tsx | 97 +++
.../sections/installation-prompt.tsx | 66 ++
.../LandingPage/sections/landing-head.tsx | 71 ++
src/pages/index.module.scss | 22 +
src/pages/index.tsx | 5 +-
src/scss/{custom.css => custom.scss} | 29 +-
src/theme/Footer/Copyright/index.tsx | 12 +
src/theme/Footer/Layout/index.module.scss | 19 +
src/theme/Footer/Layout/index.tsx | 72 ++
src/theme/Footer/LinkItem/index.tsx | 31 +
src/theme/Footer/Links/index.tsx | 31 +
src/theme/Footer/index.tsx | 25 +
static/icons/arrow-link.svg | 2 +-
static/icons/eye.svg | 2 +-
static/icons/github.svg | 16 +-
static/icons/stackoverflow.svg | 14 +-
static/icons/telegram.svg | 1 +
static/img/landing/arrow.svg | 5 +
static/img/landing/browsers.svg | 634 ++++++++++++++++++
static/img/landing/cone.svg | 32 +
static/img/landing/demo-stroke-left.svg | 3 +
static/img/landing/extensibility.svg | 508 ++++++++++++++
static/img/landing/features-stroke-left.svg | 3 +
static/img/landing/features-stroke-right.svg | 3 +
static/img/landing/highlight-round.svg | 21 +
static/img/landing/mobile-bg.svg | 248 +++++++
static/img/landing/noise.png | Bin 0 -> 145522 bytes
static/img/landing/scale.svg | 175 +++++
static/img/landing/shard-multi.svg | 55 ++
static/img/landing/star-4-pink.svg | 9 +
static/img/landing/star-4-sharp.svg | 44 ++
static/img/landing/star-4-violet.svg | 9 +
static/img/landing/star-5.svg | 59 ++
static/img/landing/underline.svg | 9 +
53 files changed, 3003 insertions(+), 255 deletions(-)
create mode 100644 plugins/svg-fix.ts
create mode 100644 src/components/AnimatedAppear/index.tsx
create mode 100644 src/components/DemoStats/index.tsx
create mode 100644 src/components/FeatureBlock/index.tsx
create mode 100644 src/components/FeatureCard/index.tsx
create mode 100644 src/components/GradientUnderline/index.tsx
create mode 100644 src/components/LinkBadge/index.module.scss
create mode 100644 src/components/LinkBadge/index.tsx
create mode 100644 src/components/pages/LandingPage/index.tsx
create mode 100644 src/components/pages/LandingPage/sections/additional-features.tsx
create mode 100644 src/components/pages/LandingPage/sections/animated-demo.tsx
create mode 100644 src/components/pages/LandingPage/sections/core-features.tsx
create mode 100644 src/components/pages/LandingPage/sections/installation-prompt.tsx
create mode 100644 src/components/pages/LandingPage/sections/landing-head.tsx
rename src/scss/{custom.css => custom.scss} (58%)
create mode 100644 src/theme/Footer/Copyright/index.tsx
create mode 100644 src/theme/Footer/Layout/index.module.scss
create mode 100644 src/theme/Footer/Layout/index.tsx
create mode 100644 src/theme/Footer/LinkItem/index.tsx
create mode 100644 src/theme/Footer/Links/index.tsx
create mode 100644 src/theme/Footer/index.tsx
create mode 100644 static/icons/telegram.svg
create mode 100644 static/img/landing/arrow.svg
create mode 100644 static/img/landing/browsers.svg
create mode 100644 static/img/landing/cone.svg
create mode 100644 static/img/landing/demo-stroke-left.svg
create mode 100644 static/img/landing/extensibility.svg
create mode 100644 static/img/landing/features-stroke-left.svg
create mode 100644 static/img/landing/features-stroke-right.svg
create mode 100644 static/img/landing/highlight-round.svg
create mode 100644 static/img/landing/mobile-bg.svg
create mode 100644 static/img/landing/noise.png
create mode 100644 static/img/landing/scale.svg
create mode 100644 static/img/landing/shard-multi.svg
create mode 100644 static/img/landing/star-4-pink.svg
create mode 100644 static/img/landing/star-4-sharp.svg
create mode 100644 static/img/landing/star-4-violet.svg
create mode 100644 static/img/landing/star-5.svg
create mode 100644 static/img/landing/underline.svg
diff --git a/.storybook/preview.ts b/.storybook/preview.ts
index beced51..31a4027 100644
--- a/.storybook/preview.ts
+++ b/.storybook/preview.ts
@@ -1,6 +1,6 @@
import type { Preview } from "@storybook/react";
-import "../src/scss/custom.css";
+import "../src/scss/custom.scss";
const preview: Preview = {
parameters: {
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index cfead21..7bc6a0f 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -2,6 +2,7 @@ import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
import { tailwindPlugin } from "./plugins/tailwind";
+import { svgFixDuplicateIdsPlugin } from "./plugins/svg-fix";
const config: Config = {
title: "Testplane Docs",
@@ -18,7 +19,8 @@ const config: Config = {
organizationName: "gemini-testing",
projectName: "testplane-docs",
- onBrokenLinks: "throw",
+ // TODO: set to throw once we start adding actual docs pages
+ onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
i18n: {
@@ -47,30 +49,39 @@ const config: Config = {
editUrl: "https://github.com/gemini-testing/testplane-docs/tree/main/blog/",
},
theme: {
- customCss: "./src/scss/custom.css",
+ customCss: "./src/scss/custom.scss",
},
} satisfies Preset.Options,
],
],
themeConfig: {
+ colorMode: {
+ disableSwitch: true,
+ },
image: "img/docusaurus-social-card.jpg",
navbar: {
title: "testplane",
- logo: {
- alt: "Testplane Logo",
- src: "img/logo.svg",
- },
items: [
{
type: "docSidebar",
sidebarId: "mainSidebar",
position: "left",
- label: "Tutorial",
+ label: "Docs",
+ },
+ { to: "/blog", label: "Blog", position: "left" },
+ {
+ type: "docsVersionDropdown",
+ position: "right",
+ dropdownItemsAfter: [{ to: "/versions", label: "All versions" }],
+ dropdownActiveClassDisabled: true,
+ },
+ {
+ type: "localeDropdown",
+ position: "right",
},
- { to: "#", label: "Blog", position: "left" },
{
- href: "https://github.com/facebook/docusaurus",
+ href: "https://github.com/gemini-testing/testplane",
label: "GitHub",
position: "right",
},
@@ -80,50 +91,71 @@ const config: Config = {
style: "dark",
links: [
{
- title: "Docs",
+ title: "Quickstart",
items: [
{
- label: "Configuration",
+ label: "Installation",
to: "#",
},
{
- label: "Events",
+ label: "Writing your first tests",
to: "#",
},
{
- label: "API reference",
+ label: "Why testplane?",
to: "#",
},
],
},
{
- title: "Community",
+ title: "Core concepts",
items: [
{
- label: "GitHub",
- href: "https://github.com/gemini-testing/testplane",
+ label: "Browser commands",
+ href: "#",
},
{
- label: "Stack Overflow",
- href: "https://stackoverflow.com/questions/tagged/testplane",
+ label: "Testplane config",
+ href: "#",
+ },
+ {
+ label: "Testplane UI",
+ href: "#",
},
],
},
{
- title: "More",
+ title: "Customization",
items: [
{
- label: "Releases",
- to: "https://github.com/gemini-testing/testplane/releases",
+ label: "Custom commands",
+ href: "#",
},
{
- label: "Installation",
+ label: "Plugins and reporters",
+ href: "#",
+ },
+ {
+ label: "Usage in CI",
+ href: "#",
+ },
+ ],
+ },
+ {
+ title: "Resources",
+ items: [
+ {
+ label: "Docs",
href: "#",
},
{
- label: "First tests with testplane",
+ label: "Blog",
href: "#",
},
+ {
+ label: "Changelog",
+ to: "#",
+ },
],
},
],
@@ -135,7 +167,7 @@ const config: Config = {
},
} satisfies Preset.ThemeConfig,
- plugins: ["docusaurus-plugin-sass", tailwindPlugin],
+ plugins: ["docusaurus-plugin-sass", tailwindPlugin, svgFixDuplicateIdsPlugin],
};
export default config;
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 22dff6b..d59ec71 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -54,5 +54,10 @@ export default tseslint.config(
"no-unused-vars",
]),
},
+ {
+ rules: {
+ "react/prop-types": 0,
+ },
+ },
prettier,
);
diff --git a/package-lock.json b/package-lock.json
index b4140d7..c046be6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,8 +8,8 @@
"name": "testplane-docs",
"version": "0.0.0",
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/preset-classic": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/preset-classic": "3.4.0",
"@mdx-js/react": "3.0.1",
"clsx": "2.1.0",
"prism-react-renderer": "2.3.1",
@@ -18,9 +18,9 @@
},
"devDependencies": {
"@chromatic-com/storybook": "1.2.25",
- "@docusaurus/module-type-aliases": "3.3.2",
- "@docusaurus/tsconfig": "3.3.2",
- "@docusaurus/types": "3.3.2",
+ "@docusaurus/module-type-aliases": "3.4.0",
+ "@docusaurus/tsconfig": "3.4.0",
+ "@docusaurus/types": "3.4.0",
"@eslint/js": "8.57.0",
"@storybook/addon-essentials": "8.0.5",
"@storybook/addon-interactions": "8.0.5",
@@ -2607,9 +2607,9 @@
}
},
"node_modules/@docusaurus/core": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.3.2.tgz",
- "integrity": "sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz",
+ "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==",
"dependencies": {
"@babel/core": "^7.23.3",
"@babel/generator": "^7.23.3",
@@ -2621,12 +2621,12 @@
"@babel/runtime": "^7.22.6",
"@babel/runtime-corejs3": "^7.22.6",
"@babel/traverse": "^7.22.8",
- "@docusaurus/cssnano-preset": "3.3.2",
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/cssnano-preset": "3.4.0",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"autoprefixer": "^10.4.14",
"babel-loader": "^9.1.3",
"babel-plugin-dynamic-import-node": "^2.3.3",
@@ -2692,9 +2692,9 @@
}
},
"node_modules/@docusaurus/cssnano-preset": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.3.2.tgz",
- "integrity": "sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz",
+ "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==",
"dependencies": {
"cssnano-preset-advanced": "^6.1.2",
"postcss": "^8.4.38",
@@ -2706,9 +2706,9 @@
}
},
"node_modules/@docusaurus/logger": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.3.2.tgz",
- "integrity": "sha512-Ldu38GJ4P8g4guN7d7pyCOJ7qQugG7RVyaxrK8OnxuTlaImvQw33aDRwaX2eNmX8YK6v+//Z502F4sOZbHHCHQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz",
+ "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==",
"dependencies": {
"chalk": "^4.1.2",
"tslib": "^2.6.0"
@@ -2718,13 +2718,13 @@
}
},
"node_modules/@docusaurus/mdx-loader": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.3.2.tgz",
- "integrity": "sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz",
+ "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==",
"dependencies": {
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"@mdx-js/mdx": "^3.0.0",
"@slorber/remark-comment": "^1.0.0",
"escape-html": "^1.0.3",
@@ -2756,11 +2756,11 @@
}
},
"node_modules/@docusaurus/module-type-aliases": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.3.2.tgz",
- "integrity": "sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz",
+ "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==",
"dependencies": {
- "@docusaurus/types": "3.3.2",
+ "@docusaurus/types": "3.4.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -2774,17 +2774,17 @@
}
},
"node_modules/@docusaurus/plugin-content-blog": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.3.2.tgz",
- "integrity": "sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz",
+ "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"cheerio": "^1.0.0-rc.12",
"feed": "^4.2.2",
"fs-extra": "^11.1.1",
@@ -2805,18 +2805,18 @@
}
},
"node_modules/@docusaurus/plugin-content-docs": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.3.2.tgz",
- "integrity": "sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/module-type-aliases": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz",
+ "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/module-type-aliases": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"@types/react-router-config": "^5.0.7",
"combine-promises": "^1.1.0",
"fs-extra": "^11.1.1",
@@ -2835,15 +2835,15 @@
}
},
"node_modules/@docusaurus/plugin-content-pages": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.3.2.tgz",
- "integrity": "sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz",
+ "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"fs-extra": "^11.1.1",
"tslib": "^2.6.0",
"webpack": "^5.88.1"
@@ -2857,13 +2857,13 @@
}
},
"node_modules/@docusaurus/plugin-debug": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.3.2.tgz",
- "integrity": "sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz",
+ "integrity": "sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==",
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
"fs-extra": "^11.1.1",
"react-json-view-lite": "^1.2.0",
"tslib": "^2.6.0"
@@ -2877,13 +2877,13 @@
}
},
"node_modules/@docusaurus/plugin-google-analytics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.3.2.tgz",
- "integrity": "sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz",
+ "integrity": "sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==",
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -2895,13 +2895,13 @@
}
},
"node_modules/@docusaurus/plugin-google-gtag": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.3.2.tgz",
- "integrity": "sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz",
+ "integrity": "sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==",
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"@types/gtag.js": "^0.0.12",
"tslib": "^2.6.0"
},
@@ -2914,13 +2914,13 @@
}
},
"node_modules/@docusaurus/plugin-google-tag-manager": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.3.2.tgz",
- "integrity": "sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz",
+ "integrity": "sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==",
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -2932,16 +2932,16 @@
}
},
"node_modules/@docusaurus/plugin-sitemap": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.3.2.tgz",
- "integrity": "sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz",
+ "integrity": "sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"fs-extra": "^11.1.1",
"sitemap": "^7.1.1",
"tslib": "^2.6.0"
@@ -2955,23 +2955,23 @@
}
},
"node_modules/@docusaurus/preset-classic": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.3.2.tgz",
- "integrity": "sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/plugin-content-blog": "3.3.2",
- "@docusaurus/plugin-content-docs": "3.3.2",
- "@docusaurus/plugin-content-pages": "3.3.2",
- "@docusaurus/plugin-debug": "3.3.2",
- "@docusaurus/plugin-google-analytics": "3.3.2",
- "@docusaurus/plugin-google-gtag": "3.3.2",
- "@docusaurus/plugin-google-tag-manager": "3.3.2",
- "@docusaurus/plugin-sitemap": "3.3.2",
- "@docusaurus/theme-classic": "3.3.2",
- "@docusaurus/theme-common": "3.3.2",
- "@docusaurus/theme-search-algolia": "3.3.2",
- "@docusaurus/types": "3.3.2"
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz",
+ "integrity": "sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/plugin-content-blog": "3.4.0",
+ "@docusaurus/plugin-content-docs": "3.4.0",
+ "@docusaurus/plugin-content-pages": "3.4.0",
+ "@docusaurus/plugin-debug": "3.4.0",
+ "@docusaurus/plugin-google-analytics": "3.4.0",
+ "@docusaurus/plugin-google-gtag": "3.4.0",
+ "@docusaurus/plugin-google-tag-manager": "3.4.0",
+ "@docusaurus/plugin-sitemap": "3.4.0",
+ "@docusaurus/theme-classic": "3.4.0",
+ "@docusaurus/theme-common": "3.4.0",
+ "@docusaurus/theme-search-algolia": "3.4.0",
+ "@docusaurus/types": "3.4.0"
},
"engines": {
"node": ">=18.0"
@@ -2982,22 +2982,22 @@
}
},
"node_modules/@docusaurus/theme-classic": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.3.2.tgz",
- "integrity": "sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==",
- "dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/module-type-aliases": "3.3.2",
- "@docusaurus/plugin-content-blog": "3.3.2",
- "@docusaurus/plugin-content-docs": "3.3.2",
- "@docusaurus/plugin-content-pages": "3.3.2",
- "@docusaurus/theme-common": "3.3.2",
- "@docusaurus/theme-translations": "3.3.2",
- "@docusaurus/types": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz",
+ "integrity": "sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==",
+ "dependencies": {
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/module-type-aliases": "3.4.0",
+ "@docusaurus/plugin-content-blog": "3.4.0",
+ "@docusaurus/plugin-content-docs": "3.4.0",
+ "@docusaurus/plugin-content-pages": "3.4.0",
+ "@docusaurus/theme-common": "3.4.0",
+ "@docusaurus/theme-translations": "3.4.0",
+ "@docusaurus/types": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"copy-text-to-clipboard": "^3.2.0",
@@ -3021,17 +3021,17 @@
}
},
"node_modules/@docusaurus/theme-common": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.3.2.tgz",
- "integrity": "sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==",
- "dependencies": {
- "@docusaurus/mdx-loader": "3.3.2",
- "@docusaurus/module-type-aliases": "3.3.2",
- "@docusaurus/plugin-content-blog": "3.3.2",
- "@docusaurus/plugin-content-docs": "3.3.2",
- "@docusaurus/plugin-content-pages": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz",
+ "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==",
+ "dependencies": {
+ "@docusaurus/mdx-loader": "3.4.0",
+ "@docusaurus/module-type-aliases": "3.4.0",
+ "@docusaurus/plugin-content-blog": "3.4.0",
+ "@docusaurus/plugin-content-docs": "3.4.0",
+ "@docusaurus/plugin-content-pages": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -3050,18 +3050,18 @@
}
},
"node_modules/@docusaurus/theme-search-algolia": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.3.2.tgz",
- "integrity": "sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz",
+ "integrity": "sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==",
"dependencies": {
"@docsearch/react": "^3.5.2",
- "@docusaurus/core": "3.3.2",
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/plugin-content-docs": "3.3.2",
- "@docusaurus/theme-common": "3.3.2",
- "@docusaurus/theme-translations": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-validation": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/plugin-content-docs": "3.4.0",
+ "@docusaurus/theme-common": "3.4.0",
+ "@docusaurus/theme-translations": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-validation": "3.4.0",
"algoliasearch": "^4.18.0",
"algoliasearch-helper": "^3.13.3",
"clsx": "^2.0.0",
@@ -3080,9 +3080,9 @@
}
},
"node_modules/@docusaurus/theme-translations": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.3.2.tgz",
- "integrity": "sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz",
+ "integrity": "sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==",
"dependencies": {
"fs-extra": "^11.1.1",
"tslib": "^2.6.0"
@@ -3092,15 +3092,15 @@
}
},
"node_modules/@docusaurus/tsconfig": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.3.2.tgz",
- "integrity": "sha512-2MQXkLoWqgOSiqFojNEq8iPtFBHGQqd1b/SQMoe+v3GgHmk/L6YTTO/hMcHhWb1hTFmbkei++IajSfD3RlZKvw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.4.0.tgz",
+ "integrity": "sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg==",
"dev": true
},
"node_modules/@docusaurus/types": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.3.2.tgz",
- "integrity": "sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz",
+ "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
@@ -3118,12 +3118,12 @@
}
},
"node_modules/@docusaurus/utils": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.3.2.tgz",
- "integrity": "sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz",
+ "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==",
"dependencies": {
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
"@svgr/webpack": "^8.1.0",
"escape-string-regexp": "^4.0.0",
"file-loader": "^6.2.0",
@@ -3140,6 +3140,7 @@
"shelljs": "^0.8.5",
"tslib": "^2.6.0",
"url-loader": "^4.1.1",
+ "utility-types": "^3.10.0",
"webpack": "^5.88.1"
},
"engines": {
@@ -3155,9 +3156,9 @@
}
},
"node_modules/@docusaurus/utils-common": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.3.2.tgz",
- "integrity": "sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz",
+ "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==",
"dependencies": {
"tslib": "^2.6.0"
},
@@ -3174,15 +3175,17 @@
}
},
"node_modules/@docusaurus/utils-validation": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.3.2.tgz",
- "integrity": "sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==",
- "dependencies": {
- "@docusaurus/logger": "3.3.2",
- "@docusaurus/utils": "3.3.2",
- "@docusaurus/utils-common": "3.3.2",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz",
+ "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==",
+ "dependencies": {
+ "@docusaurus/logger": "3.4.0",
+ "@docusaurus/utils": "3.4.0",
+ "@docusaurus/utils-common": "3.4.0",
+ "fs-extra": "^11.2.0",
"joi": "^17.9.2",
"js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
"tslib": "^2.6.0"
},
"engines": {
@@ -7206,9 +7209,9 @@
"dev": true
},
"node_modules/@types/mdast": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
"dependencies": {
"@types/unist": "*"
}
@@ -8480,9 +8483,9 @@
}
},
"node_modules/algoliasearch-helper": {
- "version": "3.19.0",
- "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.19.0.tgz",
- "integrity": "sha512-AaSb5DZDMZmDQyIy6lf4aL0OZGgyIdqvLIIvSuVQOIOqfhrYSY7TvotIFI2x0Q3cP3xUpTd7lI1astUC4aXBJw==",
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.21.0.tgz",
+ "integrity": "sha512-hjVOrL15I3Y3K8xG0icwG1/tWE+MocqBrhW6uVBWpU+/kVEMK0BnM2xdssj6mZM61eJ4iRxHR0djEI3ENOpR8w==",
"dependencies": {
"@algolia/events": "^4.0.1"
},
@@ -13876,9 +13879,9 @@
}
},
"node_modules/hast-util-raw": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz",
- "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.3.tgz",
+ "integrity": "sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
@@ -16352,9 +16355,9 @@
}
},
"node_modules/mdast-util-from-markdown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
- "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
+ "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
"dependencies": {
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
@@ -16634,9 +16637,9 @@
}
},
"node_modules/mdast-util-to-hast": {
- "version": "13.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz",
- "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+ "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
@@ -18041,9 +18044,9 @@
]
},
"node_modules/micromark-extension-mdxjs/node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"bin": {
"acorn": "bin/acorn"
},
@@ -23038,9 +23041,9 @@
}
},
"node_modules/sax": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
- "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
},
"node_modules/scheduler": {
"version": "0.23.0",
@@ -23100,9 +23103,9 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"node_modules/search-insights": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz",
- "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==",
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz",
+ "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==",
"peer": true
},
"node_modules/section-matter": {
@@ -23557,9 +23560,9 @@
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
},
"node_modules/sitemap": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz",
- "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz",
+ "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==",
"dependencies": {
"@types/node": "^17.0.5",
"@types/sax": "^1.2.1",
diff --git a/package.json b/package.json
index 46c892d..e20e682 100644
--- a/package.json
+++ b/package.json
@@ -13,8 +13,8 @@
"build-storybook": "storybook build"
},
"dependencies": {
- "@docusaurus/core": "3.3.2",
- "@docusaurus/preset-classic": "3.3.2",
+ "@docusaurus/core": "3.4.0",
+ "@docusaurus/preset-classic": "3.4.0",
"@mdx-js/react": "3.0.1",
"clsx": "2.1.0",
"prism-react-renderer": "2.3.1",
@@ -23,9 +23,9 @@
},
"devDependencies": {
"@chromatic-com/storybook": "1.2.25",
- "@docusaurus/module-type-aliases": "3.3.2",
- "@docusaurus/tsconfig": "3.3.2",
- "@docusaurus/types": "3.3.2",
+ "@docusaurus/module-type-aliases": "3.4.0",
+ "@docusaurus/tsconfig": "3.4.0",
+ "@docusaurus/types": "3.4.0",
"@eslint/js": "8.57.0",
"@storybook/addon-essentials": "8.0.5",
"@storybook/addon-interactions": "8.0.5",
diff --git a/plugins/svg-fix.ts b/plugins/svg-fix.ts
new file mode 100644
index 0000000..4275865
--- /dev/null
+++ b/plugins/svg-fix.ts
@@ -0,0 +1,56 @@
+import path from "path";
+import { Plugin } from "@docusaurus/types";
+import { RuleSetRule } from "webpack";
+import { Config as SvgrConfig } from "@svgr/core";
+
+// This plugin is used to fix duplicate IDs in svg styles.
+// For more details, see: https://github.com/facebook/docusaurus/issues/8297
+export function svgFixDuplicateIdsPlugin(): Plugin {
+ return {
+ name: "svg-fix-duplicate-ids",
+ configureWebpack(config) {
+ const svgRule = config.module?.rules?.find(r =>
+ (r as { test: RegExp }).test.test("file.svg"),
+ ) as RuleSetRule | undefined;
+ if (!svgRule) {
+ console.warn("Failed to apply SVG fix, could not find SVG rule in webpack config!");
+ return {};
+ }
+ const svgrLoader = svgRule.oneOf?.find(
+ r =>
+ ((r as RuleSetRule).use as object[] | undefined)?.length === 1 &&
+ ((r as RuleSetRule).use as { loader: string }[])?.[0].loader.includes(
+ "@svgr/webpack",
+ ),
+ );
+ if (!svgrLoader) {
+ console.warn(
+ "Failed to apply SVG fix, could not find svgr loader in webpack config!",
+ );
+ return {};
+ }
+
+ const svgoConfig = (svgrLoader.use as { options: SvgrConfig }[])[0].options.svgoConfig;
+ if (!svgoConfig?.plugins) {
+ console.warn(
+ "Failed to apply SVG fix, could not find svgo config in webpack config!",
+ );
+ return {};
+ }
+
+ svgoConfig.plugins.push({
+ name: "prefixIds",
+ params: {
+ delim: "_",
+ prefix: (element, file) => {
+ return path.basename(file?.path ?? "").split(".")[0];
+ },
+ prefixIds: true,
+ prefixClassNames: true,
+ },
+ });
+
+ return {};
+ },
+ };
+}
diff --git a/src/components/AnimatedAppear/index.tsx b/src/components/AnimatedAppear/index.tsx
new file mode 100644
index 0000000..3a7e7e2
--- /dev/null
+++ b/src/components/AnimatedAppear/index.tsx
@@ -0,0 +1,35 @@
+import React from "react";
+import { animated, useInView } from "react-spring";
+
+interface AnimatedAppearProps {
+ children: React.ReactNode;
+ className?: string;
+ onAppear?: () => void;
+}
+
+export function AnimatedAppear(props: AnimatedAppearProps) {
+ const [ref, styles] = useInView(
+ () => ({
+ from: {
+ opacity: 0,
+ y: 100,
+ },
+ to: {
+ opacity: 1,
+ y: 0,
+ },
+ onRest: () => {
+ props.onAppear?.();
+ },
+ }),
+ {
+ rootMargin: "100% 0% -10% 0%",
+ },
+ );
+
+ return (
+
kYo~ zKB(?bkxk4QAK_Vgi?R6TN?Ad2GmQYmPHhS09wCR-OZiN+v-$H<+Gw0mE_6?7?1w9O zsU=CwRDjOT@rTTSH!Z48JYlifaZ50igQ9%4yYn^VN@m}&wVa1}i1E`y#TCWrZurHG z=Muu>9NUD`!1yovAJ(YviqpKx%aFBouAP0CAW{u-viKd|PFa1c`KYD=%} z0BA1 5t4hO!;m`%1v7aXb662Kzwz9-U-e>XBX az{IMT8$;3{2g+<9mmH&yeB)&-R_g @b*Q7dulSyE_{EjR)ZX6dd4W@MO6l;239B9u#dPk UO&^KGdoT(cBB3e&=udPLJm`Quux>>eZy4nuoIP6x3xK;~bwq!Pi00|Y z*EiXw2tfR+Q=zLjTXoGLEL0QB} SMmY<`RYxhvxC8cujl6wpO&jM zCa=NGPBx%rvNoh4Q}>f5wvBZNA{`r~*@sN{P}XMuPg^j}=Vrzyr!g%q+**5^2Aa4G zA#8O;I=GhQl~_F=Sdi^;sr+~C%C1bkenSJY9HSsGf5Ms5rbHF8$trfWH+Gpq)03Ts zHvjhH0QJ^DwH#i8kcx(z2fy#*bbMUm8=ZPVYchf)3w0}Htv>N2xl%!b*$lJ6V}#hD zKjt%^Y=%jeCfbss=HT;bGdR`B27h#qI8k*!-)=TTey2@^E$el3S}nqFt5 +TvS>jzXlDa)AMqI(NBwZ_cYUanT($zPD+w|$s-)Q*xY`k%l_ =(#*9KB1*gj=OXkh>O9S1;uN&5IqKNL z4k^IiA2vy2AZdB9{! 3bCce)YXk z$ C~rJ?(#Cl7 X{K^O}k=Ib=u{Ie-Qkx7h%hH z3H073LTu+n&9;F{bjRvT?GCxnUe^CCvCYdf)1? _1w*rdcY>{3OqQ5T<5$ zb!Ky_A2;7??p6xNx7!|Cmkx9(Q~OQsrIGwV*!MrylTD__4f_h~o^;7rZ%tFZ4^;e)+*~{l;t#pOIiV)1!@56UAmn z|F-kEs;qEYS6LBBrZwqE%Z`Z?YJF}h#w#a^W20Yv#fg??Zc4cPeA}S@k;sV6m(|>X zm>sIj%fHkwe)8lsM@8*F39I7>7L1JlqZUA-KI|`K)yXK54!EG4!L5Ja)}K ;_lecbVU`No}Zr5;6o^Xnk-m=2f2# |3KCm&1Eh7}&+EAq2;pDp{rn+R?ONy*A{XToH{$|JIbFOh z2-7;q%q_E7Mz||xoP~wNJqb0LPeuD?x??Nxe!`#J+P=d4R$Uvjc)vaI;}C61kOREP z!+*z6-TbL1Ro`+Tdq>gpH`w2DsIok&*xe6`tEEE|4$yn5@U`O&F(p! S+LFF6L+_#-~jW&xuVO7S5O&qh=jVbX}pP!md51|6;d60;2# zvly#Hb(I7ga O zKVsgR5`nuF0)_ r7aNFP$2chqJfAH95&?9fBHd%6z+qwuI?!lo|| z&qP_%)|A|{YIvwvF$L1y?|P2$P4(kmE2DzvL+kD2KMoByNCR1`h4$Q4CTWCH%uX{i z5q9I@%B~-@3Q$YWEi_TK@J8N}hhj;!iDE^xG!in{&eN77gr|ZRKY%Z?*hCUn0i|fg z?(JM>I;JbQ^*T+zF=m{TI%pfpJY!*I;k-&JM@LJgaf(*{BG;X4Goe3h>7j0%2+&F@ zHru-suE_WugoaQu@;2)X+v&xPi!+$J8iQN~=Db-sVwIbh(FQY4U7pZ=X}K5F!6h)W ziCrDoa|e$u+VCv5_z pBRCj~mV(PpS3nT6GJQm*vbeGR?j)cOfP0rrgYxp7CZLTnHrlBR#9{UoOK`gBB z{bYRz1xKscb$Gkyr0piyHog9%_;;7}e8byhl`RdRrAjy0SOg3;6^!SAwKaORQGI6D zacq7aoi(H8+Z`nM1?QL+& u%J?9MQo6h#N3wp3 RZI#o-kym* zO(j)XR3C;{Dk hLcFjMung3ktnf$0ryPgBZ6?>!orc%D PKaMzME?)_i^*pH@&bP>#c4IkJZG z0c3Kp8`zT&Q@)QwqRy@V+`tv}*v`LKh>_k-B*+mQgdqZX=Py!Dgc@81`dlm)paAC* zH<;FQPmli^ZA+6^j|0-g+L?VubP1jR(&E=7{!`A=LJ&eer>7*76a?l{e!hv+L7|gK z^vFS=aQS_nGq;kN$rbDAYxRc?lVTA(pzb;@sSd?reIzkmtJI&Zuzpw7U>|z+@D Aq1aAW^oQ$SyNG;2}@b#o1>lvTvLz?k@l7=YwJ1eudh4=%>3~BNTYe1~|;M0CUW> z9;ln>0#d@ KG9m|?a1)>wVc{y8>xF$1!B>oudwI!lJ4m+;d`FWxUZ-0ugM9U$vN>cLQ1Pg0Q?HFBaI@@%kx(*`TF zwPQWGZ@W*w^S*H=)<*);QdLC|&!6$Ow08_F`3LQTf!8rRkmU5-ot^qq?TltZxLw7u zO(A(1a;4tLkF;#fRT~IGF%@6wW*HHj_ejr)hZ{mge3=7%MD~$7O8!ubqEhD#{{7o% z-Z*g3DY9&JV)eqv;f#2xpxI@NUcEC ^Rz=x?Y1I zpFOirxmbrlM!cq*6{NouP0nq9j(OEbfL7xh`j8SCG(sE*V@0OxYRCS1tka!RP`YPH z@fC9&7uFmkYKB$%m?W#CDcJTzolPSBGm&|}_9pc7CLr Uf#C3J5 zgW9KeQ_U!1>YG4uynXD~2LVgKo&sc8_kHz5ZQGms3;xP@0E@-@K@GQ~Cc(k>y}TR7 zbmF D%E|Qc2gn^)lq4k`cZW2=C-M+dlI@r`VA&D~R zMU+}OI}KAQBs;q#T}Qw~41K-j%1-74Sxl97CNyUnHEw4-;jL=8ZAf@duutQo$KBxJ zz}Zkneuh$T^jv{0rr%VyfR$DQn+F7slhG4?ykh?JW=Eo3a-48;_w16{+jQrrh2ghm z(vgwHQeJCj%!1BMBc|uqmn%S`nt_!Is#VZz{iBb0LfC2}V*mwWf&&32nkFzFM;AqV zv_nBDks;4bED`#pC)bxC{g&_HqE`kMdcot3i7kB*sfR?L&rW}XzK=uF8<4IM#+64o z6sO>W h5Un1&ylkgS4i@JK$$grc(ugZC^R$LE?2YDMNkL0>T0?|gyJcgoR zmF*u^<$Bg{S>-~0QCqjD-%OF#hEDMwo2=n;H5?y-f8c^!>e9Qd>S)1uf!(ME-3IbT zWa|nu)w`TDZBn^K4ti=nw|%=wtkTQE{)SVS87IQA#K+?DTlBX_u91#H=dlyzYD p6DE-!ist6Vz0 Vg$FG3PP)NVJRJ*@nNIx}JINP`)xt8GAQxSrJacg$TPrZK=e1W~LIgP>Z#$ zDoj$$5B4$IxbHjpW3C~IkBv9ChR&Rdy3B=G6=>MgWZy$B`aqh|SmQln$>I3o9FR>o zug}KXj4Ux-bk%firHrhrulK|3n9h4>VhHQR`Lz6LS2Ci@sV =c9_`yoSyPY|pZ3XG^k4qeO@Ku;c~o0dcG6I-f3G z3sHfS#ab(MyOS~UAbN;0vKy5kV9}p!Dg3O#=*Xi#k3pb<=aTD+3k+tp=7oW^f4|k~ z&FK;D#>s!0IM*QGDVcru#B~#?Z0kd-qfjvZyo;5kC6Me_Hr2yQojzs2w# S0L{=B}j#zIXe_nndHd|D MFyNl`2kcKKWE4sr?S#YRif=%?L12!|%>r-!DpGXbX z=LAO=vlI`;M2Z&Os?wv5@-va#X-^O-*7qgfGY)MFF4A2perbutBdkffl(W=9qt>|7 zWnB`oCFAmeL3GBndE@EZ{9Y@-rfer_4f`{$nIh$nwv|kX990tVs|QJm$`RGvY35`Y zi)>W9kWV(&&Cz6GqAfd?<6eV7L!!?W%|f^NduH7ZPIR+jEJart-^wp|>WB5Va|97~ z0Md3|M|9M5BV0gf9Ji=NavE-ngIulstT5#ap@mqd1ZiD$`-TRY^gEAxeO2LuVZZiz zl+0%@&Cw8mzvOqS(DfpoU&mN&?fgpw_o_#*6Y{-?_WBjPH-F%*MSBR>pu^$LkHwMW zH6Xg{y0$y!=ir(|jS4{pwOw!`kro!o!ih6Gj!=#Lnd7~!pE#i&QImJ3#E&LCI!?9w zN}XdnaWmT%p)pN6Ka&yjzCkP`%OMC%VYgd;n_RaJ9eBHzEiJngnx>0&(|}3RxXE{7 zN{1esmg_ktifP5y>sv#j%RZR>rHnPhzHpWJXBG AWaJO!o9mk-r3o0Mki1AI+yfqCgzt~_XDO*#ejDAJ81?~YUZJ))ZM@E`V zkLAtGZ`cxoOz8J&b?CK9Y>)`UhAkTRpYjS&?P||yV@cq$5BJ$c+UZ!AxCbc#&r@oy zGbAHfx}{$Rp`rvz=z48wLuI?QskQykynpmilST@$^7abAFVhOqvZ2BU?cY-LCv1 z77l&~f{bpJbV&aD(4LWR9{1JZg9FJ=R*=?y_8O_mySGC}s&2XzWLSa{0tix=oqDUi zy`LuaOB#%D3{}og4nQqC*WmoeCysb1`5K`0{kU5DJMfec#+0S$ha{s`PM`5S^z3KM zBHm;F>9{3wqPc8QmYNu|hXMII#Y3!%j6&cCUd!qgGRT9remEWV;MS2(OMw+-IZVC2 z@O6q+Dwfu*3Z_Y$mC5C7s)Taary#nhipl{e$ADI0eeU`Y&OWqY+U|N=+Y>ttM{L`Z z1Y{!pUsC8K)vmNx7va)RSm*E}V;T}+fzuRZrW#FUu2DDycG$m5riNauj=06e=x(X~ zHFL!xJ#4{zNaeQBDa 0D|#sCdoMkULpFeEWL zKz?F5n@w*MZchAK=h$*F%J&OSF7AK+7eLS1oW9zm?lGL=pl^>6CilgH?{mxRp%326 z1s>6>@3cGw8i *RTIbNl zdyZHqt(Ie7H3Dq%u!l0_7SQ#q@#MydeTBWDyu$jjcOHD`;Zvh^&|7PTFxwhULNqz5 zy{Dt^rdr#_T4VGgvQg^SlG~zJwTzs^!RXO^-?QF@)IU8ve!GoV!>_iQh_#Xa__I30 z>#r%usH0!?xXEvoc6YyfDA^cq6~!Bcnj6Vu(Cto~Tu)cfp+pYZ)Xl4I(=rSAu3(?Y zQjqi34RiN32aQ7rgg|I<8tG8*K;1(A_B__DO-N4$aZ&ips>bt+KU(o()fLG&pTJ%T zR8(CpcfBRp-am2= E%D1V@{jw-?c{$?dAoHg6VJ6hh&M8)zD`8v}6tJ6X2e# z_xk5r_<9~q_o`trbIOdfV-qB()5iyWh#G;!OH(LffFL%HqpgQ1YX=9be!Q82Q18&* zEOu>H$ws!1Hwvy5ke2nVirMfbrrA$iJ9UV`)Z4KvCh7>T1=4a$Uz}VsY|w1~XhZ6b zllNCo*GFV;{c6%Y$~FsEu{C~j6|uYOLHvz *>8L?zTJ@{0Ht1*HpI{ zcOv9dr{7!}Bjr#7mR^GkZ TiUTW!JnRo5e9VuQ|9$0#1VLQF}ZP>g4@ z_3dwu-?L5Nb;1oIC;hbqTfN~E`Gjgb59f~eaxx|cd8W?OWKZu$+H2zmYaH-_Lv^pm zbmpozB3GRH+=!Hj;AbFIrGzGpiXdVGLXYufZlcA_#cPVIMn~CVf_N2J+($T|19&Li zTMt7XKp}5?Se4sa@IF7l6|&-MFz5^v(h}f37tQC 5{0L~~3{uauz$2t)_>m$@;<96^6rOT+kx-~l(3B5s8$wpP1I@ClZmxYIKEe|hBJ zgob%shMc@pN42J>Sb1WponSdEx#caLnGmtg|5|8%+B~AGLfx(P$WfwG(6a3ccET#7 z6c$h~(HQx(`^Iu+dq{2vI(3J5W82yq#fCWW&1)pycM)PznL28xvHwf=(r|H3k*Hrj zO2b ioAg;Pq>#g-i3A3WSohBoSHW~g}26i;ZSK~w&YMkc7zMlyk$Glj*%Uh1(qQGC?-pD2V@R~ z$?rW3+~fo`3iN=bo>g I zIS*|nXIZx5pcUa>C6$;DxFC^1oQ|GE^m%Jj;fxI(6KFM#*G_!tJ4(EJD(*fsR$ON- z3nKd!5+V^gEbOVXp2VDERlZkQb&^2Ob?n7)l~XKY!5EDNP+pmEhwk2O!+Fl2g6&Df zNX9V}_W497A_81FaWT>Mmz00WH0uF)NNHgGn|6nxA%{&q>^^4_hfhmAFH{Y0)R6Q; zRPLzqM3PmCbVQ!aN*m7Nh|;1f4@p7+g=TThqWnCzXJmA0M8-Xabc#HfOTuZryn@bU z?yyzWre5|fPV^v_HZ{m?mFH>p!Fw4G-v=M(+QbO&o(42PzHbv>QpnhN@N(-yXLIU_ zrr)kybfyP@-i$#3kglUG0IYX#V8`NH0muUm%RYceH{hWg#o&L`-k~$f+cl}RT3Ylb zf#}O~bPwp)mY^ohS$F7V=w|{9(Db~uE*-h~nVS~tqA>YTtGmn^6F3N=@6!nMQyHhv zKg*deBw(rAer!!S)*dmUa`U_LYBcP2mMopHE*^u(pRdJ+7M~gZ&bFwr8jB(8Q9H0e zH>#@!XH?slS;KGhI+#w7H^k}>X8C6mkfAMJu5BZrB^~vkpCyF{P)#r@G@|tDrQWU5 zxYMP`>Ejw_VzQ6#lY&GKO2@bo9?t2#`1StUu9JO&dMc!Ff|K9Y?#$!p&iR2+{z=}D zfXK*8lp>?u{`2Yl!qmgjQs~I5t~%*OLf^UimNwL-UqJ;W;@! ^kT?JjD|i%3h+C_F-~+5-IPR^H18mL9D8V<;p% i$Q)Gaj_b{=1oi-q}FQtsB9by$Lq0sVxa-e)hubfoHmbtHL0>p_pP=UEY9kcLN z>!nf2A2H7x1wtQY9*d&fKS-ZEhHR {Z9*Gz`H 8vI5%NZQcvpO!Q%&vCal;=(h zRN6}Fsu!5E(2LQ6WUx#4h*dml5l#beVgIL%Okd4WJX-@m;N?;IV?N|rjo!HXNJfBk zqjg2ip#9{r?Oxcn!yNC#6JR 1he?61g0rk`Qfnm8cb=l71n(VXAC!{u< zS%fl-@WY&t3i!puS^kw7i}uKHDWHVL`ULBt?dhGzVT#8ZaH 3ilP&8Fh+|8q3Ks+22%spsZSUFq;3O48s)j*n_qjvBt o$jt$SJZJ1i)l>DfTjS` zZ>kR~wzo6}m5aD~hc9z{`Z(8JFJqA+ +f)(E z%gz`)!rTMwx-u3Xmi>zEEuRG Wg_d&)-X>tX1B_ z%2S`7vJ^PJ98Gp+WorMTQdt1*j1JS#7%M0P>8~4a8$i3&1EQFm`wOKDVyD i+FmR9j_uf(XJ`MOiiSvT zg+1{MBZ@itvHkNLy|}D!55*BdKOnl^!e#5Q f Gh05l&v)8(-F=y@86~JYq?h7x72Zx6cw|Yew2Eb!4? zBu|YG@0mTw7nb9acz$;CEr~o=E#rMd&m% 4mbyec9nY=zp} z8Om9I$~{l1kovyqF0@}dGs`Doy(xE+BxkmQ(JX1(ir~OD)Zx) *!e6}Yy2A;vsQ-g%?0pPM77o1-&Co7p~ zv(b8R3d>nGyRn`mb5pj~|G<`i5cx)Zy|$>l@?hR2QQx(jak)A&V|dN(VI<+M&7(Eg zC7Ujxq-)A$-F6qGXISz8D{{1{Bvqi|KyMSD9J|sg+DV8OILy;>>_(5eU12xXX3=rU z>MW>ym>ZW{c}~Vjy@`R=sy|fMtyoxB zZa41ZHAP#+Y3QSk6O!(C1t#>?&lyQPYX@zWPStVGwB&e}xAY4HV$|=% zmdTjVgUovew}qm$1?g=omP4XFypj12U2SdBH2F6M9&992-cs}?$P02p4RtKK3L3yP zf89-2X11Qja3dk^a(bc=lQ)>WUjH%Tuj*OnH``hWSn&{4KEa<<=Noapcb}8F|LAc^ z$f#ncxO`M1TzG?gzSe2oxWu$jhSQ4@au9jHURN5tFjk=?dw84Ean-%;ARj(0+Xvhz zSQv2&r&^ivU3*hpyh0}Xm9LO!I^PK}--9xuzkdR!K0pbZtXVN&bq-D`GjzWX+kS9I zK0~0E>^4A*{xEovPq@0u!oPm? 0?7Nu#nfXK0 Dk z9as+Q=9|K>DB&OGI2O9>DNR#pIfk(W1p_P48Nl(U#|x`EO%;TBV (W6$deDe8{Pt~s*7Gqfs z+!(*HrhG+sN@Nxekf|lj1h2w)mD&1Ft6cT`)E{n6whUV4eHuSxuZQO%l@M23$K~@Z z<*En?zuy-&YdFDoIMopsWa0ITb8uK6zc!K8CPK81*f-)ZIQ`GjsjoGx*Rd}BX~nX5 zsyHGWbn%bSbXq!(uP4jc$X7BrMW?62zi!7W4lENsJp9xvaVca!pnhur%M)lwLDEjD zY}DQ)5a17?Upo!Ig_VyTJeJnm`PX^?2>Kb{NG>I8s{#{(_yQ_ne3wx{@s7a?0Un24 zUj!=vJPhQe*#*^>qm{_6quK}3js(Lh9gE58-u1BfclVyH@g$@q!*FA=8J$u3yY@#c zj(l`Rl|jb_a0p8Z5STzuJ!AGdU_!ofK>xSMF@l1?VK+H=r+@4+4l;Cac_cc;XTL6G z_T<_DHr^bQHt(cN3aDctXm~Wg0nyLRTsk)rw=?}@?H8PpI*zkr)5>{{3DGfg_g>6~ zQQVmKk`Lp_Si!aHY(@xaYTPY+u6 k(P-wfvSFdFEr;6rynYj15`v2EO#LrZg3f3uQhkVtn2fplMSpde5IHY>2^L;c`ti z8glmNeT2j(|AUL|KD@r>F3-79!<%^Dnxcu{jxm#x)98yS&&x9-9a?Qk3TjAR7JlQ6 z&_g2sM5;$yu5;hYEuW|CkZSd=%1m19v&3llj=dn^JKP B`gzB6 zvjZz{cZO=U;hAky$Fam5 Y!?i>0xM8o8<4lng|15!W%*V&*wioR`P3Cj=j`tu; 1wGCYtnjngm7v|V=XmzzrqXrZ3v!BNj zknRqbhf#_Qd|yl2GP$G}!@jKc&g8A&$va0nS8EXAqf`Bk;YjB`b9J$nK2>#X6FA8* zv8g}2w6KA5@wKvbo}_g|Nr&Ig9$+a|@rbQTF5_=1H%Q|Zy?-S`IweoTu}bV4vLvO% z8NB11mQ?kJ(a-hKZ6-p<*@JM8T^?zH%rN?#bx2z7eOljh_$$;Zyyw$OG4coN&%upP z?tBhJ6-_ovLB)$~a*v`|`3AX@O{=aM*Zel!e`YTYC!drbK+P9j^{J-q&hlUk6J2-q zo4xcZ_t3`_OE$AnIxq(_uax`4PD0>$vr`g5mw@ke0^tosi0~W(u#LQ=G`>7JW5##u z=8gp~LBSy|x&Gw%;czG})$wkdTO2(zaMOu|{HX1T!QQOCH{h70OwLtTJBa&e!FIqq z?M9QtHR_=(25nj_o0UwP=ngDG6BYHTLwv=S>QrdTdJcO+zHYNdZsk0L0`S}++pi17 zXG5AZ--gzUU#65%ifU&V#txQaxR2_qYxK652<5HDvtYD1#olgvSlqd8LTlxt5&}jU zFOOl*Wseh%2ByobiHJUqMi?OhIg`qu1T#H9nIAJV8PPkIr~PT%>f?v@xY1rb6+8`w zc6-YzhGT9{yJBW)W5rWzfvQieahKbZ0u3EC=ylQYg7qWoKHBS?z|&-PdiKt!vauU! zFE*RemZ4)wJiBbARu$fz8#d2QIn-)z9BpZDelwZ?;)yg}483Kwq3=%?)wyBMs`2fz z!7`gG5YOLk#W_hz)j)6WpPuiJeA8Os8yp-{a^4+2@46KiM*y4@A_2<91iy?UkN2qF zYJoU+r>YQGkKLBwUM|#C $@=|dUwq(0^jHH~ S+;#x zGcK1xqx~VW-X` 0b_Hui%@_0wJ874KL&1~NrY>4FD wCw5jNtXfr^z!pI|;9mn-KTmWY^QFKJZ zrmQJIVByB1%1on-W sixaYMCIr(X z4m{MLpI!MXt_wU9{Oh3cIHUEjFe03tVLhT*k(MKDL$eO<1yPj*v-ozJB(U-MZKg~V zIYmaho|JoKTRKipKUuVPi=?33!pGZLqUn?R3~xlXbF}8fI%smvA3|MrdFhU&kMj)U zTbmbyC>Y_CqbQj-{mU20C@O7QFm{v(g`R^qab4QRj}31}xNA^Qs9A$Aw1C`kIuN5A z^JoA2UxLUAsTn@ZTq}>;_Q68rGCt^jhu`eza=b6u? 4y1-#l^06S~<^7v} zCcMPbR7BGX{uE!nV#liP{rFeHfB5VeBBMW6x z~{G%+zl9E(`UrLBW-0K}`Sx3c=+HJ5yoN1^p3 z$I<5#Ek8*Z*LGLF(nRD$0{K!MPI%K&Eu`NYjUdLDak1PJG%OMwo!t!T@XqibRiU|m zw6J$0Acn!aZZxCEKAt?#0RlLwGTQ%CeP~EG6Ya@a;{y^UE``Lrm%~74+L0Shp1=B1 z5vj&yWLR@kk^ nG0<~PIyl+WcF%zKtyusrc_+P+$@i`8vQ;pUG1rt9r-*v ze(#;Yn^lj*6nm@P!Ig={N>84T?g2%L&p{Z7?K(swNOv`5KR7w)x8FufU$YH|xTZe9 zKOkM_Xesi`av5K@B-zgi(mHnRctpoFONzZF;$%4ebk?>~pG&RYt}8?0im|DlH}`yG zPMmtPXiSUdZk+ 7KyQlTZ-sO8X BS zV|~vb(M1^X===V=j_b0|sfefc;bAM&)o4!jwK;afVMQ%Qc P1T!k1M2npBE2 &CU<35rg_-?_bPC`G?u@_>Ye3>qawyK-{3JT< zsnh{#2D#4e%%80iKDr0}0v(hQn+d|K{S{$oFS)>_>pQ20N!%G9*ApXk?|q F~ioAD#AU3+*-$11bnDWG}HGYIz1Qr4Wa+^5yeCrR}%I{f$D!oI+niU%V{9Tj#1 zzW_T>rq`GHW0QznQRxcLhsAH1UD}fGu@U#fBRs_$$oPDacV#@?f}T2Tb6S4P?)`w1 z=<^{vV`lPcp2TxR?izbgDo)$ +1E1ToE%NcecgNkjUMZ1gLhg=$ zDV?Hz1iAN|6~D^bDQ6Fe!<9iC_|3c7L%(;aK6`ZA7#dD)o?lhk>0Wv8L{J9E5A@#_ zHy6ck&bI8fcZ$wxv0w~!6M4h}y)4?+JX_cr$NgF&{dSZY^mbY-+eW>7nXya5r3Ii- z_bJ|JnFRtZHmBOtQI!#0lf;)97ft0!gNw6flj !bWSC>ur<~N8R z!CB*~d3~#QzPl 0=5Z5hmGL9)jZ|v(`K`)h_JAjh&pk<@LtW#S i35~3!r2i-nPLs L|2)dlc%yhKG&LD92+@I$VX;lR%))A% }kg zoul>f`#S%O1EuQjqkNW2uun+O)bIS-6_eSl6+-uc&2K(?K@ up@r$HofQMi*<1UPt0*SkqtH|M) ~g!`{b(3&3Y`6YjbW2j$ *7_XpY;^wl~)k}(vFu6HKXi&H5iog8J)^Qu+vwL&HrH& zFoFS3%z~)ujV2W3FJ2Euj}CUb#(~9L_I0@t>vqc9>UeG?E;Z`Pe&t#5xs~LaKN1{w zWXh;pSRHNG`k9WNeONMoU|@C@<$dyGcT@xI9+T(H_|4R!!PDEp()caoou^D*n*6>R zjfQX)B~@e5yXueQGIKN7s3^Bt^f>w4bondABp2w6&e>EidVQ@dP7rhWS+$V839G;R z5XPnv&ug{G`7wC=%jlQ{9vCfR_wT~bt3CUkYHQcA`nJHkfu@-Z3@{7w*Um9O4TE6x zC41u6%cLA@IQv4&lW!ug-rCFj;h!%r{^mzDn@Xaoz9hx?Ckhrp;W$WgWPeYm;WniI zFL_y-tvLLK7rMa%db@ra
W}!J3iib z^!%h(gmi9~taxGOvU5H|T`W{LeA?92KUR3v%wEP>EG0J5m(=@)G&|YmuX||O@&Sh? z;q1rk3A=9koc_$R3174IcHJ99+|mA?r{)gb)xHYbwj^qehj^qO{J`A==dEC`I2m|G z!6(^3{DAh|@nAhQxaCqI9Xnk+p1^hgajrSF{E_T1%7svBj_)ViMx)YHt`>*lG4lOQ zhw_Mlj`c;T%i6cahqO3Q4vcrz^0!GSWSWRS+$)J0bwbuDU5C%^Lx;Dag$SxyY54nQ z?9_ukgG&c><|5A)Jy%Ngk=EbpWtfc%oL_egCKH`fnwMirzl`Rr#p=|o=s%FDMyZB@ zYCDM5x-G?%Z?l>YI&7vR XNg-lvuO`lrNkieCl(Ag@_B2ic>!Dw#MHxxV6Ot^eTn zVfkk-jbO~N{W9C`Xfm}>+pZ%9%0MsJ|5#skPQ^#7VRoD1;}JwF)RF0cQ1lJy>+Bx! zEtzF#|8W^S3EGrrMah)&bm~c7>f0FM+~3ohO@4J37UvTr%V{V _jA03$_ zow!?B4AvoO9(M*UZ;nnVaV@{k9~VDrEE&nCgZkAPy*l=S$S^+fE!GPk=+nw7wvny* z<6h{RbRd k;e4k`U0O}h_<`QMdcaLGTB*le@wYoal7(t9?pLii zi9F|})!0997h&!+#vwjy9X{JTHft(*dYKiihO1EPIV;D7hiN`6T%~q)ai(Oj2xfHs z%9XeLL0FkrVGic-C6q> sRlb*bm?_B)3v$>jab z5n}pgm!%shr`76R3z_)n9DXSnGh3|S{#}KaL!g9AXW{;P3d=iQS~oCQw&zi)9KW95 z5U1s$e6QE4j|cKSJ>qo8Hb9VX `z@6 zjrzD;%jQKT>BO&7GmhS&P_2TWww%u%nx+#Zeu*|7?LSymWa*Eg#WiU?^r9~5M}`yY z^NzSqNVavei9O6d2MFoS5gYvt?Qw0gKwE8g)!;<(JKPy#ZTuyysio}%<2@P&;)RBT zstB}mNz6mk8}q5Z8jHQUfNmX=yy>WtUdps3`TIspvI~XPGA6W>I9|EsLC=cOvQ%0m zZI`!>HoeiZI(&q3JYV!9d(X5k2%6gT>0J5MX|UMcW4u0+36C+ jJQ6O=Nd8%N5eF8MsrXbPuQj^f$MiJ}9$tq*7EmTF+^)#rEb!ANh8P8gUc z-=Ao{q>__ 2$5{T&`ZZARUGWm!scIZF?+0D?hmHLS)-~%xRb}m} z_tB5GlVYq|3VEsa{b#PKafN2aR*{SrS*c@qgwjt>x9i#J5P1%B+8KBa|I14J%~3{` z(7Uj2WRrr);+Ue%pIu%3i$1!4ETl|_m3FW$do|lWwLYvD^ftRoto%{7HA+_%{f*%~ zze8greX~?{DDqHUCi5=g;Q5odaXo)L{?UAV)!R8;yj>W)XZ&WQnZ8nnH|Z{i)0U;e z{Aqu3g=Jb4+Eq)t!zwMm?KG`aM;-Wm&uHi3I_NrIkdDX4<@20TteCOhRrE}*{l7W& zm&>U1@70vcR*4s3&Q98SV^7)?%TLZ?6A`p}<>MDKF_E2&Ax6e06^Qt;3 z4H&t*Ysvx9U(nI)pvk`S5{EXluNYkST#AOgR%#|orJnMRO3N)zS$aR+CB}X)8$zdb3uOAgQdSWCg&YWn<&(WvPB0k{@joZcG=+^=htRD+qnPY zwUr58w)n&SX>|;{B6&8xx0T}YRgtJ+)Q?|9D~B>n!kXG&9s5&~2QQk$;A+ifn8GRB zIB)Lf4QFY3Co(q-oQ=6cw@VhJ%P(PnkNe93v-^w2kxuG%YhbFMJ?w>pem)?2Oswt| zJI~pFdZ!cmiVgnJfVgj$;Pmx|8L(>$#o&scq8XDBC7;?(nzOPwNrR7OJHHLRLX2Wb zy^~fUa>;z7ZFZqHEJZ8v{&si#R^BgrKbERuTxypQ6RPEZhwV%3yx-K@{?hI3)@S_{ zyp7iO#uDOtTAl+2epxOUtOfx|1>=`?JMvH*N56kO5noLH+n2-c&MQ}bc5I^5gl2sB zFL^>-Z9b3r&4csNGt=vhGJ9# ~H-VOiO#RZI1+DFa4@+0wG}HLY=(!`Awd zy`Pj>&Xgs0Y&k#3JonAox16(ho7k5F6O|a}uWam+?o;RbS&zyfgC0q_8Lc% -Q$cc8zc{QBbVD 5xfMoLZ(3SCH>V{-i=y|=?;iU> zz+o>w?&qs;Al@$|8=X$M3!heV^Nz7j@2>=O@QxX>|54gqvz|;o?V~XX)K4+u*c^ zM=uM%V3dUhrr%1)L<=ta;i$ZNtr2EhefdbIAxdus{=94gNRK#8I{Kz1qyE=;< X0o9d=8ig{{^Mn$)y``|L94dc2Sx*$RQ+8`yoKAeQ3uA6>QyL=v^ z9$Ve~4XJ^-$6~fLZE_U0XTkaF8naEk=_O$;hHa1^hbX6;eU~^xdwfwMmED`J9dk*u zy(Sp0SM&SKgJFKStR=c6U8>eWk#%H?^>F{@D5P&Z927^OKBaCPjGvkO `OBW_ND(+A@@zj+gl(@Sg7G1_jRJyKIhXQ^=( zttZqT#hf=uBR^)Nt OnE`O>-I)0VY9SnjFF!YQ+Dl-99=$4}P~SGMnwL|M-X9tr3 N`pQ5X<)rR9R?p^jrjokQTGnk$uVhee_H2v%ALLNk2Cp--ywXW<#^` zs?69`@~unTLcC4!IHvZTuBy*Vo9R`aafIqZZtxnfKpKsn6v3D2L!{<2Rd@SnE!*;i zzV$RUlZdpl=Ib%zm9~5MCvPFycRXdG>4Al5OILq={LJ63_?)s#o~Recx7F5bPUn6V_?g(K?ovO|;4+#`GIx5uzR>aJ$0 =qkZbFzK4F9rtvX=?XEqzyeF$UWHVz2)^9x8 zQ1&;P#mx4;=P-NRj%fYK!0vv5`!mL|?^A6*^UdEHSBqrzteO5)F}8MoBUqAL6-{Z; z$V0n^a~ZuUsWeMDNj{|)?x{pGf3$u4#HyQO` (I%@kI~;x z50aa_w5g6o$GKuvP$`tpjiZI$I9}Q4Q6?W>7w435(`k=X-5ROkFMnR7(}A|Cw+Mzk z`u6WtX)lo-T~}%fKi9`zU!N{pwq-`BC;rw|eEJ8Hyy^U-k7jG2T-Rj_7PZG_aNZ%Q zCmUb#a0I8h%dz}nL>{vu8BmKZDn7I1aWy=KF;gv$r8|I(uHk zT4!PX%nJFj>>2{NpKsKe{FC9qAx$iu>Ud6SydS?(!}J3>SKA%u{(TpV`YSnA=x`@9 z#~W2=M_$WL*~`U$8q9c>(UYA0r0+e8`YR&b?uBQL(~nP+2#?y_@XZ%Dd2MX=mB1eC zjFX@(Sk66N_{*+)1fsi03r4Q!kcm?Dvk%y6*Deg=v_BjqZ-pny5~luP`j!U5{N5~B zst!K?b?cGqx}TBP@!+g5sI-EVuErtc_1O%&qrN_gOOCx!eoC;k?ls&cc+nk{_Iihp z?|sjBI^ikw8@y>2+R1S#KABdv V4nA z)E{S_yuuTMKcOvA5M{_G$UIW_Z2CcsKGzx;mw!M>?#k qw73h5E(rmL{AlP5&sF*-I$jye_c&ET2!DWBgPG z4oE4H`*t{=GP>)a@Ld7t#|?Eg`v4#5)BEi|eSEpS7au6c!{b{1B6{^a>N!-N%;N_; zXXoX)vCla}4|eFQ7IQ8Nt1i-WtLrMpn|e1*v1|Q `4}Y&PGejM*H8t{@L`Xp2>eGB6WbAqZgmpPQ&dT=O3Pm zAv! >w+ug8fOB|A>h+=qG6WZi`(;(I{sl4=UQf^YeW{Qo(7q|58 zUcb=veh{r4wu$s$tE1C$83@w;E_J<%*MqkE%&WO%++dvJ1N8$Zd&^E5M5vcP>1vDK zcakr%s~|Laq21`VST{?};FwrUjI!`2ldrA2pUrJ0&w2Ihx5wD6o;KXqrCQHx5$S17 z@1;SL7U6(?I_ii^4CXJPOY>t}qki^oTUOf&!%q4t_DRV%ahSDWP4UWp#aL#+Q@|`* zf_+!9Zr%GN(V;e_`bxcX X$-txHs07J+U910t$Jb-8M%4eMnoB9U+GV17I}$c<6&|3@-ku(|OYQ|B(!-mT z%VwARAL1!}N$7UCFXS7orK?=WsrQqf(4;J(_w>`U%)}9@JS%^0I>8K;R5mEsaT6Xh zNw_^WCQ+1Bmv%{0dd!sSwZkXr) 7(kZDAP=!Ko(KM_Ca8PG_Q)z_T?c! z&s)yCFWbwf#SmSib4{s*m$SqFRNAZb-{SqPD#Umv1Dqy |PzLi$W@0Upz zuJX5X-2mv=CA~N5nlkjvDpxcM{mWZFG`sXE>-gF)__3 ^0l@ovYk*>d#{nnU7*DmH``zM#xH?PyXo@_RrC(e{Aq8FI??wap)MO z$j9ha5mo>1m;|nwv4yfcN`Dr_R`X~`vEVcJk;x<`wW4KUo%nDYhz8kZsS$l8Yf<>P z52Bf~X~)d< }zJ=;z);P6OQ z`ZOHOoU7+&nEL&N{x6+pd4Q>Pdj_nwNXy<48)_ZN6vqloYG7O(t9(bG>ZsMX7uQ2C z`hHFR#P 7F- zFZpF*RKg+QT6L;-%r@ub-AvG?j;|HfS(A7Bt{T1-AXwS@cqLVb_~n(`*l&(cF{`Da zBi;wo`;dpC_WbxJ{A$JhG|!|EJ&}zzgLjZUUb8TzV*HMcE4_znPlk@vc&MB70_g zi`v}?MdXd1gtxguJo!PDQA}2EUGgyw?7V!T34I8;8{A(pcv%-OtYltL{s{G?AG+Ca zw$6SCO!@Gx^`vG!5Bc;@i`4d7%4sp?O5JtvA})<6jmvwV4rkTAF26xO8;6J4SIv=h zvFc68bcTbVl$&pA-<``m3`wo#$D5$P(rYO{>!6%!`!T(&7(4aCxEWYkP}TD!_MkUz z)z2-(-g-T`^Puc?`E?QMjzjUC1KEI6i~hLkOytrtjF*qZ@&T(xWIMLAdz-e;Q$@E7 z*GN2{nxtH&J@{DuTDo)}CL~w*+anBE406SrUfp$ao;y+MdJ0D4rDiPk)cS27U9RG6 z`xd_j3(>;wt)0a+a+__=S^sG{JEl?}2`%cHAj&Ms=w} )uK?87<{dpAsLUf zLa (998Xn(bb>)xmFN+4Q$8L3`$%deO9X{y&MVPxcf zVChQ|)w$R%3JK&(pbUEw$&=s%yL3O6OLs{oZ9I=Z=#HZw+i=F^L$skk>rN?hX^SfZ zOcGeCLS?UrN+=rD?y;QzyoP!Csf=VAx14Cx_xz;QZ8RAJZA+f_6l=}u?JKqQCpSAh zRWO@udMx{6%Q%Xktil&FF=S@x`dhqsXO1R8NAi3??0Yj|GbIltU2mI3+l^J^W69Oh zkMVr1Ms5V{#!B&f>f{`y4j%6cDv z;~aHp{nKkY!Cdym;Vf+#f4<) FYU+9S&jy3SJ2OKLH$vs%Rb}0Oxh+iP41#dEz~}i3xi|4FaU|QB z3?4s(esZk&a!156SQIRXavL4ev9{ANuNCV}X7b@lT{m|}vG(ZY6UzUes=IqmBhB*# zU;lr^-fhJ0Mr`b!*qA-1=S<9WPfbmCbyd4uWy>zhvTRvGLI@!tKqQcmBne59kmP4C zo|J2r8{1(ClIQjJ@_k7f%hti%BeQ8sC}{VbNISJzV}kxgtLz(HZ-S9tt{zZO6_3>$ zy#b!8`lfK<>TAifW0dWAN`jbB&D>+j2ipE8y~3i`UYzN(?H36OzJyv*Ghpj}=Dm*m z-tYa#FT*b0*QegCi~8TRpMRJ^t443U9(kY7W(7%fnR}uz>lab>b-gH?JaN&lXP6`* zggGWRrN^=u(rPhycJ-dtp@X)OJN_>Ff&AISP @>cdlgk63TbK2MI4{IGvut#s$iq#N -=_X722L#Z%T# zF|pC(FT$Te$+C(oUZ +-Y Y;~zV{rcE`y5ZWBuN q8QWJ2Eg_@sW;W`eba2{7pUU2_b;QK zC;QRi un^716X DD24KH{|JeDv+3!@jKMr8hr^^e@`G?gsElpLo<6c#zzpm!E%U z^DM1afh`v95Tj#yN~f}O#YL>3GyAw(#*l|LzvaOn5bH#DrsvfdTeHi-QYvN}M6kSf zXdpxD%iALVzH7IV>16kq`(pm@m${X)=w4V(d-cR>2UpgTMyO|rgNHNxwrG}%_qSTn zuPib%aeSw!ToTW442kW*NM4u<71f)_D%2wjwIW*3sSaw2u-i}89vqC^cr5cGd`?}& zyNb(Xle%_ai<*ROAE%Spm8Q35Vma<}-^j-hC&PaU`;gMaba4ov@o`^*fqeNeyO!oj zCqcJZJy;G9_w&B*_0;mVO($U_zikn9cd@6iE3*i*>$fv+%q7v;p*5poW8w54%i`;% z9<2F1SPiHh*h+XU^5v1>9h2I#8`jfs2 Bv5*yy_mm+sZLX0Gh}mvl{YUvoQ3lD z_w=~m8|ChasLSPqFS(IXmRIs0tZosn+txgctp3_9oP7D0G`?KminOQQB*Ld_=g;0U zVzyQpktO!LfAiu+vZ^aY9JT8PKb}+8H`_2k35v_<4J)Ud>NEhzDgA(eFKTqxq5IY8 zs3)zj;nrT;hMTiM6w1bu&{gU_ba>;3X7}ZP)L#a1Qxm?Lre(8Fp6^r*-ZwL$Jgimh zPQNSdpCbkfotZN%45&A}`ihy2$yt9BNWFJVmn^QSgU6YtTX^KXSUptMX*k$^o%+P+ zXR0>;F?am^+-Fw$X}SN%injdDOy7lkr%xmeQ##fO{*jNEL?cs&>LJdtt_PDu^d(eG zV&Tf%{cc&1o|OEc&FV#Ua^dEEFymZ1Gwj{=YqIP)tI0Z<`Ta`^;=*>?|F1HVw?-T~ zwWD=)zsKQcz9)~})IS$bqI+URGQe #0> byvu{D;;J1`64l> z-;Vz*9g&At>!TjJhc6Rl^&N_wt|ziHPX-R|Ui4XAe#7h^M!KZ`;G;45^vt~x{Xds3 z8rb#MbwYW&^;9{P<5MXQg}+c7`+T{JUF><+yl<_{>5gZY5E)Xvu5J ((0rE;!v-ya Tkmbj@4|Wgab*-KmBXxE zSARiadGa$=uWrqjjVdrQ`JOqe)*)5-g~tAR;bOiR`TRO^QO_7PR|uYMJn5wfjA(CK z@$B
*8MsN@$~~kcox=r zTfdqk`? 79Q&5+Ixl}ba(@4 z8|&{t`Vkw4@h%Qc{XC}}7 V!( z07*naRLiA!*CckA)pYE>u$p&vJxQ*8?TeF>?d#D_&*dxkx+AU)&v7;giEHezM>k4~ z!ji#NVY4BQ&zZ(N#sSuPuI+6zi*xSOmrGG5O;lM%--)!WI)cviOKs|DXckm>UgzWMD4#TK&L#$Yx?SbLTLld$xSU-5CFN~NzdW)kMyl8VhZh{w z?60DJW-?Bv8NJzw%nL9=nKu27P(Uf yIqarT>wEM=^xs6L0img6 zy21FY+*Th5#5&JoMcqjIR#@Nq_pEOBBnUpk?eS$ljTy)T0=E~Y*zt^2o!k0k8(*R| zV?l4#fYj|Y8QF@jjxXvIm%eMHBcFKey>+?s_8Oa$<$fuAP} tLziua37nL-&U7 ^ z|43U|v(|R+iJTR&qHa3CW%|b>E3?(uWun~}ILu8bH%E`NL?yP2KIh6%IyooHqp&w) zZyoVk??bOvJ-qOgxfiKPOIf9=fBi6+Ey`ji`*TsBF 3f6%`Sb<3jk=FjVIw0!kpbvrQBqpwy<*sq>mJW#4$k2>2a3$-tk2ZfnJ znM)sEU3PWCZVCAWpBmjrUuh50D7p?6wc?jR2`Uws%7YBPGOZTfDZRmo*9p6UT`tpJ z< %?V*KRo9%2D{IcR?7fJHf~-eVw30^O=;Z~!eXd`{ACR6X^o- *HiP0Z(z}@(S6G|^^Y$OM5~A>>V`)&;P}ME>|*;; zq8hK-it-O-7IvPiyb&kL0z$4g#g?+8cVGYKZh7fhr*eAHhv-h_;>guBlVP`dk)KO* zF&@U}`IM8@Iz#=TElut^(#}TRRnbaYH=2;>SX4}SKD_H?cMTdMVjwf(N^DyWt0xan zu8}59=zp&AeEqDRvg4_q2ddtsA9tbsWHUH$5{!1r_dfQS)7?bFPtr*oC 4gcE@ =w|9#=jFW4QzSEcF z5|T3gt(_0MeXEgO0}UM{mj-+qU%0$Fm0L3`8l?~aTb3)2)x ^;@aiCf#_WI6&(`xN0}$l)=i#@eI*L zJ`4w0vk%sY#cl7`W9?ICj)O3cWijfTKD4cVEQwd5zJ|!svfxvYrSnsxQEv1!#KSJu zP$sr&ucdb(@yQ(7{%Jd)m4&|gYI}US8VZusA$C!{ S=_nT&%(!7Unqi| zM*u<@IabL<`qa(rqm*wws2$OJgH`3AIlv=rK@wfaJ3%FCI>R~DZ&i?3?)IIZr5v>u zr;ViH#qRHVCGBt_Z`A!eDxWq7ts9F@SGe2H;FE4BlUyVNug*e1*1BL*+1XK^Lt0LG ztrX99v%2?(CRp3pj<{(hW$Sdyt;|p~c*(;~w`nx7H{BMgwsH7w`E|3CLr1CN{%pbK zgRa)?5SxpgtoqA;)x7w3w_Zq|gh2MvR4XKtY Rp8oiD814@IBlj}y#0WT3~ zsDDhgKV0a^KZW!5c<}?X!5Gswk+E&Ov #+Hnt?+nDL`-zE& z=UmC_X#4+Dd>WKVQp)EcypJP_U)OD=O1H*nzo0MA$ {2`(!Xq z+$QgE`{~ZJjq==ob9DRmTXS>r{>AmE`w~yz>-@dbD$Y8lPg*_UMDpPCEThf>jjX)U z;&0!y19tlAt7h8#1M3fBL-%gSok1AQn=H-Z #=! zD?Y$k{_xV6N`#u;-HzIw2ZQWbUr@Imf6l0LPov5?*6NBM|4JIyr8Peex8YG5H=FTX z^k?3UWS!jR&?9@5$Qp2IY^hWJdOk>S7Lc?HlML(mKObe=3&&HJt2Z4)Ib$RK?MffV z#I^xouak3E$6Rs!t2*Axt;;2rjW7$!9Mi~8tB{H=p6bpw*ld@e5jnf N2D)M1VcYpEK#%Gi<)hCDbwrtnScdmWkQf{iKUtc)(shj;%XM_~?4&N7Ke^PWm zneiyeuO9HM^@*~^@6Z0OaU$m?QS6;~ 5UxA12SXuM*Wj8Rlp - k-@ zhHZKFh&bB3?Rnp
YG;mo5E#! zR=Ou6-T9PybsNI{Iv>q8ir_H3_w;Ay8(cat{YJeS_n(#B7j@yAn0nZ?Ct>VM*o9jh z! u=VVr%}8) 5YmnpQGW4iiti;&p)S8>PoS^My{OqBO)$qO8VM z;gI>g&(t(-t47m5fYXS(aXp~lxOqO%j~G?X&RF?gB%AuXxIW(bJ@ad0g=4=!UToLT z-bA+QCJLx;bR2ZIYib{SQ8{0@_Ui(NS}!vj<%5A__yMXxS+QF4tYjY$Q=u1pF$jjM zvlzcTIAqT+{Jd$z lFZGZa1zTiO0bm89{6PP?>V0T@N{McXw z(p-5XKGQ{uL6lyScKn}gIy}<~Dp%#$ZxZ=x=d&aK@i&s0rwJ?e-}sYqTyc}+iP{@e zL*?)1-ly(;dF*27eb>7h$;saNn%AQIHZ?PE(&^6M1LiD~hVMQ|+|nBt?#2GJskpK< zVm3W6KU4hF4ERGszTfXAFKqaJk`_e>_}}t;ShF0H`g7L1#r}S`|EOsTK2mQU8GJ%i zdseB6b%@y4^4&Ks)P3jjxoOF46930yg{iLwU6U7Dagh&SnvK@aox>kyrBE#>f`@4# z4QBIBlaKoEt*{J0{dO5{uS;e@&e?aVbafGIeXW+y!#7bam6B5GoxR$hqcv5oFYZqU zVTVm-c{KHf&9tR!&?)n- 5 |U&^!_w* zEAAtW+&47bf5pnhPXxZSJ?`qd*|3-EwXjj3ThJCl&p$&5cHvUw;kJ*`D#b9jcq`#Cwy) zZ+h{p8l!v>CJbGrn%YcZC*M3PE&i6MEX>5?By^I>e=I+W%@;=7R36)@v*Oxo2a1lK zt#KWtpUQkbhlhHGq}NRcZrKOr%|`OGJ1$!5ctDwEc}61EEl@NF=#)YE&s2|B|09k4 z`1)STvU@@7qPd_?FdQk_y1J8(PppS!k@RA*MW C&%dokK4ybM2(?2|{u^0h_r4l3ETA;EA9 B0y4?Y6#jUfEt~pBudAc{jp!b|0#$8$H9$a8PlSF %nb&TWQY&j#{ZUsm4pvMA zMB<}>-PJEH@*mxIeCSbj_wRQN(!j`T%Rm8l+9^1Evb4nO PL8ZIA8%zOjkoLa^d 5%^ji{7WEa1p )i zoAa%277D80cq*-Tj;1P|^v6xkOI_Od^8pW&_tKb_-e|rUJEZJx!!i6xmiqhbq|Q=g zL&HW4BZJ*eHh7O&f5ciX-5uyYOYS;(^N0mQS@P=UQ(S(T!TY?UJgwp+&W?X1&;i+y zFf!6G3XX%PlJ{Rds7Lefk_VIYCPeRNWe8sV+VAO+anX4k_`F6jNTmBv!TdmFWx{z7 zzRR&48X{fyfAN#6W%>uL_J&w2pA9nCQkrQQQOTV)`18nHjk>jOJoA1tG)K9*o*a_> zvnyS-UXjtRah${sv%n(mTlv2GbMUzDhu<$gAdeavkc5i}W1Hu}OKs~?gx01R;> T&NxM&7U*=P$nfs`B#S^=ACTY%td+T`{#i%<7 zxx^5Pttz>!+4WAn@xQLjU$nr&Zw>gc3{{Gk-s5K!PmBic#9}&A6sf8_O4<1IPYRo> z2WNjB_mw CwCCGnWtIX}9iC{>ED_;t2-x6xg0WVd#bX-?H)5qNo%X%4^bw$?_E eeF5M=tQz*|(Inn1wd-sD3Dp**B8KF|4nFC}(p+)kPIqWS=I4T31PwH6SYD z@q^0@HY`)3p{OUBEQ*~`7Jwhcm(ToPmHxj>{UYu1efWjAzu $}obYQ!CRIXg7(B9526^It~A`E8z&d7lXQsxVdc z4zI$|6in5Wz7!!;J^SH*Puy@=7B!#PS5A82+b_wi+ek*`ps>>_!ve^$PX8;-HS &HgC_@_4v(e|sI)>P2dDY;xY|a6sDO!BDMkr3ac5 zFk;#we(_p)C9Az2gskx7j4G`d$d*VHwHJGVlK3!)MtuIGCUv6eljORa=VV@Y)JFLd z9_1a6=S5|zYx_khj&9*{8sMGbwNW~!RUWDGlKd;o%Xr!J0*k#%E=CrZv^SAy2wpl4 zby`>5g~)DC- kv1E={&9<6C>qm6rSj~q NcA zh(`}KbiDs#bk3fGZVUahSJI9?W`3XWFCCt0`<#yx `|EbIrZnrV@5Yc=8E3vsW8zltB+gwH?socqVN<7OR%R+j^zP{MhO*Q+_V&)%%597U} zu7mj`;@I-(oOsfEBQfe(%QwY$aeO)SA~1C6KG3ZuO3HO`%zYPbUL}c1e( Eb3hA z1ytL8M*Uv5o|5k;`HhTuTrSE_t27{AuB|H1gV5Mrb(^Cz=E~i%!&7n$vBIX5q&ydS z5*Gc`dx^uN#O0?gbzep`igG>jW3m5u9xky$OC^0~B+8kzKQsfayZ+?$NSFQB%#eRo zRI qGR;i;ww(X9Rm(dcBUZm3Ib%Pr2 zW|`PrD;YJ|&`+b5&5QKp^NlG}?F+F}-F)L!f1|b8j{GuuTuEed|2`w`J@TY`7}R=a z1N|1+K=!Yk8dVZAcQ}4FTU5Auyd4h8 ;Q9PV2I4ElCNwznEyYN5aOTe3T}FNCg8|d-1M&mgO-8x- zz?eK7nJc44c c5ZT7KebDcD0D z8^OaTx=vN%!M7Xe66?)cclvv6er#g dX;qe_jAwL2Ja27-n_UBfNIuHD9em2_2{NA&TF(yPd9_? z=RerPp6Y{yfN8Z!7(aJ6Ub9@sTME-sE5vW<=qq(Hdh-(MKI&hn>YL?pGb`FOB76yC zS#?<|&t6#PO%j#=ND U8%I~Ka_Kh*zK622IjW5&ET~!)}C}RI7 zm!ZPY>E?>hMwkVi;>+pnw~nZ7CkslwHFH@vwDBf3lVMzM7(5 W`8<2q6X})6;a^ z+*Dnj2P%1Gp+mc
qoAm~8Dgxv z%%?%YJ=AuZ{OUNP&HB3Yv|UqHU$YOcmL_^^7ub6aGxhe+gf_KcG;YvM@n{ IIqH#Eb2FX<;ts@Ht}GgZ0t !T009 YcGKduQBt%!qD 0eMEVeB&`i!>I zt0kN@O{>E5Sf=XuetCRxI<2M{=GFg5^cyV9B5a`1HH%?_YE}gWjlXSUH0gsBjVZ cBq>c=Fe?PzdOqU^i_5{Z$G3H8!b&O1mFm=;K5u=)}?SXn>nR zm!p1Etiv0eV{zpxIi1JYx}$QVf0FK>JT>LI?!@PAwR;MkrJ|thCGmBOHivK`GcrnZ zr)%X% O%gFDhY)0g*H!uiY>{8`K5$5gp^sk;! z1p&GFM|L6Z+(jSg{kjh5_oc9m^(jQ|fBEty2=!)Ac0_@*YQITq<@~v$;^y+(gHC;U z4qIc8aH%x&wQfP06l#k3Np~0PHFkQ%>D$0 O*Og6LL^;3 z-ye|GgJNF>xMry9?f)eRbCzw~x4#-%{1oVNp<}y^|LQDzY17t{?wX|cruqGrLdsG4 z+BOapyf^r(V3QbkzDHnM O(jX;V3mcjxUntOWna!9*uJHcmkHJR z-q@-wI4{l{ly^UI{f#lPAkKXA5F5`BPl~}e$X1bbmTCY^K(fDcY^4s
_8h*y zYqWaJl+ABI62YvSIrZdLc8a#bW~^VKKx^66>+C|cGpU+69$%-NY~ zOY*`Kfm2l;0~6}rGk$xy(8Fuaa-_619G=ZSy9zzD&aSb^+iXS4@S#sB`ns!wFyKK9 zCZ9fGR^xV~C0QZ8Ib~9df;zlmv25=CYH$vtWBJ{e1AF%!y^19Bd7eLR%Z|DoSNwsy z6?!;Hz?WfhD5^9)+r6L<{JAjRN#y81KPzU>bF+w^>>~HT?APX<`icCpm@0!_fhBd_ zZt3f>{A$;}^Ci!fNhof%5{vrnj_Tw3##Kmi3XZOqK`aHL 7kHRx3cj! zFWSc`+{W^jv+4;xZoKh@LMf{&5z?$T;86LnvI&LlSn5o_7r|R)+pY*%(0d*}t`}r( zO9DVB!H2ftimzJ1JldMgYSt6SVPo{j2AgA48X9$}s?_mI8J_kK+PX65Jw;VrS4cT# z>mZ6VLzTW*=Y)`K5!WRo8&Azno43B^6QtAR{JbEGvPM{gW5eXD?>GI6Q<)#}rIP=) zQ3fA1Hix3MNV0NwSS|`d?XISf?_OCjtwgu9({0n_(W1jey7=XvA2{7|R25C$a2PV) zvQ@;Mw+Yfwy?(e!M;9kJ>SsQ({RRWxhCfdUExIu`jcrm;9~$hmu0QVO`_Z@FVt~LD zJD10+DBEvI-7~b;ez6(2aznl|J_%w4(}Gi3dH94}D;#XuNR}+W5U-mpF{$h4W~J46 zF^lb)MWcbQw^HLM=yiwe<5v9*U2{QE@ z>(2q%`N-+Ih?)=ECJc`91Gc@xw=NJC?0Eb-bo97uU{UeQ;#VL0c07%^U6eB;2c DuqWM z<2wYqG+p%BUJ``eL!nx;r(UE@r$&kAP%RAni5KRTWhijGvHd;%W+H}YeP?nSt$UB{ zDbe%Zf8|Zh7q3JL#k%tq?lak?Q}e`49ws$K-nV2S>DoImI3TImS>^x$AOJ~3K~%X8 zd*tmeL3=zO>zE(=BOgu8#w$}v9rE%2XE*%i!~V>9nUt(ei`pp2cJ5L<=-xL;_T*9B zy?(LG**h1vE`KV05)FNQI3zr*mIf&5`q^~9PqvZ8M4_J9c+~4xw$rEiPWNZ9V|G0q zG1`cjj=EBjGYod}x&3CJaDU6}rIL8O6+i5#evEmhZt%J3I%K?NEmXVmfWe;aTe%C& z%jME&ghM?N@8!}c3cY|lbLgVC+ Du<{AGBmBEs)Px-3w z9fpNY*MwszAg9tz5ShD_5Dg}CIHj=7?l+8Ec396LPqlIF;mdBk9q)+@{t$n7#Iv#f z&L&^KAn-eOI-8zXwukfr(Q)+l(9^fW=h#2U_ZLhW4dJKm?>;S17iHLv*)W!T6OIqo z^|jG|j6C&|sbsP4HszEd%D0A=A5)DTl|GeDWNc@wz~ratJF5_HU+b-_hLot`ZmlX( z{(kKDzPj;PpFRisg)q)l9&@7=n~GaO(IBS12q3`OYWlK|x^DZE26r&vVJeFDwyLXr z>7?K*( oNGD4)VPniKz;$ zfoI+PbHfHQGu_*WUgqUA$a98{eO_762_)NI?|5nD`H6`Ai-*HsFLv3m%xP&Id>nj} z5w8QTsNF($Qqn8xQxCr@I~N3e_sZ5|a>4iiJ()VI)J`t(YIcj9wf2NDtGo=5m4ngM zvK pcaGqL*PFJ-N?8OTN~@^w!eox+B~ zz@v!RyPda=THB36p~&y3+ucDMqk5<%<=*mW&U5ji`aVOw6w!Tm<&U=S(fA#C>J5qG zd{B`nzw>kvq@xN`&1rSRY52-hvW)& NT|VzdY73*Yg(hzd3E6ronRdui=P!l_KB&<+gK_Z4zg1bxvWjS(m9{ z+RaXb2vfZ&Q%&e|(()1N-5|p$pX~>27}R{E<^N;q4xiJ=wk^Te{~t4-Ct_k^Cc5W! zPj|n5-LLPhd*8iP*X1ggEnBu_%LoY}goF@~KthrvBuPS&zxi-duIDdR72$#;&pG?- zz4qE`?P^)oC%zLWX*85(jjqu&wG^l4H7-d;5nKoRT>u#_G@X_d0YXCZ#g=zRDm zyY9um;db`^q~DhB;wZUrZ@J^;YV7HAP-Rm8EiB|?5ZG`^>x&-_Szgx0jUHb%wJD^_ z_~g`jgTaq#9*aynxK9z{WRSotiv02atS4vvg8_qU>B#?@ap5e B4p*nlYxhD3(V4^Pb@- zndL~!h}-PK 9a(eZ7UScCY{4LZ<#ipS=tgh=j$l8w>oi)cX z{A0daJTba=*mNJz8$a>(872kAL=y4U?v1203<|pc7#i4~_EH`Pv*n7X*Z$h?VP+Ei zPXkc-h|;;+6_&2k7MGIgI6YY}YKBQKv@o8EkH0$Kaym9~@89#W?rI;e-a29NF!-;A zq}#xPNk1+K9FRndek^6 a*%#jGTrET|b=HFBYa z?1#^=Pw?^BqdAV(pOBw9+TzEm|59{JCThxVw9dZaZ?z;@p5ZRy()h~K{hm0O5$&DV z`EhvlCaI!X=mmbjf%wbTi6_0ZUQ>Iu#@i^Q{JAW>)(=$jIsJr_I=HGF_pDdVmb%TR zM%;Y*KF#Msy_+^>tp}#{MF5Mo>iv|Y-erhu!*H`_E?r;0Z&VEOZ~v=*b;*AmHGVoF z{mSD(ab9F|?yCoEYv*;k>*DfF)J(WU4E9_-!Z&%@shU$;ee=v=@19sS%hpM`&CLRB z^g*x50K=a$cxi5p8ojHcaiATB!S!;M92I&=l6gwgA=NNgF{*X}ulc3^i++QuozBsB zp>UZFU*>hweoB-C&T=h%*_`8ycRt?3Y4UGWEPPT}W*T-_ul tP&ITGh6XUN *(aY4FL{hVXU^D$6J#;nE zy|AoXbn4<`!6292`FgK rH4s)6!#mSts~gaczBvumVVj Z<6i5*IrO#H*Nkcwah!e z5r*fD40p}Wdx7$5eni|6?ISaZcbl)#Z_I*RQ6+C=f1``HRJFYDM<2fq7CLc?x9Zf1 z`AdAQuCSE&QcKr3>c_6X5Jt)3s~@X4Gg1Ywhv8j1J>>T@_23T^chg#t({_^A%lzU| zydC%Vyb8HlqIzY|bCdCwSKaqJFM2|GODAD3tk(*cU0hXGF5|`)E7+yRKZg;J>Q`@= z@ilg(_svI-O+ 1ot=tb?Os?q`L`x~`2n)Ta2a@^ z;o@$Ux11hX{UYs?c*T1=I>I36?`-`8s^rUc)`xuaLar_Eg&Fq2SAQEhDf!k+(R{|_ z!Id|8H1b~`IxdqJa>(rYk;`t ?jz zrHWGnF%-KN?R>RdHy+brFwrhDcD$7ht q}|UF4My9 zJ=(L|XKUuv(L)CJln-C8|0(RUocyGt5Hk}wH96j3{T-?e6-1q#JWK0Tm`;91RNK_@ zD-0LdSGBL#FtDDPy_Te;=_=?`#a|=bwv`R(J@j4buOlncZCS)3?gEc#bKik? L zp)8wbfu9J9oQ EJRUxgtsOBP z#fp24-%ez-3B9=x#j~CM$1vD`UJU1|k@?lMejX+~SoyE~y9QNw&SXAN6lApd`*1Lt zv2)8jw_AIp@c)UaFJLij6gw*I{(`9`SNqW6`K7j%iq~nqdxhas2<5l&Fd(ykv1Gm7 z2dTG_tW+l+W8d!ONVNA68a21Lj%EgK8WN7)WwUjQU}vNmcJ`u5mN7OOZ#N2q*r$PD zFVMSaM|G{tdyzl+68fjtFI-5G4TDjeWBK MBscYq+7zQ(qqBl`$30eeq{>vA5{c X*ZGr>*3qjFUPxqj7b}0@4YRKSndfaT)3Vsk7Md9MF{lVb>gD0OAQ$574 zw#}|6o=Zj&t-0r~o1^{3h4e1zXU!)RMfkWZ&btm$Z{2))GnFP3CTpH$^7QMOm%A-l zDpn33C-Mco_*l=>bvVGW K aM`G6|ksGpb^E!0Sj>MO^! zqmhE=USIjic&;se&2_)3DyA#mb T}_T?5EPesrex!x)IqSDZGK%7h%Fi~xJvQpd z4_ zE6HQfx;o4r@=A@by^H2#-V(J&CC{UcNIy7g%sQj;tok;2?hmOxsbYD*)g*SKytI*x z6{vnXF}&*$CRDas9ro=fS&@b*tIu06i1rJK`tR~aTcChry;N4+Xo+)0DKh)64cKo~ zC-N-!dD*>#S> 7dMByKYFREZns%PmZ