From 141ca643d7373e859985bfa155d41a6d6ec0b776 Mon Sep 17 00:00:00 2001 From: siradji Date: Mon, 21 Aug 2023 06:27:09 +0100 Subject: [PATCH] feature: added next blog --- next/blog/.eslintignore | 2 + next/blog/.eslintrc.json | 22 + next/blog/.gitignore | 44 + next/blog/.prettierrc | 5 + next/blog/README.md | 8 + next/blog/api/_api-route.ts | 91 + next/blog/api/about.ts | 33 + next/blog/api/blogs.ts | 90 + next/blog/api/contact.ts | 22 + next/blog/api/home.ts | 37 + next/blog/api/index.ts | 4 + next/blog/assets/css/main.css | 13 + next/blog/assets/css/prose.css | 12 + next/blog/assets/css/reset.css | 12 + next/blog/assets/css/transition.css | 8 + next/blog/assets/icons/arrow.tsx | 9 + next/blog/assets/icons/email.tsx | 9 + next/blog/assets/icons/mailgun.tsx | 37 + next/blog/assets/icons/menu.tsx | 12 + next/blog/assets/icons/open.tsx | 23 + next/blog/assets/icons/paper-plane.tsx | 29 + next/blog/assets/icons/search.tsx | 25 + next/blog/assets/icons/x.tsx | 17 + next/blog/assets/media/email-bg.png | Bin 0 -> 101042 bytes next/blog/bcms-components/__v | 1 + next/blog/bcms-components/content-item.tsx | 44 + next/blog/bcms-components/content-manager.tsx | 65 + next/blog/bcms-components/image.tsx | 102 + next/blog/bcms-components/index.ts | 3 + next/blog/bcms.config.js | 20 + next/blog/components/ContentManager.tsx | 38 + next/blog/components/PageWrapper.tsx | 19 + next/blog/components/Search.tsx | 42 + next/blog/components/TopGradient.tsx | 12 + next/blog/components/blogs/Card.tsx | 49 + next/blog/components/content-page/Form.tsx | 99 + next/blog/components/form/Text.tsx | 64 + next/blog/components/home-page/BlogList.tsx | 35 + next/blog/components/home-page/Hero.tsx | 81 + next/blog/components/layout/Footer.tsx | 80 + next/blog/components/layout/Header.tsx | 64 + .../widgets/TextWithImageComponent.tsx | 29 + next/blog/composables/error.ts | 28 + next/blog/composables/og-head.ts | 105 + next/blog/next-env.d.ts | 5 + next/blog/next.config.js | 9 + next/blog/package-lock.json | 12924 ++++++++++++++++ next/blog/package.json | 33 + next/blog/pages/_app.tsx | 21 + next/blog/pages/about-me.tsx | 55 + next/blog/pages/blog/[slug].tsx | 100 + next/blog/pages/blog/index.tsx | 145 + next/blog/pages/contact.tsx | 56 + next/blog/pages/index.tsx | 38 + next/blog/postcss.config.js | 6 + next/blog/public/android-chrome-192x192.png | Bin 0 -> 1899 bytes next/blog/public/android-chrome-512x512.png | Bin 0 -> 4262 bytes next/blog/public/apple-touch-icon.png | Bin 0 -> 496 bytes next/blog/public/browserconfig.xml | 9 + next/blog/public/favicon-16x16.png | Bin 0 -> 457 bytes next/blog/public/favicon-32x32.png | Bin 0 -> 495 bytes next/blog/public/favicon.ico | Bin 0 -> 15086 bytes next/blog/public/mstile-150x150.png | Bin 0 -> 871 bytes next/blog/public/safari-pinned-tab.svg | 16 + next/blog/public/site.webmanifest | 19 + next/blog/public/thumbnail.jpg | Bin 0 -> 107183 bytes next/blog/styles/_main.scss | 8 + next/blog/styles/global.css | 3 + next/blog/tailwind.config.js | 44 + next/blog/tsconfig.json | 58 + next/blog/types/api-response.ts | 8 + next/blog/types/index.ts | 3 + next/blog/types/language.ts | 1 + next/blog/types/pages/about.ts | 7 + next/blog/types/pages/blogs.ts | 26 + next/blog/types/pages/contact.ts | 5 + next/blog/types/pages/home.ts | 8 + next/blog/types/pages/index.ts | 4 + next/blog/utils/date.ts | 8 + 79 files changed, 15163 insertions(+) create mode 100644 next/blog/.eslintignore create mode 100644 next/blog/.eslintrc.json create mode 100644 next/blog/.gitignore create mode 100755 next/blog/.prettierrc create mode 100644 next/blog/README.md create mode 100644 next/blog/api/_api-route.ts create mode 100644 next/blog/api/about.ts create mode 100644 next/blog/api/blogs.ts create mode 100644 next/blog/api/contact.ts create mode 100644 next/blog/api/home.ts create mode 100644 next/blog/api/index.ts create mode 100644 next/blog/assets/css/main.css create mode 100644 next/blog/assets/css/prose.css create mode 100644 next/blog/assets/css/reset.css create mode 100644 next/blog/assets/css/transition.css create mode 100644 next/blog/assets/icons/arrow.tsx create mode 100644 next/blog/assets/icons/email.tsx create mode 100644 next/blog/assets/icons/mailgun.tsx create mode 100644 next/blog/assets/icons/menu.tsx create mode 100644 next/blog/assets/icons/open.tsx create mode 100644 next/blog/assets/icons/paper-plane.tsx create mode 100644 next/blog/assets/icons/search.tsx create mode 100644 next/blog/assets/icons/x.tsx create mode 100644 next/blog/assets/media/email-bg.png create mode 100644 next/blog/bcms-components/__v create mode 100644 next/blog/bcms-components/content-item.tsx create mode 100644 next/blog/bcms-components/content-manager.tsx create mode 100644 next/blog/bcms-components/image.tsx create mode 100644 next/blog/bcms-components/index.ts create mode 100644 next/blog/bcms.config.js create mode 100644 next/blog/components/ContentManager.tsx create mode 100644 next/blog/components/PageWrapper.tsx create mode 100644 next/blog/components/Search.tsx create mode 100644 next/blog/components/TopGradient.tsx create mode 100644 next/blog/components/blogs/Card.tsx create mode 100644 next/blog/components/content-page/Form.tsx create mode 100644 next/blog/components/form/Text.tsx create mode 100644 next/blog/components/home-page/BlogList.tsx create mode 100644 next/blog/components/home-page/Hero.tsx create mode 100644 next/blog/components/layout/Footer.tsx create mode 100644 next/blog/components/layout/Header.tsx create mode 100644 next/blog/components/widgets/TextWithImageComponent.tsx create mode 100644 next/blog/composables/error.ts create mode 100644 next/blog/composables/og-head.ts create mode 100644 next/blog/next-env.d.ts create mode 100644 next/blog/next.config.js create mode 100644 next/blog/package-lock.json create mode 100644 next/blog/package.json create mode 100644 next/blog/pages/_app.tsx create mode 100644 next/blog/pages/about-me.tsx create mode 100644 next/blog/pages/blog/[slug].tsx create mode 100644 next/blog/pages/blog/index.tsx create mode 100644 next/blog/pages/contact.tsx create mode 100644 next/blog/pages/index.tsx create mode 100644 next/blog/postcss.config.js create mode 100644 next/blog/public/android-chrome-192x192.png create mode 100644 next/blog/public/android-chrome-512x512.png create mode 100644 next/blog/public/apple-touch-icon.png create mode 100644 next/blog/public/browserconfig.xml create mode 100644 next/blog/public/favicon-16x16.png create mode 100644 next/blog/public/favicon-32x32.png create mode 100644 next/blog/public/favicon.ico create mode 100644 next/blog/public/mstile-150x150.png create mode 100644 next/blog/public/safari-pinned-tab.svg create mode 100644 next/blog/public/site.webmanifest create mode 100644 next/blog/public/thumbnail.jpg create mode 100644 next/blog/styles/_main.scss create mode 100644 next/blog/styles/global.css create mode 100644 next/blog/tailwind.config.js create mode 100644 next/blog/tsconfig.json create mode 100644 next/blog/types/api-response.ts create mode 100644 next/blog/types/index.ts create mode 100644 next/blog/types/language.ts create mode 100644 next/blog/types/pages/about.ts create mode 100644 next/blog/types/pages/blogs.ts create mode 100644 next/blog/types/pages/contact.ts create mode 100644 next/blog/types/pages/home.ts create mode 100644 next/blog/types/pages/index.ts create mode 100644 next/blog/utils/date.ts diff --git a/next/blog/.eslintignore b/next/blog/.eslintignore new file mode 100644 index 0000000..6357050 --- /dev/null +++ b/next/blog/.eslintignore @@ -0,0 +1,2 @@ +/bcms.config.js +/bcms.routes.js \ No newline at end of file diff --git a/next/blog/.eslintrc.json b/next/blog/.eslintrc.json new file mode 100644 index 0000000..49a04fe --- /dev/null +++ b/next/blog/.eslintrc.json @@ -0,0 +1,22 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + // "extends": "next/core-web-vitals", + "rules": { + "no-debugger": "warn", + "no-shadow": "error", + "@typescript-eslint/no-unused-vars": [ + 2, + { "args": "all", "argsIgnorePattern": "^_" } + ], + "no-unused-labels": "error", + "no-unused-expressions": "error", + "no-duplicate-imports": "error" + } +} diff --git a/next/blog/.gitignore b/next/blog/.gitignore new file mode 100644 index 0000000..03e2bb3 --- /dev/null +++ b/next/blog/.gitignore @@ -0,0 +1,44 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local +.env + +# vercel +.vercel + +# typescript +*.tsbuildinfo + +# BCMS +/bcms +/logs +/public/bcms-media +/public/api/bcms-images diff --git a/next/blog/.prettierrc b/next/blog/.prettierrc new file mode 100755 index 0000000..9409967 --- /dev/null +++ b/next/blog/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80 +} diff --git a/next/blog/README.md b/next/blog/README.md new file mode 100644 index 0000000..2dc2c21 --- /dev/null +++ b/next/blog/README.md @@ -0,0 +1,8 @@ +# BCMS NextJS Starter + +This is a simple starter project for NextJS and [BCMS](https://thebcms.com). For more information visit [NextJS plugin repository](https://github.com/becomesco/next-plugin-bcms). + +## Getting started + +- Install dependencies: `npm i` +- Start a development server: `npm run dev` diff --git a/next/blog/api/_api-route.ts b/next/blog/api/_api-route.ts new file mode 100644 index 0000000..e6774d0 --- /dev/null +++ b/next/blog/api/_api-route.ts @@ -0,0 +1,91 @@ +import type { BCMSMost, BCMSMostServerRoute } from "@becomes/cms-most/types"; +import { HeaderEntry, HeaderEntryMeta } from "~~/bcms/types"; +import { FooterEntry, FooterEntryMeta } from "~~/bcms/types/entry/footer"; +import { APIResponse, Languages } from "~~/types"; +import {getBcmsMost} from "next-plugin-bcms"; + +interface Route + extends Omit, "handler"> { + handler(data: { + url: string; + params: { + [name: string]: string; + }; + query: { + [name: string]: string; + }; + headers: { + [name: string]: string | string[] | undefined; + }; + body: Body; + bcms: BCMSMost; + lng: Languages; + }): Promise; +} + +export function apiRoute( + route: Route +): Route< + APIResponse & { + data: Result; + }, + Body +> { + return { + method: route.method, + async handler(data) { + const lng = data.params.lng ? (data.params.lng as Languages) : "en"; + const header = (await data.bcms.content.entry.findOne( + "header", + async () => true + )) as unknown as HeaderEntry; + const footer = (await data.bcms.content.entry.findOne( + "footer", + async () => true + )) as unknown as FooterEntry; + const result = await route.handler(data); + return { + data: result, + header: header.meta[lng] as HeaderEntryMeta, + footer: footer.meta[lng] as FooterEntryMeta, + }; + }, + }; +} + +export abstract class GenericApi { + public readonly bcms: BCMSMost + + constructor() { + this.bcms = getBcmsMost() + } + + public async fetchHeaderAndFooter(): Promise<{ + header: HeaderEntryMeta; + footer: FooterEntryMeta; + }> { + const header = (await this.bcms.content.entry.findOne( + 'header', + async () => true + )) as HeaderEntry; + const footer = (await this.bcms.content.entry.findOne( + 'footer', + async () => true + )) as FooterEntry; + + return { + header: header.meta.en as HeaderEntryMeta, + footer: footer.meta.en as FooterEntryMeta, + }; + } + + + public async handler(data: T): Promise> { + const { header, footer } = await this.fetchHeaderAndFooter(); + return { + data, + header, + footer, + }; + } +} diff --git a/next/blog/api/about.ts b/next/blog/api/about.ts new file mode 100644 index 0000000..20865c1 --- /dev/null +++ b/next/blog/api/about.ts @@ -0,0 +1,33 @@ +import { BCMSPropRichTextDataParsed } from "@becomes/cms-client/types"; +import { + AboutPageEntry, + AboutPageEntryMeta, + +} from "~~/bcms/types"; +import {AboutPageData, APIResponse} from "~~/types"; +import { GenericApi} from "./_api-route"; +export class AboutApi extends GenericApi { + public async getAboutPageData (): Promise> { + try { + const entry = (await this.bcms.content.entry.findOne( + "about_page", + async () => true + )) as unknown as AboutPageEntry; + + if (!entry) { + throw new Error("About page entry does not exist."); + } + + const data = { + meta: entry.meta.en as AboutPageEntryMeta, + content: entry.content.en as BCMSPropRichTextDataParsed, + } + return await this.handler(data) + + } catch (error) { + console.error(error) + throw new Error('Failed to fetch about page data ') + } + + } +} diff --git a/next/blog/api/blogs.ts b/next/blog/api/blogs.ts new file mode 100644 index 0000000..27e4a33 --- /dev/null +++ b/next/blog/api/blogs.ts @@ -0,0 +1,90 @@ +import { BCMSPropRichTextDataParsed } from "@becomes/cms-client/types"; +import { + BlogEntry, + BlogEntryMeta, + BlogsPageEntry, + BlogsPageEntryMeta, +} from "~~/bcms/types"; +import {APIResponse, BlogLight, BlogPageData, BlogsPageData} from "~~/types"; +import {GenericApi} from "~/api/_api-route"; + +export const blogToLight = (blogs: BlogEntry[]): BlogLight[] => { + return blogs.map((e) => { + const meta = e.meta.en as BlogEntryMeta; + + return { + title: meta.title, + slug: meta.slug, + cover: meta.cover, + description: meta.description, + date: meta.date, + category: meta.category, + }; + }); +}; + +export class BlogsApi extends GenericApi { + public async getBlogs(): Promise> { + try { + const entry = (await this.bcms.content.entry.findOne( + 'blogs_page', + async () => true + )) as BlogsPageEntry; + + if (!entry) { + throw new Error('Blogs page entry does not exist.'); + } + + const blogs = (await this.bcms.content.entry.find( + 'blog', + async () => true + )) as BlogEntry[]; + + const data: BlogsPageData = { + meta: entry.meta.en as BlogsPageEntryMeta, + blogs: blogToLight( + blogs.sort((a, b) => (b.meta.en?.date || 0) - (a.meta.en?.date || 0)) + ), + }; + + return await this.handler(data); + } catch (error) { + console.error(error); + throw new Error('Cannot fetch blogs at this time. Something went wrong.'); + } + } + + public async getSingleBlog( + params: { [p: string]: string } + ): Promise> { + try { + const entry = (await this.bcms.content.entry.findOne( + 'blog', + async (e) => e.meta.en.slug === params.slug + )) as BlogEntry; + + if (!entry) { + throw new Error('Blog entry does not exist.'); + } + + const blogs = (await this.bcms.content.entry.find( + 'blog', + async (e) => e.meta.en.slug !== params.slug + )) as BlogEntry[]; + + const data: BlogPageData = { + meta: entry.meta.en as BlogEntryMeta, + content: entry.content.en as BCMSPropRichTextDataParsed, + otherBlogs: blogToLight( + blogs.sort((a, b) => (b.meta.en?.date || 0) - (a.meta.en?.date || 0)) + ).slice(0, 3), + }; + + return await this.handler(data); + } catch (error) { + console.error(error); + throw new Error('Cannot fetch blog at this time. Something went wrong.'); + } + } +} + diff --git a/next/blog/api/contact.ts b/next/blog/api/contact.ts new file mode 100644 index 0000000..05f8a9d --- /dev/null +++ b/next/blog/api/contact.ts @@ -0,0 +1,22 @@ +import { ContactPageEntry, ContactPageEntryMeta } from "~~/bcms/types"; +import {APIResponse, ContactPageData} from "~~/types"; +import { GenericApi} from "./_api-route"; + +export class ContactApi extends GenericApi { + public async getContactPage (): Promise> { + const entry = (await this.bcms.content.entry.findOne( + "contact_page", + async () => true + )) as unknown as ContactPageEntry; + + if (!entry) { + throw new Error("Contact page entry does not exist."); + } + + const data = { + meta: entry.meta.en as ContactPageEntryMeta, + }; + + return this.handler(data) + } +} diff --git a/next/blog/api/home.ts b/next/blog/api/home.ts new file mode 100644 index 0000000..33c3bff --- /dev/null +++ b/next/blog/api/home.ts @@ -0,0 +1,37 @@ +import { BlogEntry, HomePageEntry, HomePageEntryMeta } from "~~/bcms/types"; +import {APIResponse, HomePageData} from "~~/types"; +import { blogToLight } from "./blogs"; +import {GenericApi} from "./_api-route"; +export class HomeApi extends GenericApi{ + public async getHomePageData (): Promise> { + try { + const entry = (await this.bcms.content.entry.findOne( + "home_page", + async () => true + )) as unknown as HomePageEntry; + + if (!entry) { + throw new Error("Home page entry does not exist."); + } + + const blogs = (await this.bcms.content.entry.find("blog", async (e) => + entry.meta.en?.hero.featured_blogs.find( + (i) => e.meta.en?.slug !== i.meta.en?.slug + ) + )) as unknown as BlogEntry[]; + + const data = { + meta: entry.meta.en as HomePageEntryMeta, + blogs: blogToLight( + blogs.sort((a, b) => (b.meta.en?.date || 0) - (a.meta.en?.date || 0)) + ).slice(0, 6), + }; + + return await this.handler(data) + + } catch(error){ + console.error(error) + throw new Error('Failed to fetch homepage data. something went wrong') + } + } +} diff --git a/next/blog/api/index.ts b/next/blog/api/index.ts new file mode 100644 index 0000000..e64b2d2 --- /dev/null +++ b/next/blog/api/index.ts @@ -0,0 +1,4 @@ +export * from "./home"; +export * from "./blogs"; +export * from "./contact"; +export * from "./about"; diff --git a/next/blog/assets/css/main.css b/next/blog/assets/css/main.css new file mode 100644 index 0000000..a556376 --- /dev/null +++ b/next/blog/assets/css/main.css @@ -0,0 +1,13 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +*, +*::before, +*::after { + @apply box-border m-0 p-0; +} + +body { + @apply font-Inter overflow-x-hidden bg-appBody; +} diff --git a/next/blog/assets/css/prose.css b/next/blog/assets/css/prose.css new file mode 100644 index 0000000..0c3bba9 --- /dev/null +++ b/next/blog/assets/css/prose.css @@ -0,0 +1,12 @@ +.prose h2 { + @apply leading-none font-medium tracking-[-0.41px] mb-[14px] md:text-xl md:leading-none lg:text-[32px] lg:leading-none lg:mb-6; +} +.prose p { + @apply text-sm leading-[1.4] tracking-[-0.41px] text-appGray-500 mb-3 md:text-base md:leading-[1.4] md:mb-4 lg:text-xl lg:leading-[1.4] lg:mb-6; +} +.prose p strong { + @apply text-appText font-medium; +} +.prose p a { + @apply underline text-inherit; +} diff --git a/next/blog/assets/css/reset.css b/next/blog/assets/css/reset.css new file mode 100644 index 0000000..2fdc332 --- /dev/null +++ b/next/blog/assets/css/reset.css @@ -0,0 +1,12 @@ +.bcmsImage.cover img, +.bcmsImage.cover svg { + width: 100%; + height: 100%; + object-fit: cover; +} +.bcmsImage.position-top img { + object-position: top; +} +.bcmsImage svg { + width: 100%; +} diff --git a/next/blog/assets/css/transition.css b/next/blog/assets/css/transition.css new file mode 100644 index 0000000..6c86d13 --- /dev/null +++ b/next/blog/assets/css/transition.css @@ -0,0 +1,8 @@ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.3s; +} +.fade-enter-from, +.fade-leave-to { + opacity: 0; +} diff --git a/next/blog/assets/icons/arrow.tsx b/next/blog/assets/icons/arrow.tsx new file mode 100644 index 0000000..a63bd3d --- /dev/null +++ b/next/blog/assets/icons/arrow.tsx @@ -0,0 +1,9 @@ +export function ArrowIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + ) +} diff --git a/next/blog/assets/icons/email.tsx b/next/blog/assets/icons/email.tsx new file mode 100644 index 0000000..fc2de7d --- /dev/null +++ b/next/blog/assets/icons/email.tsx @@ -0,0 +1,9 @@ +export function EmailIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + ) +} diff --git a/next/blog/assets/icons/mailgun.tsx b/next/blog/assets/icons/mailgun.tsx new file mode 100644 index 0000000..d20d5e6 --- /dev/null +++ b/next/blog/assets/icons/mailgun.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +export function MailGunIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + + ); +} + diff --git a/next/blog/assets/icons/menu.tsx b/next/blog/assets/icons/menu.tsx new file mode 100644 index 0000000..9be6e65 --- /dev/null +++ b/next/blog/assets/icons/menu.tsx @@ -0,0 +1,12 @@ +export function MenuIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + + + + ) +} diff --git a/next/blog/assets/icons/open.tsx b/next/blog/assets/icons/open.tsx new file mode 100644 index 0000000..d1990ef --- /dev/null +++ b/next/blog/assets/icons/open.tsx @@ -0,0 +1,23 @@ +export function OpenIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + + + + ) +} diff --git a/next/blog/assets/icons/paper-plane.tsx b/next/blog/assets/icons/paper-plane.tsx new file mode 100644 index 0000000..863deef --- /dev/null +++ b/next/blog/assets/icons/paper-plane.tsx @@ -0,0 +1,29 @@ + + +export function PaperPlaneIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + + + + + + + + ) +} diff --git a/next/blog/assets/icons/search.tsx b/next/blog/assets/icons/search.tsx new file mode 100644 index 0000000..9975091 --- /dev/null +++ b/next/blog/assets/icons/search.tsx @@ -0,0 +1,25 @@ +export function SearchIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + ) +} diff --git a/next/blog/assets/icons/x.tsx b/next/blog/assets/icons/x.tsx new file mode 100644 index 0000000..122e7bc --- /dev/null +++ b/next/blog/assets/icons/x.tsx @@ -0,0 +1,17 @@ +export function XIcon ({className}: {className: string}): JSX.Element { + return ( + + + + + ) +} diff --git a/next/blog/assets/media/email-bg.png b/next/blog/assets/media/email-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c7b7992f5649394e8aaf80f7ecd216c63af7c614 GIT binary patch literal 101042 zcmV(+K;6HIP)BmZHt{}s>Onn zrDtV*On;ACk*#WUfLLsGP=%XjdX!vvkXVqZaGJPqh?rol#(0OKXO*pUXKzfBrfqwM zSC*)4#pITqv2A;gUyz|?i>7Lyw|kAMX@Z<&fsSbUjXH!ly`0000MbW%=J03coE zJebFOV?yNJh_S`Is-@lA)$c7xL7M;phf7IBK~#9!?3O!j>_!kpZA%(OPH$CLu|Kcf z;;;dB=QKnH1QZZl1rx?hoy=mmhuOnhmSsl{48z~RkWNA{J~+4foBt!UpJM)f-ivtp{sAYZeKKZp!A!avzJ=<9z6#uR!5NoFojMh5}+vGk({ICco08aOAB(A^3?SKwGIma~?q!Vt_`78NTth>_GQc3H`QI!iH4eq+9+>SF3_ z%WacDSsE!uGe=X$A^LR)v^Ll#I2Y2W>?r=wF|Q9#-+lAR?+?}G!G<75p(N;S?~kQ! z9u`5kPE}AzYRRc`84*rpLx@y_7A4vy-}F?y;lxL#xRr2&AsT2^82v-4t( zW4H6ZV;8gUHOTA(s}XWyx)y!R+*q789vj3id}*?%VA^m$%^>H z!dk#jgwTVjph74cXu+iIR+1{47_kp74V{*?F~anf8#Bb$+tBtzZMt>}#|V+vm-24W zY|V5^AVay3+lU^XKKzaU_W5G_dzf}CM~1gG3fwMr2I77?W0oX|;rom}sUsJT5wd#B zK15|TZ8~}FRRv&&ja|XaF$P5@tRYWB$X}Yg4pEve-vfq;zKpP4Mig zV9(+^_9hC5N8R8ot0BH}%Yj-pTp?+s?AWc;Xyl$#+-U1<($_>v8Mj6Wx9Ov1@*W3# zjXUDvHX0X_d9GoHabZ3%@1svL_d;$7KKA=^PtdByinZBb3E=Qs6oH8V$OP$I2zo>TBdNeRDsi2~eFY*# zuxBl662oZLmsMWwAeizxrW**%xTPCI#}eXpZQT{Ok^OC?w!5v&%`i3(PajLk<7Htp zS-eb9Y`+)-lEX-`z3hw4rot`+Z0h%=_qCwkMM@^)Od`Pv&2z^a9A)ye8HW@)zOML@ z95uj5$eniX#skvmo4`Q3xjXolv}>>8%(YWjUcL~$wr>eP{NS4P+Wl0J9lvR!j@~}d zay?$aMsu1?4zBA2(#`}M&nn3-A`}tsI8$G^%sClBO`(^>rWi}Cu6XZdJc+uf9%v|T zdDxoMTqkkeMu9jEZP{A-8vXdH+Gc8AM#@A3k$pKH3z7(7E57?C>HH0+|syq7oCRE z58`*=1*{Z)tT=g#^A9T+rkqb7!~F2JaAn9}%y4DMQmndo9fnIxm!oAJ)I-(5O9%kb zaDHLTDCogrR~u8EhTd3H!Ih)H$U!WpOp@0ADW(!MC*rnJ8|&+et*| zp9*1N8`|W=nj#ZDH&T*Xq>r=8UXVH9Q_50qFE;S@?IZc&P1#F#G?$f`hice!sMCJR z2H3Ufyqc<=8fdPa>ZZz6cRuVLhl{W*`&~gXvhRi!B~$C97G%p2vNuOCyxAkdkxf1< zX*{{74GdwXRY@jPDZq%}*{8Lzx-Qv@HAY-=l=4BFA|G6f1tO+hZ(7&X)VV!n$JsJ-`*NryguwH&EN_eiH1|HCVGtRj<_mCV>H)8r3NQC6ytY8f^m; z;-o|h8>1jd^>Xq;^td&a4EQM$hsB^53U7*1>T!v&kYWXED#G)=WJ#sukaJiF5~mgpLllyEWi;@P#+6BRSYjB zb%v$WpmvpTLqG!R`Q^oKSgEeU?o z@^X_h_HqnSW=y1_%UdBKN406M%j32;N|M7slH~2vrbzUSBKh&>rs@zn6)$mM6|fqY z2^+dUhq@ms#;dAZ7*t2!u@j4|CRHq&MF})!02LKjGE?-!i6=-1$Rva#3YH?$I!lV8 z$(iU?S8+uG+(hoFRcfWzo$OI?&1L9a#7MLyEMRjPJ^GFEO@|bd^S0GSr%Z^83yb$| z{rDz7TtEKI%yOwNa0P=6)Xj1daE)j=Tv*dzs-AaXy4t)1FxCnNAi5fwen@mg4wNaQ zvT2YJUY0dw3j(fvSXnGfDdj;5EG|IS`W*?RBBBvx^DN_t z*^9;}YA`>~OBBAMpuJntxe3G`T5DP;Iq~ziwU>PVo5ig9dld%|E3c_y$Ol};%9^HQ zxC6k|53pX2lf{X^{?Dajvf?u`5ha=;p@xzf=7DpzEUOG{o?|$p*DC7gUo_4> zX7`ZZe?zO{_rJWU{(7&6#sV6_u53!k&GF77_Qn9~*S;FM`qTp`fD14d09oBwIPq1S zWQEwHsA-V9qHQs#L>*b7o-4Hxivk6SCU{#KTo)oLeE}q}r2Dw7s}ed9?!A=Kt3W}8 z*n3!Sp;aPCS%?m^Sf444QkOvJgC561&+%}RZhoB)sbZvGz7Zrpym4Uceyw^??08De z6~u*KlmVDn?=K*_>d26HYym;MH??I1m_)a-tLSUBFy$bQjQWbwX{xyLS#eT5M#9Pq z2#Wh`vBzYKZyr#_^)3Ygd9|qsRJhuZXe3wSN^-Qz!MwoDCAb?ACF!$YQO)s?C)66G z<0G}Rl-ZBJ_tM3Pz8yFJO-%RKTHX+U1zKa^SSwL8yJ^_}&R zt3}ubykf-J!mme=gKCz@>#AmrNNm7}DtWVmYPymFu?=BOrCG-jRAAh(;(TEp17Hnd;(RzlqfY8o7zCCUtuTPk zS8fDBO$_*yaF;w0GU6hE1Uhvq^3HIs98dL@H z?v~Bp7!!-%W613&xkP%!T4b>jV_>A5kDDX3IrEKX--_|`Q~+)HCJr;cpmUP~PQ3?z#O^%+zrIWOwB3sDjMk&sVM>C;2Ua17p*KbTJ&iXv6wYKMxn@UvB)$R z!Q~-Ji9&egL+~i$=3ft=B00CN<9ws?6k~B)+lE^L6SS6#-u7^Q=;*g|iS0appmZL` zgU-LZ_ApB4a`}>yeE)M@@m$*)DRj0UyB=B7R3~OnqUUBX)jsjw7AA)NVp$``-BzfC zpRnPo#@zE{Opj3WZRuC+`&cEZY_)>w5l6oxR`O0;IMw7Oja^*R@=&i_QL##{AMo&hnt;_p;ar>?+fj?TeTXcjc6!{rYg_-4hqi+zr(ZCCFSmnh zz0}#C-@lk7-~ZfS1{5IJ9RQ)RY%=o5rmBAN8IHo77{H)FfEqfk;*zGpKxXEeMXV=2 z?Ln@#9t1$c@`(Cgal3Jw>VT!h)|AcemW|OcJfx?R6mc65oBlwZ+`M9V=Jyo6mjz|J zAn7c14EvTIehlNMf40Wn&LQ}xb~ktX^ym4H9L~;d{t@&0>~C7@gMQbCxV4ABK5jY9 z`W8OY&3(E&hR4U@D@pR>o4N4+oH+JF2OM9SHJ84suFcTYIB~l!fQEH-RUfNrg#S3k+Q&zDj!F4~1Q>Y#P|Qe&2Xd53zt1$~yE|D4_DeA6-dUZ6z4A8H%8es+EwDpQci?~rUm2np%Mi`Uq6UU`UDS7WRmZw%S%Wboome#vv zX;mEQyixBT61P?P@h=xc^Xegunu3#0=Vy6~%ZTq`p2Par;oZIe{xao{&-1&BpJyrc zA2%t9De%lE5yIlTf2($MikCH5J;>0#nNbW z8_QbI4<1b<7X}F#wNt1HsBsw1^gI!lzh%hWV0-bEejQM_I%gf zukpWt<4(QW_+3^`%3gH=UMNsa`;_Pg=p%~}lel*cua*7j-BCuR-_;5P)9sw0~uj6+|i&kBg^OuRuyq9y^?EU55~-Ph!!&e44#Rt4MXMn@1ZB z=An98Hxj4BvmTFtYL6(4$WwZ&Ns}cVupUd~Eo|m&u%0P+g9y?s#A~F)kLETcf;9B$ zaZ8f!5fSQ%XEaQNV)jD&>3;xQKYnZ2IB7S#yDts9w}TOpyQOA|Zk^BitDe=cAv#87 zpaSt#Ex;mJxb=)yaHl{jt9tD!zdPz^j63(Fnfr3LGi$|6%qw;ZO)bPNvXwqGD^wvC zlq>@E!NG`1v$6nFBcWmVyBUF;DYfVj#$H@LydjJlSyI3h0a(>fLK(f$MN*Y==%=uY zD5ygPb6CwfG!FsVXKDH%f^+)9w*ly8HN!$>)XW%^kl+6J)#v{D`g;T!{yVC0-PpNq zWnxGA!0Dk;Pr(izI=cr}^83LaPriQ8cS`W6ome+d``~v!-j9a)N~&Dt9K-vWK%6kC zN~{fhx!tI0K!aFwDjEkBXgiFZ3LR2p#mU%Lp0x|d(D$B^R3Eg))%vEbNuy1IXu`U! z4PitO@(>cD`LR}O^z4R;5-Egy5N{AGW1P$7IL}_SVT-(BVd4+YXO9iH<<7c6Lw#B%`DSx4OP^8rthwX;yYNQ zy=^20GDjc8a=47x4pT?ZZJtdy>8qPKDymlG!U1OcdmO^38>*v3k!sa1WEzPThY(1- zT(!6%R_?vJ*RoTy-|+&nSkT2oauSu*6WbCKi-4Qg2lGM#glbq*L+385*Lo}F;aRd1 zk5I1bQxKjuz%)uyj|wJ3FZIIB+Zr-RUg243%C%_u%&_&%x1|#Y#%QB;3LG0|8;QAb zRd>ikPaEo3DDG^gRxS~q!ezTHD_J5!=5-arGI-0d z^2Z}(^7DrBKl-M#2Z8v9J4(Sobqphe8$4X>%Uv1uD>9UKn0E87xUTM2XZyTULGpLh zdpkJyEV1DrBYivsD5qXQ`yQ%H3;Q~$LQOkh4#6$ydl;5%tSsb)RdUj*a4o~<4P|Ti z?4Q^PtD%)twJH%2%Dzg{*ZD?aMLa0i4y-^2Y*Hi_(Y+8Xls5#!PqujtSwy)k-MX=1 zSY=U?VNEe6fLFSJSoq>eT1|uW1l04wmKB@EWjbu1lSsb);jU;l{^ZcVE0?o^VsPBS zX!tJ|a&QASKb^I+ty*hF)Ly{O_Q3FJWg`dK~vD1o*mRRfH-Cp`U?P+E+Je7Ox&VrQVIgjg`2MJ($gMVEr=SyT=f38A1CMmkQ#EJf?3FpI;N&Fa`J z*_uWXV^se931RE&Zy~5oD(r`TzMam#axrz)ezn{_4!y?`#93h9Ox@88S9v$l=2n4z zb^%nr3ng`mp1Rqb`Vz&4u41E-U9#7bvEDsmCqt5gnyb%960*p7CO5s(O~mRCBY-J)#xt~Y3)=tVPK4qDD zcr}a&YwI2>QfX)ceWz0U>~RZ2A2p$7nRT2X2b5Hzje6z20(eCl6QoN@jadZg2cu=U zKB1*dFMSBgB~5YKRwF#hJu#>BF$2cfLK%b47&?%7o?=*d$0Q%XN8px)Gghu*i(1lh zY|Sirn^sIn*>bVrPSSolBKc9h?2!67&MPQU$DQLCdg9*Q7goilq4XCeQFJ>%8r4Hy z>E%7!{o4`RC(IE#cf7m)%U=M!c74{Xs5xNj<8e%^1_5o@WJYY8nQ1yv5E>6H8ZESc zv}~#dnyM`02dl*xh438&$yBshLwaMhO294QP)595B%xhO(o}SO=~}_&=84&LqTs3A zJg8Yl=6P;5+_Fqtmtrhz!SMsX2Em^Z=)P+ikqhrO*71##xZ7m=~ z+YjuEQw8Vuy>Z&t@0Vb&nLZqZlD*$;AeWoi_W5M!rf$DXLZ~Hkf`AG@gg0F=521ie`iRO|U=&N*ff=3^<4ooZbl$OPMas_7jbH&j z#4(-4AKTQeJe`lCksTY3jIeH=#SDZ0$2N1qB}ZTkYq(s^CTYkqHRvu zCXS6KNVt(@AsZvj%IA&|+0k|8>qdCmRf8PqI*#hMCEU&3yjgJfCmPQPlVbF~e=!W_Y#h+^9TeSo=^!Um)V&kKjQGLc z2(E{$&x||jkeznAW`Sz`UY`QL?41&ZTyqj_uW9Jfl_ay0pxmnt{E22djfVg|s*^GZ z)v_UN(gU0@g2*F7MTR7l)Qg&WU7H6|t>Fn=v7DxA7ujG4kWLd5lawnL-HR|2&D3kBw%hVfq$vXVE`6KZVcw>xoBqm4Tgc>gH}*(pCbx z2Jum_nN9q2{7uT&-vWOO3?R@I_w2sg*AeTHBx-*Mvy*-GjZ(MuZ2x|N%0i?bD7|97 z5KL7=`~FH8)vU_uS9Oc_95L|D$*>)xlAwMK0xdp;8g(&SM}1bS)oZA~!{COcX;k!j zby@n3%x%uOekq4w8~)ldPHNb`oD&hIie>Sjtmx zXlL)39_Rd+;tFSZ{zYsp?0DY3@sE^EZ0R^@8CWBqnZeA#w>H)G~LUff$;5DQ- zG?w#d#7ot#rC6{+oZbeQYw$UUK>+T%*8mEpNW{q`JzJ4UR~>D=H7J|JEEN~ ziGeUTxS!0uuj~P6F09AyeAw%OO|64|>` zqg%(6tWxzn2(GGH!`iALbi+tnNmVs4o*?upY--=@~AM=iX%*7ww{E-*O|7;@P?Dzi=b2U4vnqjzU+H}=j z1Bi$s{vZSLMZN?SF~LNFaWe};Oh`yv)I}HMBrMDm6_1_N|U!|7^(jd_5#5x}ZPB(qzX4E1;$+Wzhh@UL!D11YW%5Qth! zKGx^#tEpe%^hy4}ve^DstpUq;#Uk(!2;`WRdCKTYKOHq1DG+4D=jz3eUO+poF{R=V!HqZY6Ab*43HU>-M} z*B5%5y{vm3ZVl(R*^k){a;~n(i<>pugcRnHIrjE-gf-f5+CLoco{?2u!4Gq&Uf~N& zGI!n8N=CRLaMQVfq)A2xxSGrT<7W6~-w@KmWUG&zy7Hy|PQ~B){bTTWsJq#AcTA7! z147kuiu_^PK|pe7B%H1p;=;H5hw)IU5q}y6PWXc!jluw~nUzW{3s_}Yq{vg>GO#lS zHR&45g(Q-zy zN`+ryE;Nlznp=r)*(Aj~)^Dj=w4(KZjQ@Tj;Ex9X4Y<_pwmV~H&hX6^zh5p6jL0rK z-7A9#oo(=!?l-Z8A_M2H@#B`x9-4b`%ISNKJwq$=Jr3Qh(sX5s<(i6imd~BJ42S=v zD`#QvE=EHt}wvuFN01pxvpGa;2MuY9#p21-RwvUm#$%X{g zvoU=8f&A~ocGMu1gM7QSZ9=z3Uid0~fC?VDN%L7fiqgI7K3UXZv1fJoBCd4n}f|&(V&XEF5`C5&UTn4-(dEN z2nh@)Bd!MGwa+y-9d5uf;!qe!^=(wbmmrL$XuUJ^>H zA~Vh0$dmf=_hW1Wpe@M&N~TI?B%%aJWmSex4d1VztYRa9m!V*s#3B!5Exu3wYi9pp zxgPUv9lan5+YZW(F{9yk3$4eJ={1)Ztuw+%+U>(($&Gn!TuUv`MptB^a-qRQ4ND^G zZ2|T}9L=ZGy~}b}rYH8r>Fqq4kCcwmm^Yi~#`h8@-_8N%V#|H*YqydRvfpkBHy?hW zf}P1*3D%)bcG1Yng}oAd`LUaR1Y6&?RNMYIrgjy8=^#CHhxAuHoJPvW@1w|FFe7St&~@^7VKImFK?2&RY}izbeR zb;&7Et|jWt-B+{7AyiW?E3V5)yPw$mQMt@ zlKV0BV<1dHt;8v@4>2LsqVVok4rx`;g3yFoRcXdX>Qpo`@;IqrI;iC&X;i;!Y-E^< zX~w2S>{umbR#9j<2<89MA>wYIH7eMasC9W|#Eg5b7QfayFc14Hcj*K1kbh-SXpK5=qU#HpXFMZ2fscn8DYb8FJtuRY^N;>3bSl!XYJr>3wEI+ z!{r;I*g4>=>({i6SWyi)Ky~W^tC#q$h;OJ5Z_g!o9{b!i-^qT8Z5USLEG-n7e&7=ScO$aFoF%n z?RE5~0{P5|_^pi5iEsMDAR);1-cX@;DY5 z4Yhj@MeKPnaFuS;h0Kzt`k8I6K>3Ie#gX!L{p#1gL&oV3-=x)cAWd(x)c~5y6;=US zCqYJY3OctX`%|`Ht$|5uZU=U%-q0PTc8ZVOAiyglIMO2btrAF*6oqLy)Xxe(@i7Ur zDw5>x#b#B3&H+kh2%IuwU{V-5VG>r=-HOXeoII&DacCGjp+lXdc*U7RBQKA_#B=U< znps#T3e5$N808c*!TbO6Urgl3D$3akAnW(mSoN z6Jh3r8TF!=Rt`M5N4<=gvG=O*K$s1;aduj6^e+{A-Pk=MJ4CF97ZL&y+r+aqa?2cGh z;YR#?Dl~^vh5Z^SVDpVI5QKnJkX9kWlBWGWcwAmdn-4jVrQq#z703@*@0nc7-L0*r zxAd4keDoNG4MImSWtebnrGYCJu?I;(;0C4OW)oyx#ZHYmNtGly#*!5UHDkb06%tYv zMHYKNrr1ledz@s>D*|*yF&@CjJ*zjT@-Vmeqzq5A4B-`HJOhHsER2j~KsQnok3;_T zJ0E^pce~%lhimhJ?r=jM95(HM?4?M6@Bj0PK6^FGkZ9rXlBQDlg%ukA=)xZHVqlh7jezXWw2?6|LB zrOY00(6_ij$MRt}wn6%7M=1V)Qf7fzk?yQ~Wo(NGq6+2@oj91bC@qjU#!%jKD=qV^ zDDNT7OkC#mHGjW{aYjy_gU1}tbG-N3AHK3Gk3;8`onCPqog920PX4#hnK*d#R~lIr z3FG%u6_Yr@gYTY^M+psI9&jy=vq=<@ggF25M84<8j6Mc;FPK)Vb7+h&8e9KAHAvsa zh;6hR2XVwLmuPXj3m9;|v1FLWm}#>vBk0_qeQ6(t`lcZuamV9rtvTX^E2B4A^oPty z!Ges2=m-Uu#a^5n=jmWCz^1DTI~cyrq}4Fk$*5t6TcPfhj?&HyY$S@ljatusv(Z!p zmOm@N;fQakY?*L+Ha!+dnxK^oNZvB@Dv*MeU`fCfRh-2|5{Gx2i8V)xY)bR+% zT!C*IKkah$PcvpmgTV;g-rTIX>qa;W4MAw0g~3&V7hjE6-0c&jKSW2nn@cl9SGa|? zFGKpS)YWQs14zkoiXsFJ?e=&?WMZKROdo2RgRy-CvnJFnJ^IHI5*Hfun3V7h_&SS; zk-Us7IT0(d%2Q0ACt!@@InRg!pH7JfI#0ap6lVA$e*Nk_;|R}rUi=JC&)@E+$;6yE z&r|4RKsE0ah0hF=!}AX4BnguwER)0|#4B=({)Y${u@7D_ZEkBNBgEP+5LDe%o(?#^qAH_*}y%bOP_!1^&7oCdmC{b zSJ;f;+ULS-K9r6__BtJ|gg^$Jf6A-rK>8HsZz}o@d5c^TMS1!WSgO%K%l^lQs^(Y? zAj>yhnXbm@kx@J6xS_ z=iQL)58U}s4*FkkBf`)QKp;rd-`;$Hmv8vcvLN#MMjlGi%CgkluL^jN%(5aK#$j=Kh6EcCy~n2-klv%{lqK&F!jmwLyx-nQ6nP%_;V&uam7($~yb?6Qj3X$~9kh8lC|2qN@utF`>%$IFYrZ~{7@5tlp+N^GibkAaDf377oQJci(lqY)w-KRTqWapgs0Cn`w_Cdi@+I_l+= zRq`IboIfHDC;WR)SQ`SMMlhz)VND5NqlXVIuXb10(Y z{{Cz&*n2(zBLwR{_;=nt277Ha8aP68bUu7- z^7cBWY4{vB`eCCrC!#mWxw95gDhg+WA`q&+F|xwGMOkHq)Jd*%hN|J1hA@N3F+@Bw zJkfHbY|%X*QGY3}D>|KU>f9q;?`g zwM;b{wMl(cFo12xF!U_k}ATng~ zH8ge!Je%H`@mLHZg_*141leC%@tnpSCz&(cqw+CB6=VbZ%=&a6MnvB+Qq8_OGU@vq zo*phTl9n`OUnRj4j)du3p=pINam*1iiA}MPp<|9i$B_af$S5M3MXHQK$H2L;jx(B> zeate$K2%=jxFtkHOG%gV+=5;58qc}%be8F4mr)G6LWlh{f40^=9VGn3)l#R5 z7{JX6W-H++96wmD)Ywk1rfMgfRj69TD(F7PEQG>*KS?j=s`sfPz2Ff7$RzRHIz1so z(L@@lTV8+LOx;(Gi$xgH7YFV4kFAIGi_!Xkao_F{?2>mV>KFUPTP9Ci@Hm^h&DZc1 z_`5%%@labtquJ}X=#$De8tUqtFk%ctj4&jwH$&4j9A|8LbJDdZ!q}IFAXZ5!4VS-I zp%Y^i!*g^;`by*oSCy7$Na6Xy5)=GDdd@iP8+;w%1XdK!r0N(tzGiv!^Rv&WPv~+Q zkvYUy!(YBUfvoOim}-zhGDwOdv6P|i-ML;`qZ#j{cVO%?N2>Ae3UDt6AfJ|AuG6I| zgT<@bDt-JWTJ7B`>o#b*CY4vAQetRZD{o}GP<5;9G!N(y!MDq}9#3K9 zJAkswh<5XGy?A%9zr9U;1=n+XZyRFn{$-K*1T}7duem?oWzxayi2j>*h7JCu0mRf4 z<2?eEFzMbLHSFUY&P?@27L}}L#v%192|>un!#0sc5F*JFsW6KoRo`+w83@a_MA+}+ zAD&cPX(*P!Y9x5F2`&~uE2*Alv>Ttp+s06BIOAqWm4g9Hz`wqmJUnY`y2C&af@Y>? zdV)e$dKSjv`#hE+FyzcPTpqG8r-83{nk55Qu~grSoxt;?6uRNzM2XA9mL+ixd?uE- zlH>ZS7#k7xkfwtbJ(A22D^WvysYQNX<2iO%IDnwIbIn=|fZ|D`4yaqXh-A z_1qed30KK0o;~BAIcuLGqVa0~(S+Og9Ban&_ z_*P&!t``JW;Cn%=_?{rHS$-VJz*BtQcYVw1V;No2umt#lFA{qh{D+o9ZO}LACxwMS z%7{4l%U42*H%VKua#Kh!5jF-8;6vAyL)pniK@dY?85xGbdH(w8skDUekV3j=jNPex zt6k2XBUTA3l+Rc?zFMn8YG3A+^u`iOeYq+E8R+&5+D8X(soVh%ex2>+`{OdJg2kgP zG!8Yf0CYu_dN)WGOOvMInHBf#G^?5c?K3nDzoG zd%o+tfhT$Pc3@bxVoTSzJ;${?90!{iQd&Z_gkd=#$g$&4vtg9s=%+8-ks@HNBm%iR zxIn)4l1h#noMRfEIBWTKvKv$tHLj=Ddl1b(;}AnwLiS+0EfZSUy#u6Xyb z{cZQ#IAN@3o8gb1J8&&$M>d+#2BtC#MJf_Y5V@vBRqLg&zG9?J>S=TJ*j+MZ* zY+bRHKn9j=3#m+}u0i%8xhOs49`j*Ndq#N#&r;DmfINtxFQfB{Qh@7CTLYOO`M9 zF5V&OoKs(I&1pUw=kNt*!`5yqfsp9ZhqJ^ZMp0`PHtGKe;uJ-g$0LW^7FDYxam$$4 zA~c1ZZ5h6=xR&L6j%D@uo6Z{^f;}``fCueaQ(O49f}41_gzvhZrbykhc|o@qJRZev`a{WTfLH;Y^Id}LnM9gEU{$X$zp}h z@@cAiMv6&6GRfc(EUDM>Oh|UpY3@3gy12unMw$nJkvELbm&ScK{DA*{x|}i+wl={k>uM$>@Sf-JBv5 z(2t>?L$$+n$S~zNG6gv{0iZlbM8p|McO7GlsdV+gkt*pybET^Y-R4^!Hvlz2%Dv`^@uJgefDJdrA#k!JY8tMB)L|?avWhD53^iF;ezSnnK zzkbP9PNKS7xH`Kz%inM&wSHD&#~;n_vm5j)E1ive_i&{Sqw1x8dWHM2>t9)~!vba4 z%fb#U(lp2ZL0MMv=}N7XK3w162Gm-KWrA`AS&Urqp;|mf8{__@+-|qKZAKkM#KX2h zu6Fm2wxPKn?B)hQCKpUW*u|i_VkH1Z)!qmQ3xos$C`23x&?-9xhB>6D6{ckj_aiSf zhF%!?W)kI-ZklFWSAxmJ)m_3D&rEv69ezolFs4tuK-VUk-uvzc8Wyl^O|yFwt=IE| zX`u6=y1#f_Xc{kRq>ssOwq`5B)-alg-TvSP3kvRC{A1e~4{1Hr9_B*=}#4x$|CrV3~R2 z;-N8MX1jf`w>P-mXKxAQssT}Fz6Z0X-+Ue3s;yBIQi!@Y25#*Gc?%i@W=g6rRB%G! z7!tn_UaSa3NU0=2pQlUUk&5j{v>A#`uFy2{`5zhqi+DBt>$^6^PbPZrZ|%GCsA!%t zQF>ZpBOANMBcG7e#Zy0tVmg(uy$Ea@gBSsEEYjVWBxd<7|A+q?uxLOs z^ncgjCHXo`k`!Wz0ENqIHTI>D#6Zd_(af(ecNuD=GCRrgK`K|P9^Mr41=gdIqg|*3 zu)nig0~#E{BoF1Ia_*o=yHP&eI{pS-w0Qfz zO^;5;ak>9GxP3i8Kj_bQhtIFC;dl?p$NR!$^vvnM#NA|GE8~A~?;I$rq;vM+T z*L90#(WMRwZ#uPme=mqwfByd4Lf5q4{$5~(>G#Lq ze(PbZX|MPF`(nEIOVfS-QRAhlrchLUw<*ay98aI>?n0+L=vm6YC>XU|(t8TiF@E}w zE#X;b<+`?1g6xwi6*^p<;0D*uDat<#nexm-Xfjw8DM00A9*7>$)7r{MzQZ~59agH& z*j0aeNs+`~&{9m7u8=Rg%GTk(bx?hw8eQR{g~p#|yCG#cZfF&hv2eItl~NfJm(f;UC3 zOUX+s=f<9|>p_xf7jzIkmwwy!sbAy2H6H2T+JsQ_h==H!K3PnDBYr*p)_c?lR^M%H zGI^Z*Ir*+X_9hE#6)bvx@lTJ55BZOLT^!6OnDHm}AQIZVuj78?c`NzP$uczdu~a?d zKhaBn&UCoC@(*ce^U}y2hjCi^a_phSBqnOyXrimpq6@yPSz>~Vk{p(yEP_nIg9bbl z!Nbx+ox{LhhBy})CJf9$3PTTzY(cVx!Na-^dp4wGZp$2U+Smz(JtUg;GwnanZQE+q zZB^!%-}mMDKF{-=36`G@M_1B092Kz#KzON9m=#ivhJCI&HfMJB>N zo!sumV2;in-)F_B6q?`@-a#`HUdk`t9V-VBVS z5^FzBEp7s5%`ZQjdbauUAEn>uGepgc^N)X6JotH*V+hm(fr9LEi|*qk)$5ah8?tq= zdI41RWaszeInu?>(GD#|fJMcF6mO2=iZoUc;BTEdP=b78dv)6{ht+z=OhOs$3xEp+ z8i-e^#6Q>6XL@n&>dDUa|HF0qN$5N{=5_OX4O@-bULT^Nav z!G6!NUu_2H5RbSs$}T+LD6z27ILu8XF?(f4WH_^e2NOc*Op*=R&lBlP=8(VFVu$FO z;Z%<NuV zJ$(g}1Og#*4iH@m-k;zr(3f)|j*h84seh<>Y4nID!9}5^6Lg|iu~cnkRoT)7GJs$P zcc3H-p2bng8b{O;I4J5Y)2b`FT(``+pVw5rDA!#@u>?UmGChJC7fY~OCPi_X=vJln zIx3gzS+iK8cPW?iB>)$C_$-n0e*~>BD6p8A!w#KF|Dv`$+hZD?#|7*O-O#b_pAI z6(SA{o~r;MxtJ>hs$~uo40u8 zL?KeO!g1skMYn{OZ>qW?D4yqOvf-<8U9fahP)uFbtN9k$q-AnwvMQLQdYwC?%Xz(6 zQmXtM!Lo>XR6QJ-@G=ey)kH$vVUr%9El3EUEyNTIn%Lmx;K%8E{1mON+AQ``$M>YH1 zt9fRBPoZm)$1k2f`Tg=+;Pod@AzAJ19bKJf8C*QMo}=FbS~}$#)K7`y3NQP7l{Zu7 zWz5|;HuGItJNwA95XRb;Kx%f5HtBTvehT2pZ;gwXcQ8A49ooZ z2BOW-Fx%~bMtG)tX^4#!xpd@^ofGlN5L`uOR%izUgbM~E?Rt*I2ah6?(SY@ipI-=$ z18jyEOl$hVSb8P;HWgwpm?{Kn9MTBe1`;@oWk}%3^@HSn9Qmf^4-S3|MpKB?9#0`8 zIC%U3rVsO|*;kj)KOd|@vpQN`g>nd=bMMK+E5@nxVSDt(U?n?q#l6-}nf3r=q?F~F zkZJQr!jY-dPLPC4^?XaH)&*IxJj*a;T~SpK1dX(9xw66m*tW$V_$DQnrkb8? zTUsygE3$0avYZ#{mSW`Pbs1hYyNUHs5Otmco7OJ$+7b6U#sR?Ppm zy#6I{Q)qu?Vmgvb51kB;3^FVn$WS;9hTv75;daRd+Q&mK7$YJejH8b}8=>XHQ6p49 z)Om(0^>pEkUNRY-jITUjnn<&=J{En>@FTWHhrSZUs4tj4O$C7pCBk^(apH1)`Cu)x zxOx9ECNNVdXEzrhQooyjHUEs%@!;nNqzy>_Q@y!jX)M$Hq{a|xfmRzUN6dWwyIV+ zdz$|uhq0G6Y57apFaOg8*&ifHj|`;K8&Io<16}QOU{Iagzn9)%M93UB$#uv@;~S`+ z_gR7f6J-W72l9IwKHcsFlfejz^H`GjwS<*;EVF%>URoQ!H}*Pt_?DFj_`glO9Ul)7 ztN`5ClFQ@3CY$rLAPhZHi_7?b0${ybnCD0ks|D;gJTC5k4`TJh<0`+c0(4==62P@D)Y%RF#mW8JgkA9ogo;7i~k8G_S6-EM4RO>KK|FBpdFRBJ)>X zR%O%EEfR_V=;A4Rydrc#V4f9J!pBdji~q|N`J80FOZTxs6q?zM#~hn#U{qWhbV1< z++!01V?+GH2qGh7f^BbZo(do{m|+-7w4`4kMrH?xnC{y+S7e*NX<0-eX@ zx7-iZny;9cufBtW{{0+a$ttXz@8{;=-!d1!-n%XqcdF%`sz3`4=%kpWSvrq0skLZX zr)Ei3mAc%q49>(;%#JP?cE{FQMn}~p)i5NN(B-L;r+2!xs5+Xixi-(e&DUh3=W1%t zSAD{gse6)Q+KOnamRC1DMegXb;FC$JvLeVuA*cm}{3$=Rehg?<%2!L*bctX6hYLbA zI~d(y_OZc1M6hK~rblLQiXoFn+4Z#%VQ`K%2V~?7hAC)nZiyZ-H*)VRIf+Wj{N zcv^8J4541VoJE}c!|cmT!~?`E{`wwD6*8JtNLBz>0c)zf!|;JB7hpAeddk}|V+@*d zSwE_0OT-M>6oSU0<*U42eNKXGVRH?1*Ov{|%o|^2(W--f$Bs1`@ z&py87-Noy8cW4B!b~vKwIt%f!-OxsEW@clT)oJ&px8qS7#*s&Wx}oq1p6*afBWMY6 z4dDGuCJL$;hIyJg!4UH#jrwhc&CTKQB#XDGfHT9%H*Y5pJts)(uP4Sw4-=`^hs%r1 zLFTa#Wkx$c^&J#y$Z!Bvvq+qgGvh;ox-!6cA&p+3w}jNZ2Y2KOUdJ(v!@box$ORW= z&_hllTMA}>JPX+@R!^;<7bgeP{PDhOE3#78R86sYq@-$9)7(zmGaSR|NLpX>H23zru^!24O?OkjZ`M1v5@#0ehm z)*i4O^eK>BCP8(^8YP|K6QCe{U$N9Gl@ytWBA6<9-7<{4rz@sUitu?A`@En%)e)7B zFLzzJWArM0!qthqnXY1)aF_OdvD;Z1cuS{A+z_9ZLTA44j>X3y9c0GpzN!c z4=>^3LePbWwgrs`ICl>I4b;x^>CTi|W;1FEj!CWC7!P9zqARUM_R0Q#kP*{P^wtZxQ&< zVse4vb@tutJLLJqs^2fSuHcq@yTF++E1e5Q;{dn;I~slhU>czK>DZzaoQ7yS zj%3t2ZrkWK#GYD_YLZmx)krWkQFCNNB>D6thu~*uKKH@k+&Ts~Pf$Bvwcg6gBr*=f z)WKRl{kRJ1}9eBZMbe?$P87OvJ%-jQx+(oLPE$X!sMz#n%J@3C1X9T3-w51YFbC*B`w)%*AP|P?RK-m0H zqk8jo$?$Zti=gH`PqC;j^q}9bw)6l4`{pC(wm2)H_Lv@m<1@3n3yt(75`y}MgEbi9 zG(?9%#06%X(?lqO*O64xM&I^G z2cF~eut^kJTkN>C3WZevhWpTNOSN9@TqHwO#AfBD*|@!}wHsnhsz}5xk&xy3BInoc z_QkuN!?}u*>+l`>U7`j)O8Hvu& z_F>PkpBo#)4J-6$WB6=$cYtR*5Kj*552gb#TX--&IK4fP8k-&=gQwF&OT*#le!4(X z2{TR)9ZrrGQfG-wA(4nqrZ&GzO+aYKObp}Ij%;w95$-6dJ@5j@uzNH1jHZ13&9^VV zdqe7Yy7(CH9R!vOvnZ7>-#tW&arN%v_r0yvo#Q}9z;qT^_lLPtfK;&6y=rR?{+g`k z$)si7t80qxG0JFpx}&xfnV!zp9YVgZW#Alg=Hd(R7p`wZ*RJyszCDnj<&|h+nuhX&cqcluJA|>xy};ukfaoJpW>tkaQ>+lvk3w=doq^ntE{uk0L_#bwVA}*5 zwTX$T1a4$YZxh?2o2WJq6RcQyM)bn`{@G*Ts|92qPkFcga`qt_d?FUY%B_XfpB`TP zeD%ZD>J=PBcqFB3NY8Mm;EjN+(gy?SniQFWUe)DlRgeuG)Py6Eb&WZPApzbxT2Iw& zmw40TiQ0FrNamFVJ-7gE-zgVq%ddBi%E8dQT+JR+!$1+CtfJ+n z!6u0W=wDxPb-ANzDmhkmWVfTXU8U)o|`O|3y>x@lG_O{r3O@!^h7Z{L$U zYK=w<#pWjx_@5CEdynWwveyK=*iXTL&DW2clb>H8*24U^4Ej39Z znrDlS>h(RPrS)}ct`^Bm0rRg0zn}5-zt13(@nC82BaC;0iN_4uLM}r(Sf7ni z-UF)7F(jJ+Mm>T@%K(U*VFIOsPQduk%{)jh2O^&;f=&x9cZggRNSfz2+_osyT#DJA z>vkot>4=ru3+J}oXuPP^Zay>{?<>E)7k_j{`(Ej80w?8XrBu$$ou2Pr)i%%MjZ=i*>@=-3W~L+P|>E@Hq?&k2Mey-3Amrd^t}Nt4Fk z(Q7}puJ*%jA^-f}kLP`!=M6es(T-p%ZVc>{!cgPUtP2Snyj?(F7oGr4LPteNz1vBu zM_<(e(A&vZ`hC5qn}@dhyT^Tf9xMesRJR^4ZZa4BP#HXZ{{Bs5wnL+AZ)TI}#m)D+ z&b~K*YR$38AH_`R_BmY1aI3rkkT`+?+>>7~pz;5b9-YK~2~9b_eg?sM7pUYz^nMd} zCO+qKfZfpvI~1MI9UjP48nSy7R?80-cN`>RnK1`qjf1F^CfuY$sb(>i z%9RRsPHI#_l4c(?IgpTAFwJ^FD(M;9;DSgw)6_&$)U>9a66=K$*TgjKLPM%oQl-#A zDwI1&O3S)B>ClkkHux8^$^b#`vA0Ec+g^4YU_*uw838~I`2?g(PRxeExJN6!C< z8~76-lM(F0p8k3s+2D65lVMst{1BzzyI*|s$$j3zCt)l|7s#vuQsHCpyyXv`QDtk<6gS9UnoT>Poru3FrBswbuDMxp?XCs8b#ZbY$a99 z8JgXcii)mjs%99bq2-h!f6N4*<|WBi%cOn1m@5(Dip7eQN`YP@)W3K^T*zakdJ=587(dQjMgH7^wzh{;2jI%U;3J3i@ z&lCcwIcJyJ_<;Xz+uVEOQ+QL~xHbo!1f4|33!OCV(5b|$yGc>2<#e-@G7LkJbg^P8wr1*?LdYmciHep{6jRYd zMbi{hMO_p*C|x&-MNOAXDQ7eaB=~wsN)>WZNvbqb^pUx(-04=~fc%n+o~D7rmKXys zKMU_KM3)y9mw0^3*Z&uy^-?$Xe6t-yp_%bc8oo}nx3~lN8AQ1rO}9eKbp)%Befz*{2K;o=Gti(LT3^eN!RNo|q3D1F)p*ABFh zM!8g!h((1^!_^O9a^YKmFWO{Lg01w$()L^Yx7iHgZl8Jt7H(3=(0 z)>U2CHA6B?)ikA3)6|>wVo5B7Qg)~mE!xCKE?<}uOsdg@9-c0NvaEn$I*)H*>A_3? zYYx&e*gorNX}`j00GIR+c9R*VhnyWnpe5bxQ|*LPLb>JY#7o)NJ~+(R&vbOU-*%DZ z``bOO(_a1$mKlJzjJZ56yxK>%{m%8+yg1+AHa0rC?SV}_-v!m@Z6;EaJycfLKE_%a zTO}uxoPUBZhGRvBjSohl*oHV1hL12}xcn|tkEc-JzWxGT0i(gk?=oy4Ye0LRaE7M9 z64!T``tf@a=y3Tk%&~+Iz^Z5~I27Ba%1xaR@^!P>Y}jJRq@b;oD>~1$s#esduIDpF z(uJTK3B@2@Rmui;qF7M{BatzRdR|x5qGD7EWPLNkwKB}2rkWfKe^aq!YEn}Q8IrU` z-pSRsG;ozrt#KON51r7X0IWp!$!8CiK!pF#6?wtcK1_3gzhyU?^I&JG#(+8J?Yctyl6pu`OhH*Pv(1!f zGBzS8IB|XXgbIrk0>{VEF##Yx_~6;Zy~orpOUuk;0rMF5F`QVqw@)j`Og5d`Jvjg) z42AZ?TCPG8Htj~Cz>{heOs!xS>vhx6O{0|2#YDo$2#JajR}Di?Wa0@yRn>$c7-C*5 z^O0Cq3{f*RUDb+wWM)jGlH+7-?wAw8Y^pEYq-G0|>g_0f4V~gv?OrHNWl;+QL>`8r zu+Xl)@ZT4teRh62I0%6nk5SKXAQ+^Qns;G4!$`fmA2c1Mhl`9q)QNZR44#)~9(A|Q z2i**8+5OS(Bjrr7(W{qyj*mFfHe}EKp}w(?AvkOY`leWCw|Tb*$G(s6qBj`mp}b-R z7v_m9`Ntfe6?K$WPY~kZxI6OBcON~uz#Ig_kf-;b(hDN5y!<^7FI@F^fe-IPTL(gX z=7155e!hkBNmY4o`SIaBdgR&)6N|-~eVVrSLuvbjKp&>&tu+dvre;g^nrRzS-6SOx z41tJbCQ6Bl5;s((Y$!@XQ8I!eW{he=$*4lUC>BLQQ8S_EC-irS?1DvF6> zF>e$^Lo`fDE#~UF=0rWyuAH1msdQ7K_5xl8C*BV|i&6xqogO~D^6e}C$I*o134$WK z)PiWusdjyVj`l$C3K~Pyw_d-$gKmT#esyLD^JIioJ{OCFgD$jd9c>-%*3~I@$3>4H zP|=ZkI=O_s2Y$~FU1vxkW8>)7*hdI=^li48j*h}^aQ6E;a*&btA-Lnme(uIuJTh*L z;1mju_1&e1NIov#K>>o#A?6|o#gNQG(xu*g_SyaGkDu*8&z;zL0OpI~OQ9*6Sv1PJQB`!&NT@~Plq#yKLLL{Y zf{+ojMuy9w@S87X@@hgb6uwtc)C6ayt71_tD59ci8quntm}Wzhh-^jE$eC&?ZQ4yb zMk=j?kiEjg3WavVD}2D?<4oTA&zkp25W)Fu?_kj9C~;hlErVxvW;hrKw7FZmDZBzL zLsw>}k#^FgI`i^zYiJlYpSa|mXKl~ygx zp-8n{!Aynh3e82+C}~=S459Ex)RSBaQ^|-KUi|q)Ig=3+YCIvAt+G(g$Ax0N9FGVw zwaNFaxGKxCSZykbs^;TjCXvxq#Zq)dD=6HYoLCA;LQ`v+CKW(fvL!R*^gfMZF4SON zvUPF_Dj#(o-vTxHi~rRWcC0$k6xQKE1P6ny7|LM9FpJ`IC~#&fz?jx?PNvFr1?f;` z0yCH|I!2?dy*?k8VYQRJQ=WE=dIKzt@{J-;=nHtKz4U`!o8z45wf?bd^z9y|=nSLg zHd&&!$!-a@J+i|Ij{8~GN8Ez33xY+-OLa8@-{(96DSTa^#(sF`mp|@&^TpE-;jTMe zpU)pNEdQ3+wJ@=~v$RWm4V z85cEM)To-s8bV%F^g>nPP6&dL&*x)#-piH{=Ol!@r6#L!MaV0%kdX62!Yb$Uicl6b zDg40+nf$t7+8Z$F2i-gfI+ujmj2E`h}4ul|hDKgcCm*w)hP=v66n2okmt3#}* z=)&dN9Jf;zf)@T#M;V@&x{gs#gLjmo+f}JSB9N!=+57>v0dyr1S zJ^@T@^#yTU3PODd%(M;#S39PsI@p(v=?N2fs$CD2F(t64^;*E!*+1>aj>b!bYU`Pv zZvoVOZ(w_DZhN3-d|+(z?(M#wHhjW=V8y}hO|~sNUevdLK7aN+j+WoudUF0O8w$7? zjuYSIho64(6w4Ci#UFkLr{o(LaG>qq?@WBNa}@$Jv?^Ni<=Xx-N+-ZOxH&7!(df!) zw6S$+p8(>#c9 zW>yD1ot;6RVHZ6{z&+bB2-kOpt%LZI;?(42+c^fZL#(72cY9Y6dNRIk8|y{xynU^u z6Vml6Q+6m>cjw`{&%NE|nVUPq8r!)6_H(jRuxswU_uqTyEHn6FxEhZnxf*-1Dkl_A3bDAwr$R=R4J)SRlVyd!RmhZ`lAxGqRy3_>kV#4; z_l9jA*x|aJ3mq_;2MbQyE8*Q}bnD)K*z(TIUYThpLgD)JsC|%&(hX<#N}!#Pbp?p` zQE-_3oooc@ZU+*E;((z^NB7V?v_(GycaLYP)yqWpOaOOqw`;7eulr(;zm23Z&axbK z*0P-t1NTuj7rl=Jz31+268Qjq$oYW__#lq}Xnl(JF*CxEA0M)&@xSOWTKaJ)NqQI}FMDrn0ccyhv zb(8YPXw)^el1bzhQO+bpp3<_+(^^gna#BfH5xx*1UOktO;>WRUB)cBV%Ew1mG7`(i zVpU3J;(bKTE!5;AXY-cehNl@fpP$u2_^` z0i@Bb(;cfWMpmt?oEQgQA9n|)J$`cb)R}nxwoiO z2{tvrRTtX3_Ns3cf%4kQ`dNd6W}Mugwi)*>6po5ve#+2ceqa+Hi6%UL-R ziCOWrBkMS_7e9_z>&axqN+#p7P_+alW+g2(E?61CDTsBU?Bo@ttO{D8;(%X8sbJf7 zJ!fmRdWgG0xsg8IJ$>U}Qo0MDSIStXw$4V?j_%2IaYhP~V12A!{b|z4A zI$io>2%69mm(iLnrWa1XU8pTBfn34HNgvu_BU(R5r3#wf1j;38)2)eAwt^@ts$9*h zsw^DGGaD8!aXzm`l98-Xt*%=eRXH15|2-LrM~;p*Hssje`dTEi5nJEb+gLk_-25#b z$*#rM_tt*nM`XTLU0X}a*=$md#DzQuoJl6gP4x6?F;ga)h?-Is%UY(8E1Qy*mNX_; zgt+eyPPIEI7l~zd z6|8Z{2gkwP;tQ~)5ON9b`QzOl_@nGLpK|-TB^TZP?K9Z@@X1(D-vG8Uy)50HgIPVs zN;}s2B0@OJ(kN$R+WCjj+%KX3pt}0*(@*ga{RQa(W(;58fcTfW8|>YQKdz!oTZa60 zb@%GyXHJK;i^wUw3*C@Jd6-(-Iy}fxYXan&#X?i7H^DL#peG}f;gwq@s#tkBk*o?_ z45CoHDp!SLE1QiRC)f9$uf?)Q>l?>wdy)0*arS8K`SDk=qod>B);A(Yduzwpo7wor z#>Vq(@<`^Akm=VrP5C&UL@jfqPAXuW172lqk_hKH-en?mi9-I|#Fi(H4*VEJHA7!;O>+je}xOw9&T$9oF z?%o<;lFkb3TMyZ;i3##KyczHVVC%p;SR;P)9p;oDe)2PfhC83Zyh3dNY(h&2bs4P; z6rXQbR>0U7A20}FICr>GJKZNFRI~yGZ>`kiG|CJy06;`ltXdiRjfevn<^_%-mbB#j zM(lYco_rpQ@Or4@vH z7rD81b0c=dm5F3IKr4BijLBprih{VD&&UGr_(ypWh=wkSMU5%2ohvj>fFCPbEfikj zrL*);G3(Vo={mcRw(c;Dvx{x)VvI4C4~-x3+iGm-2CYt|b66U(i!sXB7!HK2+v&yd zFtGGu7S2FO$0o`!bA=`7U@;*qGtpKMNos3MppmTE)H6wz9W>$C&KYN;tzGv!yW5wd z(@v>9fB)~t^FGh>>dsX$JSU}Ba0GqLcrUepo_BRM>q#wi?WWcm3wW>IrmM7Cjpv%r zjW^&=TG~=OZb7Gx?~=h-1((49^QX1Sbg|U5ggpam!_1AXb+u?f2F$I7>(%u)Ff(B& zWxhc2IE&VRbb@xR2^Y)L-(R5GI&+k*1>fDg3F8MB$pxB_AAfxtay#A_??T%pr9-4a zy!Xv1YO7zq`uK+-BxlgxMsF{!-A6V6LIH8%!Q$%T!wC||?BT6DOfc@y^NsjNM%*j3 z3R}zTuF#5WITv*iXu|1eI>a*%r;E#BA&?B^!-YaVlusr?IUy_Z`~$^&AR9^ususCi zAt7JLg~OpxF_a7CmIM36q>Brccike#5crDAv@QL6=?V8_|H1mLds~x~U6XtCpHm}K zV?FctzzlXa7gy(Q`#~HRN1yqhCInVhSs&BCbK?M5I)qS24v+O0N?j3_VoZS(Ab{JX*OpP`(E9kq) zRsqpm@r(W1EC!xr+)>yJ2%So=l-QdBEV?R;+2Px4Gu4DKBNUXWVCmWITE<-7E`AF zk^ZQAV!};BSBUK|7x$JAqS5p|xjO7hFXxLzjvx@uC4@wtYak>Gg@8b@6-o-ZLO7cj zgq)BLnD+Ax^$e{&=-GMxeY`V>O0a8e*M)O{Huv8M;}h1hRzO>0RSVENExN9&l_Hl)%c8MM*kucz zRiiNenKB*uzsh21!5X#^#V5TeITm3FNZ4z-b=h_dX^Px~URNxn%cj-`oBM}lgAuI?*o_3<3<`Y6Tkw_-8 zB6lXAO^T{0gjLQ%&~8Xx$Rz?vAzKUu5`1?kmrfS~?m!?KEyjR`N$%R2fap&Fcx_K@ z`logeXQwvDW^b=PWQe%)aBkPG*-5v2w?$XM?3P) zi)K@O_4Tu7n4~lOsAdpy;Tj{u7m?%SY6zFcsS3r{BUY^>Tu-HKQbE| zxit|3YFc;mI=SL@k;w@wfpj_=3-I`gfjm#YNV*7xxD17?n2e}NNft$th^VH-q$-P% zq#z~*B@t0o?n_pbvr1A;{1w%b$&g6i4+*N659f=aVll18LNp|9TAb+efqRP{WnIf$ z{BD4AZBNen*H@W`F(iY9G&j|=_}~1|&Z;gW&$o-@p|e#%U1+JK=F(H<8tKO?VOaNd zSu3z->V!zj8t&flQgTV}bYn#oN)Rw$7>xMEm0Qe9b@~QlcdyBelLgCT7;KMKh!9w`~;b#g6*E#Q ztB6@4EAysCA`u}$NK2_=Hj&J#c~uK-va66R6hnp3awrrHa6tRHv`a%J_YMGw5Bj&Z zMz)v{Z*NUa(wR*8x97L-?e0H#A(bMtl(I1*jo%;&9+7(D$bUQ z@@7k)wO&`wawA=3CFnbzmzFZ4z6+~T2&C*rZ$OC7I-^Qdg$9ek&{}0QwCZi8rM>7p z4IDx(e8tAL`ljnmCKH?0OifKU*uVYejWg`}KYjKnFUR0xeTOCT3*Uczg583wFyQ5* z^XJ(>@GFYJ;|$O>R{Q7QoPw43m&X5!!aBqyanvfg&G~!d+x>&Ll~0$cm|aga@7#1d$BFMbRP_k6)CP zq$EjlL`=v^HYA*^?kdC^y4z~LF zyC)|oy|^T#G=_`NBIw;AO!lnp{AbK6wQ&>!Wql1+2tEWWK*SQ9b|I30if{(KR#Pb~ zUS_zM{&ear2FO2}(yhkUUDncFR%5c&BKoYWVHQOZ+-5WAEp_IBCAOZMTHDTEZ!b45 z)z%MoUo_w!cNTSFZQIc{E(oFO`f0YYyl~;#%@zcKhqCl6Q?aj!_)_N zb&U=8`Q1~ehR$<6;Etl-<0z1$t&Q%?T_O};ncsXs3%ogX=g!nU2IaR$CK(*9PTo2g zncANKsG=0zO2=HZd9GM86r#;Ys0CtDG9OV?k+hNEdCSSXA}WfYCd5ock;PP8QsYuY zNvSEHEGhP+>Psn+xXg`_lt@AqvVtgZsZz4S>7_y;nFJ*4bK-$zGE>^+4!hIK0LTXu zffew^iHX?yIx`sU=X>Pe-Q8Kex4pJTZ}{(ZEjTM`quf<_*l;S&(jMsL~sl+Oig}s)3f!xTNQnG?tskmq_xh zwn0NfooS%1q3$eh``XfN48^fCVFq#mJ>iL_7j7Im%ZBprFw*}KZ@6n%X1x6)B$Ky~ zW7N$Y9aG}hurDEEp;8+{z4^lxs92wT{QBJJZ{+et%3kDXw1cbA3g>%>&v%H_FhbU; zIAgI%0KgRrpDhjI058l%3!!~dxgh40uqq^yvY-}3HKFE}h?JG2L?n?=2S_+sQJ|0ZXZs>j7EL*nxAk1%onM9hts@aMsX40oIPCcwP6v0J7)0T77qk zt-f}kcksHl_s$IOx~}y|^+nUk6KC5_BJBiTWNj)I?jOJ;W%(&yi67kj2&3*}uf6=~ zar~mS1HpIwJXD6y@s2tF%2jAT)K^2leFDjU=yz0ri*s{_kexvjcY6+3Cr9r2w;#<; z-r1Wt81Vylz5w)1CFP)TL%skrFNIwZS2m6em^c+!fbB;;(qn4nvsujHl_3ej*n z4H`o(ak%febIGV*_OjLbT$vx=zFVLI}FVhph&%;x7T9m ztpP{utecyBAO0aOSaoLFj{$Z{4PsP%T0?h_;A3+1=miE*Cyuhk`JEH2Q-f9g z(vJ(+g|h(d>gTwDV+H_M6d5awU5poAK~DPxvT{_Hmv)dXug%|I+#NZ5v^&3f`*0f; z+=TxT<0jY##PGcpT4*5_&Fuq4#rDHtAs@&kbF|y!>`+#d*sT>K`Z#WAkg zQcjIae`q!8FcgJnVjw`F^E}r@v0G&YTqHKN>v++dEXb((G$Zj!)Y3R4PuH^I#Ztjo zN?(frML@d0K;*i{{28n-HP^D!3x_hZ`A8Eq-oZ1~7tfx)aG?qNb~Eebzhl+lcZ{WI z&fhquNu{WDKYHWGcNgA0kHZhnlGuFya20n@W`rm%M!y>Ree{!0J_c)_+qv{`ah?mZ z33vxJ_i)<}NWlnve`Jp-Ah@49HtE_2)*#h}3&n6Etl=S|NLP^;rIaKQoU-|pWLJW+ zl1kY#!MHsrIa2nx!{?DQ_IS$Y$;7=rM?7w~XS_c0h~$&vnUr0XxJZ(kl9ZGvDtS4T zQVT_jFEuIVsHOwU(c*r1KkWu#ajzV#xS3;Z^-ry9KOf<1kCuJR4^6x0sef%?>#MMo z!En%Z=xg*Wj-<6~)K}GuW)N6ZeI|kc7d=u_y$A?SZB=&bM;A?r!+;k1`0m|po@34*V zBSz>KZn9JAZF2g{3+G?_0Ao=w_v5EN!s`3ici;XM>BqNMUmyMA?k8WN_FnttH}uG_ z|Nh6&;^u?HOAmJL`*%>B`Qbco!&94p2nurn+6aSIcWjv!FcuJmbSNJvWC<#w_R513 z1zEDEBAG}=<{TnHC6bBTot~iG=ds&;zMwDYhy`^IH1NXo(e@dka~VB90ceO?Fu zKkkw3#4|-m#wCtJiWA|qzaW)VId7MmbQOxrLUbkSO0VqqZ$&{h*Qd6)9JBsOes4%7 z^N>wm(1OE8m67dJOlQ#;;C7;eNm|(j1A=0= z3ZohJq*q{W(%4(l-j3V=^`OC2k5Y=RTwe}-w3|=O1Kki!2J6jDhA5s&_jvkF- z_fM|FW8+;YKZS%k_)4$UL{*Ka@4R(Igcfc~5@`WJU`+8MfvU&0zf z{oi(w?)Ut$^V?xh&!hP}erTPLbtkv>sA?D(aV=bhKmc4M9|{CQ^nfC7`DC6rFN;}1 zRVuDfM@jK`MzRxvf*c5eYGY<&!{KoFoI!8U;hb^A9T|Ht=-6=D9X`j5c4Qt0pF6lj zT#=L#xBDo&xIezUl!~YcDV&gVsYF63lC73WR)CkFm-|sIyK9`Ty{%gl{gWf0o{SZz zX6GONqv$ z{@ZNPqad-E1}uzu5vJE*39D;uZEV$<>ufe#H^Zn-Q}uOQ)8O^NrnBAVBX649Zk)Vv z?fOY{gePv0%@Itos{aHUgkv``7G*o*u^(T4`@Q3si&F4vUiMe!^tP+>(!ED6giv;DW&Dw@YIByl!KB!m-)!2HD3Kv2z2(M=K$0BEDgu33& zDh|j(0l?iU@6=xml7G%2%IHE2b!}f}WuE=5ucvQs}@%A+N%ROl}Xt0@E>&usH7flV_dW%VOVqz0%yU=z=e_wnsdjG*_k0#iMK;82Yu>ElM7Oc*#^u+o~Ka`$yfca6BwpkFs4%Grj zkrcB&F+zNi6)CQGNZfRJgdgn*XM)bl!y6utcf&d3oFQ!eOmo`45BnsrW#B$D!4g@W?e@^eR)l%VM%YKz%uJ&{9L)*T$d+5N-~Z66Eb&bMg{k1c$FQVQ#EwoO24_^TykWc#VM z4C3k!0KC}f{_+LhIzv}Dkey4wKs#fMqeeEVAEyrQZ3EwdtIh%?y4NRG;N@^fm|qn4 zLxPLZMpn!cLV!I0pNRNmaILLy#=R6)UI%Tt7K}ECO2G~9@Qn7fXE=!WFAvYWb@|H~ zXK+S)8TQU_UHJ21Z^og08QPw~oe+og!Csu3k2D4@d3A(wNmz~$kk8n@iamQmV+VB)u5jYtA!NNIyb2_;Zooz=r7L5HCZMfsc zb=8h_US3-;h;(~SA$UMJ+qRUmrX~}wJBV+YveckI!cszKsYxstVvi%` zYJSn`?S*=41M%V{RqnhN;abPl~GtTLE~BcYVawBJOFkYRj?AE$2Y6&TV<-Rc;D$jfl%C z6j-QcV38MDEdFpGTayT19J|Oa-+dTpzW~!6K0JJ2luZG+Z^O_R)+u+-uF;^6_gy`) z29_}=Kqi430;SJU7SWkEVw3P#u#0Rl!Z&%OC!8W@@a^wi4adBGKN%#)f17V9;|~c!@7pOZ$R$w7CFj|yRi0DUc-Xa5xpu? zqooD|bzRy~#5zA5WyM|glJ^#r& zVvq2Z+UHo50&{-_h28fN$45>QT?Be`6vX!3`<0}=^Z3r+Sc$zj@!RMuLnx|A3e3eb z{dW)EJqsZL6fwDWV;m%7gZKeF)ip;RC)Cf6b#-9~x{1cgo?tNIPlZVwtGvjPQ}RlY zRM78SjgiD9DV!!!1^IByn~FKpUTM|IGs*7{N)ab6BE^D{pqG3zvf4N!LY63=FJE3B zTS$UkuI!myp1VOax^!dw1~|$Eiax+!zG*I;0YsQRJbV52#OUY~|4kv8kVn9)v@PZ0 zsuAN@r8+aaoVcW8q^noz%FFN#C_p+T8@XCeui2PR!8+097$^p~aSICz1Vsy=*s0JU zF=w;dR5oLGj$w0-s+-AeXSbCqD=XKMRg`VawW2Y@iIDayPjQ)LD-y{p9~?cpgLCA& z5dPWqQ8S~dH)?+XZ^tSxqY3>s6nB^ntmV9q*5tl@```R=|F<8&q5kgD@n6rQxN!64 zao%n(f^QGcviQ^oq6m7lwgi8HsW{_S`alM-FQrK=e4I~ z=kn!|py+UV=EstAU4Z%vj338u%+b4_7>AxReg@o`k(uZaY1-Mg8h-LWDFh%Sr)=)`DG1ym07J4ddg_`lJfQ1GF_#zsoYdkW2zZY z+d4ITR9m7~R+=&@?e=;VMc1~@si|yqf2>Ahea0qa8%pZ)+B>)pd1~8J9QFcsM+Ek% z;`URgkgF~}wCfWN{BI|p*M3&}%$IM!@y;8c{J_N(whcaH9`*hE?|%3e#D@2Oe)kv) z2ghj4FR|GSZMT=5*@?vo7@hrX>$f0D1A1?qh3Pg2DRfPY_14DcF~)q?a?f6YP4Suq zMIW*15Bu?pNG$RoI7zF1uN3flV}4J}8NeK=fFz~U-c%?gIf+|Nmsd)AJ#k4|O-X4d z9+X;*2mLW`kUD@wBpR2?jU!ZCR1K4KkMmu?mY^!j%O{d^H?Frh2MQ= zed2iUEd1Yl{{gaEG7F&mltcCbOc%qaa!qD+nTlaLQH&PF#IJfin+7#BiJY$xt^AR~ zOl>voV~eKK1j?dO7V5ZX57eHaHyX6mzbe`ksHAAX+I3k|4In5P7Hdam$L9L(?oCD} zw%wbmit}<0ZK`^@xoF3xVg`i_(^>LFIsBPduTb-%O-A;>Jz%*bpZ*@Y#7IsAci+lx$-OIkC&jeu>iEj|##(kA63CpA6D_eWHK#%!M|<_F0C4kfWEDmN5iP z2kpn+Ya`d@CPx-}7A9!|BaNis9?a1bSq)RtMpEQ#N~x$sR^Sl|rTqR-I-L&1qfXfu z_oY3dKq}<)hJ+bHJ}Dqad|q587Q%rf5!xuquuhmVjejuMxH=OH&eQjU2?MCiFHBx# z_P)HtS8``fjCuR+v|U&i9B&$uTf?~b@T31uZ^1%XuZ3O$Vx{L8XOp_Dz^rA>8K=o- z4q|G^%r^_+aG2RofH|oTkt*-D=1;Bgd3OPqKNcGsDt7 zm2I(fqJGj*kJP0#r+XW$_grHx=kT^w)#p`h&C9Ji$(j1CySTc&JmH<*dc^N1z64YLSTIGUL^ob0->CwXUl?}>x`dp4LP_d&X!W+!X#45Z`xz5izQhY`(C4CwW2 zhm^NK%PJEmrQrBr33>XgC%55O;+pL_(~<-UE#e%<%;n{XPAy?JTpPcS!b)8~HId;I=k z#?^e+2_k1-{~0{w?D*2!+*~qwf>L+++BGrZ18NtT6fvHL+#gwuk&^vV*dOO*jX!ur zK`Ov6m?Gc{$-b!Ubb10FSq?aSfpk11lkWrG5QcF|Y2JxKAQ%n?SJPyr zaCmH{r)Q>--e#q71TL!!a}kwN zSxV%xo6MbRwF%;ANoUDacDBjF8IdZZ-J{3y*4GzT9b)CSwYjMM zN-MkQNSSPDW_t~Kb?rICcc0@X=MOu$t@SFCbXL|rMVK8~HUx4%|M~l!@8107w|l=` zym;&WdDdyKGay7NW_D4`9G0g0&fLHxC&t&3HxBN-dbMls{L1_?_|gcCTaU;eqApq` zDD_B@h!i5`#3W}R{UG#&;_-k__IaeV?1=_Ep|ryjaHM^*LzaEA91nOL0UX5>$6eCt zxIYmJd3{c2JRL|mX-!fTYh)iXNzhN-6%MZoqtKi%b7wj^H<_GcP7G1|pkNd;$ZVU& z9>ce0S-QIQPfjm4nAFwug~}RDxws0#(g&KBE%_RSU749_&LnfF2b9RgYJn814Tbs! zow8hs7>Z8WM2n&u(Awzak0{M_AvyU5@)5juo7Ha9RjM{;l&Xx`V7wN)&0+y`ueWS2 z>TYjG=Ld0Q4w2v2==Zr85j9mFgaZnvWw{v79ixheSa1JMkm$bS6b-7k^l zLoV^HUw?XYKQc(SM|Yyy(|ZwCO>Zw-9=%KK13;TTxG_E6H+~1e0*c$@Tyj3yH90Rp zS{Es0`G8&r-`Ts zCz2h3kVg*1v89|A6&M*uq!coHgxJOZ0t6oGA?WDd-5xJ$SQ%&+9x@xDGNFl;Mc z08;?fS{xpH?C+djaHJYxACqE$dtZ9BnmKxPnVQ|fQU%0ZbG4a@7o|l*H7h*m22f+E zb%o_>uC>{;T1}}&TLOc(vcROtP$F_!lc7`SEJhSH>{@%hWeTa@dMI*P)}rifStqAD z5Gl*5FUrkgONUz^TY0ozDMHso3<}|np4$G|j+dXWWdWKSYv{@#*Z%S=-#^DDA=-%? z`al!lgG=b?GMqYa{rtV-x9@*@|G@40ZNt~w1{W6>VK6||onE7+got=8nY;#{YMxj% zvobl^Lpch9OGz3dnTuwQ%9fIf%#CZfq*%_D8G2Fx(qDr8*@vriK1jCKtM$r0^<*ww)$e{LJEvDefNN3$VJS3x-y2BW;8faz8rY=y*-Zdi zO*(_xj;45-hI^|-B}FFvx)7D)7^~SdAP!a7R9dsm%*}LF4kAA_tR@((X4~d&#)a0r z?9((M+?eX_=%_;LvLm-Ox4peXT!%c#t}WNSiiBFjS5I$88=(0s81FRcFVvoU?g#XE znM=LLh7R`y5XVE_hy6ixGk*Q?+w)B0?{42!cyQy> zC)PH`ljAT#$Q_h9GYh;bGmW6^F)$I_1K7h)?>plBH#G2M>IMjFIrUd_K3s=Z?w_ zpUdHJITErj5q0^ZiMS)`i(;CDj2HQQWEPi`Iv|d#q(T9r9u|p7!5~Q~5*Z77XTTl1 zdT8ARdu5Ul%-pqk7^slx;G=A;L%#>*VP>^BIQ+yveL9=Yg^+OtZG=TnZ9yTnAKc3i4W+>C2H=2aHqc7d_-qpPzXKC28UFgldn*+3Zhd9VMPUtA==Jv-e+f( zSXEga^`+EUmiDYEw14uppKI4)tywUA1pKIRo6-^-~VIkxl zZf3toBf|9d!w;jZ_rL%7`8SX4Bca1)Kq&0nd!vV8!}a#IvAPedqwntY(w-aB zkbABIT}^ha%`+8TXe60m#x=$+N2p7KLE7?kkfuX=5U1ogkARC{B$GH2av+LNcoK5L z;qf>Ub?!Qsr_Sec3Cq;sHjZc%Z}GT1I1BcZJK*E5i-1_jP%FhBoxdaL!t&r@IEu3uC!n1jm}MT- zcDDb<^z>RkaLE$%h2-2ua`{@4Vs~MFj8aE*YW@chBC&*eSBm@T?o!mTAy3GeAUjal z@<=2cuBguubtD`WZeD&zqQd8KyM`Qm&=K9uA7d|%T<4Mby)WTP_}l?(5)Gw7X>20l zaWQWQ+$-WGaCyaqJ_4{TW-jn0l92Eq%}-uk-dGcSY_?PwA)cLuw$=7`PAB#-lG3yY z0e6jcGb3{lI5qM>vkfH{18 z>nEboI#-=rL?~Bv3Lj|{J!;n;9&0R~5L-6}+oq=%+aS?hxcksw1I}MwFY*jZP)?&HIk%^rBr2nN|UJ!PXbA_=bKapK==G|YlBg1 zZqTS~Iay5ObwsSr5_@SzUcD6|CL3_CG1pShCA_?;EZ!Bd!nU=QS>e$lRQ6dxKp_BG zlU+zv??SMF8jqTDUeTK&7$ymEagJ&I2$oE~ZNqyOgZ76Y02*;NuJU$kwvU zL0potf!pCqxD#$i1$Mwyc;~Z*rVB`}yo}xy>#!e8H zu+yI+Y&ps6VG8W<%m}{9n1r{ky?gljK($Wv-PwTTx(_*{K1y+z3Yfes0i4vi4 z8_MsM*%lklVXUt_ZP8gd%RSZ24Ns1C<{I<3ir3CQI#M&w7H=wQ-A+z#Z!Qup0yPel z7nK<_E&+SrW+7cLM+N8S%WqJneitp`A7PGOx`e9erF*P^j2^y-xZdsCi;EZf)(89U z0`Rh+0irs76})7Q8mo(jYzC6PR z_fTEMkg&sR6+<`+2B_FwG30h9hR7)x#*yHIyhRi4I{uPK{n&(ZK$L03Kys6qpg1Fd zGEBReq=Xxp5s!31r5K?~;>Az)O%e;ZL{+4Wy!Fampr6AY_#2vQ-wd zJ;S1~cIzs&$eU!GR$H<&HfL2;c61|J-I`ULd$K*RsGTd^xlb429y`QA!rEp=>E~*h zN_|rMGAaFsbFaSr;SUJDe*DV57rsPR^;49QkHJ#>{Fm=`{`C7zRCN#BK79SR!BNqZs@f-KC8lw3F<_>MHUfd84gC8 z_fa-Sqaiv)SpuyW!{2a>?tN?~f|ruX=DYZ+mihX~>M$F}0j9xE;485K_rzbDQ)V3! zS*Fr_a}L=AFbm{_0=QbwGo_Y1p(_|rH&Op8GMTV9mDMOp3kJ;SoYXWmfYY0_Dvj2j zZ7@`3WQa5N+MFCCYVHbqJv%zIfv4>PGMQo^lGnbiyV#P|x~V9y{n^}B)JIPiKim53 zmZS8A=U50iR9m}!OYM&LUafsk2>5X;6E&=N-h1x*{a->i`Q`gdKcV<4?nr9jShn++As{ij=bpFk^L@V0^33uFkSUK`U{@ZX@zSF!2GQm9 zk1-*an_kF?BK4EU-c(K^PcuO)sit0|24eeRFF@Ej+Uq)W~?lorU zpTpg_g8Un#r#>dvM}kL!+ZP&w-w5FTaogzCp=-EDCqM}!C@Nig1)#$oK@Im#?AZZI zMM5A@wY&0pw3mB%{kz&j<>iz4`7YiD+%7L>!7%c`2rlfAKj3KnS_GM9-dtcf!rcFj52tta?dtn) zl`R=WQDAq3`xqA{Qgo@%!vfJFfhR@fpkRr3gN)3hw3NV!nMATEgErC-&4!MaiprX4 z23|B|sq0c&B9dUk5>3OTo1lFsM$r4FFEJ!-IQ9@MRdhy^$9;E7N6J@)(wV0TzpuiUzIjt1o1&j`f5L&$;^ zhY}w}$`!aAxBGUnDiZ|YU4rS+#+t{)tJkJF2d@qC(%e6IoE$6DSq2$Z3{Uj*PCQF$Cz*70(ZP4q`3T{wje!+oO0s)!ds~oS^H^|sI}!E*Ivp3# zO}SgD-Z+g`E*f!bN{7HwJ&ur*7fCy4jDYZCPUMed&Ojr2Vo0t|GQgFCsFh6mk47Bc zmXoQqnOS(|$d1Ws8&fCIqIVRib*(W5TeYRsl4;VTwXfHkY?Y_hbab3*Zd|iw{7gk* zVN+^K;kc09Q^q%>r5CP>Z$fhvQIpjh;Wb=_Yx1}ppU8dTpj^&AaN;M?>)VZ@=fRH< zxR)aYD7r9-{&s|=d=@M5j_JN#Y^g1?lCiK1y&WPPoOJMSI0z6KI)O_B9j8Sgy3bMS z_A=ynb`jTjnktvhubs5fjyYT&Z@HJ~xk!(tKOPRoR3H{vQ1OCJa6# zArR@9{^CKYdX16wOv{tuEpi!>22rOn*VDU4Bx~pob2yJ60vnJTqim`gQQ+4C#T$`> zS8J2iMvKPGYN1&JgE2y9&9CLLiV=wefR0`F+mGvpja ze8zYR=e^Pj&!(XSyR(ohMy#Z_5VAJR&N83kJU=4IFKlCXjrlFtW?z5)C#0}wLN>jF z?$UdrD0=4|GRO#8iEn&J0s+yUUIsLQfHlJa{c77cSEoh=xu6lCL8rdr!$n4Bab5S!Ycc1sw-LA(PlkINl$W0sKD9rm_|T<);j74mwCUy@Q>N=p(od0KYTRk|9M6Lg#+ zj@FIov>Kc6ts~i;VsRnMTA?m1j42{YacA5OOpVlROTgHWszZ|L*dcdR%EO4UoZL zTLjx~9%IA34|@RpE<-|oNZJr~(vwR{k|HDX`tcQUlSF{VC>%qFlO#syq`YM*0pBU* zj$U*me+lke%GWiKnrd^Y$}}dd?4+#hxKk<{Om}s&wbi1@%q}pOo==D=NYFG_m@G{d z%xs$~Gw=@tm=ZELhgY1kD!nkZxC&MGovGYi<9-q6C{|y7ftB>!6Wah5p_w2$%0Wnu zm~%ad_0CP~9ejoaK9j=lMn*nI%91sU=_{f?cA<~$TDD)eH^3NWK8Qg+?i_`X+chYR zP}o%v7G&JiOa7%N9|k#mx}2(NIG;q#D;=kh{LQnjkTk;hgqH|~DME_ZrPxCrFArDP zqwt3kz;Eyqz6nE6e344Z+oh+ci@{Y^@On%#CuxMS@BH!6&Tc~1p)EA2RKNUw4Z-Ul zG%Q_RS`L12>5IPUR%59O*D*(HA|g3N+!~>Yv6Wgm|{>;1HvnuSMFD zdyvScKL=-&F8%LKH{RKV!1wzvL5qW?c>5B7{p6#!!^pKlXQ_sKvhWZJtX)ZQhX12WMXlyYYwR9P|qNd zQ-DSuZ6D(!*D21C8(6yZ#_tPo!jC+>(uSbuhu}Wkg_0yKg0Nb`6+&5>8nxPLL@+?e zak9L_8jl6qmabZxOb#JP8P&RKV~r&%hbBa8HlZlTkiArA(O6A34tE+0Oa*#N09!;!hPYjr@4&2eq+mea4gL5!Vf17qX3(G z5Pbl&k`JQR0BZ8*D}UbD^w&qktM7ii^QJ7dB9nh<*XOstn1&ZOy@YlQ4f;(8qhCYV z-7++KvF-T$HNXp)RwNK6?Z`9U!16Al*Oob5#G@L z+Wnn}4$WWV_nNx4Won8#aOTMMDM);7&wMsr9&P~9p8|G7L&*Xa2aI%YPp8KZr@>? z17MMz!UM8x%aK`>un=`e@#oH_8=oOdjgE^fymt9bnKoCm@VPgn^kehlJQ z6pyFKkA*M<|9Ef}Y!%?6F#nw-7ms_TH<^^+2jE4eK-dyExOP!WF5pIzm;5e}TskiT zp8%v>|2oKSV=#!MN?#v63Bc9@Z3t>*HQK~HZmR0?vW*5^a&o^)18$XLFzS+X@|fbH z+-pos9*YA}EXji&8f~c8R40~}sH3t0+F>=uX;{XE(`(V$sEt#Oah`N6#_4wN^PoaLb2>S8<2cQ^Tby_Lo0~Yd?!5N?jgcQ&2pbte0t>0u4_V8f{s7G6()2L`b8zY= zOM#>81p32OWA-HrGQ;;3pOd;J(CP(r9!0-9GEO05VXqWl?vDG zC1E@4-Y{`##TOj-K*-@Ja`^oYpU>`8{QiL5;g^UNaPYl$;u;^i!yZq_O-{)V{og6l zln6R6aHUX(h8N)!&3DxbeVf%Q7Enm+SFbfN&uy5IJ_PkGNJ~t0?}oLgieu?uOrS-e z-AF7FS#QK^*bp%w`XjG=Ey|0qdv%%p$r0INj7Uhm2J8UK-9QTxqfw2OMpVGF|umv3pX_N8zQ!#5Yz_QXC3o}+#y_L#@Ds5-lT6&QdPIk6% z?s<0h@wz&(3W8XiYI->rYkbe$2`*>9a_*y7-aB{WkDu>w`stsy-`vI0^P4EQ(xZdW zv4a7l85j%Io(AC-9NKbd6f)xAaS*;aSUwZLu)rHK4cs9w;k`U>0vFPKhg}|zLhc}a zd+cHeKVE_tU;xCG?bsQ}C=2p150;1@-H$1_C^Y=N8Di}(Uov11{=?(mh_u@B!#ZHzm4_%U=QAz~J-;tF!S zcXDy>-bGM>#ff1CyRc0u_6BKE2Vu#BYhAzA&~TAC0bma#>^F`r2OqfW9*SMb(h(|j zF*ws=h(p@4CNeHBN}Z!lg6W`z%AoC6>Cid(j{+|`j9McXiA&TPW41=r6_eQ#QEB4h z%vStKZ!jaSsL>-qnw4el=&;ygVnE+3D;g_f3*z;1BqXD-`OD_?!i2MFP^{Atu1>Fl ztGJP+!XIWYv*md>w{GjcPxf)6^uV@*T=_)+_S|kxNCEf0|JSBJI2$|yjP;wa8ZKQy z&X{omlfolQWJVUqSmlRh!al$tDfFr1K@1|7EH9s&r~knxis>!7!SNx6BrLi8WF ziARbkhqwq&{^p{hA_ul8QygUu?82MBsK{4@WmXL1D{>IyNcocC10j#c-Hu(_+xf}N zePsYFSTeIOrY$59_z(LTvja84qT4@umD+cT{SnqsC16R9_`w5r-A_Kwvq@#EuIITH z{SsNljmoK3>m#8z)XbS}1~2KScR{&SA8kl7S4L-R)a>gR&DmL| zI31Gvl?6Ek8a_cu&QeiP%uuReO?+cLf1(5bSem-;fv4-8@wA;%th@a@? zP~2YfNWMFSohJumib8`Z1Cl+!`-`=dzhDK>f9H=6c2fVLXEQ{J@)#x=fK@x=jh#Qh_{b?^d0MK z5PD%@Arbe*8&_ED?88A&OgLDjiFwzS=M!P6^=jWg5?t#t*kBVo8F)g)K{xIXG zPmmMLz z;TR-Oms6tCM8z3OBFO4cNl78h|Kvo7=rXZQ$O+Hn%p8(ASHO}YqFcFf%WeY7X7uZ0 zx;Qk$AozYm6+f7i80ZXiU&~V>&qLi4trocaEA;VlvWWQ!7>- zOV)R43c{=_wa$oUjF33V=tmGbME-ciWpfzaRmGAnxhn-zt{;c{=arz`X=N~ zk1RFdBagt6i!{^=|1B8;X$i_17z7=0_`D+jlb95((Ugp7BL!*f*V{6+5j93NiH1fU z4JQ@IFb9y(9ks%(HmLP<VJNXM=Ed0Izyc@he!}tel$S%(QK_FJhqP$jAI!CZ@nye9n{3%^0eTIOg{k*@<0t zj8UYJ*#%^wACVs$DtBQJe38O;2d)V}l?e&N`uV52fI10VFk!?;8hC6EVv=K|_TVFT z-G_KdRE_F9<8m3<)*Crwl!q*qM$S?IISO?yvOX`<$W3*&rEApO((6w`xeWab28#W} zuaX*leP$*jchGpfDhI*E^Vx7oO%~x++c-AGMX<(%*qDTh*w~cV)Z&EZ1g0UWsPn>Y zSe-&*pRL+Z#S&W!J^I$I8)xh4IAxS8hm2l5u$!ik$4pFEKM`G*+(YdyxEC0oId9>C!H8WOn?oX&y+n;M#yrWBz*b#Hs|KDlYXBc zi=0%XU6k}Lcs>7uZ$X8iXv@e}4@FzLHNaHur?W$Da=qCTuRZrkZK)9Fn62Ya&Y zvdbQ@yD%K#++9Q$A*+CjNI+ca3Pzy>6(de7qEM2GD7xN?%@D)`#cE2$Dz0~pwbpo~ zo@bUG!vWyCT_4myV&?xHV0 zT5VC7n#@YQDP5^9J+N`N{u$8U`ZZKLKX}b&&5aR2IJA4iA_q1 z&m5U>Az=`G_o>JPTqvr0JZm}bu_wD|LiXyh+c-4LKH-)-k1kJm{_M`7d#A2$c(&oo zif^AkLEGpBM-Is6NB(^7&nUCPGr4{HDB1id1uuK&cj*WTS8&mxf>4cFOg*)^fYg9{NQfE}!Yq^N1SkH0wEhoPCFl>Oje3YdSa^BYGrqOwB}jR0rYx!r(_ZW!1) zr(Lg7xb1efb;%qywSseoCS_EVO_y#%mPXs1uHYUULI{}rgE9-4 z*AnMVD@GA^Fg`8;3_dmwNx#8l_&*6HndO-mNbAQ-ghJZEW=O}LvDte@WwR6lAB)Q% z?ROx%FG927>z9Wwa)ac{6n4+eMqKGAup)vBzXhbA-rY&O z5(?a>zXW@Q+C~O}pdb_lo*5Zk>LVJxF$67Q63$UDMY4AYUn#&b3PJ^eV567?3ltE! z0=yTJY(EC)p%4q;NQ=jiMHY{F)k4mDO~xs61gIph!`+%FnO&$T8|l|+hvq|6Owb+=JUcN4PA=)5+F_mNa2AHp3xW# z1;Qq&4TXjp8-qbSBs4zgX~Zx%%=j^6n9YQ)G2&rU7Gn;agj51FCe`m-Qf-Clj-Ug( zU^%|I5sTm^E8(H^iI4P&pdjl+w`V_?%}UQX3{veJa7Tlcbem8QK*fxN!g)^}&z*v} zJIacJ9DC7B+wIYM_W%aLZyZjvW77u!<~4wgE;VN=Xim&AwumfWlmd{~r_mZMW^J1* z!(}kW84&8tNQ;I0P9mA#mX?d+es12$xr3R5V^$pUH$sv1}<~HK*;_51Ml5n*Y=-ZP%+;B2xU=Z;ZR$W zeNNdvUw1vcat_qG5!jXf?BGE-pc1pN2Qyf@hQG`coJ2~b03{Q-oTnNfWQ}jc7d)Y0 zW1ukF`Akf$tstw8ejRm0~hQg7?<47Sq3ojW*RsjhH1bgfJxNyA%f$OcU za9SXxFe~1*=F>G81lBM32`;j-5BOv{@m1L1r1fh^nPU)rl-(2&&9D%SQJ}2I?woqg zv7yt8o_M?ND2>U&)pW$g z)3wYCjRsv7wy*?hHZiX@~ZGKE!9ycW8@sRigimar})WPx+1|l3}>o^X7v;(b6 z)Uie(DGoty|Na&_^+)VLf3tS|vo9+y;v(U>tas|$@crGQh$ONI2#x! zB!19`3vA?(8&{2=(%#Pc_A^23Z@%vlU3LcHN&jwdUKhu|QA zSC3s>!qeE;=xGcEY8z{7gTaDe0bdFggc=+9w*n!88leq~jGIDVGL9F2Ee#F$ui%vv z=}ExknYFK>*pdw_VXrPFwZVGWc?tC`_zp*ad~YA6JA6pULi17=VXdyOx0~RQR{J6x zKCaqEo16poe4ULwku1GWjl?252w5hprQYULxBy8&w!cU;l`0FHhFUvg&BU}j0t z#}{t(B$lJb)C2O4OhDrPEnFuYi|`Ngsg|`Xp50l$;_8(OB!@YA{-1p}o}e>@9Pj6U zzVXjL&-{ctD{SLGq#0ZS=Kk=vchB_6(ztN2hz^hw*_!>7u34rOqXpLhnPpZkRncE= z0+NtG#)QTfke@LJukcSl^{$6MJb|F6wz+mFRM6Ns)Yu#t3e`4-#6TY6Rsk<6<6t0! zhXkZNlOlLCeo?RC8(CX~6(kfoP~Tx`*{7o~D~xb>WXPh9 z(4#<#c$r;B<(wge-h*&5IiA67eK&M?1t@Q|0)9_K7IIDMZWvi6(Nb3Fn_N1Dig}dM zpg{8^U4d4BB1UQOL2iy>)wNqcW0nVdYBo3uAI zIr%u0-dTyq7nb+n9jg~sRn6Ex7UfZN_Gh4UDF-Pwu{5=IQN=xm>7VW1%?8_lb{yXQ z-VW|^A_|6h-?@hXbVnaN6hX4S>3z_6pBRG$4xgD5tlR=4!9efTxO23K3#fc1 z5Jq?>CTanzQK9!C|I-wqGixmAy3=OcX`R{X)3QY6^;#bzFP2TD zApnG>z@jF-DHB2gcPA5N#sh~;DWL6WBpBf!wU~iaQOm1&sJ0PXbYT#Gqo-iV`KispT?&>O`vis^@cW%=@<+y1C3y89I{NY z8~}qMH%JOe-CLIg?|txAd^zjsANM3?Qtx7yh0FJFIr4Hx_5_f{jxEg7TQ0ZUVSan+ zC4{V(6&%ODc=+1`oHl>)#ryv}vV+aA`}dLgK`-Ix?b`@}!{kL(Oh{Nu+0r0hgYSY| zfL%eC8vToDP!S+6y!97~Qo6yvfTQyqaSSPCLo|9+QvCRP#4qGERM6$Y02smF+)SXt zIdBj$Oo#wRE(u6Vky0!mK?{S>@rMU0b0)v_)@!3*qxr-hR1pw_Xbc6e0Zd}@u|6JiYFzpmQE5$EXpjQGfXU>g^R3)wYVDhn6QOW2&abIS3G@++I~AS z0h?Hx;$|in4|eZEBmizTObym;IjsT@kV$%YFomqxc3$vC+5cy3%Z~HtcZ4H)@F2}I zbOcyDkV5B;6Y2ukI^|I#rl8*ogvjR}521<&AAZ&P{hnt3P;=N_YQz}eg`1Rmr%qGpRv_Y_akDFJw{y4N#zcghE(9lKy-C5X z5H1l%+1SP9P1ybw>ZHNPd$Z)&wI^Xh0T6{t$)Z<+trL|JiPDsV<>+?*gAL& zsU{?DvN%Z43Q0B^vze+*Chv3Tb;9_}XxVT0C24Hgo6Hbdvto6N?+=D6)>zjE_{OFe z>W>T%N9ffmx^mWV!Q889#Z@`^l)d$CA4|}%N=@A^wHm>Obgjx3X-5O7O~IwGbd?dY zGr9AkaL_T?38QLjGKvZ)1a#Y10l zH;1F;=oz8oCr2TF_X(pyM3HabKEnV7Iq_A7L`~&cS6k$frwxwUQLVDtlia zurC{_Gyj1eHWD?nN4OD?$73O}DwsY_F+Zm03}xSy@@SVhtQ$11Hm!uHs^?kqK^=fklMU*b^sm z)AHuWroFn-&8=H>8|r%E2NN>Ok0*Z2q1)vnixNl8;#B(n)q6%=M$d2m+IED0wrqO( z?9gY2Dps9hdb#d3u!v*`$I|{Sa4GtRsJvc7|F94DK%i&i_3MCG@`H&r z71&j6C6rO@#7oKDb2hy)Xe)> zW2g)3;6B7GJcP_b9~lxjxHjCh12!%u6waZ`VG0Rh8=QtT!pvBpf=_V~zOCy_1+MP| zV1#xI*;k0AEJA)X+&6-ZfDQlxfA#g1By-lFtLs&fQAozQ>yd5X+${i>&orR7>7!8y zBBE8Q?7sR4on9M_rk1G^1KHBuDn^GuSXnluS!rSU)>lfkn`Q8N&2iRrt@(7^36QJ> z88P$0c~8U>ulANB?FY?zY61%5_Qa8aP&;XabOGpfFuh^4N^5Kd>l3PCwJnHLFTR9&sF*H^owDMux_ z9a$}1y27E*pkflC)I_H%np{m*4gPT2;dPjs%p6!%_>du06dSCT81I6NETh4jk-;H0 zZt1WRO{_{vgKUyEH#LE42&q#ud9f2xzPzfaqo_k1qtLmQg%`I(nSV^FQw=b5A_+I@0*D0L&5g5iDsdaKOD$?zwORvud*&0yio9GO!ks_vrfNYKk`#FJs z?QT_fwN|T2H?!kO(WR<14XCry&1N&>^^A0%*J87n4LbVrHg8Opt9U`uf~2&hjKR6F zCn3G3f-mOwuose=ipWVFm(ovuT(x@PLR7`MSigGtjK>{YwvF1hzkS7>JKL^)w)W7X zr>y8Kdj9gp6-3<+|MlA)yE*fZ#>^2EqyPPfnb&3lErMX5c|~>?B{4YXJJ||YCj0&( ziNQ+EZ>9;F0k0iI_7#m`+!UELftE;H?g@4UaRr_<#z;x&N@?}uAN~|S@ro#w(mRw= zMhI(d9^&&DgiPgax4)ty!bAuvKL=8;%()$2eEm6t@7_ zq}Z5Lns*{DHaRJmJ0ZDg$@oWJ>U?h4qsufh9;K|Qj}wtsEFys*$kZ{4Rkrp`SfqVZ z`^!U%?j1T*@fBd!4o=|xi*UvLc@D094zpV5%A&t?Ne+F$u0a)m$PB2u6wsaj_+?~} zWy?kjO?}=?xY7V8!fs>sDiL2IO+gsA3O0wjD0hicetZNA@K4@SQuviZaV43gRZLTs z(%PERh212vglpkudd5Z~o_GmPLOU{<*)Fh_V3%wsf}O#t7%gN;Mu#-)OR4`5qTBw* z4~EeSVwgL#Z}?Il-#rFVM9ZR@GSX?U&yTFG=Mt5^9*R|z8s?8e^ ze(K)EL!Vt)d#|Db0aA2TVaVN(Bk1JwBmcgC?!VkndHBK6KA>KtuvTto?G>i`r`HJ% zYnJg72_=qQHFzL%Bw~empal95`J9$ezz?dcMsflnXs9{GLx}2aZ5t7}uZ;&%q%e|U6F=EOs$EjEfL5(TDSpg=F{-AF=~UT23Ggl?ZuN{Cc! zA1Zl=?OeDgPPE5a%++$HEeA~vjXp-Wtu+?O(*0yX*7 zn$gRCA&Z+(q9 z^!65(6}I;B6@M#V#XVa6LtS0rN`TgpEEE*DG2GT*7JOvfJZVN``A4>_c1a^5Nkk&) z((5aCB4&=J76br(qdbq^9R}$pNVycqDWa$7=9CVqeOhM@YEB&<7i>cM5aKmB zF9k0?GVT1hr zG9ZD@NQ;s~*J#!ue#v}k=>BIy$PAg2_@wnnN7PWq$vr!9*%-D?+l zlY3w9+r8@I;RA@w?BhNNN4C&Wzd!rGZ0G#z(IsYC**9R)_GRmrX8F}$oduE5FEx|u@QXt z&6UtfMSK}RYnWd&h(E(1DD%ofA?=7$c%ovMNUTIJq5^|Aan%t05*>$L5aV^}30n0? zFe#X{%b-^gk*=kOROmEXMz~6|POF3rZ`OJ=Bd(P}&WDXKP_^uOy8!+@ug|G!&+Eru5<}WxaR_ zX2D5%%et^lIMq{$39=Gw4kKFtj?``RB8$T##4)e-;cf~mh+hW@S|UnExdFiV1|&vy zK^Yu!25yPC2?kLEP5~^|E7W%8<@s!S>fOjPsca4x%h27G5n4AH#ssxdBT@odm3qLX zQ6t394Yo?tX}Cce6=PegLt{25%r>LV7H8p(4$5U2*3%ib;tV62`^6b2ppot^1z*gF z2hHMyWJzWwx|bBYQ+ptrTqs$198K}Z;EF}7FOS{Br10{3F5__u`b&Vti!T=){?}K# z-#`2e)P$nRo1*az18wP_{>UH%l_YTY|I7M7s78&*rHQ9DU&IafiLMtM4Of%U- zMWBe0GdqWZ6I*1D4=yJUTATONHgc>CRW? z$T`UftWX){%i(xJzFDbZPseDk)OwMKZL?ZSeTodN*K9JJK3&>Wj9Qk#TTDLTvQFMy zy7b~a=C^wX>k#LiT6c1AYR}%1kv&D_<)n}D8SGE3o|V04|NbpZaas0kXkknC#Nw5cAQr1Zlk@q?q3NZ-Al8-vWzT?Mw zo#D2ztGO1VP-T(Vg-!=PMphp~`9Pgb_L340ZIopbe?`!exuIxhZ%0sISPm#HL9K{M z&QT2VU5$o?4~JESvb#<%^7~QU`A&P3+pUXGq@yv;cu>c>n-1C>O3EfTAL-P%OEfI_ zY9OyHpWUZ4n{674!cYm|Zr3VouC$D{0k5IdY{~QHYAu}qit*AE=Ea^&%Z*KqFHWEp zxs{vC5y_I{br&uav8w~h`?v_sNg_zcl5A;iTQ#S%zhB1&q*HRyL`op|f)mzcEHHaSKb-baoQd zq~gLnUD7BDvLe+lqxNRfNFcO1Kp97!CG8kbKXG$?_g6jV;dLeq>&(=)%Uur{OCJ zgUOt4>8YbhUzm8Dsuv&0rtBrBb5LhO%cCuK&|_M=>FT0;&#u0_c!i5CyOD~N^S)HQ zzhfEt&wrp10b1lL>O=gVHXU?G?o2GD^M0lYg zhJC>>!cGH1_K?a-9=ShU>*5r|D2Z2{{heZi!kYe?vci6BL3>ixUzpO1?f5tS61B)a zwOs-C(X@^r$;~8 z!&Lnwn^WcGb;lDg6fvGEdORyTyM^6CY_Vm3%eFg|T3qJ->eSa2S1<<`ZrMTjV#lht zKm0p#GiXw9AcUntwpq{J?mM%tk15D@PJApy9ze*W(5ppGM(}SyS40?q+{3F-AzDIu zLVlQK>=BfiU@HNu6%WBZC~?IWlG=Ixcn5ar@8!>$GK^7kb`sVRhoKIm%<9CGq%OlC zz+26?-Oid+qCJ~)kUYiT=WeBavLsQeDZ|-95~j< z*MIT*zy0q1D{;k37-afG(MJx;jV`_Wr&H!ZEA{5~?PHYhaQ9 z`2&0SN$6yCkSkj7Au&iNKEkVT(xlG*vYN6QEK*a(2iS-Y_{5|de59-l7ZQs}zHjZq zx0-ngloF)W5npkfmkT-vIV#o*yQ2SOCK@&yhg}kNPTxDd_`24@D7F#s9-Uz6XczIeqI(j=|QlFfV?v3 z6J`(Y;Q_aj7CnVhR%+WxIEmzn{(gE8v4R++zh+WlO)pl!KK(T{z5RF*Zh{5FjpPt; zqx6R!_*&BYgE9(nj-h?HU%v^UC7MFQnS(J0fC8sdj`Xm?L!l)C=%6RR6(#f3uiF zEYey=q^c=wD8n^+@dX|{rkM14e@#O_?$S_G*3eK>Lx!)BIMyqfJ&dT(;A0hxBD1T; zF#7?LDR$qym{xr=4#L}8)4;SuNR#e}6tZzAN?OP*uVeR)DOFz|N8-dFc7-U zrQ5V7gPEyeI*09J3}$PVF$2B7*jVq0*txkUfZn0J_s|r^b2|O_UR0E)!XlkIGI2Sj z7MJYHJGO8fZ-U$(p3s8A$)>d{7TtUL&C8dBtb5N_9azO7w)dG${rx>01TCgNi@M@D zW;;k#40Dr{QHZGFqu+4B) zos4V>$R^Gzb(Sozlh_$j$=M_F$cac=OtA( zdK8nxr+4ejIZmfu&j7bc$@nDF=g!ePqRBA|rBZK8S6WOClg^}7nk^cQ?wAE3xu#<= zSq6)|(hOM{ZE<;Qs*^vG<|i>Egho1eD=#|o?K)#>dD-}#Q~i4EZ>Uou3cYk zc0@7;5!rFZh#Jn^vKR`=WlPuF;590uY*vQuHf5GllLeHeRA3Ra5(bdbW-xlSXfv@@ z2Ji^E7TPl(!Bu#ok zwh-t+a1X{HP~D-gF}CGRU|t4O!oCU;^=q+*G#|9!VT+I?$~q@aqW|F4&|lO4E%vX~4<$4n4hmZeH*fw$l+dPa{pD5` zRCYncU$$}0O62X3VUc65=#hgiPXAf>-Vvk*E~!^TeK!H~0xPnXtIyG*2E2c#wN`JnWhv819+hSXR){fMIXPw28kyjF zjab%t}PnuVV%rpc&j)g_ecZ%!>BU zu1+|0wc_iFiYFT`etYFV2gvI0?L#Pi=6l>l`Q3f4(J?KQ0gsSs*0I7ynuK4@1_JWn za6Pt$#Y{vM0KE*>q(J=w>=+2FNUVp@;OEucDs3RKN4jzzGPN#|i8s7slDtitRCD(A z240i+Ennczu)zu^VGSHa3`*q;0u0r$04AzOkbMxwu#^pqJopaSLzbn%;dg!dOF3-C z9wxL`+IL#VDoDp!3Zf>g`Z_9o&!9 z+3o3(CWk809T8)R_EqW!xI%2JgvX%ZIs(e?UaN)v!;6Mo8|}KQ*r08jk1o>!!`wCq zK=bzwrp}FzPs%*mgJ@YYw5;;ub+;1H>Rq_{@j}Mw*<)8{XID*Fy#gR>Jx4uHT|M;l zo97i*(OKlq?Y@1a^cx@kZO7j~{Ng^w_`@eNkA8II!4lap9u~sMI?kqkx)OFAA{s~} z@rzmZd3pevW!TlMNwKR*3j%Q`7y=BW1Mx8W@WUwS9ioEe!2+1{V}<^HT!5#J6>9i> zw*Ty}`y1ZvfBoHl$?1Gi3`YMB%GJ>S%1NZ!0+R<%VX7-s>;h><7GsbxOxJM|7KCn& zhK4V^Yd~m@jB%lI9clvbf#iDo_LV;hD~%&-Nv_B-X(H)BqPnZqb`FElzT0x>-5t?x z;72Dy<4PysuEV4r&_%dJ_`#)dRy)l~P%W=k=}1>{XY!cBdIEU|t=48X8c$o4G064$ zGSZG2b8|CJ2?pFDZ;;=>#7kwiG!a^%PnaynauG`Xxn?*znx?nDYf zql!2ULNR(G$ooz5`FU9+rzd1=J5Dy930TskgY!}z$xpXbuw;U=nnJMzPn%33feFjh z{JMdd^?HBUH19UNUPwym=c|(K3&lG+aV(i9%6LSoHV@Mk@sdCQfCf?!F$)C_h}Xbr zA}KpjG-Vkuqp|%alu~v@2w1$fBZ5gIqNI{?qMoeiu7^#^zM-SqX{zR#JEHTu9ZqF_ zq(#H=BWS&quz%btyUk8l?uJ0;0@kuBppk0XO|WEX%nIW`lR{~nzAiTM!$&ASpIBDK9xG3D!wwNgYB!;JxKlq9eC(ED{d0X3PLK0a|Q%w0^>& zL+vlGZhF4x>#v_(srYu^*BkaB%EWTvjkiC1@i}+S?tjAO)RJ?vKe$FpB!S$$E4n7v z(bYq56gggE7AZuO5#bQ>OxP$N$E2cBhTp(|)K~Ziw)p>OQ1U_HB+^HrxIxY9{jZCY z{F=1!>$C5^-rxW0hMIT#-+diF`Sm2;m$=p0fZ--}QYPbH;eK6!W9$Keo;q&4*dARc z!B0>PnimGN{>RywM@4yFVf=JG?dfSx|C*g)_Jv^pfd&Q!l%Y^?XhR957z&X#qS8vS zq!Ln=wl;{NVBJu(!Hq<%QPfBTgVqg1i!tJE)VRbY#wG4cqV4Z~(|vD0h(h-BUEcTJ z``qU~kI1ZGg@NY$rZK2MDo)glsTi=otElm7u>nbq3Sf&@it?o%lS!gsiqwJbGQ)M- z7)xR7Qt1Sl&wwU}aF9VATpGXt%v-POjx^cSE^oZ3oLCJ*~NE^!=eGB1Ej3$oB+~h)@tSQv4M|D`KMXQONAn49s(>eZLJWh^6bd z5w;OxF=FKi)1s(7chlUNY)s4q5fve+*HMQLd9)$IuM7;sb*Ph?RLsy>FASsCK>tz& z!U*y#NccJtT{H|f`kho+`Gpw_ z(+ycQ=wBvz6fZDb?O`vTj*m}(wOE1ADpFYpYOw7&XB>+Nj6~9rBF)Lc&J%mQ84Uv; zHXLgx{;0UP{ni##%eG9pbLY;=#ZVUSFM>hJbLsMB=2O^F;A;*8NM=(wbisKC#DmK# z^f;i_ACc65j3$W?5Xd25ihx+`dH{APxF8L;z$LFz>8_CkP8#7zG>s;442>Sq#KCCd zkVu4TNAo<#UnN-dj6+XTkCAttRzP_uT)%jkdu#J=M~-CgXEq(^*PvgMM-VlY(P5}t zR|J>oL|E8H9*D{pVR+d${8C7apTrTy{<*%g%(%2t7bJfmX>GC_4Or=^xtOwyUVWqv zdv)q7cOYmf(}mY3skNy4u^Ngrsj=Iy*Sn2DL(ny-@#+18=6e4i{*gu}8t`Z`?L>LM z##5CT5p9l^0}|gKmlz$rBmQ(kNe`-x~T>(-2YM zvf^kEoF=}NQ_@sBg7ZP0#TlVnq(50hQvxGJ8OSSid6@HnT68<#`Q}fh)RHX1I@Q~6 z(y61g^2152p<)Ptj+gL|#fArn@ymom8j(sDJ0bY43S};p36-UcJx)50?x<8F6uF?u z3#^5<28M0MNR2nL8=Du-jJqrqLn?KcJJPK&xuD4DgFclXJ2s!)ugO3$!0vBkW5H980*RobYLR?r9q9&(V{hjtlCS@|a9dQ+TMAM(kL>WCUq05Vr+ z)$EKw$05GDCoVI-C%LmTxhDn#mo$tEyT*0G0_ti(E+FSnM@NgC4n7vPogMh-Ve!W| z+KTdrdWy?Zz2O^eXGU3>4+)`@2h9y|_3j)&b_k@5SbqVxUKPhONIHuq*18jvS$>_XOKEAa^>Rf`dW{9vf5rh#O5;-2DdAPSm z)V^0MIbHr_s1Tz`5xhml?MihZR8+DEWt;@#Yx3Vji4OP#0cM6|>{F3LL?81t^ns`e z=iyX6{avvJ{d~ys$b{pO8e_szP6#z`c$hv)7c{Y7NTtgzXsHTQBbO~)r`LtEcpIk8 zW@Za#9`J;11a%P0bcfOI!(bN=Dl%MYVt?kk z=w!@}Xwx&3i|}#DO}kcCo;$v)m97vgNsRKAU+p;5cNHrH@_Iwxv4I1#EL@oJ*JBvRfd4$@R z8%)y8uYgvbqp4)33nhhUz|n^AJ6kp!VEYP`DN{oP8sTTr86n9yjUo_ZN^yL}4H;?7 zcj;<>^Cv4@ld3W`98Dk+1@B!ONjjn83aSI>zmwY4Vd1tYom9UzN2D&wtgTl?n#>l2 zWeplzy}_+6)cXv6mnPh0O>$eEY^v|XFJUmkoNur8+jrJf#bp&{_2efuuFLGHj`Kud z~P&Rk#WEhVdMOq^c=3Nyqx8?XEgU6LoVP(`|Vrpceh+= z-?HojKCxI{{9yORn;RHWq2|YiH^?IM9o(g`eOmF83Da1;eG?^%X~N+|X@(uoub-q> zhiU?|0n|@c%VF(E7XsuC+|CpPFr7-5+lTH#t}KEuf&!OIi!h968hT+ge_}*!?F+RW z8OmN7#L@h%)V};r!ue+ANmD5U&WU|$Mf*-em`j75tE@y2ID`i zz$Y)g^ga$e?6(QD7%H<6ld}Z0WdU)aVnS$v+^eMwPKm_*6NER&3|9k=qSYg_taew1 zEj6f3@UztcT`7b{o56wCkp`$mjBlOJj36@*IM-@t&|IibO7!I0P`rfN8|U$4_C!~s zJ9C;l3$Kcp%uc)zD$<4v*ulLvDkp9H{2W^Kj=b?RI?_9)<}}a0eY@|&z8g0N4jgE2 zAGn3b^{iPZq%VB1i?VnB)O|KDAW6kOV~@^eIt-QI^kpz7)Ca$WnswX~< z&jR+@l94&dElMr{$x0h1msWZ?DI_P4<&g1tQx~?Sw_#j(;iE?%9zE~~hi;m~JF{?E zr8Qi8|I$V3UQBe(@PUu#D#Ug6OaSOb%Wv*$n}8;G1X@Hz1K?fgaSXV>$&RN~z0hzO zB$0WadGh6_pL_;*mkhush{&sJC}`zIqB|!JO~hen#EAE5U!WZs@!n{%N9Y#g+%$2) zk#N>L_cSwhnso_?$A}R_?-8XXBbwghuStrRc!2rR z9#Wz~G8GIaw570F2wFd2H4EV_7IUTYMF3?i(rI)@s4TOH%Gi*h$oV%Wyz}~sJ<|or z3T1VzF1r%id!?489m-#vaHB{ZL;(&;(5+K3J+uMDhj+UpwUox)UdD@1v27^&+Vm{4 z8_-TRm=K25WU$-jt10xE(OU$2cUr;W3$2Y2nOW8h=s#KUS)Pc*_=rpf>S@%x6`ebh zOG?s;Vhe`LW3R=wwn7E!n!`l>5aYtB9W$C)XuC0R?83u_8^!JG+gD#f5%z31i1`4L@#5g%B9eQqIlVrXpZZ%nM!dyy1OI6e(Qty={ePq8B%nSgQ@O-#Tm>; z;hIUU-t1yjN?$Vi_}geMHqV&4{OXLhw&ITt6tBN>;QHhBtJkmGx4w7p11eth_b;B> ziiE>jF0A9n5y@g#57GVesIf9Ge4nK$=GT)Z{g`pc$shlY?Xus=O24AuCwG=y@v=uN z#9S$_z->VlIU;LlKIEf`_ueGgV+qg+2SdKA<%3YXu!L5GIty6qTbw6>z2qNOCWmXF zJ3wV5*3S##tL(Yai-kH_oICf%s(E_a+8bf56B`glPnU-^aAKz_&ofS zlb+?}0_O7L-$Wwka(a(b!9x^YSn>jAhJ!;wd5h<%llhgl{)wzyXnqpDP zt4Cc!7XZZ3t-m_?1avd#$Y9a67K;CGeYp)#vg-RcyS;0-By(8eT} z0~33-AxobH;Us_15n*R7fleK{UTnK*&=V8;oB_=WLt`k@W22h5_1;N9bf-X=gsQ`oxi5vicF?0mEU#<%!2{{v7ljhQOXZ zD80Xdn7AUjk452k-{;1f1lT>6fS?AWDC@&lq(%SEY`7-$(r`biiI~DtWYHN4;!fjD zwth|k6QV()c#qE!wJ&gCjV2~!cOEIXhz99{yG-ieT4kchgk5RYU*=PG5!r8ep3;{( ziw}MjLbBwLvrdBN&>LcPjBFH^pkUNE>%9(*^iR*Hpa!3J9mv7jDv(vUi}>W8h+Q`fWIg7*fg_eP(t42ult!@%BEjMu%Cy69O~mTI$0Y2#HoP?c;A zI*eMZ^Nc>(Q#TE2+(3;%go50rNLM|s#BP1*V10_+VRjn)`MwOZqp;9dlb=*rlf-li zhQm5eNJ4&Qd^Fxu{UtGIofP1KTf~kbqBG+*=5@s)d^!G5-qnp$ug=KpyFH`rVR1XE zOjnLxxN>*>`rr5BIE5JkN^)RX7dJp$Jonb*J=<3OTpY{KuNbp}`NF1Yn||^p8J!Y~ zj1KyKl5k+i!ZjZ1)7b+QKJQlm7KPv@Cj@qnbla3y;EB9)C8LiZi_2*s9>ihEdrOuq zq4r%ef=?yA%jqC0wP29|jiFXVwnwDS0@4?*0}Mt^h=RdOYl>1l1Y`CM@z<3T0%1<< z*Uy75u9`VhLh)yd`zR<_EU-le=tZctvi0F94km}eu<)hyin!=#RSvb$80pjN+_r8M zdNskN4p&NSvcq^EUc-HXawoa%Jd+p zQB6k}f4UzsX;0_r+%!bwM6owE_FC8YIl0$za=OOTh)ivpdUg5j=Dvr`3kQxKeR%9B zR;x(EuDrWSlZ8NMFt4_TbUQmXwK`KaSV8IptyJdsl_V?5HF(*;lf(H z_yIT8{d*H{ZkT-Y(&eAyLU$0Ssds16s6*pep!j!UFZCi7|5!1W5@!(F5RnN$1A`Ul zp8{op%Cb_(+Mq0hP-IDq&M6r&L}@#uTu`IQ=~Cbl5b4u78KH+}kq@peA|j}k5K&}w z$WfycVJZT0!h_5iXaGD1G8Y<~zoyDM37DlgEGahasBDO30?6V#M4xF3|NMM13}gGK zu%!saSx``BzK*%7#pvIz3ItS)b5%hmwXz-!-9b;22)&vw8Dn+3NFqju$`*8)gBAxu zq)wj(`*epn#ntGnX>@q<8wX{e9#QDnDWmj=imC_*j6@}_B0dJL91hWSxa;gFhj_xK z&baZTa?-oHu8!(xJM>Xob6*3r-rF;_6t^FHbac!0)q6iU@qzd%@4mPg@rKC~VpP=CQe@Mae4WvayUIt8-ewutPBn8NE%+hH^ zM!+pmTJh1me%|?el09m|s&c#abQ3b3!RPst-|=nm=EIeL@~C~<^_ zBFLhN?}hjPUO=J0R*BD^c)P-gnZ!h78kW*yM0*_W2`S_+Nd(|M%A`|c6TK8gx$ta6 zFKqzwXwtYejxc?FxXI?yL^+}~!7wddJfjl5hLfSHS396J(h|B1n6zOG2C)HX3sE_& z?IRrK{2HI#XY~{&B$|^V3ac_}L}ENaEbXfjSPns7d>Au?f)=Rnhj9(T%6|N{@f(*f zhr8Ik@X*!f0c;TljvebOenewJAt!C^ibBvm#0x zj6{$rg#tep`#2;q@j@aFf0aZ;qXEHQ%v~b01F2({vJQDijw>Y+KhTrR(%K8QWEBgN@-7uxOa2#>wdSCio}n;Q*Q4~hXv zSy@N`A@PUGNeSAp38xE6$my&Y?&w0sLELX;1^4RwQDV%teE!3;ZMPTp-2i=mbPKg! z3=!@Mk#rx%Q)@4-y?GIm15&;0r^~AMOx)6;S(7E_&P7KW@doOBZmhA)LXf3ow2ksb zC?E`Q<#n;MDJlT$*m6F&b%0Hn*%A;UBGoOkC{75!aXOS7Lhj&`uSVDM+vq0R5pFE7 z;ie&JECJ#nU!#fw{0=#bJOwpNxF-aJMd>Ggc2ekaA)6}fED<#zBJv~j4pzCOkiSkM zqF)wuLWu8EGX$x4XskIsw{5#@NUEAFf0 zqH+efb+W93YCukGP6s?|obtd6SBm!Klv9frZN0Y@ z;yWfNml0w^CHi&TLROrgxnR=-GCFNAWVEM5776mr?@od&evQhLj^G<~2JmlrS0e$* z$-dww6uyjarAz1b8RA0#Ub&*^0eSs=$}wpoGBoM(wLGBL_`IlQ+d8k<;`B(*AXg3hLNcV?)sdPmwx%qg!j+G&LD;SbrQ+uo`NeEnVoG3 zpvzRLQZqB8HP6=Bw2}IN#=A619q_6v*)YVFSkE9AQ#KPlx*ky)wMMu=cBjf!YS-9R zBoZsNR(>G{hWQS=2WX3=o)ldbQ5BJ&xU-Xz7jyfPo*hLcTv`RgY53)})LqLhFDP#< z&l!a+!h9h38R>1!1M{c$T_~RM@Wz!37q+0Ov2rCU4ts%3z_M!$;N=5E9+HaB5>A7uoH3@3)0-0 zW8W6{Fs7JKK~IA0I^mad$FN8B21(?vQ;19rRoLd0=_AXSiG&ASwkXX~8>(eCtt?Ed z)Bui%XL%8NP^Z$Kggd+z8)8{08jI{28eF9r#zDI#(c#0y!k^+vtT%f!8TP_PtEbUp zuff5PDl4-vzL9ku#LGMhm_)}Ur;*c(XhcpI6=5iO80KQjoEG*A*$>IGCC6_?*m!_q#ub9=qZ^ZXv9}fS`&Y zHw1^1fV~VuK#@SdvG=0dfzpdCFFH&zyp>0q2jU^<$I#P^rG|LRBZh`}+wv$^mRwVu zk`a8#SNyJ|liHydWTq&ch(wb-!on46haxQSH2-c{IV6d&3(t>%$ZSYwDDt%8_WdIN zf0VsH*@VUSOA|z5gDCt>62X8C#z- z7VKTo=4I8B1M&=DFF(pp%JVAgYNTWaQ@q&G3J*(WQM_|W;F3rrB64I%=gJp+5St}5 zEX0qna6**Im*770Do2jOcQZpn%4;FGd_%_S3Jd-uvl&dnnTQY$GCCn)X$PnG^M9K{ zfV0Bjjs{p}iz>rJ4}nF}JB20P>NR+{>@?_8m>J@n=W`_u4pw_$kX9#Fb4YeJW+m*5$m~q$EQ!yg%2H^gr*o6* zU;(vm#HfM`D~AP~g%1qq|{Nv=QH<$YO^34*)` z&0b`*h{xA{hWt1@2WTgZ)qxV=$^k1(cxfgG{OA5IAfFCaB4#FTugCmG91{4*h>9o11p|Jy^Q*I1E{uz*uEr)hKDoLiCavIfT**3)M*;U$T5N3H9F*j8P?X!4!~RtB zq2=g{&p6h6Y~iD$#kY!A-#sQ~_E+ve%G!JC1J(;qE!uz#5GoGa4$8Kq7_y0l{iZQu zWDe8%m8a+oao-HNtiZ=o%%muIWY9g5NBVU54Xijn$6F*ML(+Xnr_Nm@cN95;w@&7k zEF$?`z!Rkx;d=ocLAv<6mrwyfeRxv1@^mzaaF9N@u+TmcIU3kGKNZi3hG4&$B!OgC~iN{4zhS+ z<*X0Z@BQG&?pxnif4iv!7Uy*Aa-tRtI;s zI`$DnybRxv<)hN6c{^^Oozd{|!ef1pZ!}!^xLw@SSKqllYw?sjD|aorcW=YJ4R1|k zq%OLC45tpRc=wH$&Yzz!ZNeBXt=FbeVZAt3fGj-GakUdAT@VaeoDx-P=7mpx<)@p4 z9w+1NjW8m&mvGDd^wm7Cvn;R;ZxWgN|6PW0KszF`xE9e5@8nd_jgtlVbJ1x#5@FX zCVjW9JB*W|4`=r|HL8pN@jY`WtufN(C}rOh=N5}Ekg9ieyHoIXF=#y7{o7$;x$GJF zX0MZu#NqT<(Q$~dCKcxItZ`=bVD4Fy868894(SB7lZyW25_YFbVqw1@j-At5-ntRu zVjhK7^Tx9s9Sd*I7=U(iqp#uC(HkI)%X)if?MBF9@vPmuH*Dp>+U(5aJpd;Mw>=97 zXayo!6Cl^%jyLzKlQ92>)Xc6Ydk9c#F@{v+{A4_}S(JN(WX+u=G2x%kQjwP4~|6+frQ7pp&;x^ulVJu;sohLf7vjohk{LGp}nTiUkH#D zu`?oJXJS?YYa#t~ATcqS{RyWl;%G!ppU#bC7a=#7qPL}dJUoZ=j!`oXjhfm4m9%)_ z!Vj^ZI&h=-N_+A8kJke&u6!_S$^-Oa;Vf>rbmsWBGw+JY(X&t&VVsG>s_@=H7oi4< zIo^+00AQRhtvW~Kd%u=W{d=e_@T$JDS&`8oAj&4x5VI-ySqDU{!}5uN2$vQW<`X|8gK$-VECMQVeUQ^< z{{X2=&?d?u0CVaiKG+7Kl_04Dx=T$pB9zQS@1JPMN#R?`C7_Bj72zw+hk(BP)+7{P z*}Ia(1R=8^qlr2Ys4{i7NCTs-eDa4s`ZnUIva};r)})_+EiU+pfLZ@|V+rD`LRv00 z9J^0)1ZyC0w1C!W{<7%=T`DHLk(5~4K&96kWzc~GqqZ2SPu1H@Hl04qjC`_7Z8Ny- z8XwjO4!b4Ey4_>1f(C?aKt@$QJnNmThae7{m{kzpvm=g(V5JW8J?3yhQ5|ZFbzSu7 zIinCy-Z*tWOu4IgME5Q1J33ITB=z-(1}tNwz6>3p2N&;eSUd4PPFiSLUpoHm9>M|Z z1Z_W@IY6~ptDJ^*vd93@7;cZESJBD(aQTOyO?YxO?KnvfV3>Oxd;j$iCgDHmrSX-^Am`kN(U4TC(QH%WN~#w*>2 zWRDPzLZurD2{o|5C_-qIW<<^j>|S~iAVwMGQufM!;dzoe=Mi--bZGFdR3-s<&5bwgj|-D*QlquglVf`53>F%^>L4TB2!wmFM;Oe{DBR9=VPSrC4cAtNy{bPWnmJWO!s+PD z3N{U)WHArPO^c6>9c~@Pj(SUZ9n-?`$o9^dnuE{@GO>t^H+(#B^wEuDkmOePqDH#= zgDF(Ji*`-Cd1>-noRD|v)DJ>c{tX7^}i>K(_3+RJ|g6 zsi^307H%ORFY`h&I%O7&X(B??P2(}d5B+H6tt+^q^2ryHGdLQ`>`)F4DMcnHFAND4 zURXggGh|F9EO%y-fm+Vcm^HAu=)YsFRf?4$|7O%h$Xb#d{BIUvcMMQIhWp!xr{V|!r#P83~(>MyKURMoDhs}DYJe9 zRL3R)b=IWUFf8QC!oLFzAXzOG>w=I=Bscp=CP+e&lL|{J)o=00gj^xRDKENK3an6C z=L`8%s;khq5+O1PZ3<^WBnKmQ z(Z>3qw_X=%wbKl02J4+hv%1jfbNVw18buE!&ddPVfQ_=LFl zis2pOVupw7(u#72b6Z9YcQGv_qo=n3F3z~x+;FwH`D#PM;~NLIv>$E1GG+D32Pcl) z-Mj3_sVVywow|5&>qXl1GY8S@WqE2IRn`iW5deFCIgKLgDX>NQ5Uwn?GEPbt@@<7? z%?DnD!U96Nnlek!MOm8y$D(wV8*4~nAk257Aqa_Nboq*lOCmu}0?tdoBl5AG~@yIzh1 z)LrP+>R_PMrb;nIQuX5E<|g0kx*^RWtf68b+M+|REU1U4mExsaM10ZWa$rU5^yyg_ zF&msUR%RfDtg{ssZifKm0mq7{j;M;k?ucFlv=`g%l4v@^3Z@}DFfc5?)-rxnYiv%- z_~jkxK{t(`xlq!mapRP{G9Vn?LPlDru2#mGd>F=L#IT35+sL6-7AZ@qN)rzA8SSW z*iCeW|NQwhl@v3qUr#2Y$&J+i70daD1g*&aD=!hDtC(#3a5!o5UPWltpmBhqlCJ$Fs z0KwOlV1mcoj(=B)jp!}(SaMsj&5l$zRR6;qIcG^Bm1W8-YQTQ zy9j5{%3?b8?$42XUxoiN1P&C&r+s(QTu4C37IQ#ETAEkELy?6II>5hGCmKJ8BkGSF;WMngTOp( z5*QJ?;9|!03X7J);e^(UOCi`I93W~R1VkxI0cELBkqUsIAY26|h9Ryft%Vd(3Zf|R z74cB;U8T+nB@@1?Z6Y9}r2wGRVn15C5EO&xHknXuhN_B|FS@bf1o}Kl{R!~*x6uw3 zmuku^JR6u9;?X+>PVYZ|5LK2zE;OLBNaO;-13^3_u}hB(4+Jn@)pCgm>m5Qb){^4R z=62b-T~3u(Wz><#HI43+L3@VNVF!IrG7mbcGBPs!8J zsmv%CsQ(lT1Rf?BaI!>4L-L61O-ZvSJ>ig?171E4@!(M+qGWYtT1B!U6x?r8D+8Yp z4itn$u2H5etR!$i#D0>~!RT1f6E;Mi5F2TDSqwyEXJ;D!tN-%G;?4@!g|pMCbyGa4 z0pguB?1+|{B5|+?*lb~3VX4{1?y@j1eTQCcXSp4{ccak>x7U?n%y)I87i%|U7}N5%rcGQ3v;8xc}=T~iyOU#dt@k9WbB*c-|W1{0bMQ$-Bm#EYUa)ORS2i)Fq+*en} zcPu=6=H4ei=|hkgQ)w*Px7V0c^RlYU$VM0ENfP zi{^Mp0+9w?QoB475`GJDuWRLAQ{q7lAnVkM>d99^ojO@vz(u8u_#RAauq?nVQ6+i` z)RW-=bkYT^es0<%H`c#O>(sek(n#gfY&?&$afjAuu!>%a__#jYtL-M|i^d66uU8G% zS0hs6WDlo}EgoHWDR8`xhQ#i3`mBaR3=?Y1Xv1b;Sg|uHvC*0zSLKXO^i*WUMXv*a z?~LmyNaJ`QJyXFvq`W0J7beig7N#L^NvGy@G&lFPeONruaIB3j!@KS4A1%Y@XzyaK zEmqnt-M@e8(pv}5otymZs&j}S%wuWtote;Nc^Je&b0Dd6S7Vv}1fVyKi2RIxlW{60 zoeT_FsgYJ42{~4wsj>t-r+5Wk93f5NpRrv|ic)0pghuJg^~D#;H-wH8#dW7(S&$!5 zf`EKSI3W1agpfy|twLUex5%AER%fS8L{g#fiI)ge(s%y#jm6whVO2d|#bT%;(3Frb?dg?V+y7PM3Nz^i>()d;Cdbhz*kEEPaZ?1Qk%^EBE z`$%j=6gI-Mj<9E;VpfIgYIFoX6{jnDvPy=r5J}rHTo7AVj^9yhY%4irR0|SjA;ypiKHU0dm^DnU< zf_XX!JXwVCt<=0@VP-K?2RD(QQE^F!Nh;J{NgF}bmMY@rj!CA+Id`YSU@&jvYNC}wG=BF}NBeQ|r z2~E6S!obRiF4b$)*Q=bydcWB_sK=d+1LF7lG8!FLzr8e~5aHx#Pn;(@IzBVA3b%?F zq-PQeI+GJRD+=O=i_*rGV(@u*P9CSmuv{3GoU`SV?%+r-xiVp&z;JeBsHw2x8dPHTOD353a zkwRcDGBTw3e-eJGV(rF%=eIwY{f(a?KO}Y{-)4pjQ*Nwy<39CEp)O9^G-2i^{!Kt& zT}L7|gZq@I(dd?DgCQEAFX|Ay1PIoeFbX4Ns?@SD6y(&z$)z$87cauG!C=tk)~F3; z7$+W<5zHxx{`^9--VxR)h!6dsZfpR!>Y^XXY^au>Fu1hsSl6k4viyX=M?R zKeXzfS8$NOEi(sN9+;cep8)&RlIvRqOF{iISU4tzN1N@3uJf z-c-GQX*eExHj~Nbux)qOyB&j+zl_=qeqUC;fki_*W-hoH<|D(8gJD(`ZXxT$Jg+2k zT|{zpd{0bKL4R^xYck63v2|&!IpuYuS`KaOIy7T^&c+#S&CMO+@W~0e^5|Cafk!yt zUf;EH@v`f?kt5xA@2y3bE?zpb|EgQ=%dwC8Eg7!|CAl@`4%CGANhJN$|uFRHAg~Bzb<7xbPiGT{d_^ zyi?|da%l}Q5~0LW%y?cV9*RAy2%3MB6C!RRI3S&T>PKRK^d_vBO>-IG{+pB@q639d z>6Rh*r^OgAHO1r}RO`LSUfaULWTMC*9r#y`ShC8k22jzOTx=<@L5*jK-OUihsPa2l zZnImh*r^ZJSW7+ZRMDa1R6#=bph?=vm32BZEvpmk9hq26^L7-pluHIF$eA-PZ(I)Q zu*-3_Z<}!zT@3=#(EjM*f#NG4_pa}~v+T;0Df=EQUc7kishen$?zxQj2I79Jrt_dX z#mI0jhRnZY8p4oNAR{FnXzm`zE)_bBz7t+a4Z1IR}ry+Ho?P)3h+dXj6vVAl9s(_#)VHn z%o0#XWXzbPO;A$$zf0@gI*dPcl`KfHBI4#(WU)|A*13!U*4IjP-CR^bAjEKEsva~k zQdf$Nf}wlRouc;n)qal|MSfJXY8*B84D(J;p&co+d{4wW&rXV~s>Fo;h-mf^;!gKO zcP5;`zM~#0uhA#7`vOjgS_+i6G2L{^Pd$(-4@@Vf~ zh@=mWti2DIwe{ZpZI`Kg(XauVi&)J{6)iNHjtnyOK%%II`j|Dv+?WlJXA<=Y%_p zE0BP&s1B7>jtFfCV=<=3f@J*&1Rj$gM6SQe|KBes&Hd$qf0xoj-8!0Oh>mOEHXvS| z>JPYW2$@0NwQzeux<*03Yx1fzTCYgZs4y?Ixkbsr;&6D7doY{527d-?(T1cXWZ>(w zoEi4S!ooPwa>$SCVIYzfSCG6eGrFRPaY$zx{P!KX>_rRKJH9*zcZ9C=@l&sYWFc{GK*o}RB%VNmRY;bt14Bw3`>1( zr_<+fnbfSZWoVp*;?3rP)(fE&iyd6NK^LQ|Sk;L+9bHjSa(W#q4$1v#v0bsb!^2(I z#%(NbfdQ1hu_I?bi@14+$~8=VT-;FHcZD2sVau&$th7;QeE_<6YB5*VTN9D^JAQEg z9<0FF(R*h)Rn|*%hLC`!0r|d(I1@!bJUKMR5jr8OV|zoJh78bVoVdl2P&N!{A407N z5rMeKTSmBn*FQu6lrlHe35GiKKhaKjBn)yoP?-Z;lx|ePBYda>Eq4(samY`Za1x44B6q|J7(ke^lJ}sC~<$D=V*G znbo^^*{r==Zywpbb;H)1SX691^VVB?_8gq~EIFOLj?xME`vP%t!3pe5NSjy^kV8UA zUG~|&NyWo@2orTW5#Ad)7|IEo1SDisGLVCX)r-=MAScQlrO-*03A>cJp}d zl8TnY{6h?I7fzkgb{nsXzTyL`FRVs%aXnM@6MI>Uez5lDhPO6MJh*=%=2Pc5A}k}| z+8aF7NVT!z0<8>7)4nscb345+*#DUwQFQTC1o#< z(t!{MWt~tM4SfEI6~u9oM~Y(^gvcc)ykHR@7cqDuBAbgu1c|0+W`B?9v-ZiNI_53_ zC&<+bmPG;h+NSSL`_BhNK=?pqr6W>ngTNa^?IcpA5e{~0szFV@X9rR1m1&|epkqta zr0<5Wn3CjDdo>2X5iwHoz0=?{Z)bH1_B*kF{+?KqfQUn3b!K8_+`8(xgt*f&iSa!J zu&reUm$CYe7G~Ltf6nM47B zr)=20YwJGX_sLr)lhzrDuo*oDw09=rQz*oO5rOzhYxoL%*pERiI3)nC91iXeer~x@ zaJR*7SXd5R{j_zQk|trwNf}FW;Drwn0r`;MQ)V+aF!Hb?esM-rwK3v-kRgDZ4&6v3TvSU3j@%hH8xu`9b3G>~CH_FIjy8R8qLs zWOdd9VO{KbZ^Ob zq0A9V_IxGhLmC%;0k=me6Xb+mUAVo^h>0;&Yo6JH_ljP@6XLOsgc<)oH0rcS0%b8v z|8I^+HW5(6jnk;f;TU^bY~Wj1g28^UVBi*1>sa4`SPDH$?L+>OlDOV(@CQp%^eShK zp;SW$LRxolMjZB}nnI|I;<6L%A*mz9&o%-xs^s|iw3w12mT(i01VRDxT5HQSs3(vd zT1Fug+cCd6y{)gUt*vhWwJaP&j<#>va{bP-WxwD3!Gqn4Pl0B!(6*nc`k8G9kE6u@ z?mSwcAT0X)4Y zC@xr1S4}ey#LMfDfIS{8jTFHIi;)mE#1FYK#NWLdJqsA9exHBdpzdC+rd>o%WRl^DW z@$p3vtqTxyU|e_@F6pSN>2o%2?1FE-aryZ9c^yor&K5TuD?a;C`+*C$+Gn+|Tz_=R z-o3jPFFv(+>+Vx$Hrzb(*4l}a&z(bOe8u!JfQ$2_&Kd*FVbg0b{_?38e@u<_Hr!rb z1yHMWh760azhNtyG$IqKuZaFJ%tb}~a!6_{*`Felgu0B-+b0O2JrT|e-wKez@sZO3 zxJXFgt0>(*Y>8(?RqhudyB%n9u;2MlqF@Ha;%6igwh_j%U&xX=IsG-7!vE^|B*MMn zh$%*fYqL>o2v5!Sy2_SDYD}hV=+!uau@+sq)K(9kqS4^2XNGmHNiq0Y#x<}L4F_n@ zU{_lWertpW*?^siKC`v4CZ#dLlSR8;ompLl_Dp7HXC~C%PB|vy(h553V%hn;);d0& znK~r7yqxB%&CLrN7WOp{H1stbXt>qezJBklUPe??_TB+JId$dC$^~h?s-KLHcsxpvY$k{UxUe-89s;)Dj8;G8%xAtd1tLkQPNuS(?Jx^o6q7 z2=-4R1Il{)=@bfoE@!FH=l59)YZ?t)R8D(h63e%!$yFhf)mT*(4V=Z{h%4%^ z>xTza&{>{Vo|cQETvuz?sPb#&>0Q`|FfqK^(Ka>j*h7pA543&s=+>4C*d8rgxe|k& zy?1s^S&SUe<%yR!T)w>R+?jKrCtO*t&m1!kvw?R|%bLVQ1mJ|`kj5CfEYU`i)GGG} zz|wC={#HmQKNYH+B9_GoQG8oipyE-;p+urdQJV>!3IThSyNYl5l+_T0NGgZwTjHF6 zqA5)cSqTOZP_n2g&;G$TM#8q2%=I&InB;`~2*6WlK+yQ!<>kFoW6VcD`?EG1_hIRTut7LnM=TvwBiuVUwum9`b=ILtebmijvr z7W@)%4f;aaNMJwYhri?2!cLGIOD^=;ay;P5QE3SQSFw>qmijrC+Q=h{YPFmYX~fCn zwIRZfa!pBK6t0{ySZ@-BgACIdYl%RkG6;TE@y}Hx;2GRwe#9{Bd(VSve(h_&16zc; z_@l9iYoLHm65)XS*GD7@`)*v=*j?j#3M+GaQ5n~xfTEAgjxy>@T1HhwLtRSUr2;@P zn>ik8m#fi>!Ooz|H|VfJ^|kw}?S(aFv$LkAzA<8Z92>Zv=>Gnib=93@k+h=tY#xs~(?Yh?=Qp$+J9eP&5w?;{aQ9B(S+*N2Ys1Z( z`?sDUB0rxzdBq;Ucbu@_5EI-53+7H>RxPceID(CZEB8D6Z)K$n)`|4$zy0k=WW&3rk zh!6^`&g2R+hr^uHc-^jUpVsZRHd-`n8k*f^Lq0YY`89rXBBqAUxWYnDmBX69GYda3 z56s2Ff_10?l?*4)9@b&eR#9@ej?NH6u#MNc-~r9gS9xN6pP7^~V?52Odk2 z)w}-6`Y9{#T;I2E%7cCP7OmZSasRgc$Iop$E?y|_p5HT1)UswS_=%VVPMY@0BvIl& zi75dxu}|O_@oPkq*!mQ=JbHBbLm~IlSqpzr;H;;Io*VIfDSFrN-kW4Ynq;9s@x+D% zFLD~flOsR?!6EsX=R|)-`s$1D z8#o~U!x0hf86$vucqx`g91QJJJ(t!}y()mxS!56&1+^~-(p73SrlfScjqJ6#e71U@ z9W(X9jEod(eWL?5>7d;okpW>2BrCr#vk?=jIP~P!v5#94-&qlp1_Qog7)iP0mO4a9 zTU%RlC8>|kOW!zu#{6b1kD3RLAz_AmS^Me(*MBcE%DAZ`+q-M)T2>4Jvyf-H{4UxW zd#HL}dIQl#YAozrfZ&0ACn0e7qmVk&6JUFca5*3(b&iMJTChpwl!*5o#+@V*W$#nE z3ucE5pLpf`Djhqrmk0z&YXX)cU~rSnuHc*~npxuV0<=h#1;>FH1Cj}i0tqwO)?qn> z8w=|zn53K#Asmy_f5`#)UycX@4yaaRt3&pdjr5={l^yj`ErE*6W|U}C>zodwM#c1m zeRhXG#h^*yPq0)-mF2`uvc`vKR-@hAD4UZ`s*uJy@8}0i}-{Di#E1!$?33r#hwlCI-vnERTsnaZ?Gf4 zQYM8EukLAOuMM#iarpv62b&UFR!GlUjs~INyvTh6m2GcR{p00Lc6ZP;659j@f1sHz^zVIN!M=h*}U|M z>L6CRbn>=9X${qvPiHSpQQIsAv)`cAXslGd8b_hi8tqI1IWdciVIz<)5Bmrn@RQS- znC7kPj4!AtiHC1eRDi>MU02#Dz^toXb#uB}F-JJmah0<7!-ahVj~6!dAsujQ{gsuo z9${_I8QJv!L$JkLFD=5N?cDw|XK2({O~+bGly&fbnD#zfRJcLFmV0|Fz2Vqjp9IRn z$b~H?fN&AlU_?cmz}=!)*eg^Z(aRDHp1n`$3`KVdd|fzq=jYdG>=})A zh@>bl(jrz@MJMcx0nifU1mo3YOjk>a`cD_tjf;g$iVT0wwHy$}^zp!pMC7crB8c%n zestyNjrQMPU$%Y=eieHkAS$=$;ytla$AN19wr$(?h%GToxaeigBq{*glQ4>YimBXK zCWddrlw$`L*G(~Vp%evyMS6z5Pz;Y`j;myKLV{E;qbBk-8M~I}1ezWw)&J5s19yls@iT*GY9c@8*Mfp>(fapZ+(5C-;m;ynztq+ zqYxp?Ms^VrlM<_{*hg50t)!?f_E$y6A5JcaN$4*?{kz0Q4QNrT18O&FRR)W#RHxUv2fYrPS*3;# zgpG*F0I$L2uxwAk`pCT9k!bakLOhM4OPc6GeTIf)XJ&L52>V}sO0o;a$V73 z*@_<5727(lD=#PSYTo#bx0mNJF`WA0v4&%3Zw*{Ia2N5Jy^IX^p7;Ru8AgU|P_g-W z`Q{nm#Z|afzyzB2&Uxs)3()Qb>P1dOIzybeo{)G*w@$wdk|E9W$l2WRaM=`tPsP!T z9Dsje=+=VO1EwzTd<0orNgxD7+Cqs+NQ;!)ivkPlFd+pKN5yJgie3_kbRnFN&1@oY zKpk1pF1O?#@&cP8$EkII4`T8i3#vc`g<}(oGCdz z0VpfEXt=egB{q#QZq6J=RITGXIta$uv$u&z8}K_@pWusI)~}qk^7m}(962&&>+ZF? zsC!SXC5fCncl`BL__@q`W5pXY=Ph{Y{Y`j$es|g=N$I2zflg=)+5AMdS4`8yuHv_N zeDXsKvyj&(>}V$8iYX!Ski}14HWe=QFJBV?A)?gEv*eFz4p4yH#qujY>G>gedmNk5y{fl>6p!sfF#K0I3d z@r93j`*3NK6LS57Da#h`Tf6rD{!5o`PMrMn{d-_rOJ|6nJ<4n{F??;VXuqSa0V54& zn&{8)I)q9JcX9UjL~9)0iE!E2jfO=f5qT8=MX~g(R>HW@P>3C#E2ag2lz#xCj5aq@Hb@LQ$S|X0>bBh>?=QfibmwAr~Z!v0s*De zqzOa@-CA9gB`Vw)>8;Fms;G2Lay_ZE09po>-WPBgb#52t#K;c#3d&5BxH#aCX@AwxVVCZ9YsRztzcwW-hx5#HL+j4x;&?2 z>hiN!IVER5x==hYqxjM4TPT?IZdpI&4sh?0BfA%`-G@xh%tmZ2e*@%g{ zObuz#rPuO7)^K(EBc1+IwNrzyI$r8#M}3AmpV5e&p0IT1_8OeQATJgsR@cksAw+HEtBPdFfqwkl)X;u*0JIhwQ39##{2^qpPp< z(iYD8VAtL$`}W;jeE|ebsS%ipiZApiy=#2|5RV&FPq=-q14~Zs+n4_|PD45rC z@+ey&Vn7l)9n@``UwsA&(B|2qqWm>7$oJT9gcycctuR|j>Yw{R1A;WBFQCKo6IByj zk5pc5IBxf<$jExA*6g~u!qAjcWxEYQuQ!Nx8T>6gS5q8%wbidN*I2hF6(-e~J?8xS zLXRgYqpCVCIx{~yE(@u@oQ>RpMQ!74u&;iVUW6$w-tx-M&hKc|sk113cvnyu#p_dff#hNe zR>dPhCgX|;)esuKTwbF?A%Vw09Hf7jZ7IHC-W&RRiO1+QgaZ(tX$VyoY!;SJ{=nS1 zg+-m0alCUEbbw5usv30^;#;P$)JJKoX0x z5SU_kA_Z{;H53p*NfcNW4HPvMmBh2V9ipRam(EP4};I$DcP4-_4^s8rY*de3rtdV=wFDYYIxH0>Hc zho7&9x3^MZ(yAQZ(Pb{3f-QTTR;SflG&=au=FlYnB%RreRYjh-MyIE@22JAB*3_Ca zl59oTItZ8p1l;lrpjpg%_aY#$KI&3kC3d)JoR9m^qOq%(L6vlC+svjD1&I6|`t&?{ zK-bzY4u1j{_t@@jD`6y{UWi@v-*$ZX(V8`~qFNxG$ZHUBm$>D|#q;P5=6$q>BzC4* z0JLZg1qJVx!o=`M-eo#=xs2SIg#0d6xbA$;&Bbw%;XFZmf&C$$6B4=b1W50ezLXIe zp~kL)WQD*vNu8n_;df+b0637*|I>%OzGx2?BC2q^=bLkwZ8_W?Zt$s?Wg(*F?W7Ii zg~FW57OnJE+BGJf30nk%z{Y-)=kTBA-$f`scI8w`vzI4SsWOx|JtWgR(I>qt=0 zNKhnIueCS3DLEtRRyK*9T1zOO@YLacUaG0Adt8@RdbRe>v(cJo(_NjkBA*r%^nb=i zBx~1H*0lgrK&-z*yJ*%gE-oWk|RP!|8JhJc`9C?{kqS_xo^Vx zH2H{?g&zY)lL=W9mD+@$hTVGrc(u}rnIyfs%VpQOOl8sd88Uny2sK3aFk;k(SPmzZ zY1rbLW2DN$t0E^Shlm6w=cG>Nz=+OC#UX)dRwkRn@`eb67h$SnA%f-6KkwYWe*mfR z(WhO{Yug^Q6cjutICJzt|M?BM?L!FnGGGKLSF#c~DGnm=aD|BrM`ZsRT6Hcgaf`+s zjb5EPOQws!q<#foox&GeA|Sp}`pTV!kuB5&w@m{1nuo}U)IMFHOy#MGIV)1*l2izp zd@sf!AcKh}FNQD-VhFH!hy0#nh>kMGqG#WlFCmG zjKYiV@E0EHIdkUVeyc{4)Z}UR@z!b_TwHNF6RF0uj%@B9 z(|XuHkg_+&+B(9g$w15{Bl{Bi=nikO4+#(|E_62WGF<<7bty=>)y2g%2cC?<{cKC? z>S}vFK6AWaEA~1YP8@oKAkf_`l6uy;mE9#5wqHQ~R$O+_asUJW^EDr?fy(Dz;%=VE zpOC_re!X7w1Asa3{OV^s%h~NoM5wYjAZS>+om7d1%tPdZZ6Jq(f(z&`DFwq9ag#>w z3}PYqg9O6Z;N$G@t1vL4$#A;Oh?Y}`r|L>l!GvS5erm`6o zaCkhN;biey4&T?kl%7g;xCs?A!$uo7mp8~>ixTv^(Wov%o8McTqKpmg(d$y8)jiDL zEtXh74teDFn8F})kQLG1;4q%1uqKWN6W{D*8Oy56%c-*VW}nI|jc0Ax&`^2lROON4 zd&Oxmc50_<+gRgHqx6S8LO*g2QxK`9ZsZQ7R*$05TiobuJxw2nngg9St5bx11NbpMVEJL=?ae zpln%32}WCXDX5x?J3hyZZ90Q}61vFnALM+9`lZyogZ1250Ij*O{@dqk2%7=%RREsb z==Adag=ZX2d3#)*>`TJ+3Ku5oe&K3wKgK30ik>(YBM!A8R2}UaFdJ~Vr`Bb+uGZ!y zg__~(kVTq0S_|>`lrdJAHD{y=jaY801eC2=tKSO9+}T{db8l2)^FK--gI=sDt-%lX z$&oQORF7L~r=PcVcFufu{N~Z~{ryzE;N*s~1m}P#&_X+W5uqPpA|gNkVstN7h3r3willnV zT_}Ydq~HFIhLBs1ms^Y!ISn3J4GWj;AOHvY5Gd-fJw-z8{dXtw-51t>eQ7y8z0{rx zKTm}hGe(t%6GewN^$H&!seI?~$=3)y9VIQGr_n~8(N|>{Fe(hX=pv<7lVaCtZ2nra z)@+7r7+PkIofNbKERjH~wKW|D0pYYIr@~Xu%vcr~5RdmNeXit9Kh!O zaZB3R!`jZ4nXQ|~Vd56tZ0tYLIMvSVWC~zb_wI8z_Tv$Mg@NxrBC-mk97{v-tRRul zhoE%$E+8B>cVaII+Lp~ampuJ6*A{#ZAVFfA%B~7ib&@qd{Xj|nEJG@Ci0pQ;n!-q0 z9%(*^2>&H>5R@Ot1D8$qgcyA?9%GEmzmEnGx=i%ySnJb>&<=57y@coM4j&;H5|2H2 zeR=|Aw0#?y8PV!jIu#~xLV906AP)u=n&bd}b;@X`57tl z?+6szJVBJ^BzFX&qZ}BPlao4fD5O*rKH;z_w@--I~NrQfaK)CnrVim&a z5xq;YIlEiB5HP|hjFZ!4K(<^2=DD-#fAtQ+Y4oGK@<||ESTE&aGxB;kX9Eb3x58_q zm&yklT!qQk8{I4ucNU$YY7gbF8qSVRjk${-&R}RNYp^^r#cCYpSm=i4B&w{CAWLjt znK>w>DG26gSkr0lEA&osl20cm>`Wk|->NQ8D2GMW92Jqc{!%F`+|`u_YU&tf-5YzB z*3~(7uk8VrE}J%->EG~Z14UNup^J}(bD1z+SV%Ln8}vKeXnd&FFg!uI0vZMYM%uA= zfz^tDfLnW!)>#<2?vSvzAgy!tyUX7{VRio=xSwY@<@LDev09l&9$neq*5;4Ld z37tPC95y#5mGugDm3#0`3K3I;H)K#F$1)!a@snIwFX{P;FCq@JRdd6g_)H2bdX^4V zrad-WxGmgUYnnaV&k*P5+!$_m`6*l=9A+bnsnr_FaM`gLLwbs0%R;p&7T~1Xz>e6Y z(7fO#y2H@a;Pm92$*>VXrKhnG5k3BjfLjqY*%(XKh@bl2#3u(3?>&3z+3mB?b)L0! zK78I;HB&W%=E>2UjmOXTZkj+Z-$eDY^u^+<;Q z)9-%yTYmjiwD z1PM2eCUMa$mB|Msns0l=y*bAdw3Z7UK)si=CmL^>5S@pH{h`{1&>!;rnmpQcdq`|_ z3eXcQCVSYYn=zsavxfPj2^1XEYwb%7NG%Urb_*fpof!d8M5?P3ORG=CCzdwg9#To8 zUVLD>2Cueh2tq9_z^oM-N86ktnCRcP9U=Z+QPQ4^1AmkBrn;45AaKfq*H zSH9_M^YX$|U0l0oL1{A>X+>B_sl1e~(78@;mknP81e-$9B@MM(dWt}4=`BSemQd7A z@-1^R+eEBM945us4pJ_qkz4#2u8quo1w8Ttkz`;Gh)kSVwftGK1#>HD z1nEUsq5t})Y;4`Og`%;@g@;Z6EjmLJp7Bx6Rh=_VZGFd%=N`f#Kb6T zk*8hZwaAWs0GZr0pbU4|JzWZ?X^&bB&SAjU$nw_c(0PXz_GmR_g&Ip)k5OYWC#BFE zmifnY#0CZxF+1@O?#m16#S4{4|FN%7dd zt1YAK)LU4qBmPd6b+ms&|M~t$?T50uhlaazp?>bZumwl;W8fU-Z~O2%ED_X6X+?mV zW1u1j1Q$V8hmzPuTuz!1V2rZ3cp=v$t8nrN3qNiyk-d_Mh)85ocR@9H(Fby1#2ZgU z_wj8ZlmCQqqG-Y*phDA6KtTVzB`YvDKn?&YYcZL-lR#eLgK*QVxpV0d88Uv`XSRyX zI#vlA(adry#ALL!0=>(;^AS+@!VBM{$xA0UUh1DO}lSt7p( zA__ZN+VvHXMIi4mgO}!w3!e@VaUge81QjH8tSk_PsvuNO=^44M_(q0Z#O2R!fHpT9 zv5)~Toj&{qY5X~JRJ=Tlc}0Ss4n!<)CrBVK_xY-)&zxVxZS?lo=*cBD*Wj_}7e0zml_ECq3S;q7N-n>C0L@}?cq(x(F8Ax}nwu-xs;{oQbL47q+MQ8w4&r6F^;5n;c>V&ne9 ze*v8|VnN{9iBa0UPXc)b5qT5!GIRq}P^r|csgN);VxrEBw}+Np>xWgV-eq^hAs5T& zSE<(6Y_=3jAyarbxH_$+Pjfh?wXhI4X-HmQa7CT%g;B!o>;{-#EzVr5uffuci3 zc_Mnss0TDe-LI* zaRm_)ez8I1K)gU(35|qX%YB!TKHL-^`D5rX(Zq;51?h(^{a={sL%S9O7m91KBpzfn zmA{z;^3oqD3Vz{U-v;pD>p~kI(hjC!dLrcGG(o0vIc!F|?|}C#rD=c#Rf<6$n&hhq zErX9>Fqb81LMU;9;x=WYN*45PAzEnFpU0jO*O$$WB&hbr~`Vp0bXgJl_&U~@^MhVtO$1ZH&zI*MJ zwI6PyUtfi=9EC4XhXvnTKwf9&3#^vcAndk!l&-l^-s8rXF+6XjC|ik`003-ID99#? zagnGpNcs@7LvW^&HU30|m|FoGWz-@*tINeX3BoNI*2$e>9*SA<69qe704#{#Y&_drycYIaPhvpd)tLABoSKmzftvGU;5FG z1^c8ily-eH7#u{dr7MsX-im|p6DYN0k3=w}(qetcBbl8vO|>N*IBOCXv>X(2y}X2x zBkd!nLmnz+juinFQ8b}Ja|be31YIp~MbZBO{zC$JHP6@79tORqkH=h;e-|8HY%Ln2D{pzjy4Xc5p>X&_4H^g5I#fAtw|wyBE8sw+IXv# zyDHfl$g(iGDLG-JIx+xOLc-qchAHSl(aBB80sZa_@w{o)Ok7dPpNG4k%c=AY_ww+yz3!n>qE531 zjXzen(Jp>OmE%a#d#`zO{`c#K;9NqIt3AA za^BD7XrSURuj(Np3UG`{bZ9(g#f68fJY0BB(YVj?Qmehf4Fj4u)RQuG8Pf8%ReUb}d{Q@ZX zb@NFim@pF$3at-Bp%l*g0x0Y51-sz02BEms!%cuvMORJl@Scdr3YU2~DS=P!J4^a+ zUSdCi{R`hQA>q!VW08C=%{}XnAcSdB`gqQA=vYq~OnN7Hhd71ZXfkS*(A(JHT99Wlrf8E`7cx8vO^NY`CQ=y7 z2tFn!2e;4G*3ZsBqiR3ezH6%eE)~|ok{jEPeX_k|-8KrXZKM%w2Nq*>&(wDZCaj== zzQ>J~zges{Un7Uekda|5<(4?T-yD|*Ty~o>P6ZDk z9P?--;PqM$m)fq@D-A|;#yxaJYOT#)G@wgTLH&#k2_!JV9UZ|Tt&C9enmVlP)pI%` zlfx)^Q%{$lu8xF<8-U^>vZR^K@nXP=ymjU6nzTwTt+e~KwP$DA+MZTD*if};{LF@e z{tYM2Uu$e{92%M$9vWVVKNuRN~;^X<>lQAE)?~;0^ zuwd9=Rf)JmJ$H@d0T7@};(3pmf`E8)f5=##eq7q}uqOsxQB1gVgriF}aIU+wetMd5Ln7CMcHoW;#{&hnn)qd=J7rk^t>TCMhp(|Rdf z;Cy2>etJtvGzKEE1K=FWEJZ~Iv!x@+l5UChj}bfd;9!srt&_>YVUbOdsW}z5A_IDN zW>zfAtN?3$DhlDOsOCfnJHUL;KCS}|G(GmTt+wT9+r!Ql?7<3dZW=$)2$AY8dJe-Z z*B1`sMTK)k_l1wQ%>Vex-|()ueg%RXn?q#B_v5aa|3fs_^M8ZTHPtBQh77e}EXye& zkBAtfnB4v4`}FO122)S<3ak%fq>sJ*768 z&^pl=xU?)uJsNFDpcyr}!r-vOv4z+fwp#NDN>E>F7&*6%YMkKMn{RUoPR6)c95}>%Kk=tdcCHREzh`K9rVLU~K zmqwi7I=wiZBPnCKu;AqP;Gv73C;Az@I2uwO$Yh`PT!y@ykCPNwul)Jq*Ayzca*tU` z1B@?R)NX| zrgsDe<5`g&ls*}mih4ly&g{%vJF6oqAhsbD8v#12^c2&@%DVM+X*I=ZqoZuqTb@5e z6NuLXp|(kH*giCj7Usp0p>C{1E{GY`x+~k}qn))1qR8Uw0JQc)aNEE6dz%@cOt2Wq zCx?iVFHs?nh_0EWVb)5*1|=SZf>{bz5tkS!L?S_}A^F5z3v*=nZ8~$Aw(wA!$v}*l z!hlB6kvSP-fY-zdVUUT*tA8l9X3v`A0f5vaZjLD&Sq+U^A7}IPQrk@~1WJQa#u@f`>?7V8=)pbFI9fiiCg!>a23Q z!itE@_y#o0PL)R0RFc&%-M?CVXY6Wi?KD}WtLq^#89y_A;zWOc`}u3_cMpMJ%mM>{ z14ZRy3%gey6RoCItJYpe==wU64kB~C15YZRAD-L{-T`GyIG7l>Aql_YJ$VCxp-9{Q z9{gPKVR3tb!aoEhB;BG&@QSaSlwW*sG&m`wf28(_2Y4cCG#=<{Z(xf-`T&&&zWS9F zy#GFD^uu)$83%=r!Knvstp_zHD?`R7jC>6yoz3a+)w&D=IsidEwpdM(1^c{088H^7 zm_fh?GJuD1*o5w)HMt3{dZcxk*mzga8p3O%S4V}0y8^t5wwA7fttg(HInlW5=%cJ%!*|73y_*+&s+Aw_ra4@>coiVV>%g35hRIVhxB%J`Y63>x8$l-Z0W#NBto+x&y z&S+&s#*YIc)vn;a0LC#7_+Q0CB4Sbi3i9?;nmp%%dr&AzZx5Gtz~*f+ zXw=BiXwc&y=!w?Y?L{dm{;@?xmX40RyvbPqJO~Na;6gT3Il-yD3Ae(s6Cxv%D=5x9Qd*|wpoYW(Jgnh&cfcIU8g%_$e54j$l&1HOCTq_Cg5uh$a@?V zx)Idhs9$k3z~z}kAsBW!D&kcyv_T@UT$qVSbNuSpQUeIP`k;h^e}<6Ke?SI7#{>Pk z{Qq4%Xh*&r?&n11K{-q5)Wvz}j4CAI9rkG79v>qoL{Vha7?ieXR8Izy@Xk}R!Zj2o zY0R-5Ddv!vJUE}`SkUi*L128t0@IVz!+Nd4iVom>BxmdtWEPf3%?*jC5=(IhJ5X8I z{J8kQlV@pZn6*pv{ z9(t!A!pj;{9158DA*E;xYKNsruMcI?s}@JFl)Ts=t*$UMw$)5tH|Kztvqnzl^tG}Y zN$0x4TQVbHXF_ClMpSl1JVy64hNq&UqMBDXA3*M}2HH;TliI6KyJ|Tloj1GAps>Lb zxA8>(qhS;TZm?O;Md=SMGq`QLx6G&Pr4xZowRjE7T$CNq+1UTSs4Jg@$HdHU$;4p& zl6fMpJnuaoS`p?Qlv?s0i__ zz9-PgwK8pSmb{ezo2^8Ay7&<#KoC_5d=ENb5Jo!QIEW%?emHzNKYdmBmx zFNeT&^ZnZdWVCo1oxjems_ELUnX2)bGiT0!*8dsydDu~LMoNZ>I=BI-p6H~4f}+YLNp{R1QySu} zOA9TN41i;;TLe(XDA3r2Jq>&W2n24O03w)=knI79l4-vC*6-yA@f8@zw|FEdkaOVW z0BT`L{OBvZ~tcZlu0XyTft1Gerlb(tYmFvBg&FdQ) z>HsgMp>jPvI*lw4)5Vs8@l6HeTMJGc@5lbAf7dnctQ)!T)-NJ)y>Mm8Hc;2Jhx=AB z@?Ev~gB?3)*cV_p2^bzdUv^cLzDSQy`Z8n`$OCU{{ac(8ns%BJvH};^Ur6t?-(-0f zfq;eND|Zh_dCc+Pu9BG1nxkn$^FdfC4{))cc>C?oAs$2oO(2C0^9o^8nT$%Mx2Hpa z&Y!AG;ioQ(Ry(4xs<0&u==cT-m1t&#(2TSmJ{;Sdgf2iF`CC>q0t#LC;HHQ=r5M(-dN`_Hu6=cv%Q_qYfupK0860;RvKM>pDm zUE`s*up8y^Eo?^6K3TO5#~mRY;$*`KL4Eu;KWEG+HtQ27K{B$fqShLuWnjV1Ra5WI z?IK3bcuO|1#0E4E{}JhBcI7{N=OD2V)Rp+;iy*H|UIgS$MBk=-X28o>W^l>p5)X-p z6NOk>5RKBq<)d;smEL-_%YcBd)=tr@(*u^X3qi&oIWC z-W1r>XGNAjEIBglwA7Bx zR6T6N$NT6RL^dAnYCM1F?xRO{+d(>jJt^r1RJw94t>Ju}KXLP3wNF}+eM=Wm{K{5D zoPiM?;nI4aV=~AsgPs8016x<#XW&6l5Ji!kZ^Sc|JTK)inMJb8I|P9fLcF-Og!AsE zEQ+Y&JV1&JO+dCxd`|HoBC~BC9%?UaiWO>KC04m!8l_{v4}^o!pzJZ~qLus-x=vv< z`b^7o8Ghu7w-)>Ng*f*9Ad;coSSuHXzJoQHo52AYE7^c zAg!+z)3$w!KLmLFA?riX@ZwpA{tFG_N$jAc_FY0@#EzX8ndA+|wcnTN7SZ9I=P*D; zq^{-UNQ4Lt-@GILA6_-Fli4KEWL+!9k({^s&+B}+BjV#w#<{T0^Tjs|w4B~ZCb4_d zt!tGI#eli*wJ~EU1l{73FerX!buK^rO(pXU>FQI!7cpvkawP5So#L*xwAwVxM7oX_9KX2%nn=GG6|+}wp8^gv zG?aT0tOJ|FW9vS?uvWZSF{Szl>DZ;XtRteefXq%remJoiUKOhm^h)tL!o+7qoc#4m3+fI-jI|OtFdUKL(O@yAp_dN9tj5O*5;tt*r3UTV8pG_ z8y{gOVyzB~ycHRV%Y8t3h3wSh@ibhYnfOmuxp&fPF8wnN*!8ok#kKd+o=&$sd^lc! z$s~;2^NmMOT$_5--@dD4>IP+22|!;wURE;ILg{+`mBmZx4i{hF$6|!7h{*Y}Uf=&i z=+f^`FlfwY$XGv*c%W$o3>)kYd-m^(r5jw`@5)J$7M`wg#X%gb&aY*t8XUvd!aXqM`y*%~GTKXH%Wd$X5ipUS`!H)?Nu#QKKPsJhJ3 zx=VF+myX=79h)9)8||Vq?AqEjKF%Wd!TAkm=ncv3=ZCTmU7i}ce6eI9g)hrP6y~kf_K35o=Xd5%r!gEgh%Fk!Mi(f@W5OJS`(Qau%|R6qz9J$71C0i-J}X$C%b-$7grEDv>{p>O85x`) zUj}s1qJYn)(gM;_8nn6rjZRl&vD*=Jhz&W6&L0|o;7)>Km@(#9gMxB;IVH)~rm&IJ z^u9;}Ql6Soow1YoNoEBY_)~k!qY`VHS94p{2wd*Y)v+gM)1E?D-!!we>cOV1(of$CD;@id6vD>i;Fro5kWni{+{S9p=RcAaNQwY_x}(N z*;p-7{~}zah6U;q?LeK>rW|nSGz=Lv19b74Xq~~Hl9xntn55NmHe}>m7?_7RsWmWo zGBOwm_|r09bhD$uIiyBrXJ; zT4GNnA`fH|z;h>&#}`WGpzz5#8>D#B10QTQ-Z>~f7YF4#(uOb$;0$74H29XNZ`BjA zxA{90)K+-s{C~uQhv5=4w5Cw@h31gLl$4^5 zq&(TFTP*$^7JMrL!S`B6T06o}fKTu39l_uw8-Q7&CYhM0}C4=u`UjMBx{NFrZpQDHi$Hx#+ITu2VDEB(`Do>+Y z?LyJP06*GpC}M}J4M{Sa5%;siSjg=#cY=AziVAe^NO~C7(IDo~Ck?2sV1j~tZ&ZBz z`n}DZkWwI}fPrY&AKw#|(tG!wcg>7ffd)c?v5}OHj6hc7A(WLbW@UBfBJI$9;gbuy zx0Ba*Z(Friys0=J*8!n?zz3WWa=S>O@E}VmgtwDRCK#k}Is{BbMCu18sDw!n^^)ni zuVf48Ca96WkTI^Zg|7rhVGu6CoZd~r2Yn-aJC0v^;=hC`@XWPo7m4|Dwz>E;g~IIx@7G>AC4C9CKM5-; zNrsQkM;a1$P8Wi3Z&F55l1!eFn4!hQJJD$BjMJz)xvD&^#!#$}F#B|RcueL_el!++ z5po*>*GTj8r{gYam?hbZ(v$e*2 z5$zLVvOL7>_^@82S-*?deRfIe#*xM3PlKtO=EM8FjrY4?i6qnxiM0rRBJ0C9 zn}@eXEta+g1m+fQ_xI0VO>3hH)I3O zyqx6rjrVJ>%jrWD-^k=DU_erIt>qxCWjbl1G|bC^*q^)730qz7uF>nm2dbb^8Bz>T z+fs5pCW9uMgl$E1E=VBOA|)jcP-`lhE_(1_5gYFxr|@C5O+B`i?o{4ytSlEUdQd=b z?v3_=f?w;4?H{!WwQJ#Sn0a-guD!LUjsW>Et9^Es4iN{pZn_csg>JAYbnN~NQ9i+{ z3Y011MiDEYeEZG_W!DHXAWVut3vo|zIf*qqf8t5wWPR=|PJ)M+I!5XI4~Zn;MY#+2 zm8ZtZZ<{HJnjS|f6iw;unZXT3Az&_f%e4jA6U%P&-vZ4UDVgPej zZVorEtXSG&EeshK*05uR1)51xN7xL8LOYXq_z7&RP^S5ixt3tNeS9SIaQZyNI=V-gKEcwWnuupXnlCIYwHIwz)@F5`=rj&`@*v zBTHM`R$IS?j{P)>d{zcq*c>iOx+6?Gz*Xa2An6+0Hkw|B)La6FhC)b2v1c0 zyQ70mPKihJSR{7w`~Ma%T{5}wy!(Q9!9JC@P|84Clb>Mye9Y4MAG`L;XHK1weDKX_ z`7183N>#3ehm=*WEK#cpgMf>~hSo&gYf5yqsNFS3Ltm%bs^-E{L;B=g3@JealOBPL zPpGoc=J)mWE2Pls2u?35DdNHZXb~4A+xYI`{bgJ2R6^z4+|GBvt{*kyU-58jn94VH zfg@Q%4?b-^ZAmDQFV(Qi#lS5ytDW@-*(5S2$DVwNJBx=cJ2CPVGVx!Hpi7Rb6_LQu zFv6z8-C#5GTFpb7f#LKARG2YVaJJGie2YGTU+@KG|?|w2!P^6n;E{Z$?S}wT5 zk7qGBeIxzGVqPlG!T2(UBICBw+D7P~*KpmLt9UpxTroUcVQJ&FG8!9ueGPOetSVug zP*a0UKh0q=;8L>tS(M0E8|>JOV1J6l8CYxvz|a-^QTatHKVEe2M>}4)?R;giNU~te zB34@bh|lr7%dnW(I=0u^sds0zvr8t^dWa%K6(#N4f}E&&S^NMeuqsU*ErcbGgxTn82KyMf=P;->M9?^cm!JtoKfS|Bne~@}mHh7Ra%`$h_+`C))LqRQi zX0_}NhgT9FCJZ&V?af>V6g0C%B0=9_LcrmpfCXU~#$c;%sV?7s*3M9CRV)xu>=!8{ znN-5WF&^c9YA&%Qp#c7BggnpQ{j2v`F48m-9RfW>6n)Rvc!G%W{jsce|BkS5O5%1} zDnnY%hh9YXhE#YO!Y@=h9Pp?Tl`6_#nOaKQF=sUlgr?}lh%wiYLfJbR zL|%_+LVfYe4w^&1jbKn(<2Qn{H&dq%diDX$O;7c1Z}(OfJib=Bb8Y9lorIeSFsin$ zJlyIlw{RYo{s|6*P1StVQr$dQUrwWSl>j*_&V=xw{+l$5j<1L`D7ek;(9yw*VXT;EeO$4?1{0flD+=Y%ZhJQ4!MskN%tnR ztT=}xUHN0zoc~*HSIFNy6(Bu*#zo+)WkUNTLo3tKrDwoY*O)?t+kIG^(aYUPeutUB zxYs#G3c)9#DrnL#THnMPH#aw?u+T410JMPm;%$f)Jg#kJ%SF?TX0y5X&}^F`k3ayO zt9(pGhbvuvvjQWe<~EGhq3~GJX6V`>xq%95FK*9l&&--_Cqg)sRXiFtt&dn%Y}>_}I4mc(O7}$zMEru z{$ynHKL^P-J}5eP>*Uga5Cyi;at!nm0~|6uKfS1WRe-bHO^zzH(G#J+mKL=qSRlQg zdn?)_h0}=k2#vXS&lhWTU%&M1;Eua76u-eGWqAjAQ-jMt?T?q5d$;e~hz+_CTkY`N z&|CtRtQC8Au54}HY2I2`TR>9)G~?R*!c6N7TivKS4g--)6yiCKRX)w4NuHC8fT^$s z%@L#pPQ#!4j?zFkc^<&LKY!&+8Y0hsOjd~`{lD9A;=<#XAYprZF2h?YbNk@5B0wIX zl*(Phv?^_eOa+Xw#i-Vp20)Z{YM5l{;pC2aIIRQWhDqO)@RW;9O&>L}5V;%J0UZ8@ zUvRc>NjertiyLV4qxmBx&<#|mn`A<}$SJVr<=4-N z@US?^IUk9sFeswP6B!=A1PMTgm)w$MZUHVbnNIkIY49>c(hPx8hbhie$!rl}xdAmY z0@$zu&(d2{Qkb9+A0K&uyhdLRXTytrP&_xnCQiX3`X?|$AY1u!R9Ok$|9ETFN4aup}YH zv$%pkO)B9){Bv^7gQyb#F3y4=5%(4)7<2~O6~2Gw1Ql0*7bFttIhjrYHCl(Cq2!!4 zPOEchwU?D%aUoibI~%GvO-sZrXGBny8Z2qJ6BE6v6vJ3hbZ*c`W5|#D-is-0`m)-u z`o@hf^KO*j=>60F4|!#SsmsWZFHhNa54(1!8X2FUue^RViGMWwsCnh#-q1>4KN2XT zcl!I&uFv1D$5DC)51x5}4Ps?gj2a5s8>^_7+Aokygyh48&p&6md!Zqc-h{DZ1E0@} zaN+hMbr2k!&WY(g{uz_vouN=<1V|OGvdeNUz7<-nQWch=W%lc-YcUccYK&b5SgwOV zv8uy?%+aeGJdmRiq9^!LF*(5o3AY6NsEWY)mhGqJO&6u^j~^he{A0m3qJP_s_ieQh z6xQb;OJij*WMR^{7Yk|R`t?4%Ss9{C2+Nmwf~2**t~fIbS%G|mpl2q)6>&v4Idb=BHCmvM0xz9P#Sd}4>q~J z2r&9)mvp3WWcy|Je0}HU%5eFW@`tc^ zU{=AG7BUYrq9>vJjY8q9n5XV+KAJ)8vo-CE8&_G9*gqHP1Ox(Zy7IVc4c-ldB20dIEbejEx1| z8@m@oV#h(6PQz7O9nXq&1cpsjn|?jmpogo3GDbf{4fm*+e{9xai_Xc?5$HU?I)| zHXJAwDly7|I=u`LYE5LX9d6rrcHl{ORjvDXhs{*W(^rx9%L>_1~LZfmXDOS8IoooF?hEinn4Z#1w+2b3P8 zG1@LUp$t+c{b_p{OYE5#$k#jARKN?#1V$-AFF=5)6ud^@=!WHK_>F+CH9rGu9{7$t zKplJ^v0#!tj?3~7b~4x8aJGUMMB?-rWHnYk?}Qjkp^J$iuei<#N` zu%x`dj3A6N2?aGVb6mds=FJW7{8Fh1$y@cEOV!S@a_#V>MsFBdSH zhbVhRBQ6O$i&rWi3SS?@K+J0{{3`_7Z7rlggivEJC*a$5oy$cq_4Op0mM{Sv3FG!~ z8|}8SP&juMO6T=Dhyvv_mBfz1am)|y#zciN4})v&oHq#A0}@GU#ycC_0xc6XK&DN6 zFo!I{Sc)w#&oW4kaX=fvV;;Z3;dp*Zy72L*KK;C_?;eOJ$RmizVDID-4#>!qtLI^F zmM4;^K+lqk32IvMeM*(yWa2nLV82xVHjbs!XBte7+SXsQd&y6qNhda;Q5AdeM zvG@T~`f*?zZ+bYMhXjXXweQ|iS0@CF-IJeBaeCpK2NI2|dqg_YBN}pXMH>n@f5xQ} zfF0!QJo>_X$Tu)%bMLz~L>^4DZ9}AGFt^lK~n5<*a zXk6Sq+dcNz%Cc$nBQgY|BCDiEE7Ln(KpInwi&$`UJ_Wi~Fo*_z4zZbkfUzTkYy9DB zD70@uIG%;%l}|rf{c3oyi`CaR+}kZ2bre z_Af3j)+&p&33oyO)HR^O1^Q;%lgf{4}x0>|;$SzKX{ZfGk1 z)y>40`QNVg@i~3NgUr{n2KVR%NKXbiToqT6&ANt0V2~@(t5iBE8&6eZAs>NwXz>S* z2?k8#4J|iewl*S(qvAzVj3u`wO_T7Qj8e+OXxq5H?yNf;XK7~punhWjB__kq1R?@4 z_V<;_3ZAVt8Oss)^2~byV4gz@4}l}f;o190DOiQOMd5hfD!zDc>fRKVce;lsIs9h~ z-yTsn3k#so`r>G?B{~=;aOEl=8wD`T4W(n!yj)1QwV;|2gw1MIi(4&Q^;&(EVBFT9 zG%Ym7y-vE`W>8w|^|I3Lp_JvaJz0j|A@p;nvSV4TR>9^plS3-uTQ{o>{8J%8en&i}IN-HA(yj# zI)!{lisWw7NzswyiI8x60HV1In^|ooB5J6DXp~visxe@poqJ)XK`gbylrq^qqt2;V z&0mh$?fApYwK9*fWR+Rjtl-wd57do}x7+A+Y6gRO+*$L%EzDKkxgDwF*KV#!K4*2X ztC!y^nS7||Rw!7EO<2!@NRmY=5vk&FsUD4pNw4o`ONBPmSV)j}+xD$)>%J|5O3P|c z?_IQ7IgA+_WNz;YY|N)m@p{a+8;fo|(2@*RGg)h$q zVQK$?PHsZk3$3pJTWoy;bpVq-|cP?};Fo1r^g3AT&$p%ZoQ=s~F$wx#YxKc??dc0K$Y&w%|0OmV{ zfPm&#Yi?Yd)s3P$(E^vod~#{AlxWK#>7k9`^}{G$tJ;*2^3p9wRN_ z`N57gxv?%1A~XX+0Iw5fGptz+EiAefo2_c&Bo}R-1js$(I^(+T^Z;8*6-vr;JLLcb zn>tIv-J%RM`64_np6w!LDw!RqvQv*A-`YI>yD?efutwI_Hdr7DNL`|b(8cq7a?s}3 z2SWooVL$sIB+z4JeGE7njoTWD5ZhYyj=u9DT0Lvi4V$6*Y6&?EvZ z;B-)w9h>ZS*cr!;{ijLUZmkyEnO^)38VDJh#Oc&sG=B5$dif1td|5oMLNbySWqW~x zkE;%bMEyf5ISz=v-$djEkX`rNd|E=QX}L8;W{Ib9p@u(et}3P*Q98Uwd!hlbGQ&=b z6GkHiPaRB@df8F77tWK8SnW8S2Bs1G{s|nDX$azSU#QW*qpH}tJQC-ci3B!znkS^i86~4pr!wrQdyF2+ z0Y<#tQ9mo&ac=>xwFojwC0RSJ>>j^!7mYu6dAEu5k!+S7=c-h3%oxYy2RZ-+OnA(N^4ew_V0sZEVvQJztq9#X zYM2|erFs%=0uFx?XwpV!IP5T%oY4Gw%Jy?AsXRv#NvHjkf5LGWjK6z*b$sAc`E+_6 zXpAPf7Q7>4Cbmj`}yCRMsg+y>O~5 zoSh*gWm&BJ-n*~e1>+wbm6u-a_+Uc{b3-s`La2NNLK~KNG(w^KdVj#Gh28<1xex_4 z5|_=^lN?E2AP;lSrzGh_*;}B%%2dAh?pv?jzVYpU{vj?ey!vv-2R54^ zuhH7_HjU7oXsOjXL$P=%M(ryWS4lCDj3m8>BeEVSyx)OHynYvo|N6s$L1+-0j*j>7 uwITp5WA>Y%ng2RE-hCHgKpg&;f%p-`QyiGR%-L@M0000 string +} + + +export function BCMSContentItem (props: BCMSContentItemI): JSX.Element { + function resolveWidget(name: string) { + if (props.components[name]) { + const Widget = props.components[name]; + return ; + } else { + return ( +
+ Widget {props.item.name} is not handled +
+ ); + } + } + return ( + <> + {props.item.name && + props.item.type === BCMSEntryContentNodeType.widget ? ( + <> + ) : ( +
+ )} + + ); +} diff --git a/next/blog/bcms-components/content-manager.tsx b/next/blog/bcms-components/content-manager.tsx new file mode 100644 index 0000000..97b555a --- /dev/null +++ b/next/blog/bcms-components/content-manager.tsx @@ -0,0 +1,65 @@ +import type { + BCMSEntryContentParsedItem, + BCMSPropRichTextDataParsed, +} from '@becomes/cms-client/types'; +import { BCMSContentItem } from './content-item'; +import classNames from "classnames"; +import {CSSProperties, RefObject} from "react"; +export interface BCMSWidgetComponents { + [name: string]: any +} + +export interface BCMSContentManagerI { + id?: string + className?: string + + style?: CSSProperties + + items: Array + + widgetComponents: BCMSWidgetComponents + + nodeParser?: (item: BCMSEntryContentParsedItem) => string + + ref?: RefObject +} + + +export function BCMSContentManager (props: BCMSContentManagerI): JSX.Element { + return ( +
+ {props.items.map((_item, _itemIdx) => { + return ( + <> + {Array.isArray(_item) ? ( + <> + {_item.map((item, itemIdx) => { + return ( + + ); + })} + + ) : ( + + )} + + ); + })} +
+ ) +} diff --git a/next/blog/bcms-components/image.tsx b/next/blog/bcms-components/image.tsx new file mode 100644 index 0000000..e36e608 --- /dev/null +++ b/next/blog/bcms-components/image.tsx @@ -0,0 +1,102 @@ +import React, { useState, useEffect, useRef, CSSProperties } from 'react'; +import { + BCMSMediaParsed, +} from '@becomes/cms-client/types' + +import {BCMSMostImageProcessorProcessOptions} from '@becomes/cms-most/types' + +import { + BCMSImageConfig, + createBcmsImageHandler, +} from '@becomes/cms-most/frontend'; + +interface BCMSImageProps { + media: BCMSMediaParsed; + className?: string; + style?: CSSProperties; + id?: string; + options?: BCMSMostImageProcessorProcessOptions; + svg?: boolean; +} + +export function BCMSImage (props: BCMSImageProps): JSX.Element{ + + const [handler, setHandler] = useState(createBcmsImageHandler(props.media, props.options)); + const container = useRef(null); + const [srcSet, setSrcSet] = useState(handler.getSrcSet()); + let mediaBuffer = JSON.stringify(props.media); + let optionsBuffer = props.options ? JSON.stringify(props.options) : ''; + + const resizeHandler = () => { + if (container.current) { + const el = container.current; + setSrcSet(handler.getSrcSet({ width: el.offsetWidth })); + } + }; + + useEffect(() => { + resizeHandler(); + window.addEventListener('resize', resizeHandler); + + return () => { + window.removeEventListener('resize', resizeHandler); + }; + }, []); + + useEffect(() => { + if ( + mediaBuffer !== JSON.stringify(props.media) || + (!props.options && optionsBuffer) || + (props.options && optionsBuffer !== JSON.stringify(props.options)) + ) { + mediaBuffer = JSON.stringify(props.media); + optionsBuffer = props.options ? JSON.stringify(props.options) : ''; + const newHandler = createBcmsImageHandler(props.media, props.options); + setHandler(newHandler); + resizeHandler(); + } + }, [props.media, props.options]); + + return ( +
+ {handler.parsable ? ( + + + + {props.media.alt_text} + + ) : props.svg && props.media.svg ? ( +
+ ) : ( + {props.media.alt_text} + )} +
+ ); +} + +export default BCMSImage; diff --git a/next/blog/bcms-components/index.ts b/next/blog/bcms-components/index.ts new file mode 100644 index 0000000..29d8e94 --- /dev/null +++ b/next/blog/bcms-components/index.ts @@ -0,0 +1,3 @@ +export * from './content-item'; +export * from './content-manager'; +export * from './image'; diff --git a/next/blog/bcms.config.js b/next/blog/bcms.config.js new file mode 100644 index 0000000..13df22c --- /dev/null +++ b/next/blog/bcms.config.js @@ -0,0 +1,20 @@ +const { createBcmsMostConfig } = require('@becomes/cms-most'); + +module.exports = createBcmsMostConfig({ + cms: { + origin: + process.env.BCMS_API_ORIGIN || + 'http://localhost:8080', + key: { + id: process.env.BCMS_API_KEY || '6433b6994c02e25452a8a947', + secret: + process.env.BCMS_API_SECRET || + '4107ecd203ff708a1789439376934e315781d66134d6c0da058bc87583f6e0c9', + }, + }, + media: { + output: 'public', + download: false, + }, + enableClientCache: true, +}); diff --git a/next/blog/components/ContentManager.tsx b/next/blog/components/ContentManager.tsx new file mode 100644 index 0000000..42c2f41 --- /dev/null +++ b/next/blog/components/ContentManager.tsx @@ -0,0 +1,38 @@ +import React, { useRef, useEffect } from 'react'; +import {BCMSContentManager, BCMSWidgetComponents} from "~/bcms-components"; +import {useRouter} from "next/router"; + +export function ContentManager ({ item, widgetComponents, className}: {item: any, widgetComponents?: BCMSWidgetComponents, className?: string}) : JSX.Element { + const router = useRouter() + const managerDOM = useRef(null); + function parseInternalLinks (): void { + if (managerDOM.current) { + const links = managerDOM?.current?.querySelectorAll('a'); + + links.forEach((link ) => { + const href = link.getAttribute('href'); + + if (href && href.startsWith('/')) { + link.target = '_self'; + link.addEventListener('click', event => { + event.preventDefault(); + void router.push(href) + }); + } + }); + } + } + + useEffect(() => { + parseInternalLinks(); + }, []); + + return ( + + ); +} diff --git a/next/blog/components/PageWrapper.tsx b/next/blog/components/PageWrapper.tsx new file mode 100644 index 0000000..c80803b --- /dev/null +++ b/next/blog/components/PageWrapper.tsx @@ -0,0 +1,19 @@ + +import {Header} from './layout/Header'; +import {Footer} from './layout/Footer'; +import { HeaderEntryMeta, FooterEntryMeta } from '~~/bcms/types'; +import {PropsWithChildren} from "react"; + +interface PageWrapperI { + header: HeaderEntryMeta; + footer: FooterEntryMeta; +} +export function PageWrapper ({header, children, footer}: PropsWithChildren): JSX.Element { + return ( +
+
+
{children}
+
+
+ ) +} diff --git a/next/blog/components/Search.tsx b/next/blog/components/Search.tsx new file mode 100644 index 0000000..16675d8 --- /dev/null +++ b/next/blog/components/Search.tsx @@ -0,0 +1,42 @@ +import {SearchIcon} from '@/assets/icons/search'; +import classNames from "classnames"; + +interface SearchProps { + value: string; + onEnter: () => void; + onChange: (value: string) => void; + + className?: string +} + +export function Search ({ value, onEnter, onChange, className }:SearchProps): JSX.Element { + const handleInput = (e: React.ChangeEvent) => { + onChange(e.target.value); + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + onEnter(); + }; + + return ( +
+ + + + ); +} + diff --git a/next/blog/components/TopGradient.tsx b/next/blog/components/TopGradient.tsx new file mode 100644 index 0000000..6ad9206 --- /dev/null +++ b/next/blog/components/TopGradient.tsx @@ -0,0 +1,12 @@ +import classNames from "classnames"; + +export function TopGradient (props: {className?: string}): JSX.Element { + return ( +
+ ) +} diff --git a/next/blog/components/blogs/Card.tsx b/next/blog/components/blogs/Card.tsx new file mode 100644 index 0000000..0564dfb --- /dev/null +++ b/next/blog/components/blogs/Card.tsx @@ -0,0 +1,49 @@ +import { BlogLight } from '~~/types'; +import {BCMSImage} from '~~/bcms-components'; +import {OpenIcon} from '@/assets/icons/open'; +import {ContentManager} from "~/components/ContentManager"; +import {dateUtil} from '~/utils/date' +import NextLink from "next/link"; +interface BlogsCardProps { + blog: BlogLight; +} + +export function BlogsCard ({ blog }: BlogsCardProps): JSX.Element { + return ( + + ); +} diff --git a/next/blog/components/content-page/Form.tsx b/next/blog/components/content-page/Form.tsx new file mode 100644 index 0000000..7418f6b --- /dev/null +++ b/next/blog/components/content-page/Form.tsx @@ -0,0 +1,99 @@ +import {useState} from "react"; +import {EmailIcon} from "@/assets/icons/email"; +import {FormText} from "~/components/form/Text"; +import NextImage from 'next/image' +import EmailImage from '@/assets/media/email-bg.png' + +export interface ContactFormI { + email: string +} + +export interface FormFieldsI { + email: string + name: string + question: string +} + +export function ContactPageForm(props: ContactFormI): JSX.Element { + const [form, setForm] = useState({ + name: '', + email: '', + question: '' + }) + + const handleFormChange = (value: string, field: keyof FormFieldsI) => { + setForm((prev) => ({...prev, [field]: value})) + } + + const handleSubmit = (): void => { + //Todo + } + return ( +
+
+
+
+ + + + + + +
+
+
+ + ) +} diff --git a/next/blog/components/form/Text.tsx b/next/blog/components/form/Text.tsx new file mode 100644 index 0000000..2947d21 --- /dev/null +++ b/next/blog/components/form/Text.tsx @@ -0,0 +1,64 @@ +import classNames from "classnames"; +import {FormFieldsI} from "~/components/content-page/Form"; + +type TextInputType = "text" | "email" | "textarea" + +export interface TextI { + label?: string + value: string + placeholder?: string + + type?: TextInputType + + error?: string + + name: string + + onChange: (value: string, field: keyof FormFieldsI) => void +} + +export function FormText(props: TextI): JSX.Element { + + const handleInputChange = (e: any): void => { + const element = e?.target as HTMLInputElement + props.onChange(element.value, element.name as any ) + } + return ( +