From bfdb42a66e93b868e1e24beff3117c6d60f9d9d3 Mon Sep 17 00:00:00 2001 From: hxtree <19890291+hxtree@users.noreply.github.com> Date: Sun, 24 Nov 2024 10:05:30 -0600 Subject: [PATCH] feat: flesh in player client --- README.md | 7 +- clients/admin-client/README.md | 10 - clients/admin-client/package.json | 2 +- clients/design-system/package.json | 2 +- clients/jukebox/package.json | 2 +- clients/player-client/.env.dist | 1 + clients/player-client/.eslintrc.cjs | 20 ++ clients/player-client/.gitignore | 24 +++ clients/player-client/README.md | 6 + clients/player-client/bin/app.ts | 8 + clients/player-client/cdk.json | 17 ++ clients/player-client/index.html | 14 ++ clients/player-client/package.json | 55 ++++++ clients/player-client/project.json | 5 + .../player-client/public/assets/archetype.jpg | Bin 0 -> 1122195 bytes .../public/assets/background/blue.jpg | Bin 0 -> 36683 bytes .../public/assets/background/gray.jpg | Bin 0 -> 2323130 bytes .../public/assets/background/yellow.jpg | Bin 0 -> 1761379 bytes .../public/assets/cards/deep-thinker.jpg | Bin 0 -> 55721 bytes .../public/assets/cards/meeku-oni.png | Bin 0 -> 5696 bytes .../public/assets/cards/stand-still.png | Bin 0 -> 122240 bytes .../player-client/public/assets/clouds.jpg | Bin 0 -> 135083 bytes .../public/assets/data-center.jpg | Bin 0 -> 248807 bytes clients/player-client/public/assets/dice.jpg | Bin 0 -> 487495 bytes .../public/assets/malace-tsia.jpg | Bin 0 -> 255107 bytes .../public/assets/shield-sword.png | Bin 0 -> 60789 bytes .../public/assets/topic-hero/malace-tsia.jpg | Bin 0 -> 39651 bytes clients/player-client/public/vite.svg | 1 + clients/player-client/src/App.tsx | 33 ++++ clients/player-client/src/README.md | 35 ++++ clients/player-client/src/assets/react.svg | 1 + .../src/components/ArchetypeSelect.tsx | 107 ++++++++++ .../src/components/Breadcrumbs.tsx | 42 ++++ .../components/DiceAnalyzer.test.tsx.disabled | 85 ++++++++ .../src/components/DiceAnalyzer.tsx | 185 ++++++++++++++++++ .../player-client/src/components/Header.tsx | 59 ++++++ .../src/components/SignupForm.tsx | 125 ++++++++++++ .../src/components/useBreadcrumbs.tsx | 29 +++ .../player-client/src/context/AppProvider.tsx | 59 ++++++ clients/player-client/src/core/game-loop.ts | 10 + clients/player-client/src/main.tsx | 9 + .../src/pages/archetypes.page.tsx | 34 ++++ .../src/pages/character-sheets.page.tsx | 23 +++ clients/player-client/src/pages/dice.page.tsx | 27 +++ .../player-client/src/pages/game-state.json | 124 ++++++++++++ clients/player-client/src/pages/home.page.tsx | 12 ++ .../player-client/src/pages/login.page.tsx | 36 ++++ .../player-client/src/pages/signup.page.tsx | 25 +++ clients/player-client/src/routing/Router.tsx | 95 +++++++++ clients/player-client/src/vite-env.d.ts | 1 + .../stacks/player-client.stack.test.ts | 23 +++ .../stacks/player-client.stack.ts | 173 ++++++++++++++++ clients/player-client/tsconfig-build.json | 10 + clients/player-client/tsconfig.json | 6 + clients/player-client/tsconfig.node.json | 10 + clients/player-client/vite.config.ts | 11 ++ .../character-sheet-contracts/package.json | 2 +- libraries/dice-simulator/package.json | 2 +- libraries/faker-factory/package.json | 2 +- libraries/messaging-schemas/package.json | 2 +- libraries/nestjs-modules/package.json | 2 +- libraries/promare-gradients/package.json | 2 +- libraries/pseudo-random/package.json | 2 +- libraries/validation-schemas/package.json | 2 +- middleware/graphql/package.json | 2 +- platform/constructs/package.json | 2 +- platform/lambda-layers/package.json | 2 +- platform/message-bus/package.json | 2 +- platform/pipeline/package.json | 2 +- pnpm-lock.yaml | 88 +++++++++ services/billing-system/package.json | 2 +- services/character-sheet/package.json | 2 +- services/dynamo-image/package.json | 2 +- services/email-service/package.json | 2 +- services/html-to-pdf/package.json | 2 +- services/instances/package.json | 2 +- services/luck-by-dice/package.json | 2 +- services/player-achievements/package.json | 2 +- services/user-service/package.json | 2 +- services/weather-control/package.json | 2 +- tools/aws-sso/package.json | 2 +- tools/create-artifact/package.json | 2 +- .../__tests__/test-data/package-output.json | 2 +- tools/create-bundle/package.json | 2 +- tools/hydrate-dotenvs/package.json | 2 +- 85 files changed, 1664 insertions(+), 43 deletions(-) create mode 100644 clients/player-client/.env.dist create mode 100644 clients/player-client/.eslintrc.cjs create mode 100644 clients/player-client/.gitignore create mode 100644 clients/player-client/README.md create mode 100755 clients/player-client/bin/app.ts create mode 100644 clients/player-client/cdk.json create mode 100644 clients/player-client/index.html create mode 100644 clients/player-client/package.json create mode 100644 clients/player-client/project.json create mode 100644 clients/player-client/public/assets/archetype.jpg create mode 100644 clients/player-client/public/assets/background/blue.jpg create mode 100644 clients/player-client/public/assets/background/gray.jpg create mode 100644 clients/player-client/public/assets/background/yellow.jpg create mode 100644 clients/player-client/public/assets/cards/deep-thinker.jpg create mode 100644 clients/player-client/public/assets/cards/meeku-oni.png create mode 100644 clients/player-client/public/assets/cards/stand-still.png create mode 100644 clients/player-client/public/assets/clouds.jpg create mode 100644 clients/player-client/public/assets/data-center.jpg create mode 100644 clients/player-client/public/assets/dice.jpg create mode 100644 clients/player-client/public/assets/malace-tsia.jpg create mode 100644 clients/player-client/public/assets/shield-sword.png create mode 100644 clients/player-client/public/assets/topic-hero/malace-tsia.jpg create mode 100644 clients/player-client/public/vite.svg create mode 100644 clients/player-client/src/App.tsx create mode 100644 clients/player-client/src/README.md create mode 100644 clients/player-client/src/assets/react.svg create mode 100644 clients/player-client/src/components/ArchetypeSelect.tsx create mode 100644 clients/player-client/src/components/Breadcrumbs.tsx create mode 100644 clients/player-client/src/components/DiceAnalyzer.test.tsx.disabled create mode 100644 clients/player-client/src/components/DiceAnalyzer.tsx create mode 100644 clients/player-client/src/components/Header.tsx create mode 100644 clients/player-client/src/components/SignupForm.tsx create mode 100644 clients/player-client/src/components/useBreadcrumbs.tsx create mode 100644 clients/player-client/src/context/AppProvider.tsx create mode 100644 clients/player-client/src/core/game-loop.ts create mode 100644 clients/player-client/src/main.tsx create mode 100644 clients/player-client/src/pages/archetypes.page.tsx create mode 100644 clients/player-client/src/pages/character-sheets.page.tsx create mode 100644 clients/player-client/src/pages/dice.page.tsx create mode 100644 clients/player-client/src/pages/game-state.json create mode 100644 clients/player-client/src/pages/home.page.tsx create mode 100644 clients/player-client/src/pages/login.page.tsx create mode 100644 clients/player-client/src/pages/signup.page.tsx create mode 100644 clients/player-client/src/routing/Router.tsx create mode 100644 clients/player-client/src/vite-env.d.ts create mode 100644 clients/player-client/stacks/player-client.stack.test.ts create mode 100644 clients/player-client/stacks/player-client.stack.ts create mode 100644 clients/player-client/tsconfig-build.json create mode 100644 clients/player-client/tsconfig.json create mode 100644 clients/player-client/tsconfig.node.json create mode 100644 clients/player-client/vite.config.ts diff --git a/README.md b/README.md index b13b6a211..fb6a99968 100644 --- a/README.md +++ b/README.md @@ -159,5 +159,8 @@ Pull requests and bug reports are welcome on GitHub at ## License -All packages available [NPM](https://www.npmjs.com/search?q=%40cats-cradle) are -MIT licensed. +This project is mostly licensed under the MIT License. Detailed license +information, including exceptions for packages that are not MIT licensed, can be +found in the [LICENSE.md](./LICENSE.md) file. All packages published under the +[@galaxyops](https://www.npmjs.com/search?q=%40galaxyops) namespace on NPM are +also MIT licensed unless otherwise specified. diff --git a/clients/admin-client/README.md b/clients/admin-client/README.md index 0fb3b948c..433d73817 100644 --- a/clients/admin-client/README.md +++ b/clients/admin-client/README.md @@ -4,13 +4,3 @@ The admin client is the front end for game masters portal. It provides insight into various game runtime features. - -```bash -rushx build:all && -rushx start -``` - -## TODO - -- add unit tests -- add cdk deploy to ec2 diff --git a/clients/admin-client/package.json b/clients/admin-client/package.json index 03ed183fd..fc365be61 100644 --- a/clients/admin-client/package.json +++ b/clients/admin-client/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite --host", "build": "tsc --build ./tsconfig-build.json && vite build", - "build:all": "rush build -t .", + "build:all": "nx run-many --target=build --all", "artifact": "create-artifact @galaxyops/admin-client", "lint": "eslint --format visualstudio \"./src/**/*.tsx\" --fix", "lint:ci": "eslint --format visualstudio \"./src/**/*.tsx\" --fix-dry-run", diff --git a/clients/design-system/package.json b/clients/design-system/package.json index e71449c99..663ecf03a 100644 --- a/clients/design-system/package.json +++ b/clients/design-system/package.json @@ -18,7 +18,7 @@ "dev": "storybook dev -p 3000 -s public", "build": "tsc --build ./tsconfig-build.json && vite build", "build:storybook": "tsc --p ./tsconfig-build.json && storybook build", - "build:all": "rush build -t .", + "build:all": "nx run-many --target=build --all", "artifact": "create-artifact @galaxyops/design-system", "test": "jest --runInBand", "test:cov": "jest --coverage --runInBand", diff --git a/clients/jukebox/package.json b/clients/jukebox/package.json index 927c51317..fdadf8e2a 100644 --- a/clients/jukebox/package.json +++ b/clients/jukebox/package.json @@ -7,7 +7,7 @@ "scripts": { "dev": "nest start --debug --watch", "build": "tsc", - "build:all": "rush build -t .", + "build:all": "nx run-many --target=build --all", "artifact": "create-artifact @galaxyops/jukebox", "watch": "tsc -w", "test": "jest --runInBand", diff --git a/clients/player-client/.env.dist b/clients/player-client/.env.dist new file mode 100644 index 000000000..588ada9dc --- /dev/null +++ b/clients/player-client/.env.dist @@ -0,0 +1 @@ +VITE_PARENT_DOMAIN_NAME=sandbox.nekosgate.com diff --git a/clients/player-client/.eslintrc.cjs b/clients/player-client/.eslintrc.cjs new file mode 100644 index 000000000..58986422d --- /dev/null +++ b/clients/player-client/.eslintrc.cjs @@ -0,0 +1,20 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-non-null-assertion": "off", + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/clients/player-client/.gitignore b/clients/player-client/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/clients/player-client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/clients/player-client/README.md b/clients/player-client/README.md new file mode 100644 index 000000000..3bdc95cf1 --- /dev/null +++ b/clients/player-client/README.md @@ -0,0 +1,6 @@ +# @galaxyops/player-client + +[![GitHub Stars](https://img.shields.io/github/stars/hxtree/galaxyops?style=social)](https://github.com/hxtree/galaxyops/stargazers) + +The player client is the front end for game. It's what the player sees to play +the game. diff --git a/clients/player-client/bin/app.ts b/clients/player-client/bin/app.ts new file mode 100755 index 000000000..506f92fa0 --- /dev/null +++ b/clients/player-client/bin/app.ts @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +import * as cdk from 'aws-cdk-lib'; +import { PlayerClientStack } from '../stacks/player-client.stack'; + +const app = new cdk.App(); + +new PlayerClientStack(app, 'PlayerClientStack', {}); diff --git a/clients/player-client/cdk.json b/clients/player-client/cdk.json new file mode 100644 index 000000000..521da4eb6 --- /dev/null +++ b/clients/player-client/cdk.json @@ -0,0 +1,17 @@ +{ + "app": "tsc --build ./tsconfig-build.json && vite build && npx ts-node --prefer-ts-exts bin/app.ts", + "watch": { + "include": ["src/", "stacks/", "pages/", "components/"], + "exclude": ["__tests__", "*.test.ts", "*.e2e-spec.ts"] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": ["aws", "aws-cn"] + } +} diff --git a/clients/player-client/index.html b/clients/player-client/index.html new file mode 100644 index 000000000..664af9341 --- /dev/null +++ b/clients/player-client/index.html @@ -0,0 +1,14 @@ + + +
+ + + + +-j;G@1U@%%f!)BaJJo>u&XjJ^YQs}Tg=Fw#)bPmok-ykm+H@5%NqSP< z)l5$nqsTHL6p0UQ?{OcG-4PeZX&g*96{QQ=H^QszqSh_ZMd6sAz>>bgWJiVfGLE&Y zuj;t`8%SW{bF-YqGo>63UYVAmWSBGr?ypOS{hGK+^tPRwg`4zjJs}qwxk|E)V>eT+ z?%K3p509tBdF)FPgT|#0D0mziQoGnlZjtklULNdHaA*|Q|7`%hge6bLuu#Hl87!2y ze7dYV=xA;CcMD^8TMKs2UmL%9@#oEC52vwGh;d-^>W6-jJTo1q$s?2TTC>(cea%eA?}YTSfLRCHP1gsL)4 zqK#LPmYJ=I+9IgJ+rS01%1mu3UTGT&RUqy#hli|)R?AaXyJ!`8msB;RiBH8yqzDl5 zP`t9zhLh|8nk!xfTQI`uV X zS^v?+pC2hogff!na49IR)P(3kf09dS?34#4l8xuXr3#9>anPR=d;S>NQ~s(WJzRPt zK-PNc)#&CGsu|lA>y_n`qSoP$E;c`P(UVAb6mQ*T8DcPa>4#?Pu4R50$`Dwmdpf2( zc1sp1Y8{(7JF(w#t|;BWw_AG{*;82oMZ(Iq3}s-v4k=k3p1#b!EG}Emt)#k)x=w$c z6-Qu#5n-ivtFA|fkC0Z|fJ;TD
uI2Eo@TsRI3 z1kRyX&|F6NduXr?BLx;~u$4}-8|a5cCtlmM-{|}3v$**Khia}jXa2c+#|Pp@k7Q&d zDcC0G1y4(OiEev5p6WY^Uy4Yy$s;ox>kO$0M>ZYtB(+$=nbLuiIl4eo)u~L=RHgNd zN7L`G+g>!^eSdN?#17v-jj(Ey@O#>z7}bEFPpO*OAS<5HaSl!EESkCA&Q7;d-W+XJ zanmg)4VH5ff}
(u)UKsEwOx8!>aiGqj})r?-fs z*hpN-t_~peJTs}+2n;+Wdw|j-<)I4IFb+qrugJTg;7}+oih|OkssV>^$&*9LY9V3d z$#FUVLTyMn_(kjkZtsC32lmbdf+ZHte)GX {$r z$OCoSQd<>9<(YNdEUubi8)4VlhDfcP roAW zS5V+h@d1QB9=B?G_yYhLa81t`-*cp-Wvtj!0HM+T OUYq}We zV1=uRE{(XbT2-M72nq{nCMNOWw&HW$6B$L?;_61bCumPxXBJ8;b&vtfAhEhHs!y$z zaKH)`D)!hEGgZzAO~k9Ui8igyHWHeM>DZSt(!f;zBOts%G2~Ul;GsY!8XyAy5 3cZ^>4;KGLrH@z<_GRikwa(DN9vt;0~0;ez(4o#&S@{dN%GuN=J5muw}rwIOYCS zizp(`oRQ{~*>Pf(b7O{*u8Xh>s1UWPE&G~T9&mh!LRHmUnVu*!N8KLmneP8;N=y*k zbZ26J<*MV_<4Gi;AqX&l-ce}=uW(zcT!^SL3~6<>S$LI%U|%Xu( h>A0l5$LkUB zgF7UTO+c|xX$oY)Ni$j5qq?NBQ85I&HS#3j9;^ O==N$-ygZ8I-jAkhqnk$jvRRX;@zp16pya3 z*Kx+ut)#Zl*Ok|lg{_!=)aB0*s6+i`?_UX(5hJ4V?yu~Vc!e&LE l!J@jkxbYY~DSAi(XN -f+ zH(KAnER0=@8Gk0W{KUum$`?GsONb_+5p*#vK9oPwq^wQ^fH_C@;EEK(7FA{VuqCd{ zk)w&SPzA{@&0FcV8_V4py*5*NxG}2Qm0c3ooUt{e+ BiG!2^kwQ7|g@IbtQY&xM#{4bh){x(nfl;so4u@I^+nIa2Xtz+@s9{Kac=yP)%yY z)LG*tgjEk5s~imGjgcgasmBYQAW!MNDwm1INyg}^VK{pLOaM!O4ju)l6wYALB)9^+ zg>9j*a5cOViu4dMavpFAp<#>GGaq*JZo=xh^_n?8kcf|V-@SgqfBR;NtJVSd>I!5Y zW(hUHHkLfap%6mU$mPKur^UPC$}H)SF2?l{<#e&YtmyuV)1)+H<=%WM${cR0g^Zjt z`|wh0VMecG%2Fj@614I1BM*y9PZe+37u*{?BQ5GvEyPhn%J~U#bG;uYkygU2Rw?28 zX!9QC#K+5Y0Sv04%H2lPnscvZ5pF$?JCjCG`_xP>I0nl`1;6n3dW0DkCY#qS7?2qe zM&fBm?M4Q*TMeX&jY%XJBu@wr1*(RPBMFTbKuTDU0}PD=5&%A$t4BsOHZtVFHUyy( z!yeC4gspxszUuP6RoCB>FHF3*>Fl*p3dIWSgF>N5926ITB)ghTIwZ7s()MMs@5Hg? zlfokBW(iHEj_7UANb?C3gjW (CaJNOrtrMQ=tHl|fHpa0|z7>cnMT+_YS)R)X5pdRz;rF=-n?;0F?c zB}?ZD-Ar(q^kTJktAdkcv1D<26a)wS0^t^~TTondNYQ`^W;%GV*DrWLtw_B$l}ZfY z32?qFlq652*ccWsy#h!zBmOAQKiQ?AOW`Ok^d7zN{Mvi5We*JHcc#z$aQFHLQCYz* zc4MVC#keAEa<`m4sNn%aPjq)o@(0=aTG3{oW9*^g;*f@7d@%K%c3X%&JdNaE%Je2p zlQU%@t~tH5NhQk5nf ^U<&l%wEy zD~m+8mh==I=bnp~71k)N9IBGW&eAF1{0ES8Gti1ms4!Se5>GdIX@qUaFywIP?3(&J zF|m{LE>Zm>AQLIyUtEAJvj35S#BhcJkQYM2&?_aEPX@cN&|r6E@bp$KM@CX3dykQJ z?dJI0PX2JqySq(i(!{ E7~CC^S`yLrI=f +e?EE)c}W2S0bs}jpbGc zkS2-^BLOd2ND=_<(2 !!jp%HMf*l$zc!RT7@n{HA_QpF z v_O(#!Vr%SX|)n5FpfVIV1N<`V3J*v<~0TnNWziXgrn2G zj~ Niw+7}54%PzOqH_mh~m*jTLr>pdj)KBa-Y(r z;FDQrOV1b-fo1kSniS%_Vd?@X2~8VY<5t<_BAc+fO&8I-m8^7bKjw^YEg0YJ* =EMsd5>3zAHb6D-DX z%YeHAh?Q-GK{`vdNtOXFX=S;TLiPX {j&&NP zLW7=Pp|hJbdIncTPxN?^VWx;`;$RX+wMM99K+#27of5Z^5JKw68xh(iR=t->R3HnY z31}6$EE7#2fq0NefIU$4dYYG6Qml|OxfCeBDv_MW0-SJ %SY+ zWp1|5D=zN^kQDBCD(=U-6DP>yh45J(yC#4?B$tt07#YZNHx9%Ds0t7DELB$Vi#tm8 zdTbmaC9~nyP^h4 |0fy@~MhJMK!W=om=0Slf9wz)6~LX zcTV<1M~mI0 &)fphQRGxmLNPuqHQ&=kSML*j9G@iva;q-LEB^H%49Ckl7+V7n)b+Da M8I z$q>?u(}cm3+PrX+)=#UD8syqMv5xE<>jgr7s< - zdli9E=?dQwbN7Sj;`;cgNT-~uk~cH-7SoRC(Y($yvKsQnNSH{bbDZo%Rg9X=a+RT0 zC<==%_S0^aL)2sOI>0~+!iO#AL+o~o!##qWNroE)Mkp&?s;s
7^6x>F%EWEY+!5Dvl zfBxy8^N;p-#f^b J _86lb|1 zhLnxx2 @Ch*ikbzq*j`_pTx z8y$|}meX;7YerqVVMJiz;@XTNtIeWzsCyv~cHfK=>eW;wWJYB37dUg%GHP8aC6;T2 z$WKBhx@>Eywj3imE%=Cu2|&PbmO@(42pM`rF-Zp@83^=VtwB#^;ZRBPI1(Dv06Z22 zECQ(J4e5ad%|Xw?>PMa*cYR*IcA4c=l#xtW{n<;ed+M~Lv%Y{mN_IP`$I6?0Vm{dP zW=u=(J~@B}eO+-Ivn844Qm_Yn!h~8x zf 8Y`+~LQ{k30S=#4qOeeM1&30g=T=hy?aB#&J!VFQCSHWCuH?LvRM zn4oWtZr%sN{54iOrzU74ZPvVPc(%bUIHM|A^AwO`Yi)>~p=~W(MS295Z=Uk cl5~IKlkl^ z(Ausw0}mZ;7Y2e-)mTjz0%gFd`dWYgWSUUBr0TQPJ(6P8CEHNl{J!i{hsw(weZ?Ja z0e2yIYJ608Tp%}tM4$u;_-g%~Xgg4cdTl955Il>ySgj$b=_U=?Uu($;>Bbu-wSZz8 zBLqzr6we5H6da|$C?QODZ3aBaV6Y2JG!SCxl3J6hf)r?oa3kTi+YObt9YR9`bg{~* z1kNPIRKSXqUVa3K2tffvfd(mH2muz#c@*%4B!~{Z Yv`+Jp)=RCdmvWYjl={Xds7F*pre$t+F=u=8nwl?#uGhXJq4MB0k75 zc@7*YZQhbWZ>8XNYZ8c-P=~h(IS7EUl0y@)VEZuR26YpVLa#sIgCxi>KpM}HD4ueX z5_tLj)ptfuKl}Q~*mP-RvOdvv--I7G`=qtXE9LPK0kl8gd}q_4S@A)aJlICMa23u{ zQ2a@#uI0g _bcoyaLSZ8$RS5!Zity$Hi-o~L1U^9WIBdI(VX(SLL^C0EAc(K=m}&sS5YofO zAtK=5H9(Ikz#tpKE5HX1O*S__`;YHV?0ax|S?si~@KV8a)8W2Tu{ndO2@HB$t0!4L z$xf9YoXd~2f8)&ySEh3Xbkar7#W5VGC@^6|Z6py-7+FGAYGUKnvOUJKj0StHS!UG- ztr9rmN}jR}f-@IQAL}fJKut1SsHrb3-Vk0A*H!40sFeL~{-td#!eT46%5cnN7zyr; zk!{!*cLnJ+BDGlOwxd1}6fm#?e>fp}rr6$T7Alp9zB$+GA~MZLlWB6M={iY@RnrOO zCCE`01LOsGxG)Y67civIjbJF4$Q$ G6m( z(qER>SX0VBcbH(4?7D7e8hdbdc@?g&aZA@*?k+r7nlm9ldDxH-JVDom3orFv^X zuB%#9?8oQ>c*u1oB8y#)(yMI_oXZ5EtrIE*HJ0ZPYM2POI!LO)ikPtIq5(gECM2Yb z4sZt?hp0e$9w>1Ystdpou-rr!$%cqf_&)mck+~(;HtoOFyDT+%QEBX>2bYij&66_I zDwSO6Azeg!>}R4-(VJ^m|M;NQuMj7B@j@j~3l{|t2qlK%)CwNZCN-6qli>DdN%qx5 zIb;BJe|<@uxcgzR_@GvIYrOkfu{q@m0bLl7*&sp|)`XTav^p~+R?)Wc&Pu#WE0flg zx}=2Bxm9On56j0bS>jx~m4kDTHlABS>Mg*EJlPM2O!xo_bO@<6YA+nr=!D*e1*8Vl zX~OadtK_jaz*7>92a@C9fWwL;-t3@2$jgqfWGEa_qP z>Jl9j`*w$mBewEK+%=cq7qNR^|NidvV{r+)Xgmd}K!LIr_63|>%S+7EH=xEEl4ARk zOm?5j*K!m=DGzoVOjtx-VixVA@#`51|G@rK@ci7V;nP98(pqBYkBPcVVj|95T-aJp zm-DOSBC!Z^0~4hc;apW!W1B9th`Ol!pf3>Q45**X$eCeBT)rV)iYse{Go^OifM`|{ zZP9+Yt`&;kHA^8X_joft gf zo~U~e?s2vX?%j+|4<9<7?bnm)jvg`wLq&1R7#h#LK?u_w60>v$=&|^qMYO%QvrlM` zmq1!n3Iio3g}`kiGpqZ;Hb#2{Rvd>~Njc0A+R^E#z8r7K%wRDLdiW0xA7|1u!c2rC zRvJ%Mgb#Fhp#Zk*g#)@2jG<@2$N^%}y+jZ41V^tRSzENtPycja|GBbmPhn(#*TxNz z4YlNNUpkmQ+ |))PF*b1I!O;UQ=6q{AgqK%wb|#=U^ryieN^ zpwoETr2eIRGUK(n_3g{@vhui7r(#e0_F1xk;~$sM4BB|5P@N$26X~Xpb)WIL?ICT& z3`>~68MHAj+!JLvK75n^rMHkC@3i;iTH7)h)u*EXPW2o&&m=1j0uyB4N)>?UUgZ+< z?S^#Q2ob0Qnp7`GLM4*GAE8jsqae1O=Llt3s&NXg0j#_L Bwur704%K6gKsNspgh!ig@^rSr8vQN|+UsjGq>~>V< z@7=Vk{ZH%PjEPf-59RV38 ;gqV&XA_Cxa*XZ` O#+z1phiw= z$qKu+BP!cbRX16mJ+bvT|C%uP$~s+l^J}V%#&nHiWFp+xb5Aq1qJ>$`x1~wK>!Pwx zRx>Qi1lLp*;R4mnR-Htct}&7zv|E8E3k(`Zty#h8WB_O8*-eDp;;`|7GmcmWI)OkT z A<&d)3{>qeLDYH)NG}pZLyrpxXybv}tT mX&27)qjJoX3+w zB^ndTKb8)hGSf=Znq_jl+P&PJmYbPTlhKx^v|AYho>CPm(dMcMj)_0jBoziFL|0#F zl0qxHrl?k+B1ncnrE<71$d4up^c?^;5S}jZS5aw@Ady7C6bfylND3O0$zU6)$c1te z>5-m>M6I${>*rUDO$(Yd7R|_DxBC)F<0fom#zc}*tBcoxq@c4o$(qZ@1cQEw=+D=i z*B^SYREtct$zj4^S0JfM_4W96w^2z2Ws+al?SM<2BUQt7;-f9|x(Bar$Ouc$;Y+#c z=5*jZ4)WcS=$w)jsSJXp6KxiNqy#;Njo{xP4d(V7+BV+S{pl6 Sr%iCXk@kyp>&{Ll7ZU2>w7F!u2WwDKUvlQ>(UOX#^tR1&DPcVlp{;OsEab z8{k9hHWX0;Sv>-WFf66}n%tp4(sPL@5H`u`?{AKs^js`IGSix;%@^kxhABAS-INgB zsh}mhJ3(xtb#V^P$v}0d7*)3Or=exLWnX{4rmGAJUsqFtUxH93>C}%ZJ!EaL3)KQX z^x%zysZWHQJ+1v=$58wAKXKpLbT;Y7vyLCmzBTzs@WW>z@1*}_V&aXHKfKsJ@y5*B z)t?K#el#)lLG TXGUYkhX}o lOqW!tDAF9> SmhWGv zS~Exce%$Bm7n^#I92i$G>^<;x= )ekGym!1bzEk{->hDXDmK z+2svaZo{QDn}V)<0Z(0xYgSME@$AnhzSgc?!ue+PJMhvR=g)h)dK Yp3^3l=?wdi}FB$IearH<=Sjh%G87yv>Qjb!Omr3U|k`@ zU}z&b)xhpukgK40 cQVn0h0WlL%7)DAPxG9~u7?&UO^iOp~Z)J}E5VD_q zG(K~&KgM^yXg)51H{3lL?&*MPcCJjZDmC(WO1-F~B>IFlBtjQr^AxC0{BzaE^BujK zdMW(6D~;z^E=gc03nv x_`+v9t!!v!!OHlO2pWSJ@3nlB9xKGPhQd~H?d z()695uG+&D)2@lUm+P`pZraDD>Q3QPBR5PnMJqIE8Cq#ZhvixpM{1#G%svc@nh468 zZ Wek88;*Y&*S`UBOYDL1{Ns1mpHSbw z7uSE_MDfG<^#^v}pHH1DkJ t$T4R<5tFiIWuntL=W5=>>CpAj2@mEf=%+nhoVMK zdcubtLT0WbHL|nXxwT9Vg%C}MF{&LXUcz!nI@~Hgl~SQ<49JaVf@~<~4 IX;W zR)2G( z<^2cNim#3Dzn;2Y^L^RsvTx4Eu(>m-_l6nYTyIXjW1W-ejYuSJl=)>(_EGu;p}6>6 z)dia($Zz!3t-)6=%yw@%mXd#BNn)>YTS`t)#JjKVS--tu?BRhu $(*-E?=4 z?tK1|hKnb&A*N{l_=a%1=Zfdds`7U3HCB=(qTP>n zO*Ii+QxslZG%{6NdBvQUE-FgPs7VgzS7f9!P`ZF&Qc(f^opJ{F-f@U~aKPE7 yB&7MEQuTyzBI-2fw6MEAvOY3uC@d(Y*3cp5IsGDY zB2$w)M}!H ^yp(qy@SYNXMi`_zNsJQ@heS1vqQQnvf<@vf&V zpS*O$es}(x^GEwf%uWTy{&;O{`P_cL&k4OA-?DF2%+lZ-ZO6z+V>N!y$sPbIB{7na zV|80zIv8sVvW;)Fp0}@xv)?^Faky>YT*JMEprfbO@97Z5E!pOKN;h 82*Fzad=A$m8#36-c|_EN*>Q(7U*Lg|L XGTPIb|WVvvfkjZj{@jL1x!@_o7g5V$VL>`A9`K96nRYFSr%II@3k>bdx0RXd= z6Dx1}Z1hP9OF3T_1fVuBJC@qtd~8>0%K1G9AFNt(p!nAO(suv-DN8#p#Kndk3(0?R z&9006X&D=|{Q}d%^~)d6U)?7@dSK^$z#ZkoyQTN $%Bi~O?2~mTgKvx`dHO^}_0mj%Dn0wtnxcBzNlRzCOkHa;R69I9 zI!7%-fY&6dsstuPt+fI_@lq5$#X)w0YBdlDgI>-8n>={3nj?KzD6|F&g~MdEo6#^K z?5=I-Zr>0UDdu+trJPTxho9Qv3C85R;#d7deq-lL{l>aB1W)*+jNCkU^Wgn^F)LqK zTbP|1FTFRY@Y~Tkxo{+6|N8tB`?}g8M; m7!duEHWrG@D` zzl(c+>_JnQZv0p$3@X0e+o@C WSLu4PXgW0iUuX!dTJDU P|j3iq{}hE5RgwzVjWB7y8z3 z8yWT90M)T_RusJ|rs?SZ{J639Fp6trG^YFO;i=vuH|FE+^`G|j)SW6FyD|Qn=;&LA zclE>P&ig@X?U+nC9kwi?b-Ki_Y3Z&pPl9OInDckGtcH+Yn=M3>mREcqSa#or{o~za zR`-25H9YO|F?xomzdh0d^A;u;J_(-Wa5aS{=#82LJQ!nAPMK6NIl!&ZAr6*n7x3`G zs*YMK0|9SiAWTwQA%*!>@05w knnGf2;M{SZbYk zeOX6$RII0I>9Nuav!a3zI &o>cOk<^P$=@~VFZEfvb5t8z zYNRKGg_4oed8q}p!Pk1qeNQ*}kr!rHPKw0jdF7Dnr|boda=d&z``%FbC&_b<&K&vq z%b}pS@%rN8Ub0@BabiRKZp&y(-Hbg%&mWu=>!>^?Ur!4$5u{D22H9u|A^?%98mXOw zXG%?aEexlr;M5sriBqCSN-y7p3WyWvO sm(w( zp@WQYc{N=^_=D46EEs6cgIPTalcK^2Bb_h>Cd1gofE?`MRmX88+@h%~17*Nna}3yg zWlJsWKW9F@{9qar!QC6FQk88Wl+%zhicujHLy8**6||1A$?o}`p5Y(0 U6hLCunm>`v_hMh>?(r^ zfjUQzoPotBTP;{d8sU`ckxEHIIFMFqwKJ*8YUUemkV=AKK{kW3s@AH3J}uG~(_q`s zMX~zx1oRBjb}m`KvyGAngYt$hMbJ%rtQ> zkc4O|?6@*szND;UZPMIQZC(BwcRlIT-(8uryBo$!&CU-`y0^Tlvxr+l u;owkfl zW#gr-NlJRWPJjeFZbKh~L32=xi}XsnK!P&Cv3p=15pLly>ktWO$b|r)>+o7=q$m+V z&oxWhxS@Giv68|Q2)M$Tv^*z;C(B^w+JgimP4+-{Z--pr_9~y7+C~WdD<aY5mZ+a6-{QBFb!b& Pf^@5M 3E@dUY}gBxR?TMJneoOOT^x^Q zNA$_G@Kw6%{-~ba=8%YVXWQ8;hS_?poS~^Gq9@TwB1 OPm3Y0yip8Y7&(foDR(;sH2Z0CR(IfTIUE zAArC{$bs=-D#T&K;I Zz_F;{76Lm+GzNVd$%US%GnZ;&&}dZfUbbGCi9_SKmQ<=c6P;>P zAPG7GfH|D9gn`)J2AICXhV)(plYj+y7zLwBf=Ovxls**Zizz67Z}ZWZ%PTH~9CGb? zFlPAZhdVbl3%a>vWJ>7{b|q0AENQAVexsNOb}0y4rNCJ7Cau7;HbD#Gm!Kx^VVW+= zQj-T=TeXpv fhd)m5pV?#T;c_bbeMdn!cMrR^D2Lhlj!71c-AICb=_L72D5s0*pagPXNV(q} zeZnp)Dv5%IWvXs#e9DNiu*zbG;STRzc)U;sFG;B+S_~#5p03T!#PvJ?U~oz$P&Dvg zyHby5TFyzh+@Wf!0pv;(4j!yCF-SGsHg4k4b?IihB#psDQX7{+fTo5Jm&uX9cDwKa zRB4qUlLQ2NJ&MObywys*y?z!Gv3$Y;TN6aerX-VsDP#)mCW$;Grh0z#gO^_aQd`ik zt-tNDe6;7$Pt$P=adUzAP^E&5q`6As+&J49BnV`L5X8ttb2{ivB6F@1 zw^|W{YNE0U4opzPgi0;!)!>~Jhi5C6OHbqq+HeDwp-glsLCJODN-2B<(YOSn5Q#4L z0PGAR7V&5>)9%uMQ&UhfyoQW?xq}9`6j2xnUKqN(@4y>p{xW}7nz6O)@-biIn%C}p zrUfqs==P`zzjRUD`gn0DTO=hR-zWF*2jqBaLU?ZN+5quk)_D2BsqyB_@v)J0y^7W^ zof|ibLs6y*Zq0z{_ZE|0!8d7()6@+d70K18I{{}EkU-ObSyBz}Zk3S9*6b;WN#Gq2 zorV!0>Rba1_*=j_Op;`PvezR8+!7$EvZ4rQ)D$aOT(FF@6jy_uU>E>lp2?{IH@3Q9 zYzanr97v+ap}R`y=z#ehH8?kP?kH6bnhlrN 8az#!7uG(~wDf+k zeeF+2TgFdSQ_^rn14i~`>LrJ!^B4l*0LF63okUgOqEZp@{f%idL8P@57w7DF$_+$l zUMnoJohUWxGSwclYLGVF1K N!R^X@3M>4lY6rD0G7t!QYj1mvnn@a2GH zr-VX4{voLxaPJx=9l+T;o243X0q;ay6_t$(Gc`CZ)1+|;5Ho-b%`-sES~0enOagBf zu;4sZ(32#gEw`u$*C6QtG9v$E3c?# LS?lTCNw}6!WcAx09g%~#5TyJXE5_dEZwXC8Vc1V z+BBrscY#!Km9-%5dRH!fcOb;~0ELPC6XD5Hseq%`!)OAH=8{t+PtGlS8a%pN5prmn zpT9RU>d&A3;ms|l#!pp}EPRVLjcsR!66Qsv>}o5FKRY87WTK73GcH@2@zDm2CZxP( z B(?qI*EVAAlT0LKWrW;R8qlGaAwcr-}tPQ?nMu zRL$2vnm 3@7)2Y5?D9R1o F3|TOC>H= ztc3$TYF_ p^;fC#QRIFd32QI-DjRK3FB)L{v?@HhUUSUW zv`V&?bvB{CNYp@-0H;a`Ei6|!CHd)VH|*Y1P7#XzU`T>b2S0$1%X!2I!&EtR%f^Nk zG6F`zCm=8fmh(7ScJN=69JvB^Gy%^Q5OJYEq{?Vmp_0_SxTP_%4OUqZ*{VS$7p7(@ z0#bC?!;Ak|QQ+>iZ6Lz0_R|P3)L O^sh&Ap9l uO)wyx zd)*q(PIz%<=I-6$*~P8grpw5(wyM)QDnc2JPHQvpxMi%hO|&f-B1+0_l2RQ(La@E1 zOf(_|b6NzbsTv$)72warpr8#%vPYQ-@SBtloq6r 7tH8%BdqR>P;CSknji70UTsoq1@plM}u%MbX#pFxGAhT4G4g3S>?9DFv*_Z z+@bmLK>v&@Z{Q-kyKwQ-zO8xaWg?x_DsEQq@;}KK6;kT7>+S3qjGI&j0@snYlN7ks zX~q2tak4NzQ t%@zW5U36&5xSa^mN)11~5J472gSJ#Tt$`|&Zy_$8>MW}ZWVn)Y zK@ m zq9D|4++vj|xIKE 3yDEUT}o?IP3r2j zhI@&=43|a1o-xJ42&kX+WP)gT(?Xi6& #{(I{!lKWdw(* zBFHEaaxR$7$QMBC09_L}2_gFndI>dz^2yaWQVyV5Gzyj~6f`g>S&IrmQ2~fyWL7i> zh7Hf3j)V63CYnVdV7Nroj!@9Z6~O;ZvxN_+aJb7Ns1Xi0@i1`rAoy5}9W4u1f=|d6 z5N%N*mMpU(5}`<2X?)gs|Kiqn(e-fG+E&(*2~pHovhl;8f0&LWNB 3_rZ5BKlirK zAp+{yk($Rn?@nqEDHBBq&CAG;-T{rD;c8mcn~v167rHCIROn95r@zk7jb8dP(%m(9 zaj5#OLYSNccHZa|FAzH>3IVoC7)*v>0I?*(&e0SqYGXX2go>;}MJeus5sjQ2p(vQw zKqqx-U4SKljb5UJjsuzvu99NMfw7j3panU3YAh))rw`+s9Sc~Xyn!FvfDyp8r)-P^ zfFOcIy2rs5gmMHB>j3+k!RW+xe#8_aG)jcOHJ%5h4?~ix@o>cPvE(cQ;sXl+TX!*p zz!or3P)C8*W3ulOnzD@9T)k_+d#*99*?Y~^!>)&CJu<;`){K6aimJs)b*0~B 7(G8SG!^ z;1H>LS!wtxgCcS%cLCha+E=`@G5HaJMzzL (zX;o@9EQ3`RAiW3`$%;QZaUSloj)eZ1 z>Yt4sMqR_D|I`kQPqe*m`Pqq_>o5foVA^~}J!@b?T>NU)ROCR^3`I_{GU3Wy?j8H| z^uL>rE_CZlZ!v|}dClmOK8P%FLC>0Yx`&moDv bW=cs0h>TWq1pixnTM5=X(0c+T|l!1)f|=~6oaBgY2}iW zh1gRb6-YtC0XJdkT@hwat{NcV9OWWZ6pV?5wGiaoO#O%MUoD&0$+ji@z3-yeymFk1 z_``*61^ki_;X{om$8ozGtm+CJ< zVW@2`MLrlxZ9p+LR9NXn`6RY;86AA3nKwQaw=QqhTl(s03rFS_*mFcuHUauWxVZsm zD}yNw@o$j((6e9{0SIU%%~gQLq9HqRbH~K#&CvC1^-2^op${+=ZQE8mFs*;p*z!xD zk3T8DdYAU3uvc}Ztm6CwbI;Y=#$U5Bu`;1+vWj%uhxP3HTJd~}#~}@#{xT9AIx@&N z(uo_fU8{0Nn?QYD9$J(vP?vU@1!C@lt?MgTaf1yg5z1nrL!MZe!zUAg9fF$zNAf37 zvM@ZsV!=>j1Z^;gE?$;=Du&xjLe&>i?PKLx0Jw}MozxI<7zqM`dWd1-;{ByyD+X}| z;A;&imZTIR917W|am$KN_x^n}`S4#qKG_trO*yy!(srHszZvYJ=X5NJHWhH>h`&Q8 zxGLS(U+&xLvgGo51;LI=I;r3X3?rzYwJ#s} {7tT7II)eN>07ny#-wlZlgM1Y`2DkSMVLO6SAnG7bFxM@FZd% zr0^r2FCt(pj&yhqbW0QgoGQ^G)W!v>NL^4smN|?K7Kp5}0i@}K7K2gZ$|pryi?<{p zRtSm;a)1wrg=0hJV5$$qL>-P_HGkN1e%$k~XN_~OTaQ2cr;hzrX)&O3bQwq6M3Oi9 z_FlfLQpg*f1BM$IHWCcwHjvhiAR1`22`K0Uj=FO=r;BFz_!$e}M>OS}9tNS$y?@c7 z^Y7-~1%2?`Cu(qZMv1l>8$S=KcI)}2W6aj|m1l t731waSTEnFNf3vsv^i~ai5ge>OxDa(*#CjZ4BnabbaP5v19&a&FlPxonX0cop` zy6|kuX8}c2s>VUlBmgud7sS+rl6HrC6wR42b6I_+a>jG%yMdG+ukL1Rgo-NzhX4`i zV^6KEGX+c>ZKCOZI=-fEKBY!Ac8`I@-ECOm?B4I;==pl4H|1PpLPlvf=`Om;K;up| zp}c3`r+BZ~_;$wFM+yv47LrD$^dLlM5$^gLLB>XYu-g`9{hU60oO^_rhmtOE3lt1t zw;b=IMU{|yloxD6ZJ@KT-K6|foI}@zB&5+dOT-Dq(WKB#BiG#yM@)LfeW7Pi>PvAl z0RaGN0>c_702Ch9iVoddHfja@|4tMU@DW^=5D{WH*kEi|mbG~TR>wT^{AER>N7bE6 z8-HgNM|*!bbkJfHsjaqd-*6dqH0XH&0pq8(f+QipZ{~{)olk5nZqBupZ2i(Qasz{_ zWig58rlR9^?oBHbos9 HEE8d+`2r|w)qlR#weMZi4r12Wml45CmR)0@ zZ2>75aBWvzs;2xtP;#AqmzyQ_;B)l9A5l)>jtyqxIZ@M~GDXxPK$CpAN|-6Z(~HX! z(V;B?S_*6mZAlMP->tni8)6uE*t_H3Uv67621#t1R9u#W5^!FmK$hi`O{)XJtQ>{W z#h!{;tl3CTN$BEAX2C4VkZYD6-+OL i>i+`Q*oPOv e!! z2-2uQ `!ts)^fa zdjap8Ga=gH>TxdRr{mEXCF-r;pC7$-{y)w4ET*LK-~h8YPkLWLOPE;U8P7H)1nO@! zpJRL80#y+Ria=TvRLnXY6bdWgxxBWB-ESkw`zm}Y7h~mAwM?ZN*Ynxq=`VYuLkpo- zbnR%S4`1)Jc$V!AH mu*2HX)aCI}G;iQbqrpVIIB$@{J;8b(5H&{75Xo&F-1T%4_3 z?Bj>$`O30TR1pl3Jhkqt3=CLHEJ}brafLeqbJT4$Qn$|a+;(a8{?_aB8K$E_=Y9p} z%uMmIjSEM|ixT5AZ4>UMZ0P0o8tXmI#jJ!1Wpw2+3oIZnT0F6yw^X;;p1m&@Hw|o- zwB@ygm)#YaR{Fwa88ioHv3iT+u+D|g?09UN>$tL0Y;s7O>D9#xlDeLp>umr<_2u=$ ze)n(r_m6!wr*ES1shYhKdVXjYNkvNW(t&&RU?Iiqsl5>%n&KXRXq6#4c)c2cfMn ntnKPMgCn`iAV5n_t;13Ud7vRDZ&^%ppi{Bk9Ga9$ zBjpPIx%BVMLx->amo|IrC!=>v&8L4(+j*^YniJ?47Y=C-=@MH^7{k_7XL z^P8_4^=UIkeS9k=kP9j$=5EJ9?S0TBh2DO2YpaK#QX0tR<708QR=Le~q^8KPl!X#U z^?=LICx;*KSRu>9b?yNz%v9RtTU%ZD>+c)$Q CQ(ZV38oPkfR`4L-zod z3Ivl(0PqW77GN%@Qf(Fz>SP5R^CRuly`3P-!7vEYY@jYt`}Ly8xGQPG0t7?gQ1co& zFkA!b2?-H7ok&ifL*JvC-@;?g|NF_D#60`{NyV>6$1B9on$68GH+_1>@?!q=rKNwA z7EyWCl4PXd)Ub}dnBQ>pdRmNlroSNSO27jvf 2_p7N8668=q32m}V z5{Z^AreA2$YsOo_4yQmY8PAM&4v0p(AKj`eKG4TGtD&9XHSV+#hg?U0>cYJ*;u)I^hoPZYuE4gO37j^~3luAF+>cSrU|Ap{?A35+<%AkRrJE z5&Kw$%%McvN#4qXi~{(b059V}9Z8T<6#yd1dO3AGABGSDK;&5h`d1m{K6&=wk!_M9 zQVfD;;1wb|EsH>>Vw{Bp=>HIms`lx#ZpqvD@7mA(dF;p3XWkZVhLOd(mw(tY5I_88 z>rl-{tvZcIp`)5+4I{U|p@$t8a|mGbh1lMc+}q7*3I(dbP!zZMcwu?z?eZ$Dz*pp_ zc1=zWZJRDy?o24(Wdc7-!IbO4p*2cYKy>KTwA+R+hG~2s|2(~(S)I^@XDz2OXxi>J z0*5=*x2os2BN-Dz;-`hu(i<5<)Im79UBE%|RvB|{x H|Ist>4tO*A^ z3L%%uaRfT|WD1K9#sicA^qpD^qCjP+x(;^NBO(F6B~}!%xLABDLb1|{a8fx|-WCj_ zsnVg#UxooY&rP6}x (nV;fu_MAz2`)|pRX1`y)!DI`BIGc_VjGxdX!jF+I7!) zdvy`7@+#{4RVp);4pKIl2^-YL*Vk*F9{R(y$DsGQv{T@W`%YIYyou6j|4^ckuV6!S zRjyQs{VQpJ*WwUd1GgJsCWUgb4Ua3ZM#A8FFQig(ZqhNS_*h6xS@b?5QZ-#bLG0r| z=s}6fj+KYH +|9 v3sdqNoXG^pA$z3lQ2dqqW2$--ZMnZ3TLeYAN~ Zw#c7UWokx F37&HSzk7=W zR;C=a#q-nrv7MNtEPLqP!5tP%rmA7CVUUzK+N<#$YZgd5{_)=@n>vm~p?6$0nb8TK zZyuYR6dSL27R97LND=o8wMV6hqo?#w9hBObh11MSZfTN18l;cL*RS~Gzq_U$>}UJj zeq^}rwuf1N$|JztZG#(oNn(AF=vCh2z@^XDPlgMIPd#q9Tzb38&{{Ql`IRHDXfCSc z>NuE^U44hgUtecAtZ^IPzI~6m=Gqg_6s2xOcz?>_R`IKU{k!bx#N^POYBSpx`jmQI zTzv(lYqX*Fl&TqZ1MOWrBtGrUi0kTo8%(;j!6t=`3T;7F10kSOch#$;n%!0QvDXX; zjf%p-LlGRgd{Gu?1tfI?7Wz_<%+L@mMIZ$3XYrVYgH@v&0qi^9S0O*C@hwEPVKfAV z>r(7PE6t*lQPi54DkLG<9I_S6udw%szn-RiSg05n`Z25{>A*Qd%z^&QYne35`OWbU z&U=K-+*@L9o9O++|Mjz78&fW~t~QnpwH`4YelugN*GOpFzP)J9s2Ht@(H|Y#eD1Vt zVgK>%>l!C?_i9Fq51cZVMzt>iv3gmkK_OU%a(olTZbiSuY+87&x*eI2lO$c6Td;n( z{&nii7l8>cxZxRPpDZK_MW%zQ8INk;XE17ey`6kg&q}ybiQm#1U!P{keDD3~aqmrK z;>yD1j!JQ|7@{FK9Ga^1-q0#N$bBMNd|TZ}S}NZmnPOpc5MiAu4kVd;z^82-esIXq zf)}Gi`{Jp=1#lRQ69+07& JM< zV6<>k&9}9^1GxFX#9OV8Dkl@>QfCU+r}hu8G!?U7rIa1w6(&@sC$93>XOzz$dS|>+ zv~+Lpo7eAlx{WW;-hcY pd{!mPfj0kL8DajgSSm_^nI%!ZdqjOaw4uZ zDTfjgY^`@90s^bQFXqRJ=++F_X<`nZ1C+WI=zs}wTRfnbR&dy{0&4_^Afb#f1j9op zP+e^moVFYU?gVQP(dYY*pVrNN z_}7i|XInN)-+!VxesNv(v&`A913J}6>-HPlHhT-+Jo`^gOki@Dv8l)AmtR(ac~6yW zFf8QHJT(uFZ}eWbV)f?o_tEHr_;+*2^tS5UKaPI8edW=anj=rnz)FIqerxTyV%^!p zo_w}39()P9Gvm8H_l~QRq)SbjT0aO#0CX|6K|2K@gFh@ud*;pCHO|hM(CI2;u03ZS zJGLp}Qq0i<1F64DyhmT3{_0Rsz%60K(;i*Zk`ghn!JMYMYAbb>8Sb2`-{>Dlx>UCQ z(rIts7`Qf{O#Z=F+Ek~o7O}91f)2uF?js5y#6+wT6H3b#X!8LKw=R^(k*NDrX#*XT zgiu52IbGSYC=P&OGM)tz*{tk1f7#>3#mpij!0Td_V5+5YJJpU_P^`!yVk?%O5?N7o zk@oO&CZORfJO2AVMfv=3w7B=qC;j`_l@;N$;*5bvR>xCwtA76KnfZO&{<-cr^XRJi zsTlS%W@aptX3{6@2%MYRq5SDA?cM(0fAe0c%T!z$I=xG#>VN7saC!5$|N8d((*d6M zT6JfhEIXL#GvoRA$vL(g7!_cEYUO!-5ow>m`T;VDG>S)b6fb5S(D`XgX@>HmU0}Pp z!d!mHq)#?hl(O}{7O38b1IKo!Hqg6=8$v59D;s2-6n6P8*HnLXUSlkJYTs%Tv^nFw z&6NdjiEv||H0c7#5N|AnJ6mpVAIeX0b{KX_rstj1(-GS?99M}+B_KE|BUn&}ie$l( zI>Hu?pWGG%6QMu>FZy#40G0AUpKMQ&tLednT&2KA<3qP|4Cauta$(wN^rz=2PYO{- zZKzzD;@+4_t~5=W*>h|EEY|m^I*uH0o1R;+2~04i9jb_l{@PeyuWO9ZT};g|MHD3p z e6c7t9soIo~TT(h=? j~@1X!cP3+ ziR}~ewO&KibUS^RcGi>v9B*q{QDSCkV7#AGIAisluqWBxs_xx-54WoctkUzh2ly z>XXnKPDWOdLc~x+Q`{q~zP=PKyDj9~OIVTyhZ78naIiEV 1u^x=D6`>74zUGw3 zL1?(ePm_wxlVY&)!C<-!d-4JUGzo$x2y_5AQVHM(l1(I+b_2wlM_pwAa!5@s1Tu&t zMstH>+k}c7fCTWazWJP(>UiUfQ-|+Njh}_t%q-UHYNQW8J(oZIe1>(WoiV{uS?<;R zH5Z +^IOL6#_19kBHFPlO!0J!}%*Z{+6Hp+jwbtIV|r*^c+`oSsf({~7i7PyG`QOO=KAq=E)8XndDZ z=4lFuKct#c{eU(omT_m-(5_dNr-KR=RE?ED&FNN}4xU;erbN*EU3HCz_pL5M9d5F$ z@veNF@nF@84dJa4C6eX8Hlu2-^8erOaps8L8{x@Q;_$$&teui(t6>UR>~Cdl59-d6 z74D4+lt@LI84jHUseoJn46=1F>^6XSaakC9n2Ny=h)~G35V#P*&5mv4WRY_9AU%QE z96L6x5#&KHAY$M+7_vP!SJbAoMby4|fyr<&Us+qPva}v#ay5`0K{eVw>lvG@DiJ zY{;O^sP-C ~zhJnl>~BnYxFjH;fAi$O;!Li1V3cWC=33u!v2$RH{bLjpWG#rv~p zH+{OO6ee#7l;YB&U^Fx;HImAlKG2Gzus44@{C3i05bxdfR5uiUH@N!N28w*7 _bZhMUQTh7D z?xUxpwt3I6HnmK(Iiy+g{l8G`4wymjfE$kA@$yyS=M)-~cH_|Dr61ge;P~l0HiYYf zM1wK^HMb=EK6}^res9eCz@US4%k-Ot)cJj@#~quJmxm|c3pHwGuYawWI{H84{(H}i zKY#0Z-9U7TD+L9>WLnYBiwtpf;1)mNkJbCu*rea#!J2iUj;8IPHx?T+suNI+>XEWC z51ucWT~+)8P|W-#W^vsTgM=JGYbcQNDSiJ))$U{KU;P+;KYCZ8cUL!&-qody*a`z` z5>YDWhDkv^_A=4JCDJbCRGa=KBjBI;Bz5g<$e0 #TIpRA(pqo)d02O2 z&yYurS6apQ|K8@jY18%J#}B&32Ta4e4Z@rQGo2;I>iydN4?WYCiCz}R)I|Sk8CsFq zXKfO(&07aLhB_*>opZA*D~4LVoj007VorOccvm0&aIjGI5^{bD-9d%I5Fh=C`P=*V z^MCH!R#m}4veR4x%p&OQwS1gfe4wecH2uz2*m@a~d *DS@KKIEVUe|=<7n0nD47uq90e$>iD($8VC^B62Eoxl9zsOvSs2dZ z+{v+z6=dPWpc%^*Vg$HFB?$%8Hp1k2w`*Eizu^h9CCPl+XOmG6!O||J1|E#kkxyjx z*Jq1$hb2taeoOb! ujYgFcH-0ocTRLslbFEVRbMzLQDKc@K8=IZ5Q z uD1^9%C#|#sa1xJuiqXx^~c=X$l`OqK8%U*KDOz 1LR{3ivjZ}4+@J>ML`0K%F-+WgBcS7toa0y;s zsZONnA&i2OOs?uNq^x4aj`TV$7r0d?jDExvYZ@gDQUXU^M|!c(OK o^RS&c z6d~k}OQi_Na71LR6;K{1Ly$!Ukc=VBl2V~;;{2f&&~ozj-fKy&Oc5IoZ)GPXKXFiD z22?SwWgg1~`LuEUv`HWGpk~wL%$-kkhlAFvP(3we9+>Tl`s2ANrVy=gFB2DMn&3)r zcDvJ#&rEx^$)fnkeP-tQv?*mn&))Fl8MlvC&iv!0LBy;%6XZD_p$DnS?9lhoiP3+i z>xR-=5_!T$_36w87KAs&vyB!1_If$7>QCm=UnU=}zbDr0FZ#L1qlj0<=q^xm%Ea2) z)$D!e{T{)!PP@7s7WU}dwR<6Ozj@UiUQ#8ER?bpIjBDaX`DyWDwK1b=7X%OWEM`E9 zC^xNe{N>(m&Fp#eb$6M0`-XwtyCptqgYPwCzF-)at(tBIy{jyR?f;Jqyl*=j_)J2u z0L7%r6&Pzi4s2{3BA5z7VQ{yX;N-wMfy571oOF{bL~z)f2n6zU%dv>YzW{Y2LWn5M znqh}juD0Btvowp1kB4QY5wy$x+AuQs9wp}DnWG&aN_V(kpNjE(=-^xN@!P!v>uN9S zN{1@W4|T ;wYO?C?+dqt|?(0F!R-1hr zH0)R-JJ! st~(xt>-*nVz^cGF6cWP^K!if6(LMnk(fkU$I}j zd4KG9YD(YCohy46JWhXJF*8?TXgyQjF=&oUmjyL~ZoO881zWkTezoSs8L`S%K%#XP55O{Jr$pkDo@vYb*~x zo-y7dQo@w^s6*fC9%E(CL><1Gw@a&l1l0pNrr5MT5-xpZrL8zvq8)`t0xEdnW^sPe zFQ=x@j6+5Yt=;{Ky=#gO%7y0&jMbSL{xY*m;I>R*9^VS+cREU@>_#DMH4hRJ)v~a* zP~Vm61{Z0l6VNh%1yjg(vmp8{7)DM6ABtNBs)a0|_)xlSq^*1rYtQG96w8u8=L9ZI z1mtW|8cAWBG1>H+@k(`a^1a5u(bRS?B9BXtQjYD(G-^C8q2;s@S;W?W7YD{O&bjMW zj(ss0v-#WY_@hz({kmu2?c7`TZ^?#qb2Hi>)Gk%M|FGO+v(cNyPPCm_t1^1k!j8>* zesD?9nf%rxQSZHLJkuKW2cO-U-WH^3nHrm(%RF9Dx`U!oJxjcJ`eNqUnX>Oxtexz! zmxaqcXoJCNiXRB|O4p?4Z#KWHsMs+uG4jGZ u_*}PUsq&2J@uGiJgbfg#2*6#Jq zUKurU(V2;kGofG@D&pB$A}ze%6DS6OI=LsKM3VsFOKAIN2Up7!p^8vc4>6TGpe`K! zO?&!6o=W_QAGwEB+6xeulE*|W_7MwP0__zip-V|-;IemyE%$Sg`a5c3^RiVBBw(7| zDzLI6a7zXk?F+EYIZ$vh5_=y2|EwK=Z$jIw;ms_VfP)Fviclh60EcEz;x~~rsj2?g zDhPI$jn=NTl-1}?Jh dgXQF`=Wq9_%RaWO$b neYX-=k?|B*ZOau&7x(yZr}87KpfY1&cYr}VH@sO^09!6 zSAqS7;*loNfrntpBXLoJ*^O0|rW`Tqns{3XBK1H_wCj bQwh;B3)As{tr!m+?Jl`sU0J4B=3AfkQ{iJ|kjiGa3Z#TGuh*1ht8L3-i!)fGp zg4lvcFSp@v;g9^eAWlkxO>d3k6SB6Tkk0)?4B=?9mp%1Gbi;{oak$ORw1L);Q#1W= z<+c9#%HwNRrK(9+eOHF_hjx5w{RmB6wAFK5QYnl~Ewr9A*=+S3i;23iNjWi8>dk&L ze`)J^{+U5dO{rUP-kX7lP3=QVy+-Pu27U4&-rJ${)HEv%0-mh%SnIPtar5>67 z!=CN%%1y$iZ;A8&Lzor&3R!2t>JW+b*L3WGbjQh2h?9m8KxW@XZ(cRLNFnRdHH #E6cZUfCO*>D4mEu3>?xiLxRIs87d*d6ZCZZR&D!FjCb5^6AxY35P`kTaX~2H z@w17#&yl9E83L}(Un;{3Ko?Ml%5#)<#GOEiVEaG=A(dMrS$F{`Rlphs9RqiixGbEo zEcODA!ysZ}>#%rE6UPtqfl75wCornHee7k8Y1SK884iUETM)AEdEPtYIo-+CjG({iZSR zza(=}{o_xMesKQr>b(A`Ob1acx0c5jw)&O~)ja !>HKJ06#yj)H%RaJYwVyCR3DVgYcFrh(Ob;xqD zDGp#g+1S{$z(+Z3M>A~5|K VMnQs{*I)RVetB7rFY ze~Z11m vf*slP=wEfI+nEcaFM7^-7_^&Ri}C+47S^tx%u=b z7W1nCk0%fNriU%?;E<2w%Hay@qE$@crOoGRKdDb^85@c;H_bpaeA{sUW6d6BdO%=> z)Ph(2{Hj=7{IGnTS8w#6-uEu`4_utnzs;9mVPmlaGt9bh2R_B0iK^lktEnjs?y1J) z{%N&1H7qc3F^A&*1Dd-0qxDmYu0DKYs?vCYx63sHt#-R?c{cEfDAk2bTj3IJg@@XP zM%yD%L*c=$+!ee!Ii!=92N*bjq!PF=N#S>L AJtlBdSX z#FQ`e`o#oQ_KFn(*-PsB3+S>FX>P2{k@19L?^Ujfp1py|LR(G|p8ms%^XEs;ynY+! zy?Wx>OQXu)-mbXR(?VgPACGMcI%8}(5osQ5nle~q#g&uSH&imky3_}(+m_4>x4xm1 zbBQ-9WbaZ=y-LeWsb8y`_(S=Zxnlm=m#f|{JvUXStuh48n{{z(Q^g6%Q@1uP9MA?P zicdXZsYcUvY!R8?n0h6^P@L|&!d(^`Wj>@u`A!mPGY#9xN2_{ *>5!iWN`pK5xfkZkSju6DeiD>lz3 zY +2?cx^9gFJF)3% z#!UQo2k*s)LWetbZlZ27Z`M<3@l4+M*CqX_**WpT{}3 qdD*V7j zFE`Y503DGs4ifTv^|eJ_ZKZ4=hp!>|Py^q9F%8#A@A`FmMa@ zKA%9Sq*6lL-T9cWHMd3FvkZPK4h=ZOXz7tqJ R#rETX1MaEQG z;Vuox02-^{@z3N*)yrtqcrRG>cpP3j%fhpy`e9Wb|1(chYA|p>++=tti;=?C&pfQ~ z8`sZ Ugs zG8SEah_=&Oy{NXw<_NF?BDFDGpyp7B;LO! x;jDwJd~O-_$ncPZ-(>AG5sx(MwO&L zyW#E=U=km_m??FPj`_yj(83h5%C*?3&nq6CK5OZioKHE;_n UvuA_Q71i$oM3P(I<&D*y*@ z!zfXO@R%$f{i OK(JnoLu{-H$-!X`UC?^A5kj2t5&~#Kg(C >ypCl?tI2$YtBDj8`6JAx9iRWDl9Y{{W&e+(sz!*?iA$ON!^5ghw)=Hb*~ z)834sHO?D{3nEh76Gbitq $&mVs82cf<~pZ1zU$H><7hpy*pl|4mMjn+M0``IbQ zDL0J$XDimnd;FVeiD&=mG4#UtD;EaSd&|XlO&O{b_6V;T(^wl(9TzR?hdiY(#+PP} zCp*+ p7Vb^`iR z&8CkbNH`+4gRG+zKf|JxafY{lyNSZRi%2FvXxB+K!0|1h0>5iB)YOrtQ=<$ z&RVO*0r%lz@paVp%w3)tVjES%`Y6>xyjW2twD-etrMaNO^-)Wmw(z#3`R2$G3_NSe zlPu#Sz~iA*L<^`sLa+zPGXO1+pVhd912CWv%zYr~gTRr+eTfP7<0{cb`WXeGH*xy; z%b@@EytNLh>}g84+ZK^1sIVO|xEGS{?Ku%JoG5Z;rTIPWv8*rpoGCh+-;vIadf7`a z8FIL16LX}(Pg@@^Os;3!H?;UUyZ3fI!gE8IBAF76I6HhY Z{v0s|+&;RlIm`mc^C!7C=+%!Mj1gDx+b*?B7-rDFNDNhVYdKR#k6~^4NevDcD z0v^j6{pbs|Sop%^b3u69r^RPojQ7x`fO$jzRkUbZ1FJBuiK<7{&Dc(yv2*1x(kAQ$ z_Zp-tGHyypKw>foxGY5|LUZWK=8|dIVW96O%WxbiS(XGZ45IX9JQSW#1Ro8a1GXzU z4y;oY0a;*+?L;VHi;$eIb*}lWEo49$59Z|b1O|qzwDdDMMUE@jtfDEShb-;bikgSf zZY}<2w3+Wz+f$mP>Ie~N1Y^<5w`Z2*?;@%~c*_qG^r8oh+pLxD#)m9oRlKYfuBUb; zr@7kC-1n2U>8}qJ5eA)D?>Jmk-+X6c;ajH1r5#_!KWIIM3a_Y^ObF4f0k;n6S*mGc zYUoyWugB17K8xn@V>De2G*_|sYUSju5wo#s;_9>e?>}UmSH7RU|JTsZX)|}c^xFQS z1j~k$P-9j*JLrbzY{)mR={Y5VKTj4-tnTdwysuIgOfGb0q4?O~=s({DJ*lSM*?jes zyKWi+q5 `hJ o1&+
146~lx0I(Z*RI-YunVLYG*UJcWqs=CDgTY{qV8?!!4VH(5*qCmdxqF z2&z_O+jICA=8q9<%{7DmWBsP;b>}^vUHb9}i%^JH75?(ao6}X(=D{67`j bij++TjQN~54_C=hUo4t1^zTPvv`;>*$N0Tl~*qia4 zE_G1c&|rV?+4n8%w^g2rm(cMv|99ep13Yj|yFhpjl_i1XkUdg4W-+Tgc#DLTy$G8k zp^IQsFg*_p{S;IL>Jqrn$+iM)r<`x4mO{2iJ_jLZsS!Dc4-5eU*#VGey=LhL{afAc zj8z7Y{mtN!jFO5KJR6_F>R8WNkGjN=H20C5iLWP3d+$E3&ljZ?>&^Uc8WnxEkR__~ z*(&Tx5bwGBG5dKSlSl12EHdkzo5{l^?PQaFdbn10_^$bS*?|a1O*-}7`>4|V^7q5r zq5+|5y1O>xU!SkrcG_d~$7s~D|Ni8bqF9 cq*=iq=ai_|=-+x}Og;=r18RrOCtWH3 zLMz-VoJ4!069wjkv?Gb+k)EJ;vgZ2t>H5ck&KvCP`dWk5)Ze}EanPwS{h5}11LJIm z+xIKn^Yg#CJ0>mL>H@fhe25(1Fp<$4tqD1}iglpn-dE|KSBxG-&F44&HDSK-=~2t* zlkUd@U+MSu79@&2-`|MI+!qubm@zT(@w4@FGdH(SEijLz5uUiql4_3sDNCQcDn>KR zgYD+|-+9uC%>EY0uKsHOpt$dnrz$?PDCLWX`!-vizP~hd{OD`LR(ys`*O<<%YqA~J zN5?<7^ksD7PeE&(+w{K~=Ej$P;`RQ0dWmt4MdB05Mh})-LhD{#$18@IWURULdCU2j z*DYWv?s=b>dHS3BYiR=6O>i$&N(&qnBUpI8bBjQ!l;$~reUYy92PGe9wr$A(Q7^7P zyz^O(gyM3wN^&9SSFD?zXukgWbTWuXJGEWi_TZctL=YK4NC%7+9AkkQcam@HA2i(6 zZFd}VI>4+tyH`^yGT~J(Syef4bA~A83=O^t3*?7EXRi)lGe2gwR>p)hdPXxKuwy+h zVUOyYN~+KO-in&TQzVSTY)!M+#7k3`=)RcwakYo6STtK!QyOhYZeGc%4*8yc;?T&Z zzrQ_5|9$pQP9@mlR3D zqkSteC=~k}9UqqewByUjBlFL%pa06SHH!Uaa)`3F^j<9KCeg9kMJygJm+EIMZw~+Z z)^a{N@#C4|BU7b2j ;atP|P{4a22zXPopT zlov#R5+IM1V=cGiy71`u)CdHFy^9T{(?Dy1feamp-C4Xq)eWcso?K*qV;=9*xA;lW zN_YRdmBTC8GIM5tB04a_eCwfcQ^&&l{jE1Tj!WlfUHC&aFZ%}X1ayy>YlAX%s?H(% z0WNoiaL{MSdfJ?lS~L|qW~|+`Fee_WsSPXJP8gRkS!b?QuGmm{*Tf16oGWaNa6ii) zKcY2 3z=c;EU#Ls_Jbrz1#1-CS zniUxj79Vq~I(s}XrXx=z#aIha>MAJ#gJ%0m>*Rc#Xn8PxOXx{LLt(78a~V9Dfq^Ma zC=ihs6Z?=0z~h9X7o7OZ1oYBwYXs!>1P&13Vm~kh{hu`yV?(_@u=Ud3h~b&mNS$~j zU>MyR(UTKqkg)xjk_ui1tJ?3)`x_l;mpu0PSq{zfpH$QaIyRY`-TPUshg~KcOe goEXh39q5M6=%sdw4)pT~<7nTz9fT-fTW8Sp)H8p=NeScRLJL8#2TUh;m z^|t2I<;H>b&Hs@scpv?=w%L4Sd7I0Q4Px0?(r^O%fU-JsJ_yufx^w!9D6h XZC=)n>6FlI-#Dy8+*+NTa5aMeD6#IMzD5#%fF6e7>|gXD-MH!_)$Sl9{~&U^G2?4tPom9mr<#qawH2Xyp ?I8 zNmHEBpG<9BS~+RD+orv+R-zrM$~^THkGiVaQIAa?Rc^(m9bc|Xq+g$Gn(iqJ$gkd+ znfc-9XWz$ouxBg$=Pa!uYckVSnIASW6JsJhrry4Pc+Rx5kOCSH FM)r#4{GDb2#%xB;Z+ac9A!kduy1F$h~}H8 z0gHtIVtUkdbTH%C>J@b9XIq`EwRoODEr2jG|MmDSv0^T0lEu1 N zqfU-=uT^^myzDoNqM7kLUdPa;>vJ0?{BAV0l#D^F_L0WwyH%IFM^xraT57i puN+Q@gmrd*j}ix%EA|-FMnO4-Hqed;3fl&B?ei=N5kXe DF43B;UEklk&+pOtqdhh&-<-#JypQAcdcM>qT->MEb@LJeE&2@-4s2~u zeAF-;?a2$@335Jd>Kt=eA}7B&Ed2MeuVFZp)W?Z8;rVU!+uw!B!uL(O3Cl-{RlJ~R ztRj8q9z-!X=*=V2Fc4W7gYv@&f*xvrY$f2Kt^{|81=}kBo-?UjK{m9Ac#tUY9ejR0 zL}hh&uy+4QxP8deE%ED1FZlc4B6Fn}`o`9TfauZ3z+dYY*s}j|2lF|A^|xS|oEEG* ze&7B+SB>kFVUJra$S-cP1{)91FK+gCK=^+5rN`W5TNAZ)9XKhcoy=@m8#19jAl(j2 zshKVx^VG|i5Eczh+IwhxA7@}Ane*o0u!n93R1QBCU;;x1w#8LY_p9sFg)eiKnkp_E znOQM(tGqstl><6PJ*qJ3t@mFwOUl9P{?{-YemJAvuUWUzF{ld;Jx%j8*;kUlsmeDd z99H7#8{+YqHlQZ7%Z(mf$w@%sh${{)B0NbV#lD%YkmE&INkVnNxg(f=yca>~o{Hrw zimsF0au$>`8C3bJGMxE-X{E>-D@a<$V2jge5$HCcI5I|SDvU^jutFxx)<$t-f%#(z z);%Vne5K0M?ot&!u;5)_d~cl*RC44}dUa6M45KQ2AN+`1a*qJm $rX350q0hz*;@zNAgOdlLj9=B745_HDm=#kqOuzg8G*WEbW=OCDT_gWL$45N}@x z4gWIlSvYp#?HjL7AVUuV|D$K2#KXjlGBHCzz(T>Mg3w5h_RxT#3u|wT07L{JF9P<@ z!OGPkn*qM;n}beVfYN?EelYM8TGtojFe1qv#JAoZ(d@`gRK7uIu*}f=d@+4NiFh0v z$Ktrk_P^-={?DCv(Bi3Y51R{%u(jCsZ6g!h1kqGv_Zx}g_K)ZBg|Y%K&(t|?B^)T* z=x$kft|xW&0`XFIMH+qgySchCclFWvYp%wJ(Lp5`OePlGg3zR!%!Lx{L*`t$-hR)O z&M|beK_-Il52Y#oG!91m`2m-3XZKWy_vgPKI(K{j4NWLTzwAAqYdI|kW=XvtTf<7) zj{nPBSl3U;^ir<_zh>sHXi-31iO|JpG^5
2Jjk}XcTZ)KJv2+I#z&O$!Tum|?3){YyJ!4|F{swYlr>-P zlWmjL0?G~W#(L>}WZ(#TWLNNdOXwr?<=kE)mb`luuS=J_2baBdgiV{5k6}(6UMvbQ z_dI=#T=K3R_5Nd-Hb_X{Z&>n7UI3{W2Fl#DSLbkhXYxEVYMz BrFj<$564xS- zrP7T@19ypMM=l-x#`5vz_1yI>b;OX72B4k06|(x`a(|sMbp)s>h%Tja&O(vTxipR$ zNBl+lcnJ>T8}7a$oHPjDYqF-sux-%t&70^wGxLwbE6eKtbw@SXA$+Slhl?ATF_u&x zXo0(I@Mw@XAyysyjxIJ@A4K`A)qnm}2%VjKT(t~&xzPebrbyhGq0=FgF4>!nRVlWe zq$E$h4_;{_vnxEGeryk=xDBITxOZUq&Iv4SZ}r$rTx`x9rvD!If&QFV()JUC$&Is| zb>e5*`rYatQp=Q Os3y-$4# z3o9hvf6;YJm#A(x#R93Z5#&|-OOHF;ZznYh;(rV6Xaa}!Ol-R2JqWd8+#beHuURMX z*EIA+b89@@3ad=pjO?nUdL$6nHyueWCA#dEB7KL}4=~V{HP )MGY~ z{AQNk;~9oPcwgr*)-JWHy| pyr8G~WiD!qZ<$2sz113taK?qV8MgH?b@E-b8u;!yu&zPWbkfkUBBUxwgt* y0&B&d>A{9 9>8^(5W-_Q4Xz&5f1JZ!n2l9mi%cf0)->wWtC)&El8emZdA z)q%aozCZIZy? H&-zMG0KaGE#)T8cmCN4G73N&Cj%IoAVGL4hHJWE} zpwN@SHEs9k_sizFlY3%UK8eQ;RF&Xf31icH-ZrW3ZR>(<;`W{>?yS)50(Vwk1iIVL zPduVu8LoBrP&ZS32N)O%G)Fr11G1s+aufe>S^Q&wDEusZK-jMAqTBEH!z}=B2%2>F zMtcg{iB#jnEztOEGr0(x-SGB87PS={T1gVazK 1Ky}DHEwqc=J(%rcXbpferuY _VQNZHT7b_h(Su7EkewR7>F z)jwfu?6be{{+xdSe%i16oVq(1$HL)m;;@~R=E3jVHi=89N0{L|NRtTS0OiaBx(`;E za0i3?piRif5i!%kRK0jyA}qqlKTPdh_RO50=9(c aq!8e!u)jTz=;~ z0YrMDS|mIHo>t}sc}XYVx$wJfo&>Ed&YU1>+C~lbV`EQb^sAzI$u`2asgbU#LURGW z)0i9JL$}3uZkk*fXToP+7e%_CHL2msN*7B=;QhiY>viM#E3X@KR~FEBPT1U9`tZjm zaew8+YrJ10lY)d+7`U9jn9Btp`g6SiJ7OnB5`#~-CUH()E$L|D)rJD5kU{(X=c2t$ zJi2!WgyGQlmW)n|1F7o&>;Hzxvn`uDTm)*DS^-E^qz96yb6* E z`*#xlkE!8n_gva{XH6lNPq<2kFBl637!PAZ@5CLb^b8u!lP@#hxW_IOijB-r$>$pj z!lRS0O+ETj$Fco|V>jmAE;U{DI&q*Vp G}jN^8rn!smRj)F zx`Sc#j%Bt(g>>KuqnL=SXhkEXVNI*|Z0GZ0(L=OY^e`T8!}X%$V5ZDgA8M;l?L&pd z339$Xg~FNpHyW)XF*J+^#L4<{fI<;?soB@J%Chl4`yD@X`70+)OBnM01^<2WANDlJ zBJrr!K*X9guBEp~$H%^xb(~u=XDl&?bNh)n^0oaI>yW&S(*~`A_n){*+yV`GG06uj z0`Kql1yLI1j~HsoiDRkfbc_`3Kfg`K< H`9w7#}|5BxxS~J2q)1 zX*TnO&Hpw+CwS+D_C1f{v>QI{&{`iT!u&xP`2(I!{3B^L{y?trRG!WFu??Sa-d3~U zuK6(IEnha|L4N?OY)bD{2HzDVkhnDinCyE00t_ VU)a>l|zQb5HP6wLVp>~K9{yj)897kg|9Bgx$USaK5Xzh~*Iqc_Og zNzLnSpDcA1-w#M$j~uclHG~)cCZIUzQrVUK>%(|{sWXWMC?U-W4_hVRBhw>XNr`F< zP=KfkmyK@}><%nE zlQ?pN+7p{j#AT(l3e1IhAFt&szS^K?>J9zOS=pW3ZrIlNb9mALxwrY5y^7#|Vn5-^ z%J|1WH0Btaj`WSk{(bDnT(5-vYBE5+Fgi}T3C44RR&e?o21bde(dKH$wL~gfVjI^9 z+1F=ooX`8TRD^z3Qb^c_i}kVc*~QrqOWa)m=Qv0&)LpYc9^VS$x?h3OGVk8bcn!@H zzrZ=+Bj8Yd+P5n2m$67W3FDQxPm2GR&a3Ka_!)Fh9&qn!YPsM$rp+O%Fjdci=Va9J z7ZiwN=aMi1n&_Skt6(Bx^=je<6{eiHhDaBUkVIVkCxu=Bx633|)4RwZ2!M2iaWSm% zQ16~oVO!a2*R+5;que~^A~;p);vjAcW+NJ`+y_aPzw$4|K=oZL&vVcNhG7^lrO*f1 z6<1TG;)+^#m5s+srN{_U3CZ@Uqa7Y27V%hmP{H__ODuRO4qO*8fFi%{40(Lj>R?jx zE~$>;P|>0WH^-FmK!oehm@lmSy+QfnrH^nEmN|jZs4HK~vr$K%=>L2>T1wn7jgpwW zhGtA#8`rTb=qfS=?g9047>m8vQ6#I!kfdf~nNrFNMvMmG7RshD5Hj4L9V=g?f5<2^ zt-LsJHLp_ktRS`DZ=)PcFW tGZU^h~=H@D;hcATCOhEB<)8wHnfxK zT6C?A*^0SjDZ>AUH7$s(nk&Q&Q#m@znd!Sg7EDTQ&HX #y+FuXkv 7Io-SX|I3jmekfQ7Q1@^KogAX{UqJ;kIIjVIWoYdbi((% zgmh9X-<`N+Z5c`y8QsUr-ue;}b$E1O!Z7rN?ENwH+E`o`Feu1b u0mDqr+M??~rViaa%7l?Z9gcf$kBF*PasnDV N~$ zHf?RO |j-hPVus6$Zfv|P}YI&`_=OSe480B@>!A{Iy`ejj578=V;qYclR zSsB9&M_FOHtW+)qCV)V?TrM5p16sMRRiu+qW+Bnm2Fxi&JeI;8uUXh>U%#>(JNf)p zo$H0Q7s2Xxl?BR=V*vh&Cu|Iz2>8*i8qBT+*FG;W16B#!X(5m6vE_y_JCBQV@1!q5 zbQQ=6FK5J9CXV!S%?g8&nW`fJ@xWrnd_VTzks6bZMQR3~jKLqj*XIa@-`5QF+Mp9Q z_Bieyi1cQei?G$Nv|cME &408NB8 +$Bm{y8nkNR;Vs52yiJ=cH{Ob?V?I#9lpq6y+dZ`C8@4t4*g zC*9^6Ri))MstpsWwKZO{8zC>6e(AXd_m6#B4S$M)6a<3c+r7t*hz-x0tY1vO#AQYK zIvj>lK_VLBb@h?R%L~_XpvkE!Y4UphzNIuRs+%u=ZyI&cdM$cpET4Qo^$dzb-2lah z8&u(Wc8U2`nXDA)azA-~lGWpT3R!Q+DXH%>KdxYe;ew u+u&F~ddSOP{ yB8(_?pmrBmA zVH}qE#w)1|i;noUSMj<60amgIv|v7mu>F|b#4&8z-xwT?1|Ds-{F*i=E@%E1Gks~1 zcX^yX3qOalFMXdLX{E*cT 7lj?A1FdN!RT%4`9mm-~y(|uc7|AD=( z{az6zs*qmrX)4m!wh+pYp6;~x}RasLIgT04+ho4NpAh#-J#q~A5(P>H;`nYatk zqW5d~FZ(!?r@wsISV~Zyzno&Q9*p3`$q$quJ;JrLbd?hjcz xTT37ncv{=Wt zRjf=L^REPKM=gG&*o-G9>qYBQ&ICLq&$e#xt0ivA`;>q!8^bZ>ORnbRB~z(vIPc}g z$)PNbNmGv031P(@*^I{Ut+)S-bcHTBj9AW;>w|#Z zT_(h`tB9zdS|UyZlOOU>@S3|9((MZW{_~UDSVtP6UIs7pf; 6vE zh@nSD?#F;5%T?BQ&_%k|hEe4hfa<4vag8D45pz-P8#mvwY~0-^f@)+$Bsn2Zoj@L7 zisvQxI56SBmDCn@#rZVxj(+^>^Fs|aDQ~%w?rXU6O7rP^-1*3fmFf&HOI5{1*c*UY z5#{l*NuE6V&P{?pKOv0@6KTkwUQy`PpYtv@V9})3zpoW(8Wjw-tt>dig0n$aY&L?} z%=oyxzjuht%l(HJm*+!qlWr|Q=ChK8q7tk8SOI?NghWG 6v;gzxRORpzQ^%6R^B!(|R*A<4= z+wiK#lqWV3c7zI9fq~~Bb0ZS7OTZlVZet6wrY6f3V-cjZRPt2bJK%o`QOZR3fdsuh zTqkQtWtXC_W>?7=g_X+pL(id~ E{Ww5 z@WwcSo>-h3Uiuu@ +l!A@VsBG;glDV(Mt6d>K29-SvJ3V9aTg5Trv5$F12oc$|0 zfmcG7Dh4l3%(YDgcQ05_j-*8*=XQ9V -JGecDN&7 z8nZ!w?6&3}^($5nP#I-P>@_+X0zuz7axzRd1f4YwYeyCw#Z{jc-8eH5sk{OpW}baL z4wMZH8FL&RA;WC?Qet5syjomZjI#lGnwGG$)UZiVxTE`FC?R9ROblo^jHrl&C^=PC z&IWKo>tt@k%3Gs29e=A_hXmMxSKgCt!fqS`9y<#a|F+tXQGt}Y%Odw=Sx?U4Sqebv zY|%M8s{+QES<-9BHS2c)mEc#2y5NJHcyKUYfOv;uYN#_&&ff{B13-DS*;#aXPc(aU z% F9WbPT$Xssi{c3lLFhUe0FeQ!>r96tg(gzUvMxm{ z3xS+DcB$VlO$0c$G4#Y+4$bJmqnK3}C!b5F`@dK4c;72hVJ<^3Nn+3g(Gj;AFiQur zhmPGD<^@uA&0X>aoxs$6^e|2qRdIDMt_hdPYtKQLuK7`QANq-2v|{*K&I?o3tUxwe zA&wrY*tbfg z*#^AkP?zALm_~X#qrB=Phidhu)uix<=q})T!-^NMhsb6<<_qCD54;b*u-up*YQ20d zRSr^6P<6ik;djd#DJH-KN}c1~aSu_&lWEod7g5BMAb#6E8F}y^2*|pw#Il7sdL)$1 zw(LbZ5G{KTU9jGGCga62KdalV<6nN%hKlE}@jbkM9&usc1{RJt!0jjPOnPRes{WS? zE|6F?(rgj}Dfb-h9HQ$=7Z ?o1&MVUuEQCSt z#9jVst !6_K(7>uU{ zF$>33wa@Z;hO523pv}wPOhO)WaAYjB@UM`!QiLORklc$A{O-$Z{vt}UlQs9@Yhc?7 zo(SSqjqLbD^?V+8KK+EJIdCfUJLKwt(h@IS3}o&m(c4o4rs|Ocn5q$Z7dPcvDrnI` z{ggHP0~R0#+()!|E2FyXvFf<|R2iOF{J1_#4r4F{AxaVN&>8WZ7t32;i5I={a2{XJ z jt7^Eb0uM#_0na ssa6;w)ZnzfUwI zs`CdCeME%K?i-_A#HxA*2;GXuWzItoJwh~!&Q7plF!h%zZ^3WPALSoDEV3{H>LGmu zR!bg>6p)}rUS?GJi#WQp)6|Shj}9=g#0d|rG(7-iy>&s8vpjPwY)X?ac$nQxh=KKD zT_~po>^5X~4pgPE+;n^6Sh7e AKzImIedq(GngB(mVCGX-YTFTBig zjCx*dTx&UarC=dKJrYZe-@6Bj{hhZX*BrN_n=CR1zUKvbVOLXs?*IeVj| d=Lhd~I8dWWso*%9X?R{TxMA?}aqqw!EiI1Ue>BSfONhx=PO;XO&BZflum^|p zmeFU9@Ew~;XY4^P!ICEE@6Rt&C!fS6FmDXwxKvS>V8hFIQ1qM|%cZ1#!-5?~E3x9T ziuMz5{P!#W{SW`d0k1+r!*ceN9u{?{0l(}?wW);EF8`GG_a=ECs vvQvzQivs2Gt|ACQmCG*ibZO^$Un{zs7z16eE%ZbLUw@L;|sND}dK zfRc%VZ7}F=B?aGT2nk>9dZ@zn#u4IG {S_-C- z*yvlc3gI;PI4}`nxL8FI&*B3P)AdM0&+ubd$PmOMnrVAj ~sFsJLgd-8LZTWXPpY<2|$;V65m zldu&d9WEHOP2RF)7A(sgt^zYj7opcc9`C8foG|?B{CIQ1y`XdV4%~nfEf3lj^0 oPB6`bj^=GGsA2ap0Tg(l7*xj@=Y`8)dGUY$8!nKjKIY6(eDtj#R|h zjz74IqdYsksX8(~jtleB1Pr&P%XBIjLzF>glGEE8Pzaf>Ct72^qxW~%VTOf}@ZU$) z0qLEH+wyZoMU(MnuGyY-HVh0TKJvrIh@D2jSP!#DUOdIzM>g4nA+&~bwGez>3 zZ9N=blWb}70>vvJ?Uw|9WtL1J9iUkDfs*>zm&iu41+9^hc<$s}oE}{Am_~Z`<)d5g z!cPww)@(VI@>sNI)s`PP@hUB;kzEQ4rbxXb@~szsTKxfjLA!H4_Wf|Zh(p`20qb+% zjf}b*>T2V9h+4Z1yhKsX0n@XvRej=)4mK_+G-}|8tY$9d^g%@$W|&8kJOGO#zLLk% z6pLcEyITM!wO}1(?P>>kho|1k7DND*zDOP|J-r?n3K&|VOD42!o?;Mo^3aF1LHV1y zar1lDRCqiYg|4%);*f^NgR29h%u^knOLOVLPx}rf1Vh-t2s*-;G43cElH tV?c!`g?b0&%R&wtr#3O}1AKM{-RfUq$r z*H}=ZrO8`B+fWI$b{}?Vb*KTDyE&x1mDCExYX=>Odz=S3wC#LQzV4krz=4T^-+v(m z+EgEUa--p!TOswe&YSB~(E b(-^vcY4F|Mk8epY9v7Uf`dDHMSmUKSS&a#A9de &6Wj3m2 qN}8NyCGLz!4d`80HWuXN#z~w?dpqVQr*r{nSLlF% zj%8XnSQb`&z_arHF43q)aNYjqxD{Mhw^bqjb>8Rv1I(OXlfb8ny-OFrh2rWc`k#Qb zSRl2&kN9bet&Zk`B(8Jn)u;N)tU?SF(!mC<$&UA^R{M&i56wBc%0y=_-Kx<0Ih7sW z9kcG>dXP%m>WF2dIWy`cCR#u&53wxnB?W=oG5X<4+=ADO6s%%aFS{iLU8y@3n6l9| zfqsddjhs`sOp_AIV=e0FmKu|FY%dy9=^jRkFzt6OOOrK#Q?dbu6neAiyK`l(g8)SZ zamW2je?lNvKb`@Htgg_dLiHRP-j%-=84MuQK|r@WvlqLE^~R588L@JjWx@c nlpxFqm$i-`R$()ROkejTu2>*lPb9BLGTx3*-{5*(315jRe3X z39YiCvII?%Uwjhs6;)(>Rh_yZdEeMfPBlKvPZ04P^t%(tcXt6J(!4nI_;>6QPe5;6 zl!F8`*Cd>D#)OY0QA&LHVvR*6-cgj2f(6dZTv!H1W;z*>9!P#Zs??e61BQNWaYFth z6~MwPz^3*kKRS$tU-i`(S9>H;UZEJ<(KZ-YBBabgWr|_RpG$a}P?Aj#9M~h-x1 ?)4>cN6ERp|G4^z#-30^4%)0fUW@D5ipS~@N61pBIk2n z6Sgld-}CJYL~o>5iHwCL-aYU5xXzhafz@`s^4&7d#K1iudS*kMfDFv ZDly4O?EnY%KTyf|T=mFYP(@ukS0p3Eey1(fjMiv=1+N-7r1Or|9e7E^6M8 z1c^O|yt0B06m}yATu2px3GR`+N9Avx%-P)gUO}0v{73f1guLa_CigAjsf|CS+wr1# z_@``Oyidq!;7~A#3u}wTy}C4Or%M5I81Y>Cy?_5Rw^EhYR)Mx^p1wy>ZSU|9k%0GO z4f1HC^KX_sG|7+iM#e_bk>GK2XewX(GuYncW*c4+P&}*$U;ym|Vw{NBfIS?FTf8bB zXcste6;|sB{%NL{%QJPUy@3hQ8t~a^Y(|iiGTfyD$FbtHlm#zd#AybYo<%E5viHX# zF!5llKsH8LJ`V|Na9*Q}^c)EYr1CXbvGEL4Jbv(~Gij3~=3l5P5l|D8T)9jA$34&r zBUX_meOf*#?pim-1%elg%5^74rD_w;CmX*_AH>whC)_~{Z^viq5cJa-;zaN$6v}@~ z_o}@Y7k9bju43|U?}RcnpdMd(rro^6Sjm5v|4~JG^&^f^(bglvb;t-PaoU{ng*@hN z-!stB@`}_SnUvQHEX3>XKip=Nk&(hp@)=uWs(_)3nKexI8fOBgoW+QOP{|6N(6ypx zV~49__IKNBt0~@p uGNgS4--7(e$Zs*Sq)gi$F0olt T=;s?UjS2zt&Rz1=COiHE z@OXmSb-Mqa5XM?h)nfARLswj(Qb1k`KJ@Dkm{QB>1d@cQOQWVC<(o^{&PXCyR