From 32bc0aba9a5efb9f5de76d6905f97d6cfabc109f Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Fri, 20 Feb 2026 16:39:50 -0500 Subject: [PATCH 01/13] feat: redesign OpenTDF.io homepage and update documentation styling Redesigned the OpenTDF.io homepage with new messaging and contemporary design, including new landing page components (Hero, ProblemSolution, DeveloperFirst, Standards, Community, FinalCTA). Updated documentation CSS to reflect the new design. Adds new favicon and OpenTDF icon, and includes Java SDK encrypt/decrypt collection code samples. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- .../java/decrypt-collection-example.mdx | 37 ++ .../java/encrypt-collection-example.mdx | 42 +++ docusaurus.config.ts | 95 +++-- src/components/landing/Community.module.css | 110 ++++++ src/components/landing/Community.tsx | 76 ++++ .../landing/DeveloperFirst.module.css | 213 +++++++++++ src/components/landing/DeveloperFirst.tsx | 141 ++++++++ src/components/landing/FinalCTA.module.css | 112 ++++++ src/components/landing/FinalCTA.tsx | 33 ++ src/components/landing/Hero.module.css | 212 +++++++++++ src/components/landing/Hero.tsx | 114 ++++++ .../landing/ProblemSolution.module.css | 144 ++++++++ src/components/landing/ProblemSolution.tsx | 75 ++++ src/components/landing/Standards.module.css | 181 ++++++++++ src/components/landing/Standards.tsx | 99 +++++ src/components/landing/index.ts | 6 + src/css/custom.css | 337 ++++++++++++------ src/css/landing.css | 82 +++++ src/pages/index.tsx | 105 +----- static/img/favicon.svg | 5 + static/img/filecontents.svg | 13 - static/img/opentdf-icon.svg | 4 + 22 files changed, 1968 insertions(+), 268 deletions(-) create mode 100644 code_samples/java/decrypt-collection-example.mdx create mode 100644 code_samples/java/encrypt-collection-example.mdx create mode 100644 src/components/landing/Community.module.css create mode 100644 src/components/landing/Community.tsx create mode 100644 src/components/landing/DeveloperFirst.module.css create mode 100644 src/components/landing/DeveloperFirst.tsx create mode 100644 src/components/landing/FinalCTA.module.css create mode 100644 src/components/landing/FinalCTA.tsx create mode 100644 src/components/landing/Hero.module.css create mode 100644 src/components/landing/Hero.tsx create mode 100644 src/components/landing/ProblemSolution.module.css create mode 100644 src/components/landing/ProblemSolution.tsx create mode 100644 src/components/landing/Standards.module.css create mode 100644 src/components/landing/Standards.tsx create mode 100644 src/components/landing/index.ts create mode 100644 src/css/landing.css create mode 100644 static/img/favicon.svg delete mode 100644 static/img/filecontents.svg create mode 100644 static/img/opentdf-icon.svg diff --git a/code_samples/java/decrypt-collection-example.mdx b/code_samples/java/decrypt-collection-example.mdx new file mode 100644 index 00000000..05731c6f --- /dev/null +++ b/code_samples/java/decrypt-collection-example.mdx @@ -0,0 +1,37 @@ +```java +package io.opentdf.platform; + +import io.opentdf.platform.sdk.Config; +import io.opentdf.platform.sdk.SDK; +import io.opentdf.platform.sdk.SDKBuilder; + +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +public class DecryptCollectionExample { + public static void main(String[] args) throws IOException { + String clientId = "opentdf-sdk"; + String clientSecret = "secret"; + String platformEndpoint = "localhost:8080"; + + SDKBuilder builder = new SDKBuilder(); + SDK sdk = builder.platformEndpoint(platformEndpoint) + .clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true) + .build(); + + var kasInfo = new Config.KASInfo(); + kasInfo.URL = "http://localhost:8080/kas"; + + + // Convert String to InputStream + for (int i = 0; i < 50; i++) { + FileInputStream fis = new FileInputStream(String.format("out/my.%d_ciphertext", i)); + sdk.readNanoTDF(ByteBuffer.wrap(fis.readAllBytes()), System.out, Config.newNanoTDFReaderConfig()); + fis.close(); + } + + } +} + +``` \ No newline at end of file diff --git a/code_samples/java/encrypt-collection-example.mdx b/code_samples/java/encrypt-collection-example.mdx new file mode 100644 index 00000000..c65e0578 --- /dev/null +++ b/code_samples/java/encrypt-collection-example.mdx @@ -0,0 +1,42 @@ +```java +package io.opentdf.platform; + +import io.opentdf.platform.sdk.Config; +import io.opentdf.platform.sdk.SDK; +import io.opentdf.platform.sdk.SDKBuilder; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; + +public class EncryptCollectionExample { + public static void main(String[] args) throws IOException { + String clientId = "opentdf-sdk"; + String clientSecret = "secret"; + String platformEndpoint = "localhost:8080"; + + SDKBuilder builder = new SDKBuilder(); + SDK sdk = builder.platformEndpoint(platformEndpoint) + .clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true) + .build(); + + var kasInfo = new Config.KASInfo(); + kasInfo.URL = "http://localhost:8080/kas"; + + var tdfConfig = Config.newNanoTDFConfig( + Config.withNanoKasInformation(kasInfo), + Config.witDataAttributes("https://example.com/attr/attr1/value/value1"), + Config.withCollection() + ); + + String str = "Hello, World!"; + + for (int i = 0; i < 50; i++) { + FileOutputStream fos = new FileOutputStream(String.format("out/my.%d_ciphertext", i)); + sdk.createNanoTDF(ByteBuffer.wrap(str.getBytes(StandardCharsets.UTF_8)), fos, tdfConfig); + } + } +} + +``` \ No newline at end of file diff --git a/docusaurus.config.ts b/docusaurus.config.ts index cb8d5e40..a072da01 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -26,7 +26,7 @@ const javaSdkVersion = "0.11.1"; const config: Config = { title: "OpenTDF", tagline: "Enabling secure data sharing through open, data-centric security", - favicon: "img/OpenTDF-Logo.png", + favicon: "img/favicon.svg", // Set the production url of your site here url: "https://docs.opentdf.io", @@ -92,7 +92,7 @@ const config: Config = { }, blog: false, theme: { - customCss: "./src/css/custom.css", + customCss: ["./src/css/custom.css", "./src/css/landing.css"], }, }, ], @@ -110,7 +110,7 @@ const config: Config = { title: "OpenTDF", logo: { alt: "OpenTDF - Protect the Data, Build the Future", - src: "img/OpenTDF-Logo.png", + src: "img/opentdf-icon.svg", width: 32, height: 32, }, @@ -122,85 +122,72 @@ const config: Config = { label: "Docs", }, { - href: "https://github.com/opentdf", - label: "GitHub", - position: "right", + to: "/quickstart", + position: "left", + label: "Quickstart", }, { - type: "search", + to: "/sdks", + position: "left", + label: "SDKs", + }, + { + to: "/spec", + position: "left", + label: "Specification", + }, + { + href: "https://github.com/orgs/opentdf/discussions", + position: "left", + label: "Community", + }, + { + href: "https://github.com/opentdf", + label: "GitHub", position: "right", }, ], }, footer: { style: "dark", - logo: { - alt: "OpenTDF Logo", - src: "img/opentdf-logo-horizontal.png", - href: "https://opentdf.io", - }, links: [ { - title: "Sponsors", + title: "Project", items: [ - { - label: "Virtru", - href: "https://virtru.com", - }, + { label: "About", to: "/introduction" }, + { label: "Architecture", to: "/architecture" }, + { label: "Specification", to: "/spec" }, + { label: "License", href: "https://github.com/opentdf/platform/blob/main/LICENSE" }, ], }, { - title: "Support", + title: "Developers", items: [ - { - label: "Getting Started", - to: "/getting-started/configuration", - }, - { - label: "Documentation", - to: "/introduction", - }, - { - label: "GitHub Discussions", - href: "https://github.com/orgs/opentdf/discussions", - }, + { label: "Quickstart", to: "/quickstart" }, + { label: "SDKs", to: "/sdks" }, + { label: "Platform", href: "https://github.com/opentdf/platform" }, + { label: "CLI Reference", href: "https://github.com/opentdf/otdfctl" }, ], }, { - title: "More", + title: "Community", items: [ - { - label: "Showcase", - href: "https://github.com/orgs/opentdf/discussions/categories/show-and-tell", - }, - { - label: "Roadmap", - href: "https://opentdf.io/appendix/matrix", - }, + { label: "GitHub", href: "https://github.com/opentdf" }, + { label: "Discussions", href: "https://github.com/orgs/opentdf/discussions" }, + { label: "Contributing", href: "https://github.com/opentdf/platform/blob/main/CONTRIBUTING.md" }, + { label: "Code of Conduct", href: "https://github.com/opentdf/platform/blob/main/CODE_OF_CONDUCT.md" }, ], }, { - title: "Legal", + title: "Sponsor", items: [ { - label: "Privacy Policy", - to: "/privacy-policy", - }, - { - label: "Cookie Policy", - to: "/cookie-policy", - }, - { - label: "Terms of Service", - to: "/terms-of-service", + html: ``, }, ], }, ], - copyright: ` - Copyright © ${new Date().getFullYear()} OpenTDF - - `, + copyright: `Copyright © ${new Date().getFullYear()} OpenTDF`, }, prism: { theme: prismThemes.vsLight, diff --git a/src/components/landing/Community.module.css b/src/components/landing/Community.module.css new file mode 100644 index 00000000..5b042b71 --- /dev/null +++ b/src/components/landing/Community.module.css @@ -0,0 +1,110 @@ +.section { + position: relative; + padding: 6rem 0; + color: var(--otdf-text-primary); +} + +.inner { + max-width: 80rem; + margin: 0 auto; + padding: 0 1rem; +} + +.header { + max-width: 48rem; + margin: 0 auto 2.5rem; + text-align: center; +} + +.heading { + font-size: 1.875rem; + font-weight: 700; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1.5rem; +} + +.body { + font-size: 1.125rem; + color: #9ca3af; + line-height: 1.7; + margin: 0; +} + +/* Cards */ +.cards { + display: grid; + grid-template-columns: 1fr; + gap: 1.25rem; + max-width: 48rem; + margin: 0 auto; +} + +.card { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 1.5rem; + border-radius: 0.75rem; + border: 1px solid rgba(255, 255, 255, 0.05); + background: #161922; + text-decoration: none; + transition: border-color 0.2s ease, color 0.2s ease; + color: var(--otdf-text-primary); +} + +.card:hover { + border-color: rgba(34, 211, 238, 0.2); + text-decoration: none; +} + +.card:hover .cardIcon { + color: #22d3ee; +} + +.card:hover .cardTitle { + color: #22d3ee; +} + +.cardIcon { + width: 2rem; + height: 2rem; + color: #9ca3af; + transition: color 0.2s ease; +} + +.cardTitle { + margin-top: 0.75rem; + font-weight: 600; + font-size: 1rem; + color: var(--otdf-text-primary); + transition: color 0.2s ease; +} + +.cardDesc { + margin-top: 0.25rem; + font-size: 0.875rem; + color: #6b7280; +} + +/* Responsive */ +@media (min-width: 640px) { + .cards { + grid-template-columns: repeat(3, 1fr); + } + + .inner { + padding: 0 1.5rem; + } + + .heading { + font-size: 2.25rem; + } +} + +@media (min-width: 1024px) { + .inner { + padding: 0 2rem; + } +} diff --git a/src/components/landing/Community.tsx b/src/components/landing/Community.tsx new file mode 100644 index 00000000..b40894d4 --- /dev/null +++ b/src/components/landing/Community.tsx @@ -0,0 +1,76 @@ +import React from "react"; +import styles from "./Community.module.css"; + +const GitHubIcon = () => ( + +); + +const DiscussionsIcon = () => ( + +); + +const ContributeIcon = () => ( + +); + +const links = [ + { + href: "https://github.com/opentdf", + external: true, + Icon: GitHubIcon, + title: "GitHub", + description: "Browse the source", + }, + { + href: "https://github.com/opentdf/platform/discussions", + external: true, + Icon: DiscussionsIcon, + title: "Discussions", + description: "Ask questions, share ideas", + }, + { + href: "https://github.com/opentdf/platform/blob/main/CONTRIBUTING.md", + external: true, + Icon: ContributeIcon, + title: "Contribute", + description: "Help build OpenTDF", + }, +]; + +export default function Community() { + return ( +
+
+
+

Join the Movement

+

+ Open source, open community. Shape the future of data-centric security with developers, + security professionals, and organizations from around the world. Contribute code, share + ideas, and help build the next generation of data protection. +

+
+ +
+ {links.map(({ href, external, Icon, title, description }) => ( + + +
{title}
+
{description}
+
+ ))} +
+
+
+ ); +} diff --git a/src/components/landing/DeveloperFirst.module.css b/src/components/landing/DeveloperFirst.module.css new file mode 100644 index 00000000..641f362c --- /dev/null +++ b/src/components/landing/DeveloperFirst.module.css @@ -0,0 +1,213 @@ +.section { + position: relative; + padding: 6rem 0; + color: var(--otdf-text-primary); +} + +.inner { + width: 100%; + max-width: 80rem; + margin: 0 auto; + padding: 0 1rem; +} + +.header { + max-width: 48rem; + margin: 0 auto 3.5rem; + text-align: center; +} + +.heading { + font-size: 1.875rem; + font-weight: 700; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1.5rem; +} + +.subheading { + font-size: 1.125rem; + color: #9ca3af; + line-height: 1.7; + margin: 0; +} + +/* Cards grid */ +.cards { + display: grid; + grid-template-columns: 1fr; + gap: 1.25rem; +} + +.card { + min-width: 0; + border-radius: 0.75rem; + background: #161922; + padding: 1.25rem; + display: flex; + flex-direction: column; +} + +.cardHeader { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 1rem; +} + +.cardLeft { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.sdkIcon { + width: 2.5rem; + height: 2.5rem; + border-radius: 0.5rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.8125rem; + font-weight: 700; + flex-shrink: 0; +} + +.sdkName { + display: block; + font-weight: 600; + color: var(--otdf-text-primary); + text-decoration: none; + font-size: 0.9375rem; + transition: color 0.2s ease; +} + +.sdkName:hover { + color: #22d3ee; + text-decoration: none; +} + +.sdkLang { + font-size: 0.75rem; + color: #6b7280; + margin-top: 0.125rem; +} + +.badge { + flex-shrink: 0; + font-size: 0.6875rem; + padding: 0.125rem 0.5rem; + border-radius: 9999px; + border: 1px solid rgba(34, 211, 238, 0.3); + color: #22d3ee; + background: rgba(34, 211, 238, 0.1); + font-weight: 500; +} + +/* Install row */ +.installRow { + display: flex; + align-items: center; + gap: 0.5rem; + margin-top: auto; +} + +.installCmd { + font-family: "JetBrains Mono", "Fira Code", monospace; + font-size: 0.75rem; + color: #9ca3af; + background: #0a0c10; + border-radius: 0.5rem; + padding: 0.5rem 0.75rem; + overflow-x: auto; + flex: 1; + min-width: 0; + white-space: nowrap; +} + +.copyBtn { + flex-shrink: 0; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 0.5rem; + background: #0a0c10; + border: none; + color: #6b7280; + cursor: pointer; + transition: color 0.2s ease; +} + +.copyBtn:hover { + color: #22d3ee; +} + +/* CTAs */ +.ctas { + margin-top: 2.5rem; + display: flex; + justify-content: center; + gap: 1rem; + flex-wrap: wrap; +} + +.btn { + display: inline-flex; + align-items: center; + padding: 0.625rem 1.25rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 0.9375rem; + text-decoration: none; + transition: all 0.2s ease; +} + +.btnPrimary { + background: #22d3ee; + color: #0a0c10; +} + +.btnPrimary:hover { + background: #67e8f9; + color: #0a0c10; + text-decoration: none; +} + +.btnSecondary { + background: transparent; + color: var(--otdf-text-primary); + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.btnSecondary:hover { + border-color: #22d3ee; + color: #22d3ee; + text-decoration: none; +} + +/* Responsive */ +@media (min-width: 640px) { + .cards { + grid-template-columns: repeat(2, 1fr); + } + + .inner { + padding: 0 1.5rem; + } + + .heading { + font-size: 2.25rem; + } +} + +@media (min-width: 1024px) { + .cards { + grid-template-columns: repeat(4, 1fr); + } + + .inner { + padding: 0 2rem; + } +} diff --git a/src/components/landing/DeveloperFirst.tsx b/src/components/landing/DeveloperFirst.tsx new file mode 100644 index 00000000..69fbb7d5 --- /dev/null +++ b/src/components/landing/DeveloperFirst.tsx @@ -0,0 +1,141 @@ +import React, { useState } from "react"; +import styles from "./DeveloperFirst.module.css"; + +const sdks = [ + { + name: "Web SDK", + lang: "TypeScript / JS", + install: "npm install @opentdf/sdk", + colorClass: "sdk-js", + icon: "TS", + href: "/sdks", + recommended: true, + }, + { + name: "Platform SDK", + lang: "Go", + install: "go get github.com/opentdf/platform/sdk", + colorClass: "sdk-go", + icon: "Go", + href: "/sdks", + recommended: false, + }, + { + name: "Java SDK", + lang: "Java", + install: "implementation 'io.opentdf:sdk:latest'", + colorClass: "sdk-java", + icon: "Jv", + href: "/sdks", + recommended: false, + }, + { + name: "CLI", + lang: "otdfctl", + install: "brew install opentdf/tap/otdfctl", + colorClass: "sdk-cli", + icon: ">_", + href: "/sdks", + recommended: false, + }, +]; + +const CopyIcon = () => ( + +); + +const CheckIcon = () => ( + +); + +export default function DeveloperFirst() { + const [copied, setCopied] = useState(null); + + async function handleCopy(text: string, key: string) { + try { + await navigator.clipboard.writeText(text); + } catch { + // Fallback for older browsers + const ta = document.createElement("textarea"); + ta.value = text; + ta.style.position = "fixed"; + ta.style.opacity = "0"; + document.body.appendChild(ta); + ta.select(); + document.execCommand("copy"); + document.body.removeChild(ta); + } + setCopied(key); + setTimeout(() => setCopied(null), 2000); + } + + return ( +
+
+
+

Built for Developers

+

+ Pick your language. Native SDKs for TypeScript, Go, and Java — plus a CLI for scripting + and automation. Everything you need to get building. +

+
+ +
+ {sdks.map((sdk) => ( +
+
+
+
+ {sdk.icon} +
+
+ + {sdk.name} + +
{sdk.lang}
+
+
+ {sdk.recommended && ( + Start here + )} +
+ +
+
+ {sdk.install} +
+ +
+
+ ))} +
+ + +
+
+ ); +} diff --git a/src/components/landing/FinalCTA.module.css b/src/components/landing/FinalCTA.module.css new file mode 100644 index 00000000..81bd6744 --- /dev/null +++ b/src/components/landing/FinalCTA.module.css @@ -0,0 +1,112 @@ +.section { + position: relative; + padding: 6rem 0; + overflow: hidden; + color: var(--otdf-text-primary); +} + +.glow { + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + width: 37.5rem; + height: 37.5rem; + background: rgba(34, 211, 238, 0.05); + border-radius: 50%; + filter: blur(4rem); + pointer-events: none; +} + +.inner { + position: relative; + max-width: 48rem; + margin: 0 auto; + padding: 0 1rem; + text-align: center; +} + +.heading { + font-size: 1.875rem; + font-weight: 700; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1rem; +} + +.body { + font-size: 1.125rem; + color: #9ca3af; + margin: 0; +} + +.ctas { + margin-top: 2.5rem; + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 1rem; +} + +.btn { + display: inline-flex; + align-items: center; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 1rem; + text-decoration: none; + transition: all 0.2s ease; +} + +.btnPrimary { + background: #22d3ee; + color: #0a0c10; +} + +.btnPrimary:hover { + background: #67e8f9; + color: #0a0c10; + text-decoration: none; +} + +.btnSecondary { + background: transparent; + color: var(--otdf-text-primary); + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.btnSecondary:hover { + border-color: #22d3ee; + color: #22d3ee; + text-decoration: none; +} + +.btnGhost { + background: transparent; + color: #6b7280; + border: 1px solid rgba(255, 255, 255, 0.06); +} + +.btnGhost:hover { + color: var(--otdf-text-primary); + border-color: rgba(255, 255, 255, 0.2); + text-decoration: none; +} + +/* Responsive */ +@media (min-width: 640px) { + .inner { + padding: 0 1.5rem; + } + + .heading { + font-size: 2.25rem; + } +} + +@media (min-width: 1024px) { + .inner { + padding: 0 2rem; + } +} diff --git a/src/components/landing/FinalCTA.tsx b/src/components/landing/FinalCTA.tsx new file mode 100644 index 00000000..f078f9c5 --- /dev/null +++ b/src/components/landing/FinalCTA.tsx @@ -0,0 +1,33 @@ +import React from "react"; +import styles from "./FinalCTA.module.css"; + +export default function FinalCTA() { + return ( +
+ {/* Centered glow blob */} +
+ ); +} diff --git a/src/components/landing/Hero.module.css b/src/components/landing/Hero.module.css new file mode 100644 index 00000000..7e2e7665 --- /dev/null +++ b/src/components/landing/Hero.module.css @@ -0,0 +1,212 @@ +.section { + position: relative; + display: flex; + align-items: center; + overflow: hidden; + padding: 6rem 0 6rem; + min-height: 100vh; + color: var(--otdf-text-primary); +} + +.inner { + position: relative; + width: 100%; + max-width: 80rem; + margin: 0 auto; + padding: 0 1rem; +} + +.grid { + display: grid; + grid-template-columns: 1fr; + gap: 2.5rem; + align-items: center; +} + +/* Badge */ +.badge { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.25rem 0.75rem; + margin-bottom: 1.5rem; + border-radius: 9999px; + border: 1px solid rgba(34, 211, 238, 0.2); + background: rgba(34, 211, 238, 0.05); + color: #22d3ee; + font-size: 0.875rem; +} + +.badgeDot { + display: inline-block; + width: 0.5rem; + height: 0.5rem; + border-radius: 50%; + background: #22d3ee; + flex-shrink: 0; +} + +/* Heading */ +.heading { + font-size: 2.5rem; + font-weight: 800; + line-height: 1.1; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1.5rem; +} + +/* Body */ +.bodyPrimary { + margin-top: 1.5rem; + font-size: 1.125rem; + color: #9ca3af; + line-height: 1.7; + max-width: 36rem; +} + +.bodySecondary { + margin-top: 1.5rem; + font-size: 1rem; + color: #6b7280; + line-height: 1.7; + max-width: 36rem; +} + +/* CTAs */ +.ctas { + margin-top: 2rem; + display: flex; + flex-wrap: wrap; + gap: 1rem; +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 1rem; + text-decoration: none; + transition: all 0.2s ease; +} + +.btnPrimary { + background: #22d3ee; + color: #0a0c10; +} + +.btnPrimary:hover { + background: #67e8f9; + color: #0a0c10; + text-decoration: none; +} + +.btnSecondary { + background: transparent; + color: var(--otdf-text-primary); + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.btnSecondary:hover { + border-color: #22d3ee; + color: #22d3ee; + text-decoration: none; +} + +/* Code window */ +.codeWrap { + position: relative; +} + +.codeWindow { + position: relative; + border-radius: 0.75rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: #0f1117; + overflow: hidden; +} + +.windowChrome { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.625rem 1rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.dot { + width: 0.625rem; + height: 0.625rem; + border-radius: 50%; + flex-shrink: 0; +} + +.dotRed { background: rgba(239, 68, 68, 0.6); } +.dotYellow { background: rgba(234, 179, 8, 0.6); } +.dotGreen { background: rgba(34, 197, 94, 0.6); } + +.filename { + margin-left: 0.75rem; + font-size: 0.75rem; + font-family: monospace; + color: #6b7280; +} + +.code { + padding: 1rem 1.25rem; + font-family: "JetBrains Mono", "Fira Code", monospace; + font-size: 0.8125rem; + line-height: 1.7; + overflow-x: auto; + white-space: nowrap; +} + +.mt { + margin-top: 0.75rem; +} + +.indent { + padding-left: 1rem; + display: block; +} + +/* Syntax colors */ +.cPurple { color: #c084fc; } +.cYellow { color: #fde047; } +.cCyan { color: #67e8f9; } +.cBlue { color: #93c5fd; } +.cGreen { color: #86efac; } +.cGray { color: #6b7280; } + +/* Responsive */ +@media (min-width: 1024px) { + .inner { + padding: 0 2rem; + } + + .grid { + grid-template-columns: 1fr 1fr; + gap: 4rem; + } + + .heading { + font-size: 3.75rem; + } + + .section { + padding-top: 6rem; + } +} + +@media (min-width: 640px) { + .heading { + font-size: 3rem; + } + + .inner { + padding: 0 1.5rem; + } +} diff --git a/src/components/landing/Hero.tsx b/src/components/landing/Hero.tsx new file mode 100644 index 00000000..3cd00798 --- /dev/null +++ b/src/components/landing/Hero.tsx @@ -0,0 +1,114 @@ +import React from "react"; +import styles from "./Hero.module.css"; + +export default function Hero() { + return ( +
+
+ ); +} diff --git a/src/components/landing/ProblemSolution.module.css b/src/components/landing/ProblemSolution.module.css new file mode 100644 index 00000000..244fed80 --- /dev/null +++ b/src/components/landing/ProblemSolution.module.css @@ -0,0 +1,144 @@ +.section { + position: relative; + padding: 6rem 0; + color: var(--otdf-text-primary); +} + +.inner { + max-width: 80rem; + margin: 0 auto; + padding: 0 1rem; +} + +.header { + max-width: 48rem; + margin: 0 auto 3rem; + text-align: center; +} + +.heading { + font-size: 1.875rem; + font-weight: 700; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1.5rem; +} + +.bodyPrimary { + font-size: 1.125rem; + color: #9ca3af; + line-height: 1.7; + margin: 0 0 1rem; +} + +.bodySecondary { + font-size: 1rem; + color: #6b7280; + margin: 0; +} + +/* Cards */ +.cards { + display: grid; + grid-template-columns: 1fr; + gap: 1.5rem; + max-width: 56rem; + margin: 0 auto; +} + +.card { + border-radius: 0.75rem; + border: 1px solid rgba(255, 255, 255, 0.05); + background: #161922; + padding: 1.5rem; + transition: border-color 0.2s ease; +} + +.card:hover { + border-color: rgba(34, 211, 238, 0.2); +} + +.iconWrap { + width: 2.5rem; + height: 2.5rem; + border-radius: 0.5rem; + background: rgba(34, 211, 238, 0.1); + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1rem; +} + +.cardIcon { + width: 1.25rem; + height: 1.25rem; + color: #22d3ee; +} + +.cardTitle { + font-size: 1.125rem; + font-weight: 600; + color: var(--otdf-text-primary); + margin: 0 0 0.5rem; +} + +.cardBody { + font-size: 0.875rem; + color: #9ca3af; + line-height: 1.6; + margin: 0; +} + +/* Tagline + CTA */ +.tagline { + margin-top: 2.5rem; + text-align: center; + font-size: 0.875rem; + color: #6b7280; +} + +.cta { + margin-top: 2rem; + display: flex; + justify-content: center; +} + +.btn { + display: inline-flex; + align-items: center; + padding: 0.625rem 1.25rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 0.9375rem; + text-decoration: none; + color: var(--otdf-text-primary); + border: 1px solid rgba(255, 255, 255, 0.15); + transition: all 0.2s ease; +} + +.btn:hover { + border-color: #22d3ee; + color: #22d3ee; + text-decoration: none; +} + +/* Responsive */ +@media (min-width: 768px) { + .cards { + grid-template-columns: repeat(3, 1fr); + } + + .heading { + font-size: 2.25rem; + } + + .inner { + padding: 0 1.5rem; + } +} + +@media (min-width: 1024px) { + .inner { + padding: 0 2rem; + } +} diff --git a/src/components/landing/ProblemSolution.tsx b/src/components/landing/ProblemSolution.tsx new file mode 100644 index 00000000..14883fee --- /dev/null +++ b/src/components/landing/ProblemSolution.tsx @@ -0,0 +1,75 @@ +import React from "react"; +import styles from "./ProblemSolution.module.css"; + +const cards = [ + { + title: "Revoke After Sharing", + body: "Revoke access after sharing — even after data has left your environment.", + icon: ( + + ), + }, + { + title: "Zero-Trust Enforcement", + body: "Enforce controls in zero-trust environments — no VPN, no network dependency.", + icon: ( + + ), + }, + { + title: "Complete Audit Trail", + body: "Maintain a complete audit trail — know who accessed what, when, and where.", + icon: ( + + ), + }, +]; + +export default function ProblemSolution() { + return ( +
+
+
+

+ Traditional Security Fails When Data Leaves the Perimeter +

+

+ Firewalls, VPNs, and network policies protect the boundary — not the data. + The moment a file is shared, downloaded, or moved to a new environment, + those controls vanish. Access decisions remain at the perimeter, while the + data moves on without them. +

+

+ OpenTDF inverts this model. Policies travel with the data itself, so you can: +

+
+ +
+ {cards.map((card) => ( +
+
{card.icon}
+

{card.title}

+

{card.body}

+
+ ))} +
+ +

+ This is data-centric security: protection that's embedded, not bolted on. +

+ + +
+
+ ); +} diff --git a/src/components/landing/Standards.module.css b/src/components/landing/Standards.module.css new file mode 100644 index 00000000..2402afdb --- /dev/null +++ b/src/components/landing/Standards.module.css @@ -0,0 +1,181 @@ +.section { + position: relative; + padding: 6rem 0; + color: var(--otdf-text-primary); +} + +.inner { + max-width: 80rem; + margin: 0 auto; + padding: 0 1rem; +} + +.grid { + display: grid; + grid-template-columns: 1fr; + gap: 3rem; + align-items: center; +} + +/* Diagram */ +.diagramOrder { + order: 2; +} + +.contentOrder { + order: 1; +} + +.diagramWrap { + /* intentional wrapper */ +} + +.diagram { + border-radius: 0.75rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: #0f1117; + padding: 1.5rem; + font-family: "JetBrains Mono", "Fira Code", monospace; + font-size: 0.875rem; +} + +.diagramComment { + color: #4b5563; + margin-bottom: 1rem; +} + +.diagramBody { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.diagramRow { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.pl4 { padding-left: 1rem; } +.pl8 { padding-left: 2rem; } + +.cFaint { color: #4b5563; font-size: 0.75rem; margin-left: 0.5rem; } +.cFaint2 { color: #4b5563; } +.cCyan { color: #22d3ee; } +.cLight { color: #d1d5db; } +.cGreen { color: #86efac; } +.cAmber { color: #fcd34d; } +.cPurple { color: #c084fc; } + +/* Content */ +.heading { + font-size: 1.875rem; + font-weight: 700; + letter-spacing: -0.02em; + color: var(--otdf-text-primary); + margin: 0 0 1.5rem; +} + +.body { + font-size: 1.125rem; + color: #9ca3af; + line-height: 1.7; + margin: 0 0 1.5rem; +} + +.featureList { + list-style: none; + padding: 0; + margin: 0 0 2rem; + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.featureItem { + display: flex; + align-items: flex-start; + gap: 0.75rem; + color: #9ca3af; + font-size: 1rem; +} + +.checkIcon { + width: 1.25rem; + height: 1.25rem; + color: #22d3ee; + flex-shrink: 0; + margin-top: 0.125rem; +} + +/* CTAs */ +.ctas { + display: flex; + flex-wrap: wrap; + gap: 1rem; +} + +.btn { + display: inline-flex; + align-items: center; + padding: 0.625rem 1.25rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 0.9375rem; + text-decoration: none; + transition: all 0.2s ease; +} + +.btnSecondary { + background: transparent; + color: var(--otdf-text-primary); + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.btnSecondary:hover { + border-color: #22d3ee; + color: #22d3ee; + text-decoration: none; +} + +.btnGhost { + background: transparent; + color: #6b7280; + border: 1px solid rgba(255, 255, 255, 0.06); +} + +.btnGhost:hover { + color: var(--otdf-text-primary); + border-color: rgba(255, 255, 255, 0.2); + text-decoration: none; +} + +/* Responsive */ +@media (min-width: 640px) { + .inner { + padding: 0 1.5rem; + } +} + +@media (min-width: 1024px) { + .grid { + grid-template-columns: 1fr 1fr; + gap: 3rem; + } + + .diagramOrder { + order: 1; + } + + .contentOrder { + order: 2; + } + + .inner { + padding: 0 2rem; + } + + .heading { + font-size: 2.25rem; + } +} diff --git a/src/components/landing/Standards.tsx b/src/components/landing/Standards.tsx new file mode 100644 index 00000000..f1bd305f --- /dev/null +++ b/src/components/landing/Standards.tsx @@ -0,0 +1,99 @@ +import React from "react"; +import styles from "./Standards.module.css"; + +const CheckIcon = () => ( + +); + +const features = [ + "AES-256-GCM authenticated encryption", + "NIST SP 800-162 ABAC model", + "Cryptographic policy binding", + "Open specification — not proprietary", +]; + +export default function Standards() { + return ( +
+
+
+ {/* Left: TDF diagram */} +
+
+
{""}
+
+
+ + TDF Object +
+
+ ├─ + manifest.json + policy + key access +
+
+ ├─ + encryptionMethod + AES-256-GCM +
+
+ ├─ + keyAccess[] + wrapped DEK + KAS URL +
+
+ ├─ + policy + ABAC attributes +
+
+ └─ + assertions[] + signed bindings +
+
+ └─ + payload + encrypted content +
+
+ +
+
+
+
+ + {/* Right: Content */} +
+

Standards-Based Security

+

+ Built on the proven NIST ABAC model for interoperability and compliance. OpenTDF + follows established standards for attribute-based access control, ensuring your data + protection strategy is future-proof and audit-ready. +

+ +
    + {features.map((f) => ( +
  • + + {f} +
  • + ))} +
+ + +
+
+
+
+ ); +} diff --git a/src/components/landing/index.ts b/src/components/landing/index.ts new file mode 100644 index 00000000..e5b59856 --- /dev/null +++ b/src/components/landing/index.ts @@ -0,0 +1,6 @@ +export { default as Hero } from "./Hero"; +export { default as ProblemSolution } from "./ProblemSolution"; +export { default as DeveloperFirst } from "./DeveloperFirst"; +export { default as Standards } from "./Standards"; +export { default as Community } from "./Community"; +export { default as FinalCTA } from "./FinalCTA"; diff --git a/src/css/custom.css b/src/css/custom.css index 4054e8a9..51463281 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -52,19 +52,18 @@ } :root { - --ifm-color-primary: #004987; - --ifm-color-primary-dark: #003765; - --ifm-color-primary-darker: #002544; - --ifm-color-primary-darkest: #001e4a; - --ifm-color-primary-light: #6aaae4; - --ifm-color-primary-lighter: #92c0e9; - --ifm-color-primary-lightest: #c2d5ed; + --ifm-color-primary: #0891b2; + --ifm-color-primary-dark: #0e7490; + --ifm-color-primary-darker: #155e75; + --ifm-color-primary-darkest: #164e63; + --ifm-color-primary-light: #22d3ee; + --ifm-color-primary-lighter: #67e8f9; + --ifm-color-primary-lightest: #a5f3fc; --ifm-code-font-size: 95%; - --ifm-blockquote-border-color: #B2D6FF; - --ifm-blockquote-background-color: var(--ifm-color-white); - ; - --ifm-color-info-contrast-background: var(--ifm-color-white); - --ifm-color-info-dark: var(--ifm-blockquote-border-color); + --ifm-blockquote-border-color: #0891b2; + --ifm-blockquote-background-color: #ecfeff; + --ifm-color-info-contrast-background: #ecfeff; + --ifm-color-info-dark: #0891b2; --ifm-color-white: #FFF; --ifm-heading-font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; --ifm-font-family-base: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; @@ -76,20 +75,39 @@ ***************/ .docusaurus-highlight-code-line { - background-color: rgba(0, 0, 0, 0.1); + background-color: rgba(8, 145, 178, 0.09); display: block; margin: 0 calc(-1 * var(--ifm-pre-padding)); padding: 0 var(--ifm-pre-padding); + border-left: 2px solid #0891b2; +} + +/* Tip admonition — amber secondary from homepage palette */ +.alert--secondary, +div[class*="admonition-tip"], +div[class*="admonitionTip"] { + --ifm-alert-background-color: #fffbeb; + --ifm-alert-border-color: #f59e0b; + --ifm-alert-color: #92400e; } html[data-theme='dark'] { + /* Override primary to teal in dark mode */ + --ifm-color-primary: #22d3ee; + --ifm-color-primary-dark: #0891b2; + --ifm-color-primary-darker: #0e7490; + --ifm-color-primary-darkest: #155e75; + --ifm-color-primary-light: #67e8f9; + --ifm-color-primary-lighter: #a5f3fc; + --ifm-color-primary-lightest: #cffafe; + --ifm-heading-color: var(--ifm-font-color-base); --ifm-blockquote-background-color: none; --ifm-color-info-contrast-background: #001E4A; --ifm-color-info-dark: #174EB6; - --ifm-link-color: var(--ifm-color-primary-light); - --ifm-menu-color-active: var(--ifm-color-primary-light); - --ifm-breadcrumb-color-active: var(--ifm-color-primary-light); + --ifm-link-color: var(--ifm-color-primary); + --ifm-menu-color-active: var(--ifm-color-primary); + --ifm-breadcrumb-color-active: var(--ifm-color-primary); } html[data-theme='dark'] .hero { @@ -102,7 +120,7 @@ html[data-theme='dark'] .docusaurus-highlight-code-line { html[data-theme='dark'] .table-of-contents__link:hover, html[data-theme='dark'] .table-of-contents__link--active { - color: var(--ifm-color-primary-light); + color: var(--ifm-color-primary); } /* Dark mode overrides for custom VDS colors and homepage */ @@ -119,14 +137,9 @@ html[data-theme='dark'] { --vds-homepage-subtitle-color: #aaa; } -/* Dark mode navbar for homepage */ -html[data-theme='dark'] .homepage .navbar { - background-color: var(--vds-color-blue-lightest); - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3); -} - -html[data-theme='dark'] .navbar .navbar__brand { - color: var(--vds-color-blue-dark); +/* Dark mode: brand stays white (already set globally, this just reinforces it) */ +html[data-theme='dark'] .navbar .navbar__brand .navbar__title { + color: #fff; } /* Dark mode cookie consent */ @@ -139,27 +152,6 @@ html[data-theme='dark'] .cookie-consent-accept-button { color: #000; } -/* Dark mode footer */ -html[data-theme='dark'] .footer { - background-color: #0a1929; - color: #b3d4fc; -} - -html[data-theme='dark'] .footer__link-item { - color: #6aaae4; -} - -html[data-theme='dark'] .footer__link-item:hover { - color: #92c0e9; -} - -html[data-theme='dark'] .footer__title { - color: #6bbaff; -} - -html[data-theme='dark'] .footer__copyright { - color: #6aaae4; -} .star-logo { width: 200px; @@ -175,85 +167,62 @@ a[class*="embed_documentation_footer-"] { ***************/ .footer { - height: auto; - background-color: var(--vds-color-blue-darkest); - color: var(--vds-color-blue-lighter); -} -.footer .container { - display: flex; - justify-content: space-between; - gap: 3rem; - flex-direction: row-reverse; - padding: 1rem 0; - align-items: flex-start; + background-color: #0a0c10; + border-top: 1px solid rgba(255, 255, 255, 0.05); } -.footer__links { - flex: 1; - display: flex; - justify-content: flex-end; +.footer__title { + font-size: 0.75rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + color: #fff; + margin-bottom: 1rem; } .footer__link-item { - font-size: 1.1rem; - color: var(--vds-color-blue-light); + font-size: 0.875rem; + color: #6b7280; + transition: color 0.2s ease; } -.footer__title { - font-size: .9rem; - color: var(--vds-color-blue-dark); +.footer__link-item:hover { + color: #22d3ee; + text-decoration: none; } .footer__bottom { - flex: 1; - text-align: left; -} - -.footer__bottom img { - height: 46px; - margin: 0; -} - -.footer__copyright { + margin-top: 3rem; + padding-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.05); display: flex; + align-items: center; justify-content: space-between; - color: var(--vds-color-blue-darker); -} - -@media (min-width: 1201px) { - /* Styles for xl breakpoint */ + flex-direction: row; + flex: unset; + text-align: unset; } -@media (max-width: 1200px) { - .footer .container { - padding: var(--vds-homepage-container-padding-lg); - } +.footer__copyright { + font-size: 0.75rem; + color: #374151; + display: block; } -@media (max-width: 1024px) { - .footer .container { - padding: var(--vds-homepage-container-padding-md); - } +.footer__sponsor-text { + font-size: 0.875rem; + color: #6b7280; + line-height: 1.6; + margin: 0; } -@media (max-width: 768px) { - .footer .container { - justify-content: center; - padding: var(--vds-homepage-container-padding-sm); - } - - .footer__copyright { - flex-direction: column; - gap: 1rem; - } +.footer__sponsor-text a { + color: #22d3ee; + text-decoration: none; } -@media (max-width: 480px) { - .footer .container { - flex-direction: column; - gap: 1rem; - padding: var(--vds-homepage-container-padding-xs); - } +.footer__sponsor-text a:hover { + color: #67e8f9; } /************** @@ -348,14 +317,121 @@ Breakpoints: line-height: var(--vds-homepage-body-line-height); } -.homepage .navbar { - background-color: var(--vds-color-blue-lighter); - border: 0; - box-shadow: 0 1px 2px 0 var(--vds-color-blue-lighter); +/************** +** NAVBAR — ALWAYS DARK (matches reference design) +***************/ + +.navbar { + background-color: rgba(10, 12, 16, 0.9); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border-bottom: 1px solid rgba(255, 255, 255, 0.05); + box-shadow: none; +} + +/* Brand: white bold text */ +.navbar .navbar__brand .navbar__title { + color: #fff; + font-size: 1.125rem; + font-weight: 700; +} + +.navbar .navbar__brand:hover .navbar__title { + color: #22d3ee; +} + +/* Nav links: muted gray, teal on hover/active */ +.navbar .navbar__link { + color: #9ca3af; + font-size: 0.875rem; +} + +/* Hide external-link icon on navbar items */ +.navbar [class*="iconExternalLink"] { + display: none; +} + +.navbar .navbar__link:hover, +.navbar .navbar__link--active { + color: #22d3ee; + background: rgba(255, 255, 255, 0.05); + text-decoration: none; +} + +/************** +** NAVBAR LAYOUT — 3 columns: Logo (left) | Nav items (center) | GitHub (right) +** +** Docusaurus puts brand + nav links in the same .navbar__items container +** (there is NO --left modifier). We pull the brand out with position:absolute +** so only nav links remain in flow, center the container with the parent, +** and absolute-position .navbar__items--right to the far right. +***************/ + +.navbar__inner { + position: relative; + display: flex; + justify-content: center; + align-items: center; } + .navbar .navbar__brand { - color: var(--vds-color-blue-006); - font-size: 1.5rem; + position: absolute; + left: var(--ifm-navbar-padding-horizontal); + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; +} + +/* Left items container: shrink-to-fit so parent can center it */ +.navbar__inner > .navbar__items:not(.navbar__items--right) { + flex: 0 0 auto; + justify-content: center; +} + +.navbar .navbar__items--right { + position: absolute; + right: var(--ifm-navbar-padding-horizontal); + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; + gap: 0.5rem; +} + +/* GitHub navbar button — bordered pill style, scoped to right container only */ +.navbar__items--right .navbar__item.navbar__link[href*="github.com"] { + display: inline-flex; + align-items: center; + gap: 0.375rem; + padding: 0.375rem 0.75rem; + border: 1px solid #374151; + border-radius: 0.5rem; + font-size: 0.875rem; + color: #9ca3af; + transition: border-color 0.2s ease, color 0.2s ease; +} + +.navbar__items--right .navbar__item.navbar__link[href*="github.com"]::before { + content: ""; + display: inline-block; + width: 1.125rem; + height: 1.125rem; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z'/%3E%3C/svg%3E"); + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + flex-shrink: 0; +} + +.navbar__items--right .navbar__item.navbar__link[href*="github.com"]:hover { + border-color: #6b7280; + color: #fff; + background: transparent; + text-decoration: none; } /************** @@ -371,3 +447,42 @@ div[class*="language-shell"] code::before { html[data-theme='dark'] div[class*="language-shell"] code::before { color: var(--ifm-color-gray-400); } + +/************** +** OPENTDF LANDING — DARK DESIGN TOKENS +***************/ +:root { + /* Backgrounds */ + --otdf-bg-deepest: #0a0c10; + --otdf-bg-deep: #0f1117; + --otdf-bg-surface: #161922; + --otdf-bg-raised: #1e2230; + --otdf-bg-subtle: #272c3d; + + /* Text */ + --otdf-text-primary: #e8eaf0; + --otdf-text-secondary: #9ca3b8; + --otdf-text-tertiary: #636b82; + + /* Accent: Electric Cyan */ + --otdf-accent: #22d3ee; + --otdf-accent-light: #67e8f9; + --otdf-accent-dark: #0891b2; + --otdf-accent-muted: #164e63; + --otdf-accent-glow: rgba(34, 211, 238, 0.15); + + /* Secondary: Warm Amber */ + --otdf-secondary: #f59e0b; + --otdf-secondary-muted: #78350f; + + /* SDK Colors */ + --otdf-go: #22c55e; + --otdf-js: #3b82f6; + --otdf-java: #f59e0b; + --otdf-cli: #a78bfa; + + /* Gradients */ + --otdf-gradient-hero: linear-gradient(135deg, #0891b2 0%, #22d3ee 50%, #67e8f9 100%); + --otdf-gradient-mesh: radial-gradient(ellipse at 20% 50%, rgba(34, 211, 238, 0.08) 0%, transparent 50%), + radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.05) 0%, transparent 50%); +} diff --git a/src/css/landing.css b/src/css/landing.css new file mode 100644 index 00000000..5d640d6b --- /dev/null +++ b/src/css/landing.css @@ -0,0 +1,82 @@ +/* OpenTDF Landing Page — Shared Dark Theme Utilities */ + +/* ---- Grid background pattern ---- */ +.bg-grid { + background-image: linear-gradient(rgba(34, 211, 238, 0.03) 1px, transparent 1px), + linear-gradient(90deg, rgba(34, 211, 238, 0.03) 1px, transparent 1px); + background-size: 64px 64px; +} + +/* ---- Gradient mesh backgrounds ---- */ +.bg-mesh { + background-image: radial-gradient(ellipse at 20% 50%, rgba(34, 211, 238, 0.08) 0%, transparent 50%), + radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.05) 0%, transparent 50%); +} + +.bg-mesh-reverse { + background-image: radial-gradient(ellipse at 80% 60%, rgba(34, 211, 238, 0.06) 0%, transparent 50%), + radial-gradient(ellipse at 20% 30%, rgba(245, 158, 11, 0.04) 0%, transparent 50%); +} + +/* ---- Gradient text ---- */ +.text-gradient { + background: linear-gradient(135deg, #22d3ee 0%, #67e8f9 50%, #a78bfa 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* ---- Glow effects ---- */ +.glow-cyan { + box-shadow: 0 0 20px rgba(34, 211, 238, 0.15), 0 0 60px rgba(34, 211, 238, 0.05); +} + +/* ---- Code block animation ---- */ +@keyframes otdfTypewriter { + from { + opacity: 0; + transform: translateY(4px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.code-line { + animation: otdfTypewriter 0.3s ease-out forwards; + opacity: 0; +} + +.code-line:nth-child(1) { animation-delay: 0.1s; } +.code-line:nth-child(2) { animation-delay: 0.3s; } +.code-line:nth-child(3) { animation-delay: 0.5s; } +.code-line:nth-child(4) { animation-delay: 0.7s; } +.code-line:nth-child(5) { animation-delay: 0.9s; } +.code-line:nth-child(6) { animation-delay: 1.1s; } +.code-line:nth-child(7) { animation-delay: 1.3s; } + +/* ---- Section alternating backgrounds ---- */ +.section-dark { + background-color: #0a0c10; +} + +.section-darker { + background-color: #0f1117; +} + +/* ---- SDK card accent colors ---- */ +.sdk-go { --sdk-color: #22c55e; } +.sdk-js { --sdk-color: #3b82f6; } +.sdk-java { --sdk-color: #f59e0b; } +.sdk-cli { --sdk-color: #a78bfa; } + +.sdk-card { + border: 1px solid rgba(255, 255, 255, 0.06); + transition: all 0.3s ease; +} + +.sdk-card:hover { + border-color: var(--sdk-color, #22d3ee); + box-shadow: 0 0 30px color-mix(in srgb, var(--sdk-color, #22d3ee) 15%, transparent); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 5304464d..3876f4d5 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,103 +1,28 @@ import React from "react"; import Layout from "@theme/Layout"; import Head from "@docusaurus/Head"; -import { Columns, Hero, Features, Feedback } from "../components/Homepage"; +import { Hero, ProblemSolution, DeveloperFirst, Standards, Community, FinalCTA } from "../components/landing"; export default function Home() { return (
- + - - -

- OpenTDF is an open source system for implementing data centric security. - It provides the basic services required to enable the definition, application, - and enforcement of attribute based policies using the Trust Data Format (TDF). - TDF is an open standard that enables you to cryptographically bind - attribute based access control (ABAC) policy to a data object so that - the policy travels with the data wherever it goes. -

-

- OpenTDF builds upon a decade of experience at Virtru - protecting data objects at scale using the Trusted Data Format - for organizations of all sizes and across all industries. -

-
- - -

- Today's cybersecurity landscape is increasingly adopting and requiring Zero Trust models and frameworks. - Zero Trust operates on the principle of "never trust, always verify," - ensuring that every access request is authenticated, authorized, and encrypted, - regardless of its origin. OpenTDF implements this model by providing an open-source framework, specification, and set of services - that prioritizes the protection and integrity of data at every stage. -

-

- By integrating OpenTDF’s data security features with a Zero Trust architecture, - organizations can enforce strict access controls, ensure data is continuously monitored, - and maintain comprehensive visibility into data interactions. This synergy not only - minimizes the risk of data breaches but also fosters a secure environment where data - can be shared and utilized with confidence. Together, Zero Trust and OpenTDF empower businesses - to uphold the highest standards of data security in an interconnected world. -

-
- -

- In 2023, the OpenTDF team undertook a significant re-architecture - of the OpenTDF platform to enhance its extensibility and interoperability, - responding to the evolving needs of our diverse user base and the dynamic cybersecurity landscape. - See our {" "}Github Organization Page to navigate the new repositories. -

-

- This comprehensive overhaul involved simplifying core service components, - adopting standardized policy schemas, and improving platform APIs and SDKs both in - developer experience and in capability. By focusing on extensibility, we have enabled - developers to customize and extend OpenTDF’s functionalities to suit specific use cases, - fostering innovation and adaptability. As we continue to advance, our focus remains on empowering the community with a secure, adaptable, - and interoperable platform that meets the highest standards of data protection and fosters collaborative innovation. -

-

- Through the sponsorship of Virtru and its partners, the OpenTDF project has been - meeting the needs of customers across industries and use cases. Check out{" "} - - Virtru Data Security Platform - {" "} - for more. -

-
-
- - {/* */} - - - - -

- Virtru, the sponsor of the OpenTDF developer community, would love to hear from you! -

-

- We're developers, too, and as we mature the project, we're curious what you're building, and what kind of problems you may be encountering or are trying to solve. -

-

- You can provide anonymous feedback (name, email, and company are not required fields on this form), or share your contact information for access to curated resources, updates, and if you request a response. -

-
+ + + + + + +
); diff --git a/static/img/favicon.svg b/static/img/favicon.svg new file mode 100644 index 00000000..e6906bc5 --- /dev/null +++ b/static/img/favicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/img/filecontents.svg b/static/img/filecontents.svg deleted file mode 100644 index 6059a070..00000000 --- a/static/img/filecontents.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - my_document.ext.tdf (Zip) - - - - manifest.json - - - - 0.payload (Encrypted) - \ No newline at end of file diff --git a/static/img/opentdf-icon.svg b/static/img/opentdf-icon.svg new file mode 100644 index 00000000..55a60843 --- /dev/null +++ b/static/img/opentdf-icon.svg @@ -0,0 +1,4 @@ + + + + From 24403e689b5a099eb9bdd8375a0cf62e9e2069f4 Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Sat, 21 Feb 2026 08:53:13 -0500 Subject: [PATCH 02/13] chore: remove Java code samples from PR (contain errors, to be fixed separately) Signed-off-by: Mike Morper --- .../java/decrypt-collection-example.mdx | 37 ---------------- .../java/encrypt-collection-example.mdx | 42 ------------------- 2 files changed, 79 deletions(-) delete mode 100644 code_samples/java/decrypt-collection-example.mdx delete mode 100644 code_samples/java/encrypt-collection-example.mdx diff --git a/code_samples/java/decrypt-collection-example.mdx b/code_samples/java/decrypt-collection-example.mdx deleted file mode 100644 index 05731c6f..00000000 --- a/code_samples/java/decrypt-collection-example.mdx +++ /dev/null @@ -1,37 +0,0 @@ -```java -package io.opentdf.platform; - -import io.opentdf.platform.sdk.Config; -import io.opentdf.platform.sdk.SDK; -import io.opentdf.platform.sdk.SDKBuilder; - -import java.io.FileInputStream; -import java.io.IOException; -import java.nio.ByteBuffer; - -public class DecryptCollectionExample { - public static void main(String[] args) throws IOException { - String clientId = "opentdf-sdk"; - String clientSecret = "secret"; - String platformEndpoint = "localhost:8080"; - - SDKBuilder builder = new SDKBuilder(); - SDK sdk = builder.platformEndpoint(platformEndpoint) - .clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true) - .build(); - - var kasInfo = new Config.KASInfo(); - kasInfo.URL = "http://localhost:8080/kas"; - - - // Convert String to InputStream - for (int i = 0; i < 50; i++) { - FileInputStream fis = new FileInputStream(String.format("out/my.%d_ciphertext", i)); - sdk.readNanoTDF(ByteBuffer.wrap(fis.readAllBytes()), System.out, Config.newNanoTDFReaderConfig()); - fis.close(); - } - - } -} - -``` \ No newline at end of file diff --git a/code_samples/java/encrypt-collection-example.mdx b/code_samples/java/encrypt-collection-example.mdx deleted file mode 100644 index c65e0578..00000000 --- a/code_samples/java/encrypt-collection-example.mdx +++ /dev/null @@ -1,42 +0,0 @@ -```java -package io.opentdf.platform; - -import io.opentdf.platform.sdk.Config; -import io.opentdf.platform.sdk.SDK; -import io.opentdf.platform.sdk.SDKBuilder; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; - -public class EncryptCollectionExample { - public static void main(String[] args) throws IOException { - String clientId = "opentdf-sdk"; - String clientSecret = "secret"; - String platformEndpoint = "localhost:8080"; - - SDKBuilder builder = new SDKBuilder(); - SDK sdk = builder.platformEndpoint(platformEndpoint) - .clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true) - .build(); - - var kasInfo = new Config.KASInfo(); - kasInfo.URL = "http://localhost:8080/kas"; - - var tdfConfig = Config.newNanoTDFConfig( - Config.withNanoKasInformation(kasInfo), - Config.witDataAttributes("https://example.com/attr/attr1/value/value1"), - Config.withCollection() - ); - - String str = "Hello, World!"; - - for (int i = 0; i < 50; i++) { - FileOutputStream fos = new FileOutputStream(String.format("out/my.%d_ciphertext", i)); - sdk.createNanoTDF(ByteBuffer.wrap(str.getBytes(StandardCharsets.UTF_8)), fos, tdfConfig); - } - } -} - -``` \ No newline at end of file From f81488b0779c9054aa9b2d669599037e4571a3a7 Mon Sep 17 00:00:00 2001 From: Mary Dickson Date: Fri, 20 Feb 2026 12:16:02 -0800 Subject: [PATCH 03/13] chore: establish community contribution process (#188) ## Summary - Adds intro paragraph to `CONTRIBUTING.md` pointing to `platform/CONTRIBUTING.md` for general guidelines, branch naming, and commit conventions; existing Vale/Docusaurus content unchanged - Adds a "Contributing" card to `docs/introduction.mdx` linking to `platform/CONTRIBUTING.md` ## Test plan - [ ] Review rendered Markdown on GitHub - [ ] Verify Contributing card renders correctly on the docs site - [ ] Verify all links resolve correctly Closes DSPX-2421 Signed-off-by: Mary Dickson Signed-off-by: Mike Morper --- CONTRIBUTING.md | 8 ++++++-- docs/introduction.mdx | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea2e7d79..75fbbbba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,10 @@ -# Contributing +# Contributing to opentdf/docs -The information below is meant for documentation contributors. +Thank you for contributing to OpenTDF documentation! For general contribution +guidelines, community feedback channels, and branch/commit conventions, see +[platform/CONTRIBUTING.md](https://github.com/opentdf/platform/blob/main/CONTRIBUTING.md). + +The information below is specific to documentation contributions. ## Prerequisites diff --git a/docs/introduction.mdx b/docs/introduction.mdx index 4e1e4fa2..c81c18d2 100644 --- a/docs/introduction.mdx +++ b/docs/introduction.mdx @@ -70,5 +70,11 @@ Find all the information you need to get started with OpenTDF. "Learn about the OpenTDF CLI tool (otdfctl) and how it can be used to manage the OpenTDF platform.", url: "/components/cli", }, + { + name: "Contributing", + description: + "Report bugs, request features, ask questions, or contribute code and docs. All community activity is welcome.", + url: "https://github.com/opentdf/platform/blob/main/CONTRIBUTING.md", + }, ]} /> From 726592a248f14363ab79736213ef4f0559d2672c Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Sun, 22 Feb 2026 08:49:09 -0500 Subject: [PATCH 04/13] feat: add OpenGraph social image and full OG meta tags - Replace opentdf-social.png with new dark-themed brand-compliant 1200x630 image featuring gradient headline, code window, opentdf.io URL, license text, and TDF/services pills - Add complete og:type, og:site_name, og:url, og:image:width/height tags - Add Twitter/X Card meta tags to homepage - Fix Schema.org JSON-LD logo URL to opentdf.io Closes #192 Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- .gitignore | 6 + docusaurus.config.ts | 2 +- package-lock.json | 483 +++++++++++++++++++++++++++++++++- package.json | 1 + src/pages/index.tsx | 19 +- static/img/opentdf-social.png | Bin 157582 -> 191118 bytes 6 files changed, 502 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 71d35fc7..e4a4f3b7 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,9 @@ node_modules # Ignore manual test scripts manual_tests/ + +# Design working files +og-concepts.html +og-export.html +color-spec-mock.html +opentdf-brand-guide.html diff --git a/docusaurus.config.ts b/docusaurus.config.ts index a072da01..65e37c72 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -55,7 +55,7 @@ const config: Config = { "@type": "Organization", name: "OpenTDF", url: "https://opentdf.io", - logo: "https://docs.opentdf.io/img/opentdf-social.png", + logo: "https://opentdf.io/img/opentdf-icon.svg", }), }, ], diff --git a/package-lock.json b/package-lock.json index 72df6c82..c951b05a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "@docusaurus/tsconfig": "^3.6.3", "@docusaurus/types": "^3.6.3", "@iconify-icon/react": "^2.1.0", + "puppeteer-core": "^24.37.5", "sharp": "^0.34.2", "tsx": "^4.20.3", "typescript": "^5.7.2" @@ -7023,6 +7024,41 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" }, + "node_modules/@puppeteer/browsers": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", + "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.4", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", @@ -7409,6 +7445,13 @@ "node": ">=14.16" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -8067,6 +8110,17 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "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==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -8583,6 +8637,19 @@ "node": ">=12.0.0" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/astring": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", @@ -8857,6 +8924,16 @@ "baseline-browser-mapping": "dist/cli.js" } }, + "node_modules/basic-ftp": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz", + "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -9097,6 +9174,16 @@ "ieee754": "^1.1.13" } }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -9451,6 +9538,20 @@ "node": ">=6.0" } }, + "node_modules/chromium-bidi": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -11029,6 +11130,16 @@ "lodash-es": "^4.17.21" } }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/dayjs": { "version": "1.11.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", @@ -11041,9 +11152,9 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "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" @@ -11198,6 +11309,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -11292,6 +11418,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1566079", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1566079.tgz", + "integrity": "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/diff": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", @@ -13196,6 +13329,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -13519,6 +13695,43 @@ "node": ">=0.10.0" } }, + "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==", + "dev": true, + "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/extract-zip/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-content-type-parse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", @@ -13604,6 +13817,16 @@ "node": ">=0.8.0" } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/feed": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", @@ -14086,6 +14309,21 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -15005,6 +15243,20 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/http-proxy-middleware": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", @@ -15288,6 +15540,16 @@ "loose-envify": "^1.0.0" } }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -18526,6 +18788,13 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", @@ -18654,6 +18923,16 @@ "node": ">= 10" } }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -19289,6 +19568,40 @@ "node": ">=8" } }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", @@ -19556,6 +19869,13 @@ "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==", + "dev": true, + "license": "MIT" + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -21336,6 +21656,16 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -21392,6 +21722,36 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -21430,6 +21790,47 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/puppeteer-core": { + "version": "24.37.5", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.5.tgz", + "integrity": "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.13.0", + "chromium-bidi": "14.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1566079", + "typed-query-selector": "^2.12.0", + "webdriver-bidi-protocol": "0.4.1", + "ws": "^8.19.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/pvtsutils": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", @@ -23589,6 +23990,17 @@ "node": ">=8.0.0" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -23608,6 +24020,36 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/sort-css-media-queries": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", @@ -24514,6 +24956,13 @@ "node": ">= 0.6" } }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -25251,6 +25700,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", + "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -25948,6 +26404,17 @@ "node": ">=8" } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", @@ -25960,6 +26427,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 6ac4bdec..06399066 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@docusaurus/tsconfig": "^3.6.3", "@docusaurus/types": "^3.6.3", "@iconify-icon/react": "^2.1.0", + "puppeteer-core": "^24.37.5", "sharp": "^0.34.2", "tsx": "^4.20.3", "typescript": "^5.7.2" diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 3876f4d5..ddf6dfff 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -7,11 +7,20 @@ export default function Home() { return (
- - + {/* OpenGraph */} + + + + + + + + + {/* Twitter / X */} + + + + Ms4;;t?3P+Ur(xH|-QX^{fOp%e-fFYa0#ifeEv5+qoV z0&s-K|&%#dMzidWi?SS4qf`(>-(Dlz&pzj`cwE;Q<&bR2Che zEA{vbf|~<)#_JY1@3XpAhN(15PLu_&J0%3z%DY~hl(QgM1b zsNm0uB z@~hi(uk7(nsG>j-yF!|#cTD*YxQ44_A&fx(Jb$!xtFl290+zNZT8HTQY6iOov`v6J zwJ{)3ns4ao-mEg#{OfPj?K44!BlpvWyPfrsZxd|i)3J+Y9)kPq<9RoIo8K0Xy^Nv! z4(wW>Vn%4*Vss~WCWdvVO4?Oa^3aIkYKnb`(!4eFP6m8eOp`tXWHy~{E)bH(Mc;ii zXfqlL13Dif$35g8Eg-^th}JQZI1z_2qRDTZa+VV zO8+QzLx((B=7_8QulOh_5ON1f5JY`L)VaR0(aqjqyo(z4}ql$SETT zkFr7=fUb%g1;;%hF6AY|@ml5aenojL+nZl$3(v%R=b4d+XV-oV_T*wJzQI#0>-Nr~ z|41<_z{jLOfJ2Un-RWLJ=Z?whz%RSZ5G?I-L>wHT^fm%m^HFI0$SCs z=4m`G7qmJ%SH}~)IK7Mo06QDrS1`XlD2#lQ6V5hbg(Zg0Vrubvb2=Nk{n0=_PWu+#NGCWNzH5_^-7h7Z>(x*~38RP@EF*)! zq{uO8s2nB;L(d4;6=>On<1W7@Oy-|-TTZMaht-gxhPjsdP+N?_A1Hi1`6rLFhASq9i$ds7JLoYlP4;6*&J|pq~I9$`^>BTa%ixC=2aR? z;dxBKpRnZFF)-o^Ha+E1cYsVc0MQMm(;q!Y3HWj^Wg}qC-4od%Hgq{diJPi69nFko zZ~_R)m6Oaa1ohg%;tMD01`6?UeB$uG-`-=HIeOerU&uZl$4|MP)!1479pl3GgIk|F zyOI78p1?EoohL`HnQgZS=pntKLCkDLqmvD|WH#+U04g3~cmVcPk}?w^DpT1B&bQNe zcw1gySKm}zFVY#^Q#KuHB_}JPVH%gM?&uk4ULTAod|gzT;^9M{FzSSqND6g-Ry$5L zOGazfnrc}zAr86debfL9_rL3GIa$l#PkhOphN6DzvBRnT-EtNhEz${0ItzXPEhZ_M zVK#!$?4_rP0{i7syKhOt0YViwlq;JSwn-h0&*G9=5s7&hOsPSV9+KAcG??Ajduj248%zr$VAYHXWr=Jgbb6$L)^3JJgY4|t# z^?GSmQkDjcaVi4Ms@U>ZSB&Vq`SB4cR0y3#q6#;$sM0?6V6d1 z8e@!d{6-GxW3o(;FFF%Cn2{Z(oWMzAR6(CX!8Y1oVEx*79JQHK^HiAbl6 zeIT8X_=g=1lw1i6j8;cilAaHs(k`h{N?kdrJ62vred%@GZ(JoylezS0ez*A4q+F5o zu@+B&*JazC9xvU5_VH}HP$(6@9GfR|BibN@WY1|6A_2!I z<$6ISvi^7A;AD;1dBly@B+138c|aG}Cs|ywup%~%9chg*LUSYz@?yQ$Sn5nMr`u1T z7Nf+3(t8qw(svc872Y(m166Z%{a26T^54j|T`bQO-v)y<-v%t>*6`Ww!@k*w_U%cwi{7-dx?P`nvxFAWe)eCf zMTy@0dzk+!xrVG8QDwLJa(&0xx&6SM?$PB$?BIR{&5e5LYYwXZkSHXh+~YmeG?~(7 zJP5j+N9Q;VKxL-vYXf^k+0JJH0{ln}Tuof+&6Tu!ig7Nc#yY&S{lIN+66zcm1A^9# zZ2Eb`iZh_$=G5s2@kr*flmxO+HYn=9dy}W|hdwt%$&b~pJW=*nK!cb016u4@Kr{oW z^Xlbw%@|O=6t4w?#U_^R^$FffsPSy>tZ?JU|qct_nX>7G9=EIWb8*CxD% zpq6o)H}}Cre;{0mIa;+_erledm4|la3a9?>wodCPJW{--`DPbv7((Y3ztXP{K;hti z%kz&|y{m=aY_mQ=J$pV((2rsOmm+=oi%gNeK#YPLcUK)G50V5HKEor_S0bsJAc=VR z^y<0Y0t--XYw{W9i*b_}c^;`JCKOzx_=;c7yh$*rT%C74#BBD*X3Zl72k$y%UqPPj z;TL*;I^B%BUzGtWnA7g@g~xD0|J~xNMqXPrBc_+M&h(!KuQjLpLwi>HF@bgkeL56K zVaPz!n2jWh9eyri{+Zz~1A5|Ev!w2ZPh@c0u>1UMdk&1WkT=(~-x*&jZ0(<5dI_7% zQ4y$hX!d_4VWL=@%DJ{50P1A7{*sgxvK>;6=yi_?n!xdoBn*~J7rKeQV^%hLM~&+@ z4s61a>uv7^TZeXIC93^gor2^z38RYOLMi?`m-;);4#lx4amY1Ez8^^yG??}uJPT|T}!-PA2x{^2DeWK!s)0Y z|6i!5Fp+oE7q*ym4Gb>9G{mLHi0d9yu&}D6e`CGPPvn35(+(e5Pbp&J4VoA#Q+PLB zoCm2)aXnoWrWox$yChNw1e0jBiXDTH`cg~Z5mnFEJ^?kRSL2M%ay%d3?A+3DW|GgM z%B=|a^MvK8HyHOd>`3 zhbI&w(3P`oE)8r8pAu2;gge#^@Z%wQ7J&V69FJdCH{mC?h1-A9l|#2*e|oKe5?rnU z>4%N;r4%`|6+Rc1QX*gu$1O0FwnLYa^WY)voJBkV)%cMv|h(RE0MPdFC6!p+*Ju# zSwH~Qgt+&=*TrMHUs(i4oyUpU*xJ+{vBN7k+`!rgTV#?KCuFzT|q#3a|58sxoVz*f5iaV9EPj%jw{j; z2j1kOmemu2~tRDSNwd! z(VMweP>9^>E&iK>JT4&e@7?7+$DiYp+i6_NkZdE@ZAmA3W`4bEo#s&j_G`u3=5cd9 zng3Nv^GX;0l!U;&_SG4h`2=1q%`=`uU6G+urpuF`ADgan)ZFFAF=Z}P)~h>-u{4d7 zI||G6NtSbC4t%)Cs5ebqIe2~En*d~tYvQky_X(LZL}eGy1rg%~f<-N(UHihah-=(q z6LY_+v$ZowEr$AuF)qaRxwrVnNf7TgU--BGg7M+kGkAZBOgvN0SgnNpNs3(XU*)uz1Wl)RO`tJ{nI34mu5G!q~6Skc~Ip$YQ!dbkTP-QL#}r zSUkTZ_pjs28_;vhe9we1Tpi-?h^X?>Y~uxauZ@N;RTg?DB^c@vm=xVEk+?gkIn}GJ z-pD8lkk4IKH@&6m%~})4zTYQuYZ6HK_ovT;Oa9$(=?o9Ql$)|+8ivjs)(F3hOXWMUJs~kU5tBt|dc!v?(_XB;HA{P1+ z*PQRUPaUtTK~cQkH3MG5*yN&l=KoK?%#bW;_7qNH22-1_^VC}~Q5i(wMQiZ@1(TS0 zSLE0QOaY_0xo-R^pF3M>d%tmZ5oHsgVaig;igMi$d!S|?QsTzRn?q&|0w$BmBOXk( z7Om1XKVTOSJ5w)iyi3gS>~?VYToXD?aBLFX@eV6K2^Vxb|GPvxuMGnxlRYFIogVOz8Xay@geiY--Z5)vDxK_VArWEcz# zo}x03Y^sYJ7jYI47&Fk5MB_!s=VxbKd9`lIJWN9GO-{b$#M0(OtyDhRI&;YVbC3_bbVti*+x{HM9hrAZE9v}+405a=+wcO8wDC!^w$ z$qH6zDf3gpF>o|3Qz?Bi*f7GG=|(uoY{Yd1DmJHra)(a^%W$IK5#UB5HTq@hhabe! z4vJJ7GPCFr5zS(3F<*EIdMV0%fOD6__cmMO==ts9RmH2SAE^7)7?k!inNmX;7fq6&?A#g4 zYF&pVV8*yP(4((#VC8+|?JP=M>93vZ*X2DJ)SI#vdlhss7k6dmTXCf|%5l&9A`f3z z?&-#17fs^x)*e-?+o&z85OZDqkd7V;;CIhjW4))|UU9w80kpdxl2hdn_NZfo{hgxy z#VqajPTqw{)$*!Q>i8em+P1h8tV1?sNkr{}jmIf2)va7e1T?V2N=lHWdf!OLc59OY zUL@+rsf-P3`+Vr*RNsK|W0MZ%3IDLhKo+rD2lAV%9~K!@H-#t12-=77kg8pWff9(# zaNn7xfzL&j3~!pisD!h)1=4&MHCKf5q^p`_uJP2HfNVZF^1CJT5ncJ{qV;uq-M>ShA~SZr=<4XPB6)J< zL5L(b{)R_F2LMPC*&yvIrKpIKq7QiiZ`%{z%6DB~jw>VWm@gwa$4(=5o<*Wo-&`M* z2Sm}~hYj?;lJ4B`yh)a~YEvfg5vPi4Op4|U-H7IXw+nO?;S(L*&|uyMMWy&4xa`{m zdt00O@A3eD!-4+`_Sp^N5XRIi)JmFH)hpim#pnQz$8ok4O^P2a&R#-^{%sTTM8Y&G z>%@x(WSQBXeocZ985F|@_V0z3I&pxj8%#R_IsPuX%1g3P^bbvEJft|U1%8_KS`lgf z66vFl?#({~YW;HdrS5p^5I;?Zw_;V3n>6^~imT8zg8N%wx-D~P!gP~<@(B#Qf!o$T zGCCR$E@6nxR7dr2`5Q8rk*9v8{WG$$fOPy}IpcVttFGxM_&@{P)oQJ$Uyv+x(c@-^ zYbOE5PF?0MmmwdFS_N!VvE%K-4u*gJX3e)j!6_tU(Byn9Xazoiq3g&He_TXV;11i( zC$;@pd8#cbK#SE2E%xxQt_}{Qsx8bW>5>H3F5PJ-NrG?_`=KVIc=m#05qskA^nD|D6#!WfJJSW zK(nV2%sNAneU@~%t31TtNP9MvD1(nJ{V{xx*y~pn=dws^GKoj|kD?>OE*;26DSCK= zN~*mnTs~VYn^3J?=Fb0bF&JrKk31GG03OY`hmj?=7=y_?e-xf@A$5s-Ar@RDY#V`R zK+r}o8}>r|CU}H%H|8^m+wP5#JkxMjJ(*I`GwFOxOB{SsHh;28+h4cArFO^z zz{KZ?Ia@?bWx{HtOKMCUkrrPtQK+tRZF>r2mia#un)4B7XUd-7Q`urf@--jcGoNu? zll$1~ej{Bj)6|3zb;IKHdoh^T-(#tdZt2;h zaZO3W9?=l@3!R=!jVjtsarXH$ObG~!=9sIb)+g)vr!Bx3-aUW1u7suhW$4qp&Z32I z`pKs-il>>HD;3Z-$&{>j9S3{AbZ*bS>qxL`Ybyzm*i z*2^&S7nP}m<=Gm>B!E88jz>t3j@U8d_M|9&<>Qm#9(;iNrOFBUJP^h8Q6O2r*jsny z(u)7GEp0dxi=GssX{MS;PAk1(x&Bf%d_9}KVS@kNCxJ09+CzBMD@my@v~<6?-1bo1 zORTKguKq4({^be{U7CSc947ZeNJdNoNCnqcT}vVp4D{p5yka7X>OwSee>O`OY0Xv3 z^>CJ%gkLJO7l~o*lB9?u@3_SEkNsvnb@{IG1hPWs0(e$kekIfdQ=xM?AodvCX!Hmz zO7;yzp^C(J4IO$;%|9-;PtilK?DUq>(Gyi+3dT`r{zJ}BwUoGLT`1d=A+ZMe&IZRC zA^U~)QJw&sx<%EBSd8NQk38Y5tYq;>Yo9G02ijyhh#PQsCH<7yPZWJQ6>Wd=J0z3^ zRj!=>S?FGY9sof%!2ar?kWY>q~7R`sUFC%7&Zj*H7~SxgYq!l?TPG z<)0aPGW%*0wJ#%q^Y_A@rFgA00ZiC3cp7ZsB5J95(SEyq{hM1-o0HE77$J>qJ;6-e zE%GLQ97n#JjGaY*c=P3b)YCoOZ_Iq00({MxN51@d%(V&DF5ZN+`{Alq`iv7M%7fS zhffBzybi8%l}7!9ONUGy2?arDXfpIHAg zA2XI{s^(Of-f)au{OlEQ)FRRjcEP4ZGSWn+bhgDI%0YUe~7Q*ad_kErs)o+i%JHmHj0&_!~9ZbhI{*>0GgHkwq*FEFVLiZ7%*+ zL!5YNI=M`b4;rk3vZTC0rb(RO!cs3kc*BNrGYqJ(G zVBwS^VaA$eF8gJ0selzL|D0yii6*kA_cr+g)H*1?<;5*xDa@c%;Hk(47^C;>X$p!i zP>X&$aPG};4()vIt#t2n?vhU-;Ok$KCCYN6GAZ#t?I-k4`vHH~t16c&cX=R9d!X(V zkGykloc%=CuDa0sX6Xd`(x5>C7D1v7Rt`*;dTD*xu%E&rWtvUQIV6o( z4Q$%cmnVe7?=*|8XZBDn*8jMWwDVPNk0{#U%X&zbsQ8bV2hpon+M@khd8Ng?#@LOhxhP3>I8o{1Aq2Kke4Az#nL( zu|0Y3(GXu!c3YG?qTjf&y4*Mvro>weqrJLX6_1Z=$Al z)}uE6qG(?yG&V}*Q-1LR{aT4O2IH*QXVft=&k~nd59laAU-J%^t!OXnD}P@{;4>SD zhYP>#*oXg#UD0UV?VGnwL-q~kqIvr-HXW)8@^wWOeWunln5 zUqw)t#Dmbh=FR-$b6;8prmFKze6V5-I==yukdyw%*)4peKxyU&71#vWiHRIzQpek7WvLFRy|8YVw74cuK z$v(Iz;QgGt}Q3O?wuiw(oxm+^>s>RsTB)PYZj0OMi`UsuuBdBTIH0Y&R9o8<5f~mjgUZpCVP$h6IB%ys)oWE%)Sp9chsHc{Fy{H zHWBL+6e#`;A4F}ixUTMEn{mF#EX*;Fc~ebDHWiWDK&HEb^!~n&@DBwE0jbt7Mw)z+ zDJ+Yn5T{K9)2seQGZvUtqsM&oF38783{E_z1vrH*${3kPO>P`1;J6$lO`ae9t}dt-!B0OJXS@rC_NW+3m{rcC8P6 zgeK#}u^OCcj}fV=d=GU){`B3#nFFeB`)|iop}*6BhxMIzw^O5dGeSO!gCZ{1V4-f0 zU<~!6)A&61)xc+1oCQ#eRLv%Lro8&(^?PdZD;XKlIE50+hL!M{mbEqh=uZ3MlCE!vK9{U*NiU_u$#2r4SF%$ zE%e_Amzl^@DIK%q{vjb0(Gs z70UzwGTbbR7-;Y~wSLk<%DdU%n%YG7py!cDt|k^ebKlI~In!CP$K zJFG}o=g5pq;(J_Ggz7`)R|)3B2dspG52BWK#^E_N`I4Yb5sQb)Tj<~vF6#gxV>HWG zQ!sUh+J0Y5dcgVrpO^OWwCZW|ubQBDd+;d?RS<*kW-`?5schZTr@WMMAY_&wSnWt? zqEBpFW#em_W=K`r^X)2n(I^RM=2E*a3C%Zml>S#+^_5dAkg217qRNhY8Iava{NdN@j-7G=i5;zubignlFYSbPCuYPC$(dG#NQf6_!Gl|HdP9 zXq83(D)-=b6X2bgocJGrZ^H@<@l=!FN<1L#y9PSnNyZTPkN$q$F%c8hf}m7XMQa+e z3TCVu_eoO?8T#h&g2V1XqqM{kog*6Em-GsHsXPhl9DP8{sLIt6=an7v-F5I=McR0pS3GnZVPCi= za3+=LSaMVk!#hyuX8CsHgQ+8=%b93sXR*wEpQg!{iy$R3gv-%SHB}M1E#)JrQ_dKE z2?VYC;Oo&I;?C%*SLH%;-Qt`{U96kE;-zK??CDZD)A8lq(2| z7s2chc-4nOiu@f{+fn1XgpX^?V3s9&DJvr*C&;r*!vaYWGZ+bzW){++XBZIgxB3KG zFE*+ibD+9PM+hLsK}w)NaMAoaLg^g24AV`F0v8|QW3;~>#z*w5z34>K!5vAF{`nah z?sLptUM9ll=`VaVT_H+Egj^;GW1PoJRzwxI;6$~z{H>$mF1tQ;kRXfx;iHw9O0CyY3Y#4zqGMU{7Zi-rVAP z19xD{c{zMyguU~U4^jVMCh~UJ&g9Y)f*l-eP;q^tRJIvrl6#> z@7UcnauU9e7DZePN;ZKXAe61|oSYz4rm%ymfJ^XEt5ciT&Tv}I;RL)_n85F}*SvWl z`4Zt&`;Uz~N4a~~F_9W;;-jE)7(q7X3sn^A<)U5ns4>vYgbN#W#VvE~8srOQ)@luh zBaws*ar9S<1MEQEo&~`87`vxTbn)i&C^22joQ)pBDS;FLgIW0E_h(+8wRm8R*qbGT z1{=Ij@}$oubB_@QL#uC&F(eo6-)!SPu~{u_zYp4S^+n7vzyH{tG-IL%hRC|mjDo+C z^ypRvOqcC-d_h_6IGu9Lt5PSp^3#2LIbzEE&U-B25(>1t>l>6@`hcf*b(;czH(zOT zau;r57xyvtNS{xRR89&rA)X>8H)J)B$dFOR%xxEt+Z5+P{7|1GqYhm@*z zG9;<8ZYvi_auh&d#p=} zSHs%{MZvIJ`^wBk9^!IuxBhLDq!#ER zNT@MQy=q<*(qzTmvcKuL+^Bzsxq|4Jo}PA-$vGvT@Ew@WWq`Ha1tM;;z&T7?jVo>= z!h5-h6vPAM0pd>!JJ8NO+ta;wQUqV}B*9bez}FJQ#KdasmF*2|u&?%9>DU{$c$B6$ z=lXtTSwUkj=Zyn~tVf*S9M`Zsm<>D=F}c%q@T1xj>a^ty|DJSqBB}azzUbkat7XkH z^|(je0nTz+6@*=m7%{g76)zxGtJ(NCUK<}rT!Z{u5RM`8kHj$}T|X9nTR}suF`sd= z96fMHp>LwLh>+*iRWtFIZQEsxMe#H~|Lx9h4Qug4Z#omv3hn4HRK4<(Z`MfDuHtwP zD>Gdrpx%sCr)Cb&F|NV(eWoXKCCS=6Q6hObETLX-SS%K`L3>UW3({_Vn}A(@-s?5w z(+{!;i4nXAOXR;)x9`LwQY8IYbv07uq6sC~vfjR(6WXDTd;FQon<9N{jjHM<9qKXD zk|^rqy6AlFx9DuL$@H!9xWgU-vbeR7hNNBiqHKf;6%74L3wQ(C1;E=20pXze3FQCW zYVQZzg_*%t8r0jW4q|G0PjntU;jzkP_i>x_nrGZ|5M8G=EM@1OSyWkg z2b)maeWYxskQBB5`2Cr{Rk7x1$9v8DA!t_Vj#$`GuPJX^hJ>PGUOk9?KtI*JRYsze z1gUyqGG6km!#6dXHULvppMraJp^Yj_MF4Hz56D?`$I^LDuQZ=n?qriPfj(Mae z*KaoSaPsICH6;GLPGVCl(VcHH`YbbhU$r~Ipk&(e$rQlmoe64QySTQa?D=ipHuMl4*E#nVD$_RO3nSC$G}fn zdGd;kWYBQrWdK$sOty}r z3SfYI`dV2(!GizB&1Toc4=Kap!=bMz!>y45W08Vl!}|--(Ngo)p?kdo;KI1U;||tJ zOt*>DZ9#|jws*>0-jtT&4ur#>Sq4FFy9}{Js1Znf`?;#Wj)ic2Wl^pk5LSeDR1A#O9Fq*k>} z&Mydyqf5CE<$CpIM3qKynb!Nz!JdTqnl02h_Tkv}SmqmBzYm;()o)k^Ruo%s<89(N zv_&R5Oz(SVNHTQ6M=O>M@{zpPuKWQz6v`sd9cs;tyYw|yTi&-1l%!W&(38F(J#M+9 z@mW)G#`ORO*C1c^aCWo%XPy$LakN!h9oQFFlBJDK+-4&LWB+5%r#g#PHxYS%Fw6hgy(=hcZR4|j<;RZ)pP40LuStE*Q*v1t(~aGJ zTX+kdtJB`uD6X8bq_}r%_jBX2wRjzy-su)+Vk)tV!f&?BNxW7)=d<))y`DB;a&R&M zZ8dOGj^=&On(wWxwH8OvL)9H0H3~{nMDZcI9^m;UcCZxS$j)h8F!VVg<^yA--@GmS zf?Oi{ZJg>oH=C)PxU!dE4qb&$1OFNZzNBfa}{cnodznS z-krE5TGAb3^He)lz@l6o`egl$`L7sT5ainDbTl$lS6Wk~^PO)t<3FBx@KdhyrY_mcQ0BsYMs;y&y~PPn(Rk9$CcR zwmRr5Xe==YbY7CwxgY9oeUD7g1fK7JUk<%~^bzOH5RU{;VV1WpaJA(Jsn9`bQClqh zD#5vuqzAk0@B|DMtP1>*{dyN|iy;9!>A}6!Q+{9+pZ#uL9Q^6}e&SyH&r*#-KW+L8 zW`|ekm!#`hVL7;zaDfH?C_XI(&~fr9V`u5hnnKe=QU%H{O)Uz?ansk|inY7Ur1;3n z6q+;GX2x6kA9&c_*ZjjGNS`*4sS_WwF!(s|75FR_d$~kLpDy0g|-qc8Ck>tY3d0zt{yX5 z3hDLMIi=aY_irVJieb(>zX16%1FWKn=#ly)G(E3>Y*f->Ei%861*|(ap@(WDqrgo<}CmxDdpOZ&1P!Z$F#S261-Z z-v=-~ubuG1cZ{Mb3kvH{LT@)KO@H~Tvw=JK3OIuO`k!~)JmzjK49w^-hA=)xn1FfL z<4icL5tx*h1y%aOc0_V!{3cE})6^k^hu4L$++WCn;rXnci$y`7a6^+1`Fz4$Y`3TT zh_iCXteQPfnR-D|P91v(wZceInCB3K3s`x)<$g2I$^u^0L-aDDH?849;>h=SgkIr8 z&Xcxzf4p~Im!0)O+0Oh7hPP#t-+@$y%Up<(#bM{qu0~%Z**%gMU_od0##c62jd}OT zenN!gWCERg&U^D<4zur4k65!Gc!tZdRE9QTYmK>I6;zD|%rOigQEh8p1x+t3S6pvbcSN&BetWR`pUK$(u$Dm6v$|IF zk;yxY^AE@U%Vti9N0ib!?tj8745+P?Wt=n(|31$M>+P>rrqAJ6ytmLIJMQ+gs99AM zOhw;NS7h(=>ohy=LG`2YaTZ28DTqtI99~It`CzYf=^s`~A(Nd{Zf=X8Q$3#j#&PnE z4Q9y~EU&;Zxf~1G?YX&+()buFm!W4;uBDjxsme(Gk9S*^2l{=!03y2q1AlU8q7;nP z%d{Vo-`GpEG2wD9@y83R$<4CbrFVV4@SCS%R?_2c@|ZmzO8ZT1AFP<~)?>(s22M4LWFqs4eCYZ0Q#w z8oQtV?1q;X4?-TMe{a*cETl@^Fp@U{JQI*=+{0ekGXs2Il)a^`Go9PdrTo&dHa|}l z%-fB@fh8y{Bv)-%$EI@gisLykLAfq>e`OUcRZsaN`+I^`8Wabyjm1z>_2(rc`Ii-R z-LG87K>5&+1=2WqE277=LJ$xpk1o{u`l6&D-bn!#7 zDfwMzqYQ;pX$fTZve8*0$Syc!z6)r}8%nUpVH_S2ZQGFNKTv5`cqjp~pQq9k?LEPP z3D*Xwo?pB5l=+i!bvE6G$#7^27%VDEob!a`-Oey~?ya6AC$CG~9X({KgN6fCZLJYE za00)R_K84?I z#%#aUtrFWi0#iQ{$QL(j*AG@cJC0Uxj(^>wyOM&h)^)=>H{|&cT;J$KxUB}`YA%0~ znU=!5$F>wMN=iw~P-chPMK(8Y>vQ||EguvK;h}LxE6x>SHAVK{7|HA->k)Bii_+64m)Y1Nw^ieDm5Eg!qkEX|Xb9{1<(rcD; zd#EU}xj`xfp&8VpSbtxV=Q_xk#80~F(wk7tuQ%53Xe59H9I4=bIMjbULo278jhV1I zm4EIyFHhePq~ggCgD&999;(yUjxf{Z!?8KU*Ra+1UT372m$7Wo^LV67d%@__oYqH6m>d(dWqVePOOq1Qn5t9o{s8EJpkCVmL79T(0 z)@_dy7Y^YbIy}XER%8w5EJ8{JA-u7?kBuLCIxF2|sPckiNO>t&Zu^s*5i3y^Pma#i zea@>um(X5<&afDt#r2a%fy+Jj4%8z!+~zu4rptd5DcG@dP+nEp^=EQq^^6^3UCVXi)G9$j3Tbsd$J9BPg_0Q+Qk-HOa_5T#d-rl>q#%KycYo(*l zoyReZpk1$wFzhW$%6IB?tNlmK-Y$Okf3Ry`#(R$9^%ni?h2_novOSJh_AFv+cD&`} zkFxCnRiZ%B*z-e4I)^ppmXc>hqSjVaJX`mVw|G$bTwO<^oAhn(0_~{;;7(pN9u`E2 zb94y`6dlbJ^>sLpwD9J(%&<=v37b#pq*2@Ix<*Cn4$3wv;x?gjK=9;N<_aApJj|NCkV4?T{k_Us=6Q83 z|Jpx+rqr$Hc8%2o!{9JffjRtZ>$0DP%W7U@4fQ75S&F1U)9ntkZYDj4^&@^j=PIYj??%jJp%K6aiTnD$(Q3gNU!7fDV>EHAOrEtf9oS>!dC=QnFG z7gwcarMcBnC7Nuh$-SX;xhAris&HckP&8qjc`37~CEESUj`BPKi=oGjXnly@S=^WQwH^4(49v#tW0-5v znvDJcz-n-n-eicz`AYkV%Zb4h!L6I1qRc41b@ev58LnR>t60|i^L%ZTA%_C{wB|Bj zY>Ysa>TtPIo#Y4noj`54Ce9^=O!d4_r%@@XGWEx2bU#Z}(vshN79+z_|Bz|NdSX06 zCT7-Y4y;_U2k{6#E|#z{0k=EPnW|Rt7V~We*V=2Xu9ls_hgF>$+3pkVr#*3PIBfkV z-kriGn}VG?jX|f!hZw_;WSg=RQBwho@8SWm~L_t)-+06iRV;OXAwe`B|$S^ z8$Z!}c@i7-)8{a>=w6fDuJ2_vVCx6LNZ)t;LPNX{hmz&baRP@+lj6=utzUu|__KiD zhXz>!@Dl=joa_Rr`aRS7Z{&m}?dK=I*i#(&pL-bN2(Z6j#0#?w@?kgLhcV7y)RspM z+LAVOS8q>8FY1@W%*OH(nQ(hubi|1*C+`nod^bO@MhMsVKGBdlWJ7t=wST8|jBM{d zZJD1WNYe_0D{~UbKL~8z+$S8603}+Kq#wfb z(c8(uj$PMvU`hHdi9F?9Gasv_&ozv;pjf3uWLeRV5_f5-S2>|Fh~p*xWnRZCf;sQ! zFYpGdk_BUN*+@dsfL~73I9r>n6Y<=k8zFMkvvjR77Fm2E2_B~)h|Wz@2*CuN(QV09 zAiOZa<_VmF&40Muc5_rroaK@XDxQ$wSnyJz?Uq{X>xAe9D4Kk0hcBu)+G=-JOCo3C zqOzZdq<5p5IgDcG0(6Ll!8k7VQppBqG7wGla8u={IMY#1aW2v9!)r5At(~F?V#m&&55hrNF-1>9z zYoI8|OIe62Ktk;}!jwB%h(+R3zXtpNBkL=}+S<0Yp?LA)Zbgby++A8|DaGC0p;&N& zYk}epZIR$^!L2w&f@{&>5L~|ObH8)%KKnd8`Nxlpl{M!a^Bu3mb_Qob*&KxMBt@H zjg218mmbaOLq<&g61xA}IHYZ&`EYnAdQzN1?(zCbmr9UA&bQP=+5O3c)a_Yr)%y8T zo1)?e`?=~P=oPH#HzwK$zda)P2$tg6S^WM zx#?8Rp!?2Ud=q>VNW=sFi{*o0NAps>KaKXt)c&zz;p47X!?ho|P+1qc<$0-l(CSc- zR1^vVQMm-{NH<+Bf0a)P)3K~gP;6I547^S5TW@+PZJprJ$RxGvY%?oda3T8xudFW2 zazBSoF64tVx*JJ4yT+Jjb*HLMpo9+AUM|NB&Br8)`2@C2=PYaVw8VeEJAW|_e-Pat zYFBomgx40pmD&%x^i{PdGFb-&6eLgjEipIm>E|vpTh06o_^5q!>I=lzLrfZ^t9w!t z&{$VCRPX05cavt~Kla4S)yVI>F@u$7##ly+@EE;+3Mn`=Z!#iT0@RGObbn1~?=ZUm z>;N87^t2wL=>`lFYS6l%)7 zn#`|e?Vi%=+%a@-!GzFXLoAoK6JzoUWh0Rh@XdcU_C?P9!bRv0Ny)Is5(MAf8TkV; z&QYphAps_=K)#8wgSLs~4<+)~&0WW4Qbfu;xt$aKF{y3%= zsmD8oDUg%Ukcm4mk3=Wm5g$mJYz;9WUz3M6@+s6ml~OcY1m0cFc=^sLlgHin9{Y8& z=onmwS%rP)`$I3Y*IcS>rYmtPp?dLHsAQMsF{?9cFV5#<>e^|9tXcJGjiKy@6h{VG z$6vX4n-;l0q`Mycas&gp$0dLMyk?Dod|S3doiP1`1a^yl!IAcnvILEsZdnH_z`(VV zWOVg9e_&H4aEo!HN`nfK@;FeojfBKer-AAPmU8rh_K2I{?07>alo77OYbM-K@}O{~ zb&bj)v&Nv~B*br>ry@ zt+L>tD@9q%+r+s*I|yrNj~{N_tpcUX1i^vxpxSNm<@tNx-IxA7c)xslddwbgizLag zIvfK=_Wtighto1TS*_>IhXo!zRBl)DM5Za~(RGZ2YA@;5tnRbaniWg*`Oku5iFXkz)& zYtN3}>Bso#a6oqqu&%@67M+`1=IGaTB&)$q`fY&PYkMt|W}f-$$B+DLZ(mw?*v~cK z-~_&Fx7j?rbOfSR47dmh%rPaP9G?1TEjM|cyN;C|_V`Ju`Zip7Jd?<#Y6nwLCoC&v{=kFKcO^&mr72-LyB)2#NDi2o zF@g`Xq{B&;uS&V~i+Vz4j%{5L5UtwV0Lg9lJ=y5BEz!WEyU!aTrv;*qIH<&;2Z*(P z`Ej`OD(PmmI9J?4I?poXzp_#24W~i^7RTbUir10*CqwO>c|Kzq@_a5Qq<+go7cZ~v zkcW!J!-;w?uG^_c%h_rXf0SS0v@agAqQ>&atMv=Hv=dYPM0R0rhP?kYq20ubFS$&6 z>>M)=Rh?cx4<&V3XVlBfp1T7AlN{xxkF~yhk@1fM*L9g3fBf#n=1y{L%;FJ1ac?nX z{hy-5z^L*VF&4-+oKHvJf~s;Ce#w7&E`@lN(2CIgPP+eV;HO7?v5-{kM8Pd>e-rl|2N`?ULNSXtt;@YHgU$w7CwjLkTV zhZ7eQ4cJHDRfqvhfI9DM)G1ZfkwnxWrp0t0g8ss}-wt{rgXvz3#>!w&DU6X>iW7XQ zw#KA7%;rVD4mHggp<`kHv>ov_f-mEB*@OBCY^Ywt+Mo5~_&J@wr^a?1f&#^i7ijFq zR4%Vv(aTh)Cuins`2f z>tw&LDx6dbWmOv$$V49LO`EN&a`Kz*7wZdig#;#RA4CHYmkG3-DB4U+R5Ru8teXQU za0ZQX7ULQO2P5{5m?-1V@j85dVsEmEgAMSuWm3AYh>3TstxY{4G7S`kZo>GZDtc)n z#SUB3&!_8yJe?H`};+#*TN5uPuZxD|q zqHPd^+jFe7$HfGTyuFE_&8i_R7f$U)rV&S<)fw`;`aWEvGffq*C@gh|Znkv}aJp6v z(*927<23bc_vr(ZZITeiv^9?{H>N#S&4d{_tEhau(o!88=O%KY{5KZh0R0dh7Dut2 zhBj?T%Dq5E3R4w`VTm}WP}KBw#L?Zl6U1P=`XXamFD*Sz@N%K-pX7N({rJX8s4HS2 z2Ss^N3Qn`9hqE2P0r0{3BDKbGX>hof3upDJR{Hgb6x+wyqAgQs_g#3%LfL5GsGEx9 zo3d$_5#+=f`_RxGJVj~<& z(4=~>7_&01q{DfAKR5QbYlW}SXmDR}l;R>|xs9 zabBHo$s-25(}+>vkH}2?-4;S3{+U9VYu`TBzDUsv73-flpeZsVDW3TLc^Tmjf8QFP zi<`39$3gMAN=~TrHDSOrONHug^wrjTQj{e}uI{kY#qkD6zyDfRx*p0SO|5QaI2i8N zSMYyF27JnAHfvYoPZ8S_dg>--7tp?Ae2|Z@Z`uWV7KL84kQFo?j|C?P>|q2QeA z_KsBw_1*`*46=~xnot2{zC;m*iY*c46Js+Xw=6{ZPmjs}?M!41*CP2F@v#gVQI4US z_9K5(xzs9WX>@Agkf1H&7($&jLz9AX8f2iT%z_!Kcdfs+Mrphd%;XlSwQY&KWj2!rM9DMr*e2U^XsGGe^Qkx z3S>%}K%)IM5GV~=0ZDp}eS-sD|G_K)8zkOwby@c3DpU{*iVKRmC^u_NaTS(%9$ES| z+Bw*BN~;|Aw07UgJw?IgIYzvFPF>1WmjSFpT*U><1F8d>TW#VrVt6rCk&S=I?S1c; zM$&?6XvP4kaB?QFUjVx~)%^{s9_pPX1o!rBC1~Oh!zBbu+ChraLDF9~u_$-v-_(BG zMJm0s0H1R6nLG6Dnd`{3``X#s8P*Gu`zAqs{E@=oN|)LfTg*!SD%KkJ4p>%Iuym}sF-|J@bA zcrlVl=8$x-L#E`W=soKvWA-#Gb#?Hs{j(!pl=Co7Us;!?4j5|lSr@!QS0d4vv1-p; zjMIQ101}P_jm^bmAM(me(JR?x2nu#z1;Yf(E{=cy#i14tYbm1*39|RMS*r=(smLrp zA-iB)#r7yUMchAzeW-RGDd}SqX>3gL!dyGnYK$ZG(mM`xi>M2@7@D%A`YMB%nlQc7rGAcjnBpmx~= z;m}~UEHu3pn{pxOvImAdA5SV^t%JnNi|ttAIl4U-9p%2%^_Z0yF$R5BvmcS_)n_@-x$8ZM%ftLbPmJMZQpmaA0&cTqc;lC_n^z+Ih) zn<9Ef^!{2XMAf@YBGD)7{Z|yiV_7UG$*&KeOm8C^r_8RMl7#-t;9z_YtF7;Y1Vb}4 zw52)d$^1vt%C7vBzgFEbHVv@fgrJ=6uYIwD7|rvZYS|t5-IH7NF5U}GpwH^s5Q5q9 zvOriV78yu{*}O(!A?{6WDEZqRSO_=M8!S3UXb<-e;p&e?uM4j0KRGJSTaP-I&kI zA0nU-(7@%H887aN_6qaWwW_Bug z+ibNbtk|^=5{-_pS8bJHbjGo;YU6@m3v!Qb7me1-xU4Xqd_kk^#w>C4#yAKp}wajA1U0JbwYqatTF6JcuFZUUnl1 zsW3d*^QF#Kds*`t!$H8l9vx~6o>9h$fA#A044hX#FpH)7c8(=~c*O{{F zr&|1Iv=(m9;0J2I(WdyuehViZ*05>~AH#yp@Aw-L#4jb8FE3Tw1PjE;yyEI){?q!Y zEL%F-lm@$@Q*q77Ci_&MR?yip%Fg$;(H0ipv3jfk>Zc?1;QZ7Z>I2&6`x5hqC-WIy zo8r>mdi=zvAtv7wze>$COXAKN#b4sP(S2bhN$@P|mR|_Ke;KZrQhueS#zTqjc}W)O z`zyl6OzqG%$gp|?qn#Q(MvSdQPr9B;8`r|``s(ErDM>ef&;AbqE)luRt?ZK?m*&+| z7xM|_Wr>jP$cQ?6ff&CWy!`1=ha!$#W9C-->g-H+_$LbGS#-JexUxz@UW+Z zSp*dQHgtOurz6st_%m{-VC>CuzKby5+1Wvy>5NX@k+)OzPA`i7$8s-yylp3p61r=kl;qVhMeQV~O3TE+^5OjJBnHj$jU%W$uu~DQhcq z5KU4BabDcc_^ZS6D;_YzUIo*=bi>ChB;W_*z<|31ed~al0O)RIi|w?*NY$5e zLkuqe(Hq&5Inlf7%>?bVPNB|+Wn62)hNstqtl54&2WM@nSI68PF5Alw!fl>@&X^7{ z*P7K8E8W14M){x&DD1_{M`n3>(yG%|@Kwi%VS@1EjPX#8$E059WCO!5goI9rzjO0( zD}{6Wc#N;5fXM-{d0}NRHNIwk0`Z$7_$Bhs)$xFQY4^2}TDz;>3(8Dh%khT7HVD*# z+InqS8R$c5_bs?>BpfDNzp{}K4SX;r;$kzNnTVew<#WobY2Z3Aej8hl*?iCTPyMYj zn^qP6Qe#gcR-Apzh~YXp5r5z%XWH`#bC{4Yzku*cRz@)5(b;{~{T(;~@TUWclcC3> zMwk+~zH0wb$f9$k>7>=d%KFmq`q=+*Y&xNRaGvg-m|#oi7Hze`tEYF6v$LlC&z+5@ zV8C-J|B0B%X0AH;aloa$jC#8Jkds25| z7~gRpMv}es<7(^JBku^#R@4cEA~fjZOzs5l;+=OR`qB=dQRbv>Y+3HCJeoCol;$(+ zRu9oF{w@WVG0ccpqk z^qB}bmG&(`_Jp_EBYDB-Yt37KgCX~*1LL9qG9j>&WO^QO+unRDBk=wIT}=h(pTJ1C zx+O%pS}|`zSz|ZY_6D|%VY6UYo%Ctff;sB*<@b*X9yOj-M9?d;&IY;#lf$cI0!iO> zo@sON>5q)tu!ua*CrwdLo|8q~z^jh^{dYgHc}4qs*Tmds$5fVLkO20QZg?MwH&xz*DhZNA!$__c=TJQ zJw16@5A|qO>AL6LOSn||Usb$syG)81zkPHDt!FkssqaoDg|BftJMYh~Gf8QxUM{qH zD5o?&o?Lg#R%t|u_1#+nb4F5&jVRC%c#ZO0n;21yo@C63>Q$nJ$YW^PPA5}c!@uX(NI zP(WfhvhK+9S>6|PC@bW!_KEPql}eeKj}+%usSWS*mnv&hse+wJ5G=x6CjNJ7`4`4n zZwAw=am2*358<5fmlagvBzVmG7F2s_G^5|ePx_wDZ%wVKb8s=`PTw?|MLt!1lZ2g?r*VuBv)0BX9UY$Uc#=C+Zl?c>Zp)< ziJxZdw(&ELqU^j_tMXxNzj%CnjN1LsmBi?DkQEbr77q11OkX$&LQ=gwdp7X6wagN9 zW(V;U0!z+PIkMO!&}iJ+K$Y!)AnuEQV*w9`YmYyB-0SLQN3MmQR;NK)kLTZLjD5B( zXOo<^24HuN1;otW;$H{h9<)nei$9te5b7i6RW83EQliV~z7s38lV(e1)AJ|Lg(+AT z3&^8pb-QKTy1&`2rm#t*ti1K=ZZv$)jI~+a=Y2i%s$%6R7}2+ijDdOIgY3*Dd@`eV zf{zzzC1Za=rwRNeoYyO~2=Be#d8t~9D9g2$R9P5HHpMrv>xVX}MtS1(CS}%$%kkm0 zx0(N8;t14aMytE zx>B3p)WWw@dl&SxR#n* zccju#w8?3~All6ezG3PMXrCn6Hz>zIXKE5AwS?1>;l+`sgsH_==vowsI=oE;9Dh_c zl`=4UDKSuSd>@u-BF%n~AVvXcaCvaZagF-%Q=n^-cCO; z1dqp6oCic0mfT42n3&uvzmAS;yxlbcfb$tk60oZb>3>(+<&Ct}oj1k)hmZR+i=zwY z(6jt6;42(Eb#XDXZHr!%2-Pa|jE@y~ij?!;@TdcV#N0L)U+z(f&7D@RN}GptVDj9} zYdszeYl1+YRYrAJlf6!Xdj(DUop3qsdv}mFZ%RJ%$b5^rm6^P8vO$ZTW=g-~YJK7y zOMT~AD|ALS&f^x&;od+*qiimBOO*kC{CWP@NEM`{K3%af zr`4ru;z&PTwkL#l%in|jmI-pt`-;UtuLKY;)iXU(_`irD{#r2;E_AY*m3j9 zI~?mm9)`7LJK;rD>hcYk(KV6m^0Q%l)P+f~K607FN*(>cT3XG<02=x|O@mSwHM?&(`H5+p8Qe1Ad~m^$9GIxtUYA)?4uWaPn5hqtV6&^1Z@A%Q!{R}oF1TgJn{PZQ=7^+ zVe7>G8O_jrOcQ4LQJF#KXcNi5W90Z4ME3gD#z6x`T9`Y1M&2J!@coMzq$)Sm4YOnl zJgk+E`W`T(a}9fA{K3kIapna*e|KLJpjU$NfmZ$1Mn1!4Q=!kL_?o3>T;W>fmJaJD=cEEl;?7W&Ezr{K zji%*vTjl129jAft(rM)_+a-uevc?uUvwT!ez^U28$>}M*jYg0kTnjkr0^%CBIdQ3n za5N3T)o$jxsn@O&6>u@eiupq55Jyp^ z%D`j(2$zNiy5iRhtNnvb0Wnw8Xc#G1X2k$$R|ubf^n!mBGo(S&pPONG`Z(Z~qXA~7 zFJs0*0KYNk*faixMReKD>Y-kTnz+`W$Q0Fz@z;JN^4 zUlE0EN?G%=MgWC12W^1y(Jv%Cy+!O$HEqA1Uh)VL#F=cE=j#ZipE`F3QKH85Z}Ob# zUUaO?aXzjL-0V4Kiy%iNCSJ$l2} zv~N#x?$zjS_Gu8BxPzHr;Tm?~bDYmli=MvHaQhVhL!Js?Sd`=`Y2iG_XI#;`d~MPwj2+Gg`RwxdIQf zL__FPaqJggHNa{0PpnEb+#)Ef^fgv>DG4PGdGca~mvCRTVJGUm%X*E?rWH@*S7zP) zkag}*9ZMkzR2)$Dpd0aIEJ}o?ekQl)V70f{;_q-f`R{_XeMVIR@ge9g4i>i=cp1X0 zhc9S(C$lo*c*$7em+?y^D=h*d;qn_{I$Gq#H^25KcTz7Ih#8K~mqOUC7mY{xk4}#^ z!nX)A0%iWzAhSM!fzC}XkNg#BwzG_}bx{=L)(j=eB@hfD9?qQ|ja)h}*AFr}T&U3v zzPM*~1S#V8`Ti1~*9<*3pmFenq>~PfKSXvw;_B_r!v;vA?m{v^n8p{<$DmaSn3XW~ zTN<33$Ss^zsw2fere`xtR#!(M=H*=~0BX9KF%lgw?)&GI9;&xJEO>Py(L6B+-hrJ1 z{Rgj(-af>_f7}uEfOgxhfmg$Km@*``jRR3c$y?^;OQ7g32Z(G8OS@*cioZ)on1RLiot<2v%EHIP{?YH;e@T?Bw~d zZ*C*dv(VX)py#errqkla{N`DNm+~rNe`2k1OJC5Tx%V>KwU2+x9CADlTN+#XCbFRC1wGDtQrz1D8o)v>SOe8My6nqu zB?G4_D^6N0pC}*gBcuf)9Rf-`tL~pOsvMlg*-5r>yylBuX=`(iPJoc7+1iti z?moer${UKR&a3G6%rpGd{-ffR9S6~4Spt`VIw3RTGedLnsbOVmN7v^4)|Jng8Sq^> zeP+ZY6{!^_LRs>Jip;Q&y~s;ing%$fPXfY`d(J$TE3lfm0lUm7z@cxxXJJP9c2JCy z94Zj4B#FMr923da5!xs;C?+u63rpWc@kxo-n`ZIKpzFFdK@G3t6Uob3LNVLET#ly_ zYOAZ7AqtyCs>%0P+JxI<9a+~k*&~7qn z6bk$Fq$xpH3Ypr{pp#=<9%{&XPz*RSN|t>S>YEKm@f-I;W6DNe^YDx991o5;ta_=^kvb2!N_+=T-4veLC{rL@R8ZGn_vD@kh0yKX@J+BdqoSh7Z;tV< zb(lJ>`FlF*89S|p-Z9iX$Gv^Dw}^&lqtA+N^AWq;v7nDA8=OZi9t4BO&uBzm3_Wx6}?3oqR|6T8B2-Sll&YF)@qJ29Th zB1)I}&p5n(`dFl>2vU(g|K*1RTE>WSIrVI3n9DBKRDV#BsJ@cbH}^)o_5^|zg~2v+@*}4@G>jHDXC!Aw@~>K#$mKt^l_vtw z>3goi%SPY~!)lPi(bQSU1tpE_T>ql%C?+kNb{x-v{3z0vzPAj8YWJzb&hiiq#by#O z-V=a>x{-~1P=`_}FNmgCg1C5zD=yKdT|LesRt7E*4T_u2MLvkznKS*~qvmwI!ETrC zyFo=bYSHOou_JnoKF=&UcHQ?iL*ZQNK$$sY-5lC|{e))mlsYBe^>-io#_xQM?f0Gi z%RkT#eiT;41`ptwRg-S&Fn;mmrRfD&#?9-A*3Wz_!Yw{l7<0J$|Km0|lx%~^9f@FsS$V- zD~H2Inw~sM+bitgo#5> z@UR?V87C=sAz;cgj+6l_6yCQGCN#=BoJ<)VNzkv_c#`=i0dMOfGdzs)zLJfMS~%@Q zc%h|>ec1jXlkU)1(& zZ+s?vfu%sEo)~QJ3U#Y4#x4Y5hl|kNq*L)|7NjW4I8K%!$`BP3B7LqZ5|diaVk&b) z(thNgpTVIIaQZq!y@l7CKUd0`OiDB560auL%#)d(A%SOxRo#@tM0$8293KW$beF(u z_wkMnoHrWa4Q=`H$Y?Vs`%!GB(=AJ*O2l$$;ERTXV^#WB~22k5ssY{Ue8J+i|(fG||U{ z?ltMoN=pR)YdZ9=$%R6H;5BR9>!ZX6l#AhW0q}B{%M_wQ7QG{6E0TJSxL9DiKb1kNq5O@V3!{AV|TIY)U@#rhDg6n@(a>Scs@J_D>qPp^*aUW4j1(ufpQZ z2>M8Xiu!u>sRN5k0H(R*(a|%7@4Z6+-U8@?jL38d*sx+ z*hSh+Qh@pU0z=FruGJx1=z+S`e^1_CUCK7SxCOvo_%;13E#hzJD`{#Uqn~p6020~@ zkoj$5K~B@pl!rBe{ki-ArMm6D%(GJgnHuVe?dS9fx#A~fCnyNKg1=zBuwSfI3R1rBMbHYRav$t3UBhV4%C(gcRMX~$kWj_R8Bo6gbI!O6nV0YC@47pS#OV zNyE=FZN3Y9?Begu>Y8pYCDEHIl<^e0WcRzMVF|(I=~ND#5pd)?FeJEF;+bv&4fTl8 zl`vq5;=X_k_qx(1jt)e6k^kdJoZ!mNfskB*gH+eLuZ8UG!wE4e@0>GN&TWrlT6XfJ zB%;!}iVyZ)YV_S4(f2r1$ZYt_0@{0$4y&OF5jdglUxMU+9|D2(+p*27mYEfpwS;f8 zCI*mpe_+2w?@9bxjzEW84P&(&1vH2rn>RtI47B&3SMvwr)^=@m@HGp%k#yw8&nh{Y zg=oa#KDVBlI0GOU3qt=Hfi4aKdNox47VZbW&LCDpH+~j7K()>MsXjeQ*xR5ntTAVx zl%&wtuj^I5`0A)%BsIEk^GIa1E4l_WJVVO*W18^5_~%tLuOAb2Pfht>B!wDM(NXJi zM^LG_26N25(Wq5Uz>&D+e^>BVK4uKNqGUD1Zs>ywP@$E`zR2ai?=5cABs3_^5Ke=3&fDXAoo<&P5b$-I|1p*7cjm zFoF0SAwGH-0`6>6R$tCCZwslvZTWpAi}Gae+~9J)K1qN?L; zj^az6r-L%qkELco@XT1@a2hq6Gj8_Rw7Ty|zyLQ!jnCm7=tyt!r-(Znh@u{$tp=DM z;QVO-TOlVI7#RL(tG4ZIdlCjl9TjTljuzfnp`B@y2ngttp>?V)rZ3ndmpmq8n z7I*O5(ExQ@xI}w`N8!}5SFq{JWp4Z;EsYGeWq6%^{*~wU@-e-~Xuf_4KSa#&f|M*x0vfhLsFk!};Q z8|oK_zWOmI9vpGhHvoT}kc&isy}y*tXA%JHr8R_R=o5m^D%PR8b(v912y$&^{k()Z z@tKmpEDrmknBH3bOEjo_kiV*`h491>{|?5^FEGMIHWC~zz$Oh5SY#%ZUvC>EF%F?{ zHd|W#O-ysex|=gqP&Ai{_Tr{41U7!Sxk&2B_2qokpAIJedNIG3%zxC~X+^vSo)cqE z*t1HSG!X)5pDj-Cf-CsX{x1#JSVLHxGS8;ds50BuU?}iIFBIxd#aj7Hq^KKjpb5LS zzK3mk8-9FFq|Hd1iwOXCkWm1)P22)S4E&~=`)Re!k+a;)NYQ?yYM$Jtr^14dpEh?80S)f?~-9> zCj=LkKZWgW$ZW^l8OI!C)+Q*c5zn*r%S=5p-qx~2*Bb08=9kkyYTx_W8O&8_>1dpV z8BH;ql~GQy9q8FHJ<`zqug4JVnP}o+TKDhd0UFW6$XgJXGgt+^TONdY zQQX$N;>WLujT6WnRhicLTig208SGm)ssP1xx`?C2dQ;PBRQ5|JQ;#ANx4M^i36WY9 zv5Xr`O*BNQ^24L*M(Th^1MBKq2xYG4+?+(bfsf_r*$-;GQU zehVj*D}M#pmmjCflhzhNq$izzcIbqg}=1nAsQ(w0EF$A_14&|8f{8c0}incdmvx`W4=ZPj6hx8oRL(V?!0=8gXRbBSg?yRi`U z=&P!Z$+Lfz{^C$?8fH;pYlr3cNm(7-14{%1&tN_QAalx)cmwb_ISC7nCeCX+Agl%^ zc+L0oI=jr~LP=}MwQ6n*&&}KqiDocHAa_2J=MS!t{^UqgX+nR&8%~ivdAtO9x!qT- zytcNs<<>pTklqaz8?G0JVsBVQ#?U5T>VFRmU0>SvwZ1F>X&-Gjj8%$JjTiQ#QP%z! zp=4ze+u*#Z-Pbtt^RL4YdDH6mhH!iO1+pGuDa;Ev6f6D7ak4Z9&Zsx+DFyxToH@uT zN6~S_^K+d1JS{>8?KUaGwo7=AZGM3And=kBcm-s3I|Lx^h$m9fW9W~Oo#Hjf%u_ z@f7vxx!)`2{a-F}^$Ex7CJ|F!{JrzBW>zL!oZ-E~>9?jv%=ZynsO+l3y@^XB=q+br z{!ahQNYNa3I!1l{Yx;CJa^$PeOV11yCKnF}U(GASyX<9o~W{1lOxN5D$!WGSe| z(@@zExfuI1R<^+WcLI9SLre6hOwyq;ZPQ&{A#NCbDai*zLJ%NK-T50(cO)bMCNjIR z4rhk~^GO*fC%cdBh=vYm#B#p=$=EYF-PE$J(WTckSE>YQl1G{|TVHX@@pv~s9loj{ zRS1Lk)yPeakGZg1FZTdlBF zU8a_Qt1Aat6hHOJB{dAx8aN2opc10#@{LvMyXJovo*yAYAm{ngy;2oxGDSA1FKEN{ z=J3kX;Y&Nd1Gy!F1%H#t4g&JUm{oz1)wY?lR&s{w$$Nkof{QO_`$r}3Xasxl)J-8l zT3x4qkbvOrC6s zc0la%7dcIj--BpGT9{ys7I%fd%eldFDmt(RA}*5<%3 zRW-dS^P^&uQVhJeq}9da@!+3<&dJ+L>%|yEWu7+_^V0*$Xj!lj1*pYh=SGr(;dcci zDmz>iZ~>>a*6C~DW_5*fPz2b6^~T#Pn*xh49aREHP{0_Q=j`xKB0z#Wo^IWlH!ue& znH`L&Kr9;}1Z>f+ff>f}w~{VyN#joDn%2uLfskU+$)uhA^sP{u8W=b0;x}j}nniM$ z38i*k2W_JcK|_J3Sm$=}`oWRa+5cUSAp6NN^T;V+cF(l#mF8l8zaCE=sSrH=#M^Na z#P+#LpQJ*5QtzPY7C>8puL14@>5UF!y~x1}E+6VPJb8($|3SrVJ(q^TJIEbKSOn|^ zP~jMWanPJK;eMvlke|}v%0|@reC$>>-`DR6W$>&orON8jL4J-I@@8swWU%fi|bu7*$lE?doW6DB1(&qV0+E>r2YXzj8f0VPZa>%l+@}PYqt}YB45D5CX6tA>L?^nAofV zwI@;_ay^%#+`a~+GbjtxW>ZGsxonYcd*NwM(o^xn_6J)vY?-!S8a&Qw@Rg`>{UFR6 zJgLLg#)?vgJqK&dqo`-aLx3YL5t={I0-oO0s-MnX^3}n<(Idjm;IbM-rL<$aOp`cx zNxj)c`j%?4dZ9{(!>0C8O(C`(uNtj_jb(*?A}FjZ45<|gcR(f8SjTck;j zdu7Zuu;BhQYJ24&#^;R~bT$pl1Zo$-63HJI!zy9`(mbKm3^23roK|CTt9KLS#Ym5F zbC^%9KJ)HCQaf5onl5yjBY65s6s|ZM%jU9~_3!yvzkIaMxZ`)LCYc~nN5obysl{1p zTpopQQk<{a+`c9WhjZfS9mG4#o7XdEP~#}dxwNs8l5O9V+jtX`zo5+dajbIX9iDBd zh3CC-IDWI-wHqa|Ll&L>PiQ@%F}oXT*unIbUBTc8r`!l_-3Hj&%|~EW{hkh%RBUb- z0LGgenPC}$fZi1=pnvHJ=M5b|ikW4d1C4YaMpyT?NTX{lA<)HFEi-s+y0U2y+e1dbaoGD{2%AK1WW9BRK54ZJbnDH7T1h z<)b#khif|As=bFM9r39elyLieM^84=2m1FypN0TFYC>#gbwh2Kg>{J=QTVyYP|^Oq zV3>7yPbQtz5cW{B6oqOk#hnma=&!#oKX@hqYL(YQW-$cuhIFR&lj$d@;a|8UV2Cp; zRL{!p5CWYGlQwixOeQ~yHa7px{}K&Yss`6!r^>OT#$@HWt9!UkMA7L!w=CwP^S(s1 z*xsFqIs5<1Z(RsIIn~HyL@dpO5xcozR;`-{a*~d8oa2yk*+q@IBkWZu*qr6C z={8zDzVKSAg{Qwb1vHd~Ze(~@U;^?R1|O&egh=tNzqcDEnDk*2)4$d439!kEJ3Pd; zZp%vu&bb|TxbzOMBd2ttR1L`qaBq$($2)%azru6)yg=1{Bn8|w`ucy)F(V$H^3+hf z9P2;a+7$I387VCDnm^&HS2yqv?PL>e6Lf5AbZmZg2@wyB&Hjcm%(4E2gJdTQu&SMa> z4=BXuRKr7|K_3|FA*8ioEb%bZXDvC_ThZ;Ca#MTb zW|P=aVR#;G18OBa#rbBpAuI+7@m_Yw+YGQp{`$y@im`tPgMdW2#x$O zTq$cE?cYrEnx43dFALExw&_uB(Y2z{g-RBY=cb{aTEBq?Ph*hft{=X`*TTZN37Ww6 zU+x=Y36=R@Bh3H*F2aRF8Y|W8ZEFkE+L-i;RY*(K@XfKylb`0A?#sxC{Q{go~ed$y``Z_@OZN*3_2|{!0q20tm@@QG6g_cPQnq~|F zT#Iv)Nt(ZuNt!XsT?*-6eo3kX?s7%YqL9mz9g3KS8#@!drq=KOwTlW5YG;V~a7C>? z%ST*68qw7Yj_IAGTb=uiP-#sLnAkV9lA~M`7#=O>Cev^b3|%6_uzn*6f-4Xx1&a_x z?&YFWVtgdJ+$i?MOyMD4fByas!og%91asu~vOF4`aT&86wr*PeuLBORm%yJGwCHh5 zEbDGqPh5MIq+L*j-OB&+GefsX)(k1TXDz0F$K0OZAv~w0cBc`BYHu?vEd-xMk{_V_ zTt!E#-6WLaRybf}`&evrS<}SH{66u+Xt%`{{g6hfn+zcl7WWi_IVoul9&$`@H)3Gq zsdJA*TY12brESTz7@p+^JLEb>UlpD375$f-@ulUa&RJ^f3UM?G;kx*Z5ZkoKy}Z%b zAG{0Q1s`?Rbayx>y*^M(xHJNLvFY9-&F0{Yu2>Vw>`c1}|Lw912Z-Y012Y430>CHi zQbV=qV&z)S>podOQBabfX?16m${|vFAWsvX3X*pj+1hOKnm>UV$qi=&%e~&9 z$;IQ|3`dx5!zOKOgd;=Q8io&0ti>pqCLHyO%X4$Rupn9Q;I_2ng#9Hsoo89}^dpf`S+I(u!%A z)tz(ykFBqaYO~wcg`zE9S{y=^7MJ1>tT>e7?!{e#JG9W^ZE*>O;u73LaCdi#OMny! z!E#8g89q%_+BA zjJ3Sji2o_tB9_GsWXsiOcrF1K8y+Di!0GlB&La=IrXI=4e}qHJ=z8HfzSe<_7$reC zyP{Ozf&VjL>%%&Y!dg)*K)6BITVnfiN1k_Zra&_bDv53Rz-6itX>iY}z402gqEeDsY+ zgG+y(m-T&uqWdHK$Iu?lWajSo6A!3cuDFX-x^!bh{yw9jIow`vn|zf^BhKz~pV#?k zlN$qRdOy#|4-s7SCo^IIFb3nUs9(sf&8*SgL}Y=0YC*3vRwzZ57DPKo_2TF~x9}q} zqG_Fhk^dRqhr_JT@eAW#RY?XYlD(p%}uKg#m*cm2#HUaUYNBn8EK7BUqkN z!Wb|gM8xjmOWBmz*To*&SD!5B#9!H*N%MDgh!A1C#wB~I^#yy(tw$|z0ZV1{KJ0o7 ztY+r*fOQF0hI5=XKBnGRo$W{7w!BAW%i}n+v#2H7$z>LD7v-fxE9;ihp-^o? z;p}ktO^|eF&DXKiVWSktzxb#aFb_t;;Dz*~u9a*`rplelJ^(rll6ifL-OSQH`yYp3h#rQh=ut{9C zrfA6?Umxr~FEwng*glv++0~k0!K*r=FTd%OJFu8u4qnxaW{Tbr{|JrV-ydKRtMMK; zZ)rn;&r(eG&i0Y6<{j(!7zc(Df(zlY%PE$wt?t7HbZMvNnE%4_G5-%#$-PM&1zC83Mxv(vAkB^)N=}9n>TVEqX~yPSb3BhWLTrO z-B_ajRLl2xS&@fE`Dab*ae3a61J95c*`iXitncn@t@oc?w^rYF>}0wDEw2~8ZrlHR z+T^|edTox<^^d$ezW(VCJEVtQO}9UMrnEvlqM1igHhav=S9TAx?`ekl_ohhPhtHXU z;CKa1?{D2yhrBK+ z5M1ClkZx!U+i2oqTJlCa0es`fOi^81Q{V=VfS%h0n-a%Q+a-Z*S3}jg4ePTDQ)(T` zT)E4yO|P4a3njcaH38rFmfi`DL|TkE^=yK_mFgT_Uj!r9Zen&v&=#IA|Q zK?eG6-_Xl3L@Kt(=25tFNQc=Iz8Ub->~uZQ7Ixne^tzqR1=>y}N8~k#pcdreaa$GM zJxX1e&`Jqmk#Ie1ich~h-uD1s&K?q&2wWY*GH*Lvb|B6AMZCs=lb^z4n2LIYe(~2D zpIxR3IzuW<#7WRs^+_1#p2L(NAzi3XPwe&?<_Vv@KG_IPZ`x(_ck#LChDcPMI&&=+ zBoSQRqPzl+bkE#p>Vj%~UylR=RUuCx(BtN`v^0?ak<)=}KFL=fb^HJ61?1)|=JX~t zx1bMXR*^``(YEW9YC9#e_ZRv?l_I}b*F*)Qf}psDT>c*_gz7%;L-F!#}HgVQ-Esc)Vfr6=`nby_3J&dBq8h3Vp*jBtt&G0zBhKy`Y(dLzw-Q`IK@ z>6VRFvcE#X};ykjZH4`=z%xVcF>gCk3vg&<3#s|Dc6b9O&XCi~nuOyoO zH1oxaA9mnT*%)1Pkp&>St1}@~PlAKcbHHsAF0fIR`^~5-3;J>d)_l3-{_CVOvh6Ol zi^=r_X(PVjJjQ@fy}xXQ1ReCb+zzs#=fmySXjd;I#yFy`M)=@rw;SQNIz#-Aa@Du| zWUIy@L?KHVf+Abd0Ks~Xihy+jFP%$TL~7HXa;fRH&8ExU?t)sI{pp_Q6E>E0ubZdz z^-(DSw!6i zyN3X);ENeUHC&i-Wwz|_N8`@UX_>OpkE+AWr?93~VjMjTQ;vk_Ja-uYc&5KQ>klg%?*_ruVs#mNTaJ7Z1V3R8g?zzlPweeZvws z0@VG&DxFF>mzwIVt7}=V0cU|`)~Dt4J;=$ofAXMxR~%B1D}R}8#oX|%eY-;nfWz0 zprtH^3d#|Fcb&qpqe3l9XfdTJY@D)tNp`Kh6Y8e2=nV2rC;0H%jf z#O;-hi$5acPjbd<)4#eu)NY6}GdpwjQ01CztbE}6_CpkGK^G7Fx3)MXOAGogc*0jm zfK&6}L>}n8?XdcdlC1=ey1pJOg*OE5Wt~Z2&hq?LsI$7}LXqKoU1fW4r3~`+8Yo1Q+mHAX5cP?W)h2Mgbp#;Y* z=Wf6GoZzlwVjW`e?A`L4u7erpK-nkKJ%z4oNieH-RsXv%0ZDy*B0V2iZ|S_W7QA`2 zc6(%_t6D)1j~)0ER7$4L1H4jOLzm*rE<2wMe*t9OxQsQgm6l%4&v&1H)Aoj~;7FYP z5DZ44OauO80np_3{E8a1q&t)}6WDG*!EcY`EX$Te~Tz<`u4-g=~fGQN;Uf zU3PZ^Muj8ozfTXvo)0qCy0~rneHL_%T+nyB485}qh&+yz2h6r?rJu?I=6OU3z&9C+ z`uC_+QP6E-k0IJ>S6QNVGY1+Se?Jou18DU|D3Z~kPvdt@@4hmk#O)7z;u*aU9vJ5B z2A|(3d53Kt>-BqSUCyXwT}}`b1Yd?053b#j5-QbcmQOLoz&1)sPz>&WJ`HqD9U&HRz3mtGxW&XU+fyRy%9HC_xj~QGQs( z21R{VJ|83!L@z?f+k2tJe2Ng}Xe%lBlh+%XqJRKZrfWlw$h&Egw0TO(XgD}6YY0d1K zGq~x(^>s>;pegJi3y_T50Ny}+x-Go|5e`cdmvL1sj13!hW98RQa}8+Ap|w`q`|4;a z=O$mcB3H%VL$07jMCi%MzAmi1b>~|-!iVI;2TO>qL%+rSu&JZ(O0;z_l9ESa4R#OW zGPpb{)(O?;(auk)(Qa$D3m?X30ib@ePGnu}syPPS|F8z$9=i|W7hjYG4M}KeYboyE zB7&!u(30iagNctVz1x=3$Iya~tF_212%q1?E#B_%E!<|8Qz&u@e?l}+mqNeFqUZeF zQ~gQ*ekl0_{gTb1u!dRef0>6~j*R!I@})ga~4-WTs0d-fvLm z_;d?w{I{-;!M{^lzioFZSU;HvbNvA&*X90;WBZ2pT-(0+hF<-9F72 zTM?=G<+t7(o1#5mORcz+r1Rx6hd_L9iUlktAP{t+4?}lSw}rgtd#_9X(`V$J2~6s> z(VhE_a+Q}Al&++H>a)-~z?=Q25U>qi6U+x{7pa;%SY0Q$7;SDe5;fLJ$@0JIl!;?B z6@_{X#od>{<8`CS?&m5>lBp%k*UkH4J5sDwIjqy{7K^e;aP;)rKUWX3SedMuTCFxJ zW_m1yeQE&_gcN?jZMj4Q^esu;G>zTe?nj{D@!y5} zMXp(GE1P`Q)MUFqSIlK^XgkvW$m!T}oDMR*?VYyF7CPesAMAe6zGZ|QvpH^Vmad(~ z_W*B_;4UU7jfKhdb6polJy{3=?@@hCZ(-{mnfp(3T){@h62VumMA1mTK>ky^v8={9 z9M<(RqhKQEMs3H{2sYg@(|}O@mUxLj>q+>H$Sjtx87|9ST}XJzd6~&dvSGt|JyGdl z)pNe!0laLDcc4yXRx7WY0YJiLk$dZ4FN^tEud&2k+oG3VQ?+-$IUh@~*@cZn>dh4y z3)A(Rvsx$9zBc&ET)>7Y^}Ww%!CY(3_?>2wsfqVU9L7BGWgt82R-w);wQCKJo34dE}> ztF3=R!;L@ke&+T?kBuP0g5oqsIS$h^z@P8)0w_=Oi7IZK?j9Qj!ezaImzO0e7y5zY z1xJFq3ud1oE3S(A-*D!Z+h#vq8#h{d?Nn!s?ZY%t81l|;{d9-@+m}JXvj|gUi7xCg zpG*8WyKfDijS@pnn`Zp(P7ZHY2`LxtK96|%m8I8p(+jzAJ(4?!&vv^MOnnC-D&t zb1HA?=27Gs`s9kf*-0jM~na zd@sWNmBA~8Kq^5a!IM;$vFwwfCcYry;9f{UHfn=a@6cPaX?>Q}w>*{I2&A91m7_(- zW{@E$b@!_BY&Xl;SU6~n0CBzU?HV9`?zf2wE=rHY{2Yh;P4&)uy-8_X57s7htC06P zEzSDpkE$DB(Ii%>V`b-dQc8Mpza_3Pt)9Gr)W6!iqo2U>8lu(mnT>2O$e5F$iBUomz zXpKn^OY_Id6H3emJf;HP_j7FFkjDKTfXV#3WQd(pyoIS^lvS{*#ZeSa+&-G%q#cTI zMP5gjYTb!LIB}ewF%*tUg0l#j87F10Z_ky2=7A2|lsc{r zUEdD2r#Sb57gV$d8`MmFHkPcj&o8pn0+!+iP2DWt&S~&sPnN!USC{(vC3)4jSlY$! zn|SS%Oy7wx$1fk-%=w9R_{vT&o_lK;SGRM-+FeCWFq+`ES_cmeD0`>O0v<C-NyEjJz9*Ng0FhQcl0V>otf>!i+5#S5$oV-}D7Dp4kFW8vUc{Yq{wDyl*HilysC zYDeD@qU-yaF)(_8ETYo4QQwf#xS~wMwX5*k7}$dM#>myHGxSHOP|%j~Ct>a0Qr;`S zzdNI1ptI=gxF4FO==D#+1z&9FslEhjj}Dp6qSr7i@R-N4mz2af7|&{&b#Bf_k;970 z#>Aw~2RyEoixibDe4O|MI6a*mS&N^4bFkY)oz(^;^a$ilnKUj}Ceagjl4J$~dir(~ z{xR$hHdx9!Bsx@$QH_gNl{Qt$D5>;)_s%-Lb%_t*`R62F;H}$cxf9##{-q`JX3SB-#F_ z7cj;4_n9}B32OKxzSZJjM|C^+&cZ|>&$-#40b8G-lsC|5mqxp!J}BI|`Lx48$HM&V zU3DBmmhU7IZkG}S*^9l~?pkeIE0Hm|C_-sLvb;{v{cIg=M9e+{GsaDidJ(C`pQ^qR zh&lEJquDC-s!*sgBh)rx=+x`(mO$HC0JNc~Eg*Dv(4hS*3v=Wdd>L(lF(r5!x$Jy; z#ge>K&uQeLt!?m%`{LMh?kkHpePMwc8mG|Y+MvphaR3X?KwM`Ah`QnPzhM*#LJ)Kg zY6k|^f4e>Cn|U<_38G~3!Jw0%w1=+6z7KeV1?-2rx3>7yQtx`=ug7x2Mvh9UVpq`X zGan)3l+zmozM@k$h zqWlIZ5yQV{AXHy@BveZ`|+p zp%b{|prGeoM~k3KibxFbOegsr=hTy$=jc&dBDB}wVQIF=Nl9VF8|9N^uH)7nohDjR zzLr61p!2PjTB_cg9ykzMn*FwC>fX5z1_NEA+sq$T!Kx)tgQqK|Y1*%dvKW(;cDU<4 ze*P%nuvT|ziqLBUwOp?2pFys+J~Z2q`SG*2PAO%Yws;+#pPwV=Obh1{Y4jV4iEVzN zw@*GM6A@m#QzwxPd_kz`!mrW?xbJ6SKzFjN)&$4=g{h(S_*Ej0JgA{wWul6xfKT}} zuCog}hu-%sgU8mv7vZsL{+E|keO!*qAEC`3w{`jWT8?kVi)}JL-W3mmuO@88S zS@$-&>VzeWYrYCyTDy6@K(-`t(Kds)9dG6efHpU?!dMj{D@j!1=rh1^DimT*So6f;(GiK4yn*bo#voTKZ#qe7pI&U7ysZz0H4a@dQQKncj8{XcU z>fUtBZ9k9}z#ZMqt(G#L1{Irzb-k#gc$KWj=-Cnvs)1Px}{nV=Gb~fvPd>yb>&|64m;N3j~=St_=HLEJnDG}Iy;4|jG zdUswZ0aY3So+iczUGRacR`SnO?0-P; zT=S(;c?N^%`GvN1=_u6!=bPxNlO+H!c;>0zsC<*Y<4gu&GLrSSME4FEZF0V`c6%Yn z6*LiT$FMQwDukhu3o%%Z)~1_5QY@f!79x*Il%k=DNLNubso1_FaicI_nyafda6LSd zq2A%_+WoAz`9lruD+H@=ePvL`vF9}C*CG;&JUKojM}os@#zoqLJ4+YM@=wt7(szyd z?6n*Eh7|_q8boSFQ|n`VoTE5SF`h{gIu-=Tt8VRjwjtqk8BdXI>+HQ~@EQp9`> zv5XhoYEabm#SA&1@drbh$aK zxEkUt8S+ehvfX*RokBd8a7z65h_vPI;%I5@qW+$;Ue&Uh#wlU0k2#liF{AN^fKVo& zf~@7b-hXy#Pi&h+WG}*4xb}3yL!|(;YGVvVYm99f;G8$5DNKwO-fPu9`o-j+#y9*= z*_&qOh$mnC?LT17EK8VP=t{L^c*b?kf}Vhh9`S77lI*6EY55R!T%{`a#ed;hf zPxq{zcQzXW)d8y8_?gY^`PHBX(uUvANxP2p%{G7@fZF znf)^d_Wa(&sA5P5-CAZKZ@G*huC13;#E@Dn)rCp_FN#^NKUe{1Z+$^3?uehBq)uZrJX5&lf1quvtxg^~SEQ3TuQKe;#lD1W$;_|K-Qs+6MR*m27_o{}{^q?T!q&6)uMFuJ8J#_t<202Bf~SQ=SGK*(P=p{=!N zD*u?m*wm0wo$}W3Qn&_+!FtF`L0^qinTwSXpG)hqDtam`7|F_X9fY)bd%SwS6a>`h zyl|+-YT*|sr_0hVD;Y9=`$)Umxi(%~@P$4jKIk)>v?et!$hTCo(4-cmPW;}+@*O4f z)w2#il9Hd~8judNnaAU4C6RdZ%ipbAUsB?eE;&*Ku!nT{$%k0P%MjB$hpkZ9ZWT+k z7?lYd5|j3>pKK^cZ6pYWf!E(tnXiVu3$J%@w;Xsnp8B$o($x*x(CjZS@ zQ-UKGNi0@rf~Bv@yIR_Ft-uiw+leIM4?7)APqLOjOg9vQOJk-zWq7}O{KNN&%WO|n z1omc$oRAL;MMvoM5q967kK+fD{c7IWo^R85f97Gj9va2e?+e|;!Vh0xSYR8)4G%}D z0C)kpM|{TDCq!5Iw@G2Z z@9l6{+;0rV?Q`p!Wq$p$MM1qDX~(-qFZ(`%PDGwHNaI1_F0)}BtmGTCjNNm2wl(|$ zc`uOH3(TfmxX5%T+;cccsCEW!k$^NnuxbfJU+_AWOxm&wSq)etem#2Mx`Ky6A&2t| zw#TI|g}ZJDF*6+-kK~g~=aLhwA`~6xZJxb&&?@j|UY*qDvxG+&t*lLY)UXP#CG?6R z>q<*jp3gFL*aUy*zT=~*6-YXS3V2Rh{zUpWcyeg$U&CQcu5tQwONs1aTDp_wknFdR zB8R*1Y<8>kN@8QaD~|F1Zzs zG=o?Qkrs3Uso{9V&5(1`BxREH?XOfWJC6+>ZFYMfBciXV{#{>-=>n4tjhCHzl-*dR z_`=_p0)iUP3uwO_J)rj9qII_f38#eT4fz_pS`^J~8_8_kS1SY~lk(POcIALFsf+&} z=$I9R>h*E%s}V4@#yVYDDMFJ+wv= zAD2+~H)obngc`psIZZ5UC-xeOH&>(gJOy}f+YAz{@8~k^z^lK7>RWvWx$1G9*q85b zB}f<3(m1{jQI}r!Q^YTwVfw>eSyp^S;n!+0p0vwcPKAp}yv3&xd9ef}_+ro2Tb(TILX%^K2bHa~+T9Q2$Xx05d76sQi`yqn1p1)f_IV{Z@i>G)|HLGQ-5=eQ|#u zRr<%RgxoCr1M~#qPw;4fy#_065%za-M1N2E=Ke{4fp!|DM(|J^!CxfPHugp8Jdi zPdAUgho%#G|F@Bj75MX~MM>n$nkf}LdT-@s+ejQ1a;OM0>fU~gjhnTCg1b^@3SH-N zJnINX>8ACM5}O&=TZuV_^OmPRng~Q`(Z5S$y~Kb!mzy*F^wq#hAp1xRTGfMlfxob@ zsRc_*KUZH|J2XT+BIJH@vmU2>IRM}J+P%P6#%2iTX z!)1(DlRKdM>-&oH6EhXh==Po!|JQpnJL+cg<9*iMzW1MY%wE`d3y1_nL_hmO<(lIS z&Rn`bw7N=dk-VJW#lZ%o;0Ou-Q!DttX+nr>8*3iv$3y@_ve}j^rzfRWaRw4;c$P(! zyrmkO&yH0GNM}pUx2<9e0$NDVs`Muo4W6?}r%UWn@z`9c%t;f!(8t3ENnL8u;L_ZB zgsVVp;nF&JI1===i#a#!Mnwc+1JcH2@CScE!X!5_bTL*@7|^QPVPFl-i5S*y zho2xU)}s1}yQe}8IUihk?FWdj8*23SU?$+t!VLH2cI4{pbE9}w5VkJ0F_Cm5{?pNP zEhu*sis=><9y3hB>bkE_;d;c!JfPB}`_%1t{GZJq$WZ9ZdKNF3!HY$! zPP8RL6l;?;?u(6D;cCXKg=!9za}0?94e>7mLh;z|k|7begb@)~&mxsSw0xI8gCe$8u0YUXeILe(JMfx5&#!#p}+SeDX`* z4xQw?Yt=nw5B(b36Zcnap|&v8Sm0T+YWw;CXW$`Y`YmJUdl?OMxAgy8!5svTAAn`g z@@NvLm>;}S4F7g?8Hx4DU5aZ733 zLtlsZ(Q6J%)oBP0ZD{B_tR2X6v8OLYvJ-2pXx%$<+_)aNns&Y=LhZe;wf9meV$y%4 zpJSoQ@dB^Xb{WcZYA8;CpWu#NBx~s2;UhCV-LXg4^HbC{uwA@D8&IVF)peiU;g$OL zgB3BuV5eoNzTj6oDw{O%9&)`x^)YLM>F??T7}&O}zn2O|A#tNf2uvpt&eiD3;TqJ9ZWgS17Yi@=h9}HqHG^SuG>@em0 zLl{r9kh7)sajrAra|?qt+57E;kTbc4B12l!zi%6SY z;8Vm_A7jG=-|#xQ$lqvF)qeOnt{O`zW0SxrM((%a=DQozZeT%q~g&2qe1k|tb} zbKaP-W$d-6^mG{o^ZvCE&2@LT7+Ajc^TQq}%FKQ20* z2w6wg$O?S2Q7tjyXK`1~UNJh)l;=Ow}6Kw%?P&EkQihaNk_8s4tY7Z)<@*;a0 zEI|(TnWHW5r6}x;QvFH=@;ylo?tU1s{OU8Sey-ZQ%g=`fjs#e520gc}jlQwvQLf-v zY=cSl&9;)i7-a$;2RA8v`+yVjJ!&gVle0gD&RZAP$$InH4_nHZaom#`C)nkqMef9O z4)Q}fj^>)1_U3q13+d!qlsHqyv8jyftoJ)2Nth>WcDAxjqkAT=YhE9M5!%?7?d)S< zBJ6Ff^Y&yk;(t=BiRDe`gpl=!w*s^oCNZ{G<1~7b69iYwq?#!lfc5^h#;y{&=htg& z0>f@VnfOns+(a;6X?qHletrzE<)HMfEOErv;;rv{LNobhthPXDQ4>KPDRt_vNJpBK z4IgO@IEe+_yY!*llflWYFoh)wr@w+XpzZ|OD8353=vfc3FcB6%xkqLbjmn#QW+63d zgbJLg?&=ccQw5}Q-h>0Ml8t`g8v|VTaCDqqVEl#JfEYjQD!-7E@!t}3Wfjb+!FXV{ zo5Gu^@zgA55{V%~IMTssMdn&xYWE*feH){ z6^W_J%~5=oITlFc;IER06SCq4^FAsLksdO3p{st&ll*$x&Vwt)$ctt{h2XC={$5+Yx_|N=38u_x9 z6cf27Ur{{qU_0O?{$~z+=k!6e+Xa5dZz+o>hT*aqdMDoE6a@D)D*D|!F;#<~*!4p! zEU?bCXvj+eMYiH+ZhamVg`d_&9T<)dStC&Y`iZuZsH?(S@*z0qYdn}}md zy2MxCc6|^Z;t#&Wm(lSDxz9wr)o=3c&RSVl8SWo zZd82^{PkM-N2$om*Nn=XQDrpV((DExWx~N`Hv#9Z1ECgyYQJZRbXTy!B?=Cnll;%X zaW(PIy-Iacx;f2u{bajgekxC_n0vs09i!t#N`WdK8FjbNWgiMr41n9@-{Dy zi=7FdRUaofJr$E5&$=H(7`;~pcK3ig8x^Obm50jqsEGAV9MgZ8a{KNua7;d^yotc= zyTiKRv$JIRz{bgulK6_=X8&Z*jS?F4GvN&%l@wck+2vytejV^x{I13nFE3w>TnxjH z4Be2+o54r8VVV~iKe7{JMX{KSKk5avKa)?=)!C*_PIz+O{rUt!5=J4KE2c9hA(bL~ z&ct{;`Ehzcy>@~gSKQ{cfYUjC6{#Hcn}Yw&IhE(?{6wk*<0Zs;g0AqqSQ!Zf_Jb17 zkd+0TD4q)Bh=s{M9V*e*P64#&;#EXV&=2Hc|EhyM{B%OR5S#>pgp~@~w#pEu6D*2+ zlzhsN_4;01E}!h*An>gT+?-g zkjQ!M^T*+`@^0#OzFyAR6bOs^)Y1N7>#vyFTK1=DyrNi! zO38!AzcH69I4||qIRH(h^TdsQz?5~AxbusCvva(NEfM-|;=pDD6h|M2d7OhVgTvPve!@}nlS zK^PoK&S8HH45eufH3T>@FhHfa?OZ3u5k9xN*UDd|T3XVBYGjh#42cbS3%0S1O0CPw znl?U=O+fo6`_3f~(>|zu@mXUzuNL|{L13|uB^lrqTYxiRn?f2x>Ms6;{UuWE-xhK5 zeT1ZR$jj#}W$D~?<>mRsRZL`$zw^2eM;I>&ppeL1Zorc`6D_G}$8-dTE?n3((d;VWAWeTla?8960e-QPc+d|}4)3!}8JmgXzTO!H}CEK?@V z;;guIwayo3lgy5mma_0DCB^hf!TOiQbP|W;sgM1J)SMZirOi-2C)GT;72-lA_-TYB0T*3X1CIAY__*}YP`L?98DUki`$Z8$I^m7 zDJgv#cs(Y@yi9$(e|+mR&=P|KH&0I1lU)U- zwO#bicp`GsSa5e30=nbM;qxkKKUa^Ltjz^ZZaX)I%Q7!6X4_U*Tf@RQ;B#7tMY#z> zy?3*s5nlIi{l8nMgr{ebv!(RT;LfZ|t+3{?*u~-W{fR`DL~zZD8jz~68z4%q4tC_j zWzaso<{=Er^Ruk41#TkAi7b^b9Ij{_3Q_o$eh>DvpJJ#n_Hs{V+=^!MDCf%#Q}117 z^`|`wjhs`zV@ch!J3Z(JDv8WukMr&Nq=XiKEtdKJRZN)b;l{+#>w~ko+rSQ}H0I=6 zVxFExRp1c5t^3qa5_9CZ)+7pU&f)GFqeTPh)VZYdq%4^?D!E7YxsTox=L~`|}3tmj-9O z8jJnTwzjs#l@^`AM%$ih)QjS>J?$;(C*@bRZiWt1jc@tHP@n8BimE8R9TzSqHX2%5 z77K<`H)CwAzzJ6U`BqO`>YWT4He`~I;~4lz`&?I9`)T4n$HbC=hNxjRj_VoaskFQ%=TO<2g#ZJG@apIUUBaL&PR{w1WvxBZ&)-Rjg*%58Zg1-;K4t>a> zH_t>KvjS&tB6#U$Z`?QZrE2JLtW7^4^2z7?y$!qxw;B)fU1K~eZ9itQNu*z!+fVrE zj)dM}Ok~jq%KjmJNQx*oD~5L``;ymYHNiAfI)mSVvtAI=^b|eSjcLk5)I;p+{h>6d zlEno+hF3eh%6t(3oqQ%5Ax&9GI$inDwzgiBSZ&rnJRMj-I)DLaa{qf0+YNX;{d^gv zQQE6!=i+4NT+|g_1{1VD{B69{5Fs6C@)6NvLdU3`Qnx9+L95P1b&~VDwYsU;ZMR;P z1jH{|UuJn_qT>~ZD*Px^>ozjDv-4#|w0?`4>Z^t5JO1gTg{u5tZOLynKWYumCuzkf zC_b!a(v`D*t@zNhwvH4+H&ih^Fkrbqco7SqM`ke|mBkLcZtrbrX%-P#WPb0jM^u)V zl^>v9=NiG1tH!+kv8bjdE5ATR=;leDe@jc+{o9V(<=fk=C4sq_WAkEb%RrE#K3>k7 zDWBugXe2^piMC;N)%kVeK+@eCFOnh4H0LEjh|L1XYb#BI258R?U*YM(Y=!)S0@aRb zAavB-aK?8$juF+CdKc%S6-}szzq(>m)Oth{RF7L^a%HBCJ3o5jc6; zy|3%k<*XBxww_a%!@iyhwb}HW>p!-o4dk8(&*c%ZHUdOp3JpaWvD*1Xdm}(7jc%{% z(w$&*9C}51t<9(m^^ozM$p{VGhl}e#X;a4E)IBGp&sK>FR3*pj871fXCQ9Fdu#^eL zcQX#jUo(8aW}*7mBI5*y4y_a>BxM=u@j9M;nd$YB-L_q2`WefF^&@WM__)H18w0Uz zKCs*0FWcXewJaYQIaHdZKfj+|Sfz>r-b_!es6N1c?o(d{&+}As@#f}8N=!@Br+DSz z{z&P|(S;lG`R9)6e(w3 z_4oIiEgKkSv@X;M2v+0g9JrI)7L`*amQqLmXmfod9odzrOP7cD073r<`GII`SX~gG z5L1U@vB58n2*PHnFlTDRiZiIxJRF7Z#E4aPoV-eg8(zRkhd)k#NDxlOIA*%pUavC^ z_8MEXqAgWZ2=Mz7H=|x^4JkM?2Ik=SgU2rQh# z_H_RU&?#dl?mv2D0|bw;KdtRVVDe98J-tK6x)c>j44vTDI)pS-ocYJYObzDc#Yruo z#S>+A(M3a^ADDel!G%>x-h}Su?}kFwlOJ8>EPMrqwuXqcDlwv{%7cEDHQ5Dq`GcQI_SpluMi>`r7|jH4O<@jWT2>pFoV z@clH+qe%TPZ#NWZ_<|lO15;XWSX)B!uY2;h$*(x7-t1NiUSSPx6A#z$TAO%1Gi*!# z;zt))Bs4v@dx8QkFD=QaQ%i%`UuY8JjB$tNM^-PHDOFX)DBbyavfAMP&{?6kpKPSc zLE;y?fJZ``%JlR=j^~&^c{qP3Nl-89C=#b^V;n5_f1i)DexdHLW zQBcA9v-#l6K-DL86fL^+%#!5hB>tdpq7lTANu-37p~Yj%#riXoV-d`% z4|3eaJ({eadPk$Bh1qOfz0~yNQT!!?bbW8Pt@(##612W;wT-n6r5PYH z@gYIM*{39>^ELkRrfS|UE?gNzpnZgPhhatr4JSaj#CeP}nSpl?eq>$V|1Hrn{Qy2S zIrT_+FrEG&$-cSaz3Wdy2M-x@J6~jWmbh`&2CV^;=HM`HE~RCd5*w@X7ZRJmdNX?^ z#f7MJ(G9?NhFiW|S@XAEi&#$Lbu1Aq8?vdx4%u_3A~G+uJ6oQvjV z5uIRu9<;ow0-x-=g1_rVHlyLSG*qbeYf15xy4gfmWb|rw{aUC8>3ybPwfllaQ~+!! zJu|bl_-4dvu*T75ruy^pV+tJg1(%o4M>djAFC+8*4_RLs7FE=?3rZDKib=fza&uG5_GF?pqh6b+%KW*Cr#>%5FYa=P!sYy`U~)GQ+1~76c5tzZtymA4 zJ6=jp%;f$N=DgD8;xPBKtY|m6(^oQb!{?L2!0I`lD>hB-pUPGQ;}0qXJ}{vaJO84z zS>=7}trU52Yacih(Yl7W0 z(+wtv-V}yfD@F^je|Lmr$wl@aV|p+zn4n-gLN}A_ha|jZmO54|*F~V+??1aQ&jmp6 zEPndiIE~?eiH!ZH(A}ws{i|uc&t5clm0g9%j-hjb71E#9G_JN1uKlOy3in^!%314{ zdVUQ#@37%$0CxxwL)Ja7YS2WhTqMi1c#qCYsd5fdiW0@^9;sjC(dXf-;rICqVaPO{ zFV8zWd49YS6f6TXzbXTN`|o2Gcdec+Q2-hrM4E(<$_fO^y?r*22V$Y{40+KRSVpXh z2L~oHzuNJorih19T9T24g6xAkgT{_mMR6G?5}F6@ze|{C=nFbtUc)wg!W$RuM%$wJ-`|J1b z-wi-|ieLHzOBnz>_G-MGoQblfB_)d6_OLoB60mNp`sA2}YWsQ)11R;=$8^wLt$36D zYP~OerXA>d^y__czu3>pr$ea8#vd0q-eaPO?58N z`H$Z>7X{f~Pg-hA-`)Ti(8-SWw?w#$Kw6F$wH;G`9e8e{*n|~w|IW*7CXGyGtKKve z@ru2~sA1f%!V@=T$(F8p&f=+1g!Lgh#Eu+kCt`r&`w_E~JQb5){nRff@ZX~*^8YFY zfg}MRFeWpke7|*VBvrM*CTF=4h zPJeB;S3J6%GIS-kKS1Fsi?32K4p<2p!Z-@NgMP2M)gl7K2wswQ3WwFM7rA`p8Vw$= zCOb4;T8y(h%$q3>+9}TVx;LYNiO@6Ql9EQ=rU!e^^H%-jr0$)logXdAtY)1Pt5utv zdVOdD^$Z+Uma(wO;rQ;|a!io#`|FI-0@o4q`vK_{y{w8d{n&&=A*ax*jZ} zEQd6go}@m()6&B_AXPQcyvCb;6-@K8JBGW1%6MBvj~CuXNO2M{jhn01m-h>>T%P)m#FS>Mz?i1Z%3@rsIQjRR zPsiV5y2Sh!CK~H(*1}_@Mu0!UxroSeo?*100wtHOoyYm7VlecNFvn>&%fAO$;_^Tp zmjlimB|shQGRN~4p*-Djvw+(F^O#;fZnC9N(N}$cpY)q#;V{hFJf4>3X8&0i1B+z7 zx+%*5F7~(JP!2`yP)mK@H#Sp+3>qX^M0b5LeNptSWLfFNWVL0LAvDx6Q7a$ZU+?e3 z;x8W(udu$uaJJ**krpH>EGUX9XkrU{zV$B=MeO-WQpS_p=MCcat-7%>#NLWS zQ6vqmxEMVl%~#4jA04Sw=(QW!8R%!LKe_*Z>?tXJF2PCk{7cN_{($^9I80Je=ORRo z8e_N;#k`2023Z8}n1y+$7O72XI%U4epDWOnK^fkH^~i#+2wwG%s0$QiJQBhUz}K@i z^%leX#1EFwP+wB!Yo7AcCegnb=@LQCJ(c>GPNrdbI3f3ml!RG06zg8L41`UMx02Bw7x?6#YYJ?4IHhC_!t|U4g8@W zr038V=J2V&df$X3ckWu3`XFy+!XWlk<1IlOVf7kjK1%k_$;m(rar;Ynl$to=XSJ~? z5B;B2!GI4s3b^?H2L}FcNQk3~#!COkZ{{ocN3T0cMf}Ba?%@;uLKkl@af| zaFQSzjkg!z+pz@M?RZ&pCCo@63(SlLl9CZWdXX)DPK6Ihv8M$-V+PX8MD7+ryp{p_ zT+&pMkcc({$4XZX(x(a7A1SDOWs{!{9uj1H*;%33doVX^&-lX|fY~8jx=nSTCSc=r zKSij*nKAHSXTPlI#c|B9I72g=Uslnzt+n)u7(~t%B31r8i1+fHb4P20_)bf{g`Qd5 zhksWdifMCie#-PNS9S+9wvrOqiG{%rr)_sYcx4+)D1EGimt$hPqp#CwvZb(GFE1zH zDH5dA4XX&y^8Cvi%yMTDvhVhIbEnVd7J?5edX0_G(*u54f@u@(m8m?B!}WJ}JwAAu ziIA!(^t#tV1uJ2}3A17R{tcZakuICj?ZKrG&;=$SE03X%2cVFZ?G8U5xtC(()y0 zW@8)K;?&_hUkzdxOVtK@__UaLEyIrj2tTKcZ?KKt=%+gjus55cp2qLSvEP|zjMl*s zqnEu;5l+x_;vUR>X%Ft1IHo0Rg1bvw2=NHH+jDZrQ zF|O`x?@pxs10?eD6V>+L*&{c(0p=4r<=}dm3^;eoZ$S0(lj8DdFlY}wpmR;u3`ZW& zb#>1_E~5CLKlMH(ySfUYsZ%Gbopd#`Df z>o@SpN%5!{W?}>%VKGeYB0oJ+y;pxMOCT0l;TW<^wYN}>FeR-IJFk)x8$g{hkE_Ya z{E;h!m_zwo*h2r|S<8XVYl6p!F^tY2>!Ga-|96@$j@rw)A9KFZNg5W3L^9CC8fiGi z5vv3xmELKorldZ@2teh$0gePx)qS2|yE8u?))aWe{srnEKM%^qipxW>$iO5^%KH9d zul|78=i1-+x4p~YsJSYz(W>T(q%x+bYB5@}o!Sj#&BmioGIIVav5fU$dxDC|;K8u9 zajBWiP}?`*Q5Jg2z^Z0o6*TbiSp6U?`|&GWr^nY}v~b8JTPEp*_x5O)j3>*ommU?= zh}>fJ%KfI)&ncd2YQ{U8v-m{gop+GF?};g4dPDe%%C%QpG~@AF%%7w@$~!1Hng0bN z{56!;%Grm+u;|Bb(KF+i>>e7dBa*B;-UCE?nths*-(W4Xjr&aHdMnIS26^J?YK!zW zp$$^Uy=_GHvzdRB-J&hAO>a$%6+uQqJkHx=tKqB7jvVyD1R;E{k&j#X`bJ%V*o|Gs zEO=x~`fuKrY>*7cz&k#QfP|DezE_X);6 zl5k|`?F!OR&lT>HT5eLZjYzx?;Yi9%$A5RnqCd+SX|44(+Etn7QiUJUzf>?b+&yOR zGQe)jZue+g*-Wt;&gUz@0k?Wt#jrogFw#)O&{$w9eq86g@|QRSepCYXb8n5(?!M6^ z7Q2`}Lw@^hldGS`p9~yKk)dEwuvBd3nX(;Jf>&0?sl^eBIe5qK+P-!0h@5HnIh1NM zateKtP%)*}I-5}wMDb`Eb2P?v;rjsK!Gc(7TYANV%M9>!B)^^6XlL8#M-!J=SiI(M z-|rc%Bb4g6ZyWUn*#}^Cn=C`_`etS#lz7Ag{6l2tV*ev(gs79g+y(UGG8pkVyk(Ht zWnH}4s;3tRNz-l4f@j&REhtjkxNv9)9a_*iaWm!2P#NBcy`o&4V>?7-d76kYiR7P) zhRUp`lXtfP);`u3EMTvrQ`2CnV5luF7C)sAFKZ2!j&RxHCt^Yvr{8W)m&ss0QRkIb z=%d*PJK;QwI2g_c2AVPKicsD0r0)X2j- zGUrllXK`aSsL<;r<@9v|0^qQt@LPPPSMzyaBt(izD>CL+W>pEJ>bHp@6xp@-W8K4# z4=lDh?aL>3U)KH7#fbDhrm!P#F*;;fID7%Dlpy_cZK6g?PR&ye&?Q$GDry6e{w)mc z&JX^eGHQ%N5$#@-^pehtT=yU8;odF*scdr1egmi%6HyZ<>HwLFg>)TF1H~vh3Bvt5 z8_=cfHR_xkDb##oax6f5k6rkwWc%jK&kyj)p&5w8VMC3WuEgPnv7q;s3SRd88F)PU zK)$~Ns&X#Lb_rN9^=LA09xeA7e1G=x7om@r!ZPf(gzu4Cnc>m#^-!|ZRoSM^Mf58x zs^y|*$2aV&*9pUe9$Tu-)lAAHxz(?9B6A(8K^*sg#Q|>rQ?9n$ZiUmjMHmQ7V)`pO zm21n!p$Nq&)EQCQb4}*M%pI`6$(1|jV+o}Xu6-jJVU=5h+;2iYB;WWl>+{}`mTzfi zgR|=V!wBV8ACS&QuDG9cja-8{AL_metlm z(D(QoI{tYhTzTZL{z4gdo4)7O9cO{IE(tR_VHrQR@asaf1%b5ASy-hKpX(hbSe;(# z)~8qB6v9%3afcawav#t8I66wV;Skce>jb;mt)!hDQyqE{PQQ=2Q7SFLCM7$z02dq|Q?@)B#`c*PeLoSm{qT z2^nBFit*|Z|FOQ&fK1%dy-K~mepVK1v@^`5Z!>7tn#5RJK7qY?EyimqEk2cE_g4w` z`+@Y-YUm@DlHfElEci9y5?Lgkmy_@bV!`w1}h8!D|zyG8(&&zcoT5g$7l(t zAqQsofe?>vu#$p$AXY$>?z4z*@;-a$vS03gH2;GxzMja#4d^v-s(9X2LTkGOo`1n2 zpowOFe-abLduRUGyyfz;xI2m_ThrMQ!>i9qQB5`?1^-uzto+xsy@zKJ(?b{*0dMd* zv)`nCevR#BRjEdQZm(n+^_*n^gXOA$&+N5wi7|Cep(RcvJX2tzfdst8J<3Umb&^`d zqW|X&vxFk-%^Ab1ImNoqM+M&$8XN& z&fhE;EqPZG7ME?vqXb=R@__vgHRolcpUXWP4+27rQdxmSC2dAPMPibGw0fKp+{5;o zT>77Gzd_91SM-lIm(uT?`82Q0UDCUQOc3>XRp*v~eOrY7ZoVA^{%dFf z9w#QNCZUO$ynNNxM$MQuJ91oWHqn1-u|YHdM3Gn;aG$0G3&L;Wsz7c-c2VtDuKkHK0yTgs1SHD9c3)Z7*SWCzCQRF3VANMJSG z@^%jLG20V^25mw0LJV0-N@YC&IKemV%dp4>YMlGSGje$C@ztV^Auk9bkB675n*+_2zFqz{Doyn(PO>AEhi*Ki)FbWa^&u&p*=uo zWg2rg<<714ca|vAwL3-mAPi`&gZwHLHuFr68pC-lU=-OCZu;)syO!N~!%|ln@>HdR zgb9h0u_&!cEFJ5Bq-nksmLf(tJc+u#>OS&-tAUZ`1&u4d=E(bL3c7Tc>rY=2ulXm` z#IN5Ka<hPq#=t`m8o9@t;p3V_;^x(;5uSdrybPMntc}<`+!- zeet|)!Ah3vPYj&mPAdq_dL9(l>*E3Y7fMD(S@#umhIb(*_}9?40y82$5$v^RCpEYD zyCqFgP@yhFj}}1E)Fl1o3oG)Zz2A5>KC`ndYP7VT@}K*pw+cypufB+_`Vr%_vvVP^2W9{@r&nK^c;Y0I#+e zM)9OCXhqBHXFrfv988r*eSQ{k`D{cCFCiZw`s|$omW6gu@q^mQE>GG#yk-$~N)YSQ z*jkTym8;?T_xD3Qmb{-3m?&2Q;4x29Hpz929G#Jb+*=K(LW>~RGH3G!>ordcgz@q~ zME)bI$$42qG?q8l-Om=9_{F$M8Ctjy-3wl)zOAV)s~zG#w;E-Fs{bPW7DVlgMu;F; zxASN9Fodo+Ns|~lCFbz$;aXAi@iS%pO&0v~OpS7WISv|0{9*uQ@r9zmP3DYXj~c|-@2oi7CHFttq@Xrv$Ite@(8cImLvilKm8Pv$#Vc@_T=5y|N zwgu99uV7*9Y&+T0yzJ-Zu-qXBtZo(E{>k5#>n$PT=Q=OUb>MS*aazJSf`l{bi!FN` z{%WWX%1b7(<*v!R^I$T?4jo)hW&)<#GDKb~NSL01@H*?Cc;^MXwZ6N2jS{mVe;3Q( zwZV5d7y2Zp1dsbyOPj4s>91;(I>ga)D_{fy$l|Lss%j{Qx)8!keEOB~^ecFPhbqzx z)Yxh;-Lu2B&YA55@Xo~&kZ3$jM6}cOM@wg;-PM33_}&dR;O4li6(|aXTB~KG2vssy z`G_F6-M+}1`l`aJPdew?m%!Oadd(d$3WA&d-_jFN$WJ``wkf(sfj78+E8~T&O<-I% zmYHkqpaImhMzP7i2W(N&lH%0ZAv%q8ULOk{*5-CEJxavpsqva%JMFr6y>F0EBPLv( ziL-O(@8oVwZjy;fykG|(uy1Jgcr_=at@_Y7dv4Cy+kL+4#$fc2+>ddRT3o90_mJVw zV-53`iLD%h5yrf)_o&BLMu~14ni?t%w|CfXxYwQBnJ(j`vG|mfI=qPTO4tg6L&qgs z%m>{)-!`4Bp86iVYm5AVrW){0ICNJlGjg`*UzMw4SA@n^Dvh!qmsdD0bv61fG&$6C zeMbKK7Dii$8cQf35*LEFsyM>WS1(6aNpw^kS5E0q=EM!%&urE@eUHSs-Deki)`J>e zjGQvxKAUlVM|OIYOv%^gIVp6zF_9dp3%Rse|4nk$dzVr=VODt#FI~rH z{&I|G?Ftod=~s=K<;1+rd)?2J6_F1B@n(yjBss-sQ66sa7d6LECNiE@3MPii4tC0_ zc0dQHvwZ@ZmvkHIOPmR`J*)J-1xweyq24 z@zo$AlKkv+#hED(;3R={{#b-whQ-9~Tm?$ZZ$jgk@rV-gaL$?f*`-AM`r3&Rwad;| zSMS}{F6Dt*hoaqBXaQHt;AGtxb04MmgH1xSQs_xq-45jOY)~v<8v*``$o9PrQJk-b zI2vAcuPx-3;f}qYpGp3(7eFY{VY7NuvM$L{lYp#mthg|(L0(ris-upTV~@YDUZZ1KXOQFQV`fvOjwj0iWPUvdHnvU;rMn2sg0>)32M*NW=VQxhZiY&HM z$;Nd0u`@PR@NO2IwFVZ zfr7NwQ)J}ZX9Aq-!*?ZQ7Ag-*8m%)S*qU0)!h)5Zhry?k4)F-txF|R(aI0Xj*sA2l z?baT#g6qwo&wH5vbaWz(W=zR^6tsyC<)d#xdTQKgRhW;ZVk3K%lo`G5UWGYz@tI=V z8O@vSc+4+wDFL>#q;=g}idvDAkW3zGzN|>%pLCXha`i$ zJ_w~D_OH0|9$! z%MRt=oYPZi&i(_!!K5(TeMCR~(UGnxl@%f@>C`!m8nvTp?pQ&k^SLw6@SI$+mN0nI zZ7*GB^UJk^KHQ}yQJ}6|Xb6S<;5Pfw9vW#E!()fWT|eiK4+;c~w6giEBxtQUyQIAo zj&hv>*2Fd6zfVU|Tl-X<1;LnV;-(~>AkR-ujGa2NeCN0|->S1t0&*_;Yj~SZzz>#6 zCNg<>VOURWa{*P*aD=4^7IP|X9OFn<&tOF-KSB2EefwwU`E3^*%@U#o8{!c~9$*3{ zsoGrykPXJsOE%){5Y7?|XPaAcEDcwj-zNXM>IW9HSE&|*; zo&tkE`laL>;L_7gH_+xgSug1z(;33%@eb;U5xm#~c)h*4 zEXrVI)CVESH=m>+lCvNBNvw0&{pS8wc*qNK*9@&V5t8_1q;jvp|8@#;OVS?N;A(^( zQM$6KQu~dhD*7HACmqvaXos5RQ=`lHCA==l0f&pVZiA$;_TD>Pr^_@!!>fP?cI#EF zKwavEb&r$x5pQ$ABnWjQxwa#_+;l*1Sy~C$%Vk(2R-#1bcbpEUPWU40-o`zpWAuKm zuq5hlyPokttLGBa=JV+CL{B{xiS1)*O5+qgQG=9%B~#!CyHfGwx9hPh$V!9R+B5)d zb)~E>NB8HNJ6p*6vdmgd^yDZ5rI97o8)<=4zcgaGQVpoEI%4@ z{sb41=yJP3MCPEO<-zK-kDUr82hD!B5@?R*%xzD-GcH7OBe3~|0`qzqyQJ7;vhR}u7Ql9wpPv;qd+-AMa+PipyvY%h?*Q4B=FckUOdx|HWc zusF>;< zb~$I;csQR^1UZ=`>uG98d|Ta%-SEAt1>}1CQyt8KZIho#wA;d0VC#2{t%G2PfxyHw zxNRZP(!4hNo97(fvF8J{PGqTMz?Ja2^NT^o$qdm_+Giie-f_m=UNnJBjgjxfjVCj} zyD+u8-V9@9nw4@QI*>p|<=rGL*vKEtpzRRR;|uEaoM~HA9!wtZxJxqyqkjTW#}FtV z*vj@FcW&EPgWYaxMpsLoH~keC{M+2i=RM7_C>2-w!0sjk8#Nzu;p4=JSuMcid-k8Srw5Mq!KTJ> zsFkxqU%2%ehv?WiVU`%+Zd<&aH44wjN9lfz`_}I_mx@N{Pjl&3r6fO3eeSq1 z$#&;oMD_6gY2;r4tU=Qiwl<2E$Urepu{{{&O(EBzJu%~3p?DS2SIpFGkO(#VViq3 zfPq5ALFK7CnQ>^Hi`cdkYe|ZQBfJ;kJ8o=VBVn-`OJwM~bft2C$H=JRI@Xc_T{!Xd zal38FZ!lX@NnDGqviI=4O0%OVB)6<;J;W9&IyH89C*`tyLv*Zi$t=?7y2XWqBj zkAU-2h=Px7bU~Ktw>(>1FxQnG6T#v-9wu;4 zkA2Ug8+v2a*xr3>)nyXw+=dX{a(ZQwQCOS0_@17izl$NAv%cgpyjXbcHgG)Qjat|1 zWQXDcK8f#E7=s>Cb`w2?ky6_A?N`OQCG_qbqZo)Lr$gV{3u#-=iGDqI$US8Khzp-A z_0iDDgec+d=$9{?09k zDMZ@%Qx=8k;$rD{Nr?Iln8TNBF;4~O*)#@{Pmia{#(5JbG2F~zW(EVm8zZSzP|M0r z1Unc|R)KTv)i$%ryWu4p5rxKw{w!1SFI{KdNwaB)NY}{aQ6icne8qb&lvJaCJn8Ot zZZgUry9fTKeE2XeDs839#KN*VN8Y)*#ce;%6qhJ|7>ib86dl+zf1j11>#`)+JMmbl zlj!vPnSTA{i;)ZJ&F)4^%k31}9&)1a>qQgBrI2Thn@xrO+f7pM-;Q&oPA0l;!^!@K zd7G20;63}>jh!REuH!9WCIw`nW;`feU#l9?A2!pK?;>aH`WKpDtS@*l&CZ&I&W?3# zvw~{H9*n6FGBLj&#s%H}u0fQs-VD+?zY+I;)5cj@%VOa4dF_N*iuA=q`)O)omus~< z<*ax3F;VdLTL#Y+0HEtAHWKa3Ur`hQDBRs+beYK=pmV2_@8p}GH z*YR>9G-wUGs(t%DTcKq5I436z=RUR^;CF#qpJ>vmMwU$f?YG`~?6be?k-QzmAFYUa zxF>idFQ;18V~J=PCEbxSoA8|kAS>qQyZ1K;i4*8$yWjD;FQ#fj1kUQ#yK)!-*Yan%%FP`EeT;k; z_yN+J>f9!+J}cspLR}(G575|bmp%N^v&ch*T=f1%O|?&&Ct?`bHOxnyLVO$S&5|AP z^}D(g^wPlz+z^fSJ1fqJH58{!4?447Z7I7o-zIB3kej@7FRg)1rZOJM^N*UMYf`(0 z+6z7QqpZKVt<29k8d4I%O4}LYCVdZFi+5t&7QY~ZYtj5axQc`wKbFCHj z#R-nHuPgs>wZePv9AC4q1d`lb7D3RpX==iHtFN$)u2dZZ=}1?tfh6271>D?`JJ#{! zhO(h*>f@uwmzQubGxF;X5N>C3nRK35vUWa~a`X2t! zmkr_yC>5RGIDcNRJkD>Ym{p%U1Y8u6->y$1)ZdQadw;d8J6F6@hz*=xS(t+|@-W9` z(>R`SN`1Fq$!Lp)cmxf9H`UqRLxeFTvE+`kLiEk~k~rt4x5 zsCBmu`uODKmig_!H$92ODg>wCug(t^^99P8yqP#p;^*@3eJMD3c7mV^+ZPuz$=c4#fu+Yn3LY$Se&WUs}oY3j<%Noc;91c1$6F&@Rba`tlTNO zY~xj7xfG^|W-L8SdEcOk>Q4y{=`JY;8|A{wcw_(4m=B5t9({t4FpD6J!d#T13ybDbiT#vdBTjVJUk|~S*@sO>in!iAP8Wg6Ajq^1!Z2!OZz>Gd!0d@gJ1A; zX{jEJENKO|il-$<-=)*_DPrSx)`!}0`qAW{#*O@K(c4dcMeJl0_O0?S)*IZgAdO$) ze*#UBQ=>TJkn*Fs`se(Ri#2ROEBV7O=hZ@f)RpF(*r9iSwi5id+=aPDx_Qwc4)8OP6k{|`K>sFHjG2o4v_k7X1<+vyo2 zyj(8cEkb#ACcsZ|RKW>U;>XHmZ(7MS?WUf>HPpFAV?EZ&=_4g-)@K^t0NNiX0W)t; z;kP5&fc%kEYl|jVo8Az~yu(uQt{W6GwNlaya`l=Y4#+=c+tzL!)fVOFFKKa^6r!k$ zJbANag%RgTgCUlaJfV#@#Ku7Y3mzC3`*G|S%4gK>>uU$hPQ`H(5dKgn`<&CQJ>OCG zC$qMzF8xR5OZB`5HLSv_qN>)~qT1TB*0Q47U#(@ekNvl7Gz>uzWIDOT11W0Yol8~7 z-84(+qdeiGzvG*D-EjQI(8TiCD#pP1{EieK7!u8vE|zbznlN6&hXP3LR<}dyAF{9) zj!oUZ7<{+-&O;873*+PBw0m-4pVqPAf)pLUaXKl~x0M(-lbF$5>d`n;Exb?R8O5RQ zwD2ul09~VONfkaECuYjWE&)7dE2S0Q!@oL|zT+k~#;LPW9ZFnWl6wveC$W11VTq(7 z^B>gc<~edaEhmZ$OL;h6Kdm_3hyUAXuYoJZmcB1XFeQUbRP1;kjkt?%(^4m@9lb#9 zCE-z;(<824hhiTsBK|fuhFg}TCws2*ffgF%2W{0=6?gcJEPiAKQpG;J0sg>b(R9_s zhsM4aX-Oz7Y2esMG)Rk2$W+k$xGiq@EaHz3K2H0@NJ8r1-K91HMnbk0-KJ|sVc^1KV=RMiI_BvPX9w`PV zOoaVT4K?*0O}Vml%cBo`m7Ip=%P5ztZGRZv75Qk#QZVS`b?_UK+{&7h7T8%CkchM6 zY$=d+eM|&CI>fi7R+S4aEGXEXgd9AKR=pTvu~f;t zo*9Ou<;Ur~W|w_n0Ljpp?t0LBT+L8_ur)VuYbRYD(t3EDxUB0F#(@zQd#=q$xIc@- z!mY&lKHY62QJcQtm9y~H)80sy%3iV!>SPY4z7*vEJskCn)DcvhhXa)*i8Q9+m?-`Px^A>f z+-Y4#yh+yMTI;`DfD`0C!!Bz+rKP4Q)Aub1?Mkc>@R*h=R$u zyUlTUn+;R&N(iVW1y;AQ9c@*#nR-OHgGgL(rf11Mi%X7hO0sPKoLPFD)b16h8Xb*Q zGVv`rBnM;?{qgYeUut@XY)O2@&fegl^;4dw5jjuGOyUMVUnipEk1w0zmO1gefe)>h zRXv+K{gf@3%0|1~%IP)|m17y{W$K#}6;n9qYbZ>*1{RR`JihseroWvxpN?2f4<-Ub)cBom& z&^@);o!@7CyZ%FYerSpb;rgES*H)jlZoiL3PA|&(j?J`E1pZ=WqIiC$@54A~lk-ZdgnWfLhXY}vyMH&Y?MH#NPHz;Fr zFrH$*mRB%ngZAM%5X>E|d*WCWzuuDA9hQF1J}`2m6Z$meHmTxI4X%#qH9f9` z-#qM0ZF1~p@&0k*N#xV>6KVxf3^r<^y{L~uc(*sqM~U11gTaz;(<}V<6B0+D-%e)# zL(KUiVe}n$7f5Pb{Zu-jvWuFh*&|+M_<;@VlczPY5HoVVBiO~(F%>&+*FRXo7w*8w zH+U5*e}>Z^5<(e+>_Jgl6z?9}FE_Ni*u8$L^6BQTezmTmefy{W233kydU8td6}3w$ z7CA&=(f4k7yL+~QAM9hT0pAZaV^MFrOD(rk%yS$Z2*+iRv>JFNPyRT7L3#X<$G>=o zuOG-(mY!aAkRAn1NM*F}oYkv_d;j|#pWYgri#Q~o*~|T?<29)6SN$>RsvMMSE_DUR z_sh^T==Knq&l3xWkJFY3g!*S^%sZVT|X@;wn(Il$5dM7br$zzdk0f{Upr8KvQXN9hd(Vr zh8c1Z*KPA;$|$~PaAkvSn4xQ9A6vhym7{m|o79|eZNRr0#0? z!d2(G=@M8tCsSWXq546|3+Qcg<#^|zRoWHohg{r*65-Y10rwV@7_-wA`Ungy1o@tl z!R$z?^2gp!rx@{M8@YHbJ8TS>+CB%|>()@(T^iPk*zT?|Dn9wJKFDVL`)l|0!3>e{ zZ|T?>?WU0Jti7W4OBkcnLuERfewluv(ui7&w&bDd%16y7I;rE#7El=PcxNJFXBY~c!@z9j@UpH>}f@*_G- zi29TPSWGub$rJ{C;9(`ud}8n#V}L$aq0OcpGzr)tc0(sz-Soz+e-#imspq>KB_%CZ zU`VrYXlpjH+6}67Li;x&>bTLov8RO`8oOBzjR1hBZ9G*s$0LU0Yb{*QfLaeAY;R z^gcb+Uy?lQn2=)ps+y!VX)$c*0d4v_VIwXqDBtJ$x7kc}c@;a}DRp=_IlC>XXY2UP zC>?l_{5tJ0`e(C4$Vb*Ix&clRORK|Qink|A&$8(y&$<-6y=|2FhsTB=2HqUsSF@g4 z8wAfQcAbhK5-L9WncbTW{w8aNB8AhD?Tl!3i*M04afzwGeuB!G#j7o?ynLl_wg|s$ z2E3#UZ_LlSR-PiUm?8>wr6b%vyH8F@w+MfQxRAZK&4)|mWtUn*d+F@0afwm>d@DqUWu6chZ$6ZZ9PPS`4nX7sEekhaK% zLd3eawsI&;y3)%)zkl%vY-xZ|`1a5!4)#^DKH-Z@|ABQfogW9DDV8DQrgh4^+*7}g z#C|o=FUDKovHF$7MZL2}P7{?>F>sH2Cc=B8pP(mstsejqr$>}2bRIklnC4)qyu-?^ zpEsCFEZBr3|GEi(HDxuAXmyA5wbPY#Ii(^BJft~gi5Vk~&|qA16$;FLO|W9H?QAZx+qL$6Z{y4{YU%^q1fg@5XEGH`pUOKg4Fiw_od z>+ARrjDv9B6Gsi{%t^A$_`!2B^|}zNNuGly7qK7+x&}6I()>qjTHGuLF{s`qZUDI$ z4dp^y*^&H`@2v)Vtho_YjgN5BN%;X3Oc8(HH<505T~9K0qV67*X=@d~>)coXZ0^i* zXGgv-gk>aC!yxG@XPmvc+Q8>8xx=o_12!h#>tVLGw;u zHOg3z4inKAe~K!=&RdL2B`Ejql_)9XALWkBX?AwTYR6@--UHaG_wXR=37XT)KvrjU z*nHfYBACIe0G6ONt@pqV4b$&FIy+o9p}bW)m~gz0-VQuN@me32{)vWNdmtg)>x)xs z%BK%zd$+h(C=hTSYK0BI993ctry*A+DPfmS*ZJhP*?k1$x|dxZRhA1ip5iiBB~IQb z{p6uL94c=lV`)T^+&>`q@Ap`9S-He>n!BO4BNJOg9sc`iPoSxo6Qo^DnUSFkrUPg# zzNo4qH%*sNnMtk| z*iyq&Cq^q}N((yg!Rj~j3q_9^ade(WV(429DYqc-_7;pH7bY+I z#eFOsfkrWgJUR7j9f*HxqN%e`!RUIVMS`2j7wX&2KGt$xN=G$sR_Fq^7Yal>@0=$iKZH`7X-_i^uW9 zsB4E_RNhK!XJeDqq{2(Q7mU1uERuu2AuhW!BO?tE?UOKbGuyu#g?YT0-0r27MHM0ATN>j(@>Cc@fg&ldi}qMdaJOu!Yx`G zhZZlcL5dYGTHI-&6n87`?v_AthZbom?(XjHZlSolThQcW?{oJ5U*vjSWIo^e)|g|A z7b77_b%0={P2X1EE9#IyZRz{SZrc9YnJD{p=H3)-_i`kgwPi*nFa*CQUP7)l@DUxU zXLRJbNnindv5azsq`JbWfUfp~p79h6UTd&AA@@AE`-NKjPJXrBo$NT)TB9UiM%3wt z4d2XlyDGaOHkGJ@_bf*Ty@CN1+E<0XL zVfGc>VLewAd$e(|Mb7V`6r$m`mN6gT3OuEwws=6&&x|xNx+*s}vt|K%dwKoJDk+Iz z)IabGMn~SK`SoBbW;%CsNl0AEp*Q7sAx2Jg13S?rn zPA7~%fcQ~koXl?tQ^Rytu&Hu_N^5f9p!!|E;ef>n_Kc>c$15TXw6ejP-Gs)5(Lb{i zfi}IK%xeu)VsDtKK96u6+FG$N%+l5}sg(|fdtHQ_f8(X>=yY}WhTyz=HKiC}U>D^w zHIL9`bhYlkR9h*-p7Q$L`uC)7VqMuBKhXwVB<}Dlf`yfsK(D664UvaH zez1V7M%{sH$7srLunI67uUI*LlH^B$MW~e#!lAF`%?^Ectt7AkxIgGU$9XMsQ@R&$ z$9F_uHaiqkwAJ~uDxK5zSLsfV+nWpA3@TxmtKBP4Jfxustl zUTtoS?aG)%{-*_iDBc-6lQ%y;jn++OdGC4b8}zprcyIQUe_6tJIOHJ>SZr~PRRI?4 zzq7T|ziBf*^F8kpjm171C}2RR`gkTUz}>5yRofRo`B%{53b!*uONTNUQ@!dz^{V_| z(lM0AyrSy>&}JMUd7hA&Vkw?_`O;O^dA?BhjiKblW-IU9XI%N$XEcwyJ%>|ge9GlU zr=85mtPtAH3-tTO21n4&ULm%fE316G$m#EKI;i4L;00ow@O}~)=pXqK&~;=iCVqd% z2|et^t`cMK3m13`bYFr1#jcupUe>Mty3Do!R-d1(X%@tXb(wK!P6-O%d(xChTiHoF zS+zk3i$|D7#r54WZo=VE8j~0Za@Na@7yQ;^p7o&ARcaHSemkKbJvR7cn3a;KuVU~| zr|m9FT=)~7&nEkJ0g1tD@tj!Z8ujCWg%Y-~Mfa@E5J^X^Ev#5+{6ti&VS$3W4R#!R zvVI@ONZdlr1sSu-yb%WbcYKbHTN$G2&GCeL61|_8263K^Y=4J6;11TBegi)YnpqbvTQmk@SdeO#_Ej_iS(;Cz$WnVP>q5zbK! zoYrdJk`uQc*WmHw zkIv6|fm@UT)bsU~yRBPp-nc_1y|7Q+p#K2D@a`xq4C@?jaXuOII&HC3Td);ucSF$4XY=5=hvFIq5GlCdGn+X`C87; z=&jilI6uM*`Qp^Pti)6%TR|~^KNulqP9|+AmGojR++lLn!#-RueU0(%lg(tNMm1SEqr~UIaxa| zj}u7>V)#{O*2b?5zuNdK!mUHws#3yPC`@1@2`-inE1Pide=gRq$ zU2%cWu~L(@+tmkRRSK?vBK#9{6!_to-77q9ytO&>OZqr~UJAp*G> zrmlC>^Xyt(*2$mOoFv3YTYbQyZ_LOm)T09gNpP-k!Pxm&iEDJNI{0uLT+8@BH{`&!kEA-3^Ga|0>jbwcE=O z7J6n!V%Dgy)p@g7abVXAK+S9G^y?-MK zmE*K8Yw0C2j1T(V%=B~O6~p#ao)9prS7+oWBp|YfJo3++8VTcD`2zoDZiC-bgOw#@sFT(?YC*N))(VE5Snmuh0IJgTn<6`SuO%r`H_yI)pERce~BgT5t-x~8PH-+rLoCZ z1qYA&b=0@L-H5s`zxJ7VR1rhGb|0UpcZ)(qH>%6?zqbVLZEw7v_e_`%%Kq~%CN_hD z)R#&Mh)dKst>*flboVWu$JLAIC$i4r__zFuCxcbGm z=|&i^vAW(a*8C#%2V3FL!BOui_(Fx-Bp{Y9LBO+J)XR}K5i{P}aTg0PZoOF(xa~MLtU4U0TW6*4n*UQJi45Cn?&&T?Bx_y^w3U$g#^?~%yPtBH&HuC(;W&CK1=CDcoo zOOznqP005(%%Y0?Up9J!@M4AWebh9;xUl-J$shcEtNC_H@Us#vAA6ri07@5h*4Txg z*<=JgUd<)C`aBN5ij|oZ@%b&>T{6ieY5Dp0-Q%0hh^<^uaziG@?|KAda#VU8D6{J| zZ;g3SFr)3)^h=ae<_UaMsd62>(+CwgRN{*B$+zlRg5%>p{Q*(7HQC!$wK9noK`Aa< zoz5tk!fvux=IYl}708LMmnCoExt$iUD=8PhnE7=iA}6 zd=n1LGmO%0x%X7ll#+irt?SLefnj^?5ufC1q{CgqRrU}L+bT89fHI{m*DBBzs+@qdx}&hA{#K>Ec`W z#!_CkEDsLE9_Fg#DE*sn@jlSM$JaEM0VG*)oiC{m2+D%peD}<}9!nM%47%=KwV5bg zY7_muZ=0pXV598ff!-47GEze4*zZWK{VCp>h|9DTjC0XnUY+39!M+Eow3*%Yzs8{~ zv=Kam$HXf(rrz6nKK;vG+g0+u?F5Lqg7>)az6bQK32Wm5xRbN=baF+a?}@N_Zj6H^ z=Rg~ORtf)dJ?9O7Sw}Tr>b1F$3Qoa#v8GqkXq#dg+g9$DEVGWxKAet1qQa+*gT`Wf z`I57m8uOq$OQZZQ>YgQ6lUMFN=xelaVK%ld!iPTmT6<_3+elVgeQ7MxB)m*LU+&~F zzZvvKw|K|IL$*9UWuxtEohBENS65^72hai^r2G8}Y=#@ohTyTmy)CWaA}}8J1qC}W zmoWQ~2A>ZjmQhcHWe@2mrW$b};#~GjCXUO0C(&^BwZ6fs$nvZft?_s5``YRfWQI*W zs$KT)8a9ardv6?_W?HEVi@w0A9A8{Qhwph?x?U_s>X6`o0uU;~o_+SQOzV&yAB!J} zw9cuZK1b<%xCP{W61^_i-haut8oT}AbWW-q={ox?I_`DQBpOh3B*jU&RcoCh;q z{MF0bzRjCuO=3kunLP>nEQ~XkGSD%;e~k&OwFqGHCZ{p?^TFvCb#^n-o1bEm#Z$eO zT3YxA?YUx!;&%L|;~sdhz#qD9kw)Nt%2`DPU8&zY4cF~1@V-z;`vc`eU#2!p+jA+= zmV@R(Ai+onqjif{se82m5AfiQA?b>|XQ&}_={OC^8Bfb)B`s_t>A)6KRBJP}(Uvx} zG>Kg5*nbYP*-mAO8vOc>2~&~@2jo;?3VS4ap17H-wp~w@=_kwXici(lA^-d)OgaEB zbwmSd*$zfW#wx3OtB~O@0zFe|xT-S+C@W4WjE#>BPfiUFPYjQUZx*}t$SZqw1ZHK9 ziV<2B0S6=c=8%GtZg10L#?!~gUt(@oW5(OJ`ik(_RM&BP-Hk1S@v@*<7Nk#4OgJj5 z`@sXT)2?6qdu{87qjv*nsrA-F9cmc0z_^4EVb$&7jPG~_5q9Zn+sQ=epcr&EyTBI* z-ES@1Yz5UMFJ@yNn*pqfH?zvjnC1(!AcH)~Me|4Eg3_rR2LnIW=edYr_5o!Azyx|k z;#$(=Qg3r5w|6b!{RSsjgc@aSdm2ulVb9gMi{B#-?GVhkQyN3>)rj&SY3Qo^1aUoC zW-8ys194%6lP{l@O1+V;@4DHR(~d)>=>)xj~&T1t4pa7h8#1M?e7r)TUd_ zbJ8%0l4axdlay&#g;!_d#DWe6>Og#)B>9?H;Qaz{hn)Wv+6|@2?anwv)@WXHC zRMAY{qGq;1Y5;&pck+}dz!uahboK+v=-=E>SZt0;{(Tx0Y|W(hIdjOR9=RigezzX* zLdiBVwls0^Gvw<>loAqm(Eu_N#Zp{Hv6?&DT$;G+_fdD@*4{SQ-`1CwpvPx^>}vM6 z2fE1mqQPt=d*t)*K@9+h?CZMia>BL|FQZ0Set|_SIgi!qL-1gnICGb?H_%Ae_x7*s zf?l=(oZn_Q_qO7Kw6vg> z`^h%vIm`KjrYS=xGZs0vsnfd-+&3E0Z}ZtCUhtJ92F24EH&4Nzs@qSFe*cC@5&>+v z*AXm&Jf{}Up*qCP<~ix3aLBrKH}B^Fgd^lIM<~d{xw_!CifDF2RDF#6d%t3sXryc& z(UCkyGxx(o*u|6WOGzI^#`?+5nG~_?%L2Fks7I%CLRU(PHGIZirI?4p*3> z;P4vjM_vz0MDgIH4rgNd4r(f$wfsY?CfMbQXq(resYHOn!JKv-)BOCV24_RF%-qmy zzTdN@e}@U|+)#M_L#|LlJ{(>ltSS`&emC;&F&}d_Jh|nJe#*szHz+`kY~86h{XKPOyf#f-l^h6ex^YPRe69~p_eHSC05UrJgH8S4B3zIQI%H?6 z#w!-?kL7?8r#!~679sul)qiOB=n|(MRlImJ91o<^b-9#>{Cjxv@aqAX>8Io;v-JQ@ z*9}4NQvpdF`jZ+11i;F+-O#B#D75{qXs3;brtZfxUBKPaspimvX5&C5VRUL(@`WgOe{SU zJTGjQtc6Tzo?1zl>)!!Vz$`dIY6c-Ge`AYc z5j>dOsYaRB%-du`#$!$FtoufPwy|0oy53*txM_pFcWv`No1X{j6}rx`?G;gJ9IMiEYtC2d>|2V&?^4jRd!)4Yb2#uD$< z-7G8G!S0w+Nq0>?JjFy|J$E|D*4CmT=Wa1)iJhQd**}L132UOTh~S27C_+?VSlX* zUm+!DAp6cN1m~GeCtmK`__<#}s3da%mtpAFF%?n~OpGphfz7>z21@#5*DR z5|lJMXh9YJY>x0G7Be2DIZBDA-7b~X9Z?1kE^HR;FG;J zEsGR1H}x_>W(5ti2-axpd)(U!9PAP8#5EbtfT6+XC9+n^bXVbk;906jawgmH{d+W? zFZ4}Xs+hyY;3dr3O7pb|Y`thy&97(@6Br}SBzO*0IpgRW-+CVjVk(B?6>~nnm90sQ zs^^-3*NdU*y$~rW=`w5KBR1w*$bC?DjmlTCy_P3s-sW@@NgykaQ1U?U`A47luldi! zHk3d5G;F>&aH-+Fe}DOmt>hL)y$`FZ&>@Ulyn>KO$T9 z#a+*b+=%7qkG}=}S^3&`Tz6l#dvj+$u?>7v@gKL!pM-N~3^))3MTtjpXEX0Pq+Jc& zD19&R)W{g3$&g67Q!+(&+Ax|JyI9@XjB8I?FYZp4&zZuuOT$Knu-Cz}-cJaD>xTIy zK97TUjjzEzK5&5Ff`Qb;1Tp&be&{zN3c9WYT2EAKFD-XmV*ezEpts{0V^wWS6ahcA z*6|Ate6p}D^ZRImywFiSY-Nv;kQpagTW-}tc!-DsATLp9V1iNyg0y}XRQDC@({09 zH@gf(c;5~E_?4><iFEu~kc-(~LE{tGPpRU?Hn%Y(05p3> zaESleqnLueCPx2-E6PeD-l4e6_WSjPHZfeO*=~mYz)w}vWpEioVk3#CZ{f$Dba8>z z%5U#|pO%?e$)Sx)iT$HiI&iQVqr>*!|NZ-L?^1muEhaB{KNTfbnwjllj{VfUNR(}T z8fNZ5=P%*V2vUi^W|S9rwspwSgPFK`;t1oT^V82Ms-Kh-VS%-&hgiRPE4#T5Pp$o* z5>pOfD>d8F8+ckbhN@c#U!F_BU=<2!f}ek6f0Wc$X&X5$W${s}VJafn*f}4TRB>1I zRPnM&znpJU>GNA^$L@$Er@HwyI_bp6u>iF(Bk+E_Do;K{o~<-ZXHq|Ex0nexI$e~M zAvegiLM7B|-H?0cxzeCaXm5dbRAw%#{-=^to~|S#5QH}p;w{If zwnRXt+wFuXY(>kSIB!I7? zw@KSkHQWyxPP+e8I#B7V$P1}&?*7)3ecC&|IXiPyR+_r6D-yoAZtB`-R~Q=v)NZyP zKFyMzn6?Wnt?Q-!Qa3$}KWN~L-~DfxU+0Nw^zF0GdArX|qvM*MVMloG!?^4XB|?AX z2SvGu&h6}(5x_54w}np&@n&1K=k>GMpQ+|+)`U-y3ttHQ$TsZIy2;j}Sz1?YZ#Rcs z4aL9fzFu!A>iYGFbLjr)3Z}+@E!E1zAR>J9L?XKi)(+UL5zKzr{WX`#CQk0&QgifB zb$gI)dA9i015@m=Jn^o7>&HcJjkZ-F>0?fWYw|&$k>=z3T6uzeezuCs>UR@SMkk_o4e&j& zQ?e^w&u)%az~MMtZ{Ycf_pYLjsSG2!%QNcLzz&P1#D-85RY6TnL`;=ll}=~ut?Bx1 zi4v>W^-cVGPXxU^oBfr$U#T$EZbBeVo(;$>@S{yMP$#IOUJ>R*Mlz_ zZAOcPh*<;W(#)@v#k#@e#$DGzRRF|iq=;FS3+_R(469wjbmuFFk9HqlMHDzeH>wxg z@U=>s@yFHncZM4)3(!d((7!ql3+ai)%KO5~xW&v${=x-SW zQp{A}znES8-vDn4)ZCcd@K>9%TW=Qhw#Xhc-MRM-UCiB!(t42u1UsvJa(q=PJBt*O{yZcq0UJ{!tn` zRU@;HcC|E)x*F>a*if07z->JhdX4ojh;!?&iv2_%3JH1RrG8D_Qt z9e*FLwd)rPW-Mr-ILqf4k$%joiPX74@qxegB@+I=+b#SEMf3nLF~(xq&Ia1hj>Yru z4i@fo&1NBsF&XN$Skk8a$(|3vTlqNbTZn_xB372yK2TFTcwE*Toz+)(zR{guBUSPcXQ z}eEqZxt?SMV6WBiC(Fj*7Chp|49x?ceLh;mP zxv;r-y5fnSemDU;Jw3#tI|^47we=AvC2DpzFkHP>(lmiq!N}ujZXY|1Tq1zS1tg9j z=s*496F-}}k2h~pm@m+OOo;`XhpSwE!8$c->FRjB7l$4x^FUUd9_0auQB(e0*%Dun zfAE42twlmEG6yq~Y=FKOyLLpODlH@(I25rf;bO3?QuRvYe#pxrEgt_Np@|i*KaB@i*B~W3EQ{VigqNW3U2dUJHgF+N>I_SVSU4L|U$qMGVyF$KTXT zi5*{H{y>=ZqWsKV6x!ZGgI$XH7R7@vrvL{z&!-d&skicRUeHuyvA5eO1<)yag=k|<6-yj7zc>E0F5cPk< zQHr3SG(4wfHJqKdYHn^kCj_l(bUz#`uZc0m(DQNG^|k#|MbwyxuS72O?9{a>0xC;nng$ z-k(I#g?i!GX77d~$cI*+lD{QkvrUxbI@nR%BO=rLr7botA`Km*d5(VE6AB1>7<2V4 zJnQ(WmH7VJpU4ca!tFds(QJ63nqQc*N0Fm_{C`@&2WXnX`%oOXgMC+LSC4sPPm7e2 zTP8zZfmj@1Cfx_i9M1v?)(Cn7Cd(=LPGjmy0j(=-q$^#w`J9%TvC?imH&K@*0sAhB zN(dgd6w9+QwObi0P2_-*fTPDZ;&2h6{920EZnZ$XJm7T?j*81rAEOq%uRhpVJScGY zzDS=VPhnfV8{dKZ)W_~pKjmy@8Gf>zw=rIO8V=yU*^&o!IuEk(k=P?;Brwni?3Z2)1{6Vs;94RnxV0 zo}c_Z_EO2(C{O1r8F)f4ug&*$=|F7rp4%ftwsA|3bDg zISoAED6w;Qy3Cu~+aIDT`a_b@OR2{%@VHj0m*$9ZD#Mg#rim>T6FMkK*kqY=D)CdK zvT+# zn=7UrDT60PUKPSYjR%6T^gjx3(DqaH_IQVLU4O`BNZtH|Qv=UH&>Ulm@%@%elDefd z-23(l_i#3lz{By`gS1g)m9IWd0fv2JQ@&~<&mAj$JO*KV0UW9f%8i**oYpHao+R8%BeQxl!ustYAChm|ahy>w{=J!8QX0 zJit5jv5z8lZyOr;s`MtInm12l*`+z30l*8UI-sYbmm%CaXw*Nh`$6yk43e=yCHifZ z$$qkEO>kk|`ooU@t9Nbv-FnZqEE}>FBe4{g(hy>1q7Cqudf@!CqY*9>FY00 z)+@_k{Dh*$YhKQXvULB=_BqaER%(pGeZmwXEDBv6u~u{Qt}ejv)qec?!({_{0awaK zp)7D?s#7d?B;=2LrQv;UjMS77PIa>Z8(ZFxmUM;5#vCsyy2Gki`5 zJ(hFBr2|C5y$r>H+q9vfeH0X4WNMaYUbAFHuWD?3vkJS#OZsq0f4etvay5Ak>zEvU zi%B&6|EjuxdHtd8-E*_&D%}p>o*$^FsG&+qv75T_3A42(f5_naLr9z66&Pi`KDhA}2W?13sd=>Prx+*=H} zI1BA#pUao6tMq0H+W@I3IOiIZvQ}b5>J!r*e*Tc|^-yhlyT+w}4cSWbQwYL*zKb>r z*uP<&Ci#F?)5{88>z=QX7dgu8PJYGY33$h*OV?QQkT?9co>{R!;o~tLFFMcqCdU`0 zwCkfcX~n`-yYV*Nyax_rq0qf!p}-PkFp8ap@zJjRT=trj;c~0xhZITOzMObdLc z%ql`XNx$S4rp@9vJ{Z?@T%x1bLPT4_qFTPSXF#JSpKdZNxc^*k%!N ztX3Rfh|#zmbEkB1DF%uri3m9w0rNJl?ZOrN7-~-AV%R|zn;4W3k0>;71f6mHzG+av zsM7CxOU2kY5JlmeNW*UPub386_g6d4TfRSE^bQK|bn^zu|K+`$7CZU3wRL(zc5r1n zndDa0NKbu^XMVim&O4AcIL!0F1;qVT7g*~GaHjc?iagH!(`;0fB90N)Yf;x5b1Szo z=L-$$#-EhF>={FyGZ>XVoKkF`)tF#4 zqWPKg~P!;Mw3MM-w3l!$S$_HV}6j*L*-V1bHCm{c^)2BhIYOnuyWq`@( znrw`%HQNyMsTX|%LOLK8l=p{y@zl- zgkrWhyp0i?$9JcERs<(t3ekG#-rxk;jn`=JTA=dy2JR4FRmUbEwOlf7j45#e7qH0} z-8_^hp;{j47p%jzPv9p4WnJ58WJF`nRnZWA>?iKl+9ONqw3^ZLuTAE&AY0nVGEsR5 z9%mulr;-XcxS%G}CC#uJF@+5q@-my6-;dWh7-CzD1iJzVL%Umu2(Z(?;DDL&^MF z4N`8tetM&AbRhd@<-Eo0)ydIZ<_?xg4p{@#F483up>~#atOoDHPpi!?YAla>FZ+!Y zZu{Th5R@`0`WwK#_zJA7Rfq!i3LaIToOURl2$iA66U}@@U$&vMSL_}}18=;>Q+JsC zBMu-;`Cie?Gx zEfE>cnDY6YbbeyH(tb!3K@noGTNCJ+YnGnv^3Lz&s0-Lt02CnBZgMkR$Pbo zD8udn-?|PVcYgePd#ME$!$x$0f)^56kOmh5+cL2FlTX$O{X1o$GbX02djco!b?-eV zWl>LQ^}h2Ty>A=Z?u?9Wj+zxYfc0%<6)gq6I!A&&_Sq+h#_>a<%)?~~9x_|nFHf17 zjf4AZ)nKmMNe~s9A}BrlLXqZKgo#odi1e%3b?*Zu+e>)QD@;{@$z3ra>}rl6UcGcR z&6ZT=9lR-$)KAS^Tj|>UJCOgn4%1}w_k&6Q27Bn+uLdt27~`~|#h<_JC=*h}j!y?n zbR%eW;fzEPDZQN}Px+o>9#?{lJ#BKWT0y z-#Ghxv2GVb0p>|hOynsyFBf%Oi!ByvKqVx^g52~GofzSUKZEF6jX!&0pr=lC@15KI z{^;ZCq^u18DvDD%0JvTjq#C&1a?86g&9Uk}p!5k3N#?cT?&C76aX+d@cd4h4+2uaG zd)cO?B+^YR_>$)bi0eR*2Zj+!BxbpQh7z-g5B_QT3;^m+CwZ*Oaf0#HmtRT}0o(1W zmKEy}Jz2l&qYO$SB{O%k^J#Q96J*U5r0P$}E!HggCm(~o))n+F(M_k{5yTdfs$<(} zB1jV>h%sO+xBL*Nfs)6XBmM_BM59Y>T~Dj{OYtd3Q)rtsC(eaLK>SESTHlSA-dtaT zAIwfrWKcgE#-tKCBlJ##=emLbf6dB1{$u;MON~q?1s9*@Wz^qV!ij2Tajn|cu6&Vk zdPF*ID6xxP440z9|5@>zlE-^`;*v)+lQ}U&+H?Un0uGFqQ#jD@=Yq=#5R7qwUWkM( z@A7>6l^+-P#u}k}o<&Lb4Xm=6jAj8&S<%AGJ$wkLv5M;(FOZEA;dG&)g-^26Aq8Rx zhmPbHhF!a_L;{9(%#Dwkp!v=lp($H7ob9}9eK}hxF5pGmhJ9Tpd6C({edj&DyL{6J zh9AL8;*QQwU;EOCyyFHl)=5((ERv-0*oVxJO9xejt)@+m0zk_R{bcc^p8COHul~wH)iz`@MTw80JCB_UfVu zH16$8ZQUq;U98YYKm68n8A<{?X~S>+Dr1>V$AeG7LjGbyzplwA&!D&yZ<+)&|D&21 z^AS-NxEb~0%ow=M_KUxkoPHnKM>*dXh7<)uP|~=PzXBv{T3R_x|73WutLLGM* zY&HX&O%7|^AN{#l&T=FV0O=As^Og-1{H#l`sH{yCKBSf^nTxLf7CDB@9=~9{vNFI? zZGrC=mxkQ~_jURWv}3iPj4gOf?++jF-3o<>b6W07;BREl|tp1~osLF5QAR zG+`GuQ#{?Ps=wm}0GcBRp?%|Q*nwoD2vR`z4jJ@CbFXsRZtB*+p=lM~K&7v9F|@E;oE!yhDn@{NNy#sdduSjvI_Pf%U44 zQKY@cd)yw_+fw@%;tkp#zwkiMw0k%Y5x!B<$d<@N@{NG#EF>EfH~ zG_+c&Z^p&m52BbwcU7@b|ITYgvo_?b-(z03j93)1At&}J{2TWQ{>_^b5szZ5H-V$O zP)@80h^AE}_td(VKQXN$|5?E1; zA#*KZNL2$Y=Tp<5s3DWW1iCagQ=zS1-+*_w$8&G2i+Q zhX~xl^}p9-_K=exe>QW%$3x|?px>)(kq@6Q3o8Dxusxil)Rd#kty(MrDxz5i^pqgS zZ4Y_RY=Qw_eX?m$%f)hTZ4>bGS};S{qVjMq`y5-y3oD~Y2baI`da`0a49H~}UY5(r z#FW{iAOwFR`QS+CY8SYV?IKxR=QgKYx$3^1g%kM5NlEP^D|Mvu8Nwb z1S=hG!bn>~TU*7RjusRvTkDHDzm-b3i>)#eIunC0XKG2}{&Zc5dr5wUy=*=K7CH3U zUJ=uU<>z&K91sLxnTz{i4&kltmr#*|R zRbNeGdEvbr^!N|myLo%68A={gu%|ZV4R1+hZSl%IGRC|9^c52mS?cfAr|B>gb1Z0ibup{739OQGn-*7SV_+)UAFuU;2e`;gW z$!1mQt}VOWP30tRST585CG7dUBfqE(o02<-n3c`=YW1v3Jg1-m4Iw_*rz3Fo=LcH+ zY5<4vP3}fKB@SWO`eRie+@4kZ?MRFtrmKn|%E-#j@&*zLh4f+yd!D20I;nlSNkRsZ z%YFzvXAGnxQUUeXb}Oee+j)D@ZpYkrQ@t68xJMXBm7^?_H%ya3aQ;Gjd`|O8y+2Eh z{rIN{OQ~M#M~?L579?+uf#DP9u%lywT*?Jw;z?Y?fAkXe&_J6Jz}$yB8pet{G>`IH zcP>A#{%nRppSHxQzb`%eRX@a|yDojAR+BbBl9wcMyf!smmv0JZ&_GJWF4H1s5e(pp zNJ(VA7P5D*^{$h>nI%;?DR1-A$IebK&ndSE}kn2?joC_%y6n zNzXJd<7azjRToKD@^dPoBW&mq-TO~_OnWgGg)d*=$z`U?cuvS8@kb~eJ-!c%iSIBT5O;4&Y@s ztiR0flS}u37T32$OUZ1Aoil|o}SAX^G1Ne_`tF(a7_bNr=*=_dyNICcS70RNmJO5yd z?1q$6RT!R&8eP{5zvQVPp=7BrE~gh69~jyy#V&+Yp#Ktf%z&9CxV6b*WhnScu`$Wa zCRx*VjS^M9JU8PQCl4FSlNPPfs#69owy`2-e`Wmn{21W8;D%f7a~?F~7XRC`S9b^J zwLS5d%ooj-m8+}X_^b}EwG-w0yM9<%F!`-#W6&vW8Qa*kRX{uNAZ&k`irqt4|HP|l zQQOJz)p0HEj=InLWhj{HZwmBoncj-}x^vdNTvjJOE4_jw)J;P8Va4s)V> z)NB(TINn*OiHG_6t}(8)n`~7%2_7cUcltc2lE?y6R1BOnIRw3-H$A!Xi&cIn**;cN z8P5ywb&ZArE}iL0t;LA?6x9Az4yqWoW>}#{0K{(XgaMQQ&-K7h$Vz?g5xSID8p=kjF|sb zGAV`gL`gvGlX-gS^7SG;1RQmQWHv$fBEJvUM%A+ZlXOA{jbgHX>2Qn5jamK~`k;T6DHnVp z976MWQmfLB>U%pN9(w}K^+Lbi706>z^+L!!Uxqs=6{`PH^z#lYMZ#TejAPqQvobR> zV`x;fhT4Naw~Lb9hz~WcQtig1v}9lQK2W^ODC7|3`-V&VCaKm8P$St|c*OT+hKb<$ z74~fWwD9d51Y}U86}gD#<4o~d7LB0lJBoBk41ApOv32-+3lhG~&##6WIXNgPJMf*%-|_MF8cE0vM6BBIxG{dk+25V*?39pW9Ltra zqUykIm>5fKC^w*f-eLLk=aU&zerk#Z7OOHRs}*%pTI$Bi{L;$oe1o6%PPihxjl2OD zYZ_{U8u}@3$UH^U9E){~tqKEjkM^Sk&f{yfwG%4y5~z3)y#3;qT;Kj9my8FqXmXsH z?d!xb{PKkUn_)`v;kI z+=Dwb{OcPFD;Uo1|DfxVDD-l-10p$B^$eSnhF5};4WRfz!Tn}^w%*)da^hrh+@DU4 zMmu)PtN*(pauqjwd9AKmrR^2xXlYfxw&T^!0Z_hO^V`)t_V3mVI)oahh-1h_;8xZd7eb!1H8{!*U6!oJ{Weh~q1EAjs zc_1+DC6VxN32QQCwt)a<4RD`9ysVDC9}OI;A2ee&d7<--#8E)uD*pj;hW_uTtPJaI-&%KACZKm3WnJui8;t(t*-h-tM`@}4?NV_`RC7A2 zNyTrWsv4S7@#a+SNdw&v|4~(luVyXitV_*HAUOGi&eLis33S%K>KGZx`~J zCke0OXJw{~jl<1lZB(ZG-#JbKg-A87iqPO-?|x%OHvj(filchp&iR2Xam15-+^GF6 z)WlE@Q2)s2YDBf92N@(MXf|%8XJQDGG4t~D4RsB#I-yX*C!Jr zZK+z3Y~Lm&xFLoPXE~u@B-u|15b2vbjz&evWmV*^FAa&A{#ta|69)dZ+ed`Z|IacPuem%rGS=au97_GTZBX~fPAc+wIqQZtvPK#y|6TU~Ve2h} z;%u93VcgwD0C{vn0!TM!-9##(!p<6htp+4h(&~g%5!DCr3Qs0Eo{6NDo`Apd|N- zcPNtQb37tTJR*fn5l{5_(?&{4oIHbkQyU+Pn_xNSuhWgc!dk*UDBkxJ=8f!y8PGY_4YlGv0NgY0XWd zo2SZn$b=AI2kuKWqozjIo=>7)7|_CO2{fuGnvCEVfblFnSB7ZDzPOSPeSGm~OU*m( z=+B^RBASt|)(Y4pCTY`J^)*>!Bze+HAnAqqcY~%1s9#hCAWSz}eFqcP9G87e)W{Uv z6IAeyTP*$!3jcH8-hZ@!f*UOiUOa9qg4=*zJ`7=<$lIR|arllcLuowhJhdc;;i;#64ZiH~!0EV73%g=hLow<#ic#ZDZd>LgS4x+6V#<&=Gf zyg*I&6%FqRKy3*V{&)Z7|6C(be{XRyKv|@)9dpdtXCUOau@c1(@cn|CTQn64%o8Lv z4~&Xvb~3ojvAQZ&J}aDMP}zP9r$Bx)b3FUSxfOH!56Osnpo@4Y0nEX=otevE)>E#C zEq@9t0c&|Xmi&Lu&@9a*!(yCyDMQ5x((4pUoYZQ}j^DVop?A?!zi^u62N~ZXLPiM{ z^agTrJ9$txJz9l3ZrJbL(g3cu(S_aw7w4>!w9_0$5vhH=gHkng$3P^aU^s<*H;&5Q zK&?_OR+!)lZ>ig=Dpt{wjyZ1z$<8PhGGJRS%L1bdXIl*+MIvRiQ$|Lio!WJ*oGxtS zK&A2ZPjd$$_4-PTk`(a##}afr({~pCWm=f7h-B);rAjJ)Mr<+6gcn-8|Gb0*-^U_{ zw#u?X7wrk_4ax7oiL3_!3ks2~E9}{W3(jbU+?28^BVs(tYO;uAn$(J`r$aSt0r$zrPaH0D&UuQ7T31uMdgq>_hac3JH5AZ!@FBT|1LS~tq z#bk1Kp+tst=Y!>re#eAUf2fHI$dqhhxezFk$NH97*rjfMHRK?cyFnt6NibmuZgQVa zJ5GR|J1Qy3AcFyXyG^*TdZZ9s+~b0r@^*(olvKz1d573h8UCZ8p`z)Y3jDt&$jmh& zGKZ_V!g02%7K5iS5uTZowRXv4XO}Cgp7vsG#sXm)*)};r^Aw$F6(+e(OjgjKWF9FsFEl!xgVgxvLrJOb6`B6? z^6`3MHTY07_Jh4@gB7k`wDuLSeyLX6-UJapXW#^4gvOqYY@^Es z;A@bi{|o*!(pdk5>o9Ekn$fV4?kcDh+OPFL5NK1gYL=+OZm-$Etz(A-Uj362k(w=S zrCU&4C(ocS`=?n@^0jQgRHTfmwhTduIfi8KH6+~DRj6X;!h-m`&g;{L!Hs4rT)&Lf z-?6r#Yp}CH?&}XS)xq!#!?jvjy6v;~kqi-D|U-2@yQ9fD{Ck!7ha2j{ieu0+@M@xJS zO2>Dl?LJadf*vCt=~la3Z1D>CS`k33fOp=I7jSVCX;58wSj$tjL@|rW> zqhg_-lR}C)Z%QMJr5cZc9%a+M0Snq;M!d+n#sujRe&9) zHF7kF0GddQ*{0<%5n3)*+3Fp})(oM}f@@0)1xNEp-%~W)A@qX&fj&d^T5OdMA`Ml9 z2-!`~-Z@rKG=L_i%&wmZznOkYLoOx{3lWmII(`R7lXv-tc!{&o_#9NZ6+8%Y{@+aX zfeSA$3*lkMyp8Szot9oj+SyK?%@@y3k0a~3l|nZd66GY2wTvb?V*^?@V5^wuaq4I0 ze8iCdK*s<39-;b~98$$|kK!|%QmKEAy6v8CZzRP(BsQY10f7|`U~=s~sxqB5Kqlp# zGvvtwm*9v$LG~>&R83>|0#!wHe1l|o4Y5Fl?iP~GD=1>YM3xP#(|{%D`0I>mTCS(n z4v{*=ur}-xLkbQ9g`nv+XvWz67OrA-Hzd61r$4}`iwI%BQLM1m8)WwdHdK)#GerFc zNwxS-?HLk8r|$;qpddKm3bnV$St*+%WJrO70O+72Q1BZdBI25wj?7Fq8<7 zaTy_M1hs#cTeZK=AwsDA(FBU68vTbi{P(;6gFy%!!#0HV6vqMdFIRHEdc4E!4RZD! zr&vx$lbGy{{tK}Nm8BNjK%Qg%^^=@oIsDKyW6Nz(+e{-!)sGJ&zDx%L6gmqL8_m7?d|4A zY{!#QeWlxxLckH$*0Quy57RFCY@TY)5Rctj5+Z%bi?q=5e?b;X9yge)7c`8kYeAF0 znDf2ech+m!T>C0=Eb0G`Q(+~bhQT6F=_dpCGx0r125_K2K2zcQpL#OK)^QR-|8pjj zf3sVku;q{_s!Ae95$N4QF{Jd#sXx=>+`8{8-~no$cE7EUua)4uU8q8mYm-~RTLtkQd2lrG+)-R@zaNCDkH`>JDq_f>64DUPVINdiSko-!-liutqFqTf8LsfRUsRc{+nO!`6Hn(sR3%9;XWYR zwofps`I{t!VOvMHe;`GB<0pafN@i5@(Db%c#Qxu4yfqWP@em`ysN_*n5kGX+aee+O z3O{#G59#T#mbmniDf)AbMB4EwEhV ziQl4R&{}N<6S$ZBGaXpni5I4hVS*5?Ycpk*wyuU$aO`*&H)N*EBEm}PHHLxi!J#8z z%HZ+A?Sqgb!@N`4uZYP_&{Si(m=21!9EC;>YD9gHuEW#?I*>k0tN=k1C{rr*Iz|LgXD@$dn|MC#f|KoT5yK+TG@(@VfpYwX8oZ!ZYGg=aAAoC@nwz@|sO zg`Y0f0J{l+b2B7(r})+h#P5Gw8*LastfGn()!@EH`OM_bw$RO8-8R2k8 zDjXz+l!2LY3ucZtRmAh>mYTBabievH6Y&Ql!W99uwU-kWg}(T%aPfjS(8kOvfNsj> z%eOhvWk53j4b)JwKC(sMg@j69S3bmDxH}LK)fmXFaA`fWmEzN?DuX03Q}MP3wiKB@ z6tp$!i=TF_(C>IAanUi^J`3ZbmsY?H=!y^Mz7fcQ6Mso0Ilaz7&<)-OIu#$_+Z%f& zA*WW#o+A7Aj5kPODR??(=y~R(v@F?GbrxnUNQN7gEN@*;rpZFy|EA+4!0rUt|2G-$ zG0guZ621hhlA=wG352*l)Wx0!*B?^0E{l4SesQqa!T40qS?Nan7Y)CTkE|##qX3T_ z_qXCRe%8c@n!nR_3=Jh`Z4g9)aPK9VCoX>E>(G~4ra z3@!#>ofjf3Yk{b3)xGOguhe;g%H(^-N*O`!G67zVrieDW_DoG3P}tSjo7-1ot(+d8 zoAQiTH09z)e;FC(UYdg9m-hAj!i|e9z9jsh_U85W z;Soo$dhGsfN+sQVJ&tt%rFeyd25NwV2`WU|YguGj~#Z@s479gK1P zC}o{>wUVedBi~Y#xwr$Rle^x;PMp}HJYt}d^uMZ{4jiq zLZE^g?wmwKd>ZhA6)v40#7p}7GnL8f$3#nbsf7oM4!u3CRJ$oM-kxq#0-iZ zl-Rmu1KES>U&bXK{0n6wnUM>iIU zpGx+7Mmn}Rt#grDIl-|Yi&Yov4>Bi5!Y(G(`CGK^R)eK{<92` z&ZBvadTob@jiEuk#v(*c@fBeo+P?~?R*}VE24l${r-A53)d7_YFZV=QPnU^JYhK=# zmb6r8I)6@~nTj3*;`4{RC_bWvJGMv3^tRoXR~k+&$k@=~pjUJV!vMBw>?SU9a* z()o@)W|f*~1qIhHt3$~g@8HRp0(t@!ML-_p55&R*8BQkztX($@D9qAv@9?PqkZm{_ zkhpIt3TjbrCrE_=&$EUBE8OQ3iOA)Z$ENJ3`3YoR@jWB~roH-fmEZ@`_?_KA^n>F( zk!z`*VpY7M8yU4+&cRgS_{pEv^?(wTH`UVPAAO^Y?)Iz1^YT9vCk>E3w0T=3sQ3As z?8D@cb{s5}gx(^-b5F?NElCSAYKC>ITiJ<*ammU0ZI-kNCOTqZWm?aaCAduMVRj2W z<>Ldmlfd}I_>y=9uMEp(2DzEe2Wa^t{)U=>Uai{y-MbjFNaV13gpdbd7Spk9WNk7# z$n>Cs*T?{2U_NeWNM9fLZn`S=G+OD#a|{5g7pI3aw3SW13nyHK$icNDOvHU2hqagWsmQ8;s2(4 z(_x&Gh^Bl7tHw`dj*0$ZXA^D2^g3!^-lp=qejX_s8a>73Q+k-q!^CNScD;vVXHKA^ z(3~+E%fnZFW}V1J%G#y*&dNfc_(s2@crQdjVG$bVf3jwm<><##bj@o z9h>eFRnnxW;%setmnM$}DZYg)M_}sU(r+VbHc&V&$w=11LSy+VzR4EMTx-k^Oszc;#WT}rE9VhF@Rg+m- zR`vDo5O#s@Caav>UEF)3;ASvlezmi;93D$hEY#`Dn%7wMgy3UF&>>ml<@f2eHR9L6 zl@-1xTQQV;T%0}7IV-?|8}ZPv$!^ncAH6z2ybt6E+LU{GcW@{#p>zMB$3X&|u6}B2 z1h)yZ&7Eh@3D<)2NvJRSa*O9Li9*Jd&T6R$m!~6kCZ?qp*F;$xHM&4)Sz&|5nx^8h z-G$kCW?pRfu9!jg7%>fMWaGL-8b{?Ho(>L*zUNt~xL!3-rkR{^3n@kDpE~CkSBVfx zCJ#R0n44LgF9Ahztj>vq(NSI{&Q~ z{&?3NRJ>hU(!9vIaUb0wq3YV$+Aua{S)zsiEH@`^5`F6huVk4SnU_U@Cr_enSaJPS z9mPGt9bZVUFSgu9lmqL-hE;Xe_4}QV?4zh6m84fBt`|gzflIbMf+fW$^yUr~??PV2 zi2r`S;;{$E)G~;MBzgV>AhD3o{x}(9C3c*vt#JtWHAX^0qOGkx(FMfyy6kw|u0v&i zvpk3*pv`p2+l2S__7+A)G@b!H!c7Q++VPn$bR9tF3Dj~FG$^jGv|xz}#rNHK^VE>r z&stYkPE{;(;VVKxR0Uy|&1*`h5*e#Txr!$Yol0w6M`dvv@-4BTy^4kc3nfxyXhQ>+ zgHBU|%+*f&Sw_2KqUGM+zStgacoFUxo}_^%TqkY2>@c5x%Z{YZ2 zAT)C028WKGNXV;qukf-{Sxt}6Vkar3XmH0EcUx&Q<=&>u{n99d_HSzDAI+q!cy^z; zCE#}cl3EI@Cx1eY^|~l}-(8o6)jS<=wy^rDtJ(I6=~Q%yv3md7VWok&9Ag#;ars6Kzhi!0{1 z%B-X6qv;I)>Z+!1bL!OvK>>{F(D!s5B>^UU6gM}Q3hiqVcgw>H&rrMdnlCr~Ke)0o zcpu|hPuBUH>}Fa6^W4F6Y26VTuwcCXb>YPo-$ox(_U{JyAdWk)k5>?c1}IpkgFnV| zC>$g5AXSTmDm)W-XNM`4vd3x#mWfj(fwoHdNhVCK*5c9LP83zP7*Q4IVI#}*(*igy zsD<}93tmC}336c#D*i7XSd6dvt`u;2>D%LsE~`%B~P!w5E@TM?ZkqTR6z?;dB!mViP{H zwWMDZO(;qMCdQjK*_nyDT6#dwbp}Da;D}M>fTX1JKa1YhrCLh;ok(<=CTq=X1X722J9`2!BF^$n7S`cYTo z!=t3!7NWA`H4nS!i`6=4+dswZTV#g(66j2nLn`SK!aBlKqU zdJvsPpgkSNaTCxg*rvhc-PKat+0pQ8BzlVJ7v4K!N>=5wm7}iBY%~3=;McibX58mO zOEX*?+@_|+DxJo#zveUb?;T4vqvOzZK&Qp(x1VFJ+=YD%Wi;{>Mu+<3Hg9&7f8|YV zR81{3V$O_$`&?c!Jf8;&b-~71FB?SOZg!|e1tDVF6OE1W>bva~3HuRDM3#;7;E5QW z4$QXA!dZ)=h#D^_4W}Y4JRUR5WUrj|%-DQOE65S3+D-2NYA{bKCrXBzFw9>ELR|e2 ztA9a&O)L62LH=y2BcGc0Cfo0k3YYj#TX1-s9CP|-lKKw=rj=Km1KX)anit-))L-m2 zO=!bjjq1t&cAC?9^Jy*^`0nBQ`wl+P^_{{f?mrjdoNdF5e75+Da4s$z&3j^y3vSL} zIlARIv{I|6*GKf3{4n$lokBbW?6xmC-1!n-{aN*U+>v8l-DT9QR<#Vrh|qqC5iM5O+S@O6n9BJX#}9SY`@qO;EU*~PC>hRfEHpZv6lyxgL_%nL?GaEg3|6{o{9b@w(JHRyFzq0uhx zu61CKU{gi((})HstE=ee^b;E-qzD2*=ZPLuS_M-`B{u^h>=Oxz^Ycpm%yW(lOSt3n z^NTa9%kyJn5`n?AX*1Z2a){Y&Hrr25 zFzaWMv^Cn<|FAdnakJm-Cv4Pi;f<;yRv)M!%p{>+;SVm6qTrB^@N)k=0PbU3AyPF0 z7g5|v)eJ?iznUxS4M%5KJ{O&8<(7FhBWC%fZBvc{EXe7MThm~!Pn~I@;;&qTL)xuLzUy> z3!12i8%w*6jZUGI@*J&(m#P9d63=72!7fpGB z5Z6V~pQKz}>es1-1m+7m8FfX$1n+ZzmeIi zc8YBc=EdIbC5%vB4skj5&?f>O`UpV)VPFY${>*3R7-sK@rG$#!SU+kTlq|5cOW zgph{h_vzN9a>-KD@0Xu8WYvN$c z?VgHnjL%n8@T~ROC%=!#KiPgS+5#%tye0?Z1ju;AUj2t?Lxsq+#O`P8UG1LPLOdtS zpxU8qBTx@UaPEaLNcb5b2iV-YAqf7zzq_;0`#PZzHTmlo+KP0x!u(3^7gCb4DR`*- zL4~yrXPc5H%~&WA=Y`jd|7Zcm-+$OiMkW&&Ly@6crWLF`-GB8g%wM@e7uP zw4Uhi(oROTV{5TH-M*-kn~KP4_tkVTCt!pBvZ0B4`-v4pStj;DT!8BMpvcQ@{-`$b z#M;gL5LYdRU{dV_(=eKHmorZJ({Kq3tnhDGBS|9zq~X7aZay-cKw$5*ga7dOc(_I5 z-?Qv9FrIDs8y&C5!pTpIbJ0ie$!5N&0LBqtQ5{|6?#>@r5qq5Y+fZwE*?!NXtkUI1q#$YRkGGLCeIwf1p z7H`-khKcQP-rQLNphimrzfRIUq%fc_r?dzN^TMjdCX7$Z)*b~t2Mb?Wg$2>-8=lzl4`NAOU%RFRSKxmvJf$ZVfd5?%#r^=sAR zXGBG2+)oi!DD>a!oNs~7PkU8n4JmN=k|dtH4oe!H&mF zO=_hx1E-|C#RrVk|ot4$0Z$A{}k~T;ex(bn|< zV7_9@6%9DWhY{puE*`ZpW7=ukkMKkj^Jg_cE_44HD2&Sebf|v0G1453&u#x0!yL0g zj=xMY0TDeOCskENtl}MtaTx6X>*{hLo9UWE=FN_p zcu1z}sZ~##DU)gAT)Y2M?iSdJ*q&0V}RA58)2=WD9h=k}l9z2cA*OcQG z8S7RRP;PR(fHXtd;Lb{`gv@#l7pnDfcj0@Gk&vkLm6aWL!iQepP6)eJPn%&(8#$oFBIwZh$-%Qh6MEjYFBQOmB7~SshjzqcLrLL04^? z9Mow-?lN){yp|Yjd8y9b zKM$V%Ou!suC>F)~C1=J~@&a3naRwb`b>*c7#u85CxvndfSsKW>8F z8jFfIH0S60yzgBngH6n67lQ5hT^Ltd&EM12N4f>}X$xFKCm68|S#%DXg2ofuzmATN z4;4sd2kgw_%6z>?0(Xs3+jLq+xg6_-C`S_{ab1D(op5a zu+_{s(k*kL%3xbC^Jo&i@cEe=9*r-|TvHBjoYB&R=E-vdH~?@tZdmp2KsS<7c=L0S zk*PI6^v_0T|H0LjbI{sQ9vRuxXuCSyW|-8ml5104#H{P>@#u?g5jvUqd^%cqMj2Rh zQY&+-(E)#!X_dilH-AID5pj#X;sHG6p{9#SxTP-rot)fgy_joP%yPDCvQXXS(Xtp- zn&@@6+ObLc3JglM<##x6iO8Zblci@wXnS1E^c_@q*H@+nHv zDhrW(l2vLDsTG}Kfbx|fD38HFn!8@hDMc;v35gq?L>&p}V1#oDg{_pY&BG{)P_XKc z4jL6vzZ_^rLLw6JBv8XXU8?Py8^MM~<9W>hA$LCBoPU)fcAbl_(v*{vJLSGoo!?dz z_I%K`Y>s(5F3v_5cw$>D2Q}Y5*i^TS-ZPX_y`rzp_UV49L~hnC)qkB}f>m7J1_uRq zqMFeA!dy)~xAlg_n!WjZgA|xex7W;A;cGQMpQVo~0|m3gt$XZo&Lsn{=lL-fveE8V zZbqnxhaPxh0mmIG$(yuo#Z0FgnTi@0l97nM?MVUmvC1Yff5#7|mac;n#!0X!G8j!L zl2eNuOFxM&^fdgiwofE52)^uF<8_n2T;wwW7PElNnFVDI_O@Fxcj2cg$|_9&{-b{O zMu%QC8sK305cIlJfSCM7pCtUDHC5+s5^Hoj*Z`Sq78;|!yb*mmzva2=019ePznxVS zB0gh5SPnNO!_h=*3uM;RfVZxGIGT6w3H;S;PFo$FX+8K-Y60$wcZR=Ek3!bi1>_%E(wiQYyU|$o26CM>T;u2 zc>Yr>TPPQMz3HoMpp*9-%3Awdw?W&ETd#Xj2TIiE>_pw5eqbZ6o$;cOy5YUlq}Y6w zZr5XXNAVk%+vx$S0qI<`_NjuPSM2-AZad+#`F>$VMV=(6w4I$PjsQ!7I|_hKrS2#x zSe}Jj&dbZKm6`I}PzhM6^(@Gq9faW%uZMdSe)aO8GVX&PF$!={;mc5*=7`TzfKz-_fSNDbjdrcNwwzM#P zbcfJl4$6im%FpCn91PZeuCe(lmS4zIG!3;UU)>(6y+NrJDRvQy;9b#+w7bAFIt9Ax zM;$EAOAuP_o8EV}aO}%Zs@Pp(bk$xb=Za~&c{rfnvO`m<5UEed!yllehf{}HXoGd2 zIb(rk+edq?{A2O8>1EqvmcR8Be-sI)=gj2aKVL(~nUg$+|NhN?xERou8R0@u28U;EOUU)K-$&`U!5L-`kgGCbDZ) ziW<+K3~9}oHzdAW$)u0Ab;&aB5@#n54g7nF%2@9;r?uv*3hQ2vn?TRq6f)1wun{|0AufJme$mBPg`cB|d0MkS${pRSB@ znkK4A2igGAD9yBBc16*eM*Fth)+SJJcv zcy>yUM$rSVC=7Eb-}k>wS{+Yf-)M!vm!h6*yy%fVz;qup(c;~h{1(6cu#en^9DurR z`WxoXf3lIiD62uWvcu$ z%e?_mfxSbg*5lJ~yZt$;N?g>|u{4mm9B2G!ZLApq`;0!~p4KOXtpOK@@ z-0?TJ2J-i3bJ0ms!5M*0=R<|f*k?kHCZz>*)$lgA^Mr#QXm~UPj0SuF4R*8-h(yCo zG-M%H>~)#57@kgrl z(w{yPllteF4W)pz>pojgt}{QAsXMVE40k}7`&nQ7;^+b!F4(QqXjtfn+>mq1DOn3Z z=q0BurKsL~*esM~CT4Qlys#22R*KXrfvlMfdXVJRI^+hdnQ}8Aa${RT2i^7+iVf(#0 zYepF#@dagBM0Yi&b3XJQx2&d^i9t8K4q2G{@;?sammb0)=6v%;g~g<=?Bjuo;!KPg zhOqc!jK5S&+nw}s27h(yGh9`(y0S*8xaeP%?^Y3<+858AA=GTV2beHfCx~Lv`&tr(b4tt2^|Lz4g-e_xF8Y zMnZ>3y}5$T0Hvo*Wwuj7-o^Q-o%e%b)*WAFYEL@-$|3+(NEE?FNwf$YM7L}ZlQZ8A zfC66=@Yl2suE}2)O#>J;ejGO%(!R4f95__?47@vl!{$p;wkJe}SpH}LzSh|DPkR`S z*iQsl01bGhUzFJm(4I}Hp%Ut1;!enUI?!n#W_=!q?YCthfI4NR3oG(5n-A|2d)plO zP%)d&_`R!7^wb<;_fmPbFN*X&M6TZxE>L+^wn0Rl;;rmY-smz`B;mWNdh|9w zR0s{CB$IODsbXY+K2g8c8LWSRFXd4J`O!>58*TcRF!ppkG1@z+oPH-`W_vaTkhD8G zQezD;IxMe)=+qWMSpDGanK)_E(-5&fi^SS0=xLmAh1`H5Mm?B|D`A^6_yL!tioXGX z=5PAVB7~+rI{F;A&5M`sUWcZM7rK4cHlO$ z$vVNszVdu}2o73czrjJGDo%%I{@bY8SfLw)C42AZ0Z@o5z^DL2qZbJYNrf~~i%5zL zan+8ZD%yof1;JBzTZ_k0B2Zr0gr%HkYe{B0lkz6ZoCU#X_M%;jPU^R3`_b%yHPE4Lu{XAzL+P0u7^{I-hsH=+d_ue`d>(gu-cS)w7Ls+y*f3KpnO3+~1 z6r>CIL_A>2O9+7VL&;@ow0ENfnsez$+b5et>8+yCTIp!vrU7MQc^@LHnB+*F)&$-E z(E=U>H??byf^&?z4LZc@wU+YN@m!k%9~J8b(E@r(37`tP@zyz)XM0wDV)tv2eCE`4!y5AIoU-joW`YgFN@kX!3F{57 zL>s4z!0|Lmfkm|CL-iog!!)uxtWZKZi=tnM*JbQBg8bAh*z;cDzPLtSy}vpy!0@%~ z@wMKw{7YB|Wy+c_n~AYQ^nR2aPV78qe26g${#difQl73w6(nD6&**3dk_3)77j#t% zl&jFbK>jl=p@xOZ;@=8>aSexPYTs@?c1>1%LK1`LLF`7DGfdS1*m~!J7_~vz#R<#^ z36Reu29WDwb=oij^gZKhw^#U}%COC8@AcBhbQ`l?=;ULue4y2pzwEj*d+N+_pFBfwHfcPS;JpA8KJy|g6lpLCV`aQ z;oz(a*jcK4_l`9}fGBtq1#8q=| zy`UnUjZsB}RWhfDF1$u2hNpI6P}L$PDmWsat#PxR0tm)VlZRltvjt@JZV5zV25MS# ze$8_Rizu&l{}LI32t(Iefvn}I-GIJW#+){jP`8ay`vY0?7hfodf$Su#JeyVZYuy>@ zk5?t|v#*)n33b2zc~w?Jv$+{5%uV8Hv4P!SS-5%kWfw|muq1YoL~~1c^AcmBRMm2; z8!|3e-|cxyQRo@x1IO)VgtpKbf6Sy<;g5!%+8n(xNiMLcGP^j7u+yvI@lN>eeD$zi zRT0tS67}mw6o~k_M=CD7_SASJf!g`-ufsgh{Pp47q_i^=Xg-$m{QNvHFo5#ab}7fb zItvn>v+^mbZsHkCk|oBrLrM5{8h+p2+~_&9oXvCzzpept7|u%aW1j3*_Uh5T`^B~2 zKY%Ve4-J;Czt}9Cft6sEuZyfHq|L%~N0F=@9L@*w*RQX8P8;j-yIvi-7zU0NRFokbJ@7$`5oac9QmtfY(KZed9sL?0~_Lvrt%6jXk=NKT5f`n77&V~@o+XpY``-?HJ(l5O>_LGu+A z6;bEchEB`4kizVS=M^@;aSXdgW|njNs!T>&edHEdvVC8a`8LZO(i{CWDh=NERQm+m zH#>u%kVL;c?+nW>wOw`qdVT>|nVIiDY!@n)HS>j#pWX#0TiuQYJV({wsyYr%wkRhB zFQN2MIbPo)l{;SUvOiAE7Tp!xj;6ByZZjC5JH*yvfDzYs(9=H=^AIQa%tiQ-?D;+8 zaot<-8_5T_gyh|Y)I3JWKfv1YHoBPKMbFCmsIyZ4!xx;e(7;O%i8fv~(`@psD_a2{ znz*1E3ySvRugH<#F01q%+kO*;%l|GDs#(X(c%1AgbD6&L-NIC4m;1>?X2Xc>33{qGx$cOnUwzIB3+O1p%F^1uLoN@LTr1P-N6Fxl1f; zXE4*zw4W#TqylUp9*VKLP$^;iByR|I7^v+f-(RH7`nfaGOlUTEvc2K^Qmx;H_78BK ze7Y9S^ql~OTgNTm?2mcho&32u=y*6^^(NPn@;%y?suX7Gv|R@3I<#?aMSop)5fs<> zepXtX&3hhI*NJ~$2xczKdd+nC4HOFiZhfNv&=1ty?_GsdJEXQ7`kcFN4Eyb7g`t;Q z2?P`>S7tb+W%Q(6tS$m`U8Kmi8`HwI_fZ`)!l@fXc=%bvAD$YAr$3g)v?2_O?_xXd z3zUoD-8%{fu}%W+Qr>XILq-L2BixD?OpOGn3kPRhMK^?vVod_JYZa_Kx&Z4o?{bRY zrr~NIg)M{m_8u>9aLN^1X-Wrh+o;mvi9dN3ME%fm`nkQO$&3$npP1HVbG8%rD6k@R ziJeFiDj$5F-wAYtJGWfMLq4{62=n;GSS$XwLMpzT&`@=aQ8Tz%1z~B>Dz@Cn+{MVq zG-`O4G3)~tJm#xwY`h)-4IkwL%9KDpIDhHFPl+J`yv1!nYrVYgYo=@xt%05U(=0Qg z(^e-8g>{?k1)r2&HG?)hW|?~~@2UEWzNd5jSX**MQB}HZzGYb~S40Pds2s+j^Id%l ztKeHYb!hi|NBx?1o>qn0{!zZWQgV?EQXj|;;X>U;43?!q;t_*QEA$*XN!2wXE#3PS zP#g6@uf-N`CraeF7Z`(rXbX-(EjjT40coN1S$sEa9S4}&zY}0bKg^Sd8Cll4bdn*{ zrIl=W8vrL$r%_tgcBSe;;zPhH)j5>zQMePbpGV@;0lTcRRQJ+(tA znFK^!+wkPpyOd0>H<<7t07#fF64w>x*-tVk6P6vUxW}uNl8XIQp-<{t%C9_d=e|LYUjWk zd~2=gZ!l$N@ooPo4#3~dJ}2lM)eeHY7k=OC0|1{9ltG9@)6+7G z@N%L{hGiYgF=C@_RW0LkXY6QgwG}QJ%ExuN70} zKVPJ|lA-U>t-sq3LP6+%?=6em6wc9NIM^rE0mA6RIZ26~)nG)0$Ap)mwz54@a^klC z!@a&l<-xPhJ@}8uuUJ4&re?^jqUcT{M3iTPNqcz}48+*z9wsy6Um#%vu1yt}G>M## z##M5Lz}T^X7=qE6j5bffJqpF&4@Sn|bW|cQ&mTXIGeONnWtH4kQ{-FoKp=2`>^D5| z)#}|QCo_Wk#|r`fMX0|fm~Lj=$Z7Dqp5XX&^IB#jCIfXEtVPY*+LM!#n(gC0$}6L# zDfZrjO^qjnMpsq5w_G~xeEZh|JuM`ai-`Qg-Gr$whjy4JPYRBqL+SFDz>D0%dt)IV zGc(j@gdYfoMr#1S6&Www?y@y17zpKb92?Yi25S2^WMu`cHbuG=G8-LdB>{>7nz6DD zB?Da*e;>F$x8lQjTS$?3nw@^Blxlxi3Hkmfsin7$_E1$hx55ronXKZgx(0H&rWXFy$x4F_#T1Qvsz?8Js0d9X_!=%6#-e#7N3)xYEOq+oF0miH zD8vuD(d#zlA|*H zSdk&F%PH@RP?4vIIYF{`~&xKWVz0W%0pb&V$2*P;pGB456F=&6%Uq>sM zo5ITV{OX~1c_ohpr7I*iBHYXk9zPf4EYF>1Q`0V)^*G0hu=#E@x6N?^echtlXYJo& z7eT|c)vN7pu+_D`fVUbc8o!T~1ntClm4G>v+M}{Z>Jx>C zM_f)pyoUuX3%#0w2G7!7W7inNKTzld9D6bR7d&rQeP8WYV9J0)z)fBImiyWvQvG%h z_L-L_^XQoR2ira?g{cp;8>6jY(A})!pD#9p-Jc9&WUu<2Vc`}I(yTVTV$K|+IZdKZ zwdAaE%D^GY;7ajRR}nE^E}4WM-O2Q>2`%h+Gii(|jnVa}$NMRXO;9grIg7&Qdf+#i z&k^QZSFWak@366y+sRD6UtiJVI*9esFbTr@rF1BFMF$KPpbauP-AQ3qQZGA0|5XwG z>Ndi(kE$t2n^$tGiEskJ(fXTNTO+Jb`IVuaoj8*5{6nJWT3i$q9YOK9ZM$a2xXh4% za{@k9Ri@@;E~k+FY7Nn-Uc-m#z|Q-n+t%g-&k1oQAl!5E-0O1PW@=i8iCGR>*#Sb! z8k)5Bach?auwx^Khak&RvS*efWxPD_{Mf;H)Gs&iEtv^J>C1uXa+f2xwPk&~Y`WNH^qZ?5neVhv<}{?PU601~U6`$*R6RXsChS84Ox9jxSQxU5rL5Ba-C z_oVfLBGl=d?K_XOe2J|DLP}|H-}%)y*|ocOn)SeFsa<4IkfnzHFeZr*;#t=+Lx& z@HZ{e60x4M(2r)-V#77YOwUCjxsJS}MN}NePU85Ln+NaeoqSbxL9;FDR}Dbl#u9Z% zeF)iTIS~q)_Lagasz2=YPy-?8JPWY#I6|B4cl}JuZNulVX}!_@><{@)tB?URKh=-k zuWdJ9rjB7XTMR-Y&~eohZaAF_AhB33^_vnP(QR{E|GMe-XCapgj;rcjRMMn9(HoqKOqoi7e$d1@u^ zj3*Jy8s+xyr*k%eCzfn%2={%4WkAt~8laT_E)=&KP2`sn0kNZMY0-Xjic9VsoO7P5 z28KtPl8Eq-TiyA}_44r6^4{H*tK3jhl`fHYBKu~ME12;_X%;wVPb$VGFq)pN*H-1A zHWx25;X*Qr87BJy4xMSB7)10uy24~1d!?8GzXgBm6>_0n6Y5k(m})I^*W(p(*M4B7 zwP!LxIi`NHUv$Kvxo=3^ihJi=@>!VNeX~#d4uR;);{W05y~EiI-@oCuT9jH<)NZRr zjiz>uNVP>vQMGqbd)JI0S}jG$=YKv(7>qRyk<@SaEsd`IKWO-NV&y2y5T-EB8WU+%PrSi;EY&zC2rhk0Q*w z>h=y7EuETHJ1}fb_ozss6^LgwjDth(_Q$fF-Z)Q}A>@iCib!j4Lp+l!yZ`zan2FMrenVbRmi#c`e( zl_`7T6Q8#}F?DX|>xH;bZc-#Lc`L<#a7mV)`)^=y$LB1Kv!(Q^zwVCM6SGl&aAwO^ShfVW z$w|OG*i-jxu@+?2LaIU{im)}>IGeW~!&Y1+6ya7=zMdYh(*APlqh%KL^my zD)*e7#wpoo&AQM7(hP-6;CEzf@_5u7ULLglU<9sXG<3kB9q4hmePB!uB3&()DH&I0 zM@<{F>~wqXo_b6?1NDdJ!)F_Gw0bsE%014#ha5|C1Bye+luoD8w=5#8TMvzUg7@E# z#0Sg0c#{$#Y&z8_Y)N_=*+yEK=oJ%_IQd6*)Ii{AS#%`}{q7w+$vUrdun{0^CYR4D z;bT~=BnDT{j>Y(Kb)?&X)NdxbF8J_}0YN$DbVZz=@UyNpS;lk8;!4bv*S6u7RURkr zb3l#t=+GxsZ{I!__dmdmnlfSA$XyM@$mTWHrxPCg^#fklrmY)|I|Y;+*Vd9sBvJz~ z^4vn=_S>x*={4^2O{uM^V@@VMqctl&yIlHJwmx?R&_df~d}9j>1O-_iRE!n}SlYW= z2_aau=_a+8P@UW&m)qw(=ORpOF9Na{PSmt@JDST`he*90v z$iU#mkB6!?6){Uu!kLpkXmGV{rD?Sz6{TitIv1s{3$`o|1^W*GLAP09-kAC{fJ$2!3qdnRety8giey+4NAw=HG z|8oFbjQ;{PdiCo1o+#5sk^-GcD{se7HMbPS9gAW4_T z`j-5k#-N3}RXTQ;Zuc7Z*vh09W7}@MAmrThY^g-&;m?`p;=vg$r}d0b=+Ua6F5H*= za|p>dLwPTVTMfqJK9!j0406>HwxyOEJw4nF%a`yli_?=aV+ZlH;R64d1Ey1C03yBx z*XqMH=JL02!-J19gH_2@EzOf>g5t-$iIleG{Ho|zQ2yjl4O836W`5{UhoeQkZO3Ox zPY53>`bcTrpuC9`a#j#qY|Iz9S{rNTyBFlp=06u9yHB?%=S1jO!fbmFK*M#8Nt0jE zZgUkqGus~Xg+v-%i+UoSW7p@8eU25GBX%^Q99D#!*U&!QAA}|#!0Q9Jc*H&y5liaA zA%0fqVc54Zr6w|)-7uFMV|nZhsfJWu^XkwXpPir# zHO`acS_X69o4$*=q^zKo)vFTtQ7xDxC(mmT0VuzUb!{xFr~e`*}7xmbUzXisdb@+<0OBaA$^dH_7;W zRvS^aGcM3~b^m#>oP+~e8N7MgGW#B;6B_A$F;KI2i!EU{m{`*>7Y8ZAQs(fC#UE^Z z@Ie8xKNjGp66k<+X{Vvzp77)KlT}_Ahn&;x?=pI^ui0#uSuv}t7?p!M4!TVlX3g#> zV{$WTUgLa!-25OfIAFmU!w1LuTHOTJCJ@YiKOzccMhPM6 z5c#C=!^tK}#Z>guH||6KCA*{K16rV72?!or zrd`L5+>veXWP$__|5U{W9}IR~WsPKPeP2J?a(3p7(18JCCHhhQ5scjabAFifhv!Jh zDwT3_V}Ff^7{WD|^mBpicIC33_S=#MWFfr9t3sO#U~ z-tE9>b-#}f+yIH$#qx<_j>AOh0som&{x?qJ-sFKS2xMXWc|zzEAnN#;YLa(={qi3%V~Xg`Q`uToCLoo1muCqo$@0<;FVKca&6r9ED#$8dyju`_$c=ox=Kquh%SEzMS7{a>KgqEgZk<2f}*y zoDdN{WGzI+D?$`1UT3RM-=uOOfH40s)^n=C;ol+thP}gL=!42+%AP=c8*v^60HVkj zSt^#sOuvOLFu~tCcTP)?>Xm-hxN*~uRyt>K{79m&@oetc8hpY8d$W$BsWh%n^ssDn zmV{xXt+8We-sSV91Y5`70condT*TMicX2))shs`#FTN*zXG5DGxz@8cR}&ycl)OSZ zId_KXqj|^e{VU~jK76hz5Wn&Uep^4ZyQJ8&i@@zfddxKC)&y!5-zO&zr2PE} zojH%pRCFFobJLV7F+1Dvsjs%9=JWQ)?NCiMo1l8ewW4F>R+c%$f2dfwl$r$8I#rmY zRK|CA#>Q>Fs%vX-(=sjf(3aCNwQ7bf1(9kkDRYm3+7XIlrvzMA%G>Az(+7AquJ>i# z^zeE~l90v>kk)Qa986%1ufFS8s_;0w(_^%3un(>@rL>kHteYui-ye37ike|M0KeEh*W_=XIM08uR{gC! zq}l)Tm_>xJ_6;yL2v=HiAQ1Pk3YZ<1R`2#am?h*Et61B=2%N6Uib0-Xo1AS|YOQNG zIVB9uXe}Kml;PMY6_k-Tmm+r8OU)1}?wgA|1KvQ~t0k(gm$X!iJ%xn~ic3N@8VWs# zML3jl3H!`XNx+3!fx|;T49+{sT0nfL5El7Q zBE5zzSHwq8m|h}MnhcALBxq+&4|k4$#?#Dt8ou{>vLk8ZKX7dp3;aL8&VR&?46gEa z8*OJwDMB)ZX$|hnL_x?CDShio8`Zhg`2?-2{!xUxo!|Da3yDa!gyM?i;lYO=E++4U zjOcaG)U_!R+H~{VF5BK1+ci1VEexKG&Hk>8FbY2sW3P1if`RpYdaQdOMh9^}B-EMa zBG1iR{D8=&=WBBS^|g&`B|s6MZ78PoXG{^eG0*F$Asb4Y@%L|WWWqsoW+J_#{n{Aw zQzKAj#z5sGkuS<(-HLq9lj$J_-y$TG5o`mxq*MG>5-b2mYZq)CIM?ZR?*UvV2`-7fi>A%8~cnHUnYXtU|) zad$P59=%ZSG1KCWn+|oS;aHV_BY1ia*4di3jc+W@t0ek6%^tMrYZ!H*l1tLeRaupc zppCV|8G)HXw+!fuAgH_FpT9q3D0}vxG|BzWUEHIEqiSQzgO-%y)G$L@xOkgU=g>28 zv6z*PZP+eOd$6e6r>g30i^mtYt9+HE!OT+#OrUaASdh!czH za(QET<4J3X87x0~{KH*gl)g^g@e!YdwRt+W?#sWD>BhS;CH(cw_l(=1Q-o>Hb7sYB z)zK2i2OQ7;7YoSchFeWLJ(D+LmO|K^eT$Yjm$N;IxNgKyMOFX8yl>v3!LfKeYk)cv zYgem{+^qhHn<&%XI;KDRJU%nmRBBc`-N_nys$j}2WW_rSZ}*`A%&B5`U#sbb)as|{{Lm8*KJwn?-Me|a zkoo$`l$wHi_PvDHUJJ&RN@a3Ai0sFKM}|+rnM~@$@pd685b)x!BlP8gW&^ z(=2HoWE5Fr+a{8e#4Wk@7?PC!44g2vaqgQB+r;;2j(U9}@y%j| zzt$puGeJ9O(CVCCi-Bw0xz=`x|CU@aYvH98)4X!~){`XxPxA4z<_K^E-^uzFn%SfA zLwPM!eI=Es(-oMka1vFh|DB^ptjRar#ohi!HzbODSxkW^nFnC)cDl-|U6)tJ3M!o@ z-rU(`C&+@!%VLs~4ZFnZ+$@fkS7?6m`cA>|NwFe{N3L?I3mQ{v*GaznRk=s5NmZ-5 znXT>}o)8y0lPoG7m$_2Ps$Ve;kN+wtXWmSOV$33_DkNsUYi*p{%Uh4FME?w_c-(s? zjaDIbvBq;xzy8Ay+57eroDgGfwcA0H?s_2=rh{>ImLL;O7}VXg0b1ca5V1M+iH zIqG2Uvj`I=4*o;5`-++)WG;mZ? zY3edw3gP>@w=xrL0=eS1nW8Ilv58dHBJQn^Phu#Ju=e}mfB(7)A5Ed%1+S2Z?OPQ- zZ(_9o9!1V&Y`s#0l~MpcowNg-_OyxuY%*5tAj?YoQ$hYI(()9dzDHCp`7fQBWBsa@ z)v;Q9nsSw|9uz3(>8)^6|ARbvto*w8OaBC7D7#20XMNsl^eEtU*VlcSpoSzZed4$1VN&$M< z3d%%p>FuETkcIZl)*x_#%mkW<4MFw?cKiaseGOi}u~iB4)_i8F!{WqZqc|Rgw*ZK# ztBmhbrQwwUywfXIRDY=@GV=;ixjC7pA#6R}m_VV*W$6$8jO-s@LL(l;HuM?WeYhMi z&pt8aWYSYqt972aNN=|)=*g{hA~Uj=pY?!sUD0n-nK&@Y{0-ori#uolRm#5(_?%-M z5hz^WktkPF%-c_|mffF32JOYa*?KqwFo`_7V)49kr#QWf<)N~h2Tba1u4I1LRsXV- z1BB>HK?m3x(D?p!b8MRB%+I1Tbh+Qr*wFBB!4e=V6!0IG1_@%3mLp9^jAz=kXemqX z>9gHe|D#3xA5QUu41<#NR)MuO8YR)N^@WCe%*CwSVM(9ZlFC3@Ym7PyK3`BuWv?U8 zw2RTXjGZ~}aJ2nR3{0?MkSoWWuZOO!txcFU*_`hm(X+C>PNEEhiX{N~DDM=prKi@6 z{Q+2WgxWr6af4644GK~cCf1l+6#%f1&5{w)BB(t7xBbdkuY|}gQ&Vw;zCKXzAc$Fs zsBwmMkDc}fZ%hkwCPZbmZMkaqnI5vKLB!q*RtsTVrwQ$&Wo3FVn^j{7Pa;%a6^GjW zo@V(qeGzjNPWh+*?5wCG!;ec2^?c_|EM@PC|6XPCJf>_-1%Q6Yj1Qd=36Yg{T(vt= z%h8eSgFg<3DGaksHrr6*dAYi(!~)yc^a{LYqfGxL_hxJ$v z&8TG%;n_K|vxKW_`W69bFgt>rj1VE6W`pI*i;|mSdJmjCobvEVhHfy}*^&geZ?wHV zMaJ_6&Ss^j+w^X;_nZ-L8UgGxd}Pvr>MPR|P?Bt)EwPBGwo|bB-baso0D04%>vzDt z`eudY-hs(J%8=ec&UtQS*vG@c&J!?7s|s6)ine}~7U~k~Cqj;j9JYhT%CL7kvY7q( zrb>irWb>}AV%~_}$3gKW)|;}fO2^AKC$g>>&k2uSHl~RZOmF$scaHUK-%`dNg`MMP zj?bo#g03klBK*l)U7%*VmCN^@&0-|Px5i`0Vq?`lYxi&YT^}U5T-V>GQ8>*VL&!ZB-$-3f?Y9EL4Gj6 z##g)1a375|hi0(Pd4n{u^)^0H8Up$H!X|jI7bW`R{o>csMB`(4IFMo#o#M%mFz^L{sy^BE~Q&2k5p{DlXl*jKSy|YSVTGVIy!*( zuUD7L^UB8_AJx@6_-)BQ%vYax_e481*eB1mxD*-9MHnmN4eP;-X(UuV&glM~^HJFa zK~*aUcHOO<&QHxlrj1^!=lPa?C~gE3_c_3z#`kF!`S-DOvBI{0uIAh@I+M&Wl!Ebv z?9@`o8`!vt&uY^FU301HzbSXMT;J)rz+ZdFD?b(Cq1dqnl26ys9(4_q_aQW$OH>(Ha+>mc> zZ1nnZV)Kw$^HzLoq($!#W-6d{;-{KYiE{AKG=fXU9ft4Z&w^oaCH7d>`>oKfLvt%# zWjlpq&t$C3V!ams$@f~s37X#M{tsw-q4E6Q=GZUY*qutE-jr$MyhV4&oYcJ&&7;J# zLp;3R&E%lIm>+Sz5=D~*6~NLnr{)LbSME+JwX&uUb6-5PykKt~Hqh#Nn0HTX+OnFM zX-&p@>}F2*J`3o*(`WbXZcFRu4<653KUI62xZpm^mV)L&;>*v=iSWqf+JYsdb~=YA z>GE<0dj1-M%5EL~M}Ucx`PKzZqt^wEja z{M#gZi%W7Z3>lxsuVZI6%GIMr#%;DPLQP(9ix|tZ{n&$t7q}ae=B_dl@V1~HwL{74 zpH)Y$Js%8;bxt|hX|NnL(UbSv?+T+bDN}HraGU*>oP{aS%W3l4TwYmGFIIQv$T=!s{^KFnp4PLh5cw#*wYrkQg?%Or}40({07Ru zrFb$4?}wX!5jO+3aT6uLe~G|ZhBG~UxL|xoSo>zYmhT{6=yK)E?lH~XtYq`%An4x7 z>FSIm#ws8@Ak8{7^!yzS-(K$%rW&^?sRaqxmcn}d#^`MZdcGynF5C;SQ9b5z7@}y) zTfuP>^0^0AbpbE+^g4W}Wwbf~+ZJrwPkxcT?)LTIfJ4WukkCOt`3IF5drEJ9RL(^L z60S$0cF1bM)Z-yJVtIs19rm0?JN1zMcN5)w$S%1WeFDK0bCxp5QJ_<%hRt&Rc~>kD z<9`5`Kx``kbb_Dx9;uh(bx5hLvv_1CfFQ;ef$Z0YyU;zf&xb%M$E^m;|JP{sJbJG0 zFg8)Fl-qaStjhUlHMiX_zQn``7h!4aZqicg#)@4hM9{1b+urS2ergm{IW3^};8$^2 z123}|rP9P7b)Q`4VbNI>6Xp^3kP_D#-@I36XD$awLOM5d)zT)SFBIglKP8*IXwd}H zp88G`W6r3eRPHPm^qqtxUUeO7@(CSmLakAZj9$HX)TnDHP6PjWN$lyh5(2ui;2M;2 zokYeAdVa}BtoFdsxxezJ1pd^<)l3<*)HS$?p;bG!vi4fO1mx(jW!<7{(&_ztwL*L5 z$fDNCAHQ0A*4o1UxY%ObIzADlqffHhl5sa_y@~u=*^)eon!X~`K~B5L9oH?Ml$?R7 zs{o*)jnq3e@PD_uZX~`>Z!!8Ps3m9QCgJz=%fwEPs&?Gw>1YRN#DW^qp$#eOo%yAo zFAKm=vke{oF17lMviti=HJ+5_V`7X3KfZ?>+~fya{u*ih+|M($f(de3;a5B%KB#i? zUH_c+j81;x?!({HuU;CxSJr=Bc1I(gD-SSznETyV?6G|gy6-&F^k!-LxW}*0xaFIK zcYZ;={QELf`}HU}v-o?$|BD6e+J(R3#K4{}Ey!O7d+hV`9$vFCG0#!zG4WS={RlqE z2wR&Ywm5z;VQ;qSR5x194W>uk!eP)KEj!Q2yTX6PX^WTR2E&dztwe#3h=><&``aDY zvbJwzbaTi_M_650}r-+=^oeJ-Q4QUiVB#@a`?Z# zvd!a2X(lE3=~B%f%D=!1U#}Pq(+NG=fc{#v_eN@V*yHSl)=CP$ytlDMj|QG(W8pny zZX0rRx7N=jbXrd_SL%LY=C|xY`cTrl`pb+u@de73)j=a$G6F^O(}RIACwBRNx$dfX4X z$ob|s8?P#k9s~^WgeK_|EvnpS4mU=%Rd|(rCmWnc#md`OU&pN`8EXP23%7W_IrCbN z*07`+rOuhW{Y~miUL1KPZzY4llN^hB%MP zU=p{sO~c{w3A4|LbybzbfT@nv1ai5hRKVQ6+ASZasr(&x@@UxkHcR2>_pR6IA2m9@ zAa>0|5Z0(pk)#xX_XG4Di{UP2F8GDAuO(!vXP$ka#$>%ub5sb(#NNWEE72x`b{7dE z_iyqcWm`a5>+?9yF_9+WXye7x>94XLvFx?(u)?P?_ zaeSI4>0|UUpUXe}o*2yrulLt!H&Zi%ioljjX{BQ`Wh>+q(O%-@a^d2l;ZVq#8ZrToaB#*El2ol(|HW zh75Qc8m7$p5g`zY?Tszp>LCiNuF<}0td!-291S>C3U|Un8^01Dn$9p%KUV;-C8IeA zr8pXHQq8=-C1C%^_K~Sj?=>_mGTG+YHIL6#oR1WEL>lt~S&)|`CO&|y;9J?P_LOt_ zx`BIYakQ#@HNhk3lsA;ueQ5F8XoK6cDV%^+jPaslwwYgKv6Q}U_1aH=zxO7Y#>;Ao zak+%@uIrhbRz`JIr`?rj)lOZP#t_k8HN20^EMsF@tP=nk?!2tm_PtNMG&_k6fm!c0 z{uvKW>mB4}9u4s`#oC!E|I{t*)}<)#&hK_r&`A2NoGNhd}h)m?S%>(m%=62Nh$_IH`RjO9I@AvO@{I;#^;Oli6LW# z{Yz#>4Q=~_VpksO&lIh?TCH55BV_AGPsqt0zf|$}+r1Y>d5e|Wl#;u*mKo4tBCDGL zh7BE{5f?bQPyrMYmgBavU5$0%Kf&Hvk7n}Fi-d)RBcBm0h~bzVG3>rsW9`|pLfA%= z{(f;9f`d!DI4m_3&=~nu4JDVUKH9T z9s{Hq_?}i^3Fe&@lh&3oDoDF{qV<-Tp@lFhvHEi^(hqq@T|7qRs=CFm<(Cp=WwQ5R z48a7HT-n4+i>Aiu}$AQE}rkjvae`a z>%9JD&k-kqQ)XV?x@mvYRsa0_g98RoL#rR98T+>}wC-=d(3;|uc2ptk3g3D{Zv{z{ zbDy^NOgh-=bIb%UR|v#JNB^uM4A$G}C~RM&?Xx&Q*X(>2y`LAwtF(N%ch=;mCN0X% z#^Q{Kk`k?-D6qXeNF)k3K94{Hx3OsbYRQ#TXUDy7pIYaoNBENpKj!3Plf)m?JO~;MO z_D>&mGFa%1146-9X>(GUeP0;p&Q0^a7B8|zNMXdxE%0%A!RO-_pYjs_Nuv~gCO$G0Uz#@hUb*?bA+Wp1#C$s`aYGG%GgYj=Y4g#_>lm%V zKks(aZt^ViUS_`cq1dRr?O#t?GjZ#H^qI5FE{L!rzuLTeo561Xik44jBF#sJ=FQYd zzEGLLbW%nDcE+c?rY%~%`a90C3sC$6UZvN@vON?eKQdr_%)Nii`O7b$dD#A@1%jOZ zxXql|xC#eMQsAH?^RJu2BFc7=0Cz^YLeKtqwdazh-=JRy0%9YZcb`$={I^W;1YmL7 zoC~Pm#^9uC|Ht17sIPfHN;CaKs~C<^-4c0s-JT}wRdgfHq{x4OVz>UG1ul_Qy_|e; zsyb7Z%L@k#SiKFI~Ihuc3~WLe%Ir zW$y)FtJ2Q_UUl&!z2^6bx9ySF88w7I)7tvNP#;yYhU?9VYu(($ zy+;%;HSZ$poG}}tBFl_eM6ha9&SA%W0VgZ=u7MMOWLE=9`VXm{BwN=mp^la*I zN7~7&o-YJgWrN=#%d~yZn>SX?x#c|0`-=sBzGAnab!X%es0%xBMAd3xGASo$I8`Vy zK4T|8Gc@lBvP?fg7sgIgWWy~#&2f7)d&X~Fc@tGGl}Lv;4f2hjqYecMiZJOR(PAHT z^TN+3jMxerf!}7_i?i+w>FwHSug;jWgZ753xRpkWFlz{BLnI^}N*h9m%KiOiN_~;m zJL^Y4ON1IkNT>z=!1wV8f)BNx_5KPBoWsM|o}^Yto_Q-|-uBEpPUJ|Dmo$~OSokgL zx!arQP|8>~YmwiL+jY^Xf_`yf=Fd%xD{#PrI9{;PeTNg7oqfv2S1e+-^5UhMJLal) zqRu0iZ(rinHDtt3E?M+=${kiKD)3S7dYPwYy&Y z%ofoNZfkqx`uRhZNFE^Qr+g?wX+^SF&u+TLnsdz)!Mj8r zvdNVYIG>uDisX5_r>DU;lIxS7TI*6-(&}L|x0t&V^IGXQbnBVtKk3kceUr$|RiH%j2K9E(@K2Vx&o~UG zRns|ko-(is>AW$&nIJ@dRa-R!D43@-?J^}AtN#8ydw;gSADvxlo?LE%2N-8bLuR)# zKmpRYmOftYiLKk7W?x>bhB%^ANCzLT+Vup>2kaRmnNJ&O(dm0eeTUxe|+h$!AJm^9{l z1fVrShs~I!Q_ltCj{`~yyq{MJhby@_-kirS?VBVuIFyWe65Cr^cFlhHWxV;XW}q>gQpz>5uD#?;5?AT zc_lKnJ<_)*aj>WcX9$E>h9~aKt??Gws^}kJ0(WkyO!&Mre*4;j4_s`Yw#eYRk$2Qb z>5`9HHR zh(*kCq^n^MF!_rTF*qWKELwp|;d-Mkm7iMjV?-x=Z(N+yifH8!s|d`$*P_O~oM{FI zx`dF%fUZj#d|UU})h#aEV0me=xBDk?9%Xyc7j)w$q8sZf2{zWgE7u}XmYmG}1F*F8 zAr}_@7}QKwbnACM;gWEGJ@Bvi3%r zE_riw`nXtciW4sb7Py~EBcXWH#GL6eEV{?lDzUwM!i6G{!$R@;?`LR#=KS!WLTfsX*eL1P+Fd^aoHq|fXMk~`v*8+zZS8SCR{`EIjc zru+tq&e$j~RPER|vB8Ot#|~-r**J@)Xz!vsA}XHcSsjs6FXX@O20QR#6n%!=W{&u3 znJr{cqr@McHTEeOr8L%lOLFo-`2+H~bljD9l>;qV3nuDvS2d{%-{_rLFoOeRd>#U9 z28B`b(R9Yx)r+UZUF^@$kcoqOyPoe!Nv~e|JqAGpCM+0y#ZQ43;f~+qN7KAJStfpu z=@chiv`Rh{7>c}RQ=3S51$~J#H!S>;C|Z_~Xi~&w*Ol!eZrk;D={@*;GWS;F(ZL6N5NZ%O502bIO~Se9An7f*F>d!7JIE=66bjLnGt(wfmf{L1CM@_p$46J+ipA4+On2Lw?FarSa|N+il;4< zbJBlIQ+o<)=}Pwf%b%C>&=TEeKg67OXp0@4}mqku~7c)da3-wN*%=Y!esxZa&nY(~CWPT1klRsu4+ zX73~b*LGU@l24?eho(y``Sxx&=`pLK$e>AleK zv3dWtYy1z2U*-4&`uI7E4cBR^j;y%xZHGPEwN?_MAzpjNn537+7i)$QW{F(q{PX4i zS(g4+3G6H#XytF^r<@f5C2@_lJ1P}^_22=59N2`k6ZTf+QA!qz*vQ`W+?w{;zTa1D z;M~d0qg@zC;+0SH#2huiPB%{=zNzI7-0K*)H-7EGZIKn}cr+`~Y>5PBCbC%SvO--hae%#M@@yQ1+dh6#lu@)wzHXZHo?UC#Ix2Bb zp_L>pHIoVbP+t&zd7aqHVgM7kR$xZRxe%Red#6T8FW0fwEn&2psc0UGHV_Xo*v@IV zsm}!x6T@SwtKyj}Fpt=n?lVo2f^TH*SHG*LTF_MSplu6wh!TW<4bX2+a|O<6n( z^glO}ip0n$JM{i0%f+J4dTY;*I9I(px{(%^J#>f0_j>v@g@o#?Sk9(d!oMqNI}e7p zyb?Dt{U>#Q^5Ii7bA;P}@BN5%ksAWdn%V_g5UaM_*I^0eAw@G*8q3QQA|Q};tJ6db zfaKITZ+j<0CIcv}Rc~D@ls5IaRh-*EZ!{Nn>o06+c60__GGXtN40a2H&gn9q)pd z7pZhwMdc9=Q0G2$R_p!=eE_r*y!RPL%@Y(f_$NY!kFr$HZ{4(QAUZ_fpB=X514tBy z*o?1PwgsPzXz*^Ycp1#rJNF5YU$7KN1OUo}e<#@w0kKPuoz36_XtWDsbFS@pbQk!G zvh{${&hnWLC}zA=1BKE;klvyop0~2$yR9vvF|}^yr1O8K+Nobn#M`{d6TzIl5h5jH>;oJcb&K{+OHMLQ@t{uX1lWT*|tPA zCsiJsHQFlQ*B9$)Qom7WgXct45zY|S38RjWf>+BGX!x~VmJ@^bLr0bZMomf<{^DGC zg51Orx7tGIl1Lt+q?P>iP}o@0fz7uxRQ4F@HBXKqVRTZ0I9D(>V}Z!Fss$PHR@g2m z(T)|dUcv}h>dvw367&%&m1fdZ;z|ys#+&N&$d>chO?{)+*KM{rI-*%SL_*EXH#&7bS)9 zUFDi0JQpDHpH^=(KGnmt>Rx@hxXIJL{H4JRukzHd2B+~s>I=`*mStdnxk##x} zw<{kaRz}7!X04^IV9LIfP0qEH#9eY3OYaps^fxv^b`WediUp~Tc z;z}{42-6@qDt+l{`{euZT zfnRqr;XApto{ezw;k}Bt3eK}N6ZV+o;G?OeG*JAw=l8kNWaM4q-fd_kU-QXGvuNIn zfz4Tg6WVV)S|u8u>JA5xGPY~3So|%w`5Jtc^wjOf$hSg%^f={nI?G14172f?dZ!Hd z$Tnfi_Ma|KxVN?)5BtW zbN0%K75TA;tILb>6mz+awNwtqQol6;?l^7(xdY4~#_|WOcjN?_Rk@K$KM7mnmj8tB z(b9~zhLs)G_uaa|T``9eMe`aSJ)dcuVd2XVpr^+8MBLwU@oq(pSBLk-rP0hSrD&{O z>M~qS&Dws0`y|#H6#U5I*)Hef64;U<%i-FYn9EoEdi08t*rpP0x&#!z8m$P zbKfmHU5O~A%&GR}k=@|EF254!X8kUV3`&>m$ftS>!|KJ+)Qd~vhRfMP06rDdhwl&Hoj6)NLutxeL9N6&bI;Z)?<64x)EutL zoFivT<7dClH9GnuE&{)A4{QD5Z`|~jvrt6$nzDQvJ4dqad7<0B?j76g@Y$B*h+4d7 zO+LG`wz|VnQPnQudrpk~hzYw`fB)J*!4K)qVo_I~1Nm+31+oGjA%|(18vm zM`ymv6jr>uVy-}AV;qCCyjw8$W|2!R3@M%PmT=*>T!EboJJ$oqpP2ssH@QyXKdAhi zz7^e%RE{p#+PX0Q@MR(9qHXTLHA4rg@<%u`?KZ8~T^DP(3`2#EAD$+S{QrxbWbj9u z=KigNv+z6M;Vuryp&n|899`!&+2U{SuM-=%&j$hV3OI?=t+LVXAYr3ueuPuk6^PPB z$P#|Dz}>vQ3#Dm_+OqDcFb>*=9j;^epZlVGWET`f)c*3_axZn5Q^yCYMXH3i=wQTC znxUPd{=ES2Efh*{K|ImnBplY~<_a#&!%~mL754(x$HiU#e7FjsoK+8OI#tko*H$DP zwSFEfqAY+z%_)^-U>`;QIbY&Y1KK1)z=f;!t8 z9nfFboSq)f+bj*OHyJGVj@3!r_qFCgO9l{M?3kVab0<9 zX7Sz0Gs6kQO^P*u9rH;2#k+U+xeQ|-EmpdHOF+Hcu?lZBG$7#K^!BZev|f4dATBY; zQ2as#aK`@7<(OCD9~f=7>J}rI(tawU9=uSFt6|4{ts@MW7=C5SbSJ;yY|sqM`^Avz zef4>V>XBp{_O784+&ZcvL)^>z)4L)DI>y(e!%wWgnBS^MCh7vrTJL`yQ!&S=%s&sR zV#YpXPDlJr|9v-S!5>WY7`LwDF7~?|8w` zKPY|{pKkLBOo8cI-!Gc*Z(PEAk?7fhb4=dMj<5xJeL=sBM`=Ih@8X>=iode-E*>|S zCznO?1g-ZciUAH1i82h3e=*|sINSL@VJs%X2DVV?o=QQZK{3x_ljf$aG<5fdEx8L* z+UGK(7rV0Z{kiPVmh`bA3ET0eQ~##YK(crE^|uS}G*)K+Dkb%5uo@eUpgLo$Ln917 z%X&66FYI$`s_;M8s_PaNt(#T6QDv(@MJ)6?Aj_6F`z#fHxd#1TEIM=E_A*i!4GjDN6~a~$@DAj{yh`W5#c18cK^l$87s?|+(I_bkJD4m4DKF(2U+)f z5j>iW2hu(oaJ2o_tg}fJVh81~tl-&Da+c8hpqR531=H@k*o4F@c)GIoJxeOFRigSO z!%Bn-o7yMxE)f0gP~J+Ib~UeeQ;m)_ls1s%=Vgu4c7MRT^_8`V_ox5x^dRt(sKX*k z#B;Rl4O}&O!Szp zo>{}i3-l3dZAf;2^+-%OR$zhui#d!~NVk(mo>EYOhAO+XH zp|XwxU>;rRuhe&Z-pec;mce*KW9yGQb$9wRj17OE|BkBWv(Fjk*mjO<0$7CqeE(yC6CDKrn4FZYTqh+eb>^J?bqJZH6<(NBjQRP@^6`YkNxt=uYHWv$m=cWg z#3$$|fBy}0e*i-ZK8dV+zgWM%Wl1L&dg4Y4<*;~u9d;^5%Y zxGcs?q^QaM3Zwskn0vqc{kJ|opvLc0f`e&tOG+Gk^4YH|(U&foY$b-dJ!cJf>bvZC zTK2;9*Bn1veky}IA*}pPO~QNh<8Q*)U0Rj!q-tG*Eu3fnrr=GKVZPU`4jwm>(wQdG zo1CE?qVuT3pK+|+V8w3EPD2JyZA6;)56=fTC4b$Bv-5p9xcZYO$w>Wf3gOqf~ z&^1F1C8_jC4&5MvfYKo?_>K4bKJU8Y`F^w3u+Hnc&Lj4*kG;>BL!ajMPfL^@@aZIe zuUz_HBnjL}XTCfQ-rjvz_%>>3Z7btl^Y3~~iT(3&yf~HAZ$KWfpAZJJm%drYipk$701PR4!~k)5pA5uB=GelB1=8I?bH zCw>!(r|c2PJoS~Ni1$bD9c=pmtjwB0_Hj4^;*)}hxgrwcwt4Fhh2l{B%glzyef{kvea@;s>}$rAEwe&s5EIi zBr^~4m>h4^!U;Ugt{A!wJ;Y62SCe73nmynC@?R)v9gW)%5M1C-zil>t0|^ z&ZDryrNO@1q*{PwaP=8`*?xhb#{r*7cPNkN2iK_QS|s>r?Ey{J1mygEc^}6~B`aSl zSHr^XLS-(kZ|MCE)}6EuBJk)+aP!3&e&?bPGimDTo74OIvClFOUo`}Le6XG(a$*#v z*TOkEZgx5N07|qiBCx2hD6wQ>=ZZRT6aDWr!R^S~dbDGP1OM_=e$EWTcuciEEvEr) zX+6rMZMm0&w)trz^CE1U_}$3CB8Ha&FQv{S}=haURhR?M#7y@>UHT$=In(sJvzhN zdUHVmOP#OBiO^=-_iH}of*&tZC{PyMQFsko#3+B77atHyhWvh9zP~!;3mGC*<~D6r z0e`7bE7=rfWm?_l_ozS1d-?K9u=mOm-HtJmyq}>V_*%QQ(stL&Hjq-SSH0c@d$~2@ z^-AOpYgJVsSiz*-CvBiqDYVX^;C6MvXVCP8pns@#j5f1M$Rcz_2IO_D;=|LBD`gER`9&F^f2ac6cUp zQC>&fLEdm&c$jK&T9Yar(N<>X7ZY(hjNqb$ z{+3y)2<`yTu}Pj|>p>#h);6R!O!)hZ`)?B@ zgFh1_2Jv?%VyFz^Ww=P}0o~o%zSLilsJAY#zqMKyn*8Rlt0X17sT`r-e(sR`mNb$M zcF1>{Yu|^4OZjboAMz>txtSVA+bbEg$KVyG@(~lBHA9U%lSCHCs&s=V;CBdRYlq07 zFr-mGybqTm&u=#)Y?cfU?tv3w#nUYHRgkZ}n2g4aT2N!Yg9v?SL6l?>Y}8T`{*`n* z2f728c^WbE^gEor`plGK-tL|^I$5BQk;3lG{8EjEm=nE3!#N>_Dv9gnIkFvVEySbZ z7cHXgn$ql=hr9VPXFJg3z?k&;eFPUzd570-RAdH3C2^63YH|2w!{t;!q#U(M5{&dq zSz02?Q~_f6c73P4e%v8-PYPO@_t|2OvGa-`ml?SJ(QRb;#fst@(-YzExUeDVZMyR> z$)WUITsme|62RZ;oNKi=FIodbxFKBNU*H$_=TBFfN3hvCZfVa~*I5D2V1-1MUItF#LlXe#T41w!63&&?Zi)x z4c+(oN9%1$`Ay?hgahMRZlbpxIwVhqN#rOrerfLF1fAa&JIAnfo%x@=@!1V3A$U9P{Lfb5GI=2HorUXl zyoy$O_pk)GJXAa&KE9BPCNb1J_beSl;Wr{&gkDPNt*-y?z6U7q#yucx9z~IXJs}~3 zf}{~@|65JrOk&}FKQ|x34#R#lR+Wr^>bCNeBs%$y8i$$_0E!N*e@rRY;4EPw$SiFh`NT1q;+Z#3)^V?|$1cj~aA z&Dai71gMm=$a^+7r!e+`1&r5btyf4Gvup<5SzCN!rlF7TxvC@?F;1q(4STSSb zEhUYm!%2|0KuD4pXH5P8aqfa-c1UCsJ#&Wy{8mU&;9VKw8RJAG3BseI6^No`^HhPmc!Vn@3Ubx6@?%1lO{uApaQQMY z_RtKQH5AC4&TT-I3CYy>e9-@sA0N2{&UbSfQ6kw+QskJDs?Q^nT_NQ=AV>p@8S}Rc zEmz@I#i1&3Baj#+Dsn@bTqA55PWPKZa?Z{^%{9sgSk`r10#yk})`kNmU^+%Jc7Uib z39Udw4Dy=|R#J3v;ah}ND_;0C)&eu>?Wy-T!5j&EB}R8RlWWvHr`ky!VU#?U)UN}>+wd_q zU5vr@zk|D0J|qdpUM(qyGLb}rIy5%@BD@>JHozVu}n-AwA;sia<;?2!&ng`sn3mP!nxO^~|K z_b%u}BTsFYZ#b{ewksj7X1eiqWX^CT?Xx%a$=e66DJB_-_Y|j;&OoREAl(0iwZ_tD zLW z_%H$YqIm!vIVw^VogR^#e#-*-J^HEi4CS<0XxYSF){(V5I>};=7D0d zfHKk;QkVDmxZmvR-hfV5&-_xAS4HCjTP_%0OCcKN`5D|lLVv*~UETgZii1;We18qX zLq6dC5k;2uDqd*@3A9g}syrDC3*cKpdHj2{Nrz&SFb& z(;vpLyHWx-09bGmD3Qg`)y*Y)Y0r!DukY;9p00vr6k=s9qA zSkUEsdEL&goG!RZDyeyu&OnJtnK@YkH1DfCPXz%pu_qlws zG#rgs{ovWy=H%o==QAza+1dH@g#XJ9Md#OT)NUGT)8^A4D(4 z&7U|Zgm{9iTnYgF!WiBIujYcva4g)OdPaa+WmP|XJHciD$Z37V#IRy-S~}+ z@e~@nQR>fp;hHm@hQ)%N~84g38NOVyAQ z7HmSIMI3^||4hR+HFv+CD2l2)Nz)b>LYNnKm*;>6iF0ppe3$USzBSpLOfZRGKeFXH zs-8NxOkPd){#OnC1+-d|XYr~~g{yT%S&1vL zQI9E$dkVH6o-H`Sn2()PQ^ugt;7LMk;TqLmvKWmFD8h$3bntvI`NsMvx59Nv`I}Yq zkEwLw4_MsyO3Mf=I&T)Uh8K~3TCH3IiCj)uFw9D4JW{+T z2?8mq1JdX{bPOPIPgHp*|9@uG(s0|2wLCxy9Y0(+1J8DAUhh@^Fr|`^GL4a`*OP2%USiBq7R9XGZBrjDdkfvDLm8q3V^2 z%(yd8XRXd?xRnn1O{{8>HlFEVXsj}V-I}C}DO_!u1F!+9fwO4I^*yxvT|HDuaK`4e zRo?T>Q@I)mxN9kuc90!GkyskCkcC8?L*n}TV;F8nUlJ$Y7rT8Q7Eml4Ds&Kyro8EiVhu)iwoPvVjyWO0JFgG)3$ME26)X$T9 zvJb?W5^5gPRm7AOpb2h7oVtLkSJEVj!7s{$jIu@Z^1Iy#J=zjJW8B5fbEk6pVx+J< zK#k`x>meaHO6F;Ak;cL|AV)zoBmCLP@dve~GZBVq+n}uF;`UiiOLI(hoGw!$f@gIJ zsr~&^=mt+9M-{otX*TIzf zj`AMpw?vpCob;r3QeE5PNEJ6EJc0!|Znv@;Lx%1pohIH@Y$5Mup>opg4oc}_$p51l zkT%DTkc=r@cdz$=Z=zEPyNjIlAH20k;Z5mK?)IjN2B7uQXIM-Q;eS75L3WR;TY% z^4*sM&eDztrPN?Cl$i3-KSxmHe0KoYaJDvCsfxpvTHJ}$8Po$a+Ar>78Qu^QaIHl8 zQ;QVKoG#sAIDK=WHE;k{UUj z?7?dF1zTwDxk6V(Lx-Yo@b#B4Ioc$& zF!+fT$*)wio-j+EWMR*GUlPnqUxZ(5{q#1;i})d8zzy2!tIIt7*)1RqkC(g`uhgHa zC1y|zi&77aN4%g0A~o>ZSpkX&;7EzdA}|rK8^(ki0L>1#h2|$a)&$tDSRu4x_m$hZ zpVMaeG@UWqY1E6{8oX>*<|DV=`;k0-p%M2xx;@_k zJS6On!_7{IiY?KuKYjRe_p1e_luXUhCXSFcaJwvSIao$VthXY)gzS*7#IbB!`V{y& zdYki6Z-{OlM^}eFF!3`DKv+Wot!i&>C~bx)vt?U?bc0Q4A$SB~w~n8zA7cOfGnhU} z_H8VI-OMNKapM{_l1DqwAr^QvKa8$PW(mK1RX1Z(gd#JyD`O;_*=1y)7=p+C{5y4D zKjKk71LSO`gD@%u+w7+XwpP;zY^@nu#4q*qF0I6s8}0y_JWGWr2FDXICb1C#Vv&rY zWkl7$D(;|?!y_uN(N`Dof}#51JnFuWFUrjcZ6()k5rl515u`>)E6g1z>3W3e3&LI- z8vUWN{_Tt5+@YHlJo@$H)6eGdgT?xXkwedz)2jJFn_{UFNFPbDn2~vCVb$-mH3m*tmxkitd0Lm9b|yJM*|DX1_Q2=PaAE zWv+UO_S}ovUQf9lGBWHnlVHuu%9{*bNzb_c+J`Ra&E zyKgVUM;C{RX(!}INvog=kxi_o7NMsl63>hF$scFk~5=G?Qx_O zubpQ`mndKk%RTCqhaDVz@x1g>p5_lwN8o(H*b#y{AjyVWGxU=?y%vQPu<(TV^3&qB6w+2jEWb!~-dOS?vBa{a&at`Ku%8HzdNsw*Dc-{V% zeOC>!ZHoDq-CEm=jJ_FxXoi2x(X84Y?P>k1O>Jy!WM%uC9n{;d3p_st!gbf+)=L$O zmLHm)+jV4jXGu)Q`|9*!G0M>e-EOGJ0ciDabAWYVOnb>b+~e~JWr_{@`cXsFmA|0Yo1r4 z!8yL>fvyMd75h`~@j<>3rkMmyKccPsYi6rzEfY8y3QGH2K3r*tN3`zkbTw{~CjT+)~c5O^}_Y1Q6Qi7=|1Ct}@ z>mlEixf2u_W8OS#`uj)o$@O7W;$*7j!f%t_yMDML@w+v*`5M4h1p3F@?L@d~ zXs|jIkA{43?X-hN+lE0ecv?cGkrH5&nOg&=#;Fy7i0>(q4*HK3VdUdDn0C{Q>H35V zg;Mn8S9UA>Mg~+qHU+{pwzasF0EWSiu}2rsN$EmFjT%ac^}0|shz_HiQy)Z@zq)fM ztwJcbT$jLt7N0gNr){96UDRl+N!5A|v1?`88n|yjTozs9W6yOaFC>5eCp!N4KA8mk z!Cn_k(Llk(i6@0!V!i8*Rt&IfGY&i`#C@HbfZz6pw*k+480&TItqf~O-xwRA8$ohfkukB$;_>Y0zheckK8Cto1tON~F7_Rv{0= zaCr+ItSI3;U;J6Hl7(@Fy7deu1RdCIEYTqe<41Jx`W$sC@D`}8R0_(uGf6OxwL~AP z+KBI&{&Mxw+b|ECh__WX$4IMcn}@XMKu5AFI9Nf2tKm+f^d#%S&cJhVR17^;gW8x= zR1hPv7ugmh9|1glhOnL2j*hB_8%2yBtWv%~%cu90Z{)-j0~IJdI5KYQAaN=Nw_)s% zR@(Z~xPmh&mqR}ZmK-8YfYGK;a7wt;EkvE!;#^HxjNeGG6f0yNIlmM6YsumNWroL4 zx%}87itN#-MZatoZjRA=Yq3Jb9ND45Dk;_D3p0c!!*l2q3)}okzd?kc>(#)Fj$qjia6CzXCCQAC(bURo*aB*EN-I_l02tV36;m zCbfrE!S`E0b4T?NCU!Zd_9o6-ijS^(yZmi6`_=lyKEnTC0iPW7FXDm!MtwgOr&ie* z6~Aqx)Tl8-5JM{k5}vd2@q+xS?5xIh;j62Gd_y~ijM+<{8n+_KR#%vGNn$`^r8RaO z3CSl*aI+-FD=~xa%Q*Nl4q+Qzi5S6fr3Bds|MOaVxK&3b+;pj|$Y_a-G=_57$elTR zH4b#3U5BKaG>^{pkZ)G0n7)cn~M?Sk)${zxhQ5rsUh65x9zrboP6C$tMazlCg8Q4cJ(6)k8Ey-e)oLr&5 zr1M?b?C$dDV88V>XV0v!Tz^+Bm8rmjtNICRC)e!0n&UzTNHLNV1r#GM6IOnzRMYlrJcD+H8ignUlApc6N(ucLD!HfS-PIDx%AbL`NGkMl~q}k z`+!HXejM-tDe2l`LC>vQl<{qa%M=b!b$e%|^mRuw?CDcIa3qNJ^KO&RCn${iw96^|=kh^NJjUjz_px83!C&a%JANO{*g@xqr|!r6EP`-R?7=$M^9nz&C_w5Ewnl2u5n5zmffA$7Qi#@hI}YX zjuE*wiEI9_ZQQ#``_5xwG>c;o*P98Yh-ob((%}pGS(f^G@bi+>hyS&$2a~mE>0l`Z zioLiJ1HQxT)Pt7MJdNTh#L-)Eshz{hXoCDMG!; zpqt!?NLlR`8=$Ng^&3wrNBwvDqbz2#eQahH)*RKG?g$C;yr5d!6 zWk39S3qm9rtoR5*`2P{=>F1$w|Ei&Sz;-e_Xzil)`!i^8_4_X@wkQ)dJ^Xn->8S0A zNNjYNyxNnk110#`IixW}rv)*{z@${Ro`GX8vVmFNjpy|c?=OXZG{9T+vBNp2VDay zW~HL2Cb1PUwA~Z_#;JKb#6`3P@iA_|f`(4KdTWSIqPmXxH(4mW@~R5) z+u;7MdI0TWHlIM=JA?+$_hMfXG)dz`^tpqN>p83ws;xbjB>xl&t$r=Tz7_EZve>6K;X5fo?XHnJ}}`S_l}fHdPGTRr(1YY_@Hy7XVowl70=VV7aM2 zyF;=A_RnM9y%QW+{g~bfD+^;y{SUwdI%d1@=u*0qZIH3)Dc4wC^@%^zJ zC&g7%iB$=eBUk*K(-%g-TI2ync~nIzX2wC}L1F^q(N7DmD7$0dR}|Y!5i;qJ%c^W% z-0TL?kC<}PA&<>07~^TQ8k1zM&%`CJB0^cj+QE$ajdFwTr5( z)V-&xT8CyIR&pz;{BIc3blPN*%t@Kqvp@H>8V~J0x{tyjA=GC$418s8bgctE6`gWd zOo`~2t3T3vX$mw9$T~-%Ew-qp<~5LE_w|8pc1-zICL+cR?evqA2JUD zJ5NJZQ-Ks%rXSj5i@OCTMUuK`OTb$(!{!0y^OBS5GcoO5#|2~$kzMa7!SIx@7$x{} z>%T84L9#*hkC(IF4os#uTO6j@uh%yoT(DtYJx_{N7`g%)wgi^(iWZx&)L$Xk+E3L1 zW(sM?m1pdy`n`3!NpaSD&=AV#*Vgfs-#&)(%}9iUW&rr%{HF8`bLugE{fA1*e(Hsr z`iee{o4mPfab62IS};AK zSHrLbf!TNHO=sW0Gow6l|E1YJJWjvaE6tyjS~~3cHUQn)_n?j%+H!J%gXIr*xLQu( zATfsT#)*pWjoUjmtwKrEs}%dvJIB^Zw531+)4XZG5**l&8m@J`It>7BJG<*mt*5@| zHuqg-)Q6#-`olpno5F%40eYETOp3mGTvcIiNKF}~jnvi_njbKMaR^ekZ$Yjhgfnd! z-k`=2j6MWOObdOuz9IOGBJkn;{PI;3j3~STH?k8SDOte5#N{ICkgNZr9QRdv=K(jD zUT?n4Fxl(xl!SDZ0Wg(amkH_cPB5b(lkZVA`?`qSNe`TFwsyI-yBD{N{W?3$#BQJ?jRPmRbU1#%~H zSuyIRh6$`H@S0-=NIJAEN`|rJX*FsagDld3R7+4bjEmGcnxg8RmH)qGo1XIj^Ikz? zx3TT9vhF?)JgVLcy+cDour&q7@`GrU4oX#RZriJ^3x08wJPX29xUa5eBQoxI$as>9 z1Gm{RL$f3;SB>x%#2zh)4<;1Y?leL~&JE~K!e)2#hfZz<%E_~#BpRv`qC3P#D4uU6 zPU$F$>vQ+=zthhRPe!Fnf+RRVg%`NO!yJG^>e#0pKpJD3qB7#h$hjib)Cc;#m2((< zg;YznflXZ@iJdHX=A-TVwt5%99x1~?t34g37REQ12lB(H~X6eMXAtcnOLT#Euoyu;2%}gk5lLD}9Ore5E>CuX zY&=H0G5=b*tO-BJQY8DXvOx=}V)nc4-p6)s;$c#Qn*4{zhU{DsRQR3j%N1#{%)s|O z$S(071d%|85+M9`)};p(F{-ZaMv$83mXcGU=`AL`AHmOYDD1qm3tK=_J;}p?-+*P3 zX(cU<3yKG0d`3AAs30TUn&sw!HZg4-j4Mf|o|M7H*D^-bCHQttR`skeUlzmXchmo% zXuvneX@Wm>T+ZPV)GG7m=|KET{yOLVlCPY06J62G3%-L4_D8VJuaGol9Y$Scg#<>% zKXom$;fVn;B$^ez!g|&w&hiXB(|f!lXrc5?iJEx~G60IIZXOdAI1tDU+RIlm&jfG+ z;*;CV3&Ap`q##c94qFsneHu**MB=rRAC;`xq#q+|Ns+fbhXr{iph!QQqx6k_X-rO6 zGFCZj(aelVJf^v}e9JeuG2w+-dqJUo*&bZ7G%wmF;vut{q|RoLGRHyis`=fm8sQQl z++@z9?SZZVo7sU}~mNSRa{PfAK`>KH9Tue`p*Jc8$vBHaW0X zGB+FXoaE1vSaw_TA=Ou=fbR%~yDCn%B{HL%oO5yP~N`^>B_I^aV<3x3E8tMz!bu+4|;hozXm3|%NBRAd1>M?A3tMH$^+Czsi3_ASD z#X+QkKdTon8|42(GwZ}5zZ~Sp-|$(j&3OKxf3H_f=BH;6Pr}cVTN1+BgLrYqT%a@L z%~Z7liEC7OkdCWBJ>vi=NymkC_e(d?NjCr~UJ01J3q7+OowwA_(@F8jvNkWC#qFhp zhzK%hq1N&Pm9aq~y+;uN=fcNFNfZdba%qa-)daaf?G!ICa5w3@IQ@MdOP<8bnt(M> zOVYqVhF$)^<@fNLil2T6F>IC$V)Cs~^6Q%e%t5id_Wy`IkD<=+g2=+@3rx}8>ze~x zd=7j7YI`Oi5#Rs*u}qg$#6?o828t@s@FjBKw)5F%2^?j?W}7DKKUbCd;SMa69l0=p zk5fcYmtVSVP(-j3&P~w=e-Q2>4vre!d3@x7)uj|=@M1R&$!?`Lsr}B z>+vMnL0ZE2M_|09lOidGbuXUwYpjGG_Yqyag-%7C1&G4`k zc1rBaN`6Em<}-izzOv*R?r$kIFHl@<^)ukZGUGFU8`IrCNpqxq z#>5E?smZtfy+BzZhil;L>7Z*4-#RioMV(3_J)`n2wIcAUAL(Z;w5B?xtds=VuT^Kv zVut&gyRn=H@Y;Uk?=2~uMn~BKbzudq6YRx2dy%BU)Sr7B2vqTdzu*y~yqcU3CK4Sz z6Re2N(*n_bUhkjRcPt*weM`L$loJv_ zt00b41h)nx2+1qH-3FEn*BEpf`(h3`Ug2@@sc7KT86A;58NByhn5y5Yi~=W@ItaT9 zI8M2mI>{~}>lFfQPololxsMp*ESOqVCL8c9NpvxOTR;>BzIu)2cc#C$II7vn$rSUi z4|TB3bpp7o%XUUA886E-pkLmfyYI)it0Sn&X~#m$28-H|56{tYrwySylVGU0U~e>d z>j(fmp_@L(upVtezH}+mml_I1r!kb%z27pON;>?kc1+EkUz!zPdzO1uk>Aa=?B!XX zQJn%fejgBY9M=+I6U>L%*X5c6tTMu^f1&3-73(nqSJTkY3kad*aWb*MB=a;|3+UzG zn(kH8yKFUQB1jtkg?`DLwUZr3`tO$V|CDU!M~RcaD_&lSosz#GzS{ii5aEX-%&ov) z;vyjrFIN1`sfTYY(@`Z74kDcFWHeJ+Jeq>x)#+y9cAWapj^=?h0KgB!b?-eVu}lJr zvxzTgAKqg`%LN6t@Ys!jFdF41L*@ti$CST1UMWDs`3xQP-M!}cz8BtAr!LAh&9d+r z^NwPaj}@CjELPNifA(pU4R6hrM`(xBb~TVtBQWJa z)=d}wkr=D^+s0nV+neZ!R8H7h`>&KM{*x5g3j=F5TT*5-?2*cC(&F#SfAXt{|20=} zk(AFhG^dX7fAPc^x;ZK!z`}TYU-67)cSR!V+dHnimnt}FyE5D`Von&rtUm1G2Oyqy zX?(mk!Q*BLF(DBm^!&SNrDZ`NgngA zhH+AUJ+pDM$y{RI!$>11S)S%h$@^5kz>;FU?IE<6l@|5Zr9^O$2(b8*<#Z^C~TvsH-ESv<;w{7j;7@2pM1og|p=N?z6H zKDry2_m#6;N!QoPFFl~KYw1E$+-Pnk#u!i-bd70j+c`%Hx1*g9Ro(wQFG3T$8aJVX zTmj_cy?MclC*pRHw*YA;nisO8=q~$IYfuPLS=kBEt{;v~=3G3NI%0l!~sb+R3_gsgkQ z1fpm4Bn?3w#*ILRHWOpy=J0NRFt($S` zQgL;^a_;Y9^J|=k45dF((M~|N{Ort2-cPOI<+XeITT44Yx|K5KVx{+Xi|!v%nNhndWWXKqTC(ouU4X2lBR1d=+YXM@ zw87bETq@K8jX;|H6~QSfQ_`AyIXkxYg_vtYZZ2XOlfh(Cyzi#k4S2uRj6|bA#H#_T zQx?-|bDYM%;z|DZ2zzscJ=fj{zz#ov*JhF$8XCW-b(q`XMGW~?|4)!5ThAR1gLax# zle#S+pO5VuvB(-!UaZs4NUPCE^m~QQgrG^h#1Jd~H#irzsRJ*~ zdY!Du`CR4l?9V%|Bvnou-qpqjTC&fIDP~mUTka2|TGclPHQn3qDa5cD{FW#sQx7t+ zASdjqGzPad5W$<4`q&zp8j8=6+mUOglz(7eAdq)qB70=9Ki`Gc*B636 z{3B~2*NeM0AhI-2R}a<-c$MRXAYWwg|CbqFBq0GROcf4%KSu8N%0t%+$uZxEWbXvZ z(Z{~RFon&N#yCNuxdJT}v<2m-N#%fprEy*8xDTB|DeOXGG~O0dRa#>pv>F4dp7X@SDI*h5 z;}>A+hY?ebRnQUISTqs?9ytX}YVIHiyOa8Z3UKr8*U-yo5~u-WRCWQAuYJV#jZEH4 z#p49wI8l+c{;G-3pjmM6d(-3+Kl7rC1B=m?+E1r4f6K^!v>-OaOwmrvMUit8j2AC zs5hz04`W;7$)}>%pb6pT%*dZXnrSghp`uS(MQjbq@R#)=E;BClKcSWnp~ z5gUH}Gi9PeQqnz{Qkob;us)9&(YQ`91kJax7~l}Il~rEP4h6N;X?(P;hv5<>3dc2& zFuE#E(D^*ge{=up683ufTdlzW0UQ_p=k5)>DJcBt8ia)g=Tqw2{+Td#ef6u82Z4%` z)GJ-9hsyHNKkSQgApnA9W)Nq?fCPdXoorZDWy6#?`yXSWfy~M3%!ZdL>XY=|K1Z@J zpSLM({qwXq2FjN*{MRJzv`5Qz`W~)C(D^CREAQA?sE{!EF``L#3(dpNwGY+r1iAd| z6!vgx1nefr$(P@f&GvXw6#EZnwD#~_)1R7Cts0bAJ`3Hz*yD`(xw6f*G(})>nqKhx zjzIF?!0%spSrF`_qeL1+VhO#(C5kARg`pV3oZhU-N?(nGbNDjal$&}uMp0pVzb%wR zhOob$cnrDomGf1J4P2m(sUh;QLk@p_M>i%aNzS(pgrc&dQZxx(VMee|%>iS@^E6go z_ble`7E@g_PLI)E-BSVM%we7<5me%v$HJ zsNmwGkzMrw$W(ZR51!kak#ZOkZZN=bIhPc@o_yPl2T{~xetc71muLf9)~1#_{fh|t zXDh_ubmb*a-e>k8n(&AiuU-7PSkwQ(0#Y{h8ko^uUaPBvhPGWuDkC5@l*2K*+P^|_ zz}}Vys`?H@?qa2MX}0fQEgUMCOS2)fd@zK}_lLZHej6y4hKr0a#_c;HppqP)j4Z+) z5@7zU-Mge@|9k%H_)IclCcFq^uqYub9;#BkWB<8(scwe41~<7gD~vi_pL}+}y1%~> z?dv?DOVF|;a>I)ECXGiS&F-Ddfk?~hijh%_E(dDE^GR_-j<~jp20!zw2oOPjAtC@x z-v()WXCMgG?Q3lqzrw#4vH$FZ97sMG$}iAsgIW<*lhI^i(q1!@KY&R1eB@pz|CuUc ztj@iKf0}TVC0EUZpavdFd7C7kXA#y@h_bA z$K&u<$pulGPJb3``owF5+7MK(|?oP5sMY!rAg=3MNNJcp8sHa5!w{6M${BgDXhL5QL(Gp z#`bv}7b}gp+V<5kEfVBJm0nl^WxHrcbyZ~e`?}LgVK2$1U-CrD=#3PP`z3-B4Jj{M zYPOMK_k-z~o61CS#qJ~*N!3Tn?dqAxR zReaRXaTsQH%DzvyTp062vun{T$YJZS)`xA%@QzIpbG3$N8LCTvxLfeENa zO7riN{6&+yfjN`7_#^0cBSUC#rLOVNMG3{=q`~c?MqD)<6@gZ$;!F`CM>3LJ+NB?z zw!#^lJF_v3^O&Y*Xc(eE^7SrB1KSZT?Fz7=0j)(_iES538j!lB%A zcqd0S&wK6Io%6K(BixvH;IhT@XJNaR9i_d3!`rcrtgrN5->vc5Z(ON4VQeiiTigYml(*H0C7-f?ytl*0V6A)C;_H~OeO%zlr-Z3wgA?kIOxt%uO;@S3B(>h zdT3`flzmdIC*Qer^u{qG!OPST>z6&X!M*0;C_?1E3 z)p-P$0Z1q}^1ocuk)(h!cswsI4`jo@OJ69iIW4F%VQAs#=TlC1bu;{UrI8 zRoF9G49>${n~I#vAlWo0MWk(P^??@j=c9YpXG3=!j=mtp88zL%XXTVJ?7Rz3j<*>u zWy}r`>Sum6ZlYHhAad?Soz62FX0aX5$rn!yWqW(k>?l;W30$8@V#^x>p9)0Rn|^>R zTNB*wJ6^TX4E>%SOgY^we{mGBHggI0!;)2|@#a6`T?>7J;)vE;{qD6EcRziLC$akz zTg>+aF|QyiEUWmju+Ut1!mxf-&cMv)G1iSR>=Pa3l!X523O?_rc@_KjjOPpzkE+%P z$+EVM%-=F1$K}yqU1M4naoDmvDE}x;L40;->Z3xq5f%{_w;b%r1ZNgl_p?8j1sELF zR*kZYG(;luor`LtqjPQ(v4~|Y!%})XB#h8>5Ru69skWKG%0Oadl>M8No)v?FAEJ`E z3$^)^|;9vXbF;l4>Nq)L}qgtWsg!`oiu z;LQ?Vihe*2C&2mcqB_KYw~%O{3+G#^4Y@<%g5qt!Hjtn6D%C2V>OD<(dh zDi#P9vv)Rp`ce3p#4Y_P99KZr>l~>@7i?K9UG;}p1=`l4r)CP<%THx(t8}eBO|NyEId>K!UCg= z()%6*uAKjmtM`tEGwi-Vqelb@L4*(y1VIqJOr(&aM)VfZd+*Fd5YZ)i7d3kCWr$u! z?~FeBXk!Lb?)%+ueRuuV{eRY)_kG^;Jm;MKoV_>Ue4{}nwSK2zG4uM+%Q>l!-Eg(ka- zD3)2c=LVNLZ;9e;#edc9{yR0CwP0SII6?B^D&0c_Q1=C&?X&Z_zoVA%e{{D+2PLd8 zm33jRd+&y=4{`CWjZdYpY_xt#W22UEmhzQy9D)Xsj&BrUH}gQ1Yv}mWoG`oeiB+V& zkTcdui4x|riiq*adcGiBofFNKNjc>co|qg5O%Ejv)m64)&}`D;2|50mtNL~N(WG3a z&ndWKE0=bq^(>R;Vg+{EugXQNBE|tw&=3oXV6E*G;Bc#dT6=W1vkTd z{KQgPyM@?-Wk`tPHo}_qi^oxRVx3u^VI`|-qJ-(G;&2e`oZTfP8?C8P`CrQS0>3y1tv(F5&A)T8+v2BZ zvr9$rQLeRLs&w4!p9PF|OWE442(sYe5D2tDA-4dkn&Cahp=4!+cxKX$LFr^NY;~_( zvwH8`?VEKPvp(C70!8DtH)!GJQGlb|`p$;xrS)c-5}TW=f`WpE#(0U4yfCg|K#(RX zO&q$KV+YWRdY|tTLJ(|5ZMI}x4htUtIqFg+oF2yLJkzUP&1YgWY48-YWA{Zp6n@3# zhfzfy@?>2>+OBBKUGKz6RJ5IB!DE=~`iz6@X3MWv10;luUl8IaN0F0GF#S5ansv|N z9hf}feEG(9Dr#pQ*&PRSnEU(w{Xl&T$eRV~j`_vI=6$T;b4hlP4+rD65|}crr}E}K zBv#TA5~iCz#!#^P?MCTjS!hx3uT6;xmKx{+8jD}&C*GFsS*{tLjTJcb#i>EF-$u+F z`0Cc%pFpw#=2)D-;E^-I*6P=xf_n4wfbgOBRz8nTnQrd_vK=BhIg%<4h~%sIT_8&J zpmNunIBFJ&Y3pZ3&F|6@gJ|RmEQadQOFj%o={7z4vt>SR-4IKxyx1~*H>GHm%V_DY zJwpOd`w)i<4B?YxXmxQ}p=6A){EwL)7F4mw;u!D+mpToTJBw}j(tfob6htc%T~<{h z2-;vL_`A*w@0tW$28t&FuDh+O8UI=w*|$++#afGhW|uDUEfx4<+-ze=&*4NqkKfQW zvh}KKuEK~aOy$uen?bGpa;YBh2?2qoZ{8W+vrZlJ4K&z6yQ5O0!s8>E^79y**^^V# zhW6`=j~ft-ct%e>x}D;o@7x{F;rjKQ6j5-%E;L58e&shCYW~{qpbnG zAu_GrnUtk@Hrk}9v&T4&d zk3~+A`1>N)g~h8#oc?$Y02{*nEcZ2g6eF_I9!EYd9uH9S9S-Z^7gV()OGjjW zsHj}pML=Ljf*G2(k4{!FL~YoKqAX)$vmtB``|DLQw*5W@MDK0iZO8W`>aHcK(AWKR zV?7asrvmdoSa?+4?T9{<_OxhsT)rAfYmh$9&TYT;oZ6|7x0%Zx7%Oo^xBC?Uxn5Q7 zEXRQhP%U)ouFj93mHXO%S1GG|f$Em6$n;6$h8nw!DSt)jZ)fQyusk+Gj&mo0i8`_3W1an7+6s$A-wHvx8{@3g@cMm6C?+DNizPZ%vaIs)d%uIG7> zs%g?1?*Gc+-)fK#B>8<=#2go@Em)A1ooo$7^b>maEl4TM)TGceAt5U&R0EtFz3f1% zZ5+-OFdREsZ$BUJeO=viec*Q-#*@`$e9Q2D-AN-kwR~^}Za2&!f`>^kxi7~F!E|w8 zU80zkr5%B}#sNm+(|#9|&!H2ET+vyP-XAi)w{3U;Bc?2z0mI12q-II&4}y1%c3i>p zg-V}uHDw%Mrc0squZwCk$NL;5yp!Ocpl#q2+LA0u;18_&FdvA$KINiFkw|0(5auVzj}j zbod|%}H~PBzprza4+ zuoEK*R3+`j`Q9RW9{DA4pIv72TqR9h-Wi6nZ#98jj-wiuARU29)t*QJr`C(5Zb~zb zljV)A>qCg-(8la>;lD~@;n1R=P_?XoAGj|NwY>BX#B2vU6e!rc8khYDBboPm_yRwM zuC!ifUI(0^3h!9QaYy=HCRk;+Mrv_C6R`X`bj)*Pc4!iH6vH( zE(i^;_MLXU;3+8>mFKuBO72SaA)OBL+;2GiI6+>sxD} zDE7Eyf(eh28%_>KL34Gq2%FEczZWCx%|cSD4cQFS(L)WHzmHN>sDATad5B8QTA>BC z)5X2H++f0drt(!=4+UO>S2#=-;3l}JK4k(1M=bwt5;p2hl|TLH_PXm}+9N*s3UFoA zfr7*3%P#gJ)NH-NMWjBmP%S1%?#*dlu=vl}QDy!JZkLPAND@esh-kRyusj$oi|-cI zDbqh{+o}~6qS1X9iEZ;T$`v*(dAxeiLVo13=tby)dmrk}tdw{WK-(jh{=oK7VhfvG2nN|NMczmnMmWNA9i}rJKx3sB< zP8W`}#8WY%RPh^MN?Z>018LKR=5*$vd|u|27;8;&K#cv=DSOJXMf$N&qR)B+*GLms7 z6KAqeha{#fdh)B%*sTlHmZa~>(0}d5NMMX*h7tyE{p*cN6CU4Q>oeha!cDvkp3ILV z8LDqV@AwhAgoe{Z1F$i0oU{kAUlHIYe843XW+m>{`=a2U$KI5jg@UBrcEt*|0U7&9 zY8O$po==cHtE4a-ZeU;v3tFt*jeW9OI9i%b$36%@WSB3jo z54_Q(3rJgY)mkms@81~(7Q7GTd@ov7k+b1l;tqz8K7k~^4VBM91D9F&MRO##fp+uD zYUyR*gLfN9d+u#-;c}8=`uJxm3=AraNu1Rp=KIgNwjrw8_b9p3#AUHUMqTCxBs28g z@xt3en3MNsh{2{UJi5x{EgQS0qPX?IgmfU8Q9m;HuCw$eujQ%w|_7m5&^a9*>rEPv_j>MSpPn{DiTFy)4>!d#u5 zP|QmF`;DGon&8VzpjRl>fodSi+a5)QbRL8vp_Y#?GSIT4=9{}vRXlk3X+`|9MOm{y zxcS*S>^e|=7+!&!Ofz10rlm8>SM^03)qOt9B=G1V-+M&cN^|73-sLVcdx zzg?l2r^}KD=m+dt7#8~~8Rqo_<^X)5FFh~E`6wqSDb-bYNYhmRZWrAs82y3y0;~IV zuc@whBJcReLhhFq3YnR?0-%|Aa!1B4EdG$YAne4pk_mlQd^NW0 z6Q|zO7UC-%2^F;@kRQ)4OTRqMF`?*{T1+mcE@*x{*5|-#nxCoTt(|6dQ?DEro;Xvs zXmx2-8

nwfY_5OeCmZP0(tE5XJ(8$jAH`CvU&`V!&JXmHxQs_SEzIe5CM zR%D6Tyn?LPq_?J4*VKGxB4?XTpPxjwqQY^svcJQ^L)qkmZN_18xC%ZjE|RZd@APuF z`X>}lOKru5r<;D{{g_E?T8iXauK+!e4^sOnQ}gx2*sC=AXX4Jg{94|`H&f{{uXsq~ z^@t_K1T{H|UeQRiC%jJepV&&|Ur9|jNcR20aQqxn+&5a5)hfL107aVM}SpP-~@KXR!ZVPBX zGk7q@V<1|#h-sm}d){eA@AQdVC$Fa9 z|5*cdZdyJXj~00XaX-Ik!M70DaVsR;rLe zU@Bv8I66f2Zx0=v?#nlR?v-ZD8rI(6H%AKNlme-L*dx9gsRB%euQy7^i<()dpTk6a z3?EB<3lCgye6MR5|3BJyzZ}3#S4h`82pw z-5Fyj_;sR%xb2kr6oQjUC{>82Wv{sf#41Hhrv}gHJk>$ER3qDQ>&YC2M$+euzKBWVOZOnNYJYmKOfJGn}EM`A14Rp}Kkk=zR|-ozR-9&@Wd`n&b!V zv_l&yKjOI0kbRL~`*?2pV?2$)BW9uLe8vlnHbxPQfMa_D7`MO~E&Xd+d_5nvKU3?t zXqttiNfEz9Xq6=Th>C9|owQKT^_7qt_4djD*zxSLJ6ws=1U5PZI!canbG2(lU7e*# zILv7qy5oCvAQ=3dmEq?S?F^6o8CLKV zW$6U|By>D>hVm+M1g6p;hdH5eN=Qh`be@<8ddL=B!AJT4#`$aW1m}oEhiJe<%g4>K za$UCIL(6Vt4?hf?g4r;>X6@*hHSv!c6yB{N0@^T1-J0OFImbYUkGPkNNBg zg}F(aUB$m(>g6po={LUG36ikFiZ|(0PZ?tRShrzqUvw*samdR)vHeN@A+J=eT$ozP zTWm>v*6;@2;&x#^v$yg6l)ZFKo+m`oe*kzVYL)!%CjXzI@j<(lRy%iav0vJKl|a(FVBmw$QOdFm}xvu`3$~yYoR?uj#U`qfygk_C+Eq0Wg^;6qM5)oP(^&FZ-TH^;Gvo5PL6|W!zl%K+ef@vGM?u>>Y`p0pC+(`DN|K@|e5OlP`_--yBI zHa7m%OghSt_5uu6eq}n&RGP*G`W+0NPED8SB$I}R*H;rz`_Mi%ze8B?2W?lZ73MVn zl6_4bsJ4jkMKN~(`BKhnvD#u%GX~ybYw;>HMb1xp5~rIuY+MY_9zV^G&{f3u6e6d~ zHJ!%56a;CD_3EvUt(RFZObyd6GUhr-yx6<<6uB2#alL0m!@|Paq4rC)?ZBB1gk_0e zjQlfAt981eaXk-o-_kse{9xLtL5}?P5@4uVr)*)lE!Wbs$KTuJl|^J7>n<_KQ_$ z+vf^!myo<4vc-w6N_W1}cPo4ViZSUH!F=oD&;ake5VzMwstf@wOdF>c+|Kz>Is|CS zvU76M8FZ9S_Cd}_aLZvzmdP=IU}Q*N7QRp$3upM~i=GcyWed7O!TD9!dI+-3<|o86 zh)rJl`8&h%R*x|uKsb*oU)<00>L%>&9F8SM1 zt=^DS4TJy_rLCq-J!c}P8qfEuAR?itD%VA5@({2`i$XPTTac?=$=;Gj*A?NORaq<+ zXC_ASpfbi2^s^S5v+#tW?BABtOm&JmOM#=pVHOJOV5fC>-qSrcFzLV$Y?MDcEggE} z^T_ZgpsdxVov>n4o^hP{d9m|I?!F}Mr?0!6q5AW@)0Ex>Cv6f*$(vk6v2>4V8ouOn z^L*6_+1Sjel_q~3;dcGPj`m%E@54!xu)W9hcvafKx#P!$u$y+M8+o=xhWBpH@xP}p zJl`JH$@$$UBe`34$IXLG%h0-~fGq;-5xd~Q{~>&Xt7qjGzUKRrAH6gKo(UY3Sao4< z?$nd^*Xz3LDC8OM-`SgkgW3AbET7UmGw8I&et5*jabisTxTp5Cq+;S6DfqPjCiW zN_F1tgZtWVe+psmXs4CcdpCK>{IwLb-K6@bAnVZE`_Zks-eDoH4gr{+m1^}#-%2ul z(3#j6Sd(q}{QWE?-(Nk^2y=&(YDzbYGvr>}2n)aEcP9aH>X>}9!lTy}?HQErx$+PY zj?Iv2;Hx#Raa3NHg3WsOnYj4CvvhC&U%bJy@Y4>U#QF~$=Zj*gvJ-VQ-%AWJ1&}~_ zdV_|_Of*U4zpquL7(w0UIgAcZ1jcXqoK5|Qqr6v&&uoKNkfAS`>1i9FfNqI+x&Fsd zh+VBc9vhm0qZo!m(=>540s{@>ld=A4#K!8gY zUtaEO%fI6%jfo$)b!$H8KtBWpjrJ8ZC*Lm)SNq^tP#pJxrSt`15C&q8C}p2uMqaFb zK}x$S)eQPylqMJ#SczI|C6_!M@eviKo*_|5pRNYF2Yd0d!j+7i6=1*_^3;00#1d(`M^4`+Yv;TWbCMUifn2vm>Hu6zDZgvUL%Bn3c%zu}TjBJa_j{l6d1GzuR1LAe<2S{* z74x6z8Brv2RY?%a>$I$EnLiMP*dge-px8AM?sd?u>SKdQHaiM4-v2tDcmfC(b2 zP7kxfrst)zLM1kJws)q4hUPs=rNQ8@|H0tQvx&9xe?g~=ax=L!>B7aU;_-| za_{84<5rBFYpVFgh5yq}1H+!h^>Hs2-aEHwz>Wb;_98#kP!7pOhZ@q|(Y$JwbtCBC z_77*n4_0)gdIxntuRfK2+App*BpaOm&@CGL6?Fwws;EEXr>W`D`8$}E%{RVTdKQ^t zkU2f{oWLwv5LO{rDtKX)O4zfOiH2xvYxhMjCkpCeR&f#rS}lB4MppO+`{k>?*7#gj=9=JICwbtPJ) z-u#VFV&qM7#c?hQDd9(F_Ha!Zc2Ldv^X*lO@JH3=fkh10C_43DVfq;L3|a+dknpAY zub!*>?gyKcjE+wywJL)O`@I4(Np&p1-7H`l|GXh^X_&*V(@sx$m(`^eSS|&th`D-A{VUt62P) zx{W&(f2}C^Ru~}g$X4I|Gzkmz(dy-^a`;Ms8{7*f;{>1uZ89Vupap%ETu}!xpXsa= zP5G6$RX%&LVh6)Z*b+EPq}E-BEZ$-2pP1jfE5*dF(wjOeFBQ=!8WQXw@^k*a^Vm}f zi}oqCd{*@reh=Qg-KVK7cyNm`FYg}8fOM~cYRZY}FI@06AL_odHZ9J^9I{S#<>6<3 zFZkoN*RH4P!_?DwJXZPo~!h|;jS z<52i7!ozY#vG9Q^AX*V-yJl31qr1z7WMWLdb*{mUBUf1)7K-Dlk8EezK(2#s6yZ?4ieNN z+5dTJxHju8nJYa`_dUtk(L*o&(AWJ6TX$TayAkjW?!1Lp!3qrKD>8ZWG7TSRInK)o zKj%KIJc7Ua8yNf`p7F`iB^w($odOa=?3K$=`#Cq*jqWcp>g5>wQHJXS(k%7WQ-Sn*(AP-pWPWIuXHVWSzpmu9@!68@SI<))7*8oiMeWfo!S=K@??CU@-595U9}yz zJKn3WFscv9WCUYja`n2rg`bgr54h_Hm8YmtyZL}7(EmLxLj2}v(7Gz==#6RDPSMD= z%(1Pd@Mm{sH*9J{z^RHXPkke0TOUME@H)RQ9OkXa+K}eq%i#{T_x5c6+EqJ_XB#k` zc_3K#qdzS=-rXFB3cRHw68w|(ks|r04gJm?k02si|JJ`!KM?wJbkt~6gq6#)k)1mW z{W-+{@D?!u%v*EJ}OnxVaSNt zO84&DW-T8Z-Z!peXFqII{6eiOXipj0#ZH;){*8y;UbuhqOO%lqq@HxR#=MrrJ7wq> zD$wr`e>z5c4!d`l!nN}zbWB7YYV^NVZ*%#ZA^D#t4nBItec}6R%x%o2)0zq=Z5o4L zK6j3Jvmj$$>9sEPg~$u6rUi?I3-PFLrjs|3g~e4;i>aUazG|RoO)M5bikolJ`}!{J ztFE%rjtl&Gb2dWMfhuepM3g7kwAux%mL~^7*CkwPUguv0yUZ}#UcYCB-Kj=2#eCTm zj#ql~h@@OmK1VCM!1+8sQPJgw%2Ak$x`=k%TF1y+d6}R3HYM|aYh6(LtqK{c?l%Sg z?*?Y?qXA;Q>2=c!w`Hlo*Q-B##$AngZqxy`0hs-2A)6ybY$OrVn3XgobWMo@lI>4($N3XbK?7q zZRR1X>SRP}%_B(}>+{z2k?%5Y3^-STGSqV_S8CJ88dEi1P|K0DAOcvYacmD{dXNWL zdVjiZdAPLSN>%ZUpFeb1*n7uxqc>~t-TU{uMVh0?nKGpUq0cUuU%A{_vJ4_bGPd@} zLmBrUy@5Me(@(T=2lxL{C`;}}1_u3j?bvs3VpoFe(}uzf!s*V-7Rg6&$gP`~6HY_C z0tY(?%HWn|2iLT#9u=bo_A+C#cIhyYz-mz<;HQ%;@`v3bW&c`1-d{=~TSXz+e za`>}|cBW9)C7l=Sk(Zw!x+6B_u3OjyEK6Z8WowtWQY_f0`J!FkdKyH0;ul5AAyIG@lU-bPUyTsbmuiV~?L(qMZJ^K@vk<86bgJA zj3`I$H8BT8PejnFe%1%sR?Dpn(wIU$wRgl6BscFj6{;X&8y6y_-#Ty$mI-|Jcz_D} zL3L&GWcG7jb_r{qRPSy~&tW}t@yHWm*I)*=0QcKU;<>lSEt9xOiuP)3s`cY8iO|K3 z>Lf^ta4Y(|+YEoQdQBwy?F65MR+jql=so@)7SOtj0yR}>A_PqW>aGU*kiZ~>M5?&M z6^@pUM>%K|gg=NEQF)FF}UgmZdYSyVU4*|z_!C=#z_Ji-szR#s5(-~mOo zr2i)@PlhaNxJJmu$6^bAjl^Fsdo2;8!dPR9@<4s0nZBc3X4H<(a(|5B5MTkx&hbTL zduWPk`p|#TVDO)n+Y}+8K=NxU=f35Y!PSuYd6xb=!Z*b4$seIUx3PvVjzMiV(=Dqq zpD%Ha`?yrIbrOxa6zl2TbDsRbS0-V-{#_i-@#l}sz5J1lM{c>6?{b-6=7R8sr`4ll zQ?x0rEe@8pW^Z4H=W#D&ANS{SKeWK_C|O19M#k3s`e`^|F5k6vdksdjZg*#e7_g?p z`Cr(g=u?h zMl|?YQSk&`XV8Wl~j$^zd+-98kK0!mG*m$YY?=Bg?GoA}18=zHX z8{mKIiDu|e%QPsx1vI=5P{Fs*59u=97G#y)uDj0b`Tj1OC}Z z`xSCt>)n%j%l-Y78{F{o{e91)Ir34iZ50R>_PggS1>v^A?r3tnm7Z8;fZmr#CbPb* ze(Oa*R9vHx7Ij-4ot$&MPz*}IpurKp>{MZeU7{+#FOK~S9Huoc$vl^XAJv*$*hCI~ ziWV48l?Nzs@Ae?r*dY_~Lh{!;KoG~7V^;}AbM3DSKUQGy3KSmve0&R40sA;KHt6tI z)arosWPu4>q4l;G_D#;to*e-h+fFiHk$gbFp3x4NFZXZsW(cELpqD-9i-VPn2~Yf1 z7mZx1&0>oeY|*LpbZPec@*qhefYcnd>;0 z4K-6211NZelh78#knWhROWN!%*XV|D1fJ^rqmXRp`g7CucyWhCog;XIbEhHWCq~x8 zH5o+f5RII_`P;WOz`TPz;egY`|Dvj;5Cig+t?m+PV|^a>k3y zl7Jb9Dt0D;R4=8yFI@SQ)tn-z^pCh;pT|3hm?F!9zG%RB@V5Bma*G!jvyvtxPtXkp zJCGXs6GEXj<2ln#5TCMZPSNR#Cj2Z+7PU%&9Ch}Sc9-5!0^uHh9B;>wSM7qXRv(t$ zchuK78Q}+ymFU28*4IbUWl1Wp}bg#7r{d!wX9i4`wlIer= zuNoms>MxO5`antCVXF?Pio|Vyk4Dlq8E8-~mC#*&FeqzYwj2EWD=Ho0pnJDxsRjC} zzwPS<|EHTrJD~zl6FO}Z?(!LdB?jmI=@K8kn2y{9Yq?(wPlGo|r;YU4G~Gycbr5u+ zX$Ii-0{oH>SSbRAD&rLy{}nl}$Ud*Uu%jG=sfzmbHb-LTB+ti~aeBn>_H- zJh9-i#af*0$Omov;|v0Rmfh(JMSI_7q4s+MKTn4Lj8&FDW@(Z(0Kcnr(6^ze<}AS? zd+w|q+n7`{l3FL}yLm$4addS`MYukXL+g#Bg4l71DCqUYxy45&k<+Vl#B#*!M?vWJ z+=i-Qlj}f@8mQLnx*pj3J%VzbO{`GtAbY$-nfF!?5Aan+CSk3>%xU7mcY_3?(K^Wz za+9nJtX+j{SGitA(~(Zto5%6v?-SQ@lqz1&C7egVC*!YbXPN?Um-(Lp!9H(KU0 zqoJVfgN(bL#G&(1&g-Z*{b_ zwW?n?9hHdDbE}wYM2%G_KI-@`1pSgf)hXxO0;&!g^^`_Lq;!(Ec-mXlSb97g;!@Nu zHyj*1&00EEN=y_5ff3V5nS4$Q2jL~TvqzEXXY6$|%Ug`TjkBbS$%r~{me-$m?rz)d=@>RDU%Rn$7(pVLcR3X|6erx@{OzA) z)pO9kFQSy?(L5ZyQ@Z^ks2J|Wnc(xQ@oZ2763%dq{1EkU_=#y!tKCd#>=hS|b_ESv z6$V-MJ@h$uDK8S)!<-zvBGjnKJ43WIjRMY`ApKabUi8ttsO8e8ppoD6tU@a!c=!|M z7}wxw5C8P}^RS>G0&>{{>~s3XgQ#60{JKO#bec1t=z4Fa_pSZQjS-MVn(#m6Jbvie z>$u2J_Qrt80@U!Ium0%r466)38+2x9sk8FG_((V|&lN3b+^b`!^S$QVp_&9Cek5A! zcf-=fBh8)|SZ&ouE6eC*@FH?P#-3%Hrs|HcyjgEVDVuYfm^LH+!i&HvyIE=Rk?|X` zI0lgw;J!JYJ2W^re-tgfjhPxM+t7<=tfT z>bhvy-SV>=H;3l4o-Y=kDNsPL^4nCuWL0lv%r%*apFO!BSwoV8b@s%eP7XN-RX+ zf@j+Ho1m3*GtWFrWyo3|h|rZ>6{q)7`6~bBaaXlSTEbRtOcrKr5K_Y)N)7sM;~Zeg z^o(e(v@p|cAW$s_c=s-WB4{zWhQ$#)kL3Aqp={v63ql*$Czo$$I}1MP4C?df!JG6!#0GQj6MENX6_oX_-;YL>W1={3Yh0c9`&fS6Mgl`9a3jlVKQ$vf=B#w>{DOy09t4K2N*gen)DPG{Zd zl?UKv?${RtFYyA+fThpcvUzmhHu-K%Y(#@>);C2{+P1+d3VLzeUv88Hy>x1o$M(pjCJn zi!stv=;!lncwqj;!obML2xg3HeP5=}Xg^czVF2#Xt68xkGbP|(%X<^3)nC0Z$E<;{ zyT~Or?Kdb_`Q=)xiuM*Sq_UQ#D&AiT>2^W;c&)t~SPpb@BCx(C@AGZ3pU2g!biUdP2R(Y}hqZVeCuxW|zD>w4{b~gS&Z^ue&?9?LS2Mvgr z?Mv8l4E1SZt}JmthVO2io^f>5o=ew{x?$Zo@yP=9tae^b4Zou|$oMSzn4dSQM}cDB z(6^_~LBGN5>?;AFz~o1FI6gjDYBHPP)ok(H*ITKzNfKPdD;pSN zKerv*{}bye$8jHZET2~R=429+c;DUCkrF{e7JcilVf*R!L)ynu9PO%)TV8%S@S0Bb zRun)wo+NzROVB7rf{yhkmBsE3wQ4y%?g4Hq?E0U|Pj23xy0ZT~VjHl1W)&_PUHRiV zWDMu~qowKwo&JN?9$H)N0oT9~KQD?YDX}qzyZIe= z*KX_ejNL(Tz&RxkHR$}QC34vNuxV9CL8?<-Gi|-6=j}v4S5HyjoUL7#z;dBh1Ra+j z`p{vW$zxTP7a>npJZKFRt0gQ>X_C9c1r{o^6$WkErBW%8kMO^58*^we<~6~Frn&ZC zcE&hja8quAM`M4^wntc&62N!oD!~FJi80J#iM!@W{Ya?j!>`$bDWAI%_7GpU9qXjU7Z2~$gG*#UjoQ3K;c&7vO;eJ<0h`}Co{RO2Z!i#r<(c_icV z^kC;T?%R)OL+2)?pO8q>qxe94m8N8{Au0UzciPjSFEJ^|3_ic9L!+e%v>s#y>_hFp zkJOm_@h_m!aXZD5x?+$;>~(e-)|jacaeWZ=x_#1f5Oz#xZPiOa8%= zUr(Da3m{rLIyksm`KN}8(j}PTudW!`#7kG8$1|z1v^Xv)r$C!0B_H)1J-1AI{?XP3 zqi$gnH<4|1Ja)G;|Exoy%dWV@>u9N0aAZEYFPaT$jL-BMZ%|GRrIGob5KSxR+|t7B zFfm}&B(L@;xAAYcfX!#-yUs%XK)yMphd)VoADkDP)?yF9aJM|QI%z_eLj!A0ZO!Ac2U`1v5r~l)pJXB@%8Yoyf3pa9Hjlv@IXn%vY^GL?aTehY4@vC`7gV)McV z2L^@0@Lw6l42hDiv;=E>^nTDXyCz>_?B3hh092YOt9pf`S9cMk?EytR;(9lXgro~J zneKLQ#yl924)Xez8_hhzl+)?1C^ZxYL7kPL4^=34mYP1IGkq|(CW(CsQveDd;^oE2 z(b$?)q4rW|PlV#3mj`j-WcS-F&0LV? zsMa%I!Qmv!9vlDB23rVL!0h0z>$Y%?QV{)%lH6QNr-j=ZFk;^Q7b!(UE0QVf-K5@1 z3zw|p!LmtXEXs;7er69vD(TA_+FQGtiUdD62z;3aHSxWyW50lyT_8l~drk%lGYqt~ zFQ(|xDaNP0`$EQ-8SGX2?{-DSleJuNYEHhmX@s=9>`q=>VL_&wK|-^v(bnfjRvBj_ z0A|r*ev(vrEOYSF41F+PXMWqve*q+IcM<0w%YE{4^ ztzpG`>s(aGo#McMtdpK6qsrn;u^}>^hP{SVDf+=sadya=6`EbreYi1B&%uqb41rva z=+J^(r((bt*FcY#*I0@@*M#x%I-FuSy=rEw`L1v?MZ$2iSs`DRpiLpCY zP`}*}9$g#vgZZF5?{xHF^#1mOoVn@#PDN$I}z z4M==vz*h{^j9JE}v9o!0_Y;x)aDZ2NT=B!O7qppCoCCT|{wDzKVxauryrl9#AA9?V zBnp!Dd%U@fFNkA6CAh#iHh48NXA+Odf?h0`zgYUou{UwNQJW!i@l1tpQ+;ktA}e@U{|@K1fx#IHO@k4pQM zs98F$5g4$9z%N>?ai2(ED(B4>%E2aLdVCH6A*ik)Av}Px81@{wKj&g^mDx~(UJp#q zV*LlFBIYV|T`=9bXpuCHfCO;>ix~ZWS;K5qzaml5n3!?b4dE|tk6ByT?Yq4igvRgt z&Eihe&otvK7n2k!21Rk?w=E=Y&Vd*M$*8t(-+z8DJs}^s7|BF2spfQ9GVR=9 z>mN%J0aGn7{u3{gczQ6{z~Nspu*|u2q1x2u)}9ViIN!oB4m)7*Y7-5eY+H<^G`kDx zBw`JCFo!A?fMrSvoHeZOc zEl=FXRW;_+8y71qYy4d1Q!;c(;P}oWqCWCTDo$*^T!ynXz{QSi8TR{xuPqN05nRf? zxpYx2XEVj_IwC`2v(PLzWu3V6!tx#i1NvauYiL`gi2wBW@0&OPA|tF-c-53#8W2uP zvd^3d{>cpC0Jr;N&GyK?ZCs}gf$RMuQFctcwb+r$;f{bDHST7O6!P+Y2&nwO5 zrVr0xvi|^zi3nZT<87d0c#c_&YZD$t)vMd4BSbcx*(Zlp5^S!3<3GDq_dC4Oo{8p&(2^ zf=uI+K0E(pkQeiVLBio2zkbckOuy3)S{t3FP@L$#-;4*vv;JUnbYnsA9J#@>^R97! zEuVbyMXtY{U9xGLCsx;ajnUp+>Ft! zHB(z@wYuk2R*|0Dk{$^Bu%L|Po5XqH@p^T`s;0-i4B2(q%~z{Qu(mrM-0~PKX_3QK znw$u!_EF>jyv3*MdLaNU=vTrfTJY|j^lXaveg-8kh$)U#Zq+>)>+OhrSDOl(#3ki| zM3J#f@b+P`K($rmt{Ih-(F`CP&nb%M8c;{cKZ5YD(|lzcF^O&UT4C{{=~`8?DpC(W)4Y8Cqd+;H#>*8xx?tvW_-)gkEE|fg zz4Ph(g5s%;eTkvRr9GLB`RNDwpLLAVPY(>qHS9%(_E@Bk@9(rOC}zuv-BhVvPUC&R z*bRMCM=N@*LTzUKQI4(HHI2B@FX1p#!jYh2n%UV#p%eir)l%^PDhbK?{vEZ;bo&!9 zDC!AQih4sFz63c5hgRNGW$0#RRL3L1Kbx=t5J z86s!Cw6&yo(W@P1tD#ssL?7UZZ8%_KJ+CI3js3->9l4NDIYa@YfpE?t}f=nIvI2snKYDOlkE;H9Pixd}+jbr6QqPk?s{K;}x?g(D6<6H9V(VlKahn&;KB8|P%WTP?Yh$Nw*0yKk?kGRw0xA{ep-uZ6N zOOPI)pBQJ-i9!>v>okpg!VBC^?!siJTzz`%t>$Yi=4g@N+9ie%S17{)%C4{*I{Slf z+B$OTCi9aWi*@XWPIIYHm-yx>CTk5(!@Dexdf(%-wKAGCS{N^kI_|UMJ2MfgNWmX- z9(HC*pGX~b29`ytN#SqLmK0dSx3s|0i{?}pZ1?x2IBo|*FBs)0{)^k%D?B)1eaY;+ zj)$Hj0e8U@52tT$Tb5K2K0|c+r8$~a`Te5>IJIl4+|PZD(EZUi+(@hP%={azE_Cci z=m78q4MK7lQbv-onV4-^x3{AipGU;D=$*#Ck>Si1w(&~4MbXL;RhJ1S*;^YG;?Z|! z>ueCdl3(y0Jzr*t=P6kdA}2Q8bfqN%mkld&mf_KgO3xm#WU`hp8k(|exzyyRgClnZ zZHlIpteRbwIKlmm3LD$)?$V%NB4O?`_n_7P3oa6vLs+QSsRC|FN-Ub6z~;t&?K{Yl z2*2GB{=s_gM|s9r68_U~P*(5d)bjMlin~#?G7Y&}P>VVaqGJ_UhbT6}ULyI#yZ%p;`BJ1T+Ofg^IXYW&rDWD#n*#a zcSaiL-fO3B3rc3!d3&D2JIDB-3;cX2dhp269C2w&zPv3BK)L?&E8NI8(dly7AB!U^su4cb?!<&=BIs~7h`aA7iyuwiWC zN=B8cs7T3EUrF<@?i22Ona@pQUK)L2^k1=UgMsgkr=uF z9>$qNpz2xznK{+S`z*mHtJ~ut^s~4+yl+C|1T7h2zV$W;+6UwZ&6F8)tE|=1=|VS! z-5%S?{E7UbLU#KKJ`^n-Ec3mp@Es=r;ePDKNXX)Hu5_*IL+;&4^zU&-q(u6WW~1Yo zgg)=GC)}9n+F{xitE6g|eM;AgZg(7>UFu+AyXG&%OkiM=qE+xM1pWP$1_@MlCEwLa zF*WiHl;S(;5uA&(#z56_@M6Y4w$D+Wwa?)FtbWXgm1qSf_2|Vw`VnifPXnqKpAVQ?uE28o>s zNyrrmse;?IdSSnwO{ShP001_Ik7Zu|5{<+BMbGwesoO3taHY6FTXJ+zsdkui1~x)I zsUY5;G{Ize6YbCt3e6teWx;?OKV^3iWa`r&q!{t9aOs>d@pmK(D2+zobpHE)z)N7< z!Q-6vc{Jd4jGxyRt5MR#2WQ+;TC)_^)!}qN?g}6LYfBeLz1ZLm`4v@J&t$I)89k;( z)+RsJlVIcsmg6JH$Yk=KuUxJ?y9xXn57s`Km`8ZvCg3tQEauqt=_WA&Q=y*&H+O0L zCHGyMOi^00k&>c(iO^EkEOzem;g}pd-F59lfgJ2wQG`F#v2$L?K)lVvM!y^>bHmsZ ziuPYDt0`r(zbbRLdFTUrcUYSQ30bO1pJe-R&h6$b#iewCkhDlOhpv=-3AP*EuJ*Dp z%2)2oo3)ccX^=>HVY}#}_6iIiPh6mmr`U*uma)3&$YVR8M;tb(3D|bDCahXu5!aDz zk+ET^LUTIY=r~Oh$*!WW`n;pU)|O~QFNiOe|P=>3(>AyW^(yy+#)v1Z~Lj!!3_H2}3*r zwi}lnkFW}1pj&*YT5LRqd!4@+vdRNT?8TUIY~q4fKTOL9q2AILnZFHwASl4{kcs?8 zMUl~}5FRr9bQjOPw{0p$e)xKhLlb!^|*@qN`Y2{IeBcw%amV(LMc8HFT`DI3!X zv$h}8B>rBJOYwcHEYxQ6Q)XZb2D+*Gone99adAl*Vv=WCdFLqRGm6?g%elNOJl7!l zUzr(7%1SYo3hPv)iL~(#2SjKv?5-3cJnGg*84qomB?uFtBu-syrt~Q-Xk|2o@RC_* zo&)X_ZI5&SZd{(XFW{x*yI6dma#G9ow|@Ni!CDyZTL4qQ*ZLrycvMFA7Y6=QvGe$+ z>o#!GJ!MVB9&!>+)U2+V6TH~0m}2_UaVLSm4|kMf-6#BABHgiVqmPK=GS@-2mPS|x z_bAX(QygVavPzJSQnmm5&P)7uSz#x^2ew>$Zq>Qle-N+iyN{jg>UNmJ!kS?6);im- z-6Jx?HB$nLuuUwR(-uk~_Zdlg;%6x|OkZi}z~QW(YTxk4b>A#iDOYv{2Jlna1=^Rg zRky)zc!b!0Q*)Qb>gpnZCzvWzr`k-c<-~`^S(B;EtDOW6r3+D zl7C-By zT2fG9m>B7hziIrRK+8w*0V7o8MSP;YTm?4&@5L9%=N>s@hKg**^X1aZo8fh@>LWYaf4ESbmtu%Udu$&`6DN9WlOTW9B~m(ZcC`oa&op zeR1*e2IR(OCA4MO#^N#oaIhOjQ5y)S>!h|{iJ+*rZTn&)nPN*Fe()mF1reuFj@P$f zxT)vn3M+7fb)0KIys%-qSZzo!gn#Y~2>5xLBU*cFzj?sgY1FpO7t~w;jGV$voE6h} zafNW5z7_HzI(B9N)(c^NyR*S#v~XU9Xp{Fq%)xI>uYxqCTyB+_+C`3je57E{883D8 zYic81@IwwD<0c#KnWp4oimpj-`Tg*iTAtT?57N?A;OP_F^LeLnPBVzc_SJCN4iBi>{5e+h#m6^ zY`=>YukhpO>g_Acv#_zjJH~j$!!5KjrkG02^URqxr9#{&ZRC*&L;TK$)hhFpqTOnu zsek<%aYNc>hw_;X`Cd8e`|)w8aNFv7<&V-BDlet7P84WsafcFqFW~fRx`Ety9+^A! zFl`S&Gl@FRe*%Vj<49?IpBeg0evwxWrl^xAm55AoG!|-!{KEImV$Pa5hq2oUWM)3mz=G`2B zdNltAdK`bQG^XXOt$PJE&K8-HU4?A&XCe@2G#mRtmv z_*j^NP$c89*N*t-Ak%{gHcHicHSLLXort>#8V*- z!6E(}Md^*mkNat3&*^xxnya$rP8+clqZ-iz0@R$fX}B>SRn$Yov6{@Rs3dr5BH zKSD?YS_H@5ZV&guGzj{5`+DMsK+qz5n2z3alU$WL$OoXb1h3wJouvHEj6d3gg}wu` ze`K#N0P(d8yk?~Y7z+VMcJR}!$vmH!;fgHO+_2w%Ys5*{A3#ax)w`veBfqQDeXDhV z>bLwg;}qz!H_GtyN5a+V9u4I1IJIWJ9XTT`I_1KVeY`2}75p@*_E}SU$NHxScX#I- zkqKg`^avL~a}B&kLgHv7GW3G?Kje-2-iG)&y-A-MVCo2fr6)hh681sl*iF<$5=muK zb(2DzuLd*<&KG}923=hRwRLSnoNfO>Mf4CI5_|niw{XCixk1icuuFCLomm)nUdg(Z7q}X`v>V5zUu56lye?v`c0#&V zUkrcq(kRVnL~5)aP9+y$MLS!ACH>QumkyZw+hHo~lzJ~U1zZqDBED?N9sqyddK>&A z?rckJb7a<>*5mq|HG#g-;*58LI#6^c?D>!);YN$)OG1N!-D2?j9*&w_IL@J-L`(|{}Gg)tyCD~z=AHXf`8aV!J zwAlmj_ql~mpiWj3cb>f*?`cWoxja?}2j&G_7F@A%2a7q)YmHaatOZ;VTmRNJ+=3bb zgMpZC#?u9+nw*PG*jZi;3mUyh1I(r=MMAhha$-=p$lZTG+k^cDmZQ+kAr`ccC)|%J zu-C{7xXSil2grZ-Qt{49bcOM(g|?lb!%qPD!`KT^J0KU9nr^I>jjj;`qdo4MemvR8 zmSZF<1aHOT5!i$W$aPNpX~#kLK#hieq>%fPDM@qp!f{gXIvZR zeDp+sW!R-wgkJU}8fc4c@bbVWN{1QjHq3g>1;2#MrC763>?lKy_7)0dS~k?&eU=R> z5p%g@3h5M&f3$#BA;my3&TNrzA~)$o!}!j`^Uno* zQ9QNh_XRvWU#TpCXt;WC1~rs|M0!x+ zhzLcDIT=77R=R2gz02Il(qfQ%N5&w>nJ&@SVBI-D-{m&i73$+_{P|Vp#kfRu6ZmLw z4agm1LS1mGrtw%-LHtiOx6_M06 z0K^u8;&#+It)jb?wm&{^rwqqVf&3<*{~Eq}(f&L-}7 z=PodA$D3HE4vp!4fFO>|w)J@idOE(B1h%Dre{6C<^ktK#f0d0l>iXb1-g@26Iz>B0 zX4#ObF_ErbE*TuDHfdcX?N`)bnqB9mp}lW+a1fZxgnO&bB941v$S?za5hQq7T@V2$ zd;POD<9(=Hd;i<`Yz-z(Kz`*O^i&R+VN0|BRu3>*R3H0#<$4a7C1McT zx71f(2m;hp9w1~RFhns5H4i7^*D zOSi^PjemZ!oBWQtf|>K2y8?K^6>sZt8xYOD&|+~F{_W{A^+BRxJSo=rdm<;Yq?Bl$t%b`cHw|rYrC^Z0gXsY%^fvs?*K1NL5qU*v_m1 ze*Os)e>iHe{X5_tO4!YEy%WCvn&s3!-?fwoKnA-LH3Prd*)EzY14zcj%>lWx;9DoC z_r>*_uE|QhZ3(Vt9+zcHsP%1!KxwOO#o9p*#tyGq_CEE6x;bIYHMp7PPz_KZ}R{6e?#LJZg_j%;hSVLcaKYAx*`+d%d;W=1na;6 ztQcI;oL5(_#Tb?11hSP~l53yw0-gKa_NO9eETvu$$`NLKDiF2*>smxnKu<}M*%EBW z`$7co3EfW)T`-lTJVjKscpqHhCsUBBTUXB-G}N-sLcv(-k#4VtGAt2JHr_9uHML8{ zS_k|{D-If$Zfc1KCdpUm>p}t*qi?=9s2;fqkA@06E->2L=R0fbyi2+POk>24PM$43 zKH&m8MMd%lK;YNiK6wCp2R81|Miz=56*Kj;DCKq?3UoO9h}WlZCTM0xWnh+w(@h&> zq0#+YXb|iu>v`7d>bs+Q*BX^%M$rIkuA?2&x!Or3)|x<0lYdGF1LYZmZrl0Lr!4J# zGsf8>9*z=?F87k2I$Ia~sTuFP;C(L9Z8K7zl9z>6S@rsk$)lJI(dT%ziJz>|;p0AD zGgc(eO&ScGqzhz8%RnTgMym$JkMf9#Zi*+ITn%(dGBN0Zz{EWMyqgy!$nPZ{aK=Z^ z6EB~HRtwx!0joI`>ZDdieIuq z7h^D_eWzB>(>&|A(|}*ZS}?olbEKBGYI02YHW|A&3VVaBa!@zuz$0QDPufeEJv1Tk z8)a=^Bim1agGw-qB4P+UZ;mOO*46WnYUTj6HZ{N8rP8J*>$BX>E=m#^CpGdrjfT8 zpPb{Pyu?`=yr^#DFg#ufaER!4y`jJ^crqDThioS>YS^5MlW}G6jR3fKX5h|Fb{`&$ z;cIB5!rovaf-5v=Ew`BN@a9I|oEuxWdG*FczxLFztdFbQQrU`sm06vyL~;k-pq>2D zmHkQp{esiYCcKIwv<-ZDac8pKvUXVUb0irh>g%WSbhJDHHgDXdeQx228%%@Sw_-QW z-%|*EPbG^BeULs#={$k8uRv(OybFFm(@9a_RKg{)0-~+<uEp$kL9V7ZO8p>FQ5s(rf3%;&O)9 zI-UQ8bp7XGV6vKFe!;JL0~$z`=zK^FlXc=K?AS5zcoy02>WGx$6Z0Jhrd2Z<$Ck;f z#7OyD-{yTbYr`C$6|h|dP!Vq zXt|Q4?HQJ^%34H>wijU;w)?Dh{3W#~uXnE3{c#=;jbkn($7jNcY+XVTmgwKL;+)Zw z99oeVRly|KGL$G(he&GJN}%|7uB@=_bvAT{^gUNw_Ij8XNbWc_EGSnv^aY5vnD)^; z^+~Pt%Huqd3f~{0fU6HJ_)Lgko9?G(XOlevYfoJ@tS&@T9!q={>{X`_hG+a!sQ%u3 z>#C5FzpM&AGO}NhlK8whIXgTIQHgB^(O*vPLtKTu%r;sEG*oqo<3-Iu10Zj0A}RJ! z;B zcAA^F>q6G7L~7ftpAe%;?u_Glq7~nULqKd~o|SQxig^fDp^uY1W|xe33Gom=5tlij zw~%C%JlnLR7Jod1IXl?>_z@%HMC2;j$b+T2G_UoAPtf%P}^QH8DFs zy|1aePo4f{F$9StdxS49wI~&sK}V0H)%=kv2c5-*);CPscSO(Z zY{Uug-UQ>%qI_Yq51lhp$~9zC^AkqC@xfL~Y6vJmXmJyCKJMh2TP5z}Tk{ zSbYQ6Mp>NCWnZvtLtFtmp7rLMgt-&)Z|h3j6KI_I9%51DH(`%8{=LMy2aFwe_=GVO z^7yA@>}-E&bz&!?#44~OlpCjJF=L&c+hRNMYjC$RCDu;wlx?KqW#dS(?Z@>{3-iRR zf1&p=h;l^|lR8}nX2|Q)zdSrQ-Ug4v*wE6LhFj1xMB7&Mu>RyPnyQ{`YE@%DG&*~j zyvA;mS^6G2_6dpMVs=dv^?!zebS=w>Oy|Fl0&RjhVah}rJC0Hys4O%rm7>^CbI^rl z)BPl>Qa2}b7M%b$CTzD*!G)zscSX2Amao!S6FW0i$UXzQ+MwT3RV!Es~;eWd)k&%$~d9XC0Gw~4n+ z@!s#a`}%QYbFpw1Xr5vIntqd0Ky=&BZPj$+0cns-D7b?74Erc=!~{Kk3wnLy|T zKPQLX)ij>vy~i0@36$yJJbe2N8TYP@;U{_DRt=d?aRK!Bn03`6n{P>HD~@^;W35fL zCqRAWzr!wo=%A(4r$);we9u%w3Z^hNjS&0NDvrBclrBpg=tHZct3s|4FyjnSB-sPUtxl|=e zfQ5qU#o`XdC3?LvlL~Q_4yd6q)XvCsgYXd4+N{_Y75s&6YGmB+GYDo_mqS=vX|Iq@FI6jO895qd!9@&k- zcUDZXN8QlA`|MD4Csk!kzx11N&JEUKRK?b=i z1Rc9(Rxpdy?~UX6b9MM}pQZU@cLWC}9l?OYL_7K_$O-t2K|IlE1{(x<>EefHcx1j|1vYpXvo({L ziI>ET5vw@q##@tk;8D9t2`T|8d4rf?+1?Qzk>NMA`k^Ijx(%(vc?J(P8tJ!_CWpN} z>jd`&@`PAEdJnU*Fpa1Q$$l%}BuX&?Cr`hc%_V0WI(N3YKb_k`Zqw?DQ}Cy^|No=~ z2tV_5xDFxNxhrGT^1E30&GXWnbnj=zPj0dXW0on7cn~!9*92trXd%jtwN=b5#2<}& z?aSSBL3onZRe5*c&TgQth}0#`RO?rXC*|U9Y;%Dat2DhTMs*Zx|kbCCRgMmT`@POyWIA5M<}?7E1n=&xW3fHrsa6*rJw ze#b}*KXq6w6z$secu2bBkz~Z&8mMh->ENm@i88XmSv}7KagfzwB^zaa7Kzfx|0)tC znJ_z1-7K2Bbp>hwSctef(SRx?!8BHu#@FmxrtHN-EVM=D-=B$85%XXfZwrBn#DmYi z6>b|oY+RL)8B6%HDE?G@Q3XlN2P)!1KoaKf+Wfm7W=GPNoBMD{0}n(lA=m9n#6>%c zkL&!K7f4(ggDpXB`oSspO~EEmwei@ApQr}!pjRvzcmbF&0sh_|&BPr^`T|Y0* z;X8-T+Sz~g3eIQh`V)cJEA0No^y~mJgM0TY0WQN?HhNlAP0M`3cG;p^Wu@l5M>x92 zOTlh*GTXQ;JGw^EOO-qLvL`q`Ioc*=OUt$4_7yLvr}+8o4~Q<_TReZJZM|Lg+|0&y zTXV=xiN1at8W6ram1#puP6K+Uu$1?Ue9B5CJMP`(#W0&}*Mq8xM5HWTHhF#w>EPkY zsQ9fK<;K^>DR=70a_WDrv%{sEgh28dm!1<(1T*0`yr8tM9g;CN>1P+ zN3kxPrr$_&5LoA6`7c8yEP$sw)Mn2VF!{6>ea6buR%(X;N41D zeSo9NKOM-^-qmM%EO4Z)Ot9?|z`UdrqrB1NuXNxRqPB|jP807Cx;jX+LMu1)Pe9jS z@^Zmny(ENr#biac**YPdzUK->5S1AA{kJyccfV|xB39C!4vVqiEtl`=feal!MxO*# zZWcQItWRYAN@kb78L>>WXQw#&?+8T7C?jg191@D_s}ljC?9k5ezA6 zS9~1f-0_O2g0li=w2i64`>R z8b2DTc%ewI-cZlW@jIo-J3C{8r?Qpx9)zMeRl#|huGj_Djh8nD$>P*{F~SCV(IsY{ z&+bG(1)iX(ctyu?X% zaVNCZdAYw97BI`Qo;}*^c>JAP9ndxi66WOQTP9)i?mMLF*WI?0P~k^UXc{+)GCZoR z)3QSZTt$WtHlKy;!_Y%ih2Fll_$upflmBM}-DOJIbcxA$V?}FDY(ImL^{!h8&;#Q5 z^5Kc`e)`xUV|44_&Bkw!Ksp?j6_eZ{kIN^$LW-%0Za}tD)aqTYOQ<;|9SH?4i^RL0 zsIR}IZ)U7Kp2Yb@+%<4)5*IhzNIrV3f^NC|KE`B(7mR6PS?$~O#3o$K0gqK?>eUKV z(9|K9@7@L>tQ}3Var2M2|6ePsBULk_FPCh;+V9Za_`Rm9Sx2;3F+6fWu*fp|y`;8w zqE9Vdv(5C(KFpPYPrK|&^w;O*3O)Q_4$fr0!YHzFO^`{+h6@CPx#k>$xj!&-AaJr$ zvWsb=c8T?*n%~s2@7^U!CtOHM=Si2eyqclq;3EOmHS79*Iv~OgQb*(x_Q4s`)WNe| zHVxkD6_$c?&G^R&CB?y@Q)&3wBQ1`54{F4^(o)Qed_SY zM&zdKruqxwkF9p|ocRMf>h(vGSJ`;>kQQP@eVHiInAR2VY9vZb148VeI{F(fk~?qo zA-klLBWySBX+*mW?2ssMqDqrTB$5HR5e3vX2ZXgUewfbF7muk8&s9}@d7L$SfBS09 z>9MdfKV5`j;}&c7g-eQ&$Zz&3!@@q*8YZ`l?h3nQy0?m!bU1zyf*}UQ`?JgIf+YSG ziPsgG4~u2a+QDBakpC=uN;Fx^L1bRMIpsX4)9{%b5$>ER3(ttowdt1ziPfpVl|3|G zeokcdV&E@akyEue-tm{~%q!k|Jj-N&4`Hp$GaW>deCVU;6iF+%l$BhU zcy2>1W(|cD8GkB4*(fAShz&2BDHWBC_5Lb4FW3RTM zd-eaTPa?*pZ6F;#Czs^g)_d8lXGKqn`0mCN4r5Zojv112U_R!Vtl?SDL5IpS*ZYyp z`h}d=bkTCTt1?3z2q!P2$i93LaxL^}PgOb#qZhM)sK8=KZ4FRX{ccRM11H}tMudA+ zN}Y=0OML>EWpEguQ{HuZmbGFAYZhX$uIe9iOfD5K&Z)EJ{l5;XQ0Tno>t2b&iVEKMw>c`U>x4;iDBx$ppFJXvOjwMQ-(bWl zXHI9zM~^QZ(9^zscTTQ4x#1YVtZ=*|DZ|`4JZ0&cxH3u~hj4`pMA7T za4Z5R*ZSX~h`>AWxr3S&1O7RFqnCzVa$tt_Ip2R7XUj zSwnfAy?d*a@Dx$5^2%9NRgDVF$?uKX;d|>}=|7mhb`Wj_W5S_iXf;l($MRuk@@gy#ZFer_wyVG8+V8*c7DBV znzN!zpC$Iq*nPD%F!tjTyHLoZz}&8)U?8PKXQK*%7M^wYU&Se~jnnx84|nmz#JS+R z;XT1K(w2D)I9fAv&q3*e{UxT;WC@dGKEfj*ydvJs8F#{Zs&Ujs$Q<@ zAC8;b!E+pOlc7oSV?}GkFuC2pL7#9O+v)O5mO99zq?&EUu#Me8Z=mUFy--7KDt-5?t!*Wq-j{GC2vp4Bgd+Udygv4coFuR#uS?}9LU>;Qq98NE|l5JOb zMWh2nhUw;nPd;|fv@6~aH<{Qy9OH`t8bhcy;y#ALdAK%D@e0{DP^g#+p@47U6h_y4HqpR@3JL286d=EFnsa=LQ}_4ob*WDqzX)uChRBa{KUPg zLEHvMn1pn_&%!6H#d$E@W?U{Vck|{G&j=w@^xedGhzcn`FKLuMN(O}aYZ%L;h8e31 zQ+|Um``kkNu=(Cves+xZlE9z~*U_>m2GA&r{^J7!xEd;?o<8apt7VhHax80$Jz5ES zd%*>FzqTF7x~d#mGL53Yf!@jEw7WF15o%Z<-N{ppqL0zmTm{k!XK-63i`4W-F^Zm6_JdiZDb;px zdVNX)Q{XBnpAg*t;|u~2BOXO)rRGwk*YQ(22O~UVvgWN*w6_~(hIgm3X*t;3iM*pg z&WtIkUL2BFAV;8w`WZye=UG6YCZ;Yq?bBc34hLQ&6q5pX%m4$3d(Fq3vOgj zZbkI`qXmpJ*L^`!l^Pmz?nJ4evLnS|)p-Y(vaYXeJ$Hy?owd>2cer9+>?Z*`D3L1a zp|`s#vKz3b`qpU_%=QfuUS+E#3M!9sj+3%Q4#y4Jvz|dISF4XPQFDC*WXz996p*7u zSrT=S<$u*_h{hs$)jL*j2km(C%HlX_9O*|vcf|1(uU-oko|9bt7oca#F zI!Y#GW{U5MN5I&iV0qm+Tg4>fE}q+PcvvaqcUu}3mTc7(Kd>YiJD~mUn_3Aq%jIKz zn0sG|ej1n;SFBC&+vCcE=wXhPi+x4*XidRYKkNqslLKEMlPH&BFU-8O2|~7kYzyR4;cqwlXo~srmk71J()>N4yt@V!4`0220-iiu48V|17NtqDgH^O z{H)wEvkRHHg0l)F?GuvaPFZ)06hT?$^h;kv^wD7w14r^3JwBek&4i7_>8e5>sZTB} z*^`$tBHZ2ZB%3EnhTC_|03t5?fxU{3U^FAhB4G%n9# z9z9_kry&Dx`it_KW03&gY8IciqiFu1LkJ}P_UetWlN7pPd~EUL)%_)$eHTu1Wb%y1 z`XFUJFxmJ$6A5iDt`nIcOb|z`?yTyTvqVaV%rAgB8kT5!Cn4`+=BwEp^2N50DMX(7 z;~Z6{+!)<;e|Ep8v0%P`AH)HjdjwK9(XW;lPT;wBv9-iE|GM)nYpAq+kHeiuv-}+5 zYDPnBLKuMw-*z_HI?E=DS8mEbi2F(OyCVI)m_>2p=oQ2?ljfvc>q*F*byDVAnos>g z7j4VN(&w1}`= z`O<78Cg6zpki=@@X`AE{_H85v#vg9%G{X3Zs)o+>Y;-4~jWU7&pg#M(O)3zg!b{I2 z|1#RqJ!qeG^U5cp{zzQtEyFi)Wd-Tb#jJ*nXw{krZh|ANpE8E?u;nCUK%?7+{WeLo zpS8#!X;@-DKJoO*f3|D@I}v|XG7&_ME18lx=0&QO?RF1_ZV7Ca3^zp2^cAVXRX97Z zT`JgC+!kD%XVHG)%X3CJDjVCdt+u8R@}(;2>f$`OUw|T~(Ek+B?hh~3$rFwEPY1v( zu3ekBI`Ztn;NL5Xu1;<7_8dBNDOS!g)LmaZo&sC<9s2z#UC@;kIPh=pO;1Bjp{$*r z`7hN6&uqofyijF!inACph`@vBNd%Y_xNUyJj&00MM4Zu6^|;iU+g@DU;ej@nu#hs8 zUDrXdK>8<8I%~d-jvZF!#>7%{DT3}ZRb~EO{Sg-FN!#{7>Ey@R!)Z`;fyB#qxwue$u}GI`b?k}YfD@i^dSQe7wL1rw!0KOUDhb|S^UmDTI z+L(GqEsk+(u@&lgD2*36){V7%n**VWhr5Z+o-*%K^Z2HZOpF(;-Zl4g#F|r>RvY%pH;ISiONpszX*i5+D=b{U3D{jWcuvJDNOFwqNw}fXvTq&K^MLdAc<}|{fxdL3zAKcXs`j-2`2<6f&oF+^^ z0Tm#b9ZgGb_G5}l_sO1q-5OYntz(Y5CV!PK)t?|^sT)vcB*pT4>-UYHTn)9C7Dgtr>tz$&4dVF1))%p@Zm!@ctHDvJtRX4}bV7ER0ikK)yq5(I-;4p z&*cW4J9wBHXQbsF&?u|M+7TuE9 zzbRHb^QOxx66KOoMLwoTG>j@8wDH0c$sm&`syAdRw{G)R^4>T9p&5cC4PYy7aS(sY zz=ZlA9X}fu2^z0Us60?<GbK-uC;5KO$_t_A+w-+zh`m;E?KQDqk|{5uhf&E`*`+( zAmnc0qcpk+S1#9EHT1FLr|Q)}^wHO-bF)@{b22Dp)Y`u~2ndNVUi1-17JCMvCR!ZDrbT!?FQ>(D=Z-k2@Xcza9!kE8i7icO z>kN~+sWg!PgaU7^2!67tL(JjdwZnJu5qs}55?k^nRVRr4{>c)McyJhBU782YewI;c zS)KCjl8A$a)L$2p`*^?lxVz>(m88t~CDLD)?}buaQP(YX?Lz-@lQ5e)5XVKJmNEs_}TLl zxE?0;t9y>BK(~P*w(yyG&gE=ExJL8dnFLYH z`Zmz%oMO%*z#R0@mI#%blUH`Ha;>T)GPi_4h307qs)Q7q24VZ>0xhBq#g8@Ms50;WEEV2K1 zW8uz{Df%dK%8g8X+P9*0yC8x2FIzJ{g>Ot8r8}wGwVaFOA=UJDE`hdMAmHzOmH#8-4p(l~zTiyy}O`uHke$9X;x5!Bpc5}tj zdX3dAU|7rV()^+nFkQc3eLqP)Yo$ArM@!opN~^N4yC-$Rj^F})@zM&l)UGAo^EXglI_PfLtP1nhHV!e|5SXSO{iRSKYr~5-g*@+|0t(2dm^o z-}IM5u%w*P_vn9n`dF?XWkO!*MHph9W_A8h`6KpMj$#<>Es9w}rMpct-<$7AmR-;@ z+pJ63Irg-hOFEjDP|mVwa*H7E;t7U1;S3p2nI^GF?VWXyNAd*wu6l0Av_u_w;r6Xn z{ul1vbF>u;Y*+v6?TLxB?819fH?b6VFU2WzDs(mqu(z?dzF?FF0~=s%BXUt z6S%m>W4p_}g{~juYi!BkY@7mdYc~l9O-gxuajy#0%~a3=WNdV%k0zNaTB@mz%k2DvTz6GI7WR5bJ!FBb%o=NLgQ5AYN=tS?KOrzsdV( zXesUIrzu#LkofM-nG<>g;bRsNSC+3i6!GHi@zdTFU8EX8f_jMiPicQR%J)|^yyTyT ziatTzcfHv!zD&k{cW{|Avm~9NLV1WPF7&`PdPuR)|6DiIf@`D?QD6Mf-tW9#w5tqEG zA0RY}Ic@p|`!x$68IFU7%FpiJpV~l3Z6=woaL&9m`$r4t;&;Bi&Up;GHU2e1{;%pL zt|PrHB|>Y%UnVHLb9P%it2?V_aDQ%TFSQ0OBpQFKRkWSN(@9Ce8Ly=?B9ZXw&U3D4 z6;D`4TF^<+a3%~1vy?~bzi&wx^qRl*F@#4_;_`+Qb<=~BB%ZKRZXh_yU-^w z!~`&$>w0=eSMSVMgZ=!<-oNjZdVGN~hH^SLx^s;Vk|jmE%e_4Ml=n#z0_}_C!BZv2 zKR#T;x#SWp#&}YP-lOalKKrP;lFQK0)S%^axuah-J~>Tqn`_CJN{&6Mg5?DC;*~{3 zhySm%_l|06TjO?BR1gG2MWjZQDpFK>3y4ZLROuknq<4@S5flUjY0`-(y%*^vG(l>p zp%Z#f=mZE!?sA{A_i_8(F}`uf{f_~fmG!Q<=6vh#VFEmt8doLJzz@~P51Z>`dn3*x zvTyA~6%5@Pnxq{imBI}{ip&t##|mt84`q9A_&vSgvKQBI<_G%|`-yUqL$F&R2{Q5hMzh0(q7^c z1$HI>WAdKfgGWC)p69tB zSe>i1bRs(Ou^XdaABw;+sDt1r{EN-tpFkgNJIbt~C-(7yvi$j%`yD2ro0iXx=mK&Q zExVfB@Pg`Xz~r5Qr+RSUtD(^K>B)`5t;{-)YXp@`aGg)$uABuOG#KKe56RuKACmj| zQ`az$GRjMcq;OWFhFc@%DYA=BHXQKW51gJa8fKJ-5kE-`;$X!`sh3j%7+Y5?(`j!Y*-dOSI*n?*5ZjjuOGM)p>IF6^7CFC() z6HK6)L+aLUPzM52(S5J)TZR4E7{P@Ry&q5G&7;wS+k*j$1_$2_CY%>Y-C33@S!diy z=Lr3pE8N4wkag(~3+8W#+t&X4LF5vCYG9Eob4AIm8!ill=N(2Ats5))S6$Sqs~`xm z9j`Y>DQ&AO`kwBIt_~Vo57~yCLza6+obOyY>{v35WeC~uXIyu@#h&<>yIuXu3HnaN zy(1~>a(1IE^)1zeYS3A^AattRUK;jGb7R6q@|h$VD+;AR#07Um-K^_l>$kO5i9^>? zgr5nK$vvxc1Iz<_pfC_;A1PI-y5t*9zwHoa0AYfm*m{$bV)u{|ih6aRoZpSI|3) zJTxkk(79XW-(sRE3S*OFU+J$Y`*K?TZT9drNU0UwR>!JZbHC!M!Z82Bquf^%mvc;> zG!z`UNL+vR>YR+B!Ky_@PayqDjE@d3rSkI1ljsjA3&6$|ur^A$%bTx9CRh^fYe}aV zEjTH&ZJerEd8O2(SB2rQ4n#>ZC2U-=j8|89zi>43FWdiAHdfRat`b(>MSodk zn}G?f*^x`hEvaN+VsgD+yZ({o3k+B%Nmo=j5aO(BMWa&{7+#H0H>+A-38!qScm~;~ zz47Jd`!trk9>KgXA?kKl7;MX*QVfGA*G;moR=La?+;(0$ma~UD;n%AiVlE@7l42kV zu|r(c_;lDM%;sqgTm5kslW>)Zz2cpPT2!?8f)?Xb-P6J;h%f500^vabLsfPeMB$p@ zXYm!~7Xwjmu3_l<%2S&Sxe6(io{loQoydx6-YN(<;61R2F+`DX|2r)RZ=}J`a_t~9 zUXdGYJz~qjx4=Fa^1ao)@fMs`2I+*5LkCHt?oL`C&^cX9C+u$*xlQK}X5h?|Dwm2Z z-XV#LY&Gtos?Rk?oU4RSV-ZuF83zLpd@imrW)<`RlJnE++@}mj#c=<)YxeMK4F$Lw zmPeu7g}tWcF)ePAM&>dg#aXE)E!Bija4&);J8II$-{Z)|@AFmu9Vse8m(14Z_woCE zhnKR0%!KTX)~ghYVMmi(6(%j<(YGwdZY+7S+jz{m-}-2OH7G;n+5(aeZKo;>OQN>F zifv}kQ;^AXKZe>}rXbl48y6rF7|Pt*d-4geDB0vKD6KbK~>a;QgBko2bG_)1>G&*WVn0h z$U>)}bqgr`TkO*}{h^u<`fCLx;mhLI< z-Vc_MGe({H9?#y^BrVW|ciJojc^f& z=WSIU)kvbCrBNf+A<4*G@O;rz4e0f^r-;$0CEVACAA`1vUVgr~HoF$=#CMw16tqFg z@v7|e-bL=CjfZ~E@C)n(G1oI!I#|vFY17{`bTgs{Ocym(Z(3D7I;%h_#0qAbGv>zM zUCoNZk%aiIBtk>;02P+<$wDG*J9pq-&7OjFNnYrl%v9)r^PDJVDcknzYEAKd&%Ubn z{``dXL*tFQkUqAQY?X#M7ky(8@5l83^A;bE?`elOn`?f)jvDR|*bS+Mg_=!C`#gKX zXOR?}_~8xd#+jw9fGZCq=Q1CRhz3kN$8z39jog}L_;)s;!}_M0wN9vi-pHd<)H@O|Q=P#-{ zxzzz-beASQ`{~l&pGm5 z^Hg_ts%J=)!Amd|UD$6)(!_xgU(6R5B!-?>jOi8q9-I!{wh}ukC7(Fl2)aD0JXY5lz^zINIxi z^h;I+u>p!gW*5Ny3ztw}6_=u0Y#%2{KAvdML!ax71=8@#{=3$JcV;-Z9{5chZ*B8P zt@}|gzuT8(ngxeKFZTeb66ZPsB#G$2Q6Is;-2NAHn>1lAmkhy2MG8l^I690Ve6v}E zPjVNT%H}jq%UR@?1vjsHjm2?~5|G5$;d@V?UtbnExAXc6vAVcdkS9aCK=5YFYm4To*R4#*Y#edNCYWNn~FlIph>duU3JN%XPiw|R=x?C=~# za8&W-*s${h*Y}~SKTJs4xac2@X-#}m8+=jW=6B{`l>aE-+(OE9U4k>T9-?>s#3-4= z&}tQ`oZP*1quT$<$=Md76E8@>pHUU=|E2^MVmmhI;MicY9<`f&pC_^y{E+W@>Wmqq z;9?)8upb--8$6N8mft6dX?Cp~G`hNy46dghnH#1jFufZrFTVKABn0(mnWX=VGnsEo ztp7sVC7l~x2e9u^SvlY4lv~jXN9U*pv*^z-3)gYo#J_jc`8HpbPm^j}kp6crAP~ak z)bFBzU`>*9d95MKMj8zUhwz${3_O6OBM_FwR){$rd*M()n(ru%mB`OAzhBMg_i zAEg?Q5!{uIt~mIwR8?vf6pUTja_B)^2&6T5mzUuVOQ9NOZnb#OITrr%sY4o}Bh-!douy}cXLV=FVoCPf^`!hEkPUC`hv}WZR zbtM{ULeC2sN}g!xfqr7&R67W4M)s&!oh5O0IH0jAe33BO^pXDAdpzG7aq7y*i;4I@ zze`7H;N$feR81ty$LOzG0gnamh3p7j-MvyObFQelJhTP5?3Q`>IebLm=(lulY7AU)$ObW7Vig`}sZ-*m%&sL>z^IGxyaTj6<4)0X(0fH-^0s3&I=t{;6m5j)z|PN}s4}V$j)#Gc2~Kkjw3Zf2s7@>(f)9bo}7Eb+V3$uABqMuou5X8we+zJJ2F1SpK1#U z6+c`Q`$89tpq!IWh*$aenq+F)JO9a zTnxIcvf|x||1$nmN8AEY0gpqzSm|=_Iy?VFCgkRa^_7Sa5Ok|LL#!-IMZhwGweHq| zbrk{UdS!a`wi;|Dh&n)*e7TAtT#Vt5cYVb(#TTt(a-)4vVSXeyizngo0VjndR1L0e z{smQh`H~L3O=GLt?CD|IUTfXcwpk8((G|6kA4hzTf2PV|3~>fo;NU3haKc!MWmoPu zF#YzvJTmrDd(RxMnP}W>t`t0(m3wAr^aVjPYX;IkiwIF_`lIcz{uZ!oKOnb^>4RV* zB!o=4i*%Qrg){X=gZe13=lX5|JH6g2mX|)8Wg%_jTdu9!ykSKhPn}FF(84)uGvvB$ z^FGK`b?ftES$G>OKab%NSncr)UGwgDr-CA9M{2D7Y0tm_^iVD`w0Uvs#&hgZ8++kQl3#U#E`O&=#%8 zu%lw1=H4f)3Q%ip!c=N?f= zeeiYtX~oP1A20V~o0d08cRuq+HdjEch{W6-Dsl%u@0vmQ@$N{Igyffa9Ws$`-mIrd9g)1?%14NK=nqA(vN@N=p20 z$|vi83;twicC9~%$enu-98M6J%MSm2k`4}5V`=aF%F*)(eCcdU#YI}85E;3Ij~d*5 zILzNujo2kUEiRWv^0*MZ*by|FsGSZPbOGL05>hj`hcW{+DCKnunRyvi|BBZ7C{wej zJSa$9!1L8iXyENDZB<(*Qh^WgFwj_|jiD ztM9aNx!L5>vZOuN&Mf!iKE11ePVwIB@AxYlIBGLr{+C%m`ft=BaS-Gh6dv1_lzTlf zyipM#OZiW$4}r#ST_Yp<(Tc?d2;#R=JgxB(j%E_je@}1`UVN#)H6&4XJP0}e=8#1w zXWE)56zgvQ6wU^|oN!}7RnN|#T?4I%wf1v$$f)sp{%jDUxAFXRXr8q&et@9h2 zp7|fb9DI{(H~2`%l%xavEk8(fA_wbd_>LU7@<#>m%JX9cJ%4w z+lItR^HeiUAs|2sC#)*ml@C~hcm>MBbs3(PCHopK$hWf zBOq@Jcuq4oxouzW>ipqqA-kvzYO`YH0{J4GeGXhUu5IB|TxPaCpr54eH2#ya5ZRGb z5c0S2$1Q3terE;T3jM-g>yum?u9J|_IAUbtDP%}dTC-f$jOEH=3}|0P_~aMtX}vk- z5C6Ppa{u2?83oE|oWFvXb-fAwVDlD0I z7#78lK;-*M>}n(Zcg+$dAb_uEKLQ-^sxT5=xMybZuvk~s98H8PK4`V-5{~toKl=0e zt2L2K2k3|vl{hk)ixnnWJN#sePoTz1vUERmO@IAg3c&8as$5V}4XIXqIj`T~<#rUG z%1N?_<4mq*2S=uAXlU4%``@Z>+SsN$Md{$(E8Mk5v>Ao%rW$-ad*T!ZQ_xA_{ zu_bz+=H7AB(d4^4xL$dvB`qzZh(lgpp3P}_>uJN@*iGG;p2c05H@lgWIG@p%sk;a)@Vk0ooxGbLU0v%w4fNnJ~VY1lyauj%6Gs#6ft9 zs)hUB{AcC-wJ?M4jK9f%IlXz*1bk0+cJ>SVOblso{gOLBBh2=NtwlmefQ8R=^CZ)) z;z;KV^CSAD72opX3ZlGzq$VJvKv`0x${(((Er`~2LKkfAkI@8JV$;9pgLZWP&|A6VWEWV)&2xE z1(cjZn6f^889CVclp{%`*r?& zDvUk+y z%6EkPlpgFj@jdO+SK4m6n$#ccnb|Ps0RZr*Q*21C7x2WIP>+Bgo!%*YKj~0MPky$5 ztbTFV*5}|*$-*Ocr7!Km!Dr%*CcCYQG&%)h)d2TD*`t|Eh%hQP_Cttn%mcq7^*X0~ z1kixihiiBguV*qJe&Hj9`4N_YH`=tms0dR;JQdqm)M91#^+P$>+HJw!?MnsO6Zc-P zeVOab>#B9PRrcPu{4rN)Bw;I!FUc|Lcsyj;%MbsI)EesY`$6h%f3RUtS)ku;0~aRx zR=fQSsZEvGK=SjVB}#gsEGQSuht7{1p%dB0gYy%xQG3**P=n6^vJ`;zo)kLZCm!bu zvqdR5Om>kgCnW!e3X^Mc-cl$^zXU#%~M(+Ev2oDk~}#VwD>E3?l{@=L(vu^I})H;{r`B7spZ-DQS z>d}6opq+5kD#E(NPwTfm6CMfn?e;qcH0x9)#GPAmr+xMt_fXIy8+0BZ{u~!CBxIjx zbZX*DD20$!kBYCbzF$HT)jJ&M#MbU@+?XhgMWPE;aeKDhLTh}nd~&#G-uzb{0Cmsr zAXL2;dq)o%20~5khwpV~r@*lh@LK+HSCqZa7Qtt2;M?RWn!s_Vqb$u{CuJP-BQkW- zV{GS};|QOD?x3Su9z#LlwA=ElS}(bBTmPBO)9&d}hq}esLqwy_@Xjqy<(N&&c$4nD z=7vaA6%NUm{#7rSPWtZJNIa!M-Kw%D$tlate@-tT!g@6B*tqSEgj)ehUep@GPtXLs zkBFl_=rpg)g}AQWJq8CL^#E8n&)~{~&6$coR1d(^dupdk903SXH%&GrhZg5o;I;1f z6Co*|gG|BW!{p+gghSu;1umuJ6zG6<@IG@JpJ_ZFVYeAa{IOs1Q35plQB1Nhl{0PG z_x|1o`K^m9vZ~8&_sd=$M+bwB;w3hJ#2dA?+YM&eohoKWGDEwpVD*T5+(=?CPa`VR zfcoh#>=Yxi&{@RNN9_3f9+iZP7SJ%{gWaqlrWwHX>s%Idt^w+e?>?$&8cA6l0$|dE2a|Z6Y0XysK{W*!^<7WP?qfwBEoo=_k4LpsV;Stzl;pS)}6I4+(kz3s%efNCEjAfqSbR7`_QzXGPvPSY=*C5xX9? zb%r`F_aG*&a z&Ufl)C@D7XA%4YZyKtrf2jAXoMMxf_jQvhP?md@ghXr(u@k4<29Z|{~f%n9J)Yik0 z0gOZ3mLGAd-q|m?at@o;u-$X#*KW{hzB^rIY_^CNF?Pq9c+Y+4U}+3n;`)u7P4U z^}eN3nw)4EFI#?Ajg8G%rtp}| z;Nw*rB*H`*T-K92C9Bc9HncU;RUdM+rqee9=NeK5kn)t~n zT3_O6K|!$xz~VO3*4uwJqE)lmwGpj&vJE9RIH2=#R}3cr%rSBtQ0;wgKT*s0{ndEw z$5vHm35%{{3ky{c^r#3uSydK&Ipvg}m(R3B2n@P=wR44p5CPBF)Hp zWpHc;OkqiB+M;N(e5DpVxUPhZo>v1G=Isl+H$D!D6=q#hosOub%#{~kYm~~cE>H4; zk(y~(@q$b_^&aF-b6ZC%QRp*ne!uwONz`6$S@Y=haK_VH7OHZT)$cq0=@mI<&Q?22 z=Kn%?wK-j$JkDJpneWVJbcmU5uwD>%LP|fWUoWKRkBf@~;P97%_ZfTmctC#J5iitH zQ#G)%ZqGxviyYdX03Cp4xk}kjsiqY-x;Msw`Vp2FGjw2-|pu*(_*NE zguAVs!!7~1*L)qm=?Yt`y0YCDo&e6#lz4Nz%>9}x_^m%joHkXoaFz}Jq+(M%VdsU} za!`p)Hu25erhbYT*r=ANM;s9U?IQqhGkUD?Bk1$!l{T1OY>(>8xQh#|R8lTSrX4*= z$3?h&003{k)8f@LBL>hmn=a~CD)=p*8ZVvrABC8CpeJ_Lm5FBc5ZGBi90hFX;lcsk zjL(KpJiw%jq}>aXP8=%oKgeTVn$Nu*FR&Py{xl~qi5rIM>CKdBZ*a2swNBsjZ?T2c zYPt8`ReY34<&kjfq7$X*=N!VR8S*m~!_%-(MI-z1F~!Y}i3*-T2>o5ght^xERT)1O zv$OpxeAN%Eaw|$IHUOOG4*Ni!eP_s>4P;ShxdhghGcR?$)NMPxX-0|%8xN6wIM4p0 z;bg?#7~)B>#o(U*ne*ahUJ29r#*VFTo7Al(vEViGJ&z#U*9CtIX92?PCiQ_GV(zn~2dwdf3o-hY|H~$nM&29Nk8CaG>b%;0Y z-8V|#me<$6EZJMt)Yi`2Q2uT|8h{=xyto&ZrOIO|L1!lUOx$ZdXW*J%=XbM?!^i40 zjwO%pgn)Udkw-R(UO#(^UL`Fh^sHG;6mkDLuyQrsF zgXFf>MYlaY!%6Tvp=?|%v(=4j^xA9R%~IX4v1OGLb=F;R;ig(I?H1QQSJLW?GOA*` z`b3^dC}|`SpnC2P?nP!YDL=Z1qdwzb;X#{h=QQId2H`@?K%wpGcRHAcmuAyjBVT5# zI8{BN5SmLCvQ3v-hOibX1u-udGS0}+F;GIa@JuGQ7 z?$C~b)2=A*L}H2gKz$_mwe3{U&|8+#rn4*J?$Z<6KB-T_DVCwEM*0XAQo=RYRkafcNL`DM>iYlo5KkWc7I#?QVIOeCL2c=h5}0iwMM zI@5L3NWxQKD{LI@!?cy2Rm*Y25bl9~$FCeS-`=IL{Ig=~)5QBYlxm7n_z&Xn5CT== z&mzH_g0%3CvjHIzSOLmHE71{;UeQ^^7^uY1#2TThLq4i{PpBWW_t8Z*KfXU)*CC==x%I9L6kP@D-1VzYR9Esz0x*Y~k5G4Dy@D z^aL**Ol94s#%m5MI)47|gd3=XN&rZkK~B26k`LFXi3P6kPQws@tO{G}=1g_zOTQDr z$IWX>J8dc-K2d9-xt-rEN98!0KJ-(a^Fg=8%oJoyyS=vfIkm+8&$K>~+a)}sb9W+M znh%_g7rYl+Ct@O}z4j9jkX6v*~xl-PgrmubT22R8;QH-RBVaX5AbQ14+54z@$kM z?hCn%(fHx0P4R$o_jsQBWI!Ml8pyp60^i%~Rv`t??S0WrbOR_3rTX!-Pg>uD+?}v9 zpDqa(m~`7LmvW}H-|kcqR*=Grc8v6ADC$KT`_*ArhenQNV#x}O%HP)5sO$wPT2)Kk zBNPnZ%6&)wlKyKL!!shO7R>5`zfuV_lzb2_So|()e z)P2pR#2^!KJRjqMmMA;<^e$d?yLtigR>AjhEx1*lX}bPNKER)r@>Uj_8=sa#D|T@F z2<`d$bzUg{Ga$WOA+Gzw@~N2*@m|IjtBM1vY-!5*do>%t55{rxH))TJxJpkRLs56o z5*OgR#x8xjT=vngP^Aud{rORsWKK|XWc|*V^x5Lny|t`sn$%g3jCduU_dGLajQL!+ zO2DfbRfOdqRi$_t9_7`*>{A3JYdooa6qmlQh&Vw>4rj2CLwvXpVQDy8k5K z{y9HJzgiVH#v6G}H~RUc`7EdFf#3@s9F!pKFK> zN6F<~)je+Z$>lG@K}QMmUy7!ud7;>qxWQCz{Y1o~D8b`<}C7>5->c6iuC` z=DU#?2-q1l?8}Ie_Isb%73p|%r<~jf z6luSAVv8{H9mo2+?xF31c#}mw#|MWgkC=(fWjuu36dA|!c7u>*W-D!`IoC;J-iK(J z9;~N~mpAV8Zk2w;{Nf^0S%|^H4$%^&$F=JERSvzj#geT@Kpw|pX?1+XxSbFX^9Vzi zvwe1MXMog^1#Efs+7;igDo-yJORa^5DRaWS`*Jlkc!tMnh}$Gpa^ixOSct|zt=zUE z?>jOLjfq{6s?Q(AtXEJDQ?O&sF@4e@lhqx0{EhzmhK7S#_PA7uN^NIplDhNI{d9@v_e^?<-c38!lkJPx>koW=vQcOtG7>Um zJy}G;16CPD>V5nEy+Ad&(xA$L%AW^*xF zT}y%B?`KZJLU~ZWnGOid#BsTv`1P-ZN0I*>VWO+_7pB5ZhVKw3HaLGg;}}Egk(v)x z_Hs+Hv&(|(UYhM5YGEjFet4X%&7u7?mp$U73OyCY0Iuk{2NTbaac8V@@Q|nSuk#zF z;^OOMC*;yh-FHPM5=3vrSL=lDbQGrxCb)lrI%=~QPJr52y;IP29+@X$Vdcqm7s|x6 zooTrHB(R(BznvX{y9M#?2p{pF4xdd$n^qQR>49HE!#Lf*H|`pe*Uqp+dD>&088p zx*1B7WH`n3jq@fih_|Yo@2&IiAN?f{t`3#mfD9u!?Ay*RpvLxx^m}R5?+g%kf*tL3 z>&R_vsAi8=Y)|()N-H@+%J0yT;2 zp9w2z{tD~Of0eK(hG8bxd$Plm{^sKRRhT*+bmSoiiXCbPqr<~jGz4N=P6w!!$s{5M zCKs1v%udnsP5mHFBgTuD3QGRjCx7L?836?c;CxMAFP<{d)7K}zaIOc$J4R#Pao;<+ zp6S(pN+Jsxwyi)#A0w3%A zVl^_Rh?3;rbv-as=f%ISi7K~3G~#g*?wey7iZSiPO|E5XYLEIc^^K|AAqS7^*o@=( zfZ>3dD*leYN=R>!h_a&Zii$mM_BX3x{sv9I+v`_-jx>YdzJV;go$iM_WETJKxEL83 zJ%3eylIuChBKUN@xTt8R!3VJ}WDDf2=I!AA`1efIfV3zf-)+?&-`$Y(-&BNvcbYIp63yI3 zeYo~G?6g<@_u^-%brCQ@_PH16ByC3(pY)<4WX9PPmyOe~;#zEkLEzn`7G*eYJq+S7 zUG^cq)Nw2ASLAxoWr2zGBfTs(pEK~|#}hmLup2$N*=hPseywW`;<@pgDC|+7=cCIh zuLolRKgtQnnM))rGfPxHnEC$oSdkNAKc1)kAkqAsvELfEu%|!2kH?mNgUxXVsNUY& zA+I{a?X+!3+)X@WZK|4(Z(S_O82e6x@ZBD@({?FaxbRi`5x~vJf}hxFTiBFtiqRPo z2olB63XeGPU6ID)X@vB#6EF`|Cq)y*_Mr{Pws>xhORUZIuJIQdmA5dbjJ$46h?H_0 z1!AvS&*4kgys>LryVNs&ew|;BRiId7zu-vG-Eq!$kbNXaWH(SulQ!L@M@SuSR}Sm6 zbulUjS2wE5tQ6n)t7;^0b?o=@oX5b}KHVVpN(4PrDWUumu2VDjMzshbu7uHa{;TBW6+Pp`Latc?OV?D;_F@ zQ{9xZoS)*C{>ACj^>aBHN3BkKHqBpf{m7t!a{)^|e|UXkvea*~93rKquOa?=%yfYx z<)lffihW~!!gJGi(|KXWd!vFjjP5&7=vy2@07#a}cvrA1t&|%IKAjw|$S^8q9(}|2 z_y_O|GzSXCFPU*NJNK-v0SE30wbbS+5c5dxEkei9{m$1QX6&nsLndU0Enf#pUE=}1 z+=~hfZcAk}Lh?m_Ni>J*FAB<~=mc*Jd&9}TLA_HNjz<~_V8Ieak9#bXm!aZ&Bp&xT zo=GnpmBwT@oVo>B3SYOy9Wq|O9z+whIrEL0=Lg7Vn{U~bis8Y_{jnI9Mxuvj_h@!Q zi9g!Lvs}NGIi9sOa&?0i&$DqqdIrkVV5gFN6Qkdc{Nv0+x;0B z1HadgV5(0_vU#3UvT+oVT3egiY0k_;Jp~;uE=XW)4~3-%v(T5;?Pk&T%)ZP3$`9QL zsm8w2N)?7%%wz3>i3NFir>8NIW08gW6{hw;zy^TZN?e|FDZR{`m2j-r(9*hI&-N)* z-AG+0-W>Pxnqj%6g`QsGB#?nreqQ$AY(a}Jws$lkuxsmG?n@6O4}w_iNR-XYRQ=vs zWKg~fEa?aAb~u2UR*i_Lo!!f}9ZlQ3C6Impp!${SLGnZ6aTq3d!k^^5@AeF1kGkDj z8yf>aUVIUSTB(Mb^x;nrM$@R*+s*CmuiPK%CZ%F%H&l8~`JmBqsSE(~4HZ1;4mlm= zpicIwVriK1#V^eSUtSbJvdmvR>#f`y7F_svR&rHxA6kw zMREXACyTcGhV13o&!5Y_M(DZn>Q~yJ8ixR%(G$1QOK>~Q7?NXvG|Y!v9Iy>Rhkq_iR&3~M8eAI-yfrfi1S$*fDNQbbG1KK6(^Xjk^r}2b zRkovZaqJWl?(2h9M1bbhKoX@}=|;n|fN0p>rR|O{Fs`s$IB_!RY2BP!dhygIFW(X> zt?9=*gy`y{+-Mm&XVQ0k?*JBkbqMplbLiVBYk{{(jqeVC0$Urb@Y%jnaCk-J%r;fx zFB=2rLnxK0@NcF@@RKiVKE3wjNl)pV&w6y{aDlh-WFUC%XA1bEl^{LGZelYb^ld<)--QHc(gcT6)JRQea{`cxJ61 z$O}^Nr z-+6!w5IJGwxxfmwE-?kAv*hssjLwMI(w9XN4j0tXAgQL4GJGLuqW-h<5(3RTl)@;Z( z`G={wXOJTg_@geEF!qE<2u>{0i=T#kWJFfjOtoLxxBXzo1ThE+YzTHU_0s*|jc=ag6-Pxz5?-W{I|wjd zO=1=>atC=vYXnm+A(ZWEZ<3Hz@Ko=&dRfrU{Py@z|@%Zyd<7bGI<|GeH(sTQg8ia zXg4caB+#u7+u+ap#v*li6$-%GvEL zQvxM2ns7ZWtscX=3c`8q%dTk?%p!#Ek8isRA&{06T9 z5UO7Fe7mWme4{r;y3`V#w}g>{JJ9^JGhN11ZuE=ww~|lPnxp#~+Jp5+7ESYX=X9R; z<<0Z;8hn4T1mfwN4%Vs&u0H$5^XFe%w|LM$sX)N*{N?{Lv;YT_-FUt8)RAVgsPaNB zc5}$FY4!&N{PKRWN!9zfYraA^DVOK!3F~`)RPdAy+ynSjn<&_X9dt>$vN?~oTer^E zYMp+%B46i0o#PmQg{1A67uc;X1*&M_isq9Z%(`cZP199U_%=L5+5-h}_;8d=SD8D3 zYHzB*+GWoRX7Bc7voPl?bm9Jm67Ob7!14Fepi?^wz&?B?n?drRXAhtNTg4KAG&E4^ z!{4Ev>JtPzVZjL&6Tq%?dU24|;mqvA{on2Wce{)_&+jQ^zrc~!<)LM0 z*b^$VT=>M=NdP}$1p#vMnW);&_|Osc;uFZjT_500uUj#4d$JN(Te=%3rVnbwA`|Y% zB!Jrw%WRG{wib+2=t`WY;@gN5AAl4(?hw@0qvF(fI$KCzT)j+tO^mSkP>4c^!9UDv)I$3P@-scp7`iGojD`sf}?xQTuggB3hB zr|}`8*P7*jZU-hedc5`edG9gMqhbBv;EUt@9t5n!n{baWYS$b?2lIWfCuP42I4rLt zV3%fN_Y17n=8v=FE+0^zvON6jgaw*Gfe`JV7O>+Bxv!=JkO;bv(Q65QqZtK~+Z_su z)>3O$@_AliHwtd$78Qjen*tMqFKJvS;!uf%(6Tb%JsCNMSR=1>b@Pn%k`2-A{|Gn? zTdUZy!o7?$)&_{kXEfQul$E+QO;lh@W{Euwc1X#CANvlfhS1|7f&ZL7KqXqyOS2XV z5)=gjw}1LP!`idppBjVvFYu%sDHRa*uSK7{B@amt2wpQ&R()}z>eIxkc1^urM{&!vIKMU|b&f7NA zqf5V;#se4<_}`v=?qG%PPlcFI6q4()7q`10>V;~r5W!N7!9&&A)2bbR68jj>yiW~9G0NKOKO z_WI30z*lvoWYsw=iUA}nlj7KQt(@124?by&=;Vi#T|=Zruf%W`D2#k zw=V$P0Pq2SK3IJ9djXz*9F$*+{SRvZqZeoXe;ec9KE4~--oJP}z>Lsu&kHz{|KLG1 z%RK-0`uu;njsN3i`D3Q#k1*r^^P>2_n&DUL^*_7o|Mi6jJV7Gy%$YMp;@xj9KEMwb ef4K=HX9$C#=MzRve1YGbQGD|3anYj}Z~q@`o2*R$ literal 157582 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%0D3m-&tBTCtLpN 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

NIibvUHovYXJXt2s7nQNES8i*K$cB@-Az{tS zfY1_4<5xT#u97K`uTJ>J{Nl3(aql&;m@Si5<-m`yrps@|iKWvmPSs6;RR^R}fnHS+ zcdm5@)Y`WFU>cfthT})ge!n)X#-{wFXQa}fA5}gpsD6sA^WN!^F%W&{wl$M62)|rF zRTmu_rct%{G^z^O7o|^Dzstp$GeTWW&bdF;a0^evl)s=E^L-_!;>l?Wg(dQ3h~3K0XtTGg}s=wo1+; zhVi@TxvblbcX$i6G+Quz!uf{s5$+Dj?YcXpu-njWj^h)GJQDtwlf3wi^0=fZ6&#-r zgf=&{Ml$M_2~0TPmRC4i)Yk{UmjpX;N6B~t8wv)+B_&c|KWnKc2palQ(Iix1rxNzbeuU+Uc*|@XEm|SuZS#u zL)T9MtoP_wosT?^wP}x+LQ8nuN5!;Xr*|!-KV4JW3Ed~PJ(ASq@x!lMO(IZzIVgmJ zeYeO)Pw@jDIJ~5?3WB0JpAgnbuR?DpJmtwd<^CU4UjY@>_P(tmpnxDC-5}i{4TA`R zlynT;Al)6pNJ)2tba!`4cS&~+NH+uD!TZ17-*?s`l(lA`bM}7weV@l&Tf+F~_a*5& zWETZu)QsXZrLKf}SMlu3?SLqQ?gSvodDq;O=|y%3En?gAzYV=UZ#kDV^U$oDF1=j0 z*Syg!wkGP=-Us+^7OcPav8NV)^zqUe%_(jF!&O_wHr$wnKR zyzV`%g9btOT&u^vi5t8zoH@yew)kp^Ba0Vm;E2OKoHBY@(jmNnBpvJbCIiDY2b{>6 zT`{s_j`VxlFn9nOZ>|?0vCTuJpC|#B&Q35Z*gX?6%6=ebXg@kznoPXiy#>;ZL17Ep zP&-f+WU`2X-~UXrb!Br@o=b9BDKsBxv0r{I?!K0={-@`3pGt->L2lyVR{LJ}t~kx} zqoMb0W9!-BRMX~AML$BWqp`vgiv%fFl~C@~u|~(`U4dtiRQTF@s^HPP42Ts1lG!GD_ z4sGM#y3-n-tE3JuVG;e19&Y1SGNq$SBQ#2XrTvRgrqiwo=;jX-bdVal9SjO9T+iW; zOPi(~xioZSWW2*Q0jbnm`y6Bsd!6lB!-}`nJo}@qekZ6MkoARN5&IjsnCK24o^v`V zY~9h9q(<0EW2=zXR{~?=z%?g{TUSm00tH@M>VBVkS?gU>{nAf~sqTc?#dAt-^aC`r7~cC$k`{C+f~!N%OSd1lm*u%(tAk?zLJ&LY zpO60c+au6Xbr1j?gv<0+oqY6EBgRJZGh)i!rs6<|m(WL%cP7Bta1+o^^8S)J>2tn5 z;VabZ!r#a8@iz2vuViopZ`Uw^bYeD}wfpt$VWEo(_HsE z22;uY-Q_v~Z4~@~lS2gqI)73b@gY=YZ#V}-FwpAZi9r8SIy*iX&%pguEwu&BW)C|m zkY>;_-K*Xrn;b)ct@CAb(}#zR#u?`Pp^9sPRAEER<4*IZ9mwno&U*Tj6m2|w7sr9-a?XViXM^Ju!^eKf8?yCys-CXT0BjmZrybYUBa9n5%J zNtx(aqaK2~4fG-Uz^MEmc1D_twqRpshx#s+-)*bC>1(C8q}-b0&rJ=jSrVSZocZ!B zvc`>f){};#Gu2(s>UO?lqNp91D4)?VTZU}O@Y8=u>%YpGGg@%^C{svKy`6BmA_7ya z3VVqzP=1(zqMN_dd@DE2B66D11HI&bRPG&jm>N7hbcs^C!HLr2`0L zc8$lCZ{6Rg4zppm5bSKeSdQ?Va5Zu_?pb}70v@^BXm~9Zf?7DT&)yEwzd-8|KZ37m zcg-%zIdJ6L!LV=SC{*m-w{*RwPGsxqZ!oP%qd&7@Z80;T@t30WE!SCIJb;bBFvdQL zgea+cv7F%sCk|?cp2ynt5qz zN-i7ku)W1Q!5eDOHgXzkDi$sQ)AP6^{`-7=UF=b~s7zB&sskNPZcB+=R2hByydR+y z@UR5)S|Wv;ZYO&LCI^b-ZTsZXU5nk>G|DJ4K^!E(;rGRJf&DFJS`#7I6s8uT*YD_A z%80oBSj__fUE=_wBDhQYp%3SHZ`SOpqi{PST0MwfRSn$Pwedz&OfePtt9*DxvnbJM^I*A4Spy^?z^_q^eK>BWgx#eYpR|S6t1GT-g<1>FFs))}5 zcce^|lCflTIUPEX4Ag=s$UZQ)>r2K*aeFY4NXXr_ddP7+rsX~VXZh0hi45;pH4WQO2)pdGZNR@2Rz(vn`+B(+&u zdbY!2x>DRhOgZq%NQIyrG4eM^&ESAtb40gxvTo>V=bR70rf0jlUj05pALqBLmO^ZK z_{eH!E?T}z7$PK~qPUNfGw)#Ev+v2fjjyXKFps_2DAT2>d9yk~4du!y9sJnyH$=LK z0zPDo4gO_l?Ce9^Sj>CB?n1>fDkZE-L+15UTMg%bj+h~&8+y?;XcwM}7tNp%d?kso zlpwPdUfgWlhq3cJ4*X!8CI0DuDyQypvQvcgUEvfHwW2)qIRJ2XC+wDJJwpyRwn^IP zvfLeVM36U6q(@HG`$BHz9OgM)H=lCsa<^fETX(+S=fdH!)?0MrUi6`h zNP*a~Od=KS4d#P^1IHQ@$)Vy$+qZcXPezgYKLDM4%`7)|lYc5L8O^?F_l^+}dRp+- zlzn!ZRs3j{EUyr8YCPdVH0~)b>6GDY4r`#$;KXB zMx1*HO*PiWBHCsZ$eZ1M&;e`=~h<)arbL6avd>RVb>iqdC zuQ-+3N{%zcV@Id{ zi4~_NEt&$ujJ^b#K4yAZmut*C#~~(i8^O$5`y=hhSUch6N3E`}o;fX;vqWxM#%W&} zb-e3)q zWap%NQ~g{2Ew3lrXk)#f$N02oS^a9pHxx+u)(jcyPeBb0f1^2 zVnKdi+vY%M5P`E|365t(c}>lC-+A!hAdv`DTqkK1UTsMcC##&4uH`rB_yEV@<$GhV zA2|;<16B~?1!KVzT%bKoPvT)N9zi`nULh_)=jiTng3)y8L=-E=kDnUcW950k$Z^klAZ3O&`Y}Y;1^yV`+hpZ2EZ$uq=T0>V!cL;NS$Hyhs-;+l_eI3f7=9D64Xl_S zfwI$XCoAdRn^exVHL3tJmBUFtJl z=nmgnWT269>-ZxYn_h=$ksHBd}3+(^Lju?qW8`w@r*F zCk4rwi8lHvrl|8JpZnJ`_^qxa*hu$qczT%c2l|s$uyh#8r^zTfj?m$gv9l)zBp4}f zNo_ytikKFTeic76J4Yj&vm|UHM6^mcEubpOEc1-u6MM$PE1W;L;o=PBcHGu_gZBzI zj2AIab?a9YP8HMv(BYiZEAKU59I~~qv@?e`8W_#Pn8eaOT67!7T6uOLv9x6upl$nR z^b2UFy5^qo9|Mj|#bWjr*#HuTOi@2Pf8%tGvM?vz!TgNyoJ=t3GZlN_wRat%f&F3) zhcjp0TzedA^~$N`z`B?w`5YJ-s>HDvfbe=(s8^e8fVr}g;o<+lB>t}*r?D4?V6=!V zCgGGItUz%k<9TD4+*tGNVQZ!(G>d_;_=i%dzPTR$wfj>@(cFpmimgL&NQ66_zbHG6 z!NqjxeV|Dh?D}DkYwAp;^@4b3Rp9a$KgfNL)XyK`woW+3U<(JlB#ciqTsSTPcm*uQ z>_r;d8VYz{EK6gLeeq&XKuMwSU^yfGtEi{=KN+@Kl1C>s`RoWw9W(BPUZ7Mpsrfx;jo*d7M79BCtfq z1N<8ERGq`$_{)tQa0K(?-iO zg!7x=eo*$>xQrY=Y2{OxGj=33J7v6l^y6eMp@YZ-H%_y7eQ)zo2g1LJDeKqV0sJZv*94N4g! z*ON1Tz9fySrjDSvPJ^tg(R^W3*R5YDp@X0Eg2ma~BJJHh$xWhWS;FEx(cBp4mAR%$ z``7|0eDg{PP%nfM@|{_CW|msq)rW37oI0h%G>rcNjZ22_Hr2uCzA56JVU@)@c*?ox zpwGp#sfJc0A%j)GShj{?!MyZFLvur2NlA~{Pn4^ZJtJ^Zw;^lTwNmathoe??V8#gz@T0ttaO{9?c?Iep`{7 zE-=asT#H;hqq+!hGrq9UtnNmHr@JGZ8xid4l&$x7Bqkb5v|V51Npw|0?Yk>sc{e{= zm=irz?u8exNg+ajbBbYNyP@a-G0p_@&AK?Q9ZRywf)@={R6ccnmB#qQ!vQ^&V zwN(?q8PApE_K$GPl{A!Gjal1w9rB#5SvAl3|9Z`{ANAQ6&I}mVFlG4+e-z#E#2YF} zpj(!_b603xzSj1va`$5o%qaEcn>RZggOkVi9`?}(yUwe8&0b2(qG%Vl>MF5EwFq7z zyO&P3o=9OtiSm$8+cx<~%4OSI2Ko%mj^2Hz5yCVDZ($Wb<#Mf81AW={N4e|Yof}`e z71a7-@flc57Oy4p9iz0ahq_e+QHy%33Xn{hiS41-a|l6fiKIgOo|?-LrzlNC=zTu_ zXzRstd7flGOr?V?AW6FCLmj>1k_c&C0 zb;!(lgd_OQuTy^z=oo@kDwh%U_aP`$Y^{?{$siF13ruaq;CJe}1hP*xc7#eOX?}_3!P!s5s=BKNvmBYXHg7{V0;$=zotmbLn%rq32PVv!!IV>OtHv zA0Ie7E+jzI&aT_?)=i-6n1<>$7;ALmy6QsvI{EO=W~0ZWiTok1Uxv z#7HnD0T=aR+5JdJvFkv3f9WDNOKOyOJQb&?RwG(d7{N|_Q%%7zI!c*dS5}3>1nq=; zUZyY~5|ZI5YCdb}h%05EHb^=aA@uqZ$?O{u4UH5@UG=QUi2A7a7hxg6w}>T%+WK>i zgn6;^UX~f(Ai#hh)9#>Gx4UR{#KGVVbsSH2C0oBv=dNgcH*0^dKZ|gDDB_ftfuPU~ zdb&zZ*YjSO#05pd1?JyhZF*RHJJbs6Ra*}yC{gvn8&n1oBqI;s` zQVf-hy4iYggo&XF?bovXyog-0zMHINd2pXL9mFjM>}Twb23ul z4@9>X{-J5Pv66jO`P&y50|BnHPX?kic+PJVb^(Y7{)b=fp*?*Vc3di)ljnlY0FsB6 zrm6x?f_Qd|@>m$k0L$#P-r9yxM**eL*0oIr{W4uTmf-sbg18@Ylo(S|h`Is7$w0vH z^o@F@p+hVl6p!df99NSJe7ixXPzrU}U|SJ^OGLZSNb(Da;2`t)W?LB8-z^Z|5$*m< zwE#oH0R!YzgbwAWE#Ckrf2c^MaE9osUMh?37kamF27h*r>3X8jAzv_-0YKnEywqBr zg`mc~tkzvI@-`>pYJiN#&{U^cTP@I_oIe@4zDB}I_55w`xzv?VGB9?Ds&Q~{UwnqJ3& zou&#!sb(|iJ$0W`iL6daVL z*(ZAL*c(R+zv%#K?zWNNJ2dpN6R8c#4I9aSx?jHfVbluxbSy9u|68m_0$2}>V4d6h z^h}S;JdHV-_gfF@G+(TREa9u^UHj266zGqnMRF2CHz~e{jY{g8g~L6N8Uk7n2!SF` zxhQQJ`398ogT?gF7S>;pOi5&2uG05JH){2F>wS{o%ef?jnw-E@kalFDeZ%* zjXgbSpd6-uytSG|j7Pm?&@j-etz~4#6O5>h&}wa}1?#w7sHS|oS*E87kQKYZFUIU0y-rdZ4T@lpPtF;%$d~c8r+rsfY zbHQq}6+wM+xJ1(TPaF6j2Nd8bNZXJ3V-lyClzROP)gn?(9eGW! zRmJ!a$yjntX8+CZM9aFvK6BAcSGX88Ock7&jvkBY$z!cpWHow!%H79mw#Fx;jiYm( zu@hHSAGuhXQ`m5kNGek{*6`kNELNNz-QJ1rtdxWyrhz zWuh*X_ypL3!OnQfDXfKDKXsPwID>d=*uU2{Bu zk4PjeCWu~gtJ&$irlA?XN*}CMjx{)+=XbC~sJ&m)T&K2Vn`#v+9Xk>UUf7^xIrtQN z)`xIAFFWeEeZFph@G^l_TuYvI5y1g0GV3{!Ff4D$uzRW_MG$VdDV3ip1M<+2HWXCM z=jvpz(~AE9g+K@LI1}lh$;lFI^FNv_)Mqxaac2631ZhZc&J1s^{ZC!084Yiv@ydAv z>Rzmm&6fX26DOl)ZXf}%l3X-bq_M#gzX(>YQ%)Hd-kz`5R-&xI!e@^_r(-=+=OiAh zh!fk#0nX*s&dF!d9cE`9VR^g`WI~qwe8PwOggowGJgDck) z{%(j?qp7-x4BhPOh1bcbsNu6B6S`%gX7B|Y1-hh@iKu!e^~8w<`^hBmeA)J2>ru9j z2cwoVlT*X$tk+WF*`#f+hs<6O@kdW>q8Q4m$RYBg;8gS)v(vr*5StxkL@he0ziF3! zcG~wo5!OHBZQtT0=<&r#F*YFg<`4#QAfXEHHb3M8eXb3%XG-2GeqZXEId!ZGRy)3! z%V}T=qdeg-aQTQCzbOjsHl1(RZg>L?H6*b-LaXHf=75`Df>?I>I@ zc9*PtXiQFKaEl)kQg_iTa8QoBe`g4`(9iBDd65^oe5&IGS`3j2&+S^dNtrn%{C+`b z`43n)`5YQ}7O5b+kGHr~SH})EKaw_C= zDI)OWP0AMg-tM^;m#~fXGJGyJ!rd>ELxyYKP;l`qEmCtz#2hg0*reTj0XNy)4(q@AT?PTSdB(R9FFcpShTP#Kl5QeUWZ1}UP zvn^DbX*zc8CJ3JLr44!NjNDc!mZggZtzHa(K5*hpq=slvVHq|=;x+6EsmE;pX3I=A zn9EgQJ0>mcqmn13(_yydZBpVF~}jZCCnv-E5!jN_Sm2I zWvqyKzyAPp-4Q>fB5z~f&zLLl&I1*> zisU5PU86Iks(%Y_cSgA1e~KGr;?Sm zA*Hv5x-MAs?N4qeWTwNN{A4f3;Ru?l)$FFKW-kubctu1m59qBlyN6=f?#Ha$35-jN zzuv4*uF|^S+a&?{8Pl|GN4CRs6)qn_=cu zws2aODUQsRGGJ1ND=x&(f6A1A;#zUEoy9#U;J4I;6`T4pP-|i`E@fPwHpQC~C5Yz7 zdlE6k-3uV`+0et2{Sw3cKfC+qhroB8t5?1#aFvdHKqbePO$U0d;BS3AjUTBv(T=QA zqS^iP2I({Zy%ftY(66D*{SR;hF`OXRx`04EBoPrO`TSadoduwX@FcO)P;0YtUneYK zwD7rEZ`&yA*JBsZ>Nt``7pZ!fRJQ=IVQHY_RUXs^_?T~}$K=P)~WW|x|TF}Tdv=S}Q4r+qvk)d@JRe=B~l(j%Sry5h97my2G_s{X6 zh13LG6pB_Bvk@v2z|a=h4ABp~R^4<*W6QQ2QYLcbL$T_*!~PFn;PHMYwNVDi11T^X zHCdK6NPU66u%ihQFAU>SrnRsZr>EjPPMbA}EoTdOD2OQ?ekxr*{5~$up&&emGJ#yb zc|R4IOhPf&ESx+JYP}}9YrkaHt=3SOt<7uo+}or+u2)HYPnL#=ejt;&oj&CV3G&Yh zq$!L|&|QX#Vd`3b4|U_!tN-@$Qcqmvzcb=0f-;zK3y>rV=w-$CM2Q*6mRwK=wTE;Y z7FkBiC4#;wy0S?2DB?5Cl|YQ<(Q+ylr1`^v9KO0R0&`ObPu}11CKC{ zqh2T}%jMYyUT8kPqW`;`I@%Z{p25{#1V9ur;|WMQjMARfYI$8g8{d5cx(=-Oezl-h zIN;5LwwdGaIxox$wH^%#c!QT!tyZ$m)#`%Udbx-A>%~pKYg9tbjfJcI3x&*&QlY4s zz2<-7lz*403Swais(}O6c>x~&_yQ4=;$xGwDY01+heloX_bkP|S248R7E_QV@hABU zZ8?<%@A%CpH8{PT^`+hTr!vr8UB2WqMokcWO)Io9%7Pd~SFPyr0Rfjla}LV0qc@K1l!pL;vN0}jn104wD- zC`%Tkk4R->@dXoB)==XOOtS=DkNv^#S#d0(~coLX8@pWIsRW5=a@ z{IeVWZl!~~gfUL3Ew(A`#>yUOpI&Y1*NW=PQu--MKDTT@)n&xTEoc`7$do`ZGw-dl zi`l>-%B0kC!_zEz)RWnFwkMI|A5Z_q)&N-L%2-)~E}j9(hjn7TbI;b|3mnXP_r}3s z;!E%_p(t-kJE~_Y;q~I0)lP7!> z;MKq$Uri`s@`()#F2lpVn9Sr#kiteFpjg2{eZ4k-5~W#f|9U zB*-db&Lmyl%G>eh*eVGPK(Ff?rI)oHqx^QBiBnsbUm>O&y-7o&?I zaYz79U|wXiuRAJjss-kOTM3Szn1vUW;$ULJMK@Q0Jw2O3)?Bb)LJbnP8?saPidP zmA?$xKoQ5kD)aFtUnubDkjGD70KmVak-+BDNdOQs-liIT-MfhB%MymX-F0KmNyQCO z78;PMWj>trX0(6w6WjJz?cW1M8bh~T0G3tv&EmpGhCq^58+hoHAJQ*d0Z}7VAL=lv z^}bF8=bNsl8+JTd^85qT8KXJFRa55GV>sl4rIb8c@!A78pRH$4-YZedz0lU2Tt9#9TbQZ#2GhJO9Q9$o#72i2GkEziF(lz|;By4d#M- zQ&+9=67dBABicdmdrsV9Oq~tvF-r>n87L!;l{UCz)7Rl{x^`LRDWEfu-{Edi`5oWs zpK^2a_(=KXVvD>vb;o?WnRz%U`NHEIHP<8KcJ)JB1dji9;NM$$r-~c@vFg&s-XRQ= z7rEVzdK>ateMPd=>npRz!?VbXW~br8-2vv20=DlKRs;y!zuOtw>$|B$Pf%0&RAmvF z$?@GSNBtMnXfrje*1WD@Gje8C#{h>(UhQ1_IksbqKbg4EbbpQlH;5}RE{)f(eEfAl zfVtTX4qUZSqu}akdth!UyNQL%Q;zu{tN0BKD)_?tN&uKTe~fGc*ZCiYo5!1-4+i$N zYb?-XZS;&rLI}<4_Z-H}YJbQ_4p`lwHL1Z0Ho{N&>=22Gb_K+{m6e}TNFt5igL#ie z_d*T6_5Qrlq%oB)>Jx;L@;Mu@A-|pVJmohz-jY`=sv-@1i7Rx#GN7bPcshl1k~Q(| zG-pssfc{D>PUaiaDxGm-2K)B(mGx6<2q@T4>mLp|K*7^|0eq$mpwux9k{jF(|D4Oh z$KwN;pa3AiDbVEEiNRpAnw{;0QcA!SuJe8GYw|6a}zN{k;yD9~TqrZY%a6PZBR2_{3UTfusl> z5&>9kLyWkK&D+Ec5dg-V=HCTHEKG2M0gk?xrKLJ9m43_j7cMc#AC2ZS+TU?T_W%T% zI+l6>MPajsx|+&Fh#FA~W@^y2XXNa4GR(?v~*sXEI!1mGXE}SkcKDB>J zjTSNlR8mw^rfg?pPL52DPbf*C1khtW{BAS_s^Ee_rj;QzJztB3CIWqk~Ov_0*zWMRPJdW}A-W`R>J8b9k$IW0S3q>xIo z7p(qC&3TyCeWYO%YIZaA4RZ+RMHpYFuTP>8JMG`_YHX>ije#8B9`JpPPwE-i65avH z=dc>+S_*woT|-%D);k|>-rS|GB&$}4A}?gZI91^kG5ynO_7v607w_Dy6Vi+nh2q*3 zc*tcd?BKFo>&uF^*R=)510h_EV+a8Mz9M)v=x^ihDL;)1haMq~U}>S;`IV6!Ky-i2 z8HZ_zjaY!PH>rKxpmpxh27o4% zl@Anr$`$!4`iNf;x5!M_Lm#gGP6z%|3<0qk6C6r_V{Pmu|5MY{yJ$Uw}6ipaPb%+D%iEZk3rGH$LmiIAJEZ^D;M{Hy3owvhX-OMo)^$1 zaKGS$rb?9QunE2%<9zAJ1I9m|mVgJ?n@XF#FbiW4N|>zxhU_>zg5mXF3*0%PLA}O^ znO4;Q`C%FD-N5+AJKs0;VdAUyRYjfRU0NKe@d2Qh_gvM@`Ptf5StdZ)> zL*<8Ts-{EwSLDWo^>u)K&wSKxD!s-mn<)8T1cA7NyCOPv8$sWIk8iZJ=arlp>pJ$B zV>l%Sw3t)5-$6rtu4`O0q+P91mG{a(sW*o;dIZS0cv>8S<3K-OEWpms2lYS<#qr|o zxH123z|LpD3O&Z43v=6kLGUOzCyx``Ce@nm+s$UGGqcu_^2JlfzNO9I6Lx8vu2#_s z%PXc)Ih$)OeGd<}Q;{pZUcQ#Y;E$Oa?rFWrthLt94)(e{udKt98VKPm2*HNbIF@Ht z>R$=opAB%cv7-Vk5jM7-AG9$8MjCD$_+L+V9e$s~P%n`QL(Tuf8uwT4j(PsstCUBr zJB;4mrexh`G+yvVIY&lJ3(P5pVEt05$;enZJJG^ufqW0A-f0ToqR4W(yiTigXbP#W z=irsTu**gTzXfRq;wdl#8*}uXcXQGZx%r+D?^|Y?c3e-5c4Zs@KAlLMxKuB{^w%uI zemE^9K{+gZe3(7+2A z;)*4^13DyhWDO^1ISe_4{uPYJ>D&5%Ea)>N@#^7d`JQ#Dxgy}L zg)-Fnpjq+}bTK`UoXr=*R=@HWZR_Q5PNL_{#%lw^6g^IO@`hTK<<`KN;pGnIhq0uq zEjO-7{xoy}x9|Iy6T5FxL9G5>$7wMBZ*=yOBKBSej-aS?X0HA)g1@icsq^vG!$K%% z|NhrMzj(9(e;{ulK(LhaXYbjbI_m)d|1;V3uZCyMRA-CG!~rseBP-B@bTY{EMcTay zK6whH_mzHblWVb`yS3=q$ryQnNugxz%+zL>R_izB`;|yKe;Vd0CmDFpLt0lJ%1g z1e3#oECp@{YYd>Hp);)M=(+p<+{=N*;|^t{bhR<=i9dhnd&uqan>4g3_Q~q|`egYM zz`~I$28Qjk!m-HXN$zSx#-3>%>7B@1x$QXu?WR>D@8&JbNE-4GZ}pmIe-_8E0SDw) z9_Q$bt!hob!+pdL-{KO=b>EzV5iI^Q`eUhoUOI3%7BW)V5`q)&djw%foP`c|)DLG) z7-&nTjl})!ng1NSj4RV!OwFX*o zjX#jYRm%*?4l%XPPhT)eKe#@6e>>*ghk+^;oe>=LKW7Z`&q{HREA9RArsaSQ2IW5X zNgaAXo4X*j_(P7?w4LZP5y$HBDS|~z^Z9dUN4`!2xXd|6$NIu_Mq~q({BxNGFS{O- zD%$|);lm|gX~9XrOx(Z^m>E#x*M9K2e@58j9i_J{_TR$uk0G*1Rodga16O4XBsAdz zMk@`Vy<*PDtp;NJV(i5BY$A)r{)8CX$gq2J2#02lC@9hh;G4ODF?_7AEQu!0W8>C-Cq0tXPT$Dv=yV3 z-j`;dnPE*CerGe6%nT;#e(A|VEUC{!I(n|y^Fn^bRs1A{4mhp%TL=<7h+fCS`lNG1 z2C~!D+0s~5=X}d9B%3-nhb=a!Q=-UmmZcCAbMCN*(-BWXVP8T~iO&CGU~*U4$3sl+ z>I@vHTfLKG!bE(zS@2SQ(`a0gx_t3i*PJMxZ#u@$xmPc!i8SPYF(rkt2+L(2jwfqiUt{{ggJ*M@3o^|zg8B8N?OjQ2ty>BEw;fR(IB?1gv%$zK- zGP?Quz-H)HpY zJ}MxqodIuLNomPe_)tF&O6yc8b|v9hrEB+3;af5nr>maG*(>xKv9}xER&+2#&lebw z!_}I+=9p*VAL$V-&Sx`QRHH4tE=@tZ?3*`>p}ED5D2_+It)dPa)-y5>c=|v2N;kqk zyNZBAA;07O=7fg>cH4T?2^jFZNx>__vjIdE%lv_MxXN}zR53J?pIu!S&n=bI0COdT z2lPTZoAV-O2vt^T3C*7$Z*rApOq;BF-K-^<-q(&SJsDdB!1R?S9zoWms1*!&RR2n6 z#^PgCC?e8`1H9YxjY>R&aoS`a-b~9@JC~>8QD7YdZlTQC4x{>D(`uh|J>p$^{Cs-^ zn6lY*d$(}?E*a&AzK2YIWX$)XMeJ%55%^nyh>Ub`gsNH;R(%l2A^`bCL7>-8AhK^vmqWnAL|%GC zQ(d&R$RavIJX@A7M8}}+30nTj_;N67OpZS?z4Rbzu8lccu2zV+Xh%!Np8gkM(cI-@H-aGZWa*dy^+1>*|1gdJKI$tsiE~sa*1Brj? zBT`3UHyCx4X)0R7T1`GdDpo5L zBmAM6h}+?GIi&JZ+7dTNYYDmFzWHzfrADT6JV6Ef#+W< z9tfgy4x*tIyt}gresjvrPY_#W_=5EB`f}8NmLL19`y7c<*tqFt42Sr!la@e|fR6hI z?SvAg6oS=L3k_{m(aM9hqlkC5v;5=jAGu+DO-g3hbv4r;<}c;UTtC5=MoCv1kT0sw zpN^VT$yw9@v}v8D^`TQk_?E>=Hf|h)d6dj5I9%mb;EySruW88;b47hT>3k>rjaYc2 zjsHgy4%Gjgg$yCUB1n9Dy^43>byJzvH54O#ckeXZetOsP+_G;wI?f4Hhx9y-WN3qh zohLMXOwn2|<)fgYI{VUve1?^?Z4~#)->ZBo1>F3p-N=abx3Yuh`~cZXG*lWW zwB+OfS^*e#ROIP8H-+O;=?9FQT-=c9$)-r)+aC1r>nGa0c5i^%%ti%_mQwPsQLWN6 z(3w^x{uIc~GSD*gsEf(xig8^&1lkfJcKR}S-sl^bl_@X9wiTOkSy5m${cfMdL)m0| zo&WCn4PKp+@I0Irx9XFKRo51z=|~~)vhyXcWwEmL#T-EVYO!{Xj7&Pm6#Dvg`{pLQ z7%PCWhEfUlH}W3)`WUwX`4Sbvq3o`{mEzrF^bK3^ov(}_M4}nUBu|6SBnuBZu!x7X zTfVCYNyhV8zrOzPR6jG*6dbv6{l0i}by}2Qxly^(fYmn>6Gl7o3Gy-aUZZdl2)s44 znF`+*cc0Vk4RKl)nIkCR)G80y{47?(1ll>xSt_wDqQ=q*0XRTGSa~i>^oX8$-47o% zvgiMav124kQz8@FqwWgG0}w}OY}jOVjP#xZ-tYZgZdyA)z%$~lo|>52YOiFNaIAnA z92yL;MI}40#6oZLs=p=yvbsY9}H- z{?!4{s^`*ln>vnqZ@NDaKimqQKYQ%DzdlSAZtX?+^x>+`=9CkFmtx_67p%b`sy2uej8(^X;7Bm#*Iz`*ZYsWQRg#yFGK$1*uHO3I~6be)maq;M$!>oWn{ohNx9IkS*YTU&w^XcOucYP83F1-aP{TQrFXF>DZ zif07tW-r?qcW;W}IRvVXM+ru3OHdaAyPi;MGkzdNkP?iZ9;7 zWz?5`E!iMhIN29k+S|mDj0RW zFSGJ$8OXa^Ti6h3yTYE`95kQegp22nInJB9ZmbB!_=gj`^*PHBI?B zC*`03grMLdjCL=<(>`Ns1EV)UpVj|_268fgv<^AG6krWn?7p=DdA&e6G=N(Q7r>dc zc)6gafmBHq5*9+9G_=yTz>plB`HUzMVDP9b8}G7SdI>tavSvex#}%noCI~Sis8ylQ zn^bpxbm_KSVI9x#8G&=%Z{kK=!eIVmvtonnfC=cDT=7*vWaU@X8U5=AjDe^irH{!A zz=LiCsx>ts4BO|Efi6jyQ}Yp2cM#({URoqqAFpIQ<`RQxn9|#!{#ag3M`s2eEd%Oc(p2pq;o-9+yY_1 zAQUFhFH&&-H_7vuN_g~y(GLWHEwkWKrd!L-4b^uycyUy20pKNaa*=(5a4mbtEPAe$ zN0}z}864%QrG}YKbY5>FjMI7(;`e3*)&nf%!B{>nsDwRF7c~L&Nq|UrCChl0+gs?xlG$(ugs?tts&=!@Hj5&M&olYw)%QX;*v<`%s`j6@n4|8 zNH*KVf4j*9l(iovZSN-#-8jzLBT;YVPM%MN^w$_J6-;%?2+UY5$WJIxhZgQ;`dd6r zWfoMuR%NJ-aKxv%!g>RvtDr@UqHyVrXY{jJOkz-{fvYgEo*vqKjCJd*&0hT}Upa7S z$AX$F>Ou#Q2}tL{K<=(u@Bj-dz)l`W9Q;>JM*i?APrUiR+i5^sgJFU9LriX!OkZJz z+uhG$w4DAn1j^RI%uP3-8^*Me{M|u&T>gvlFwf_J3ltiClvnY^TSG#}(B);}Kv14C zCqxn)^EtY7mHUHXPXaNmj{PSD%`DQWO_Xi+PduoopJNnt)N7+LjV5_`*$Z+gx)+Gz zgg}Z$SCL*oj4)}on2dU?LS*ESK{x;Vo{?}HOI7P!E^rmiuZ)|#LCdGNOVGJ zwxWr6QM`IgUIF}5R(`hJr)N>4ByYFhh|#qOWr1yEVsaC0Gn;5IZh-nh86?`0I@s~C zD(&tXFis?{TimI94zB?avx1S=gEfyr_2;UxaD_LT{l^6+e#34#7K%r=F_}#!xm;|e zXIT0DKz1gf78^TmvTD{e|4G2xck?X`43?ZW9`$}nwQ)A<(;w`;<^bsRwcfKAR1)wT zm9$D909Ywus)M{00CskT4(ut1-|s)`VDMuqrMH$Gu4){h5)i{e@VM5k|4A%FtjiKz z`m9{79SQ)Nj|E6zF7a3wj#(CNhCfwh z5bO0=a|(#t7w7X(=DW88r8)nVg8TITs8@6gE~AAEA{C2wa)n&SOEK{7o9Cxj_lR7z z+4dQkkZP))p71`Sqlj&wjId>tdz^HAjGRbk4=RHY8blJl#G2i;1mG0^uW}pzCu0 z6COBOv?*lJRrdKwsKaEEwEN*Xm(AwQ`HDbI28trk=5@-G@CBOP15{lwdbV;EFZdrZ zzyI&53Oh#{tg!miRd&EBwI~E9j3C|jNJcNu>aRiNd+-)gq`_63^PcTEm<^($^&$&$ zNe;(^YcC{nX+{&*KKSc3;D>T|JpJb}fCmApB7d~Z-2db1s{^8Hx`$WAL`5W35XDE3 z?vzqNR9aG&M(OSb0|k~)=|+)eK?HV}Mqoj@Lz<;Qz@?jS?gG#6eZKn-+})WoXHL&K zXYaL+vPGPce`GXlh62wPU~yUa!v`9d_)47?&!7+&Z^{6@yea6Dmq#k%I!E3y8`kh^ zEy<(I9hrkn)Fxv~WPEg$8ay5R=To6f z1<0ZiuKtBXS0&lye+_LiI>Bu^@wV}oq8MhPYi;4%o6P4-D&~AI?XS6%pKW!=$i85x zR^tzSz?DdnY8vlKEGbF*a%7Y!^7-u#zw!Ekp3%>J)`2PZx_E8L6FCvb= zpOEGGdbU#KChzx`Q*5qyQIc!Y>3Z)MCW>=n)RQf5$cV5F z*7~(<$5I6Temz0Ret>`We1RlUt=xXoII@>AQU~%&V+~c;nL+Kps&B@xq1&pa7bG~ zqyVKEz;y$nKZ9YcQLRjrc9x!FK6s5bf953%fomq+W@x2c0mTfJPt8Ujn_s?}d%RS`uO-!EU24GW;Y)^I0s?90)+Z^8Q@ zxL?0$PZ@TNB^)CqC0`oWvi0vdknMMid(rk%_Wp&BxKQ;*@_#1-%6Osb^KbO!rWOMy zw+s0^of~@_EG$_zq9oqSLDpZ?a+B4vs)?=0+86H-seJ5-PUeAn_)S4+OVHNl%rRpN z+@ZoFbbYQVper!`B@3QOBLb?1CI$T<6=6_PPt7g9nKopV+-{OSn)R$Oz=7FURyg^G zY5heJ=g%F#i{1yE7W`>A|8t~~iN~6BLH;a*4E3e$R0{^=`m00IfyQEsBQkznr~wi) zUFtX{+{41RJF>syU2*3p9Oc1|&|?3<6O#D+8s_n{yAvx#?)&i<`cLt-{_5{Gg2Qy;89iM0;uYho}>dI+c;pcA`zB zwyt(@YtyXoOzXy9^NKxCgeV(^kzN9X@l6Y9Nl!xR?hc3}-=MfnYyWK+zUzO)_ku_p z$>{ZL@E9jqVP76;==gCFyc$f=9OYc#VUXNjQ#-{F5ux60f>Lan{`Bnrujvb-JT^j1 zC&una#Zjw+UMfvR<=zzu$+zQue?Whe+gu-OYVG^6bA)3Y#1=Q3W0vd@c4E#Sn^`j| zz8x-J3zEVk+qLd}rl3tVL*+u6LV|>;%Q?ni+MkNHGr=LcnmS6IBRg-!pLc4OT?V}r z2cx+j*Qbk)6-ZFiqp}rStf7gre@6Gqh%k<8K*LIudd_1#`N5fyVAZcGk?*w zH9k(c^S3`KXd!-LawKE@OMfa^`H&97!zMlidG_N4VU6c>Z~1Oa%s$ltj)d#p@)iwE z-Otc8h1;?9qxE&wrf4%{YO3!3oIsnC_F$>w4atH%&;`Y}m+ZaT+wEZSjpztC)V2ua zdBIf=NtknLT@?%wBIfl3%62~QTx)0vr&}!@y>V$XU4=P4?YV}g7HF(|SboK5_;WPo z8;EMRqT{HQU&H6;=jWUXYdicU2lU;t{j?Z@Kt8K$p&WDhizBO=3Pj9#{_Jzj=$Xis5^-0V(x3bsPUK@PCzi43`u1R)z zAAD#n_4)KgWPcqzFnVbH6`R`eUbG*d(LGjrlW9&tpQHfh1l z5bte@roc;Mm8(P`+j9sV^xqw;kfb~4T{amBjkbUJIO~o*S=4oN9HWj%kXf>C??}b# zi1{)_6ZcNta7vUU6TV2b|bxX!xc-5F|Qve zvy!XSe(wySmFADd@+gRXdB#w_H~hjPOaQ<5dj+fm9*GvL2O5hic8J9T@XwXP)hHew z$+F+Q^T&>e9z;%ltiYvA*hi6{6ko4m%2u5hbay4qngp*{(ZVL#4Dox6R4+GNc%DH% z-1_qE0MwH4Nak7fBNMcC*PJ6b5m4A&D?AYQHn{9-K?y0-2{=}Zy)TUjH0>W=Gq2P2 zvQx`>QNxFi=BNJ*0>zojFZH@`n%8uJQVMW6`sUO@M|+cJH2P&j|sof2b7!hJ=Ui%BG9=|eCPESkITlvw3UMs z)EybT5j`xMbKoKU<^_3b*WxVHxPQqSjcLBn_PvM=`;G2j;P;zZ3~mZE_^MI~9-yn7 zLJA&?gs6W`8trhLyDIQL7I8nQhuv>cBI5B4=64{iH$9dNvJ*or#Ncf+=Nn_YUtbtp z77@o_fT*7$9TLBWS?k*+@>*1G1@BxU^7#JGQL3)p>(<-c>+Ih(j$(fh8_=AwA{{z= zt>$hcX^ULo=(N}xjT%3civYhQ%pL2t?|mRyQf+e^0YY>tdD@!xXxlguUVl(y4!lfJ zS^V=zV%HLSX{RqH;kIFkmp8OBAQwNFoz5%Jsl~<~+;DfMd#UcqxVbm0 zhW@5D-+c9n9_JGmJtNW2LC$|05?=Lcj9R47unC4{Dq@~jW=6cs;-+5EO=d=2q{#fM zdnfz%%d7${wfcnsZ-!GcBC7SU+86wfUzi2Gu9w#fd?}KU$LsZpv+CT(uzgzFQF_g} z$elR**2d}3GSkA3@Qs9>LHpcwkByC8?d^&L@mqs$DE)2B*8*P6R&2&Mc6P%B(!yC% zJCwWLeU5p5>O|=T~d-XkR$zNva%p`2PMRRf>W|@vXh}RN|36 zZ8Fp$6qw27G0K;`Vq!WqT8X=xQnRInSsf$0yC&NMiL`P%2P+|+x_iy79p=_F3f84t z@+X%y(Pqrr4#RV+_>dfh#4Th<3ZfMrD(1G|-${ldf**n9{b)mM7jRyS2aRaag%5h+ z`{!pPdC=7raYeMQqGh%sU)jbeC-@5;xWW4u9Q%u14Y!xOE8=VGBENx0#r<=P9P=2Z ziiw+FmTyO|C+b6Ngwzzyr&6 z5z1*-6%pgsW#RI1BH@?!me*FN;7i|5iEq6SUZ29RwmEx!)DiXIE!&?*chrY6lKp)^ zCR5uPPFKOH?E;9YAilBD(e)!`7Pr!y8m`<3ykQ5g7=J`aV8@;(q3^sc|)pO*mX}nozJ@m~rgWNmJ*BwLf~RvavcbZ~gB&991!7mLS>xH9j}1&yEY$IO@g1$Jhp!q#g624#P<9;Ver-JuZ)+*Im62|lf@qW9f{T@Gy9Tt|f z5_*sc@+|7C3ZY~&0U9g@)hRLxXFrS^u5Uo(n6n?rhm`kveGS`;&)p@fFM?&et3CEC zksNGQNQXJeJZ&6g;b%YJJ)cQFa4SbMk2N0cCanG4OBGUBISuC{G&xzw&`FHLLbmi} zuDi(9M%}Vc``dpxIuBMNz2k3sET6@O<>=CRGye40tCj9;9_&dwSf1j%_3i_Tyf4HbO0ae{DO1#7mdkmRK+?lup8uJ)H@xqgop*ldd>>wc?7jK+_D*mQ-Xdytx+Uus{u}#&CeWJT@)2vKFlv^S*yel=2DOshuoU^?GBJh*Jj$!$M8kzsBFTXAs1bgRREl|>BDKX)=tAp|*&_#bB%LdQpW2^eG5+&%ZkvF#*8!aE9gK^LU-?MA+h^ zo{Wz(BF@W)%E*6P>CKMYS{neSx`*6*v8yDyZD2`$g1KUUd%-y%*ZQV6qpg$S(&e9; ze1+MY#V_k;NA5A21%-IpX!b~}A)~ge$v_P9lGIABMMNCD=DDu6HbDG#|FMP6in(gk z{OZr7Zk*lT&GbRIH7(Hm$*d0ullc_718uhzq;to9#qKUzLOva{yNCQtFnutFsHi={tWpm z0xCRj@(8HclBtdSww9IFnL8pZ8l4r_pt^gY5Wm0JRUbAizncpCAPva?!F_rQq{AD-xopS%SyrD3nbn15!*Ue?*T9 ztV|mWR2%g7xD%uaB74%1nrv!;mFrG50UzGldS%AW`_>hq@(Ci*z_cx_w)lr)d2^~O zJVf`p6}%#bMfRP9w`=jMgCqw|Q|p}$9#gG1y-VWZtX>X#nGR#cse`Rj$53Y7C(=T2}_{hXUUgEnRgB2hPZ)>!EPjNS__pAU% znchwDF$bTu_4{dQPANQY+2|3W7ew09!F$E$$_+BrJ?I8FTh!mF$S^VlESy(IYN$!7 z;n%9Y7grO5>c~Gux4(yo4=x8^P8O06=Vv}r%Qv}OjJhs#8ekM(ra`$y}Bq~+mBLTavaJhp5e42iCIRB-HfW6$N!jd7l& zB0TyLf{LPkYxd4+RkDTp*55C8ay6S4LE;_5;yBQOWs#aPz4z=Bvqm zbHFp}Q+^Ejci2pdz3&VBURdVI^pDENv~7D@#hO$f_vQ!(AGNDSCoHGPkE8*{+Ytbs zi^JwEUZW`x-m%RDo?m@QUjJxt<&$&yK4SI(r;hHKZ#SJ3yq_jWO`QFjk)i6$CJ%>1hBU&USgQ?AvTC)g^=%GKXu$n6o1+2Lr23Q+-a^B!&D7MFsE}M#pf>WW9T&y2w~zPcowumAn5+t6&;|^Cx_K z|7HDZ949esj`4Wjj3C$u@4qZgnxroW>9N_bs#UBo6XN5=C8~jzUGgG<75qC=uLe-0 zP5fByeFDH9e0a_uQ|LV}HBif<3+|8z!ECJl9VZmW(iE_irsaAXM)|AmC|pX~0Kg=M zJW7wqE35!E#~TzvcX%%`kBpKv9a`RalPfU(OCoXW^YB~u5xe)ckyS7tc zAs-_={zz?vZ&hVy+y&~ky~k;eZR)N>r~x9tVt&=}98NGf0roC|-rPJgYL_5*GgNd- zhhHb10q|gFwltB*|I}6P@%iW9B6tA*ya;=%>Iwip1Nc(hgv3K zE$IQI1D16D_MfGa}AEQvt{m^8kD*`p@Bb4nS3y!&@6-nD7$_7_3bP+Q`gVuyVo2qnT$2 zdTqw81ChW-45*vLsUr;Lwe;0I#3$!~ZTJXC!+8~&4f9!tcn=fWOgjaG%;UdslP>R@ zo`4}B-a*Jxgfb!F`(A#9R?I1D%Fxs#o&DJpu>32~bXY+ogn-GZ1Ktx!kr0<)umuPO zSaGGeHf#p68{iP{4x!>B_E+HsO!Mi{TCbv1iC#4Nf+-T>TWKV)prh^P<^!V(IZJ>N za6EdF{|l8m!CUx*;`#r93d@{MRD-bw9MR#}YmSiQt2JqHVGgOB#J)d!x-$EJA(@CB z@Sd6h_W57@VEwJ)Loi{;&>Yj)XK_X0zE1>!Qm}$vAY`OH*sNia{8R>oI!!RlA=ZXC z>C6AZ)nl(>^C2buAL97v12e%)e@IWXUoK&^3W)N*KRM)t(~XPyxZe3R!WUiAnA0|t zM_*9W$(Y)Sq`Z=mKX5as-x=|?gY*I@<#qQhsB-bZcNIi;T zr0x>HtiQH~Eh+y9GXgUqYbs%WBoq$_yMzqtb%KP#+Ab5;)DQ%x0PdsZ2`rZIs$xsx zeyiW(4?_2|RoR={>-A7LB5~>*B;iTmYrXdWUB_pN)aryWK?qVbv2m&o(He_5)xDNSop8y)NuSq}u7c`9W8RqnzBSAR?{Sk10`9Gg13XD-+ zJlx;WrjktG!EFxL^>I3sTgy9xUwi)py7)0hD(yeiSq-v5r~wZHa4aCu9X9&*9h^7j zf3b!U-x)Oc_8&mMWH3@G|M?_6(gyK`uq9ak5n`-WY%NEcaEutK)f(ii{v`-(h<hV?hXjFbOJTb0{+Bs0&L@~|oBw?B{Yn**^gmcbc9i13p9r5vzyA->U~=?>F^8Kx z;s>nY=~6Y@f0m#5-0}hbpT*i3ktFEQ znE2)YTP#Uv>f-+gdOhmM=o|qqHpHdq64CBYJ2hU?ykA zAhtUk`UOZspisJvo5xSD zv>fpPCPxSrHKn5Wyhak5w6JW)_S^anyNdwSi&XdQJy`ZHeP9N<8 zc6hjV(4$C-KqBFjZ)&HkqTzhe3w~{F-@@M+RlS$D~ zW^?8q0Ji!lG8uVA`L2!!9*d(?W}wFfJSByrEJ$rnz{)7blfjm^6lq_BABF;@Mu__iG@)+tNl30TT z!x*xxCTUUSh336E^uzt7uJ%A;^}H_M6ppd_y|O?*+HXHlXu7bvEa@z|+$1yGzEl=x zS7bDQ_p7+ZEg)%akPGoy6n6TfL25nZwX3mE zu@8veKL%1BrS{V;HB~i2b_e@=rg^ws>N-z1H{lbjFN8ej@9S37_xRINwBnKOie>3HW+sG8is^x&5@$xAa>OiLck}Isj>O?D_t}QVcL&-l$9e~VpBKA0K8x*b@z4(M@MTf%FJMS%>`5s1w3w=}jFO)%rC>tFZ{>G_ zJa!-g1+?hvMQwu}Ns|)&REtZ?Za#C9Zt<>V?6NuIj-!>Yi7HKBm97o442Qxp^>Bb> z8l;3w4G0ri7{oUBz7f&Fd|dC1BSqcU`_|6^^1lwIanJWd8w^N>qG8LBy5E6}WfD8r z>pQ6I{vvy0h)MblF7rF!iEss`)iFd8H-T6r5n{cV3Glc98At(vgg*tM!`kGI@1Yxt zfztJ`i;!(*g~A>m)bA2!>wbuE0NNPDa;F7%dQbb_$g8kw$W9RAzL`kc`%d4QV+GQf z!9Up;-&1EVlUI1*u~f?14QyoArTAJ9K~`3Y{@o;=-EP%Ru-g1Xao%SP*zu$~$go_5 z5WXJnhfeTVuE&|zsHz6Ak==P7n~)$6AvcKh-ZY+#vDPtYl=Qg`40uvCG^+p`!3Gb2 z%Z~O}czbhEWM%rW><9ayWrqN=8gX~(hGj=wCVsCL=4!>mG(>k~)4+}b~m|}q2Y5>Is zv~vOlbbobEyqIrC?G0oXq;|s}talDDfciGj za9AAN!k8N0GhF7bY{lhBIOwX}PF0)?Ml~eH^2hD3@xeKsIuF{Yk}8TWmqm6Ck%-1a z)Sn|)MwbiQ(`CA3!#sh(@VNjPbv>6nM+4bk#RvO4%JN*cEM7SaS5Lrv_z@;^5%VZY z^tp^hufMbOQ<>GX8E_6tpzXxKYWv)VEJV^x$QFMfp<_>dIa%O+uup#xB!y<)+|Q|C z9{T&cv6IS4TxDPt*_WvVPB4OC2ZDq^oLAZ+mimh-kycSn7a@b!b~lzk=jlk%MruC} znWp1X7*+bJMAFCCzUZ2d4&pCR8iaaUfve@S3QrwSxQ*&qmt)!sZImC`$JaeCwyT~! zp!A-4GuwG05-N|(QNXVc16#qAMsW7Usex#mIjup7B#g49h7Bg%Tmv160sm3tXsw^B zvP%I2fK69{ca99h_oR6r#9}40nMIvP6;JAo0W(%Wh~l@6fy}>Pd_^m0LkMLYp4Y&2 zcN)4)d&}#T!wJykF{dSxA)@;5SVDFixHG0mP)Y!vT-902TXnl?{c_ zTdEr}UMB$-1tqdT3hNCKu%mJc3TZ$Ys6v0(U9l=`jc$FB?T`6sprOzmyC7oTaoeFf z&#*24UN7W;FQro|j4EE6Jec*CQ5ANXDRh{8)qELE&whV-8`J<;J{Wmokfn)l0CE&DM}Qz*^2T6cO4R;v#osmVO^bF0F_JDLH7_Om7CGYuiu z-y`k;`lW;9A&69~0J(nn!rxNe7`V6SO@ml=nmXNe<+bD>4kNYNvx@LB7E8r^yoUaL zb0En@3oqD+vHsh0TBz4-H@jTxqL{sCcy4IX*XHFnu3Otox{oGvw~_>N@`5b4+(ZYq zW@IOYn96Hy*>v+QbrZjiwwvs@yMAhEzs5$_xi#w>@*pwi4aEFK0YBq22-WZhaevGqn)9hEDY(uEM)C z5LY9Vbgr;@>oBpK)fx_?EC<}j@9hVrUlQvVYbZq4ZeV zIF^zRle+CPCK4=@J%mm8@GQT~=+QOTusWA69A0$yZ}o~B?d1f-dy468EmDor)&j1V zLE~a0;B8~3akdFf`2OKML+QNWfqTL3Tdsy*a`BrhlPmn2V(MOJO#63iRU0qrJ7 z#!8%*ZvOV&U4Ce!MV@2#?Ah)gZqD;^=X>ptiP-%iA%l-Dm&e!o-ktmI;d#;C)}tKP zhb<0*-|JN-JDJRU>2WgR5^gF>L;-7m-JJE!yK{Pv9rr_4UJXVn{c_A+DqU$QupTK_ z^L?K;jOz<|n6vUk#Cv1VUctPDq)5y>u31lUpxfTKyUs>YsE9>}1>YZR|B7xnM5A@ELFM#eSNYYQ}G4+vvNTsIyms8jAY z-`yX^V9oiekoR*Anx4Fs$OJ}orU;~4-?BnBz3q$;hcF3Q?!@2)^Bm$8(r15$N(AOl zS7Ht}hTW}gZ&%2_;#G6pw9TogC?z3n3}P0ZYfv+@WtF~W)$RIv*P_9Xz$p!HpVzV-#N}fR z7{VqMYYVl##0^|j6_$itTsD#8l=NR?tVNbBNHM%j8q9ZcN^ZId58)NWLvs#>8l?mf z4yziX%7YD?OXc1hbomyqqhyG*(0{g^xE%ky2X4B2JvxHFVSz!{{947^Orb;b8N=a{{qH35-5t zSy!H%fmT}};=`nxubi^ZU?6eb!;emWh2#$mmDBnh^yO5!COOi$M*|kf#;MV!0pz?- zX%qRTSm={owCj34TMAh}&ZgKX$(U|f-l8bso@r>l0jIUX@;jl2Hx|@H-(zyQJm+6C z>O65Ca&TOL-{UT^lc`a%%q;=|F2P;X_UZ!9Sda*kg=2(+(;hih{~{3AhU&1)YGi61 z-CLZ2?chk1tp2td51(yjeNjzJfJ>HKr+my!%><^Nhl9O+M##klvM&pB+u3Rj#>TG(aBzHus0pEIF$)Omtj#%aq+1~8FWx|KH&=h=>!Ml2h6!M`G( z3oZQfCO;K{*tQKExJn<^U~hCIn2T46EE)N{l&a1%%Pe+AAM5Y~mB2FY1s)R$zl&WwK!5b<2yu(R;-vH!nYQwNUMr%$pjx$y&=5 z+-oU2vRv$&&vIun)k**!utOcgdz#1KhoHKf_?vByc_3G`I|=s~E;>FX5&$TPv!mn- zhO|ZL!*-TMy*uWR4_l{#y?0#j*YhI!LH?eTkmZ)xE2gmuAA6u}XZ@&a;`~iw)!K)^ z_Jo{!`3^_#>WVL4h;hpkSyWeN_+GQsIZxSwWP?+G@cU*UY(j?GSn(oSLzu9jDF6KE zTVy|Hl}XXACfh%!2@|~6)A6%fx>LZ}lc}BE?xc@UU&9rkb*^^r<>W9|Gy?iET3qNi z440l4sLtUG%|iR$XR=V$%g7UyRuKlR_!A=55-q7#6aBt5}9=H@# zuax3qfv3)pb}cQTX~bfemCB6_VqT~xBR|hvExv>Mszj8V99%osw$^G>pzw|#J>1*s z|G@c=``4(;QewJ&dy09f+mFxnv418?T07J`QmSw}odWY`1$@j!sAqwjcT(>-YHRTZ z_r0H68>6?YkxULav3-R;Ofs^K7JpOA+3)v!ReXOjStXmS|58@#|Pg z9>LBbQ4-5%8=~75OQ%r!*a`mUdBIRl#@{IR35)`PF*D;%p&-lmrqBhJfHM-~65)<0 z#<&bkBd^+PN#^jt{CD8P^nxtoZ!wkB8@H`UUv+U^V%g8Z*m#Tw38d=RjAQoJ2c|s} z$CsMdHVqc0&k5qDp^V7n^Io;Eyx;~yn<+QuUX`MR%yK_kad91)`_7B9sw}-$v^dOT z8hGtPyyrE<<#MCOTt~k($5zpeZ&;9ClEw>8?OYEOj~w6CxLHRd&Uo|DK#ig9FIVnf zTauy{OT2wQWz!|$-mM=Vdl6{invol~y}Rdy7|43`bH;Dz8fw?!k>h*!>ZWgKWJjU8 zr!5y+z|ksaYg^9W*L`kF-Pih*!E#@-?%-$WNX#2*LrhILLHICZrLve&YjgGm6z?yg zajqF|GV$EJeght9Z?VF^!9mn^Br_00UjSGm=2h!4?jtyb9&&;==;z^|h2w+}(>cs| zEv#n1c-co&`^j}B)tn7ruDS;@R7HofJeq5_9B)teaX-rzKEsySh$Rxj_famp1wCPv z{)eiLt13kd{>wIGS|FAFGD{1Ur`RIG^?;30WioKOg<+T_^CH@SR&|RS=SZt$pga;n zxm@~4KGo7w@tw472}sCfwD!ny$PljuNy|lDCxuhZLD9P$^*?Eh>QwMO1>j>+rs zU|lAAl)C8Tw}w7Du1|GIelHt(EeGqEPvvkIXKUunJP>&h|K61?G7o;uM)ew1c;}TY zH&2x{FY>y3sVwYH0Xnox(y3Nl%v`tY3y>u6nJ#2(1%^-bZw+w<3%{jSsMY2m1@ZPs zjj-E9bmUb!@&W4$=ooNtCS;6FzF|yMx*eiW)^G>*w;@@B>y|mu_fgXexQ}KIH#GZtV*V7mz%cvf|OT%fG+D&$B_FQ5j}yfN^xCR+qHufnf~|w?JzN9tzz}|=0ULM5 zC>?it{0x%&gxMK1wOxO|cbKi^GhJwSMb{_K&Oos@3Q`01xlMzYX);CGK`)jq-Bbxy zTO{I?_bvyp`zs}hr0-SpQuK(_-K|QT(ve#@?-JATxdO%HetND&>+EEV=iHB={G61x z;+|}KdPcOO8x3C!GD{HZD3S=cxV~wp={53!(XooBj=j8=?;Zq^KR56|) zSt6@jHkJuaW`3zSe!7u(*WK`U@EbiIqnK_&c5#l}{2s##sqcj!71`)3`)(Gr6t2!} z=v=kp3$q~>CR7|G2Evt;u2HIHG&fy%J+r<1JKtELztCL02Qg_&lX(uEDVVF~8TbeceD;ee_`|&u@>%r# z%-DH>7BW)#X*H}XTg!Bjx0PzUT878IT^$^M;79Mp-t{F)Ql;~sEI+mKEshG6cT$MG z5vngOa_VUuf4tHoc4+mxA66mDvsg|B3NFT$lo!lg$=n^O(=2vuMVl9mgov!zfwZcl zKd7xfASTFo`XjBR3?7pJgv{jWAIzw4Lb3ev1DY1!RehOJPXg;y>sFpy%|`H?%&>d* zTz8`U$<66J;nXCoITyQ`bZI!t8P?VhMXlH(#+dK{hwj_BOcybGh2g7KKTTDo;3BPZ5NxjiqZq@U(qI7H@L8D>?kdc6C1A#lFVR(*manYEzVE;AgWR0StB1|KTwB&Y>-oF)c|lVK)l!+D z)%(omR<82)+5i(WK?v<_Mkww1wENj)&Es${22w3mh0Yst^}8wMlYe;(q)}Dw=^SE^ zY><9AV}9-V8CjvU`UxEcQh^$$3?ZygMhjxgRs_d2p~a%A;QWq1-TZ=ST;w=kN^a|}`{>`iFt44`F#cS***DRx%UO~BAPEe+6xOZhQXI=2JIm!A(zxdENK00ODCUK&rCd2xKNm(+ zNtUKI{3&WEoNh#MOEX~lzH@OQL zOB{YUz%jk8)GqE_u-!?UcZC1~g~ieKAMrJRi)A3nLGW>gcJVp?3=? zRLM?`UL*errzzR!=_%2r%JRs`y4wC59Jj(3-DYN0!i72(0?8(m7dZP%%)9C4u#P*n?xK`+&ud`Zq zzVKH`VU6jj;+OaLLPXa!8g37R_7L8m?zdY4Z-}{LKkV;}7UU$K`qaCYSn{>w{L_@y z-oMTtrL$95IN~3vz@dFaCp?ecz{+-=}H+4z8?|KlypJ@(b0~ zz1xFd$p{gCWwcer-n!aj-sC~CzgorAJ`?3We{fS(6T*wP6Y7){i0X?(Ra@${i^4*z zyKr6?Z~Rj;?zh%~`c7qcZE}lye=%RPM_6Z5Xl%aqCI2hJwQQJwnu(Vp2C5lbA(<6z#vFQ11pT<-slGjI<^ z3fR}4lM_m7*`T>rmveEuK{4whvuyv@rN>(@lKm6yi`TtW5)SM{a$M;0D0n5x4Bp(> zqaXYV+EfACB`%XvN)~i?ZJM&nC0vPczb>Ub5jCuA)=%^)bsiVf;JWBfyjWfPTsv^Q z;pq!}u_!!Fbzh9LM5$aXh8pI$rWHMJi`{Vy6)QO*(R&V^?h9pYVCm1bhyvNp43saZ zhH?ZyAOMo1=iZn**uvaBw}4ceKN4KWYa5bW$!v{lXHx6<*?}><{$RQSkxO*OUJvPO_#@K>@XC# z{fR+&zpZ-L+ZZNu=IK4^^-Tx-=1E>{s*w=8_m;4xh0(EOe;|8GN6kG~2KupVZ;&X3 zK4IlhI)%mhCvxuDTu+~1R4d}@n7!1*}Cao);aQUVf_li4@E=hc_fn6QfWNV6h_T5Z|!MXF$!4=l_cyj$U zs3Wjg;a<1@y5_@cTf#SRzHlVoc{sW_^(pB6FJ|5-`hi%IX0U3fBrOry1_d1ZvzJpq zQABmO>MOS2pKo<2I<`;}w0Y1T_O0}@zRC78#+eV&FEUvN>hzxa7&jK-4_~>%95e9U zydLzpOpJ=gGC(Jj&g9n8u$!(^uWTGw-^ zzN8`VK7NMjzCuuIy)Ica&VuOH$~2Av>baglZ+eWE`7mI1ex`MTj5E9j&KY_y!@(9rHRYJ3798E=%;dz*2Hhq zIzn-J)TCw${Tq^QAUk-K_mj=MHUVvzk6WLWsTU0+EGdM(f4ge&gGJD&xxZW6?Y`<|EMh6 z|0BZWZO^;IwkViMMfHbRw3JkfO`~t~76LK(waDqO$O-McgKvz$@Wvd^kb#?@dQ4<7 zhy8IrMpy4BogV8MjJZnglHkL>;w3pkBeZU0_O*o0L(}9DC5g!X!{ViOW3mD%%cGVl zSU;1oNJkBEvQU~&^dOgaaQEPQp~r7zpn7+F>_+IK5U3S(@p8SI2Q-sUMjf?LXr>FM z%3Z>3&n%wFPWj%q_Hs_^;3e@impuW(Va-;Vf3&+66oZoIwNq=7)??fNif>Ng#PmrdpRn~nE z=H9k6_5s0_`5@EI+U`flw7w}&aq)_FKHj@m!!_{hPAR6|ynw`&(YGWFV(Ig_a3A2D zYKB8h5UG~Z)Su)mEY&}pvw$+s`R_E1HB0E1S`BS)x_nJ2B%hy#%KVF%{mfl+(|*ml z*o|XWamL1-cp~|n^ffP&O~bVmi{VlsF7cwC@N^R=?GYULEvioL+0ee0TvPaVHDs8`X66P=waE0{c1%KL~0Y<_(E?EC<_LIwXkoTZuUdRkPA-s=Ws+}_`HkWN>B}p zr_cYq3n=r*VES3iVhKlSOeR!TFHlra^-P2+pCEUDD7G$WL^CH0Qhw=4+|N2Fj_Nxj z6m+mF*A5vD&?hc*=VRQLuJ5>V0QS02NVvZuUBvyD_JOZ+eiX8LE<;rpx#g~vTs7g_ zPYb%~@`5viVTNq}sPwACUu{QKgBsp*cDV~^gU^cWr1a50xV(izR6~1Ilxy(Ku7SFs zdxfY?>JZ7C;8`_d{0t9A3iASp7~0hoc1J6}sHF7W#5Xj`Zl+u(13jc5=DRG!VaCt& zqu%v(x0)w0SshE&SDMbJ@8J0e!?^iA-brd{iz4Tx;SE$>puO^zs>pfP$LeVTRna$H zc730v!F^?@sI5ddo|PX+lN$%rKY_}6l6#;(fv1}-6|H*rO%2ph@<0`8CIMXladryH zei~`#UjwCKnO6Bx?&lajF2p(Z(#h7NgwkqZq~f4#`aTZHlei<83o2aK?8Eh`Dt}K1 z>s~;c{3xMw6IQkSLgo*09aiO5<_5gMH1`wc)EtR4(v;p=2NIgUV6Z6V#hKeU#KHhN zO(|gJ&h+UXe&5@2=chp&gcqrmi(7e6#5l>PKU7mRu7wkeFrRA@zfbM3(3e*oCNe5o zRE1=~&T`IxWND5^e^3AHB-XN=UOt0cv1lrkua4i^&+?hH&XO8N)tSiUF9@c+t|>r! zgW3BLe-vVTCb~5dYT9+vYjZ42W^r7(kY<2v>f=gOGsWtvQp@-abEB@%muHf*v3@&r z2Rk5L$U5XY9UtUM8z*yP@s7iTmX%j=hDlH9`--#tJ5gR5+9qWDmKuGipz6$Re8JOh zrQzTEEt#zUJZTym9ie@?dh|n=sK_`fzD9rYX%St&bc2z3u$zruay7@(n zi>h}Q8P~{~))eR-8q60b9@@p{v`{lf1{1$!wm`qzDwJDU1p=5_tRg07HTgp&(uI}2 za-Yy*2ZODAzAu0M7133)3cE9;Q2U5wN0{E->2E(Uw}#$5wR(%&A9Nb9#IhMX6kI7X ze5a(d*}Auj(r4lMf;FkJb^fz+7bV|Z=xHW2l>5}6VMe`tIUKi_eyN?=wT9>`$H)p} zxHMZzD~FAF)!PqQCAyB*-5Zcfc(gg|rgIF=eYV~$If$A8!5KtsP7YF^iG*RE08?(f z^VA>%SAiu?EtI`~O2i3Y%6}K-=ZFGQi`%csH8d|DoVOCQllDz^xp+HRzlDk479?L@ z%29>DC3vsnBKGTD%S)l|3FR71_SPX=`QL@+kqb2LNl^uBXGwr>&6v)2lErAwsQIgA z+Gmvu_CR(T_ZDaXwjV8%-C!>+5;k|m{3%hN0;rFIOK%uuJ(6JOPkp;8q8N*9jQgqa zPP!=7p)2KSsDxck2J_ca>~P4r!WQxkIA9~$9pvR6RnSd$F_h{)59<562p*^2-2WA6(^v>s?(8a5)zyY8q2wgt z=>4(86!y&ra=9r$U5ZiXU3rg11U=a4j;nHsr{W)9YA74hZ26ncZaXN=wP3+dS~eM1 z%$NE9+I#E2Ccp51926DA0+Ems5T!;s2?+%WnRK%ef`oJmNQ$5|Dli&Uq+v*IqeDVk zfsJl90Rdsu$nQPy_5M7*|H0?+_`LT6+}rM*b9SBUT=BeO-}2}lS-@_~jjc!TGYqIN zNge4uh4bAFAL5QNTJ_FX8%w?KNZnsA{2?#U?cFeqQnZ^Jl!+#D8d<;oyFA~{OOB^PGEq6hCtpIzai{V6kcMvL+;cZ*;Aw(xkWXY} z3L1GXD*viy$o)6aa|^T#-eZhTp?B0qJ6L~4Ey;U)f9m?d4?(@PKGo+bB7e0D~G-t8MAa~i?A)E({e~(Q});Kl)fP+XHiTk z+iAX>&#;s%3jR%kq12c$Uqg+%kF7ao4Rw8_f%GQni7n0jtgi*FBBKX=M{0Zep<2I2 z6S}k$ID7ZoxQ0T5)^Aq9_Z&F^JRHbPdPs2<%@vILhW6cA{i9`=f62;CgQ{TZ2*VK^ zf_gX+(td4+OTG-&r@^EN!~*OgwM5g~><0u9AA5XndO~~PI!pU}aoVyRMk6E=o%QXJ zYeuqTWXZGE6x*@w9FYZwz6=>7WZiQon#)zL4`B4p?J=ya6_qf2*GAn;hVN>=BP$4Z z$aCaZ%U;QA=lEv0KsY#okHzQEdqtXD~8T>L;)bAkTOc!@Otl zF`OUm3ni?P-7Mt~wq-sbY8@2T$20lIBdMIIsrKDu8*HvW8`^5{^}$RFo3_w6P8hU! zNSx-a0^eL^wc}3wXSK(-&)lherQKzXZ`XzVYa^gW@nvjq2EMXscougQ5d7vV~>|;>@(t| zu8l{FZR^d5o$qN-t1I>Fdj3b@`*lfuwyx}RVvktYlKls^95?A7IP&YtaPxj&kA3kx zaIYjl2;y>GCy{gdh3Y-=B8Yt${`?J{Sx)a%%U%7Drz9ns6}iu5&%0_6 zQ%N_lK{8;gM!%XDK0Z0Uk2*VYF1nVAVBsw7qUXe)b};UUVC+`IUEUN()zcI!zP~o+xS+{4P+*GmbaXau zMSo6XVQe3-vMw*2MYWg4xT`Q3{qooIYYQj%reSCOj9T|srqS-hJ6Y9L&DqSPZ}&a^ zt5l9t>wGz-6Mc=IndA-LoZJZ@K)&|0V(7VR6#L;M1OUciXdlZ0J{Z2iLc((k7$q?xK;O>YX z$(@@7TTL_dc{$NIwxa8$&Dt;_ktWD>rn>>AtL`>_0TG!t&Ft>sw)Vq66tE8H+cGY; zu8)S~c3$Dn?QwV3Fl9*x}I>UvmHt(~$HW9bSoHZm{U5iCgk(FAAST~tgtf9ujsFV&% z97=AzA#&@+YdyW4l1ts&e@1kk1ksj^@a2LN+QoA!+n0Dx7D$VyuN>xGI_f1M2I7UXUhwNj+bd&< z=J!Q-ml3J-a*l<%AqpD0>`n=s9TA#;UcX+1iV*p$9HjxLU{Vnbg9l5$$?yZC| zy_X!K5#i8vZzUpZ+Xp0)woa-$BKxL7^Lle7*wn#FoX_*=x=|RP;O+L%jqx#IL0zBH zS9F|+{0;Dp_WLoeQ}JUThw@*PVCxyTh;LTIemf18%xMA8g>R^B0N|IZlzr% z|7k0+I$zr=RH_Chb9nUk}&pkY??#u(@OOyqj4TVA?&3W=*VBqhr;@n}dJx1YH%hds23IfAV zjET5Ox?AKmfvRQ8dlogFh_FS+JE)&Z|HifjFq%IeU;Dql&lA!?rd;bB;>8%GyK0%u zq6`&0oj({xxPS3344_FJ&iRf?@{V+UcK4mZYrP2*0|9ZqnVB@}Thmz#> zB1v6KJ-&s(0J*^~_T>mi5fnbt%zy&cPk&01Td5n(W(x2fV@->PI5v>CY`yXs0ACdNul*?O*+2#IHELTU^ zF=lwwdU$x$kRhqh?!03|pu~@|eYzY`IoNhhIOE*|gt$nN^QlwwP~WO{2-kn7xg0=U z?%j`xuw;SiZ1bwxYDb9`8JelpsIZY6#bFQp;!7fPisQWN_wR9+@LGVzL_hF-zpb*S z?4c)VwOk(nh7NIdV`vo=SN>jeL^FXkyt#wY87f2*-S5ynQRGKp?B~lUvLIO+;;B?S{ z`$h)HGgg}xCW<_xn4PTMsO$Lbs)pQ;8X=rC(cj~XwVaa~W;%C{e`i*5qQVzdJRP}> z-X(3`p1c_?vFbH3m~PqEe3F$*7StK9<2QOuARceC5Ez(gd8ZTic=snRUtl5rt3;KCEb;l$ z8#lF9MFNnC*x+h!r-?R!jtTxr+(G|X=36zRkaSD|HXMvusoR+x`|UXfc8wA0W7ywW z(|8XVkej;%Bn06<-B;JU-H=q^d1zCjg7kBRSR$<=r*Vz!$B`ab1&v$)o{<78KDHuR z7$w7OrG>z+$SnXRA0(rSl)YhBV+f%c^$)O~n35?65Jahzluxy0Ss8BazyFCBhlZ!K;zx%j2?TZbnN5l+K*m#6ev2;@hdZ+M(-TI)6Mit65wc z%}Ny=uAbW~>}49!_3^_#jde<=|2&0t=F8DNNxMU4c*_Dngm3QK3^bfmrO^J2K~W~N ztd~zIcovO;B#2-~7gsX~qYi(59WRg?VKuWF^o+~KktFq`g|;&6G5ej#2S3M}n|3@3ga;6m|MJ_%v9 zpNj6~BnxNct~Zq;Y;|_s@AYe_9*FbftO%dRL4m@gAGh-)UY2st%2&ljB`tRC96Z^k z4H%EGqoUq(S}t3uYw?C0%n~IU75D z+f&J@bL#4E)|B6HY*~CC<&(q5uPLtI*s~Mnl=9x~2!4}D8HyP9lk%=PayOv+2?zb5 zUjelV63DKerT^)wDq^;DuY=cHzxwX zEE$lyVBq!BT2+8cFyZ0GG!CR{Il>-6B$WT?AWlOz`Q_?(GRaUS4Wabnv{_??%44Y4 zqz}F}tN0O(%LD)!DSjte`ogLwt)R#%#z|$2l-w5Z`^gy@f=;E5CVmsOJ_KL085rki zgr{7TchC1%V?cggXK~v3`+xkS_N_&S$8qI)I9Qd#$VVrjlOW>G#kfUKkC$@K zedAObEw_nHT4$M+z$azUw@YD~0MF+73LZ>J{4V(tsQn8kMs_#?nPyaE=CY@x0%0p{ z`5z};M{dYJdkPBk=I2aBC0q1slw#bSTp1bkftyo-g2s$^onGu$s=IhN!O&|RHfkW5 z+2t)n>-5v6H<}t>$4q8Od5R%MGcYuA&hjZBk|M5)$D#JPZGhaMa4A-$8kdpI+_70=@scEh zkCN0}M}pyGBC1a-oV92m|DA6{HP$*$wEKa}^g|M(%)1i+MIDQ3WR7F=ZTX9A@Af{r>Y#XR?@0)oZeM6fCrw zJV6}fcc>|W|DVYhx)a09DJ1Ft~#{`dYRioKhxh(9jSC8N~eP ztoc2-D#@`kAJR@jH#B4#R)rKAdxCA5F22#qo|gXAM;^r19Y_|XbV>p}{;oSX4S2C0 z{vPWHX`zyoCnW#&%7^o4AXnph*Go4y(V^|VEqhkdN`j33y-$TiA_o$M%Y zgwsL_Xxq@WwGO}hm-`pC7|j+ZNgaK@(H)<(Co_L&#am0?HJY#h6cqw%5*Rh_N#g?W6c87?PyQeuKw>np_$?n>X(=`kg7S!gc+JnoMZYKph!-y#%W?| z>LhydKd)z5V~a_o{{P*a_0k1$GG7q--~KWh@vW0K4s<$C_rmF}(a&!!V+ZhknRm@4 z*}PB?N-<`K@VQSJ!1PBeQ!5ZM!_0Pq|DfM{Y9)@-g?~Y5QCq6sS~xm7a)uru*>Aui zC_q5%A@UvQbN9g_qs?NyAJOfv>wDKs#~s6Aw`+^s_&6SNM44Q+qp+=Xm{oKvyN5K=kxUydqL`DH=aEHulcqP^9%!Es{VW7)5UR z9EyvJ_tCd!#_jx^&G9jv+S=M`sh4dV85wD@pO;{|yBL(%H^-g%M7D3k%l(p~Jbi9% z?p5Y@KV)lbYQ~lu)U=A;M!g0OvA(2pdRm$^ODZH@B+Zgz|G3}B9BGT*CoULv$o{Ab z?bniIsNM9V&FXOQR?SwOexDw95F7qCBGx2op=atee0FTY} zx%Q>dby`{}{fp7)@P@(n9pf94gL?vO{GX%gT4^Vxs*-AM@EQ(DU1crMr;*O|U6iP# zle}U_*BSVgg_;P1!x5 zIO#*2i?8y$!}4 zxE;ve&3u9TVcBMUh&`VwgJ`4{o#9!aLd@zq=ei;ojXg6J(eUL6KdUZ z^Qmf=!!+ZyY!8`ylg)f|ZFIKVmBePPXu-4lJn3B8^G{wsDP6$hWW5G|agq(mN5t?3 zZ@;R`7E_FfefM&aQEMC8dsng^FU62}&0ss*{gTYkO+q$w3O3V{f^SIEF?)4M&}!1V zw{$IQd*=fOxr2QkhjP@ak~Nj8iYdd?Z_ zp4}F+QL!>GQU^h(s7yrPb;}uz+J>xJL!{X@Ug-$4R*pU6{e6ceF&II(L{_(jTJ0?x z1Z}OVzRH_utXjJf1xV5>w~|O^453g@*xA43CR|W48u%HA&+zFkdsP>u522Ht!_4`V z$=D6Rf_RsGz5GvK9_=8Xi8%aL*WH}oegOfpn*ry{O=$0QvJ7h1pGEowy@MZx`SL|J>9jkPEQMN|dyFMKZh^SKDU{W&IHwQEg%sxCDTVkfs zD3{%$A55PmXhY9^>5NQ#@MMR!K=g-ZXma`WfSW|vMw-V(>KPE3@#08AnId*E`)!4n z)iHkSF6C4i7n8K2OQaqRDMca3vyezvHcfw^!&@uBVOu&sd#&q3KSn!PnaVjku8ooa z#Vym`fl85vdeVXJ76bTLspBj=)r*pu>VwtQ)tS2AOI<7!NJF|NQfshb#P}t|jd9gy zW7^?=y&xAI9|=JouxY#a0aizm`*?~xH1sb$S>?jbtQ|k2@;QAYeQ&j^I=594`);QL zO@^C5Z#hp0C!LK`TZxN{quLb=&B_*XJ>w^Irf&$unJ)e-+aa2EQuUV8*99JOLj)kL zUe;~*(gsz+$zd%UVH!`!WC(TN?#oa){Y)??3Cq8+Nhw#fNzA@VE=QQsaP$=K(~-$6-*SxjUsSxP&3 zAep~f^>@=VGd22Crs)H@PN))fOZ*8T#J*>NMga-ht)Vj&_<*`%Z`9fP@!nRvi`KF_ z4fIk_@6Vr?c1w*-LU7hcS(TOz7o1(|`zi;4cENLTI11!_rIX{tXta3kBj^~W zb#5wq_ZK0YNGGig>nTn8rohX#;Q1V)S^m<{9a0u3Bq+E&`Hr||7rL$8UqEAS^a^#q zq%MjuA(BB9*q36>@5CqsI7?YptX}eTcNg1wf0%N(zsvG*2VD~@R%LIdAdRWXV)|Rr z{m8v1Fd1og$Z|EYUmMqBsSs1gw(IRDqgMr}(JHo*yU)Oo+XE@nn9fsjLE=)2y}Z1x zLc99gfa+hm$L7khcX2w;pV&U1Ldfy9&BNYfbFL51XzxxS!_ppVNHMeV7BkOfie z3K6T^_mWE|U!~!_DlR!$u`GC1eDpWoUgMZ)glWuITG?kCD2q+|0865ZYNBOf9<@7c zY==h2<*f_RbweU4q%}akqEbL| zTqUKgM0IR&OLn8IU6?6~-LTxUff|{%X10<3xnrM?yc0gf>M`*J+*I6jx&(J)OO@HA zW}zazE=!r#HM;vTpkVy4TF~;whV~BVt#)-3E0h96j-ZJ8b(pR99<7Hh)}H`%mSuv2 z?`3nTPabb=d2V3~mod-EimXer!B-PXH;xW{Gr7OWv{FkqXRWO z_+71N9}G>WI^o^TxKyOnvqrf}V|c|&@|*+d8IY2eZ&dq_A3x0IY8Act+kGRa^&{1v z@uI2>UkPy3(BnV)netjwhY6XrDa!Xy>70qWLok$AAc{eojWtXn=l$TIrWM+<-pV#e zrT27JcUNUg*~ndXxd1=P@7OD;R)H6tenw2|Tb)QhGD6qoX%7Wg%Ns|$ic$0&dGxR0 z8}9DX$cvSY^~TZbJmnb==p0`d!Sy1T^%z_G&*Q$N@Ctp7; zuYR`gWFEw!^fE7|G7T!)OL$-xO9;`T)h!^7Lg`$6=@fKs3zDOaInw_`9tc4GkZVGu zG_6h3e4X;^1l*F}`PP>FX-FxNbFW*VeWB>GOmjMmRcFuCcv_E|({#IP)8{J8Yq(1L z>#}+3O*ncX$?EO)kX_o;)RcjYlD$ye@EnWw{LbxZe}8|OAq(_lGCRhV2aYQjWH)Xp zl@RMaW)LGigKps!W$0=6iR^2vj_1Bzw)m1<4$HY2KMN^ol#h@x5~X?7HM~r$0oI=a zY0P$43^uRayx6+Zxdxf3#7O>h3nybKT=>{6q(`Vx=v%v_Se=aX!dy&)3VzVnXBa<~ zhQl#*CIq_TM*2T@XM#t6p>q;h2;dg_Z?P1SujsX)QG}E(mLb_A+!CL**sa7{ser}r zov)<;1(&eDdOOX2JZaoi+`W}dxK8;dh5o-mKXvrXr>3SNAcBn_hpxclgPv#rM{ta# z>5E6mO)yGNj4Y)Y2)Par>Z5+%DZebQt{>0rBMrUp(cz9mphhZvLRGcM$(>%?P zzpmCA_O=DEPPYXlrNnbN?Q|~>K#cC?c&B6H1uQ{k>%c7UV8-`X-8jW#F^;(0MjCtqJ zxa4(jxq~=%(^3ed;{^YnWl2cYfc)0K%_DPvA|lDE>L#{zZ~)r@4QoBn6}GWSrVFG% z{(jbbg;BDNR+a5Z&n+X|Z!~@}h4p~Wja*`|<8yJ!qZRZ6ZTOV}Fm4G(Z8gA5ajff-327h&u!8zd{Y$9B077ZN01inEYp*G19HL8)5BTx$mxEA|NhHr6pC^Ct;D9T z?~h7!S(U>NIM2MWleWEo8zdBdNM|+&$VZdD<3$-e8L?FpcEY&4jOb$ zNr~Z27ebVjus1^i=j6JBQIEPL7hMVk@>2u&WRP=6vf=iQCU(MM-%!A<^8v($V^V)2 zvLL-0G};HHRhZPNKO`s^}DOtY*9gpZw-RigTF_+e+8cOQFs$c9|tUg!Ut&)!LmcrF*u{kribUGk_fgHi?YU6t4dC0>ap1!ouE; zo?bu$Xh7wVJWUTiCEhp6#acZvVE_f_y8HNiloAKS|3C}hD2-@A=}5aL&$hY}g|3r5 zJn_~4gGO3A+`_?$PXRwRl`II){ji7d2LRiy{O6UY0pzWubZRPFbU1rRd3&Wj;7rh# z*wlZEk92$W%6R3@B4AmclQVB(X&@uhOw{~E_`~%d0HNjfW)nFTkZMOlnao#A>t2C} zJ~ncFQ;Ucv`xb!n{S7&VXj%cVCFqFGEz>}Zhnmb?cuK+S6jBgS@0o_LK5}@}Gux%o zbzLgpvk-8$4CM%iq*?Z?PFOfJf27Ca>$Qs&+7D0(jv*GI0M{iDk@~rvX$lzqO=%L( znJ?P)_SvVe*~>mXe>${7%Jc=OrtczxMckc%KSc0zgK;SKAWiQ00O+pPrbDP{85&A> ze_gsoJDjuyWc&sXP@+p=Wd&x^p_#eY_nf_p=)YtUIIJ;p&u7SkqOB-ZZQef*A|g?Rns-yA=!Wp_$iDfhaB6z$59QdloMC2*KMXBO*#k4)gfdV9-#8!XeXa?EGRwtVz%!_J`!!E8ma+1;-#>#Yy+ z&;0!J0*>}B+bQt%J6*72ARNx@+pT`eKh%AI0xQ#~lRGg3n&j0x zK{qyG{dP;Etd;yazh68Pf^IRyzcVdnucNxUAYBi%OjefLCSRX*U-z=lIL7Tpg<7?{ z1O51hK8k>U`33s>A7Yo$Xtc*BWDt>CIb?hvv3-5@XE|jq8IqL>Iw;7vbIF7! zFY3u>PhY$9NMnj}vpuN*kKzwlc(CB0wl7<+B+4eJ19mV$`ci9Ll6SZL0zp#z?zMhq z2sCV#r~RosG`1buW{x-;rGWcK$bMCh%GS$+#t^y3D;7_j>~=0X^TsX_&Rrghc5(8Cj3o%~rwBV3#Q~=+f6nmN((0}uOGk#lTF+Z)pNvXTw#nb2r>2Wo? zJ=ia5n>6>ZJ=Hb)8rC;o5NEIt+bEybg)lXsG2RGEt)swJn4PU_PtvzX%hM1e;^?l~m*7ncU=F9R($Y7t;%&Orq^+G!IzUVJ!h zg-H80Tc$SWL*dqs(ZA4DLnu3@ULm~yoSg%>#sOE}%QCwEz?R8=KZ6T$SA8mBQSp>{ zKF=$yvI7iw?aT|N!Mr*ctkB{KFD+KkcK*(0n#KdM5)!~08kL{YDib=ppy@Y}5mIHB z3F%D3W@+yI3PM>3wyU~SDF#W|^|h2%p;0egeBy~hmIaE~;*OoNQGBf^;?-MEA9Tu8 zIwZH+l;gJtvD5GPBX_dcs^?+$g;Tb&PGCl&U!*dBX*dS539~vGlW^#Qjh^kdxSYutP6+q=`5beO1%aX+Jm zqDCy=B-F?Cw*cx4cpO0Gb&8u=Vi($MMqc>>!988*HWdEeR_l3;+nglel^!W17IrMF zJ`@Zz`;h#LH&-u6XimUV@Z9%<426p_L|-41;u!8DXqUUc?6Je*V?%iMp^-szEnMG( z`bFUa`YT1W*jsI3*_YvS^mw=%qNcjq4zu{yvop!5vglcSsS$$dDpMv}y?e@RnHD93 zYxqOxwy(oCz`QDrF~Xgw&Rv;%9Xf4#^|7cnXil1j-Ae~`7okT3QQ@Lke3HaAW6v(1 zWie)FvK9l2OIibboRe@=!=^F9Tpd*Hc!L*SA^136ox_Jcn@9JeLXBITlz3A4g8Np8 za4fgO&pqCqg98VqLaSO?)6RCobY&uo@#@+JdX=lSk^ZyssJ*}7k6Hs9#*OVqCimaJ zS!bNvJWVx@OeK*O(pW3gquup6ihVvH*(RwzmG9$&@HG;|$^ zcOG>d7!dZKl-Sn@BdYKR2L~KQu(4IIvCMP^$X^cxv0mE6&34D$yZ6+P8xErrHTE2f zpbdGQE#bkWfU&CRGrb$L(20J&%4tod(eqhgjpCh4k3=R|sE?mQ4U)W!m-b4y0(I}% z$zBEz-Z|AEcjoWdXIyhqD-GfPVOWPkB@O2YtX-^}hn2Mwg|G~8BEZ&yQ$2mfK1YOG zRK-@kW3zAAC94n!#2wp5r<**~6}@08Zgc};n1aqsvyokt;Ivf*)t&jp#j6NQr}oKb z5$kO^EcPc20J3rb%DZoiAJLw5g)-&$hc?$}ybkD%#!{PtbYq6v}w3R+n-WuHrbY!3$ z%c4|tHe{|qm;GLFC6dIlV zs3ibxD{7qCzU|HFC-0bijJX-XlkVVAm~{u@vV{yKY5>ziee<5!Mw+lb!Zp(`6O&hvu=Pq6m!sAAxk~(5gHTewqehvXkJXZf_Xj zyh51z)utEh0r!SwfZwL7szCqGxY630YKC_4oKNMSLnxgWay%kjnwh&Nik;XO43QPO ztWp%eI#VLhRCM#TT*9jS?t<(7VYT&@9+X|ahQ7jCAxI@Tui_UlN3EEwN{`hWzpVcS zECo!RuHmiMfy}jcu#M;OSIjj^DJWv2Stj{f={Q=dwbR_#K7~dVa(ns_KY(j5z&R`h zu;p3j&toJm;HCUm2xi3b4O8Wc_jGzGfWzPs+M$n?4wf=oVhtuE-*vZfA60E z;htv-#3<(Z_bXOWS#(70qI95tQVe4RuOqi1P)01fmR9%)KH+1tO8DX4x$zlpX{DY_ za8s`bg4Cp-tfb?!E4{wmA`RO_=dU}9qfT|5#AU#HBZYo*v=a6&o*C^{`)31ns14CE zspgsgz+F+A-|~w>rUxNFDQN!@T~6_ zt4$hIAAJ3!Sq0`j7biUdy{J$ed1vGu(O+&X5$p^@qNq#>HdV$St%}8u3H6-=glw__ zx9(LPO`~RS!!ozk9(;xcbomRkxUU>%BMBs6ANu(f(Z26INc3?*1Uqf3wfXddt2K`X zM%!n!|D0#@rMOikdm#~!0Fsi*R?KMoen_!Dta49Kd#+{&j(E@|!H@muE_>};-_En7 zmgC*y;}a*wyj1l5gW1%mK;Lsj$1a9{&wiLD$W_^VF=%2#pZe^o3hAjY`)z^jPD=W{uj$!|Qaxb+vh(r5{j2&B3UWGUTzDhmovf-Ue?oYl z!>4EJL+3@Uz1l%tabKWS69ir2)CSXWo~HiMPVP}))v_{qc;Z`~&Rsq{Bc2I!ryU}x zzkQkR@HeUh2lGR*_XI9vCQ2XI-OkgW)R64EY4B$*dx|6At2Bl6LFv6ykMG;9Y>CaJ zAbPGnqv>xHmv86<`DZ6VaZMA&!!o(?7RAI5p#7gL4yy}>Z8wTn&Y#OnT@&j|ybS-h zbds_0sXXu`C{DU2^WZ*F1Si-1fH!_}0sMJrb2{J2^Yl{}{p8x?RAQc7|L+I>mrDQ3 f8vidIpzX}#o+AHl4{B1_pX`aE`eTH=dGP-SsS|jq From d38434d51edf80770ad59e87625050061b384a8e Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Sun, 22 Feb 2026 08:52:06 -0500 Subject: [PATCH 05/13] chore: add CLAUDE.md to gitignore Local Claude instructions should never be pushed to the remote. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index e4a4f3b7..91a70b78 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,6 @@ og-concepts.html og-export.html color-spec-mock.html opentdf-brand-guide.html + +# Claude instructions (local only) +CLAUDE.md From 0ec302fd928f2a134ad0bde1b5599018c85030de Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Sun, 22 Feb 2026 09:51:13 -0500 Subject: [PATCH 06/13] chore: text-only navbar logotype, revert favicon to OpenTDF-Logo.png MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove navbar logo image entirely — "OpenTDF" text wordmark only. Revert favicon back to OpenTDF-Logo.png pending icon direction decision. Retains favicon.svg and opentdf-icon.svg on disk for PR #196 to clean up. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- docusaurus.config.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 65e37c72..599702f6 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -26,7 +26,7 @@ const javaSdkVersion = "0.11.1"; const config: Config = { title: "OpenTDF", tagline: "Enabling secure data sharing through open, data-centric security", - favicon: "img/favicon.svg", + favicon: "img/OpenTDF-Logo.png", // Set the production url of your site here url: "https://docs.opentdf.io", @@ -108,12 +108,6 @@ const config: Config = { navbar: { hideOnScroll: true, title: "OpenTDF", - logo: { - alt: "OpenTDF - Protect the Data, Build the Future", - src: "img/opentdf-icon.svg", - width: 32, - height: 32, - }, items: [ { type: "doc", From f7a4131271720112fbed8a5d71f30fe0339af0d4 Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Sun, 22 Feb 2026 10:03:20 -0500 Subject: [PATCH 07/13] chore: consolidate design working files into design/ folder Move og-concepts.html, og-export.html, and brand-guide.html into design/ subfolder. Update .gitignore to ignore design/ as a single rule instead of individual file entries. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- .gitignore | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 91a70b78..27019fe0 100644 --- a/.gitignore +++ b/.gitignore @@ -42,11 +42,8 @@ node_modules # Ignore manual test scripts manual_tests/ -# Design working files -og-concepts.html -og-export.html -color-spec-mock.html -opentdf-brand-guide.html +# Design working files (local only — back up to opentdf/brand-assets) +design/ # Claude instructions (local only) CLAUDE.md From 6e6afb671ef70ac5778ec3f450f1df65061f4901 Mon Sep 17 00:00:00 2001 From: Jp Ayyappan <108297634+jp-ayyappan@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:43:18 -0500 Subject: [PATCH 08/13] chore: address PR #191 review comments (#196) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Addresses all review comments raised on #191. Includes a light mode pass across the entire site since the theme toggle was broken. ## Changes ### Reviewer-requested fixes (jp-ayyappan) - **Favicon**: reverted from `favicon.svg` back to `OpenTDF-Logo.png` - **Navbar logo**: reverted from `opentdf-icon.svg` back to `OpenTDF-Logo.png`; added `srcDark: "img/OpenTDF-Logo-White.png"` for automatic dark/light logo switching via Docusaurus's built-in `srcDark` config - **Light/dark mode toggle restored**: navbar was hardcoded always-dark, breaking the color mode switch; made fully theme-aware ### CSS improvements (gemini-code-assist) - **Navbar layout robustness**: added `max-width` guard on the centered nav links container to prevent overlap with the absolutely-positioned brand and right items at narrow viewports - **GitHub icon deduplication**: extracted the large SVG data URL into a `--github-icon-svg` CSS custom property; both `-webkit-mask-image` and `mask-image` now reference the variable ### Code hygiene - **Removed orphaned assets**: `favicon.svg` and `opentdf-icon.svg` were added by #191 and are now unreferenced — deleted - **Added** `static/img/OpenTDF-Logo-White.png` for dark mode navbar logo - **Normalized dark mode selectors**: new `[data-theme='dark']` rules aligned to `html[data-theme='dark']` to match the file's existing convention and specificity ### Light mode for the full site - **Navbar**: light glass background in light mode; dark glass in dark mode — with adaptive text, nav links, and GitHub button colors - **Footer**: was always-dark; now theme-aware with light gray background, dark text, and adapted link colors in light mode - **Landing page homepage**: all six sections (`Hero`, `ProblemSolution`, `DeveloperFirst`, `Standards`, `Community`, `FinalCTA`) now adapt to light mode — white/off-white section backgrounds, dark text, corrected button borders. Code windows (Hero) and TDF diagram (Standards) intentionally remain dark in both modes. - **Design tokens**: added `html[data-theme='light']` overrides for all `--otdf-*` CSS custom properties ### Admonition fixes - **`:::tip` dark mode**: was unreadable (cream background + white inherited text in dark mode); now uses a dark amber background (`#451a03`) with light amber text in dark mode - **`:::note` decoupled from amber**: the original rule incorrectly targeted `alert--secondary` (note) alongside tip — removed; notes now use Docusaurus's default dark-mode-safe secondary styling ## Preview 🔗 https://opentdf-docs-preview-191-review.surge.sh/ ## Test plan - [ ] Verify homepage renders correctly in both light and dark mode - [ ] Verify navbar logo switches between color and white versions on theme toggle - [ ] Verify color mode toggle is visible and functional in the navbar - [ ] Verify footer adapts to light/dark mode - [ ] Verify `:::tip` admonitions are readable in both modes on a docs page (e.g. `/quickstart`) - [ ] Verify `:::note` admonitions render with default gray styling (not amber) - [ ] Check navbar layout at various viewport widths above the mobile breakpoint 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- docusaurus.config.ts | 10 ++ src/components/landing/Community.module.css | 15 ++ .../landing/DeveloperFirst.module.css | 14 ++ src/components/landing/FinalCTA.module.css | 17 +++ src/components/landing/Hero.module.css | 13 ++ .../landing/ProblemSolution.module.css | 16 +++ src/components/landing/Standards.module.css | 18 +++ src/css/custom.css | 131 +++++++++++++++--- src/css/landing.css | 19 +++ static/img/OpenTDF-Logo-White.png | Bin 0 -> 41325 bytes static/img/favicon.svg | 5 - static/img/opentdf-icon.svg | 4 - 12 files changed, 231 insertions(+), 31 deletions(-) create mode 100644 static/img/OpenTDF-Logo-White.png delete mode 100644 static/img/favicon.svg delete mode 100644 static/img/opentdf-icon.svg diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 599702f6..af5a75f8 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -108,6 +108,16 @@ const config: Config = { navbar: { hideOnScroll: true, title: "OpenTDF", +<<<<<<< chore/address-191-comments + logo: { + alt: "OpenTDF - Protect the Data, Build the Future", + src: "img/OpenTDF-Logo.png", + srcDark: "img/OpenTDF-Logo-White.png", + width: 32, + height: 32, + }, +======= +>>>>>>> feat/site-redesign items: [ { type: "doc", diff --git a/src/components/landing/Community.module.css b/src/components/landing/Community.module.css index 5b042b71..32eb633d 100644 --- a/src/components/landing/Community.module.css +++ b/src/components/landing/Community.module.css @@ -108,3 +108,18 @@ padding: 0 2rem; } } + +/* Light mode overrides */ +:global(html[data-theme='light']) .card { + background: #ffffff; + border-color: rgba(0, 0, 0, 0.07); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +:global(html[data-theme='light']) .body { + color: #4b5563; +} + +:global(html[data-theme='light']) .cardIcon { + color: #6b7280; +} diff --git a/src/components/landing/DeveloperFirst.module.css b/src/components/landing/DeveloperFirst.module.css index 641f362c..3b3251e4 100644 --- a/src/components/landing/DeveloperFirst.module.css +++ b/src/components/landing/DeveloperFirst.module.css @@ -211,3 +211,17 @@ padding: 0 2rem; } } + +/* Light mode overrides — install cmd and copy button intentionally stay dark (code) */ +:global(html[data-theme='light']) .card { + background: #ffffff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06); +} + +:global(html[data-theme='light']) .subheading { + color: #4b5563; +} + +:global(html[data-theme='light']) .btnSecondary { + border-color: rgba(0, 0, 0, 0.15); +} diff --git a/src/components/landing/FinalCTA.module.css b/src/components/landing/FinalCTA.module.css index 81bd6744..14b20ee6 100644 --- a/src/components/landing/FinalCTA.module.css +++ b/src/components/landing/FinalCTA.module.css @@ -110,3 +110,20 @@ padding: 0 2rem; } } + +/* Light mode overrides */ +:global(html[data-theme='light']) .body { + color: #4b5563; +} + +:global(html[data-theme='light']) .btnSecondary { + border-color: rgba(0, 0, 0, 0.15); +} + +:global(html[data-theme='light']) .btnGhost { + border-color: rgba(0, 0, 0, 0.08); +} + +:global(html[data-theme='light']) .btnGhost:hover { + border-color: rgba(0, 0, 0, 0.2); +} diff --git a/src/components/landing/Hero.module.css b/src/components/landing/Hero.module.css index 7e2e7665..cd781f51 100644 --- a/src/components/landing/Hero.module.css +++ b/src/components/landing/Hero.module.css @@ -210,3 +210,16 @@ padding: 0 1.5rem; } } + +/* Light mode overrides — code window intentionally stays dark */ +:global(html[data-theme='light']) .bodyPrimary { + color: #4b5563; +} + +:global(html[data-theme='light']) .btnSecondary { + border-color: rgba(0, 0, 0, 0.15); +} + +:global(html[data-theme='light']) .btnSecondary:hover { + border-color: #22d3ee; +} diff --git a/src/components/landing/ProblemSolution.module.css b/src/components/landing/ProblemSolution.module.css index 244fed80..e5ffc25d 100644 --- a/src/components/landing/ProblemSolution.module.css +++ b/src/components/landing/ProblemSolution.module.css @@ -142,3 +142,19 @@ padding: 0 2rem; } } + +/* Light mode overrides */ +:global(html[data-theme='light']) .card { + background: #ffffff; + border-color: rgba(0, 0, 0, 0.07); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +:global(html[data-theme='light']) .bodyPrimary, +:global(html[data-theme='light']) .cardBody { + color: #4b5563; +} + +:global(html[data-theme='light']) .btn { + border-color: rgba(0, 0, 0, 0.15); +} diff --git a/src/components/landing/Standards.module.css b/src/components/landing/Standards.module.css index 2402afdb..237a2067 100644 --- a/src/components/landing/Standards.module.css +++ b/src/components/landing/Standards.module.css @@ -179,3 +179,21 @@ font-size: 2.25rem; } } + +/* Light mode overrides — diagram intentionally stays dark */ +:global(html[data-theme='light']) .body, +:global(html[data-theme='light']) .featureItem { + color: #4b5563; +} + +:global(html[data-theme='light']) .btnSecondary { + border-color: rgba(0, 0, 0, 0.15); +} + +:global(html[data-theme='light']) .btnGhost { + border-color: rgba(0, 0, 0, 0.08); +} + +:global(html[data-theme='light']) .btnGhost:hover { + border-color: rgba(0, 0, 0, 0.2); +} diff --git a/src/css/custom.css b/src/css/custom.css index 51463281..d7d347ad 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -82,8 +82,7 @@ border-left: 2px solid #0891b2; } -/* Tip admonition — amber secondary from homepage palette */ -.alert--secondary, +/* Tip admonition — amber, light mode */ div[class*="admonition-tip"], div[class*="admonitionTip"] { --ifm-alert-background-color: #fffbeb; @@ -91,6 +90,14 @@ div[class*="admonitionTip"] { --ifm-alert-color: #92400e; } +/* Tip admonition — amber, dark mode */ +html[data-theme='dark'] div[class*="admonition-tip"], +html[data-theme='dark'] div[class*="admonitionTip"] { + --ifm-alert-background-color: #451a03; + --ifm-alert-border-color: #d97706; + --ifm-alert-color: #fde68a; +} + html[data-theme='dark'] { /* Override primary to teal in dark mode */ --ifm-color-primary: #22d3ee; @@ -137,11 +144,6 @@ html[data-theme='dark'] { --vds-homepage-subtitle-color: #aaa; } -/* Dark mode: brand stays white (already set globally, this just reinforces it) */ -html[data-theme='dark'] .navbar .navbar__brand .navbar__title { - color: #fff; -} - /* Dark mode cookie consent */ html[data-theme='dark'] .cookie-consent-banner a { color: var(--ifm-color-primary-light); @@ -225,6 +227,44 @@ a[class*="embed_documentation_footer-"] { color: #67e8f9; } +/* Footer — light mode overrides */ +html[data-theme='light'] .footer { + background-color: #f1f5f9; + border-top: 1px solid rgba(0, 0, 0, 0.06); +} + +html[data-theme='light'] .footer__title { + color: #0f172a; +} + +html[data-theme='light'] .footer__link-item { + color: #4b5563; +} + +html[data-theme='light'] .footer__link-item:hover { + color: #0891b2; +} + +html[data-theme='light'] .footer__bottom { + border-top: 1px solid rgba(0, 0, 0, 0.06); +} + +html[data-theme='light'] .footer__copyright { + color: #6b7280; +} + +html[data-theme='light'] .footer__sponsor-text { + color: #4b5563; +} + +html[data-theme='light'] .footer__sponsor-text a { + color: #0891b2; +} + +html[data-theme='light'] .footer__sponsor-text a:hover { + color: #0e7490; +} + /************** ** COOKIE CONSENT BANNER ***************/ @@ -318,34 +358,53 @@ Breakpoints: } /************** -** NAVBAR — ALWAYS DARK (matches reference design) +** NAVBAR — THEME-AWARE (light + dark) ***************/ +/* GitHub icon as a reusable CSS variable (avoids duplicating the long data URL) */ +:root { + --github-icon-svg: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z'/%3E%3C/svg%3E"); +} + +/* Light mode: clean white glass */ .navbar { - background-color: rgba(10, 12, 16, 0.9); + background-color: rgba(255, 255, 255, 0.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); - border-bottom: 1px solid rgba(255, 255, 255, 0.05); + border-bottom: 1px solid rgba(0, 0, 0, 0.06); box-shadow: none; } -/* Brand: white bold text */ +/* Dark mode */ +html[data-theme='dark'] .navbar { + background-color: rgba(10, 12, 16, 0.9); + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +/* Brand: size/weight only; color inherits from Docusaurus theme */ .navbar .navbar__brand .navbar__title { - color: #fff; font-size: 1.125rem; font-weight: 700; } +html[data-theme='dark'] .navbar .navbar__brand .navbar__title { + color: #fff; +} + .navbar .navbar__brand:hover .navbar__title { color: #22d3ee; } -/* Nav links: muted gray, teal on hover/active */ +/* Nav links: font size in both modes */ .navbar .navbar__link { - color: #9ca3af; font-size: 0.875rem; } +/* Dark mode: muted gray nav links */ +html[data-theme='dark'] .navbar .navbar__link { + color: #9ca3af; +} + /* Hide external-link icon on navbar items */ .navbar [class*="iconExternalLink"] { display: none; @@ -354,7 +413,7 @@ Breakpoints: .navbar .navbar__link:hover, .navbar .navbar__link--active { color: #22d3ee; - background: rgba(255, 255, 255, 0.05); + background: rgba(34, 211, 238, 0.07); text-decoration: none; } @@ -383,10 +442,12 @@ Breakpoints: align-items: center; } -/* Left items container: shrink-to-fit so parent can center it */ +/* Left items container: shrink-to-fit so parent can center it. + max-width prevents centered links from overlapping absolutely-positioned brand/right items. */ .navbar__inner > .navbar__items:not(.navbar__items--right) { flex: 0 0 auto; justify-content: center; + max-width: calc(100% - 2 * (var(--ifm-navbar-padding-horizontal) + 8rem)); } .navbar .navbar__items--right { @@ -405,21 +466,25 @@ Breakpoints: align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem; - border: 1px solid #374151; + border: 1px solid #d1d5db; border-radius: 0.5rem; font-size: 0.875rem; - color: #9ca3af; transition: border-color 0.2s ease, color 0.2s ease; } +html[data-theme='dark'] .navbar__items--right .navbar__item.navbar__link[href*="github.com"] { + border-color: #374151; + color: #9ca3af; +} + .navbar__items--right .navbar__item.navbar__link[href*="github.com"]::before { content: ""; display: inline-block; width: 1.125rem; height: 1.125rem; background-color: currentColor; - -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z'/%3E%3C/svg%3E"); - mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.49.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z'/%3E%3C/svg%3E"); + -webkit-mask-image: var(--github-icon-svg); + mask-image: var(--github-icon-svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; @@ -428,12 +493,17 @@ Breakpoints: } .navbar__items--right .navbar__item.navbar__link[href*="github.com"]:hover { - border-color: #6b7280; - color: #fff; + border-color: #22d3ee; + color: #22d3ee; background: transparent; text-decoration: none; } +html[data-theme='dark'] .navbar__items--right .navbar__item.navbar__link[href*="github.com"]:hover { + border-color: #6b7280; + color: #fff; +} + /************** ** SHELL PROMPT ***************/ @@ -486,3 +556,20 @@ html[data-theme='dark'] div[class*="language-shell"] code::before { --otdf-gradient-mesh: radial-gradient(ellipse at 20% 50%, rgba(34, 211, 238, 0.08) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.05) 0%, transparent 50%); } + +/* Light mode: flip landing page design tokens */ +html[data-theme='light'] { + --otdf-bg-deepest: #f8fafc; + --otdf-bg-deep: #f1f5f9; + --otdf-bg-surface: #ffffff; + --otdf-bg-raised: #f8fafc; + --otdf-bg-subtle: #e2e8f0; + + --otdf-text-primary: #0f172a; + --otdf-text-secondary: #334155; + --otdf-text-tertiary: #64748b; + + --otdf-accent-glow: rgba(34, 211, 238, 0.08); + --otdf-gradient-mesh: radial-gradient(ellipse at 20% 50%, rgba(34, 211, 238, 0.05) 0%, transparent 50%), + radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.03) 0%, transparent 50%); +} diff --git a/src/css/landing.css b/src/css/landing.css index 5d640d6b..9db6e8d4 100644 --- a/src/css/landing.css +++ b/src/css/landing.css @@ -80,3 +80,22 @@ border-color: var(--sdk-color, #22d3ee); box-shadow: 0 0 30px color-mix(in srgb, var(--sdk-color, #22d3ee) 15%, transparent); } + +/* ---- Light mode overrides ---- */ +html[data-theme='light'] .section-dark { + background-color: #f8fafc; +} + +html[data-theme='light'] .section-darker { + background-color: #ffffff; +} + +html[data-theme='light'] .bg-grid { + background-image: linear-gradient(rgba(34, 211, 238, 0.05) 1px, transparent 1px), + linear-gradient(90deg, rgba(34, 211, 238, 0.05) 1px, transparent 1px); + background-size: 64px 64px; +} + +html[data-theme='light'] .sdk-card { + border-color: rgba(0, 0, 0, 0.08); +} diff --git a/static/img/OpenTDF-Logo-White.png b/static/img/OpenTDF-Logo-White.png new file mode 100644 index 0000000000000000000000000000000000000000..97f87fe9a3e2cf64e09fe963a80a16e51943b7d0 GIT binary patch literal 41325 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 literal 0 HcmV?d00001 diff --git a/static/img/favicon.svg b/static/img/favicon.svg deleted file mode 100644 index e6906bc5..00000000 --- a/static/img/favicon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/static/img/opentdf-icon.svg b/static/img/opentdf-icon.svg deleted file mode 100644 index 55a60843..00000000 --- a/static/img/opentdf-icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - From f77396831d1d5bcdb8ed69db122c263a4104cd82 Mon Sep 17 00:00:00 2001 From: Jp Ayyappan <108297634+jp-ayyappan@users.noreply.github.com> Date: Mon, 23 Feb 2026 09:49:14 -0500 Subject: [PATCH 09/13] feat: add OpenAPI post-processing and improve index generation (#194) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add \`scripts/update-openapi-index.ts\` post-processing script that runs after \`docusaurus gen-api-docs\` to: - Rename \`.info.mdx\` files to \`index.mdx\` (prevents duplicate sidebar entries) - Regenerate \`docs/OpenAPI-clients/index.md\` with correct directory-based links - Chain post-processing automatically via \`gen-api-docs-all\` npm script - Refactor \`preprocessing.ts\`: extract shared \`SERVICE_DESCRIPTIONS\` and \`CATEGORY_MAPPING\` constants, add catch-all category for uncategorized APIs - Extend \`check-vendored-yaml\` to detect unregistered spec files in the platform repo — walks \`docs/openapi/\` via the GitHub Contents API and fails the build if a new API spec exists upstream without a corresponding entry in \`openApiSpecsArray\` - Add footer license info distinguishing Docs (CC BY 4.0) from Code (BSD 3-Clause) - Add \`gray-matter\` dependency for frontmatter parsing 🔗 **https://opentdf-docs-preview-openapi-processing.surge.sh** | | Before (Production) | After (Preview) | |---|---|---| | OpenAPI Clients Index | [/OpenAPI-clients](https://opentdf.io/OpenAPI-clients) | [/OpenAPI-clients](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients) | These root pages previously did not resolve. This PR fixes them. | Service | Preview Link | |---|---| | Well-Known Configuration | [/OpenAPI-clients/wellknownconfiguration](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/wellknownconfiguration) | | KAS | [/OpenAPI-clients/kas](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/kas) | | V1 Authorization | [/OpenAPI-clients/authorization/v1](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/authorization/v1) | | V2 Authorization | [/OpenAPI-clients/authorization/v2](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/authorization/v2) | | V1 Entity Resolution | [/OpenAPI-clients/entityresolution/v1](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/entityresolution/v1) | | V2 Entity Resolution | [/OpenAPI-clients/entityresolution/v2](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/entityresolution/v2) | | Policy Objects | [/OpenAPI-clients/policy](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy) | | Policy Attributes | [/OpenAPI-clients/policy/attributes](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/attributes) | | Policy Namespaces | [/OpenAPI-clients/policy/namespaces](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/namespaces) | | Policy Actions | [/OpenAPI-clients/policy/actions](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/actions) | | Policy Subject Mapping | [/OpenAPI-clients/policy/subjectmapping](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/subjectmapping) | | Policy Resource Mapping | [/OpenAPI-clients/policy/resourcemapping](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/resourcemapping) | | Policy Obligations | [/OpenAPI-clients/policy/obligations](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/obligations) | | Policy Registered Resources | [/OpenAPI-clients/policy/registeredresources](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/registeredresources) | | Policy KAS Registry | [/OpenAPI-clients/policy/kasregistry](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/kasregistry) | | Key Management | [/OpenAPI-clients/policy/keymanagement](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/keymanagement) | | Policy Unsafe Service | [/OpenAPI-clients/policy/unsafe](https://opentdf-docs-preview-openapi-processing.surge.sh/OpenAPI-clients/policy/unsafe) | - Homepage redesign: #191 - License update: #187 (merged) - [ ] Run \`npm run gen-api-docs-all\` and verify no build warnings about missing \`.info.mdx\` files - [ ] Verify \`docs/OpenAPI-clients/index.md\` links resolve correctly - [ ] Run \`npm run build\` and confirm no broken link errors on \`/OpenAPI-clients\` - [ ] Verify \`check-vendored-yaml\` fails if a new spec with API paths exists in the platform repo but is not registered in \`openApiSpecsArray\` 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 4.6 Signed-off-by: Mike Morper --- docusaurus.config.ts | 13 ++- package-lock.json | 22 ++++ package.json | 3 +- scripts/update-openapi-index.ts | 16 +++ src/css/custom.css | 13 +++ src/openapi/check-vendored-yaml.ts | 92 ++++++++++++++- src/openapi/preprocessing.ts | 177 ++++++++++++++++++++++++++--- 7 files changed, 311 insertions(+), 25 deletions(-) create mode 100644 scripts/update-openapi-index.ts diff --git a/docusaurus.config.ts b/docusaurus.config.ts index af5a75f8..5a381bac 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -108,7 +108,6 @@ const config: Config = { navbar: { hideOnScroll: true, title: "OpenTDF", -<<<<<<< chore/address-191-comments logo: { alt: "OpenTDF - Protect the Data, Build the Future", src: "img/OpenTDF-Logo.png", @@ -116,8 +115,6 @@ const config: Config = { width: 32, height: 32, }, -======= ->>>>>>> feat/site-redesign items: [ { type: "doc", @@ -191,7 +188,15 @@ const config: Config = { ], }, ], - copyright: `Copyright © ${new Date().getFullYear()} OpenTDF`, + copyright: ` +

+ Copyright © ${new Date().getFullYear()} OpenTDF +
+ + `, }, prism: { theme: prismThemes.vsLight, diff --git a/package-lock.json b/package-lock.json index c951b05a..ed486d0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4566,6 +4566,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5094,6 +5095,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5116,6 +5118,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5138,6 +5141,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5154,6 +5158,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5170,6 +5175,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5186,6 +5192,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5202,6 +5209,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5218,6 +5226,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5234,6 +5243,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5250,6 +5260,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5266,6 +5277,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5282,6 +5294,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5304,6 +5317,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5326,6 +5340,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5348,6 +5363,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5370,6 +5386,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5392,6 +5409,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5414,6 +5432,7 @@ "cpu": [ "wasm32" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { @@ -5433,6 +5452,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -5452,6 +5472,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -5471,6 +5492,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ diff --git a/package.json b/package.json index 06399066..c11722f1 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,9 @@ "serve": "docusaurus serve", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", - "gen-api-docs-all": "docusaurus gen-api-docs all --all-versions", + "gen-api-docs-all": "docusaurus gen-api-docs all --all-versions && npm run update-openapi-index", "gen-api-docs-clean": "docusaurus clean-api-docs all", + "update-openapi-index": "tsx scripts/update-openapi-index.ts", "check-vendored-yaml": "tsx src/openapi/check-vendored-yaml.ts", "update-vendored-yaml": "tsx src/openapi/update-vendored-yaml.ts" }, diff --git a/scripts/update-openapi-index.ts b/scripts/update-openapi-index.ts new file mode 100644 index 00000000..23276c64 --- /dev/null +++ b/scripts/update-openapi-index.ts @@ -0,0 +1,16 @@ +/** + * Post-processing script to update the OpenAPI index page with correct links + * after the OpenAPI docs have been generated. + */ + +import { updateOpenApiIndex, renameInfoFilesToIndex } from '../src/openapi/preprocessing'; + +try { + console.log('🔄 Running post-generation OpenAPI processing...'); + renameInfoFilesToIndex(); + updateOpenApiIndex(); + console.log('✅ OpenAPI post-processing complete'); +} catch (error) { + console.error('❌ OpenAPI post-processing failed:', error); + process.exit(1); +} diff --git a/src/css/custom.css b/src/css/custom.css index d7d347ad..b8c1e05a 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -573,3 +573,16 @@ html[data-theme='light'] { --otdf-gradient-mesh: radial-gradient(ellipse at 20% 50%, rgba(34, 211, 238, 0.05) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.03) 0%, transparent 50%); } + +/************** +** FOOTER +***************/ +.footer__license-info { + margin-top: 0.5rem; + font-size: 0.85rem; + opacity: 0.8; +} + +.footer__license-info a { + text-decoration: underline; +} diff --git a/src/openapi/check-vendored-yaml.ts b/src/openapi/check-vendored-yaml.ts index f82bd05d..285f21fd 100644 --- a/src/openapi/check-vendored-yaml.ts +++ b/src/openapi/check-vendored-yaml.ts @@ -3,8 +3,12 @@ When making changes to this file, consider: https://virtru.atlassian.net/browse/ */ import * as fs from 'fs'; import * as crypto from 'crypto'; +import * as yaml from 'js-yaml'; import { openApiSpecsArray } from './preprocessing'; +const PLATFORM_API_BASE = 'https://api.github.com/repos/opentdf/platform'; +const PLATFORM_RAW_BASE = 'https://raw.githubusercontent.com/opentdf/platform/refs/heads/main'; + function fileHash(filePath: string): string { if (!fs.existsSync(filePath)) return ''; const data = fs.readFileSync(filePath); @@ -32,16 +36,70 @@ function downloadFile(url: string, dest: string): Promise { }); } +function fetchJson(url: string): Promise { + return new Promise((resolve, reject) => { + import('https').then(https => { + https.get(url, { headers: { 'User-Agent': 'opentdf-docs-check-vendored-yaml' } } as any, (response: any) => { + let data = ''; + response.on('data', (chunk: string) => { data += chunk; }); + response.on('end', () => { + try { resolve(JSON.parse(data)); } + catch (e) { reject(new Error(`Failed to parse JSON from ${url}: ${e}`)); } + }); + }).on('error', reject); + }).catch(reject); + }); +} + +function fetchText(url: string): Promise { + return new Promise((resolve, reject) => { + import('https').then(https => { + https.get(url, { headers: { 'User-Agent': 'opentdf-docs-check-vendored-yaml' } } as any, (response: any) => { + let data = ''; + response.on('data', (chunk: string) => { data += chunk; }); + response.on('end', () => resolve(data)); + }).on('error', reject); + }).catch(reject); + }); +} + +/** + * Recursively fetches all .yaml file paths under docs/openapi/ in the platform repo. + */ +async function fetchRemoteSpecPaths(dirPath = 'docs/openapi'): Promise { + const specPaths: string[] = []; + const contents = await fetchJson(`${PLATFORM_API_BASE}/contents/${dirPath}`); + + for (const item of contents) { + if (item.type === 'file' && item.name.endsWith('.yaml')) { + specPaths.push(item.path); + } else if (item.type === 'dir') { + specPaths.push(...await fetchRemoteSpecPaths(item.path)); + } + } + + return specPaths; +} + +/** + * Returns true if the spec at the given raw URL has actual API paths defined + * (i.e. it is a real API spec, not a shared schema-only file like common or entity). + */ +async function hasApiPaths(rawUrl: string): Promise { + const content = await fetchText(rawUrl); + const spec = yaml.load(content) as any; + return spec?.paths != null && Object.keys(spec.paths).length > 0; +} + async function main() { let hasDiff = false; + + // --- Check 1: vendored files are up to date --- for (const spec of openApiSpecsArray) { - if (!spec.url) continue; // Only process specs with a URL - // absPaths is the absolute path to the spec file + if (!spec.url) continue; const absPath = spec.specPath; const tmpPath = absPath + '.tmp'; - // Download to tmpPath await downloadFile(spec.url, tmpPath); - // Compare hashes const oldHash = fileHash(absPath); const newHash = fileHash(tmpPath); if (oldHash !== newHash) { @@ -52,6 +110,32 @@ async function main() { } fs.unlinkSync(tmpPath); } + + // --- Check 2: no unregistered spec files in the platform repo --- + console.log('\n🔍 Checking for unregistered spec files in opentdf/platform...'); + const registeredUrls = new Set( + openApiSpecsArray.flatMap(spec => spec.url ? [spec.url] : []) + ); + + const remoteSpecPaths = await fetchRemoteSpecPaths(); + + for (const remotePath of remoteSpecPaths) { + const expectedUrl = `${PLATFORM_RAW_BASE}/${remotePath}`; + if (registeredUrls.has(expectedUrl)) continue; + + // Not registered — check if it actually has API paths (vs shared schema file) + if (await hasApiPaths(expectedUrl)) { + hasDiff = true; + console.error( + `❌ Unregistered spec found in platform repo: ${remotePath}\n` + + ` Add an entry to openApiSpecsArray in src/openapi/preprocessing.ts with:\n` + + ` url: '${expectedUrl}'` + ); + } else { + console.log(`ℹ️ Skipping schema-only file (no paths): ${remotePath}`); + } + } + process.exit(hasDiff ? 1 : 0); } diff --git a/src/openapi/preprocessing.ts b/src/openapi/preprocessing.ts index 1e410980..02fd8f20 100644 --- a/src/openapi/preprocessing.ts +++ b/src/openapi/preprocessing.ts @@ -4,6 +4,7 @@ When making changes to this file, consider: https://virtru.atlassian.net/browse/ import * as fs from 'fs'; import * as path from 'path'; import * as yaml from 'js-yaml'; +import matter from 'gray-matter'; import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; // Utility to find the repo root (directory containing package.json) @@ -28,13 +29,42 @@ const ADD_TIMESTAMP_TO_DESCRIPTION = false; const OUTPUT_PREFIX = path.join(repoRoot, 'docs', 'OpenAPI-clients'); // The index page for OpenAPI documentation, to support bookmarking & sharing the URL -const OPENAPI_INDEX_PAGE = `${OUTPUT_PREFIX}/index.md`; +const OPENAPI_INDEX_PAGE = path.join(OUTPUT_PREFIX, 'index.md'); + +// Service descriptions and categorization for OpenAPI index generation +const SERVICE_DESCRIPTIONS: Record = { + 'Well-Known Configuration': 'Platform configuration and service discovery', + 'kas': 'Key Access Service for TDF encryption/decryption', + 'V1 Authorization': 'Authorization decisions (v1)', + 'V2 Authorization': 'Authorization decisions (v2)', + 'V1 Entity Resolution': 'Entity resolution from JWT tokens (v1)', + 'V2 Entity Resolution': 'Entity resolution from tokens (v2)', + 'Policy Objects': 'Core policy objects and management', + 'Policy Attributes': 'Attribute definitions and values', + 'Policy Namespaces': 'Namespace management', + 'Policy Actions': 'Action definitions', + 'Policy Subject Mapping': 'Map subjects to attributes', + 'Policy Resource Mapping': 'Map resources to attributes', + 'Policy Obligations': 'Usage obligations and triggers', + 'Policy Registered Resources': 'Resource registration', + 'Policy KAS Registry': 'KAS registration and management', + 'Key Management': 'Cryptographic key management', + 'Policy Unsafe Service': 'Administrative operations', +}; + +const CATEGORY_MAPPING: Record = { + 'Core Services': ['Well-Known Configuration', 'kas'], + 'Authorization & Entity Resolution': ['V1 Authorization', 'V2 Authorization', 'V1 Entity Resolution', 'V2 Entity Resolution'], + 'Policy Management': ['Policy Objects', 'Policy Attributes', 'Policy Namespaces', 'Policy Actions', + 'Policy Subject Mapping', 'Policy Resource Mapping', 'Policy Obligations', + 'Policy Registered Resources', 'Policy KAS Registry', 'Key Management', 'Policy Unsafe Service'], +}; // Read BUILD_OPENAPI_SAMPLES once const BUILD_OPENAPI_SAMPLES = process.env.BUILD_OPENAPI_SAMPLES === '1'; // Initialize empty samples configuration - will be populated conditionally -let samplesConfiguration = {}; +let samplesConfiguration: Record = {}; interface ApiSpecDefinition { id: string; // Unique key for the API spec, e.g., "authorization" @@ -408,33 +438,148 @@ async function preprocessOpenApiSpecs() { console.error(`❌ Error processing ${sourcePath}:`, error); } - spec.specPath = spec.specPathModified; // Update the original specPath to the modified one + // Rebuild the entry with the processed path, dropping specPathModified cleanly + const { specPathModified: _, ...cleanSpec } = spec; + openApiSpecs[id] = { ...cleanSpec, specPath: spec.specPathModified! }; + } + + console.log('✨ OpenAPI preprocessing complete'); +}; + - // Delete the specPathModified property to avoid confusion - delete spec.specPathModified; +/** + * Renames all .info.mdx files to index.mdx so they become category index pages + * instead of appearing as separate items in the sidebar. + */ +function renameInfoFilesToIndex() { + console.log('🔄 Renaming .info.mdx files to index.mdx...'); + + function processDirectory(dir: string) { + if (!fs.existsSync(dir)) return; + + const items = fs.readdirSync(dir, { withFileTypes: true }); + + for (const item of items) { + const fullPath = path.join(dir, item.name); + + if (item.isDirectory()) { + processDirectory(fullPath); + } else if (item.name.endsWith('.info.mdx')) { + const newPath = path.join(dir, 'index.mdx'); + if (fs.existsSync(newPath)) { + console.warn(`⚠️ Skipping rename of ${fullPath} because destination ${newPath} already exists.`); + } else { + fs.renameSync(fullPath, newPath); + console.log(` Renamed: ${fullPath} → ${newPath}`); + } + } + } + } + + processDirectory(OUTPUT_PREFIX); + console.log('✅ Renamed all .info.mdx files to index.mdx'); +} + +/** + * Reads the document ID from a generated index.mdx file and returns the doc path, + * or null if the file does not exist or has no id in frontmatter. + */ +function getDocIdFromInfoFile(outputDir: string): string | null { + try { + const indexPath = path.join(outputDir, 'index.mdx'); + const fileContent = fs.readFileSync(indexPath, 'utf8'); + const parsed = matter(fileContent); + if (parsed.data.id) { + const relativePath = path.relative(OUTPUT_PREFIX, outputDir); + return `OpenAPI-clients/${relativePath}`; + } + } catch (error) { + if (error instanceof Error && 'code' in error && (error as NodeJS.ErrnoException).code === 'ENOENT') { + // Missing index file likely means doc generation failed for this spec — link will be skipped. + console.warn(`⚠️ Could not find index file for an API spec, so it will be skipped. Path: ${path.join(outputDir, 'index.mdx')}`); + } else { + console.warn(`Could not read or parse info file in ${outputDir}:`, error); + } + } + return null; +} + +/** + * Updates the OpenAPI index page with links to generated docs. + * This should be called AFTER the OpenAPI docs have been generated. + */ +function updateOpenApiIndex() { + console.log('📝 Updating OpenAPI index page with generated doc links...'); + + // Build service links dynamically from openApiSpecsArray + // Track which specs are categorized to find uncategorized ones + const specsById = new Map(openApiSpecsArray.map(spec => [spec.id, spec])); + const categorizedSpecs = new Set(); + let serviceLinksMarkdown = ''; + + Object.entries(CATEGORY_MAPPING).forEach(([category, specIds]) => { + serviceLinksMarkdown += `\n## ${category}\n\n`; + specIds.forEach(specId => { + categorizedSpecs.add(specId); + const spec = specsById.get(specId); + if (spec) { + const docId = getDocIdFromInfoFile(spec.outputDir); + if (docId) { + let description = SERVICE_DESCRIPTIONS[specId]; + if (!description) { + console.warn(`⚠️ Missing description for service "${specId}". Using default.`); + description = 'API documentation'; + } + serviceLinksMarkdown += `- **[${spec.id}](/${docId})** - ${description}\n`; + } + } + }); + }); + + // Add uncategorized APIs to a catch-all category + const uncategorizedSpecs = openApiSpecsArray.filter(spec => !categorizedSpecs.has(spec.id)); + if (uncategorizedSpecs.length > 0) { + console.warn(`⚠️ Found ${uncategorizedSpecs.length} uncategorized API(s): ${uncategorizedSpecs.map(s => s.id).join(', ')}`); + serviceLinksMarkdown += `\n## Other APIs\n\n`; + uncategorizedSpecs.forEach(spec => { + const docId = getDocIdFromInfoFile(spec.outputDir); + if (docId) { + let description = SERVICE_DESCRIPTIONS[spec.id]; + if (!description) { + console.warn(`⚠️ Missing description for service "${spec.id}". Using default.`); + description = 'API documentation'; + } + serviceLinksMarkdown += `- **[${spec.id}](/${docId})** - ${description}\n`; + } + }); } - // Create the index page for OpenAPI documentation const indexContent = `--- title: OpenAPI Clients sidebar_position: 7 --- # OpenAPI Clients -OpenAPI client examples are available for platform endpoints. +Interactive API documentation for OpenTDF Platform services. Each endpoint includes request/response examples, parameter descriptions, and the ability to try requests directly in your browser. -Expand each section in the navigation panel to access the OpenAPI documentation for each service. -` +${serviceLinksMarkdown} - // Ensure the file 'OPENAPI_INDEX_PAGE' exists - fs.mkdirSync(path.dirname(OPENAPI_INDEX_PAGE), { recursive: true }); +## Getting Started - fs.writeFileSync(OPENAPI_INDEX_PAGE, indexContent, 'utf8'); - console.log(`✅ Created OpenAPI index page at ${OPENAPI_INDEX_PAGE}`); +1. Select a service from the list above or navigation sidebar +2. Browse available endpoints and operations +3. Review request parameters and response schemas +4. Test endpoints using the "Try it" feature - console.log('✨ OpenAPI preprocessing complete'); -}; +## Authentication +Most endpoints require authentication. Configure your access token in the API documentation interface before testing endpoints. +`; + + fs.mkdirSync(path.dirname(OPENAPI_INDEX_PAGE), { recursive: true }); + fs.writeFileSync(OPENAPI_INDEX_PAGE, indexContent, 'utf8'); + console.log(`✅ Updated OpenAPI index page at ${OPENAPI_INDEX_PAGE}`); +} // Export the function and data without automatically executing it -export { openApiSpecs, openApiSpecsArray, preprocessOpenApiSpecs }; \ No newline at end of file +export { openApiSpecs, openApiSpecsArray, preprocessOpenApiSpecs, updateOpenApiIndex, renameInfoFilesToIndex }; \ No newline at end of file From 729876a4e6960b21993a02bea12eda7e96844ecc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 08:53:58 -0700 Subject: [PATCH 10/13] chore(deps): bump ajv from 6.12.6 to 6.14.0 (#198) Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.6 to 6.14.0.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ajv&package-manager=npm_and_yarn&previous-version=6.12.6&new-version=6.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/opentdf/docs/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Mike Morper --- package-lock.json | 75 +++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed486d0f..fb82b1ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4566,7 +4566,6 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5095,7 +5094,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5118,7 +5116,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5141,7 +5138,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5158,7 +5154,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5175,7 +5170,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5192,7 +5186,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5209,7 +5202,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5226,7 +5218,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5243,7 +5234,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5260,7 +5250,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5277,7 +5266,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -5294,7 +5282,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5317,7 +5304,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5340,7 +5326,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5363,7 +5348,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5386,7 +5370,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5409,7 +5392,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -5432,7 +5414,6 @@ "cpu": [ "wasm32" ], - "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { @@ -5452,7 +5433,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -5472,7 +5452,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -5492,7 +5471,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -8412,14 +8390,15 @@ } }, "node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -13807,6 +13786,22 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -13905,9 +13900,10 @@ } }, "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19149,9 +19145,9 @@ } }, "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -22006,9 +22002,9 @@ } }, "node_modules/raw-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -25393,9 +25389,10 @@ } }, "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", From d1c41b1934d039d646017abc7b5b2d0036703473 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 13:04:13 -0700 Subject: [PATCH 11/13] chore(deps): bump lodash, docusaurus-plugin-openapi-docs and docusaurus-theme-openapi-docs (#200) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [lodash](https://github.com/lodash/lodash) to 4.17.23 and updates ancestor dependencies [lodash](https://github.com/lodash/lodash), [docusaurus-plugin-openapi-docs](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/tree/HEAD/packages/docusaurus-plugin-openapi-docs) and [docusaurus-theme-openapi-docs](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/tree/HEAD/packages/docusaurus-theme-openapi-docs). These dependencies need to be updated together. Updates `lodash` from 4.17.21 to 4.17.23
Commits

Updates `docusaurus-plugin-openapi-docs` from 4.4.0 to 4.7.1
Release notes

Sourced from docusaurus-plugin-openapi-docs's releases.

v4.7.1

Major performance improvement: The new externalJsonProps option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

  • New externalJsonProps plugin option significantly improves build performance
  • Sticky positioning for the API Explorer right panel improves UX on long API pages
  • Dynamic request body updates when switching anyOf/oneOf tabs

Note: v4.7.0 had a build error affecting downstream projects. Please use v4.7.1 instead.

:rocket: New Feature

  • feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
  • feat(theme): add sticky positioning to API Explorer right panel (#1288)
  • feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

:bug: Bug Fix

  • fix(theme): use import type for plugin type imports (#1292)
  • fix: render inline enum values in anyOf schemas (#1286)
  • fix: generate correct examples for different request content types (#1284)

:house: Refactoring

  • refactor: change plugin and theme types.ts to types.d.ts (#1281)
  • refactor: externalize using create() and drop size threshold requirement (#1280)

:memo: Documentation

  • docs: sync README and intro.mdx with plugin docs

:robot: Dependencies

  • chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

Committers: 3

  • dependabot[bot]
  • Ollie Monk
  • Steven Serrata

v4.6.0

What's Changed

... (truncated)

Changelog

Sourced from docusaurus-plugin-openapi-docs's changelog.

4.7.1 (2026-01-27)

Hotfix release for build error in v4.7.0.

:bug: Bug Fix

  • fix(theme): use import type for plugin type imports (#1292)

4.7.0 (2026-01-27)

Major performance improvement: The new externalJsonProps option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

  • New externalJsonProps plugin option significantly improves build performance
  • Sticky positioning for the API Explorer right panel improves UX on long API pages
  • Dynamic request body updates when switching anyOf/oneOf tabs

:rocket: New Feature

  • feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
  • feat(theme): add sticky positioning to API Explorer right panel (#1288)
  • feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

:bug: Bug Fix

  • fix: render inline enum values in anyOf schemas (#1286)
  • fix: generate correct examples for different request content types (#1284)

:house: Refactoring

  • refactor: change plugin and theme types.ts to types.d.ts (#1281)
  • refactor: externalize using create() and drop size threshold requirement (#1280)

:memo: Documentation

  • docs: sync README and intro.mdx with plugin docs

:robot: Dependencies

  • chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

Committers: 3

  • dependabot[bot]
  • Ollie Monk
  • Steven Serrata

4.6.0 (Jan 16, 2026)

High level enhancements

... (truncated)

Commits
  • 0a89b9d Prepare release v4.7.1 (#1293)
  • f5829b8 Prepare release v4.7.0 (#1289)
  • 71621ac Change plugin and theme types.ts to types.d.ts (#1281)
  • 6a466fe fix: render inline enum values in anyOf schemas (#1285) (#1286)
  • bfe7bd8 Externalize using create() and drop size threshold requirement (#1280)
  • 77f891e feat(plugin): add externalJsonProps option (enabled by default) to improve bu...
  • c7c5ca9 Prepare release v4.6.0 (#1277)
  • d9275c0 remove beta badge
  • e1e210e feat: add showInfoPage option to disable info page generation (#1272)
  • 7740c82 fix: handle undefined when outputDir doesn't contain docPath (#1271)
  • Additional commits viewable in compare view

Updates `docusaurus-theme-openapi-docs` from 4.4.0 to 4.7.1
Release notes

Sourced from docusaurus-theme-openapi-docs's releases.

v4.7.1

Major performance improvement: The new externalJsonProps option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

  • New externalJsonProps plugin option significantly improves build performance
  • Sticky positioning for the API Explorer right panel improves UX on long API pages
  • Dynamic request body updates when switching anyOf/oneOf tabs

Note: v4.7.0 had a build error affecting downstream projects. Please use v4.7.1 instead.

:rocket: New Feature

  • feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
  • feat(theme): add sticky positioning to API Explorer right panel (#1288)
  • feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

:bug: Bug Fix

  • fix(theme): use import type for plugin type imports (#1292)
  • fix: render inline enum values in anyOf schemas (#1286)
  • fix: generate correct examples for different request content types (#1284)

:house: Refactoring

  • refactor: change plugin and theme types.ts to types.d.ts (#1281)
  • refactor: externalize using create() and drop size threshold requirement (#1280)

:memo: Documentation

  • docs: sync README and intro.mdx with plugin docs

:robot: Dependencies

  • chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

Committers: 3

  • dependabot[bot]
  • Ollie Monk
  • Steven Serrata

v4.6.0

What's Changed

... (truncated)

Changelog

Sourced from docusaurus-theme-openapi-docs's changelog.

4.7.1 (2026-01-27)

Hotfix release for build error in v4.7.0.

:bug: Bug Fix

  • fix(theme): use import type for plugin type imports (#1292)

4.7.0 (2026-01-27)

Major performance improvement: The new externalJsonProps option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

  • New externalJsonProps plugin option significantly improves build performance
  • Sticky positioning for the API Explorer right panel improves UX on long API pages
  • Dynamic request body updates when switching anyOf/oneOf tabs

:rocket: New Feature

  • feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
  • feat(theme): add sticky positioning to API Explorer right panel (#1288)
  • feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

:bug: Bug Fix

  • fix: render inline enum values in anyOf schemas (#1286)
  • fix: generate correct examples for different request content types (#1284)

:house: Refactoring

  • refactor: change plugin and theme types.ts to types.d.ts (#1281)
  • refactor: externalize using create() and drop size threshold requirement (#1280)

:memo: Documentation

  • docs: sync README and intro.mdx with plugin docs

:robot: Dependencies

  • chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

Committers: 3

  • dependabot[bot]
  • Ollie Monk
  • Steven Serrata

4.6.0 (Jan 16, 2026)

High level enhancements

... (truncated)

Commits
  • 0a89b9d Prepare release v4.7.1 (#1293)
  • 3c5d387 fix(theme): use import type for plugin type imports (#1292)
  • f5829b8 Prepare release v4.7.0 (#1289)
  • 71621ac Change plugin and theme types.ts to types.d.ts (#1281)
  • fd4ed79 feat(theme): add sticky positioning to API Explorer right panel (#1288)
  • 6ebffbb feat: dynamically update request body when anyOf/oneOf tab changes (#1235) (#...
  • 6a466fe fix: render inline enum values in anyOf schemas (#1285) (#1286)
  • 47258df fix: generate correct examples for different request content types (#1283) (#...
  • c7c5ca9 Prepare release v4.6.0 (#1277)
  • b7b7b77 fix: allow Send API Request button with proxy-only configuration (#1274)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/opentdf/docs/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Mike Morper --- package-lock.json | 2378 ++++++--------------------------------------- package.json | 4 +- 2 files changed, 276 insertions(+), 2106 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb82b1ba..64845a39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,10 +19,10 @@ "@mdx-js/react": "^3.1.0", "clsx": "^2.0.0", "docusaurus-lunr-search": "^3.6.0", - "docusaurus-plugin-openapi-docs": "^4.4.0", + "docusaurus-plugin-openapi-docs": "^4.7.1", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", - "docusaurus-theme-openapi-docs": "^4.4.0", + "docusaurus-theme-openapi-docs": "^4.7.1", "gray-matter": "^4.0.3", "minimatch": "^10.2.1", "octokit": "^4.0.2", @@ -41,7 +41,6 @@ "@docusaurus/tsconfig": "^3.6.3", "@docusaurus/types": "^3.6.3", "@iconify-icon/react": "^2.1.0", - "puppeteer-core": "^24.37.5", "sharp": "^0.34.2", "tsx": "^4.20.3", "typescript": "^5.7.2" @@ -7024,41 +7023,6 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" }, - "node_modules/@puppeteer/browsers": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", - "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", @@ -7121,19 +7085,21 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", - "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", "license": "MIT", "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "peerDependenciesMeta": { "react": { @@ -7191,6 +7157,18 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -7445,13 +7423,6 @@ "node": ">=14.16" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -7850,16 +7821,6 @@ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", - "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -7985,18 +7946,6 @@ "csstype": "^3.0.2" } }, - "node_modules/@types/react-redux": { - "version": "7.1.34", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz", - "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", - "license": "MIT", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, "node_modules/@types/react-router": { "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", @@ -8087,6 +8036,12 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -8110,17 +8065,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "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==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -8638,19 +8582,6 @@ "node": ">=12.0.0" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/astring": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", @@ -8660,9 +8591,9 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "license": "MIT" }, "node_modules/asynckit": { @@ -8671,14 +8602,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/autocomplete.js": { "version": "0.37.1", "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.37.1.tgz", @@ -8925,16 +8848,6 @@ "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/basic-ftp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz", - "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -9175,16 +9088,6 @@ "ieee754": "^1.1.13" } }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -9539,20 +9442,6 @@ "node": ">=6.0" } }, - "node_modules/chromium-bidi": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", - "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -11131,16 +11020,6 @@ "lodash-es": "^4.17.21" } }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/dayjs": { "version": "1.11.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", @@ -11153,9 +11032,9 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -11310,21 +11189,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -11419,22 +11283,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1566079", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1566079.tgz", - "integrity": "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/diff": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", - "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -11618,26 +11466,26 @@ } }, "node_modules/docusaurus-plugin-openapi-docs": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.4.0.tgz", - "integrity": "sha512-VFW0euAyM6i6U6Q2WrNXkp1LnxQFGszZbmloMFYrs1qwBjPLkuHfQ4OJMXGDsGcGl4zNDJ9cwODmJlmdwl1hwg==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.7.1.tgz", + "integrity": "sha512-RpqvTEnhIfdSuTn/Fa/8bmxeufijLL9HCRb//ELD33AKqEbCw147SKR/CqWu4H4gwi50FZLUbiHKZJbPtXLt9Q==", "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.4", - "@redocly/openapi-core": "^1.10.5", + "@redocly/openapi-core": "^1.34.3", "allof-merge": "^0.6.6", "chalk": "^4.1.2", - "clsx": "^1.1.1", - "fs-extra": "^9.0.1", + "clsx": "^2.1.1", + "fs-extra": "^11.3.0", "json-pointer": "^0.6.2", "json5": "^2.2.3", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "mustache": "^4.2.0", - "openapi-to-postmanv2": "^4.21.0", - "postman-collection": "^4.4.0", - "slugify": "^1.6.5", + "openapi-to-postmanv2": "^5.0.0", + "postman-collection": "^5.0.2", + "slugify": "^1.6.6", "swagger2openapi": "^7.0.8", - "xml-formatter": "^2.6.1" + "xml-formatter": "^3.6.6" }, "engines": { "node": ">=14" @@ -11649,30 +11497,6 @@ "react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/docusaurus-plugin-remote-content": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/docusaurus-plugin-remote-content/-/docusaurus-plugin-remote-content-4.0.0.tgz", @@ -11768,38 +11592,38 @@ } }, "node_modules/docusaurus-theme-openapi-docs": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.4.0.tgz", - "integrity": "sha512-wmc2b946rqBcdjgEHi6Up7e8orasYk5RnIUerTfmZ/Hi006I8FIjMnJEmHAF6t5PbFiiYnlkB6vYK0CC5xBnCQ==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.7.1.tgz", + "integrity": "sha512-OPydf11LoEY3fdxaoqCVO+qCk7LBo6l6s28UvHJ5mIN/2xu+dOOio9+xnKZ5FIPOlD+dx0gVSKzaVCi/UFTxlg==", "license": "MIT", "dependencies": { "@hookform/error-message": "^2.0.1", - "@reduxjs/toolkit": "^1.7.1", + "@reduxjs/toolkit": "^2.8.2", "allof-merge": "^0.6.6", "buffer": "^6.0.3", - "clsx": "^1.1.1", - "copy-text-to-clipboard": "^3.1.0", - "crypto-js": "^4.1.1", + "clsx": "^2.1.1", + "copy-text-to-clipboard": "^3.2.0", + "crypto-js": "^4.2.0", "file-saver": "^2.0.5", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "pako": "^2.1.0", - "postman-code-generators": "^1.10.1", - "postman-collection": "^4.4.0", - "prism-react-renderer": "^2.3.0", + "postman-code-generators": "^2.0.0", + "postman-collection": "^5.0.2", + "prism-react-renderer": "^2.4.1", "process": "^0.11.10", - "react-hook-form": "^7.43.8", - "react-live": "^4.0.0", + "react-hook-form": "^7.59.0", + "react-live": "^4.1.8", "react-magic-dropzone": "^1.0.1", - "react-markdown": "^8.0.1", - "react-modal": "^3.15.1", - "react-redux": "^7.2.0", - "rehype-raw": "^6.1.1", - "remark-gfm": "3.0.1", - "sass": "^1.80.4", - "sass-loader": "^16.0.2", + "react-markdown": "^10.1.0", + "react-modal": "^3.16.3", + "react-redux": "^9.2.0", + "rehype-raw": "^7.0.0", + "remark-gfm": "4.0.1", + "sass": "^1.89.2", + "sass-loader": "^16.0.5", "unist-util-visit": "^5.0.0", - "url": "^0.11.1", - "xml-formatter": "^2.6.1" + "url": "^0.11.4", + "xml-formatter": "^3.6.6" }, "engines": { "node": ">=14" @@ -11812,36 +11636,6 @@ "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, "node_modules/docusaurus-theme-openapi-docs/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -11866,1170 +11660,77 @@ "ieee754": "^1.2.1" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-theme-openapi-docs/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/docusaurus-theme-openapi-docs/node_modules/hast-util-from-parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", - "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", + "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", "license": "MIT", "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", - "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "web-namespaces": "^2.0.0" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-parse-selector": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", - "license": "MIT", + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "utila": "~0.4" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-raw": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", - "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", - "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==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-raw/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", + "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" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-to-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", - "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.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/docusaurus-theme-openapi-docs/node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/hastscript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "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", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "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-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", - "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", - "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", - "license": "MIT", - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", - "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", - "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", - "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "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": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", - "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/prop-types": "^15.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "prop-types": "^15.0.0", - "property-information": "^6.0.0", - "react-is": "^18.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/rehype-raw": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", - "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-raw": "^7.2.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "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==", - "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" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/dompurify": { @@ -13330,49 +12031,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -13696,43 +12354,6 @@ "node": ">=0.10.0" } }, - "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==", - "dev": true, - "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/extract-zip/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-content-type-parse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", @@ -13834,16 +12455,6 @@ "node": ">=0.8.0" } }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/feed": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", @@ -14161,9 +12772,10 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -14327,21 +12939,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -14353,6 +12950,27 @@ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -14386,6 +13004,28 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz", + "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -15261,20 +13901,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/http-proxy-middleware": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", @@ -15445,9 +14071,10 @@ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" }, "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", + "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -15546,6 +14173,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -15558,16 +14186,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -16426,78 +15044,6 @@ "node": ">= 0.4" } }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/mdast-util-definitions/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-directive": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", @@ -18690,9 +17236,9 @@ } }, "node_modules/mime-format": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.1.tgz", - "integrity": "sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.2.tgz", + "integrity": "sha512-Y5ERWVcyh3sby9Fx2U5F1yatiTFjNsqF5NltihTWI9QgNtr5o3dbCZdcKa1l2wyfhnwwoP9HGNxga7LqZLA6gw==", "license": "Apache-2.0", "dependencies": { "charset": "^1.0.0" @@ -18806,13 +17352,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, "node_modules/mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", @@ -18840,15 +17379,6 @@ "ufo": "^1.6.1" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -18941,16 +17471,6 @@ "node": ">= 10" } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -19425,15 +17945,15 @@ } }, "node_modules/openapi-to-postmanv2": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.25.0.tgz", - "integrity": "sha512-sIymbkQby0gzxt2Yez8YKB6hoISEel05XwGwNrAhr6+vxJWXNxkmssQc/8UEtVkuJ9ZfUXLkip9PYACIpfPDWg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-5.8.0.tgz", + "integrity": "sha512-7f02ypBlAx4G9z3bP/uDk8pBwRbYt97Eoso8XJLyclfyRvCC+CvERLUl0MD0x+GoumpkJYnQ0VGdib/kwtUdUw==", "license": "Apache-2.0", "dependencies": { - "ajv": "8.11.0", + "ajv": "^8.11.0", "ajv-draft-04": "1.0.0", "ajv-formats": "2.1.1", - "async": "3.2.4", + "async": "3.2.6", "commander": "2.20.3", "graphlib": "2.1.8", "js-yaml": "4.1.0", @@ -19444,7 +17964,7 @@ "oas-resolver-browser": "2.5.6", "object-hash": "3.0.0", "path-browserify": "1.0.1", - "postman-collection": "^4.4.0", + "postman-collection": "^5.0.0", "swagger2openapi": "7.0.8", "yaml": "1.10.2" }, @@ -19452,23 +17972,7 @@ "openapi2postmanv2": "bin/openapi2postmanv2.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/openapi-to-postmanv2/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "node": ">=18" } }, "node_modules/openapi-to-postmanv2/node_modules/commander": { @@ -19586,40 +18090,6 @@ "node": ">=8" } }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/package-json": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", @@ -19887,13 +18357,6 @@ "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==", - "dev": true, - "license": "MIT" - }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -21463,9 +19926,9 @@ } }, "node_modules/postman-code-generators": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/postman-code-generators/-/postman-code-generators-1.14.2.tgz", - "integrity": "sha512-qZAyyowfQAFE4MSCu2KtMGGQE/+oG1JhMZMJNMdZHYCSfQiVVeKxgk3oI4+KJ3d1y5rrm2D6C6x+Z+7iyqm+fA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postman-code-generators/-/postman-code-generators-2.1.0.tgz", + "integrity": "sha512-PCptfRoq6pyyqeB9qw87MfjpIZEZIykIna7Api9euhYftyrad/kCkIyXfWF6GrkcHv0nYid05xoRPWPX9JHkZg==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -21473,11 +19936,11 @@ "detect-package-manager": "3.0.2", "lodash": "4.17.21", "path": "0.12.7", - "postman-collection": "^4.4.0", + "postman-collection": "^5.0.0", "shelljs": "0.8.5" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/postman-code-generators/node_modules/async": { @@ -21487,9 +19950,9 @@ "license": "MIT" }, "node_modules/postman-collection": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.5.0.tgz", - "integrity": "sha512-152JSW9pdbaoJihwjc7Q8lc3nPg/PC9lPTHdMk7SHnHhu/GBJB7b2yb9zG7Qua578+3PxkQ/HYBuXpDSvsf7GQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-5.2.1.tgz", + "integrity": "sha512-KWzsR1RdLYuufabEEZ+UaMn/exDUNkGqC7tT8GkWumarGdpl/dAh3Lcgo7Z2fDqsGeb+EkqZgrYH8beXRtLmjA==", "license": "Apache-2.0", "dependencies": { "@faker-js/faker": "5.5.3", @@ -21497,15 +19960,15 @@ "http-reasons": "0.1.0", "iconv-lite": "0.6.3", "liquid-json": "0.3.1", - "lodash": "4.17.21", - "mime-format": "2.0.1", - "mime-types": "2.1.35", - "postman-url-encoder": "3.0.5", - "semver": "7.6.3", + "lodash": "4.17.23", + "mime": "3.0.0", + "mime-format": "2.0.2", + "postman-url-encoder": "3.0.8", + "semver": "7.7.1", "uuid": "8.3.2" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/postman-collection/node_modules/iconv-lite": { @@ -21513,41 +19976,38 @@ "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/postman-collection/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/postman-collection/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/postman-collection/node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/postman-collection/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">= 0.6" + "node": ">=10.0.0" } }, "node_modules/postman-url-encoder": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.5.tgz", - "integrity": "sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.8.tgz", + "integrity": "sha512-EOgUMBazo7JNP4TDrd64TsooCiWzzo4143Ws8E8WYGEpn2PKpq+S4XRTDhuRTYHm3VKOpUZs7ZYZq7zSDuesqA==", "license": "Apache-2.0", "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.1" }, "engines": { "node": ">=10" @@ -21640,9 +20100,10 @@ } }, "node_modules/prism-react-renderer": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.0.tgz", - "integrity": "sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" @@ -21674,16 +20135,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -21740,36 +20191,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -21808,47 +20229,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/puppeteer-core": { - "version": "24.37.5", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.5.tgz", - "integrity": "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1566079", - "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.19.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/pvtsutils": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", @@ -22144,9 +20524,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.57.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.57.0.tgz", - "integrity": "sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==", + "version": "7.71.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.71.2.tgz", + "integrity": "sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -22276,36 +20656,28 @@ } }, "node_modules/react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "react": "^16.8.3 || ^17 || ^18" + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" }, "peerDependenciesMeta": { - "react-dom": { + "@types/react": { "optional": true }, - "react-native": { + "redux": { "optional": true } } }, - "node_modules/react-redux/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/react-router": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", @@ -22390,21 +20762,18 @@ } }, "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" }, "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", "license": "MIT", "peerDependencies": { - "redux": "^4" + "redux": "^5.0.0" } }, "node_modules/reflect-metadata": { @@ -22741,9 +21110,10 @@ } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "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", @@ -22947,9 +21317,9 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", "license": "MIT" }, "node_modules/resolve": { @@ -23041,49 +21411,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", @@ -23160,18 +21487,6 @@ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", "license": "BSD-3-Clause" }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -23360,9 +21675,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -23692,6 +22007,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -23704,49 +22020,6 @@ "node": ">=4" } }, - "node_modules/shelljs/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/shelljs/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/shelljs/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/should": { "version": "13.2.3", "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", @@ -24008,17 +22281,6 @@ "node": ">=8.0.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -24038,36 +22300,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/sort-css-media-queries": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", @@ -24974,13 +23206,6 @@ "node": ">= 0.6" } }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true, - "license": "MIT" - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -25111,16 +23336,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", @@ -25468,6 +23683,15 @@ "react": ">= 16.8.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", @@ -25517,33 +23741,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/validate.io-array": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", @@ -25719,13 +23916,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -26308,15 +24498,15 @@ } }, "node_modules/xml-formatter": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.6.1.tgz", - "integrity": "sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==", + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.7.tgz", + "integrity": "sha512-IsfFYJQuoDqtUlKhm4EzeoBOb+fQwzQVeyxxAQ0sThn/nFnQmyLPTplqq4yRhaOENH/tAyujD2TBfIYzUKB6hg==", "license": "MIT", "dependencies": { - "xml-parser-xo": "^3.2.0" + "xml-parser-xo": "^4.1.5" }, "engines": { - "node": ">= 10" + "node": ">= 16" } }, "node_modules/xml-js": { @@ -26332,12 +24522,12 @@ } }, "node_modules/xml-parser-xo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.2.0.tgz", - "integrity": "sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-4.1.5.tgz", + "integrity": "sha512-TxyRxk9sTOUg3glxSIY6f0nfuqRll2OEF8TspLgh5mZkLuBgheCn3zClcDSGJ58TvNmiwyCCuat4UajPud/5Og==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 16" } }, "node_modules/xtend": { @@ -26366,6 +24556,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } @@ -26423,17 +24614,6 @@ "node": ">=8" } }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yocto-queue": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", @@ -26446,16 +24626,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index c11722f1..88f87564 100644 --- a/package.json +++ b/package.json @@ -30,10 +30,10 @@ "@mdx-js/react": "^3.1.0", "clsx": "^2.0.0", "docusaurus-lunr-search": "^3.6.0", - "docusaurus-plugin-openapi-docs": "^4.4.0", + "docusaurus-plugin-openapi-docs": "^4.7.1", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", - "docusaurus-theme-openapi-docs": "^4.4.0", + "docusaurus-theme-openapi-docs": "^4.7.1", "gray-matter": "^4.0.3", "minimatch": "^10.2.1", "octokit": "^4.0.2", From b50d9a47ae172ed94224541c30ee937153bd4592 Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Mon, 23 Feb 2026 19:45:50 -0500 Subject: [PATCH 12/13] chore: remove unused horizontal logo, add filecontents SVG Part of light theme improvements work. Refs #199 Co-Authored-By: Claude Opus 4.6 Signed-off-by: Mike Morper --- static/img/filecontents.svg | 13 +++++++++++++ static/img/opentdf-logo-horizontal.png | Bin 14293 -> 0 bytes 2 files changed, 13 insertions(+) create mode 100644 static/img/filecontents.svg delete mode 100644 static/img/opentdf-logo-horizontal.png diff --git a/static/img/filecontents.svg b/static/img/filecontents.svg new file mode 100644 index 00000000..6059a070 --- /dev/null +++ b/static/img/filecontents.svg @@ -0,0 +1,13 @@ + + + + my_document.ext.tdf (Zip) + + + + manifest.json + + + + 0.payload (Encrypted) + \ No newline at end of file diff --git a/static/img/opentdf-logo-horizontal.png b/static/img/opentdf-logo-horizontal.png deleted file mode 100644 index 2cd53b2a0da51f6681d7ee8aa778a28af042ad4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14293 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�s~U%TICGeEb+l-_8m&Ua{vkPQ4KZSGe-VEx zYuk4AFI~oyNzLTJX~*mUBi8X9A}k-K)6>)*)%2_+rMTpvM?@br-#Svl8SlA-C?`$j zKWGM+0*rHl)Q((|=x+DA>Kv9W&rT#SpH4It0Xq*viWdfd4d|RgI^(hdEord%gE>nK zP+6ql@KKmrYcSxm5Yhj}ZX{>(Uv!29KYw*cg+_a;D4${PI;x5gGf?3Cb&?6y_k0q~ z`j|j2?O~k-X1tWJe0Xfmm$&^F2=+rWyRa4J<_uAKX^ywE9r0sSvz*6R&}1+ofsTI~ zG3D}=7HL>sXG1NVzH$fut>S%C9+SBXtdH{E=LPpUj*6XH1{d#Ha=#i@2{Ygli02C_ zB)sRlB}2bHIM0xW{CvJso2AimOvT9~_VbAW+v(hNq2E?J``k&IU>l+5C+gjv3H=q- zpk!CeQ&XDff0)-1`IOewVTFZnT;0QSoi<~rlXlStw_dWY0qvitT5GB37Vkv{0iV&Q zudbW(utAn@L4V}VAF3)}_m|&iYvXrpipd)Ky2=;We}3*Vr;u}v_ZU}bSF*qtPjWW2 z7I_Yr)?Br^FV{3k`~m9PT6_mlCQDl~?V3iS&I1I?pS;!0xYXPY1)Sx_dwsN#QFWeM#6he@O5nYfy* zT}y6$ak+jB|5`M>QfAte1~Xm1?G%UWuW~fKLPZPZEL-k*Sk5~}r9d8nweTHh2Nh_twZSha{z!2bc=(LKBX From 82de97e424f90f030509c2dc7c3bc1e085aaca9c Mon Sep 17 00:00:00 2001 From: Mike Morper Date: Mon, 23 Feb 2026 20:25:07 -0500 Subject: [PATCH 13/13] feat: improve light theme contrast and visual fidelity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update all landing page components to use proper light-mode color treatments matching the light-theme-mock design: - Primary accent: #22D3EE → #0891B2 on buttons, badges, icons, hovers - Install fields: #0A0C10 → #F1F5F9 with border and dark text - Heading gradient: replaced with solid #0891B2 in light mode - Code window glow: cyan glow → subtle dark shadow - Badge dot: use green (#16A34A) in light mode - Fix "JS Quickstart" button label to "Quickstart" Affects Hero, DeveloperFirst, ProblemSolution, Standards, Community, FinalCTA components and shared landing.css utilities. Refs #199 Co-Authored-By: Claude Opus 4.6 Signed-off-by: Mike Morper --- src/components/landing/Community.module.css | 12 +++++ .../landing/DeveloperFirst.module.css | 44 ++++++++++++++++++- src/components/landing/DeveloperFirst.tsx | 2 +- src/components/landing/FinalCTA.module.css | 15 +++++++ src/components/landing/Hero.module.css | 23 +++++++++- .../landing/ProblemSolution.module.css | 17 +++++++ src/components/landing/Standards.module.css | 9 ++++ src/css/landing.css | 31 ++++++++++++- 8 files changed, 148 insertions(+), 5 deletions(-) diff --git a/src/components/landing/Community.module.css b/src/components/landing/Community.module.css index 32eb633d..ca0de0a7 100644 --- a/src/components/landing/Community.module.css +++ b/src/components/landing/Community.module.css @@ -116,6 +116,18 @@ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); } +:global(html[data-theme='light']) .card:hover { + border-color: rgba(8, 145, 178, 0.2); +} + +:global(html[data-theme='light']) .card:hover .cardIcon { + color: #0891b2; +} + +:global(html[data-theme='light']) .card:hover .cardTitle { + color: #0891b2; +} + :global(html[data-theme='light']) .body { color: #4b5563; } diff --git a/src/components/landing/DeveloperFirst.module.css b/src/components/landing/DeveloperFirst.module.css index 3b3251e4..147b8ea1 100644 --- a/src/components/landing/DeveloperFirst.module.css +++ b/src/components/landing/DeveloperFirst.module.css @@ -212,7 +212,7 @@ } } -/* Light mode overrides — install cmd and copy button intentionally stay dark (code) */ +/* Light mode overrides */ :global(html[data-theme='light']) .card { background: #ffffff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06); @@ -222,6 +222,48 @@ color: #4b5563; } +:global(html[data-theme='light']) .badge { + color: #0891b2; + border-color: rgba(8, 145, 178, 0.2); + background: rgba(8, 145, 178, 0.06); +} + +:global(html[data-theme='light']) .sdkName:hover { + color: #0891b2; +} + +:global(html[data-theme='light']) .installCmd { + background: #f1f5f9; + color: #334155; + border: 1px solid #e2e8f0; +} + +:global(html[data-theme='light']) .copyBtn { + background: #f1f5f9; + border: 1px solid #e2e8f0; + color: #94a3b8; +} + +:global(html[data-theme='light']) .copyBtn:hover { + color: #0891b2; + border-color: rgba(8, 145, 178, 0.2); +} + +:global(html[data-theme='light']) .btnPrimary { + background: #0891b2; + color: #fff; +} + +:global(html[data-theme='light']) .btnPrimary:hover { + background: #0e7490; + color: #fff; +} + :global(html[data-theme='light']) .btnSecondary { border-color: rgba(0, 0, 0, 0.15); } + +:global(html[data-theme='light']) .btnSecondary:hover { + border-color: #0891b2; + color: #0891b2; +} diff --git a/src/components/landing/DeveloperFirst.tsx b/src/components/landing/DeveloperFirst.tsx index 69fbb7d5..a2f5b775 100644 --- a/src/components/landing/DeveloperFirst.tsx +++ b/src/components/landing/DeveloperFirst.tsx @@ -129,7 +129,7 @@ export default function DeveloperFirst() {
- JS Quickstart + Quickstart All SDKs diff --git a/src/components/landing/FinalCTA.module.css b/src/components/landing/FinalCTA.module.css index 14b20ee6..6716d545 100644 --- a/src/components/landing/FinalCTA.module.css +++ b/src/components/landing/FinalCTA.module.css @@ -116,10 +116,25 @@ color: #4b5563; } +:global(html[data-theme='light']) .btnPrimary { + background: #0891b2; + color: #fff; +} + +:global(html[data-theme='light']) .btnPrimary:hover { + background: #0e7490; + color: #fff; +} + :global(html[data-theme='light']) .btnSecondary { border-color: rgba(0, 0, 0, 0.15); } +:global(html[data-theme='light']) .btnSecondary:hover { + border-color: #0891b2; + color: #0891b2; +} + :global(html[data-theme='light']) .btnGhost { border-color: rgba(0, 0, 0, 0.08); } diff --git a/src/components/landing/Hero.module.css b/src/components/landing/Hero.module.css index cd781f51..e4811821 100644 --- a/src/components/landing/Hero.module.css +++ b/src/components/landing/Hero.module.css @@ -212,14 +212,35 @@ } /* Light mode overrides — code window intentionally stays dark */ +:global(html[data-theme='light']) .badge { + color: #0891b2; + border-color: rgba(8, 145, 178, 0.2); + background: rgba(8, 145, 178, 0.06); +} + +:global(html[data-theme='light']) .badgeDot { + background: #16a34a; +} + :global(html[data-theme='light']) .bodyPrimary { color: #4b5563; } +:global(html[data-theme='light']) .btnPrimary { + background: #0891b2; + color: #fff; +} + +:global(html[data-theme='light']) .btnPrimary:hover { + background: #0e7490; + color: #fff; +} + :global(html[data-theme='light']) .btnSecondary { border-color: rgba(0, 0, 0, 0.15); } :global(html[data-theme='light']) .btnSecondary:hover { - border-color: #22d3ee; + border-color: #0891b2; + color: #0891b2; } diff --git a/src/components/landing/ProblemSolution.module.css b/src/components/landing/ProblemSolution.module.css index e5ffc25d..1b5ed479 100644 --- a/src/components/landing/ProblemSolution.module.css +++ b/src/components/landing/ProblemSolution.module.css @@ -150,6 +150,18 @@ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); } +:global(html[data-theme='light']) .card:hover { + border-color: rgba(8, 145, 178, 0.2); +} + +:global(html[data-theme='light']) .iconWrap { + background: rgba(8, 145, 178, 0.06); +} + +:global(html[data-theme='light']) .cardIcon { + color: #0891b2; +} + :global(html[data-theme='light']) .bodyPrimary, :global(html[data-theme='light']) .cardBody { color: #4b5563; @@ -158,3 +170,8 @@ :global(html[data-theme='light']) .btn { border-color: rgba(0, 0, 0, 0.15); } + +:global(html[data-theme='light']) .btn:hover { + border-color: #0891b2; + color: #0891b2; +} diff --git a/src/components/landing/Standards.module.css b/src/components/landing/Standards.module.css index 237a2067..a6d91893 100644 --- a/src/components/landing/Standards.module.css +++ b/src/components/landing/Standards.module.css @@ -181,6 +181,10 @@ } /* Light mode overrides — diagram intentionally stays dark */ +:global(html[data-theme='light']) .checkIcon { + color: #0891b2; +} + :global(html[data-theme='light']) .body, :global(html[data-theme='light']) .featureItem { color: #4b5563; @@ -190,6 +194,11 @@ border-color: rgba(0, 0, 0, 0.15); } +:global(html[data-theme='light']) .btnSecondary:hover { + border-color: #0891b2; + color: #0891b2; +} + :global(html[data-theme='light']) .btnGhost { border-color: rgba(0, 0, 0, 0.08); } diff --git a/src/css/landing.css b/src/css/landing.css index 9db6e8d4..a9f45646 100644 --- a/src/css/landing.css +++ b/src/css/landing.css @@ -91,11 +91,38 @@ html[data-theme='light'] .section-darker { } html[data-theme='light'] .bg-grid { - background-image: linear-gradient(rgba(34, 211, 238, 0.05) 1px, transparent 1px), - linear-gradient(90deg, rgba(34, 211, 238, 0.05) 1px, transparent 1px); + background-image: linear-gradient(rgba(8, 145, 178, 0.04) 1px, transparent 1px), + linear-gradient(90deg, rgba(8, 145, 178, 0.04) 1px, transparent 1px); background-size: 64px 64px; } +html[data-theme='light'] .bg-mesh { + background-image: radial-gradient(ellipse at 20% 50%, rgba(8, 145, 178, 0.05) 0%, transparent 50%), + radial-gradient(ellipse at 80% 20%, rgba(245, 158, 11, 0.03) 0%, transparent 50%); +} + +html[data-theme='light'] .bg-mesh-reverse { + background-image: radial-gradient(ellipse at 80% 60%, rgba(8, 145, 178, 0.04) 0%, transparent 50%), + radial-gradient(ellipse at 20% 30%, rgba(245, 158, 11, 0.02) 0%, transparent 50%); +} + +html[data-theme='light'] .text-gradient { + background: none; + -webkit-background-clip: unset; + -webkit-text-fill-color: #0891b2; + background-clip: unset; + color: #0891b2; +} + +html[data-theme='light'] .glow-cyan { + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08); +} + html[data-theme='light'] .sdk-card { border-color: rgba(0, 0, 0, 0.08); } + +html[data-theme='light'] .sdk-card:hover { + box-shadow: 0 0 0 1px var(--sdk-color, #0891b2), + 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.06); +}