From 30c9642e2939026e823c636d002e165a5a7ba20a Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Wed, 16 Aug 2023 17:09:36 -0700 Subject: [PATCH 1/3] Adding AIML Module --- governance/steering.md | 60 ++++---- .../aiml/inferentia/.workshop/cleanup.sh | 25 ++++ .../inferentia/.workshop/terraform/addon.tf | 128 ++++++++++++++++++ .../terraform/addon_infrastructure.tf | 6 + .../aiml/inferentia/base/config.properties | 1 + .../aiml/inferentia/base/kustomization.yaml | 25 ++++ .../aiml/inferentia/base/namespace.yaml | 4 + .../aiml/inferentia/base/serviceaccount.yaml | 7 + .../aiml/inferentia/compiler/compiler.yaml | 16 +++ .../inferentia/compiler/config.properties | 1 + .../inferentia/compiler/kustomization.yaml | 26 ++++ .../modules/aiml/inferentia/compiler/trace.py | 17 +++ .../inferentia/inference/config.properties | 1 + .../aiml/inferentia/inference/inference.py | 55 ++++++++ .../aiml/inferentia/inference/inference.yaml | 19 +++ .../inferentia/inference/kustomization.yaml | 26 ++++ .../inferentia/provisioner/config.properties | 2 + .../inferentia/provisioner/kustomization.yaml | 37 +++++ .../inferentia/provisioner/provisioner.yaml | 35 +++++ website/docs/aiml/index.md | 9 ++ website/docs/aiml/inferentia/_category_.json | 3 + .../aiml/inferentia/assets/CreateModel.png | Bin 0 -> 46634 bytes .../docs/aiml/inferentia/assets/Inference.png | Bin 0 -> 59614 bytes website/docs/aiml/inferentia/compile.md | 64 +++++++++ website/docs/aiml/inferentia/index.md | 40 ++++++ website/docs/aiml/inferentia/inference.md | 114 ++++++++++++++++ website/docs/aiml/inferentia/wrapup.md | 14 ++ website/docusaurus.config.js | 8 +- website/sidebars.js | 11 +- 29 files changed, 723 insertions(+), 31 deletions(-) create mode 100644 manifests/modules/aiml/inferentia/.workshop/cleanup.sh create mode 100644 manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf create mode 100644 manifests/modules/aiml/inferentia/.workshop/terraform/addon_infrastructure.tf create mode 100644 manifests/modules/aiml/inferentia/base/config.properties create mode 100644 manifests/modules/aiml/inferentia/base/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/base/namespace.yaml create mode 100644 manifests/modules/aiml/inferentia/base/serviceaccount.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/compiler.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/config.properties create mode 100644 manifests/modules/aiml/inferentia/compiler/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/trace.py create mode 100644 manifests/modules/aiml/inferentia/inference/config.properties create mode 100644 manifests/modules/aiml/inferentia/inference/inference.py create mode 100644 manifests/modules/aiml/inferentia/inference/inference.yaml create mode 100644 manifests/modules/aiml/inferentia/inference/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/provisioner/config.properties create mode 100644 manifests/modules/aiml/inferentia/provisioner/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/provisioner/provisioner.yaml create mode 100644 website/docs/aiml/index.md create mode 100644 website/docs/aiml/inferentia/_category_.json create mode 100644 website/docs/aiml/inferentia/assets/CreateModel.png create mode 100644 website/docs/aiml/inferentia/assets/Inference.png create mode 100644 website/docs/aiml/inferentia/compile.md create mode 100644 website/docs/aiml/inferentia/index.md create mode 100644 website/docs/aiml/inferentia/inference.md create mode 100644 website/docs/aiml/inferentia/wrapup.md diff --git a/governance/steering.md b/governance/steering.md index 3540af136..4b6a244ec 100644 --- a/governance/steering.md +++ b/governance/steering.md @@ -1,49 +1,59 @@ # Steering Committee and Module Leads + ## Steering Commitee Members + The Steering Committee is a 6 member body, overseeing the governance of the EKS Workshop. + ### Terms end in February 2024 -|Name|Profile|Role| -|:----|:-------|:----| -|Sai Vennam|[@svennam92](https://github.com/svennam92)|Principal EKS DA -|Niall Thomson|[@niallthomson](https://github.com/niallthomson)|Specialist Solution Architect, Containers| -|Ray Krueger|[@raykrueger](https://github.com/raykrueger)|Principal Container Specialist| -|Ameet Naik|[@ameetnaik](https://github.com/ameetnaik)|Technical Account Manager| -|Kamran Habib|[@kmhabib](https://github.com/kmhabib)|Solution Architect (TFC at large)| -|Theo Salvo|[@buzzsurfr](https://github.com/buzzsurfr)|Container Specialist (TFC core team member)| + +| Name | Profile | Role | +| :------------ | :----------------------------------------------- | :------------------------------------------ | +| Sai Vennam | [@svennam92](https://github.com/svennam92) | Principal EKS DA | +| Niall Thomson | [@niallthomson](https://github.com/niallthomson) | Specialist Solution Architect, Containers | +| Ray Krueger | [@raykrueger](https://github.com/raykrueger) | Principal Container Specialist | +| Ameet Naik | [@ameetnaik](https://github.com/ameetnaik) | Technical Account Manager | +| Kamran Habib | [@kmhabib](https://github.com/kmhabib) | Solution Architect (TFC at large) | +| Theo Salvo | [@buzzsurfr](https://github.com/buzzsurfr) | Container Specialist (TFC core team member) | ## Working Groups + The working groups are led by chairs (6 month terms) and maintainers (6 month terms). -|Working Group|Chair|Maintainers| -|:----|:-------|:----| -|Infrastructure|[Niall Thomson](https://github.com/niallthomson)|| -|Fundamentals|[Sai Vennam](https://github.com/svennam92)|[Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs)| -|Autoscaling|[Sanjeev Ganjihal](https://github.com/sanjeevrg89)|| -|Automation|[Carlos Santana](https://github.com/csantanapr)|[Tsahi Duek](https://github.com/tsahiduek), [Christina Andonov](https://github.com/candonov), [Sébastien Allamand](https://github.com/allamand)| -|Machine Learning|[Masatoshi Hayashi](https://github.com/literalice)|| -|Networking|[Sheetal Joshi](https://github.com/sheetaljoshi)|[Umair Ishaq](https://github.com/umairishaq)| -|Observability|[Nirmal Mehta](https://github.com/normalfaults)|[Steven David](https://github.com/StevenDavid)| -|Security|[Rodrigo Bersa](https://github.com/rodrigobersa)| | -|Storage|[Eric Heinrichs](https://github.com/heinrichse)|[Andrew Peng](https://github.com/pengc99)| +| Working Group | Chair | Maintainers | +| :--------------- | :------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| Infrastructure | [Niall Thomson](https://github.com/niallthomson) | | +| Fundamentals | [Sai Vennam](https://github.com/svennam92) | [Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs) | +| Autoscaling | [Sanjeev Ganjihal](https://github.com/sanjeevrg89) | | +| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [Christina Andonov](https://github.com/candonov), [Sébastien Allamand](https://github.com/allamand) | +| Machine Learning | [Masatoshi Hayashi](https://github.com/literalice) | [Benjamin Gardiner](https://github.com/bkgardiner) | +| Networking | [Sheetal Joshi](https://github.com/sheetaljoshi) | [Umair Ishaq](https://github.com/umairishaq) | +| Observability | [Nirmal Mehta](https://github.com/normalfaults) | [Steven David](https://github.com/StevenDavid) | +| Security | [Rodrigo Bersa](https://github.com/rodrigobersa) | | +| Storage | [Eric Heinrichs](https://github.com/heinrichse) | [Andrew Peng](https://github.com/pengc99) | ## Wranglers + Wranglers will work across all topic areas and serve for at least 6 months. |Name|Profile|Role| |:----|:-------|:----| |Math Bruneau|[@ROunofF](https://github.com/ROunofF)|Specialist Solution Architect, Containers| - ## Emeritus -|Name|Profile|Role| -|:----|:-------|:----| -|Jeremy Cowan|[@jicowan](https://github.com/jicowan)|EKS DA manager| + +| Name | Profile | Role | +| :----------- | :------------------------------------- | :------------- | +| Jeremy Cowan | [@jicowan](https://github.com/jicowan) | EKS DA manager | ## Meetings + ### Schedule and Cadence + The steering committee will host a public meeting every third Thursday of the month at 9AM CT. ### Resources -* + +- ## Contact -* Mailing List: + +- Mailing List: diff --git a/manifests/modules/aiml/inferentia/.workshop/cleanup.sh b/manifests/modules/aiml/inferentia/.workshop/cleanup.sh new file mode 100644 index 000000000..25b5c37aa --- /dev/null +++ b/manifests/modules/aiml/inferentia/.workshop/cleanup.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +echo "Deleting AIML resources..." + +kubectl delete namespace aiml > /dev/null + +echo "Deleting Karpenter provisioners..." + +kubectl delete provisioner --all > /dev/null +kubectl delete awsnodetemplate --all > /dev/null + +echo "Waiting for Karpenter nodes to be removed..." + +EXIT_CODE=0 + +timeout --foreground -s TERM 30 bash -c \ + 'while [[ $(kubectl get nodes --selector=type=karpenter -o json | jq -r ".items | length") -gt 0 ]];\ + do sleep 5;\ + done' || EXIT_CODE=$? + +if [ $EXIT_CODE -ne 0 ]; then + echo "Warning: Karpenter nodes did not clean up" +fi \ No newline at end of file diff --git a/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf b/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf new file mode 100644 index 000000000..5d872d5ce --- /dev/null +++ b/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf @@ -0,0 +1,128 @@ +data "aws_subnets" "private" { + tags = { + created-by = "eks-workshop-v2" + env = local.addon_context.eks_cluster_id + } + + filter { + name = "tag:Name" + values = ["*Private*"] + } +} + +module "iam_assumable_role_inference" { + source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc" + version = "~> v5.5.0" + create_role = true + role_name = "${local.addon_context.eks_cluster_id}-inference" + provider_url = local.addon_context.eks_oidc_issuer_url + role_policy_arns = [aws_iam_policy.inference.arn] + oidc_fully_qualified_subjects = ["system:serviceaccount:aiml:inference"] + + tags = local.tags +} + + +resource "aws_iam_policy" "inference" { + name = "${local.addon_context.eks_cluster_id}-inference" + path = "/" + description = "IAM policy for the inferenct workload" + + policy = <zu({Ab;+6I+Iz3PSL~JNnYN}91sM|=4h{~5in4+(4h|j&2L~5QLIgmF z_4TxYA6&Gq5*(*unB_MP4vDRgqLGgq*51k04u?xf{=aWr5J5)|v=5h%0v80L=xS%{ zKSV?yBE%&G6NCZ}VG#ic6k_t<`PL40?*Aat z@Ca~nb+zV#AVdTN0aOn)tZkj#eLT>PTtaZ*|0?c2cCNrL00y2~dcea7_yY@Cf<-K$ zkAPR0r>CnO(#}TB$>%Q?A*g_mC;)z_rmU}_&IOSN-d&ws?0_F7J6jizze`Zw)_wv` z9>8=6SO6jb20-$T-X3niBm@`?5fBs*5e16~h(UpY|DzNE5f%WZ128>nduwl}|IcoJ zfp$LD4*xK~&KqW{+}F+3-hUVS_S9EZ;anSbHg{pgcT03LxTkj5}iKW!TyCn0SYdocqsS3hSzn6b5 zz@SDZ4$4aQPVO)$Rz=(e4NUX&K)67Coy380b!~A)Z4q%%dqF>_69ny|CJ0ur6$1wB zJsccN1mj#saYE+*y#YO2zT-Ifmvg`VXlVONGGVWHQYwr#{(v+ zYG>fAZ=<7bF(gB?}T+Q)WZgNBgIus)Dc1s0R{+B2YDe+PXyM{)lD7l4ngYc zdSM(yyj+oLu3|>u0AD0V2yS33h8D-7HI=+f;7B(&U2i)Vl#-pbGQeIqOcet>-N6`7 zj1yErMZ`zj7G|d@jCNO7Q*(895OX##2D@nLDkJqYfy)oKHT2a~bMi3JR@Q|BS_8KM z>!9GiU~hR}1rZNF7ja!dJ3mbY8*v3sdlP35N32?anxDMCjhn8fincyP)XPNCz*S4f z$<4t;*xwtD^u+3lJNs!nr~(RY?CT{cY6$Za6^CkS*b6Fvjdg5{pjwVf3Z8m8s!B*L zS5>5_qn4AdikFzXhbY2L&l&56Kq5SZ)eU`BRKQRVCrxV?KQ#kCcz~!8R@lf0t)g!0 z=qL}yz=Qz3u~mWEyNg5JQO18IfP%Ow7zhhlYYQqkA(gNQl%c%4yrQSEqm~cG(Lq<= zRb5lq%}))gscop`=xv}btf1qI^;XhS(L*a+!>mQb)m-d+-IN4HAo5-qU2$(uH>{e9 zDzJ@{v9=K$=H~3?rl;ZT>IH>(1G|a4!_hEc&>JcrAZF{RZH@BR6GVv!10b}BzmdG1 zkb$j>wu6zekdCm2qrHKW8(b8MG(ceh;|)in;MTfg&f*w-sHdxnfttS-1Z^AO>kU-} zgALtXU9`0ng?$}>iMCE6B7Ul#+AzR?Bd|v9MsPbFLr18PyfGRIST?wZkBgX}xTA}@ zuo_ZJ+fG3cjB$d%HGvVNu(q8TTtUoGTTIu(7!GmOggb+k!4M4vxQ?BXaRA(2#}mM* zjWa(jAneet7!em8 zA!oq(!66R1UV2&{?g1vAMq*$OeIJ;!yN&i=lV#*30{bgVfOdqv0^A*Kq!eHyihv>j zm~H?}!w-Oah`VC!0z`at#R10)cQIB_)Y5ZNcZT@cI4UCrb==il+|>ZT0Eg(9!0c7A zj`jgM#*Qu?F5=!;b*O`*FMtC0C+-LrvT@PE>I*?#^c(?0?E=<@Yoqkspell%dMbdg zf!o+=YX3D)p5Csy?kHe0gc}C%cYs?!*oo^1xg$Mne6`&K<=qX%^~9Vp-fF^je{H3^ zmyZwBNXHwH55fWPUJ8H%1782HoI_|LJ{x%f(SYSx=2ET6r68(lNMKO zRvFraZ;DPJCxOG+*+UPehK3(xCeO`YNHM->aJv?gJeWZbOJ^u5e)jCUPnS%lO!x** z7q=u#zrCNVYAuYsH@Vrv50Ua>U7+d3{|)9v^T-9Uvlm8Nu!!>mljV5WfVK72cy}OX zXB+(uYX8HMN65>@UPx%kA};d(V_GeHq-~}cxVH(f{8l>^E+2uM=NwI~n7#WGi*(G- zjXTIzjn&zr|DIQlXR#jd2YckcDPw$tl|j%##r8}=K(A|b_~Ruxl9eqH!RDM#lD4k; zKI#JD3UoqI0iLaCU{PI|0kWb>;7j{K`_z-^)L|l&8TRMVQV*Biz*38(_m+x~RXa{n zSHnO9QIB@D$JZaWIJALoOaWQF(~TGxJNcPG-~X`dF9$pc3AY;6#8$qNM8a>4Yv{ga*?NMAcU`zYr{or~2YI6}YjrMhRo2d%1F!g96wV1 zV6s2|%XDsot=qQ$=&c)N&2dy%i=&sTEaT4LboRbm-7nl=Q0n7qh|sjeN(ADF#q-fi z_yKD8m)0@+|AZc%UK(c5XJz#&>(K!yp7_%kqp!oUn z7F!BBr0ZIG2AYi?5^0_9$?3`Z*rXTUiAshhK_)_sFcEWZkbApACOe~$!JJ;7zg z5o>rXWLs^&Ek`HOHMp3-^V1`Y;>*BnZS*uv)G2MCI)o{;Cv<08rGi=~;JA6T?P(gl zcNOu8gS$|ZuY_4hL#~!x`(U%GF^a zL08F5+~a%H+G{1Q_Czu$K(UJ(PqzG+9b6${JVdS!7N4h+BTun?;;R3>b#k_}RYV}- zj}W0@kp}7Zm*E!gsFOQB)C^cD{|SSnpw&4Taj9)q2XJxx$+z;HTNa;GL+bnzVt4$s zDVRP{fl6oK;sauVM&O5JE3W(pk8aJMbWxq@w48HC9NY%@ouQz35}FeEf*D0>`!fBL zBuArZWr!`vLCfCGUg6dG8I2q>4lAS=nt|LWcku$fHo!%6`5WKVVRA*-ziv;pi;$cUcePyjIRwqN ztcR6}>$TF*(?84&JJ2tD;-zR%wkskeb~0_EW`yg^c{EdN-wJTTcL#igtIdb-;-459DSmW1QW8g}*8 zcdkA8FYB+D;~pRL9K=7g&6?{5-Mr@g)e!2@JOA$2%iNALGr?m@+pYZIrn>iU7%63C zv6sg)Kj0h1fA0}UI_(K=bGMlLd>!|Si<`w+@^-dS9+>hPqo3j2}D zkBhMMT1vG@b6lT#eFx!!Mz2!ns^<6h8o%Cw47UZz5#UlALwIPDrpTqByh1A~&S;CT zt;k1T_FAII9p;RyS^u&7jwNJc(c}Z@j*+$wnzzS9tqR><+Ra1`maoe1iuzf%EJnzL zr^)mNg~^f*htSvxg@A)sCd$bHdshSDWRa^Y{}S(u%6hsn?ja$@OtR=)?Z|TJw%G<~ zl2kXye$0a64&7aJl+g9Y_1w(5X;xI{1hR6SK{sm2}0GUOc}Sk0C}DK3OVtv zs)I|#c7|S`t&^2{R9j@NWogW|In2z=6<#E*ELQ58DgVeJUyAwtGBRn!3)kCq3p|AZhpgoIT7;jEi~}K}ra9_$IajO>@ohbfYI}Ok zdT~+%GliG=!soWfC=~b_7#J=GW=$cbDx7}RUCRzU+D0Lsbvb0+4cV-O&HH45ru4g|T zEbNr_th8;gm%mLD0|Ju0@Ar%O{_%2@kE|X)SYcyKArYnAnOB{X9&MQj!%gSV$0MfN znGet|e;4L0G-fqYf$|dMcPY|eZA`C{5JpR;5r*j#`0B;SMBq1xvQ|$($4|-*#p}$h zKW_|DtAbhYbzN-az^lQ>?xpY(57)P9$? ziWo${-dE>6T>Fic93c?GW1x;hY#W60^Xoe;>cH^a9k#bp#Q(-j%7mqKo;VOD?#!t8 z-rwA&|A%RuHaU688L2*u{Kxsd!4oJ5iy~)e(Dr`)f1!y8At$PSn(oEH|14)oSlmN4 z_AW(%)U3Dv#BYG()W8)&XHm^w@*Dt}jP|4#^ZdKPn!X$yfiC6$obtaASB_T~0P!|X{?Y$8z8uLS zQ|@!r{PfcZph+&0_LmHA1oU0LD<_?21fCY7TJ}hs3kK{CXGizObD_lK6{ns6yNps0j4ttah27y(`$=(*MC_BKMyWLLL+z&29XNFT#7T z2kiL%ps_CXqrl7UG=e>+c-$=fooh5WNHC-zDn8x&rr-Z>VxUnD2;u>~k*{SX9uG=b zYq6NU{#N|lllGXK*tYN;vMDH#H!PJjI83_>e#C$pnN= zPMzfCyu_@eG1rY+auouj{01&%FQMOgpM7}yguGJbYsaRnR)qhPywmTncM@5+w(E?i zbDwTE^D+Fq3B>;?Y3c5LMhbbLo{}E_fWd_FZ`x5qPPiq9cp%mb4<;qg1EKdKt+2g$ zj4|k5rC$=aNI|}KCM^LNtLP-H&oe|+*In**IFDR@_^cv!E577i=1?1*w#}m73DLnq|7)Gs=TF5R#3o)VzKg~` zFeQIX3gX{Kq@w@o&TB;YIa?&i$fIJ99|!K7Gz@BseiVc5zo(V*R`2?pzn<>-!u;$-5mzDmNvtae zAcXonyjr$MuUdU;RRR3K>1n6uiiHDBrF9M^>z;xHksL`v*ZBsdK1L8--3cm!mCSAi z)&GVjvlj;gC5tAC%D(b>E5~D8ihK1^}uOM#qO|r2Sx?T)+PA>`lqQhoE)oY5{(r#*~ zn}sI^IGIFc=^%f8ZluJ_3sz?X*MHH3Y_bNp{C9&9HQc7s2uu_)Hf7#beQk3&5W zmR9$bE8Q?urTt*z% zBZ0?FpZFd=Ev(rRw8cI_#}h5$RzdG96LJ4&Z6pA(7zHbtZE^glXeI(7hHH6*~yKhJ5!W2vJ(!xFn}e>$+w zGJihz;1Wgwp&gzP(rl+@P{bI%Et(tduuy#(*RmIPczA5U!ixWkI4{*pG#Xudm*}S? zjttKAn}E{eOX+;>uEz*P5MuGrc={YfUQewpfm?o`UEp{+X8uV0@fjyLk_`=)Kvpqwp;-I3!eOS4%bfh-HOS}=GRm$X z<1AII0v|{kPnF+Rou$ilbYvtS;gj3q&YH;+NhW_dEzXsa*UA>K&q~18D;1l}TvSED zgDy)_Yige36#8HGi_4(MQ8UMjR&j*0VX|-aL61dg*I5*-v}MHTy?VbhlJDXS|Av_;iV*7AP;CYvvcljynk$gjJH z-{Y5?Rx%7Mo8XnsIDJg(3GXOuL+5&>Q-V~X#g+u}w!rhuO8+*>hrQ1z>D%^q zo%DV0>~jlbVz|~9bm^_1+C-|Nnql5HT7`FBw7Tr207AS98Q9c-!#`o4J9umjNRZg<40dDTK0IBHhhvnea&@iHFm$uh2gcX}#=+)hQu?=C z-Je?>W5}s&l{@ob{*RoTZt#sV06O|oQ)xNyB6&ck=FQdKl2TGT%1`4mPkI_L=B4qy zN$p;@$G=w$IF$TOO2*(VQgL_pwB)9wYvR5Dk$QdTGAQdj7sm;0%;I$;fry<3AL3p8 z$@J*t<>k>bMa#dmfxvNTjV*#Jsxo&NA!3nybfsJb;wb;6MXiO~3`&NKI=Z#4q>DvG zz>N;Y_0hf=NM!OKA18Pu5^jGbi*v)vF5qir%f`XQpM9S>FoGAlaE~El-#_5o%`U6* zB*rUhO+ZCO&6K?AdEIBqW9#_+uM_XvRKa_@bQL~ONS7K*{awN{8B$VGgM^07ubeNq z3a!i3UTO&j+2%x^q}g`U4xI2Q?Z@md7Ii5?A{Wd`{?)YruOI_g_)EW>c>y+EZa1_W?PwysyEWw*VWWoAR6ZF zhqH%hsa4{2DKEsvK30{IlEsyy#CQiM&v0o)l9M?{b<{JH^U~PZ?$$U;3b2bFW6rNW z)*Nv#o~C$L5YV6)X}dz*nY~xE-Zo|lkv9V7D)aT@kc*u=IH5mlp8cW=*bs(I5h5zG z)Nnr74bmrVRacANBqT@+^iI};Um6(7^mn9me0anzbKGlUtJCh71n5TI>rk!DL92S{ zCXG|EjN`{!J?J<|ycpm>8Bb=5+>}&$ef00m+7GPRwX}GA(WisR z#L{(S)1HE`ZA75&{MF&(Zo8u*L}T-XYO=VDJWjnj(g+OXBFI3&~ z*XzK^Cd1;LUsgqtwKu=u5vu<1gAZhg`{tfn%#K&ihcZ4U91~e^NIYrt zamq6IEDg|R%IYZcVPgXP+|OchNqa}r*v6Vm1Imz$Dy-|&9XT*P&Yzi6tlz{e9T2vB z7C#-3Twcz(6I}H6#jRgIyerIjX1QYX{W_DG6+@DNNQOv0hW_*sA0H7%16xS(OPV1G ztHlAkbb%CLj1}izevh7G1{;^i6@_3tyZId=s<$}WI=bJ!kwy)mrxgw>2|>5`7q|F5 zrR0*Ir@WqC`1l3-ai9(e)g;hT!wvbBxR=$=YKU_l9PplCj+!m@VXR+T!Qna~p^LHA z$i;9Jxd~-^RK33$6jPa;Tc04m>72<- z3cHN}W1&d!cr;R8>3!QoZ2;i#gVNK}yW4Xf|Jgr=63f4Rb9!I!9W{$b*#6u(8$Ou4 zo`&#j$sj!ZZoCx%aT;JaZUfvz;np){QRrfeJYlDXhW8#H{dqOmPD5_iVDX6W5xk{OFTSeIgc6T4(?lzeSb$0`Vy?9bJ0Ml5Ul zeBrUh&!3wEEzJun?eE3i?q7ClW?O7X_3hC(^^{qDn+8powZO^{mqcG<{0@T);J>Ln z3Q(CvGX=-aNsVn6$GJ8U@kY1$l%cR*avGEo>w`W;MnX9j;ZfEY;Ia zzS>D5eD_NUUR!zWfvZb0?r??HQ`Y8&H7U2%e!=%6?Ab5SYih7WwJ8yTW$PVl-v$`?_g?%#F_PW7p$hM~z@5L1bEHO} ziY9@`sHrt&g!2nsWjCHZ0>YhAy3HTi9)gUdh(6ub+?3a?xa6HS3hhKO#DKZWD0=fY zlsra_X4%GV9Wjcj!zoU=OkrHNDf2tnxTAN6Z`%*=R%rFTQ-Z?f5ntM34LL4CE9WvT z=kbaALi|aA=ECG5k?ZY@-w4mtY;>$+`$_J-5}0LG{7s|X7}zi=*<%vuav)T@O?p$` zuqWK09UEm}XWX*AaB|rBW}OrDt63WLx0TaAPFMAz5k)6dg|g_`>7h z_z*Sj-X_80IXuNs!u%K+>wUt>$(b735EA_6Lru-uidS(ufu?4Du|s|${LT3ig2J7>kJss8dt zgm&bEpUR5Xn^$aw`!s3N!gYAu7JF(o?^q%CQ{timIZnEao>*MVAd_NlFnZC1Z!VKQ z_1$dfs?IGB-{t8jgm+3;B^qOvma8k<6y1_eA1V@`{6gN7$M zsiL>-Ld!p7ZVxifg2L-s@xN9CkJE83@GI;a#%X5;R7aO2k1`a$B^;A%J86+(XP2M9 z{9EuS(*Y_XWesEee-yN&l)`h<%hYO|42d-ntqSS!cl-Q9t9rzZsLBu9+{rG9HR+CG z+X876GmA65O(vA!eyJRTx5;D9ezHqApW&&FIU}S3?Y6d=TaJ zui1T;XG$L)VtC!e5MA=@p=_1;jY9d@A*&c+$VB|@5AcBWxLL;R5!{1FHKyk4dbCp^RL6G#~p{ zqAv;@56EfV-~N0jQs>NlN)n%&@XegHaP>yrctm5n-+O7am6#`KS8;0Br4+Lk1}=|t zTn`={c^y2lVaa^cjZWXWqjydo$E%bKwtF2#Uf2BUr^?@|83rh4vG2xyEC~xEUlRCW zKCSs!n|-B4EHe$xs!5aVWm8(q)L?G_9Dx0BNuSm&=UJ!51CsopM;UXGc{c)gc(pW# zS|&@2It@(+Z*L`3j$gIU$isW5nwM55{|fJbhmB2s&g;{o!5_gdwDck#8^6I5p%s%* z`GgXj-k@aJ(BeNzI}dCE@u0H&GYm7vq&2rYS#|h9H=3m7-*XZJ{o-JgT_q1^g=q*g z?VlQOpjt=*IW-PnUAeOiBsrLDFMKq$jFQcIuoyKxk&~OV|LNdjWQIoXh1pn&*Y|on z^nj&5tK{4Ei37YjL{kbr71R{a{I#7uIzgvo9)7z@0$C!q1R-6_e?VJ@F0CD zfVZd_XBG*;+ZO4=au3%apVk(WUg^)>UrH)Xk6+P?a6T%$cM=;5JMG%k?>n_8l9E*5 z*m{o1lVTDd+=2hz-E>XVN{`=D5|(@A^eHrO#bx~@Kk3OPym!RQUuCge$8^n*=JmY# zR)r;1Ja=U_!``k& z+<}wbcBcq(bV)-1M+94;sU=J1n+7%KdnY?TsFsr67A$7IdN_Ud;66=gbO)5NfmbR2 zbUo>PmKG*(u$JJVvzKd-TNqbs1v$v}Af;WuZzNXHEdKPxrFn}8-x2P5zsq_PGwS7! zY{_k%#p}DHyAZ+ueGA~_NebEtef1MmD@d5ANv4WdL|0kt^D@mNA|9Lh>Ha+p5f~zY z!g=V(K-=g^LAFQN=B&)#)(B0HZ0LQqE{oCWJ9#6rE*4E`K6ZU<_frkM%hvcz8wKBTR+>}qh%Q(WqLP~w=7}lih_isp zY#g%Gw`7`&M*!L&a!OY-(oi!NC$=SD|1zXFb)7AC=G*M_%xP$)CQA5^mv_cthb#@e zG^6wN^mnh^cOi~K&isF%!*Hh`z6yyZ#6_G`#q<=4XCI_RF2>Wpy`BzKJi2{U!Vin_ zFL|$cbKE;I>`{_Ciecvn`SOZMeDTwZ>YqL-pT{$qTDr*%qz+j(eJI<=z`bzqepr{`KFMZ0rQS)b#8|D>#SEr&n%UB2?|IwpuWhRZ z>EslURR*Ict?iAEP-D5UT~{e&e73FC7A-#4E;Uc6v9IV`D-U&2&@pYw=OR2!KvMO| zoJVRp!O73#s>`z_*b1pAWtnY0anM12yk?Wf_(xIZMz@C)5;$H;R$8_=tOfq2)>+`F zdGRi{DFCAS(f8%dyJYLY%h$=zw^MuAhFTjrub=6u8spYf3=d*v(N&OD*Uzi8_2r;3d6bs*Wn%RN1jOU|dmOZap5aee_|2T_As z1oz;}_!tX^DNUXcYC_6*3RN5RnT@%CKE(|GhKF2zMq=IeKu$Tjxkxik{G``dE~e+= zOL3rO4KO5ot6@{ai!QZ$bEoe1UT%~2X`7bk+6(TDgr$ORbJ!KD(%z!Vvi_~mO9JsS z?pwE>wCsO6*;K+MYTm0ZGl2;Aja2yXZ=RHYfc^5yamc<{ypaBhb@GDET@=yBS`9?GgO$yTdrt8Z=H&WIf z{(;^11+lL`|7QY_yqoWg?-vs~NDk>I6D7IcUm|^`vdj&?$2&4pljEiXF!eRV;P)Kf z8T$6Dq9F(I3384Y?o9cSwn2o=d`Fl3sJK z@DZ$IePY8;DA3lf%>1iscK#2q?4@{)`N|H+!BLJ?ULNL?lON5HDJ(83UQ9vrSzN?g z{21oRv5Wjvf5;&Z*QQ7`V0>&a&)&aRW6Xo~?n7gyXP3J#vhF>tzu?DWn)Qts{?xT3 zG{3KDa?Uy8*VzCioe^+g+aE45v8ySajan|=o;T(TE0VjQy z{jhy)Z&lzZv5s$Ku`&6!;zf4epKnZ@jO==am?J5ABD6yTEa|UX$!Se(j7fyo_=oCR+BBu1G;^F*%9?&0 zeSNQXUUWZ9E(Ni7QI8SMU*$w1zdCO!Ox@5I07d;pyM`kROI+rwoF~X6ld2C_T&YkF zSI??dZBmfN{=MhHs)VjQa>?xTru6LLpJ<$On&dvASWE@Sc5M0gN}FyoK~;(7jt~o&9K5^n%^^Yze;8iJif&8Yt?Yx zF`d%M56R&_Yz$B0r(b>NTM=_ex<%OXOV+}a^LkEb%<^*P0!jE_c(4RbL*Cd+{54+t zpgs3X1>718ZChk0rnNa*TbA%D_#~OXkAKP7JI5O365t=#C7eUVLI6FG89=gsR{f9_ zTBmuhfc0F(s@hra!%Nw;UEhpnA+fPNDf;M=yPuuiLUu?&^!|{V7w!>srC%f&Ep9;g zyEjs#1))4?PwEO$Lmb+Fs7gHZ(Lr>gIc2w)L5~ZADx>Y>9YPZ;`idyNaiaR_^7Zrl z>G}eAzU<6%&C#PW*=%3#^p{kDNAX1I*}2_n$BzkUdCcM=U4-NOr%Nv+j)K2##_gFp zki?NTXajsQkb62`0Ph7#2IhAze(f{)L!2`otVuD)+*=PMZ8vIti*rJGOBjX_zhgO6 zv9!qqy-yNZaU=qRiKi?)V5Jk}VW)NZ)mIyGZ+qp((3#QVzTv5?_vMfEz|#cpOYp1bQ%tC=94920QfUe^v8S(d*ybxbhzMAR4*V?%q4;jFinyhupM% zjvD*u_pGrfaEy8CAv+L%S%0!{nNHuWg_DWnRkjja@AJ6o=ZMF2l8?V zX^`xC`~+Je^ zHmB)#^PH^t)K@?=tDB8)5*f)g&x*0g!~4YI(6?f&dSwt4vd z{YUP#_*-;W$$>w6>b#xfffV4eP}NA#o%Nr2@07i|i+5v^M}7Pu@os@+^?Sbx1XPOZ z8hAV9aQU57^0!f@{4umB72rQiD!=EKk8thiyVQ9hruK+G#RjnO{%G5}LlR|nA{IfYPC&}oceA8N zV2;Un`iZUXDM(;T0#&-M5{zMK>SZDJw(4x~WzgoM5@mCW0o>(1nb+Nqv|QuN%iP>QuJ50(ihzJNmTM-q-6B(*~;Xfjn7wbg<;tgjP8@g(d{oU z95^&I2pp+hxv;^h<&T^hm^MF1mcDN(gb>K|hGfTo>9; za|P0lk)x&j_OFL05{(I5D__)TUn~XnO1G zgs!Xi;G_*YStQJ>0;Cz~@oyXB1;!t*XQeAjQ&@3!^pxhtRe8$GB(CWf*uEp~on?$# z%D9DmA4Y*w2C^+}K+->jG9d4v zog0=Ao|MVQ0K2a(b*?+$d2RduQj9jPsyQV%A>cK+=)T`GAdsdXQe>%$ix_rFX(YEh9|X! z*e(M7?8%i8{339g!6YO8ZdqSKK`+^(h9}zRD{x%q1j4%&d#ig+-^{VR8kh= zg9x0c^vBbbHoyCUbFTZ}&3qobc+-kku%c5hNf-N*f%EP*MM%ffdN&D@pm(%EZEzzP zNys7RN3(mKi`B_qE0Id-AX$Suw1F?4N|9{rR;oKj-ebU$^7d9&9(XNi!0cTjeV-p+ z8b81(tg0{7yqLZk-9_~?-e^Cp_+11iY?{rq66Z#eG$?L$DsJmh9*S5gEXa{EQ#3PNv(P=rK?blQEtaxxi~8J; zsA$!TH~KT7nPnzU_w#0~tyJFQrgmd=BPBUJiTyA@BqVZi?aTC(P0*$$(`Hh>774_@ z;T@NJB)RGRmK4TtfJJ4=A0${$=3MVWn7k_wo8`>K3+Q4;#k_jYW1pX&bGJX;FhiH{ zh9_|p`LaGkYjPZXg=Fr^)!#*(mIUGo+lY|DqHl)cV9BuPjGtwX_jef#P05)?+kVwN z-~OvExn*Vi%mmCmn>0G~YsHWX^z}%kn6aZ8PB)70 zm!;nd3~;UjUy{jsmn7TS(z&(vF>++Y@`=)Fvv+w7mN{S@qNp^4yAaoYxyxS~8%h;B z`lG`hK&%_X;$pWr#L^&i(VgZi*fUN70ZI_`5X5{6XY8QoeVnbZRPlus{pF zKi&(UDehY|Opn)72@yF!{R-}fJjGGVE$eOfXxIN}@iVkSQRkfCLuc1>u9Adkl9uiM zgylet#-!Mbt#!d}?VNZ~l{=8xGvmB$Q@467+O{?9mIIx4Vf;N>&SfYL-}5SK)2Rhk zin95pH@+fw#YvhaEo1v;9NKp;T@*K^A`(75m>d~x?X|G{)O#XXNj04igijz$`_T(x zSNdzgjA=v`)*JWHd^`pGNBPdn;65?0M&0t^yz#qk9L^7F?=y6ju_iaYsi4xOIqsFY zW*qxW#q39K+oic4EXZHEJKHU~JVA=q6gfw?-FPattm7xHQmD;-HZOq3tc2&zkDj#4 z`nqFgd!DsC)XWWwjhtZ)rg&YAf4j_U+!2@Q@CJqH&l#UzVt=%!2aoBhZqUacKEruo zs$e9LMZxf?rwWgm_Tz_{A_bS_{_AVUsPm$C&#w*J4leEo85M+46p2wyWzusv9N0YU zNhI|7CerYB(veb$}8*H16seL8RQz>@4R-{UN2 zA8f6rZux;-qsJ5?C^{&!ePNzAJ&r~%~vXv7Oz;GD4VkcH#w^*k&o5Jr)Qy3jE5dmrBeHqj|O76viaEx zA0giDeBTDDy=?*fCh5-K2E|che)gM+{U;s;*v&&k<(T6%FOhzvjx3n=@sLvg$*rDQ zW;3yrndXOcTogYl2}On9)1Pg)b||{3kU$U%)a4ySJ+4wC)5yZhbI+*8#y4I>5fVf( zi!y%qZ2&PR#0n`9@T~?nb(XS6L`cYcVD-m}buTCC#LlMlQ}10DeTa#Z*p?-Y1Zsp7 zC#=-C!ii>OISl8EY5i^hUApnP{&;f|flK3$+=lXCp);ZN&4|OTtGZ+^`RMqh)&b0M z3;X#@mA?6qpksIbgWn4frk8lKZD+sCik}}&h5X3D!rGd;PhNvbo@OVM&UW=(2+{*3 z`QhWk&AYj??6@D$i{G09a$kI#V=WYPgBNx@o#k@lLe>1*-2JsGwoXe0woz5B)w2~S zAF}4sx$&68=GhV%SWNBRm_)iaBJhWYV^pk%jMKBJ z@75;8f(eR+Ck4f&J4prHRcV>C)9#(oaT}^D?&oe)8%bZ8o=YE&S>E2+NbYzw$)>@( zMpyn;cI>)E6g9HHW8SPJC;1>HtP4OQoGX5FrCJAk*}hdpS4@_kJ3bFg!7L|8X^C$=QRQHWAvBxjXll z!7}G5qK4mPb1Xz>>(z%AC4aTzYkX_#F?}}t=q&T6&W>$AHZi?wV}>okV)_~nQp>T9 zA3+}Hkln(SJLEIFIU7RKjQJqG6HzVz^g{}LPX0(79BoWf;d-GLM=he`vrcS}9yf5Q z^$vbBUl#C?92Vaes@}X-qhhdSb1}ZYuP=Vf86mdN_lFi&f_-h~U<6-?P;(AfDRx#w;VCx%xtGke~ zV;%G6_hE=vbbTYTIrDXsy>_Yi7LnxZCzZ$Vey_ME-_Bd>AJGANIAB;WM`0{9lv?N#`)$3poEQ+^}v{>Q~&ogs6k1DS?fc5RiT{w914+k?@7qm9$b8zADOEUm;I*?StCNa9&sPwu^0Gf;ifq5OTGYsl{$XeDf;xrbeYl#p`o zgdE<&dmjObpLf@su}X6eSNV^q*w#LVN=>&U>9!1;*+W}Q=}7DgWbS6zyJ3sYg8i*S z+h6F0HXMp-n|JBt>lq&Del*$hp1UFIeimg)z0WU)xB&@?U1#MsmgOhjkxK@9k_}MR zu=G&}zA=+z5{AA{y=tW=ETPd!(-X2+DBBF(cKpa3Jsh2~hOOBQ&pKJr4v|~9V>WE$ z9Y_k2*kPJ@*C}p!WNSDz#6h3ynobHOfTYXNtHAQqK(;kXs%3nEN{EeX-Bn7wU_|nM zEU$b_q)y`~!};>~Iv-n?YRDMQ&Fj49XMxXfD1a-pDkgoNPEKy$SMLz|;?M)sKd=ah zz>4xs^?D8&qu3N4Wcl^OF_kvSp}Lbf5*A3Y1oCrRpiY&00pUaaCx-r(!nEQ0AFY56 zTU38S%1w_g-b*;EYUD&iutxHSuH`9|q;Q-N(As)ZT>qOzY@L|i{mZ6mgW&5zVFHM{ z7l;@L`+wKcrCTZ?H1) zY(@Hi#Snyd)o1jj=$J25OB)NXNiW={Ed$D%@kN$dA3#F+4nc!wnBCsbW;i|HFKh{m^>x2K_A>i9i3_aax+FcOMs2zLi#G5JdCR@ zmwk?FXD>&{?odk5{<{}8K*W&Pf1>@I=Yw-y!H=$BkrGU{d;W!v3mjqBA54av_j)3hf6Y4;Lbs-;hd&%YPr1KsT4oM!st9+Pi&+0>+FN? z=qyNxyTy`wvb8O;%S6i%FFtIOJCiMv5A;cuCX_}n#)sZ>DR4@9Ej+F*SPds~^6scj zP^4B>*sZ}vuA7q&RX$^rD!1h(yGpq@E?Q2{=eR_^YQbYZE;Kuo$PSA)u*x)hPmdC9 z%YRFD(xZ&$Z7N|_G~vAk{W0`N;UfF;ZYIB^PYZO?^smfBmQ#!;KTjy){VKLK?8xx@(W3QUSRT`r zPUFF2U3Aq!@%_udYWShrimr6EyU|-Y%Qk-2O`$)}RTgxaT8^J_dsujd&lo{~PL;Ba ziECnZB~du4Ul7*&%5UX0-L{k2jZ7hIPcFLrQ3Ee4jXM<@JhbrtnEL9tD8HazSVFo% z7DT$Fm+mfU5Rk5=r5ow)TDrSI=`N92X^@aE>F(yPzkA=$d;j9IPn>7YnKN-_zBBA@ z7NB(7sl~S6+tL?qF1)Xb&Vr>PDYr&Dnkb6i3-if359v%NZD2X@kKaFu#%T)qj`-+u z%-4_bLY8LU)7S7A$?S9`&hSYlH8b&;5he8TFCX6~%f$gN_2-gIf-v5QXiUA;6B~?v z{cQKAtBTjq_vM}H7a6s>pp~8!l#zbfJWI3v-EG!7qw?b>ZN&Uj!k4|vJUADG0~NUb zW}hR$ (8``{PJJmG%~k_bJY!RW&gEqZG}g-#z< zU|2pSfkJ_WTg@-wpeOD~hG*ZLvGaa%dBRCCIQ6qJ#pI{XAZQ@9AphM@}7@ijHQL>Vk6RYsclv$mo01ZzbsAiRqO!*YCCCQ00i7 z^jhICOrYguS8Y^czvIbNIq_G=^U&)2Y(?CkzU8i{*f@cQBWM&MNk{qo}ME1#i>`_N=u z6`4dVPfA@%)z(XQV7iY6im#c+ujt()eG>jkL!|6Bu+RsAFwO@REen~3Wg!44q~qrg ze`6+{2<%;VoAzW91ZSUZeym&jW9CdGbSd3>^9)9>C5_S&KYqv`J65;C;>hMZI z^4`)T-R9IMd@#loDll$Vn=+WzBRl2vo*Q>X%JOWW53-73q zeOTzCLFR?VXR=7GBCB(JMC!)T-&zHK>lS5fF;Sn2{n(DyBfkwc7rl1HanSK9*=}a- zeepOQozQEL91K|U(?+m5(u0mM7=^}N`o>BPn=;!RDiCW< z+bfOUBa_+;H2&~r{s!@&>y(9px*}gHLqtML)6@uNs>$kPcaNe|RDU(F#g;)pXY#0Vpn(5_7 zLJ*2nW(N+O8qo8R+>PjLE;kx#dH`csnYiDFx_-O?Mcp5Ri9ho#GluW1MX7kKCTY-z ziKl5g-Xwgb*{pLjEtI8CS{i-nw8?5M_vHqwuA=MFv0tCY&1t{=+OVzcQVc`whA8K$ z&*4U|cdAb1xxw%7o2bwhmbf;-{lj(Qxp+^&z5QJ6+_=3vqW*(|o5V#2vf z;jzJo!w$8@7F;#xhP%#)C1Q|yXc3OI9-iRtlL1zytb1Ds_zc!m;OLUtE6jf zqFdpBrE(IxD4xs1<%D?m&zL%R!cANX$j7S!7OIX_Ys_Pjw^Gr^zpg1IKZ6w42)KLX zg?lvCcWv3+#dp39@cGsMz#ulN9vS?Bty0c`*|ZqnNnK9@5-CdVavNH@2t@_GJZ8;q zZDy6n-RqF9t=`++Z*JQ3)`4Ezj}tquM-=qO6y+U49jj7f&cz8R%4``M(0~xd1dgA% zf%)P?T^+YIVKJzEm>l5zF^1VBCmY;01*;~xXJlO2!z`XKg_EnOMsVXoS%Uya)~&D( z=*m87Zkj^UK6UQLsQ|t5!~mt)H|FOX$pDW$XWTO~B><=$7^lxW+!5f3vFQ>vUn~o3LT! z8-($ZX;m7gBq#pplz%?;Rk@t%VANFz#>nhgWLvjx;`UyDt`B;nR38vipv9tn z!z_Cf2kD@>IB%Lw*a#?5Y5=Q!O%N+jedgVhWXIr^~1v&JK95By0?d_ z>v3;*q-`S;#F-RXkJkTG@+!FO**i}CV#Ne<^m9UbF?Srkdw1earQK~^r_FYGi5PuF zcIfn2UKK>ZUY1Uckuw>%JDY)M9XdQ7s83nGZuBf1okGJGx0+2hKHv2@RX;r_#(E4Q zfLYo&)wg%#Jg-#Fl_N=sgShIyFPtOW>6OF@ucsQhdg~=`$7oK~f}!QSM!f}2;-)Ey zxf8}`>rfOPn22;r2j-2l{f9;ffkDEas!2|_tgIhHph@R*ILQ_|_MR49^st@bEq?-1 zX;*mH#WVJK%{~{SE30s7`jg&YEB7%W;9IxvIrLk%X0u)(lB(ck=9)URcA2ld0T?@~ zSa*90&u0%K2h9hcELiSjTR;957Omb*@LwNq2Ee6O^F?B7XMfjqsM?oa^S@ga7+R9` z-ues8nR?deo)C@Yb?Hkaxz_4*5m}V>&VXeDD&itYiK80F_|v=At-3Cknk&Q6fc^dz zExGP~#>=x5MXM?^1x}RhEy`H$g`kK)!KucC0$mUc?J%8BABcwO>v&O9fF&08@^Dc6 z*%^i}s71`eoUV7LwiLO_1{EN?JM+NUw*IMx2a;97uQ8Uol*TFQFqTVCy;C}>yJpN? z)=B5NvIaFcf4H(4Ru$hundbTXS!!y9X1&{m_p3&0@QS6n8>wzRf?#H|*S9*iX1}wg7n+?MR4j!7wNZRTfYEemK zl}4B}xnHU*7|fZN{|Q&Q^|N~XNrFE7UG&@HRwG&08~~)q0ld!6E4r3eM7D(Pj;Ez! zJgUT|>hvcoKdozv5+W@vHH6f=BsIx&5-uG)C>8T)F2r>nw%vxgXlqn8pK6{YbX$#pq6 zU%N85tap6st-$kb^6y(a$WXXY*hQXxKCp%ZZ40G4(oHgUZmgMDLwkDEKGVJTIbeh5 zZi?n1fB5=CvS+@+jK8O12HW)U)@?>zkF=v(Fei}SvikU#$KnFPO!A*bTm1`$qD1C| z{6ECR5i_RUuv6aUL*a@QObI)FiFkig!5Qxk&e&Uh^UBKArf@VmGxc!bB|q$V%?sGo z|Lk(C!>OygzI!(E%yEfzzU&*u!Lv5|EjYW!4rv(<#C!qX^BlQ4*@&OFbmf&q7G5cf zIsO7q60UR-b5Qnx;L*|&5VNI)PxPs0&m${7Z+;9L-9id=^6slYszsL{qW>vd?UZ3~ z#Ff&YbdEfpFID$E8A8qYn~FG6tdNu{mJ8SPab7beHuT=Q*E#SutCQgH_s>5nS5CF^ zVIjXry5am;S}j&f;bU7LU?V)Y$jW2k3h{q4voaX|KGP%n*>Wn^@1?^rodjaSuflYU zYV(N!sC8^uhh#8&TteHAxr&v2sfk4UYwVUy0Cll8OzuT6@RW zKY~bUVKLq3qR}yVvlHqpjv8O-=AXN?vHh9Ty>ek@?j{338wj0n<>(oG+j)tt<>&kB zUHUzR_~6QM2;o++N}OK4qT4Ib_A7eLBj$?cmglX#h^N_(mqqlT2IO_H`0+-+Imavz;s*||9ogtot57xI!l z_-k(lg{AswX#Ly?7Me&QTOI3&EN z$VS)gq5 z&aTO=p>x`kT^lM>Y0RN%vsJM#BsSv`J8}zq)eIg;PTsQE0|bQ~Rk}PqF&M#f5O|2! zLPFm76LxfnTrcpq9+&b^DR1?0_(!DS#J(jq{&~nb(eJh5Gay~;RctrPL;lUTduhHR z0H4!UJN9zwp~`^VQDb=01d0}$Wz`IxL~mn!q9uS#y~zK1s1^_N6^+v#Qo!{)#K6f{ ztr!&v(jbqQ*%$f9Xx}3&uEY&qh~H4XWlc;dIAq)hq$p;HT4O_uZNH{B5)4mnvcp}O z#*n$fTmK~>g%$5h4!-^t0%9ev3L}gqoNxc^IcTJrjOY*_Gt6l|$FS&hmkW*gy13OJ zAHNkG4>eG4`J&RL_*7@~^r|DQT&1v@?km#lpT_i%zoyOF_UWmZ!-~1aYKxFi)8s0CD;PkK`xNbC;`a2VHngh5@Pv zRk_GB)3ltYEvOw1m)cuG%iPIwE1SW|Pj>#?QN+*yEDtTiEoCt=mkpBUqYFwy#xE!(5SCYEHUo7cI65nvik&SuE* z^W#pJ@U=5cj>#dE%e4FUh(I$5SBK=X?n&-p3Wc!CXf$9Yt=X%_;$WTI(D}gvLgFne z;&ZXO-__e}eUbJ>;mzLP0zxG^Ap0P{VPmKodi@GA&-Jgrqv5%$99dPlL?{CH4PUAs z+5{TT{)Axw_x|X6h>egAW#qM3OhBf1Z~Wz#orAf^zKbWE4<4Z-f@9=q6vD34oS*U? z6@g_ZP7c$4MFCLXTO%GM4& zK!>ef!;<$7b!uau`|No2%@EOEI0ja(&#D9vGG#oaXC-MHm~V*>Vwk+FvRq8m1x+@D zu5v2zv%sXwmekBTN{7So>I64}cgHHBp!Br%@`R@;zK7!n2FVpYJmLs*b5P6P+EZaX z?JzqbDRQdce3=O`Z)DMnYe699Bs!m*}D9r9TI(uMnX19^?>sMU= zBhEX29=5tUQ62Vjhx)kA?mb5`y1LoGn#-BN6G7O$>Em)?t(INrntkgpyU}fbQQXo} z!ubtubl@2um3>xR6lb`T^F49$Q&YcM*mu3P+o$fmyG9%60M!AkG#P7hjC^KAnrf< z0lm4!D^mlxaVpXppX=iZHG*)K`X1483#k~g&56Mee&UAiH>fQ8jUh4g^iOIY->@|v zTS@yluK#524YiR004ltUi1J?hJ*0FdjI3cUZx8{h*#bYFVe z`hthpCpg4HI-`Q`dEgT~+4u)=%^sgtFa~!-I@)t=T*_08E*ps;U7LYK?NEkZv@LD6Cu*J!B+^VGxVFu%y7;F-lK#vi>H@t+3Ni3SrI9m2r8E z?cfcjwE&6kT|TbA!v{Y-OL2p)^%FnuOE zV7}zLEVk<{;3}%!sU8Xd=r(>2hznU75En>ED7f6(+??gxRY3cgjC*a4=(fZ7OH9SG za{s}%jR%aeobfZm%nQUyJ?wdHY62w|K4~G*c0|!(r<028DY54ZP1^-WzS0lp`-2B? zQZbnRj(NQ;@=%#Y^yi8C>vJ4C(VFyhydwfjwGd0gl+iNnTqA1x4y)9vNdJ)pB`>lL z5*nw*vAp$lE4dCRS8avXU)azNy2qv51jZr28RgUc5l%yO^`N%%CI5cyTQ4-3F}ALo z#^}4;AehgaOuxp@1vy9;*&8(Y`xy&tJ&V@L2lnBO4c3T5j23HYKfxZ^N=xhjuhK50 zWW-NRyjZxiVNjyW6e1aqu3EZB3vm@{aD$nJO=k_%pOM;L&THB%-(~c0E^>Y^cHlLF z9I<-5tQGwzWi*ZrqKk4s>3ZP^!75H`MT;KrKPJ$6^RO?cMk(0@e!6aLM`t4>1l4kj z558M5Q1`bx_3u9-sTdXs!dDpL6Z*D@K++2t*GoR;xeYWF&$*wR5#0GxJH%gheb@2I zr-kb?;&YfKBw!Xt6qsvZ{>#yl;o!lS@A7i)$O}~azLhf)B%FD>mmi>l=EHURM~w+C znIoZNTL}}Cd#{P;hZP(9^S6|ny!F8Y#M8@ND>h&Jx2L5FO(dX!fdF;mKk^>Rq-7YS;D>neI}mWPWs zCxl<%fj!1@EWMuAHzFHi}KaRtuQq%f2a1CdjHjB;fwW<*8Jgdf_K-9DASf1}X7mopPv57)NI`5P8X z)fV(0zn6m}=h^5aH;!Sk{_$cy&srMr?K7fR-#j1_0a!PozH&m#xQKH!cV1?ZVngZl5RBb54wfES$YF?azrDPi++JQ% zQvH~{bO4Wn4lS?nOu;9ns!iksad`iSqARvT!VuowTQL(8S^z-kQ?DF-Z$81++@qH# z_^l9EJ&YmFFosy`Tgdq8BwgjH1V2!FL@tTT^dpE~`|R|?GVHkhcq~DZ@#}X<^lDF* zE1sByAlNn}k8kGiSo3R^`bJ`ow9w#J z@^%q0``Pv>=R*e!7dame1LKOz99tG%`qAT{bZn@>lj>3q^PT^3VGx$cT2|Yj@Q_bC z{{Vh^LD2zy($GsoolS5$u*C%N1%2y6w>$L&{uWKy?CBn;!)DN#$3=%^@DyH-|5NST z!uzaFFJ`kf-pL6YT4@dUDuYTCl0A-T*JwPFVQ9o|EnmN_=o!Eg>4pl```xfze(pW< z#OkcM%ug2BwKHZee96~QPI`#w>>WJin}ETY;8#y?Rv1jBTIdcmuxRe(=5!MSCcC3kkq*Y z-a*rRC|H23x4-RIQ5A-*47*nBxnMYT7OI-ocChBxTU&+CHLt539_*`zI4k++6%vEu zGk99QTamfuY)w&$og4(ssD>-AP_w4TafhFae|hhKV82>`*LS8)Mrj z6@2e?i5P1LBDBf0_iK9G zjiJ9yfB_6dHCL)+VKsPe!dcH>^hrUrE6!S@+hcwy*}@dE7x8QD@g3mP;6(WtSi8DQ zuoZ@UhVg#Micb%|amd;o1HzK6BEutFpxn! zwsL#ylH%#mPnbgLGHZ7fhV>orIoJL1JLlfZ_C^S(ZP;N>vfDW;Ohfv0i+vE{|8(Qs zGG%u*fCd-rnEoP=E`mF?ZD=lE1p+oQq9G!+2 zl7Eh!;57&@cY;-)61nAvMOrYjTk|Wcn*UI0jiPppHn)60UIwMLeX&nTOJhIN%=c_X`g26 zP6j;z;o#v?w_cYzui$1g2)SP4dVjZ40kdsn1`%rRnpWN;7er2yj;_lH)F=un2CITLr78g zEOY~9=y21{r=z)d=}cyjc+f^?njm%l~op$PMSeC_g9)NB2h_0XI4oZtt(+ z+m)F7fQFlq$(J_)C{PgG$`M^;%h3b_p1vp?L1yY=J3QQq=0!`+r{ymW5IG4mxZhZ~ zxKUEFV2KG?$}f==Y9ds`*a)qty?k&h@QR44z}`@avpM-eMYw%99)KrdZw*{7Kup^l zf}9#Ls{rQ?NH?X|R!QFCbDjyMz}cqRnwJtY2^Y;PYt3wQAFH919G8P^v@%TGLZBjf za9EB^5!la(@`GMSkd4cWb0c^v;MH{L_x|nhbDn@H<=MB=FuZMog?Jr4;9>C;em&xu zRz(xD+4e1K10+Tm4*Ad0XH?^goPf!^xdl{|#PBBfX$dyx%Dg9vFhJ`bn3a+xIM*R< z1*kkB3ogYEfQREjpa3$rj3q;7vsU9GQslr;YEIyQSKS3)iOOae2io6l>u`a11o(zz(l%VL?=i3C`IQ z>H-J`sNtwV+npFr+B@qDuSbGc2wn#3utQKIl@v&%1s^>J?6U`so03OfA-=EbdS^{H z%$VZCv)71jP47B1p_hHJPx40C2%&>N_=#Sw12ks%Cd2Vc%C`s~1lBE(@}+P=w+2NN zCmcz=D?fE5Zj_YgjZdJ9Xyh*5SSJWTxpV1C@yd>Y`>FA^qJ3pm-bUW{9O-*2 zGYPe-6V4fI3KGAw<&ia|>3N3V1{!u>(W)#WK1h_M?fJSpi^Zi2Kq*8~E|m5VjGLcB zl|*oocikUXC1oWh;5{ebB#Dog%EHIMpV0*f9UyW>gOal@;QFp?*tfYxyM^L@6N zk}Ny~N}kX70+^2d-U)n>Vt5bl$P!R>+)V>Urj(GnukaPvQMgW0bURuQ0)LC%3}OD> zB2R~}3?C67I!_9T>4Y!+hFV{fq=Dz<>tc#X90(`go0nyX+Oho+R4yPe{?P(Spa$1^ zo?vqAwY~>zMCv2h_es#nc&I*X7n9h&A`Glj0K~V& zhXO^WVJi-d7{<(Dr8L5!qD_t%P6*pFMjZ-@PQwGd=sPHaz64952XzCif+EMN4dX_?he&cLuL-z1DmC7Zl8g&@S-$!uw|(&?OkT#TkQ`w5 z=+eaj9sV{jS@y=3Q^L5w@vX!gcz=8Eg5ap3Ty|(VT(Ewo!PTyJ)gF!HZGI`WHdvHK zkj_gkuJc6lf3N^EI*#=w(`u|YV+><|M%_38hOmz-O+@bm38O<|jLG|)Q`hniS<>ah zoOP-z?wh$d`EjRot|TfCGpyfLf46-fX6iR#9llQn#L&rGIKyncCP6x`6Rna~_d`!LWC;^I$0&-F0 z31Gp#DV?!aWU*1c+?`TlEF>A5rwYH>a{~1~ETGs-!<8Rby8V#{qzCLWSEz4jY1W!A zIqvu!r%E7jA-y|!eP!F4BPD;fug9F_Jk$;%)SZ%-c;iq7k0B*mn+)=HKn7gLtA z66lEfO8!!l%-;8wtNum!aRf$Xhwh+zw<4~I>mdbIL&|~FJ5zz59x0V_sT(#f+aJy) zHq99)yDkRIIwoZ2cu_T<<eqIKd+ zzNIm8K-q~q{IG^0Z4$sNh_84B!TUclVoJE`-3hs=5@nx-XiGG|YNS>d43d2cee7^>gYl zzxR`@t{_EBm5=Ca>YwoOKGDA(zQl#KV$5a<(3@e|DM2o>&InN?1l_t-QoP$x3_K?l|ZceJ$P!BILPunW=)K0R68lFli*2uxHN6Gg_cg;=^;S+UT4+DURADf<7E} z;uLCoA4Ew{)fwdBNT|y#X{io49u5+UE;W(G>#|q`_YsR?Ll6_kLyu+WAgr}EUROig z>K2jM6n{~?94uq~fubh?hpi%tL^d-fb@0xX0OjGJ8zZ4dMoNpM&26lHOA18e$lhNc z6!%k|s<0u_o~%)KbPKbtv@Ky%;UH};jKeSY(~lj-3{7?Lr#T0S55CTndIE_Uv;uQn zhA3CKz4oYe3rx@n*)J274cz*9#8 z0|4d~WA0JC-Zb{c9r`(Fgi2|c&`b(?RV(rIwOou!wlbSOE%0B6A7m!|Y4r8Q%&XDZ6($>={gwhvk;Z4wfy-_yQS z4Lm6}PF;0TZFgV&PA-^oDh&@oOpN>+aHl0!Tl_Zka8TuXvF8D@oI&<3q~Bt-^`l&j zyb7nkC3_~rUiXWeJiN6#3Z;cSBUGh`GZ6zU`(FJ=JvRJ>ury(`Ceqb_L2yL80YuG6 z!si3xkI>{C8urf&^>z~ zET*hV`2jWS+c0l|9O$UDG#ED#7t+86CJ+7@JI8hD9L|WkKougFtWJg&fhcz`TCh&f zIM4#;4ck_1m@@c@P;dpqD}Lo-R&7hO?&vXwQ|Td`{0{eYl8_`Wy33Eh<{NFl$P%2R zaEO_l>(n$G6NX&4C9JsATnEMh^?4suwdFW8QT~Qq{RT%ZrpsDHf>E4WK1p}8LqDe5 z)WzRhqwxR8%q%pr`5P9I&QQM<_T5psiuzH)-i%f;K?NuAEt-Kr0YsFy3k{A25`)G* zT=GZSzqSQL4MaAZPoo9DyEpy$lg>3s;#q??k$7`+NGxhK@y}3g2aeipP`>9q-dJ&O zmR9sVTJV&sItoV!7a0j-WONUydcqn)XlV&P)lvzLFQ>Y;D&K17m?)25HGyfq{aX*R z%U`)Hh$#OC?F1k%47wy|V@cx#Q ziEa(iHBlEXcr+#6R8+|Sr=;B3%~h{FT1@dV>}TUC5Da-}z)vi$s`sZ=7oRXQ-6Btw zQ2eetIu-$zizor65-tvC!t`5g!o}8ABSAY7rzkWa|B+!&_lqnQ=ue~j!rQMZ<$v&6 z+4@cA2FDGkl)^MV?{_k*i&!ZsIAIYQWPVlXojaaTVlx)p7wt<2-(ioS=|Es6<4;0N zu5drb5;g=v8`@NIwvy5~*??zOZN1Z?JK)}?Mfl4|b>LWaJ8fXTXaG4No&&K?-#+WO9A@!doxICj_Xg7FmNAz`u+-iGM zf4fMvj>P0MAudoYO_7WQ%0AdrE#az4(+vSk2%tpOVDn3X2s8^kUtCYcUT9KoaGbNF z+d>TWrQ9EMS$3N3n#J4aw$)!D;Js$^SavxpS+RY@Fu2;Hx1lQ=@o|^Wv^1dUnNe3~sYmBVBT{`? z|39QLrTu`-4A&8~i{JC=F&y1&zID^leZad^vUXxZP5Id-lm||jeH2Bc%N`f8sK!;} z)fh_|%zo;gsz1*UVvPRjDYW=R|L6ihbU|GY&B z5Z4=le698YMK()Pj)>SEb+kI=%80QAt5qxZ%)R!F*WiTUD>m7(qQIGIBF=j$ip2%D z?to79?Xb0!ZtJ$|3tRin?ak05egFkk(nQ^a@~1tzzPJzD!55!CXO>fbqw{~m$dPNf zyp2GG6i3-Py%*!wlgCA@l%YCHO6BspCQ&DNCS((=3_#(|6zrQprt_)Wk{mKKEQ@d3S**3i(J2joa|4x~ zK&g|sb30^Pq@lYgQ4p~*Qif-mfXnd^mIdvI=c`F$?KR-atwfDaL4mW#g=#@2MuZYf zSAQdpDJAEs|G0<~>Cu=@tIisXgWcX&;bGrgPgR}tz*M|-aNtkja`L^jMr4y4diIV! z*vFFVIMZN>r=L+-1{v`|M`Nt&80?vm%npIdrfJX{wQJaZk9U#ZzJ+NKJpQ0!W=ISL zuw0CAChxFDkqcM?zimz?z&ozlPqLk@{&FpoqDT^-jlN5oiz(W3+1u`RUrSL+owUK- zfVrQl>H3>14_e|j6w-cxRATW^`WL)5;UVm#7=Gss;;j}xu`d2f9UO;1wlr4bQ#UuR zG$Lexl!Fb5;%a~F`65|@&L4lBO&YCEe#iqd7Byf^z?fv0Y zs`|G6=;xLsKwru)?%!N-UzICa2sQcBa#IzxzodN>EZ|CwE5bYBOOuwdsx5>>7vjYVVb!yRK|2+Y7NKVZNjT00a zqW=pDq=S=p^#8U4;d}l&=duBi+-Vg-fUiCPLjnIjUW8IXm|wO$FfG+<V1%S=dlKDd?jUp%={OL}*7mgi383qT5!6BVA zKEe9;y*?pWYc!bvT!skPySaq$!T${b&k5AQfn7aAhYj%rpw`~RM*K(i*^tntz&`>V z{}IS%rnW)*kHDfIYyji{Toex2Lm>+R$SxlL9!A-@AE}4U5$+Lu_727PzX4Fz_o0Ox zu=2LIC^5+FxV@Kft4R5_pj^NiNx)lp#q+}V<3CXD$l(96=t-oaRpK9M8i`)dIUY6&6AWjPUu72`9!h5L=rtBaA#_!qV$u%-CRbKh$6Z_-SF@kNX| z(>p@l+UnN--d0;~>;L<2-rsQ?=PbSxQGXvS{qeD%CRko3H0Nm<)@vRSm%Jk%~q{iMr7cmlLzSC!i(Mf zV9lu^Zuy1ptNV4p0IMp8SsQWSw3zYwlX53fH0sf^pFfBDz)x1<=oEfvtJ&`gDLD>t zKIxb#>Y=lq0D652@N~Sx{PqAarYgo9iysl$&snLEAU&bQ^qSRMzwZWv@UbmHE>qAL z^VE#8g-Xby{78OqrVK9>2R~c-!-q)`QF<9Vh@Ve5Y&Yv>EziQq0Mv$#_C94z@A{OlJ2P;AD>V<#*KUK=>T66}f^s z;K%+}g#Xu{lCa2@<47fp$O!yMJn+c&HaY+x_uxcg3-alUxdZ`9LdDkjwP_`IAHD0b z_F^wx=;sMDuJ-ersuNjiB7p(dsR&TMT!s=*Ur{)#ET84!p;slyh+5kTup!@m@|Blp`-At(U*N)+?1i zQC)QumzTRjrjuwQ*{hR?5LrAC_MMKJ-O_DePSc*IUmNhniUj$vdl{_?4j!h4#_`s5 zf$(d%6iM*#Lux)<$i7CGx2N8-Bn9?OGK()BUj1=cfrpy5G2XMJZO6SQTT4zirlmJY zWml&KZo2mdug8-w$`y^<*T4PgfZY>K#%yXgG-i8KLV6asdn=xHG$-8!pu(&$LFbnY zcigpSr}v~D;5ULd-B333=_KIwg8n9{O?DP810f>p#4)UX&eBo1kzzHo_W`HQ$`5L8 zWmx7`ab+^n=f>y01LywSLiYMzKYZoYjxEJKn~4yo8p`07j8GMLK?wwpFozt-Y7!B@ zes*hgAl$%Zp&}t?8~^b2gW=rowW;@zm|k50W+iEuUZe?@`>8pG?}sa1%wD84WPd=>2(#&{XdxxgzaVs33@{*|Ru=w<= zWpZiF@IqR!3I6L0apz%it**53`O-BPI4{o|FV*ht%8pA5u@FnW*sCC7lAlQu?m|^$ zNfkTF)k6dqaQcwC`r3wTFu+#Umd#0+OxOiSfrq6x72)vvVUHbrNrIi)Ey&f*jUG>T zEhXNO`Og)Q=-VTTPVpaxIDk%6acF!UUC|F_0=U1jplnrlE#^*C9}yPvnLzWgJ%qgyoM^4dAa7;XyQeL&~+lGTww_m~Gv z86h5Jv$FL4$^{E~vm0e&%nK?SlIW7o1F6p+^LE+IPZ-POvtK65^5B$@5%iKl-QhIY0(EC*fm#3?QN=?l(sO>ebru2Ht zENpScp+5ZbU(ct%FS2t*_a<(&?Y%zX9`mQz?h~l=8(fpN%*ZFND{kN2kBrhiA>m~A z52=R}18)6s(iq74S}!oVn;j6_Q#A8;HRFr4hlU)vE-7;Fj@&WfcXz#5F;7O`9Jrvp za2HMB)rdxl3I!>>d2#Zbe)~r>vUorRrh$K^N*1i3@+FB+ulo2B#=QTefS=7p(o-W4 z&1p$X@*8s|7q?)tk(iA<*zFq&!~7%L>}-UrNyQ`en_%}ZFwP%O)~!=U1So^h4t3cC zp?pbRaAriebBY)R343?PF(N#eVg+C~Iq!(KGsEMLRhZy(Nfx6aNJhNa}o_M&hwn(pxu3MIhE-?bw(3f*m2nFV;M zQN1SlHFPZSrM6sf!Yp`nnU5SYzu!Z`s!#2EQ?}@zWotQuPp8TqEcb^;rHgCwBL%ji zrK41Z;`Ay)Wq!go`3~_UB61o6I-*Zc#WMLqbntWFWUMQFChB!gfCq%GpOHANEbWL_ zk_G8twb7r2sP-9-^md8L>)|TN-8Umm+$$=@sjTjs zhd%v$m`Bmu73bKw3fM)5%4Pb!lX_Qp`~sB5jTNH=S}(C0j~>bjOHw5^y0T^|bmnko z$Kx_6A-X21eIg~leU$E?y&h^rT2#nvg!iU0itXV{-8#+jzuTTy{gn0M>8CV8>R5AQ z#2da7bU@pHJ@A;nYwP|J2o)7Qwslbi`A9PlU#1~I7jhVysH>&=+&pYokoOMZHI zvmoHBf)9cH$vY$};Dn;c(I#h7cszyD;PTFw5sV9@q0Mk)fJfKcECz;6OI+(|;RbHg z^8r!v^=NMLd;>@ocMV)uufa^|^J_rkJJQ?NA~I}RJawW9^OX^`9&c);W_P7pz_Yv3 zNQ+-Q+uZ0R*!dX320~*@>h?|Yh52F33zwLiQv7=3wNW`@KPa+Et@Do51@i)L7f1j*Y>QuK_;1LbO!x zE&oq*Z~fQS6LkxtEiEoB?(QX6i@OwehXQGfJH@TIOK>j^#oa@3DPG*&ifgdk)92pj z`~C~>Zz1_`&d%h_%wB7+wTA<2HpdlF`RcDwqt=6xJR?nTgG!J%G_*iGxw@I z(2ZfQ`4;wzOj--LR~Yz@)Z*+Vkua=U7B+Z(dF#Qh2T|Kj+{K6zJD_!#Ydgj(l=#*B z8rq#d&MP_jkj}`1*@wP{;nddoQ$}01yhyrP-|GM$k?BZEIg?nn>AM`JrTV^!3fB1= z=2}TO|4GKL;9X|}W9g||728dp^75C>WJ|1s3Dkz)9b1f}|3-we4l#8l(oevR4Gg0T znZG*R>Bi8aTk=r&mGFreIv{-=E3^B-QT8!*f-WM3`m#lVP&FjM0+vXkp59a%ePoboiDs zSUIaE&6fT0o%^jRTUo1-^}ecpC0Hh!#NPq1WFQahAou#Vj-X{@%iUog+byoohLRZ! zTN#klTV82|YZslihl|QJ5`sS?4wiHnqpZI!PCdYXTXIn!Sniba#$T#rc5aV{li^NI z@DM|obW<;z;+>yB2e&Gi00`MgW^#LvgWJ5d@-5tdn!UU=j$?N2Myaa*=k3^J_Uea< ztg6{R5|@w`+E!z6_^Yq&VTyMS4RY}pNzH(kMYNWI7N^*ybVxIXuBWGrZ9;290;Jr$ z?QmV{P(gL-5!kvxbZH?>R8?Y_o8)1VGa;w=Yuo4PM7H$o;_0;FSOO$8G)|ZQM;lS+ zH`-m8e<0Xh?IaX8qu!9yTNsV>Rt@cBUCF1CJmO^)d0CoYzb|h!5xHrC8pg!;R=EX8 zl!!L_E|jyRL%5R5tf~Zq2I8kU9yKrKEH2X(i?%G%pp-XpQ`3$<>hgm`75{&=07@mkZsE@l z1I0FU=9{s!XDO~NTXy&=Fr$%|Q>U_RF?~jkKIc09PKu8k@=BM7k>2VwmP3Q=u6e&> z>TjUH!=)&+USkA+`hd<<-Oh+Wgm{eCtd%BcMHzl8PubpZvU+EG7xcNp8t$)fyI&0Il8=Xpw)o zC6no_HEE++G=fvb*FT~Ilv^D}v$jkZKT4~LC4}j99LBAy&>u^tFqAmae&@&)7#G3Y zgYL9m0%PcNVp#tf>aAt5%moBP#peoeeyZ5dvUvEOixqr$RA}eq)S`Rprt4`Mdb`~+ z5&*WT0|Zf8?(+3(6l(E5mg#F{~c=PNx@0mF|R0xI%7y88`02{m!PL5MD<@z_bL=x*i z`<#ToXfCwIEZ5HnPFcP9YuNHPQd|F7jq^0{^T>ysC1z#BXz;R$taa?-b!sY@;H5DK zpuKsGR4^15=h0MsNSM?DYx0@4K9d=5NhfPkveh{IhOE-W;tspz_w>z6`)G(Ck8zRl z-o?sqRoW(a@SwTkmt>po!Ak(~4+mkae;mmMU)}Soc}78g&?cEY@wpaH~@9c$ir zA)+mG^}SXT7KbrvxcRZv^&}2{npIU9V~TwA!?Xjfz)mExDmk;a%nxM5fk%6I+}XZ5 zws$Ig2&*!7rh zi%o{%#C5t76I(nTVBW-A26gu*B)bR`#5>@wS5Oi(^S4+`=Oe4+=~7@jOE+w+oW~#1T~@U z?~R&ikf@*sIQ`oU!b_7q0uHhtT9L!xQ{{|G8Yo!dnTC=D=+heD~Twb&pdg zAzs$*@+C2UV?~5cKaY4r$vf2vHX4+JwlQmP?&Zu(y_pn_4E@Q>^GO9);4t*U245+E zBVGH+S!Vi^YRBsA9-H5F$vY*!GDhwZ8FiuS@fKeth$$m6E#u$Gh-T{?c^TCz?zbYn z|L~$|UkBzbci;2(Y^bNeZbkNqLMm0P?@nhBdPJ!o>dC=-gr@oq!8JLym8<9?7?s9H zwd+woFfqxW`jyR(+uKL3muClu2hz#Tm4u2Q2^)HXl`McLxwYf?!QKyaCJK!KKN!Y32LyB+ z2B7t9rnS1r}DPg{dO(9)`UqAg!}TIbLZ-kv_v-J6IS zdZoqQ=b0S5(v}*e=YKDqb4>?ajT$OA&25?%cnm9Fz$^q#s?*hpL?)PFAcoT1=yPF=b8%+~&WVEmTrB z_-vsEH1lb3U4LGhIl;zK8u-!EO8b@iWL|lvwA0Pl($ty3$Q{EODwI&=t8;7LI^-%= z<>~G>Mjb1HpW`?2k-Ovl;pK$roG-R_Zl{bgTShqe?}aY32%xalZdij1z$nX9x$zj3 zG=ytzGr)0m$EXt{k2NiBDSA>H-I@$djU9wdjnJ3d?+-J5SFU)qkME3V$vizI16j`| z5i&Ss*J4{Yl5cLU3c~R$dGCE)XvZ=|jlj_Q!9IWn{gck}GNFb`O#t|Y9XF>i#*Ewt z%!Xt!l!iMki)}q!l z4`YFzV~$R)S5vyXZ?jVL{KNTix;A(n`MUaU0A7#J4yzLXy@nN!F>Jk%8C=|d>O>o) zdP_}nTC?6)OAvlC2BlvX9XEHv?^YEL(YKl6|J?JHiLvst7jz-nmTJ#yb}JD1_j zb5PmA!k#)M}zm$4)tt9wnAF zS4gdc5Eu2ha&faG>KuW{#m-77k0%tct0dU-lE3%K&CpB(H+!^i`}W3sXAKp3!u#CR zS}F2;gp%=m(d&V?Tbv~ADr=ATIH;~=Kr1^>KBNK#5;c|jY{*EfDuj|LA5t)FqMWXN z+=Q=}yH;`71RNu2lkVTP+VWbDkej@Csh!zG^Xb{s*ZSdMqGcwUWWymPOtJmyT9r)1 zM+_obBu?7?wC){kF|npo$Qju7EVvCUW$mvBdkcp%!Ko*WbP_Bv=u=k>B~_D*ly(Ij z^BM;uzRSulaow~YD()JyUOY^1xtaC!vyBr*E{O6Njz9%V={JE{g8LixDA#$hearPt zN+Y^gl}4{$X*H1hs}p+t^ba3`Rgc2Le$IA# zTpT-rA-^*pTIsaAk0;lFb>IfqK%72K* zXziGIA}1$b)ant$x8*!8HvaAZd3piK%>#pS3g>oBPiLA#=xp#C_{)xa`(=-Y;538u z(rxm%8va{CwOwj*r}KQA8;lgKh>*0_Qj`cuP^bGQ_OVO;ur zXIy>=FRA&a4`nMoslXyZ;MT^1n?PEVa8?_T$n$aYIOsEbB{-(^J)`CZs!n`0n?h%w z*jXe=PYbBWi1d43_PK}<-nEK3aaq~Ac-mq@)@Vt6u`+V_y7FaCl>CcmG7Gw`OUW1s zF7}_FW(6D1Hktjh`XeC+y`j!mM7 zY(7B5bjUEZth@3XBlJ;z_f!vp`(7cGzH|`yeIm{eTwa-8pGcyAYQG}+Z3Ls(EmA~h zx$7iK#}G)nSX3FOcD-GrQj#@v&UiulbOzOx_a!x^6EI2;is2MD(Lp-;7sC=Ae_p&K_oLM6VWLsWTA^RyrCJQiNH^Nsoln&()B0PCbR zLp-(0lID*}%Zb2(Qj6TDg{wc z4)#PQ^8mYVp5``7#Yf1%$wZm2Ct{lCGsib>b(*2yboujlsOGZ{B3JFFjkPYw%5Gwi?A8!CGmNcBpbpztUoGB2;;2M8=0MPh39^*L=kS zbOmXPli#HjtY+sX(jgupb3#is4p&Z;c+Vl{{DJz^dvnzh$xrnWZNhImmTPlbgbyGh} zHQl>;8f&%)-+w!kumC!UNeHf6wBUpn8&{k4$Ov$$PlU+r#?+{o97^$A#QceIFJL}_ z{^YW?( zZJ(|uWg_dm!oI)YL3CnMe);((iGHPjxZFEbp{lRVhtOin)RVVJ>KI^ves3)p;!Qx7 z#=C)fR;O(@h1@Ta!iu|9OuwqW>pZhF}suhn% z1Pn?m6%C*BWnd42sd6$oA?XZ(hi*QV@Q_4#))bd*P6Sa-gvuCPCM+Z)|Yk6*zOojKnX|w^_@CgsY6%F^noJ!hd1&O7y%)viTBI z+Q!Q*tG3hTQWpLv`YV~NuGgv-rHaU6ud+Jd5{G8p$Xc~2{qM9df)~7Azo^;npXGjB zV|y~if}`B+LJg!t-kuRC0$F1ckTr$^l)>G6T_T|^!zAwI!>68;%?G}_d7JRs*yhhd zp2pl0GN9dCW;G*%mQ;Bed1{Qxiybl0b4}mS8Fk04r#0!2t^-aTA=%XrI-Y2Waf)kP zKc5QknEWcdUw6mNDy|1V$yJ_ zi0rL;X#SKc0S4A^G(Cz2cjx~yRzB+WZ_lS^c1E^-DYeN#MXbde1`mna&Ky&l*xA=X z+M2Kn_h)1H_~Z{*L#nMWVVzF<(T#zsY&#Q-N_y(>)nAC({l5j0$tz*?~Wt$LS80uVf6C$DjBHz33Q|mOk*KCBF54$l3 zj8N24CSPBP%l1IZ8+Q9QVW^8PAAE;udf-G&yx1oZvwdJd6-%n(2l$X?c%9xoXiS0M z4^#}Ys*s@25H_vZprck6|A|i1y;yQg)yZ*iPLZ2D7Hs0*d*UN;gu!mNQh7cXXKb-{ z&hR(eu$$Mt>5>)y?IaES#e9~)gHVQeQUb0=6p6* z#hKy`XL9!* zGF?w3FV|D_hz;G=G&0GgL-tlQiAr?=!vWc((m)X6f(R z!lc}90*Ft%zdh)*gBXeD)-K#=2G6In+t-QQPe(_@^MvAQSu=Q84zEgEHj$+Q`u+)HKB1fTs=%=Pn5S{q{uX`q2o` z0Uw_F@GBSGbYJRJe)#I-4@Tp^=L}fc%b{MY2YE&XyGkt=!*ew|uI_$adn7Vhcm{Wp z#tg)L>5jh)N;2hM2(21zo>ayQCDc&X?NLs|RCn_Ic(Yjr=#BmM2T|GdJjoQ2Df)i& z5TY-;nhAEN!z&YS*V>UBzioo7pG9&`Mb2FqBdYu;r>aV2K?7u<%51_`Q_~i4~mK#Wh{BL_0&`RilNf!Q6%Ya&1WB0-lpS;H`JqQ)>SaWR*7 z{qZ6AHe6oj112v22pWM{ZZlmV%e|mwiuM}5v#0q}B@~Hd1^b0hIIDqSWZKZ_x}RVB z)=RxK@Eu}rZdo3{jWub7s}qnjZo%y;LW{F4VytGmg^@g;l=@6^PoYZxGcuCX!2M_v z#NoDbg3+e=LVh!7;k`2>RSGPOTrGNlsK-HKy^N4kDTu1BivI)xizcJQDk5}aY=62O zx!WAq>w7O}@=XSUD(NS46k_}CdN1XCA*U{ae1Cewi!rV~nV0yD6+1BNn7R!w{F?ss zHGeg)50Goh?u*cZTQYvoCobCzcp$M9Z(y3Ash%{jVHEOy2igA;d0X5#N=uycmtE9( z$p4E6o%!~cSSK`43ft*#tNzywLM?Rx5x`m%LAxgVEkQgzAQqmgpUE;@{#%subav6x zdkk5(sqT)_6)S)~VOAOJET4w?34uowsNQP;qY{@*F8Wg^vTH8Kb%KXT!B_Zuc$LBB z2dAk^;J)Ilk_5BG+1+Pq2JKE)F0O-_Tn*#`MAn~X86VzVLWFmA?_g*C3S3|@4V&uB z{)zYuAwl2QbWeSBvsmMYhc|#6x=MN)%}nV)sA)G$bZ0DQ0i`_t3W2;jrc@aV?lzxx0lGs z!0`G~gwN^?hWnrI#|L`pBq}PEu$8AVT4FD*OGt-E%58(N3M@2^!CZ_x8jL~OB7gK< z&;yW|xo9KI4Wkht1I(S=!8EGnefNp;3Qkn34^kuLa+C1>d zCQMy&uk1YKURqhes5?E%OtG1YL;Z%1mRhrYEeQJ?!x1390?O1mo* zcEQ49gA*QJb=svON?F5BL#f*z&l22dhs=x#;*rzBtP>{BCLALEZbcgNcDME`9^8VtT8fFu zdn0`W!DIZ%Tw5zQd zpOWMVH)88fufhqloCvCid{8&TeLkxqPyeliEru+ZSt|XHT|{gMo5a?l()q%nUg`zD zUQ1*ljwAa39qm<$Y$rvsFmR;3Tp~bE-;QiwbM8iN9^C~H@b>x-O6lk->CFiVTidNo{pSA{u%a%@TqE11PvOh|K{0^p}T7F4b%3t?a#UMeUf;r_EqDuzBJ*A*qSW9>~Sx-?8$|T zI*Z_Ax4WTZWzHYv$OOrK{Hzq>SB;UNKO7HkmM!6h8T@Wl_qrRq!tkyMt0#a>AK@?M zT0hdiha?4N*um>`RSD^c`^t)XgI_0L+-iY_n7IBJBGRt&qg=>^RHbz6`A9{z&`yf; z$i4H7hu7@rJl5NNGRbUka-28*$#@N-jpkunTU4@HK6Q@U4&&sqJ6JUsCor z2DXMIQM_?Y^THhmmM>eZ7Yfoqt)lXvw)@LS{kXKSYVqYV`E>yz_Eo*~6O4h zx!z)Ug6s?afh2M(%kgXb!lOQJ*O0u8z}u+i1Ri4NZ(DwKZV!f??_gPP zh_e^xMl}4wEGFdB7_;jM;(F955P!2dtp)E1 zg#xFk5`Cm%K5jq;>OX?D0S2akAWO8~p}mo|Fs2RmSC-!v%G|n_0a>!##ZWoOx-Gx+ z-tc{B(}!mC`uKRbrECks&pMhVjyR8~X`P3*RP=>zUdG8=Yp-@i)|I~uSuzLcEI?-< z7;)OXu82Libl3isNrZMmNscxD-`8cMC zM9XTkR>qe6+HkhH;>+_{Vwf)5+GAvqyj~~lD?j0nq;fxHN&|q^nvY-sNIRozy3h?xF0Q z9WBm_h|ix;5PC(H=6CN(jne3j#jmb(J?S5eDx6#mZTHLLQH-|47%=^cY+p86>=I8U zKbji_R{*bPlcx4nM7#kv^b2dyw`V;!K-cLbm4KHo*|zYZ&7wZbbg7A8yk>a@Id zAPw^lmHpdLZ>Kf-wy`~RhrBzn`Z4V{nT?9*mPe)Plh{=HO!*Mn6>8sw76u?n*yw9Y zFxga46-?o`iagY^ve?D^ivJQ9cTQ^e4XAG4a_QITppe(=2bGha060^(V|eFegpn~I ztt3M4ElmNSLo)rx2*|G?MwB3&aBJ0aN0+D|MK*=f3X&Uu~Rx#wu{! zu*sS#`r$I71n6VQYbJXwDdKw0LBra68RJaxj%D3DRq?Jgu=|DJ+{5sA76B!|_$%BqeJH!Zu8rIMyJ}2Pf9U4*6`Le`H(q{3~oTl87h|XmBgxedwA$j)p#}r zuSwy{8oND^tz3QivOZ(TK_|Iy+ILJ~a+`5M&=ZjZ5oH3Th6W;RYSPj`a`mPGPQT9& ziNflP zdf~2gx9-@^f(hJKQO#SNsEDBqND+}e1P|bCD0-hO3$6&r@;Kc9z`FlWSNktZ?y#2C zwUrfhRbqqRM1=;)Ee_MsZqG`ZlCuD*+f3CW%&F<;l;i4hPgzCRIBH^VgEdh1|Dnz3 z#`g)g*<15TsuXn#NR29&@ZqytcH0m9mPbpncjnBWzBa;9fdc*p+)gu!WUlhFl1v|w z<;mwnw1Q3(H}&m{k}-nLS@6hN-?3FV(u zS?Zren+ADk<$wPC_bw9VzY;7T4IB3V{v!?zAa6#C57@T*f7f}36!1?UE=G!*9QuE+ z1IW5@|H--s#hmzo%l^;R1H>e$a^+>Fk1BtvU)v-JEU}N=dLd@MtLNsGrl$v8JjM$f zG}^T6OQ#{};o;$RLm&|6c4h^S+e}RZmNF*}VRje-!c2x!=KtIy;FEaQ#MmFj%vgbh z?B~niPw{Cx7-T4q${;hdwpHffM`N*=k4*)Ng_R^xMJ7~^gXv!=_#e_b3VAPybN`|Fd+4Z8~GLNx-AUsLLxui~7Dz_Yh zzDKqV<8=+}0=?pD{&tt9GM@F5!b3#jh9IsE)xo;8ul>(bz+Lo}C{nN9tH4n~HA{ zxwwQ~`|?1RnWUzGmYxO|`0j7@N;0{nNby_IN|@uCYxKzb+E0TPjghJlO6(g_tHQ&N z1T;Ukwn=x=7dl1V7>K#l>1#i#jpaFCB8K>z$oKEeExXI#1phV1xuB3ck5&aQU12gC z{4=*w*RU84+1A?jlp)ve7xb!ms_nflys7-N4M}fAp0{jB%>f25l)m=?@aAAC1@M(p zYZ&pOzAzV3I_%I^_~=J?aUK=4oED#aq4kqhNvEX6=>?Sl()?>`S$z!+?FBTI$0zl$ z8U!cQYD1*)c!qqX489}|nLj>yNWzGjL5cSI)9RgJ(H-Y=>Y|RTOl@=pZg*ehQ6qvh&m*R(z11v>{Z51D0SF&&5j% z6GSQeS3pkCB=#u_$4LyZCg;O$#+&Z~;>?sA%Vrnq9Cu!M&gS`a??ljeO?Hym^7vp= zr+h6aYR^B;mzh>)mM;5e*MDOd*U}SAv#yh18g_J#MimNq(F4o`2;SP)f;5PknO$U} zn%-V;oEv||o15uX{6jx=wboZ!MpOmvMV92}m#g?zeEzF|-B+QFVGEb~JPpNHtDx0s zpg)QD#M2D0dP)xBf;k*+msk1HzVLl4ZD+|{eZ9^+^}fV3=_ixb7ze^MRSg!B{bE{c z7+1P6?RV+|Z)FM1;4Vf9CVsg$1A_(M-xVgg`Z%>N@d@@e#h1;q(XHaDLREu76k_Z@ z`^YHGqf`=cIA0B>6sq2c56AMl<|nGWqP9yG`#xjF*GseoX&;i^#e2o2Fq}CPfo4EM zE%FMRkh`%;L8RX~2Uz@u2@zGiXygmi1Omn+HcgpvUVeJ-Pe6U1OtAQ}M_@@-=aEOu zkokvD6;%_erRzc9v0==6LR^Mcb))ZLfxRwb?KHJz$_Z+EcDF**-64~mG}H`C>MJzC z?rYb9%CusRMcNW(g8s*NW&t!o#9zxE56(vR7q~GZ-!zipSZ@8Y;7Bf)VIP#v9`GQvfDEjKE7X5- zddBx==NoOcihLY%lGTM?1Pn_I7Q5EP0BsS-a83d1=DWbjL{_SYLIZV?hNSSEVoM&B z&L9HTndPt$L4J0@zjmtmTdkce1?|58A9k@HVi5Bo6l7>yxgAE0x7jbm9e+@rm?{qb zJ<+Kk%QU>GzoD0;yrbzenc)p|i+Bdg&iZfoQcyPW%+pvvNFm)fQu&sJICsLrGnw;c zJ}DMjYUSYU>Y}t1*?~S$b~;a8c4mGHh7E_$vG0vObLQ19%6;m{j;%hPuQBf($}IVO z1s}CyUAcJ<%@8{Fh*0HB!Kvp@vjOKF{fuDAC@xN;bRsYQ*UNz=@fT8FN|7ZZh?;9T z{Yz1YszRfW+ExBnz(OgZzZ@a7x_tW`?JgSpp3CGy_C4|_ng3ygrr@!h0j!C7_6h^# zj~^r|ZZCw@ zsm}ZiqB%)W=b6j;gef!4CnjXyP=3eI+ELn}8kg+#u@ujk+pU}*)@@Y=$i=Cy1xvA|Nj4C6W<^x@T>6 zn8tT{Y`FoOSQv+y3Y~Mf|6^Qzp}-JMM7hc{E>^;1tGEu(g9AME#Al#ovRLOx539=h z-n)|C-(%6LgJ2@hbWWTM20?SRydXo<*^CA4Gae@AQlPwOqdnF*LZFKZwI{YgFMT~4 zX%wwmqhfDbZGxgc) zG#L;#ci&JZlfmEDjD9axI7%~w{+2;~BsSeNTh65J*Zgu~YGCglspxm(^?rHW>3`cd z)6}HbLZf3g9d^+gePdNAM}YL?q{0lGWl6_<3sxpb)9vT^S@C<(%WxG#+P5^#TA5n8 zg%GPG(5Jhto6QMIiNdC6^7&alPmmXT1H2T$RJ(sA2j+s z_Cs6c%HO4L95;fBh3(hEm(N$@Fa}kpRl>w}<*yRRI97`08=6F$r`7M50bKfJjZ%Sukrk#h{o0l$>czYNH zNFAw>hoeVQx*gFp`s!>MjUAO^oqS3v3rdpo6*2$vdoctmu_FNq&FE^ujL76;yYkba zb3?+WYT@xE4x`0Rh2xJAQ=55ZCr&F{`>F7jvqkovvTZWD=(;9Xr_P9Av95%u2wse3 zga2UJ)jwF~X+A6rbXfbpa0&?tfMtkW7;Gs2!7|T(u&je?hXSz5{)2b#kPrcHZ)~SdQsWJb* hu>`!+!Ci1Y6=%{R!+(}%<)qYD4$N(Q9t;ZLQ>s3K%Q zAfyk8K%@Bk0hhqIuRqb#&67m@=N?EIq^h8-rU25gRMC`Cg#sk1P*qJukOtW9A9@#e zlHY$BnfQlz`uMoWfKcj+$^fhLCN2a|Kbk+)Lq-(_{5JHXk$iw}U>Nu`vj9G9fIk&w zClz%k%?rRKG$6o-geSRTJZXnqfQeK!fZ_8Pw55r$3PPYov&@`nP^%w>3Mp{Wi~7{Q<*Lj$Cyr@6A9s)a=W+$+EzO7bQ7t5SWGU9n&g$sY@+yIEqDeGSzD z)B`*)bdo8FY!~3`t7ggo`+1}BFeuE_&p=xGpi?dRLYe1>C6q1@c%oGkW5AlMl0xN@& zQ2uy|tqB6{;|HTMOpxB5ekO2BW4Nz{DM{T93&*2TD)1QF}6%3%1ZG6K}08g6bOCYAtiq9=-iCqUJ_gCSrdplK*H)DrBA zxA1iH)lfAK32?XcGlqk4>dGF#J%AnyC>_ko6{}`L1be&sEBoPGahAq36)46%z{-k1 zbiue1&D`NGDz>Hu0Hp>(-5q8PwIJfjra=^%fw~o19Sv~8dmG@WLGFIRrW$sB1O(jE z#KatIfey4lg2_Q1a0@U*&Cb%)pQa9HAdJ<`aUnzm3GGhuvNj?SOoM`Ly={rcYVOv) zzIFtXF`nY1ZUXjl^`~IW+~7DI+5&uKptGXHhIm*Ws@5jIbb9*R5ZG+s+OnhBD4XxZT z$Y2jQny#gaI%xhXe+g z`O_ilF1|QBswYv|(iRu!=VF9o1YneHX=+G3#l`{(3Nk#@Q!9+OxsNB&1Qg-}wWbDJ zn*~^-L3TC<>UNqcUJz&i4R3IWtBtw~%*xl-!xCcWVgf7%X&em3*$_-o*7OiMGz1+K zVo5hPv2rEbVLhSNmLPM8i@z_$i0o-b^`YR%1Uz6Po&f=PUr)FhHOLz00`tW{eEr=8l zA+FwZC|a2q9PFxYscr%{0ssQM87xqlV5O=KwF(BV{oUYrQ*T-T2?{kg(y;O%k=Fp>(8cvuIyV5|a+&7m;7Mxd8ffQp5WiHnB{Mh)1aojS$H#?^;LVi1T_ z3lAF9{ZJL@0jh9~Ab%ATR|w3Sj!`o=Fti~e?NAt7xS@|Bl#UHTd8h0VD%J^`Id^A^v!fwFb?|kcPte zsF>Q|5g0Q&qBj*{j1NZQy?_;IV8A3ZhMx)pIPV>LjUo>VJ08&?lEI`z=@TrqA0KP$RAMJ0&p z3Zc@iNFbaV)(=1ubtrUe1E?j)g9yc#e}{M?mM#zA;>k}nMmJc=_m zGNq^^RaL;g5CgJ>zn8U!m9G~i*axBP>C1rHVqH~{9<~${ix7g34Gzbkf>0Pn`0QC$$OC@hU`t z0p`A73N#4muk7ySdT66)6?Z=($yU|UJjBSC2!=o`-9Y9D7jKFeCB(zu)gTZN3^&$* z6Wt(zHf9VUHh5|JC?oJh3w2ru4v?=M$rh`wLI7cKSQoM(+%lNxY6>z3qwt<81}Y(H zJ`htYb$`P^GcwrD($<@#ing@Ep)n|ROHVTh7fpYZhm{G#1Y)V~ibcYS9-3;t$U}#SwI-2*km`n5<6ujI zx{bddkmSH91Y07)PbC0`AgXzz$^I6~t`G~7g|eXm0Is3GD#6>_#Khzf0TkVcp`<7dm~(Fo>)5Gz>UBl1sG9?eyYLBbgz&@=db2( zXdFz&0?839$Xu0xa`B_M;gwA^i6(yFAYT#^Yzs2*p$BOCx>>54Ap$AJZk9HdSU1f8 z3#=_d6{AL`lkjkNH&d4oZzDRx2BN8IYevN!IuIiQIncw(Q`J%h52s;Wy@4SWPpXB6 zx34G3#Z3hq0J4Pn<4`!NZBURYje!d>A*kAf_yiv2Hk!s(m;kdNvN4+AX+S@;Z&wn` z7HNl|V&PO1bAT1nG>DEeweo|QBI#asI5%GtKRAP+;%8$+MN`}`K|acAU}Lo)<6u>+ zsjoi@sqXlG>T8Q>pcsqTp;85*O=5Mzofk>rnOcxieD0$H7p zJJA}L83wlYLDGoIWEY5cFvtzidYB~$1E#n9+$}>z%;!K7JsAZ7j?>x>R0p#%OgHNi@ucfB4VJ#8Y`E)ocDqbIBwv>kA zun84%7q1_!c>L)6bv|qMk5;%p;`29zV9T&bHXJ9j?$WF|vkZr5S!xDPx5|gL%l>A8 zw~gIE23i?+dhFlTB;Ki5!GBUe2>$itVp>kV#EVEyWoFrSw%bhn&MdP0JTG{JVa{F2 zH<1w8p}ZObi}AI8?!z*fejFDRmKcUODEv!4X?zWd0&j>8<^7k3J_o;Z8t==z4y%73 zDOZMj#IA|6|i$)17Klq;A~pcnvI=+Qgj3A%4#@DlcEX zxPxh~p}9#qH;(iFPIB#lZ6xu8gu!u}i{ig2uVd@H&3D`dU}?vtQ_mL%9b+*Q@|Vxa z%*n?=VJ{Uk6|FBEkKrL$eF-(R61gN`%Xz_3rTn9yq|`#vN;_HNh!L1mn>RDu3VcjS}oP40sI^n zuXa3^TSX-dreyjTtR`j41WZeK(_dd652L2)VocuI9CgM3EbK!Iv}VGPR&p5U+m0z~ zd_RBZ-TkaUeIj&q^1$4$fF(Xc`|>x=Nbf{V!9Ay?RS8!1kAXKdPti4t;1)aF5MfwJ z$T8Kw(>ni=?jiUWnd>Ft`abEfJSpd|BufXQwaakCml#m{{c;HGh2m2`CQ6Z89naq* z+VV^G&SEmfAVb)L9YPOyaR$0~D)9@#Q~G0?^s$h&Gko5LSZ>a4??4~Bog+W;KCUL| zG0`&2^V_H^!)D34JHH!lN8yf^2;e^<&e@!C|7CMhLN3s9I=|A|J3X4c9y2i(Vr4?9 z^IBajP`Sb}^1z6^Wp;Py@h|#R>SES;`o(L%Bz&)0BG#;;9UPk?A5nPrh91D9cbrfOxe;Nn?)u>1(GY3!9Znwr}vfImx$%P8`z|x2VEp*8OWXgL?1y z)B55UOSM;3jP~UGcxzW@d<0wP^H+C2KYp+(4RhtTTdFz#vw7j{=MU!bg4-Kyg@n2? zh`5B`$a7DVj`yZ1A54Goc>h|hs(p04@H}U1_q@6@`aW{FfVuNL(~fxO@2Q*K-+ygA zes*ykmwAvN$MwVVY)SYhMl`4^C06ibE-$$Pcx>A?462nYp_MdvD#;N zukFGsT&1`r$&PBDd;7A*r%NxEUo5tfb@k?Fg#CH7|B*RL4*up>qUNc*%pBcKE>6Q< z@#E3$t5Y|TKU$8S$dN8?CFkNA8mW}3*&>~`X1B?lPCURjbe!v+ z-sTo1#wY3Ssg7l`lpaqAwTw@Ob;q!ruCOa=<9XJ2>=9yV;cj9$C7!o#r2I=tIovq& z{xI6-GHZgr_%hhm#fDf*{6ew&$3FlD=cgcS?wVeHzS7QFjOAgf`t((_JX00sJmqou z4G7C=ahcjCbo9Xfs7!QjEn#}Nq~*woAEY#jmiX&4Jk7SC?i5(r&!(9~+=n{YV3r=gIsC8mPSufr(7@095qKCOV|4E5goFgSC%F$Pc6#mShluV$^Rl+n`(piT zCg+ql-99}CcahKL`0_5RD(vhj{##EMdd-Z~)6#T3Vvmt8J{}y>N=)K6J(~_=iI*2% zD__Gg+v1uZ&T|=2!ww?d%VAr&$XHvc#1)tSM2SeO%z!0v03yT^#af|Uf}dgOONrW5 zFAg%RX9P9J)cKE7r+llk_O3Ovnuk^1QkY3tO&qTR0UH_UPbD(709tnr+LZw4plGDP z91A#6{!CM=(r%I2LDJpgcH^N@@rOTz+t3mPU!Ic}L`t7ssFjzNb{wmIj{b%$N{GvN zXL3vM8<$n}`t{MVj4TY7?V}X&IP*`6A0oCH3vM^EbMn*VBK@6jhNmH7tAD?jyF6{l zxogHR%;@c70oMgl)1LkQ7^>g(2{v_7P?$MI+4R5iae=kplz|Jrhn!aI&ka{M_?E|_ zJ~)}3Cef0Rr28YPB8}&roZX|0wyp1XLvB>sD;X6FY%Gp6e~$rfE~TfMr8=Sie3$eU zeh_#7o#T|yJ+gcl99nbq!SsOy^Hbx4>1L0g%)~6U9gJm#yqTE9&KyJM;+vn(Tg-K> zF6wPsOU$gm;(v2_y}jY(J(^bas1iP9#&@J&SNI`dVc9G)Rj32Z!}?d4d*R$x=j@tE zqX*_6R4>XX*JLDJUB6ZqY{#VODanev99rKf+U% zp74BL%)*lK8=Li>VOi!X5G~>iCO7()cAmLcn99ii;v#k*O_KMGQsF zbOTYq437n8JF_wthHV-!-*C)peBfMYXxc02_-7-7w4K_RPn9{L36D8bw>QVikq@^$ zJ4%~cW=;NRe{oHDWbrEhyD5iE0k=2oYPq`XI(LU=M|abP=bZO9dSLhpxx_no=0u{_ z$AR?Z`o?AIzZp%Me*4|-0IwqXOml(vM{gj#4$2w#IJqQdc(nA2AmU>pdQ!}?_5aJf zz{c&|X@ejid5~RKiiPUGsfH$tJm}?<*A1=zCSfn5nG%zff1Iz7{b#$%kpWWel2Rif zNxypkaVEy%#vE1M92v<|UZDT6IVl+>qH16N*Jv{NX3TJf0N1|^Z|l$Sd+-Q{fh}hO zHR@CUP2-d~0Uolxii!UYXiK(B7M-JOXx{pF%6QSt6onz zW!MsHFB1E6Ih7;719(mFzIWvCkc7woC>&oWwk0k{IAIAuB+Gu$w?JgMX9T3mW$Pz~ zdVN@|QtYV$@#}=1RF#Ii3c_yOQvE3atPz0Vmg59ppL7Q(4CclKs-;aHui3@I+OLKK5 zh<#UOaP~#%u*|v4=9#eEIN&=e1R-0gmC&7M|N$ zvZ^a8H!|?pfFshMSvM8>ts`80EkBaW1^k)+3S3T!GM`wu1X3M6*3i7W8+py?# zZ$EviR+0KSHN9|U{np2a=9hQg@Ji`!l!|na*Z9+{XjC$HfuQH}?PMp>da>{E6B7d3-W5D90Cv?y4 zYajMf;GNb|Mt=N@nF~HW9BbsBH3AE-Nqa^&k9l+Xu{xOk$PX?iTeaUR>lQ^`_fb%B zX1-hI-T0B0e_y1h)w|9<=lRROV360|3GATY_|avqGzq;pui$~_t%5F>p8IshI~fwu z37+_*?yy>@GkQ0=;dUF5`&@{4W#I%B-3jLvvW@g=x?wLvOwK$V@hbl9)=flvxz%Nt zngcfH7AxNDZx=6JBF^HM_34)kd&g9 zhHF}P=^N(N{;gLfs%MVD6nwgRS?KA5mnJeSj|$+#-*clflgi-d$;RU5oI$lj^xJ_f z^qCz;k6t+zS9yh7sRQC-CtanA8zNgpBm%xz`{=JAi8GZBTxcVE1HIL!H6XJGGl}@e zA{U~yj7xCIhAd4vTo9J4}Juy%g_`DI?!@3fYs_Ox9MjcF;l=S}lVbenXCW9oC1A|omDlL_IABj7 z#x9%(zgPStdkxCu6)muVx$qf=(_`g1?yUWaT9vKjsl(n{SN0RlXPUTz?-$TNQz*(B zzy161+qRgF9o#HB49nASeP_OFm@~{P zlA!Nb_vn_{S7naI2n0gQ7@U7ZiiZ_KJL9hgZ*38np=)0hWgK}~i2l!v;)8PE+EY=$yz9($J;Ur)^Cj8}lY*@g;r2M$_ryZS)k)d z?xZdc81dB`dx@D0Vu_78cKK=MY1!i2OcIs1+Q$j^9~*r9^zA@OqB6Q2%~5@>e8li2 zM!!FUr-q5v-T&ryt8|;QL<#e9Vs!JtjmM8QUrw@1q(S$Q3byjN#*Lv)_5@bDGY>C> zoTfYV`%ULU?6cegV|mmuk?`T&xJWe80Ul!q4X zKYxxqn$eHHZ%d5sXrIvnMWSUVP(=At=BcSc?Rvh0&)7eo`NeeUanobB!wCdu*i6a;O@NK!4m3uwBnJiJQd^r^Hz3nU__EY-p%RV+F$MAjp zHL!;Er5bxj$9(obdA=-vm)^VCAAhuV8Lg^h_R}NJ=|}Iv)H8ADFJLuFBp?VhRE4o@%o#-jnCM zaFf07jT7@0oMHX_xdN{+5H)6ezlfQ)5RI*^2fwkiXAc=Y2OY`!b#pcy2noU0PHW3j zgC6t1T3fGND<84iA=K2=EKL3l&+He+pq!g92p^Uy&;yC@NeOn; zUm9(ZQDUPfZQ*vco`nt7!WOu-?En+C)bj~#3>mK*qA%`AZfIl5lDLF+j}Got4uT%< zQ7Qz7EQH4zGP)ZAFWQ5e$y0McK3FRmDJu!Dw{8Fnrf+E5s&sRH#A3MVsj6zhgEpbL%4SD>#j*@9mV^^XtNoCz z7@@EyuWy+rvMj+o~D)JCfV%S7DYiVLibzb{GPJ`YKLnnvqCc5E58v$p@X_Vn%B z@j8(86C)mtZ|C@2k4WqGh^7TcVr*xWLyQ>KZgX7)bKC;hu1vZ~>o*%kPuHFRd6_<0 zOxJzVqwNcVJ7-2+>QGEdDLrp;=YMBRP9!DC!p+Lz(O6k@d`3-8?1ulVd!8YmbGkhm znmWNZdzb51cLQnL>hl3Frp0-kzqJU)-4KoR9Xhk8rnK>68uUO5(dB(7hbjjN?{adF zPcq0gW%bS(8@|MvITrF;+{9UAcV6_PZ%E76zgz{13~<|)prG&rZpr?`-1~q7aAt9@ zqHD^S&iI+15>)BQlj(TE_Gt@a$AfMfaQS zxU8WYEOso7wWj5A-n}yA6tDFdA&w9_M#)H%K(pK*2&&6gR6kZWENN^RGou~&kJGG8c45-Kvlp`v`6somZ7 z)vf`Sz9X`s4hy)81SJD-$qrK(jB+1s5-pPv~ zkvQ_!GiSa}-pa13iw2fTuitmSxZYDXx|(Cwq(61UjD4^2XWeAkc%2}wMMQFXAjhEg zV2c8`H{Pbtr*7ST7H!`4hyyr(!kJBVz20sEjCFF{r@I;`pDE{Ed(=Hp|3t9S4y0Ca zT*9MZbW)rh6vo@N2rr~M568Oi#MXFOO) ze7rK_uV@6~$TgGHoOdudHrkF7Z2j2{$URmA{@l188q@A`;nn4%)A#2Xj~_mfbjPB1 zf*ZMy`Qomycay#X4Fb6R z%!_HF*Oo{>T03yA$ zC-iP|;LIH9_|T}R$wBhjur@^yC=Y>(R0O&Glu7{LnAZ^7a%@1KQ{*t92^ob5fN|pg|oYe z3EN79LUIsYQ@gv~Y@NTh=Q8_-fH3W@XxF;ShOACKErG$kZa&2>2Gy@Qo#q_Xe)H>{ zJC$=!&Ij?c$N?@iMEC5g(m}ov^bSR9hT}rrqp`D$?D;rn;fRc?dGzO~FKi!|9229q zHri2Kx4Rbkvo~YiAFQm*hf58*Y!a%ZMHBaqgK(8QMCl}jfh@i9N3{Akn>- zbnh+5d+wGjb_iNmZf)~GjV_GYR{vD1YjmYD7>v=TOL#`j$B!b7GwGOe9T~Z{`1et3 ztj;*@D;i;&8#6QWaNGk_Pj7FcwU+F9J)FVw>DI3nh=sYfkkSFzq0FbrO36eNPIiR$kKQ90F@#-8~|qh^eQJ)AmYc?T()_bZ-PO* zV|?OH7v25lL!RrY!U-oR=l%Sur6Hwfp1SFkkBOyh`-*MXHNg{1^h-XgV9Ld{wzbc8<7yiFD50E$29q$nQwhnN&1u)%P$SYSrhay;{oczvRaU>(pEq}&J*Fm>lKx{1 z*_C!dD8RumetiAciRnmRi?9j>^G=xmSeQaG_IHgylb>R5XZ)f0_r&CsRetesn5U%Bj79%xGL+I%7ypfO`h{9V5&=J@1 zRnxxDOSALmtGbmvmjg5ask5PgQiSse*lLq^lX?acuC=77G92)Q{PY`~*kcp-H#<&S zeV~OvdVO!BX!^NDUC>dzP_9n}y7vn_Cr4F2P8u_JuAWUWmFkWtlKXwCiR}EUrEJs) z{{dV%tlnSQYjR0Ft$HIeIpo}E_J$LmF!xg#sa@2?q1&7Y9^mAU_v4+BOgGM5-6s~w z_ZJlZh%{cFsUl{!<^E7fU+dnV*V#r6v^~>%Hqm~gr)P_K3`ULUE?UxobRFul~ z#;kQ)IPY9N?o}TibUU9--te{857+H0AHn|FyEp$HP`B6+7v{=wDDU}p^ z9)F7yAqs3UZK!laa)V7R?Vdt*5Z9>KLrQ#7_ER0yPmrP$zi@=9Izv}8`OMW3ahh;F z%cp|=myu>PUYL8$?yMKB^*7RYuBY|28O{6Qa^~mfZ2q%n$p>c%q_h`GtU%Gv7o*QF zoO~8PA|*m&uL^iBIn)`GXNPjaetSEPt7=thWBZ;em5;Lq^!8I6OoG1fF4V5xGM zV|C%Jnf|p)w{D*|?sLJQ?w$lI-UbqtYlyDo9V27gdQ!fzcqXTZWR$#ct#{{_mceX1kifh`- zXnJ`uNwnq>ww`*<2u)Or211lMnz$+&e|bZ=SLSBH>s8U{nLn4XYk%Y|DtYWB-=FK$Unh@<>V;P{19&4a}pl$fT(2!4}?BN#&Zi z`Qrvl`MN_-Q+Y{vocZSxEp2cfG!nbXb+1a~(=R9eRq~v8xj}@;uG>9XP&2!f0;j-s zLDR&O-7d+Z5rIo2uaH=Q)d=9M&bVjbEJt`h;97`0z&W|_UiXt_(~0b!JW8~{@Tg3F z|FrH6?2XBPdjWn9?v=@4x)P;y92q&3-eaA>*2Wi0X44;J-|s5sg1w2JJ$Xtp64$yZ zSfFSolLqyCWZm~NoKM*A?}l~jU@QAM`P&*%S3%7wCz22S*&|-(v_UTq$TW}Ca_>w( zbBok`TZM1SJl7E@cCWyS z*JDDcd3)otdZh}*qkaHb)a7576XNP${seU2=chQWg(SRQnR7E|s&1aqODT)HSiSTr z5nJz0oesPCq&8%G{v)+^GcyZ;>aeyi-EFxAsQ)J}AW2^cdrMupqkk9Za2Wi4rTr8K zU*u>Y{WDM&b#Q(scM)gb%oU-#6#Tq+$Cr5TbbP_VZ1{6&4Z3*a=rfU9VtuIDH@5Se zLyywJW>?B~e2=fU2HcYc>#%#9o2}k%L?*&LAAN2ekS?$Pdy}n_UON#P2SkVB$ycuq zOR~vKi6=yb7Gl~LoA{^`vy18ZW|oD|f?BvGr$u&mD-recB9eqViXah;=oM5SYPZl{ z?cSf)8BsY%(ZIhkc46Mxgxbwhn9{-rL08~s;<}d|!U<_Ow>NG)V^`igj`8`)@hjf} z=E#VoFeES&rG|ObXyuBKz$FU#cgCqQi8PfBn3~7hTrD zJVe)vGgHGbdw_SCfjsS zUS#ae5FdJ?&h(gQ*lh)232pJ`uEvFz0h<^U4Y~6T%@&@MIls1;PAIrIgzQ3!-lG>Z z0MTs!>#G)-C`8wS*nP@uQQ3L$?`FfJ6x{HaN_%P^5l zn^wLD9(q@{;hiUcd!HjQsgMh#m;{_9bOGyIj`vVvLlZrkFgjPRNHW2RyZgV9qLttT z$hJVS!pL9xYqBa!q6nNaDl3jAUv_n7zqs{=UUqaz8+1IPS)Xy(8X_osZ&=kqsfIJP zyRZq916k&OeR;Zy_&fOf{qI~yKK(xW$K5eT(RRc0GrO-Q`ktZ&msN-swsw-rJI5o$ z2^X1qX}x~jXgu%w&%R!l1dRTBQVmZ;*SI>{>{iV=Nz^;dix1__U)}S!&rz7W*)I=z zD+00Fobjm-$1IQ2cIz7JoA|ud^%h{JRL?t(i}Ni%iBu zH54{jIm!F*=`C(XqFZSX+*Iz#WWEn9^^)uyn&1&GX>RJoJGXXbm^-pKGhMq0i!W&{ zo&*CL#_zEt88w$Qk+hGU*q!d|bX!y;JN(Gs_7UbvlOgn@g@#T}zu9;YcnfSS%J;|p z%FSY4u4LQKO^(>7WzvQ-ric=f%Gly^)x<1RSTR-xrbspx$z8gnlQ&lq*fYWT+1sPxS zR{nMyKB1)ui<{5I7GC?$YKVM#bt6HD)>ZaF%X~lQ3saRP2ehJD1n3qT;H;HPdqG77 z#9l3Hb6Y;)NRVQ^vC9oj1=aMAi5yyu%m7@x4JTXpwx=tu376NXlC zA3KLWpKE{gs~k&5`=$#e+#DL-`Mzq^|?K!hxx{+8U>sh@16S9`+ zNZhJX99yx&J_mXeTecmR=Eg4Z=YzxE&A;Pl0YC{~f5|p~Z_c5R7<5Xg;%nFI3k~7U zI*BLsf~X(Yq2lStBkzP?2zN}r4Bk;N1R{3df+Crb5O2DeP@K4koU5t$s4u$ha(P|x z&W%Q=yW^iGz4!B{1{c#isd9zA!CVI?`7}#oPIhvs92MV=<<0+47z%JmD%_w zRbC+`b#|(y^3kZBVl&At{wA(8uu$gIQ=evT=UATWS(aesNQQwp-#?4!n(X>20a_)z z+S3=fHNxK`Wa7tjc1JJtcuB8VppAerm$XMCN$-9_;`URgDkcAmTpqpZ`*AS|fR7c? z7-HTXDc{R!P`)$(db7}><-LEFNwDgRa-#ekzbTufA#pjEH#beFBDX%-Oe-uf;nKyS z+2fk;2qF1NegwDs9h?y#@~zXq*gQx)DfZr5_9*wgjz4n~@zw9Hvz^@X`Q3N7e0H3N zrMm#p)h0&5p!jFZ-$-mfjdy#lZ12z@IFIs4eb?1B(OlthjNikaB~2U@)X&j>`dDE9 zx7Ve{*{Q_7<=#K<)x+cXk4Og35KVl_j$Xp8_vmCsXmS699*AgN7{5(0eJ?L`&a|+} zaJ^_ZLkPESsQ57|dAe(l%tOD~R+ZS^CZ;e+1tkr^#oBA-K{LHmb~+nmnfY;NcD}Q< zXJ?Z>p1$}LTkkW_CURT9laIswA8jWU2kiSf+z1a$fQ(EXP13KwBnq|st5PNQ7y(JR zY4+XoU_l}El_Y8AGJ5lF$HSVxHOTW@6Dk(j&S;{}>gmK2^P)XVb+;M<&Yh43`RVDs z;5j=}LuOq<{aJsryb>V8ll+eZdWN2EraK(li|_Ni7g?APDKVLQDGfw^N{)ntE8awe>CQjABl)(``0EVK!SM!+oBi@dEtk?m5XP z1_BR~Xc4z6zE;{;-MsPq(Zy7CiVt$&_}!y;{x(eH6G ze=bj;wC{K=?Uw>#ICs+1Z@ueYUBS^ecjSd(TFjnd$%r%2A4-(d?*DRr zi+$%r^}XzD;>`I{ zHr6V7RAWZ!$1Z2Qkp$*-WzJ@qOQfv_L>X3qrLqn>~E*g*AsR2jf3N*PgOmtLZf<*ABha$7ta5l^w||D8O6AV3#fb6 zcuCd#dy+GCz5ak@vUwIYnm#ykWr z>s|{{Fk%)BZ_e8Rmfx-N03)kL=2)oDIKJ zKV7CMxEhcfF^Lb513Bgm+|1Q?It3dzcLA^t1TP0XZE`3Vx-U>Pw>w$)PUotM=q;j3 z|9j8w>5L^V7bC|zuUVO;T>6*QG(*`rJw7`|LoLn-^J*SWCR-Sa3mTM zcjJ&mb@`hBIqxrxedaWYh?WhDzgECafv-J?`JX-b^;j%bSJp)H&{D$9dodx<4( zUUnal2=CW*syH`4gPy03rw85H^h&Ug8$jPyEzb0V?691-k?e5lAHTVvafR-X^;L~6 z;EPp}F-&=HO5kfNGB(_6#BBBcd!;CScZ`pU+!NHReAFprR!hLdW~OI}IYJ2A{w8me_iaFq_V^fEu^>k&8P$0@ z>-5!N&5;`?hA02dCKa9E^N?W6y9@MTBThsr^9w8FsCsDB0|NSXf$HGO&(O7TjOiCm$&#Cv&SnurqjBo64O{i9Kfvo z$&~WElJ%~4nG`z-c0r22MW7PDpLnX1tGTlgE2bV9CTu>JzD9d9^;A~SW-gg~4g%Lu z)!YF!uuh(dH;V;Yd1JjBXF2XAp12?po$)2Uy=|q@@NL-BtM(v`<_-E9Q=oUre*6iu zHrb@?7X=Gd`G_Ou-l%V{CVK+{tULw?P=)QKF)=7tb>8P3<-OWDhdP!-R4*TEI!a8lI>vCz(UWMAZ4u2e zJh`g-?BdxcRQf($=II}^8CdzuCoIwZRY(MyK=|I22ei(!?>PaDd{vu#AC*RIukJq{ z9}RKekph*~>pUdLy%sOf`jpWfK;b%jF?s^?A?$un+RMmmcldGM&xXF`PFDEz&AGlw zi%;@xzMpS;?H1~c4ISFDW3k;)llz*B%Yby$CC>? zRaQp14ARmp=;%CC(}Kn8ZIV%c3*oh62it|RcHK0spQ~KMl{^uL7zC%TxQFF};2eV$ z#(w+D(+!gb?Qavx)a{i@d>H-9mJDi>!3iAHb!InX>da^!amIk!y?>@|(6GJrnQG_v zByHxmNAzzbYT$KdO?}wjd_9{1prE4}D(nBf>0Gj8(K2BECm$?4a!WYjA2pIa*Ozc& zZz8({7LRM4c}2dh59U#(N_zFJ8(p}Yre{*K`lM^zG}$OGrhf-1U&&@lk3v z1pZA|7_IvxH?|^wpQ(M;GFdOzp3)Vs=cej8TbVMN@d{4o{pm2peT z`7SRU>CjC;<$<|n2Xffn=EmDS%5Qxu+?u(NC{^aITbs#OCL_f*cLH=y?w7BRYtM3a zO*I=#d-qvzwP`W%W0yPkVhIQfa_>$id0BZ%0cMSolOsZD#&ZqV$*vqJ$Om9~tm-1|mFILQy93CphjeAt zyGiw28Q$U1xyD&wDbznXW?d4e@*h`>4U532N4AJ>-{hA->ogD`O+|-zS`toZ-Pd_y zV2O6jl9d@{A8BRrzu*@faTmhNZgW>`&1qwBPpU8;p_6$vk!g5)|PQEpB19Ztxvg6k)ZNPslSQI>M z_~;%d9yp51c>DNL`siZ8hAe2eCH3{L%QVD5Q20ghISA@Kn#lm-(9?0oLz@GYA3W*HR*;OhFFb-kyLb^dlsNpn^Ce$yDax-n|=%tzSE+xt&DEBC~c z`Y~9&-)QZDEQb9SeD;Y`o9K{JM2nke@b^3J%U=j7_X3y3EEU(_CBnPI-l7Jh>Dbk8 ziMND(N5akPKW29cPtbxnY*ojy%-{dWWbPC0_my-~+)jHxBWTSncYXV1RDam=cb=bW z?qJ7eo|D_;DTVJMWdX|usSWVcin&o=_ZG~7%Ci#7H{vJ2hE4G4tsM?6u{yk zFGS>9Gm*VADZ1NbvS+%lr{(0_xM1hvkk{ar0U?CQ>yyl?a`%~-#n>nCm!C)|in1)XO_A|H2h0Cb|k@W5?U#a2rUOD`y z%&=18_z(HpT@oJ=N3J|Y^j`WyHbO7TON5k{ztO$AeJxDZ<407qJ`&0P`HB6II0!hX zyjfOu-o(QpFa?#7-VJ5Y9(JGcp-AKQLu3RFUaM;YII z?e6w#{gStl7c_Z0-zx(&s%(7x0FDHbiECE(q6+(2m*uXZrd~qyE|iQ@W7F~SYzr|2ePx(xpFOs5L9#!R~bh(92uYYfCqrdJZEUj+pwRD&SlGHf_PW zBd4qWOe4Q=EmtGm%mO+kL@({$n+K0HbP35lU+F27qK@yl2R3q(_^(O8INsG*72Z;j z7~Nj`C9_3vV0hYk%wY7Xcd(wAPuA5~?LW_H~c zN!A88C-*jex;DW>(NU2AjXNo?}tc6_K#2LHJz=(dbNsAR&Ho$H;& zdR{FwaXO@=^k$b~tW7 zh|Klw>KG~{WN_N}@_Tn6O8l2Ep|$1%X-rTmuWj19tF^e)*A7`1AJm4)nKK-NnieF* z$kufw^UMwxT4{16hM~Y8?>C}($0m}E6^s^~1}ODv--j|m5d*8?)P55cbnEh;4qLZY z8)uDsf0b%EJ>Fl^)6=6Ib)3dF`A7{*YIEsps|p|RHNhGjlK?%~Si@$VxW}y7mdV?} zg!3|J&uD#=O{yIB+yB8+8<{WCrw?}DRVlB<7XUN3c@?M!LtZngZ2s32Vbb-fZ!&A+cryNAY^ z3rEmoW7o;SowuxtGs6z%n{BQqpkU5OxHAi9JRBEIFuwEtV&33xEl%9n@FsU0;d!=O zUOh8ZQdYJrCyW;)s!CTX0tmdRWBk*84a#jT;#UT%dt3Kkrtzl965EbFT$mI%UNkR0 z{CEurw_$uP_VZDEz{7!dJjO^PO=YgLAF&K*QT@nP1<_t}+%J)m^f9eN^`?fZ&IVQqA7j3->=EfYJY4_NAbAIRG$H zSld^dzmK#5ET0)V>BmXS)nBs4%V$AT-%u(kx9x*~;0<|Gb38BpK`!%fG2VMyn-mAR z2cX|d$8=^>txy!$;rQNjY~b^)^suiHa30CC{g)ISf-E;#TBkfachBZ7cCFAO6qUyO_a|Pmu{>)z75{?6w0f9`|rtO(wD`#d?NUKoL4N6m?)1X)0ySx|0Ar1M( zHp0?xVH0M?Po(Z0i%-6YbM_*Ja28tu`#YJt$_ie=7;+9f8bOX6%s|N{CbN3FMvP(V zDWqd^Cd9K$eD0nGHtyMeKXEAky_k&6svHeGb)bH-n}bxMf$%$?#aPdZts5&KbNI9X z1LA8JbIqz|e$9k=sD`)Y7yns{KeZ`-dVUVs%utx6DMc_?u(@yBUjOUU5c(&cl?RIx zfs47exL_7}$RzGKGhkIrnv^=X%R$_wuzkH8nP;1ds=t* zK?gi34$DvdG4FqIqt2L>?i;Yq`5Ab{4}c3_UJC;G zn?U?0&!hq^ql^+i2Rr(zGndA-Y82pKcn3!NcvFeBA-SxIIT1_U_IrUgT4R| zo!U?dmJFyhB*P)84>T)=yBJ|5lNMg_;$iiu4dEEB6=V`$lnf zbr}S8WtV%4X&&*vSOByDPY^Lm%kqFov?UO%(pNx3z9Q?E6hB?t=74&Dfg~~B5GtJv z4362Q@OaXWEx{3>4+7F(KfA!yNHs*=x}bf~M-&g7ZhlZcr~}J1{vlKd4Mb^o-|_%) zU9ki`f*jKxl>O)e?niy7h87Ri7L8FPf?|J!;@5!~P&`m18qh!fxaS3NgIdVD2ZY4e zevBuc375(t>mmPT1Gy|-@PV3zHx^G$tlXLQgB>u7bT(7@7Jzd|NyT%G zWK>^%Af>TQXG;TE2w|BnwyybA;y2+FXG6j6bit^-)}Z6IFS*nK!bo=*-B+t7XgQNW zKok5I4Fqdq#vW+ANuhleE`zGirw{;d3_%4i{>~`CPL-w-i{qoluRDVm2BIR>GV;hL z=Q^aB$q_RWKz<~rLOMz4LF*`2sz-^?sd59~m%$bzsV`*9X+2^%@2aV~|i3Nv4fQu99zl*a3Igt627;~@V zol7IEU@!J71Dd68wx8@20s4KM&oe}Vq-xF?cAAvGFYCJH{n4e1lT;VN>Q4v-1uO2! zRLTq^sgJ^tKRbAbS%>_o|S zSA0)>n`K$V_E2?2(A{0jS|vx|lVy6E(- zYQ!1#pMUv|qv1H&yZPKGce^L>kmq)P7~)qcM0^izD0^wCt}9$-@7WP?-v#*wMg+5} zfzSnlo=0~pDYdDSV2gC|IO$|{0*u7FY}W+)rw)`T($G8+1nF(gIpMp~Yv?iK9;swRW|5za;chK%gVUf|JT`un6? zXmIfVXG!}4T%R#zo-V*Vh1KtNRzyH~ufa2R?i5sfc0kXi28aW*TuDc*HNk;l#K>pN zt-xXpp?9?7P5^HG?*;)Cik&2&A@NG<5g2r~z}sF1&b%&#n*V7Z#QvAtOG6*(! z3Dg0l{^V|ED1Nm&?#WMw7oQx>Is0Q1gSA+hHZ1EzPKCD7WB66AbVyQpAs(-)XMT~H zt*^IhG*gzV0WLPn6ZkMgq9qE9)WH_G7vqmqfi$6v-j3aES`4({t7oLQ?1ev#$$8Gt z6#+wBEfmvaaZMYVNn!e9@dGwyz)`76x)fh~kK+ zt=TMiZT+fT-zNO1Dv~vcAQ&i?=C>Nl2By@)49P^mSzbsHmwm1aOIExKl%zvpv$R<; z#o+T1Ol5?2wpZE|mw26(#(k$|7VSF1_1~RQT@5Ql{GPq7v&(``2 zUW+l?YLuL)MwF=Uqv0ph+pBduySZ*@Zy1{xIc_8d?#N_YoGr+mn{zrR0yKHf37?1y96F=li zEDFp!SMTaG^cMN#x?y3GSkTh`8?-59bgsr+u~!D&t}zsmgVL38J4i;-+_rr83E*7P z4kOejrG*EigL509ddXmE7>g9d=X-~*Y*j?F+P09Cl51Xir=a7 zLw+H3_8BRSeZe@=vF7qZLVHu3+5?pYS-|q!h^ZHSK%vBNKHdo*Xju|r1rQdiX(fAvq7rYwf0U~cgUP4Budo#Sk38A)%^if#_*%}{*&^ir!_9eZ=jw(_5g0vd+S|KtDho;C}zVHy7JLFT+qRzJJfh4G_n-tlLxszp31yR{a0oyMpDVll*`yG6M#Z17Fmq=DBmG10nou_^c^d3v zuqKH}bbd`XbQ``n9u!x~i32eyMH~kBNCdVZxM0!B-W15vL+u50LRgU&ELm&?)9<|Z zbvF3QN3-Z@?Zfl3xXmIz4OA}Q5eVt_9d*<7I>0i3_GExn0N^D0xfJ#jhau?|)b^FD&k&zAOIvB$sg?SUkA3m%<`ljm&Xp9xbrt=WXfPW#xonlLw4b5HB z%qH7;pomJP9EsWmBsLdLpt0=u)u>In9+LvYJE}aeJL%Kf&{Dj zYo*)~JY@fiOkJUb-F9E8$#fVf(Lpx?I$vky?0g|x^6U-*ybZh)PPGFkW3E49VpbW#_P$x% zw|$0PKR+pc6W~x{?aV`bZ>oWnlvy^UGnQ!?(Q>DF>`DFyM^FC`;Zeh|9qxFI!UgB7 zSV~rIidBPf(`@Mz*<6ZoKeW!4#Bs44)?(~Y-1zK;6x4^l$VO(t|NbdnxC>iXIZPIj z7@MtIq_4Iug8KH0#br6iEg&ID9|A^DO%ve`RrB1GMMpxQPGB}W2C z6nJ>}0&{RnF*0r^q0(+GagTPLvnn=WzMnY-q~K;|M{hQ%z~HHBf*VLax%s72mCk%V zWL;T-RQ+ojqx4X#)#-4STLW+8SfuU1(k7l&_lI{R=goPp1-k7EYLSa;+7WAjgB5+s0VcPIT~QhEM!^bH7MFn zF}x|``P8JU&?&7T@~c_iYH~)D73Bqjo90+%`SWDyd(8bqIlaUUf+z)L?_5|r(8O+1 zlYn#oRhgya^HS-bz$88GaFNGR{haqX|8_IE+8G~0HCf)e zJ`m4eeMUQ)z$13;hx9cw*^oa#CJaktk-Ir*Zbb*iGHHNTzQ9derBk_z^4X%a{=5m> zteGVbmtmo4Kp!@tO6a~Y`AM1j^rC5sSm*D*WQ)&g%~egIjKTJM(0L26Zx zDa&Tx%~wY3Xes=d(x-DP8E`96{%uJ9u9396&#j!mp|*U>^G0*Y&G|$ckCeSoKn=@9 zlcr09==_B&5h0ROYu5;V(6U2lxoA`IySGs^|6cA8s2%)tKj#n# zm>i>&9pZCexY6FHpuh$4de9cL{{k{l{g=(VOFg-6&S4O4Lh!$|o9{ecqr4YnQ4JBW-sU zYl?%Mf1a(9gpj=EMYev+*laF3X%+#(ZU@aieo&@ms|=`}|+(%ZJQ+0em}8 za?k-sZVg^{A!tVWuYMfeT7ME%jkPc|wx|Q?8Y*aE|4md(zckL6J}~j@&abKa)8TQe zcNBRf7*lY9tp)gKI4>w-rd$NB718WE&Lbay)(7T-+&b2nzW|m!zNjATKA1ar#J2KZM zCEuQFOj}9KDaZPk?(1$@%nu9{pN&@1QDfZ+bQ+c|79FbGIw(%hu6es`lfEUIJ!&n} zbl9*bPjSp(tlG<3%U;y**5i}3Z5Q0|!0>)!V1L~_YIpCF?g!==@VBkqh*LbAVs<}L zHEE6&YTnvAj`&QnsG4*!ci*o{>0p=3H|QEk8E2@j@sr}U!*z?;r7Vnv%}bG%5a}xp z#wR{w>)NQx1LA9}03;B9*4@Vg^)(6{A@5+>urAS_W57|vutEk3m>aMs-&gW!+)})^ zu_eC_;>&hwl#|KEU9*n)jxsuBGN9I*An8ZZ@P?s42&)DRm+I7{eml=tCgz1hgQh^s z1ew7x;5wFtwKN5)-GLi)1t|g3OOh6^iY|YJgx}OtFp@rk?7U~;8?GKey3sMB?9k4kU6}F-JF`J} z-mxmX&71wRh=uQ7$M4?yIL2I(4B18FW<|%5x`k)e$h|Q{-X9A{?7JT(CfEnceHTJA zCWHh1kvvGdeL-1hl#0j`s<}_lu9wfd376_Izme`={TcH8^z+>pprxTu46*sIe_gT7 z#ez6^pZe>V38hwt`=V(z??Yb6gH$f!(&OD3wrB$(l=`r%Uwwe4R$ltPOIW5J{Q@_j zD!Ca+0D}f10SOQQ>D(WcsaLc#3&kTq>XNgK-cdG_&TUQtwTl$&em@I_C@{hiFN4Y{ zqaWQOa4f{&z+{5)Oi?wj{O( z4(fKwN_U15OVvI@D3409F>9?ht21XjRscRho6gzVu^q+mW`7C*L}y1mXk^iQaxOVc zBB$2we?`>7v_;7>>0b~-<|O_}!xZ0+M0BOdhH-P_{kJ|J3JV)K8GRm?@=&*COhf1! zitsc9JatL4+{s&+J4DF*5APuDG4@RKN=_uei!0LvT_QP!z@bv3(*Qq`p?-XIA1CYy z=Tr!qI!O;--qtVl3^R)1{K6+x-ifL+<206#;IFR^$|m=DY2LShAb^1Mq2MoOV48>d zTp^JYpiE-Ts23oPdMqG3wH`;|P%IRqL(s zn&=wyBLiYC2b&S+gD+*!9s|zz&^cn_FkV1%n?t98u3^dM&>WpZAR#;}?Q{dQYA~+` zdZFQKN60_b@B}oO*}stDcz(PargBcF3tMR7M#sb9ZN<-+De$JY>(eimdF2#x>!U2{ z_Ml`~bZ^)jn|cN3)e%{K^*&jd&0=Smk@iFhXnscL_CuK_-VBw1%yo}S$`>Q@xdE4A z>US|nCzzZV(y5NMD4;pChcuBfJ6xK4W+N_-acsRkBO+o=d`;K8jZU(6wXc}zG<2+? z;gr*cmHtk-YQ}Xo3I9|CNE*&(C(^zLAV!XCd1_s2H7&o}Aw!S#?o@v@h~7~@ zjx*8HhT`M~hvXq+V(=?T;K|6ynDogJ`aVO#{#FVjD#R$k_*~*bMDz>^-%5(*M#ESE zo)yBx=rSpd7`x19y|m{yJPK1m*niAIUpvfn8y{J^UUVMIC?&8$=TBa^C`R8hk_sEs zfWvdO)caV-w=&)fs%xu3Nq)VnWu~m3Df~M!onE4`L@h0pA{j?a`^y}O9OU;QTEmnb zD9H}Mm6rPib|+vqADZ}t485Qpmc08(A;S;G%TDCpdf&UOZw=Ewio{Rz`LiDH$14ZN zKNL=j##QR;&biriw9jp=TT9eXm_-+?k@ zUit^YG}`Z{%!`GBRqC(Qu5+Gl${}oQ4LuW4V}xzTYaS!akw_d0Kc)?F&LxM1&TGb} zS=H^(^z3E4uzXh{$9O50JF!Nr;I{&?0mrU(vJB@-dcMQVveQyv8rEbv650?r$%354VWY z$crprN_}!U8fL#*72B86g3tNA{(P6aOUR33?EhN3f7JmJZFVjj7JxKs-E{us-^zGH z3nO;IB$;ui(3uP9wENCr`@)g!iUZ~XNu@x+5eilHL~6JZcJ=VgZKdhft7D`5M#YT4 zko01bpWI1zquyO1dS0U0!<}7{x#8}npfDBIR77_2EcfP&s);}|Ezn1qgD|i^I+T_F za!&zgW;wX0WhR_vZ5LgVC)zFL1ucwp=$EAFe6t1{R82Vkn+6bI`~| z4bT!5L;1+r5gJ)MOl~#^mho(*BrlbZkfP?u*Z6J8d=8yuvn!W#{$YT-!_DxSrQ3I; ze)kL^59j^*CXMHDv}Y{`=fLtW0J=*?zO{@cUyg&pcQWk zwZe5JroswQO*!nkj?K?j%L0jZl=LL{GWG!P37V5ayG5b!&ewqw|?Q1!3xX< zhxpERsXmjmhhjyLzB>498V#RBgXbM`ez&INJ%zZq=izw{75Me))ElNkJV{5~0|!EgC` z$QNHqS_K^*50Ryi(V0v9;LlaXiP*f@P0-& z3m#!4DrAzL#ZyE~FcwJ-790}m`?df5ep7@2MH4sD34VU^$D_31NG=|3h7O&v8^@cF z*!jL;L~3E;+Nv=1UF?n#8p>i2C#bAdvr_#Ayr)ZyN}GhCSv2ncZ92_V$|n1-Y5(2c z_aAw_Ti}-sifZ>?U$%&pX`d0o^GNu7aG=qWJR^Vq2tWcapUdrRH=o{dsoKl-x5Xn= zV!4yhOTQ@*{U#0Sz8#FtyTbZfl_@hbrjN{TPvp`PNzSec-y{%4VWX9fOTuEt-O9M5 zy@|a&{w(jyW#8Cb@aL+=;#pbP2(!bYweOPAk_BzP^W&8D54FB#sSK4oJ6@!LhWIZ( z8#GvR`}8`X&%U*%@Ys+yAjOC$aDwPL>1T^NTz${J@!GIl%E_$=Ou)dfD5fl=CvD8AmZMY2$K(`?C zA4pcsHR&NabnB7al5ojLi(;0jtL6F=KD1`_u97q2VfGpxR7u=*D}D@q=mTl!z5q7H zBvV}ZMRzn2GwcQS?<6Pa!gXItMn{ITkOj;kTacuNU2z%cp`9!ChfW6dPhAMMx8}SD z4PjJMA@T3#wI#1WJ-!;Ow~HMN!ofHEFg-i7#ta4Om@05kAY)h2x@14$=ea*AQyE9q zX4f}-1I>uPT4~WyJU!QIu;)jC;49~i67 zyOouLKjc+bC+fUohksm~_+_B|?D_*7FejM+!@{rFyqiM!&I%syvs3gtQ?gz7JNpK% ztt?a6&MCs^{a!)oX!2O4^hBxa%Nd99?zV%h`S48K2)Vb!)bgs|JcbkbcC=%sZjr*B z7Lk{EQdr}^=Qgs_#Mn{)yugCp(jvZP#D*Isl=A3w;~9lm`FNml zx%o-}+d66+oJY>0APKSF3wMHsVXK6dk<3ULmSvkSRYdEIejz29iF`x8t}Iy;_CrfB z;;W}dh83MuxWV*nyS(7pp@y8LG%+`GvFh!?S7}G$zc+2qg2H~bE|*G`nsg+TpO_U4 z>Zup&l?;j=M=>BkTR83z{pJ;uR|K^0is*8xtjPwI@YA9=PTE;EOMhj?MRndxLJK4h3iFRuJ) zzs#Cb0>OS$gC`AK?DJ(1zciK>hs7@to+apAzvKm(sQ@6pLI!0oMRhk4V%>#}zMte=DDT>yGTzyB4+L`bjU23Gpge|07~8GrlHGY>a%ZDxl;$7ZynD zCBL&joi5WCmuU;ywH2{}zC!|c zej=GANQjkrFTTG3Ha!z#zVU%(su+kE&)9_~5f~2U z0hCB`^mI&caPE?G(vRA6*i>dS!4VVE)~_QK#>L~wN4S+Sf_r+D?%1DOjVkEI`JzoWA zRFpRV>gm!3n&P`}oqeRWs$uJQ}Ycdw=8vJ*o! zyFU2$_~1i-2|&2eXbSEHP{sLh1eu#w=I*#WnfE-sBt+FscF@si*K?0QR$`wE+KnnK zyjgPKMN*uieZyq`MgoV6R(k6b4WRLJL{ej%9|l+I1s%k$2R*|ZC&zHS4I+uWCwVT= zXAO-pHA`^3b0p!puk*IUYNru@8h-Q-|9gkn{!;Q|5bx+=v$$<{%Jk9s*So+}{;ISI z82B-Osrn?AS|gl~?5!+|!zX0Q;}uVaEbUd5GtV*+FL8aK0E z?Af#2MOvQ&RlmiNDBWLg^u~}U%Us1Wt=R#+?2iKY3>u^Xh*aOSCn|(kYhXHgoUYAy zH?|4Gdsn%B`I*(b$=ALC6~4;0H-=^Qh9P1?L=V$15G^+9?`Kk8Ll_nKeU{?6b_01QuSJzi$un;yUs7nDHXH6UNn~8XR zH3?zDuwN=jgP72~$)=_=AFw5#!q|9zAOs0?7tJ~%uJXSWsl%n@5; z%ymX6De%8ax_Ub)2iN&-Og33sA;35dE&TX(!f8^lxj9ehWY5E6Qt(|T#CI+vva&u} zf45Z`VTuIM!-JM5O!&`tYln#ZL$;WmwQ|}Ab>c8z#~CK<1A(s(Zmu%FxET4!dc_5z zW;mr#E#bt{KVcqXc6yp>+Bc5X4CA`?Z|T=w+Fy;i^Fg+jaAM7jO!SV`gQ9WP9M?RK z1Hn#mO65H{omQ;36V?S)keG$?YhSsB4%$kz^idWU?y$)ZD<+MsReq-|_7tV&A6}R<@rqizV6-bpXPbPlp znWdrU3;P;e_vf{|74DY_9CJ>ZHI4dKj-%YQjt=9~l%*S`*ZxRmaVn!x(@uWkn*QW= zNLZftm>uQh-`fED*t1VDb%cdg92c)!`(a~QV>gzc4Q5;K5hm10JqF0gRvpWKf|3;D zOqG~sl_sH@9h*Rg%D();{f?z#uaJ_iLF)(f=gc4dz4HSWhOP0MNi?Caje3^oqI@sf z%8vCB+yB1TlBTY~EN$x7!r36$bVoSfqnm94y3Kyy77QYWt4Rry#tVL?9;-fIDbHm@ zjt&(!aoYyIdbhMhXYTvWFH^!L7N?K?AW2J?HU45fj=vvg%C;aEa46ob@iAK%*%Mi@bEr)3fTTtZsYF-pNvs@-WmP6=^j z%|OxmaC)aX@g%>W<(T2hmqui0l~1KfBGOCqM%=wz0L{$V$*y` zpjpC9tMu!3W*?9VGJKmtqF0WxUDLV@Hb5NL+MYHA1(IRH2l|)H9d+VayPCw6hG99@ z8y&pLO-G6(_x96t+*R_cgSH&E_hb)qnX$jXiJwfoPldFU}9>iQw_<5=cyQYR#JQw-)D@n%fIGo zM}e$MOLo5SN-U>jU#Er^X#FAZ)Jwya?vE#hb1ub5K-Lp^))vzugcZ`F{VCIU%XF{; zoMc|Xn`m*NRi-OyDU19T+LZ(}e^=r!KAcR;uZ;N{I}^>j7q8ugQfP2DDqkzKn?aE8 z<2YHb==q;Hy-4bhxoz|pVt#FJFo&?YY7=lz+22}G5eEegxGYwa(FvUle|8Lw;jmczlXH{E_M62p&| zy4;j!s>vgEj((wDe=M*_tvNC+nh@bIaC?TG65sm6HLtGHAS_R17_Xu8^)I7E)VOK#cRthwnC9 z2yu3&oJC8H*H}(TuQgdT-Z@ui$_$cB0){EluPW&9FJ4j$oe??J_ zQFq$>tz1%^;Ht`~IR;BN_m>~vsPjRjW15(6@l8iOnv+4%>rsLp7IXSYn7-LnEFfu1 zXhy*dr?l(?*TJbn=`ASCg(*89q$(Tf<_gP8oGT>l@IwO6 zlQ>J6gy=ua+ZNa(P758i^$T_V?SnMd1+``2)| zeZre%4v2b6NY+#&whO=EkF5;b-8ju2Q*qVQI}vl{Y9VsYFQ7`^tcU-6*pa52%*Wwu z{mPhkh|@p7(@2Df5d83v1u{D`W%Qyz>Ng}*r4^;uH9C@qAHQMbxZ5EhzVjHY((#*$ zb6>hJ@ea=lKes$8&F&u^?odhun*I-hBK~4@i8Y19Oyx_Nr$*fE3VqorkdWiIf_8FH zAZY3prgP*}HV=4m{}g1wys(TNBIi(%atxqGcnFOmu#27ZIFOR?*L3BAYUe>k1p| zH{Q@VZL)vqq=~%wgSMM(CNpeYY}x3L7nk2X+YdK&`E7WC&1fd(Ze5o38c7Aend3(` zyV3pqX!64DcRRY;0*NeD0eaDfMoB?t$C%*J^S^4}I*Beol6QwyOD}T!DD7T1QaIb7 zPXr-{5y6s5a*R5$A!?KnNK=<+km;Hs#e23Xw{`>?Dk#?PAdJwfOm3bMNcd zxJF;}IW{Hl2fx5y7HuQFJMy6LYot5O*!x8t#R50Z+&Kt&7!#)$&*I z_EThwR=ZDnYKSd|fpZ7dmtVYUk4zk2zq&s5cExk2LD}M3PeoeWTCOskxr6l;_muf` zS(F3u0bCN>Dy;{gj(~Pe9R0wU#34`U#-iF+_wsUU+a=P-M&a zl@dhLch|2V^h0p-lB&uPAguQ!e7aac$nS6~mYHy&a><+#bSPiY*?>TUGr~x!T{eSV zW?{6N3T#pF3NZf8MkFZ#-7<|3`8>t^trXuBrhX?0I^(#JBE*rsEm*EMwhOCI)aHDq zx|t|uVq8hKPV_8Zsf52EIJ9~c0hZ@5nBUmdO|I|LNW(vgq_H_Mp#7< zB~W#qlng43mx!E`KzuvL6>MMlioIVD7>nIlUMj3=`D+M}6qro3LJHV=+wu}Q)v6kA z%SYC_Xb1CC2g5;7`8x0=fVK?YV)Y;*(M=+6-`4sxFPM*&bmY9g)CnAJ#>1YbFBt}? z*}SX}u(kiPcvCS}SlE@>`TM@=wMuuj-=k~W;hX$0NBf12@8vYTJBJA(2=z6Xz)#qh z1HOJ_XxpD@qt;1^);8761h(qRv0yOp{o6FAsG)RPdZ+f)#1$FBO?$tUL|WS3>A4S` zfCJcEV)Vg>1oZ3ya=?-Ag|)ZYYvG*t11FASRyD(mkL>VJ#L1P{CG*Xz;qb70IZyw& ztobY+of^WqGd`U+r$CBE<}xA*>2>O|>A4<#9$EO`smP()-C-S*ehZUq=f;nJ3%3*# zHDoP$HvRp3>>oIX(<6lD&#wl|e5<>Ro~wx)6#&8nut zw;9T(99nUotZAu1v(wLQSbP}tcQG)0)Bl@D15lifWB{3JpiWEsOodwJKqJBm0)d^{;fD#_Ma!+ytl7f(@iS-^en>oQnn%F{~ME7 zR}<$`Sd#NOQdNCmn~HG!0|Izyk}YuFs7m6^tdviLA?^!+J$OrRz?4oDdem4nG#{i>s~l zAFhsH9d=XuvDN-yIq-?}%<2K%1ZPP!G@7bwBUiMd=v8jYj0VpD~^~79<6b-?kX!(8`b|>Kk z3z7t;d_VFKTumB)>c~?4f0yxI{3IJhgcF@VS69V{>Ep9CB{24<^^CI}D+UVY%b>fRbTzV^2g<@)Q>%xYflhs8 z-N${DSS|f4VpzvpuCPeXiYig@VNvKDAds!m;wzsF!!zxuCC}&Sd?whi5sr)8dv4#+ ztD6GA0E%z$9^l9;nB&KeHNw(C$NOLKo|ZF2$;;E0Jq&|X-`qAu;W{77w>QfKJKOr7 zX!7TmNUL}!^O=%1Riux1!tsA!s*x>`rbjqAOiQK2Dn%D7X2a#yK9An{?1YxlOwe?v zK4um&(R17Em$4kv-Z-7yYfK&~r_(U}P_tyZ>2lJRh;f~~kzT&^xrVDy4L`&@{zYwi zup>{NGoBywgMk-F+uJ;A)f2r}%^dG4fiKcKQQ8PvL5Ex+!4)9~0%~dC+1kdl8s$!} zAhHI@=^lV3e;95oaB-`yF^mEk-DOtJWSq`k)Cww*D^=uMUUx7XT+X+7(g-e$AwlrHC2K2K|XT)D> z`|pHW6T_Xx?7M?HLjAI@y@I`ZQm@TIKr!ZuUsLaPtSFT8Dpx$qbJ6f^UK{s>XHNv$ zUF#;+I!u4hXG4u2TrW1^Ty-fq|50WA5lNs*S4D1NaiOj!=t>zPK@OIR=0$6XlnVio=VpT%5iH|EFu|$%ow-z zRhL3i7syKvPP7sL9wcjt)JTzF(BYdAuD#uV4O07IZWv_W4!-CCOo#%pYdgfp7eCD^ zOj|3uc++&hP+^7fQPny}qCXXNT7!U8xFOb)CtL8+Fxu-VmBX+8gQ@#5<+yG??xXMpos(<@FNxy1M@xmHqq8eDv{*l4wH4frmm1Fg(zJGS=-A#Q3TtY2DirE=2W^cPJks!-i^@d## zDAl};^EWdYDV#_U)f{(xH@JcvOCF`)YShJjgi4Xfez9}* zC)^z0-mq`(&0MyhzkcSJ*M2bSE^gpEbB#nD3Z_h}0Jg(#1GSXo0()a#!?eA93!ee# z!L_8apQuFHH+ZNlN%qEqF;UAnayrPs2e95{C8v!aa#>BerVs$&-CrWm5iq1WuBaDu%8VQ%Ppy-u``Gya6}!7C zK!$MZ^xip)n=LiNxN21lXBX%@ZRgMZ-KwV!6UK}9e#~@LMG9@7s$r)^bp1kWEM%^;uYp>N+-eiaMGSO*1&D&Qg5$W?)DSdo$fJCqlbZm@aKyAEu^7#oL zMA1Rd5=y}*d!OrPwX=Jq<>-4#(iRt5{Aqd_F$IHBIe#OUZRi71{*=Cereu7}cP;RL z*!#++wxaJ{T!R!(akoMtKyi0>X@No^6f0J&xLctVEA9?Oi#rqu!L7IzcXz+1zrW1= z2KUXK%w!lQIp<{Wz5H3v+Q!!6QT4f$Lus3OuPCp+O>p4^&n}OwSh=X>pWcei@3#u~ zxz|3u+c9@rf!=o*7)ykpz1*luK?f%qDxS{|8}3{Sc%OrCPUYX-sX9H5s}XbATN$tJ z+^UERk%)9SBLtu!M%3YjwecU9+rBeEh_=lFec*h%FCD|3pMDf{mVjy;1eySnmaH*3 zR*<;mG2G}nyCR)$g~b!LBs;GQ$St3`0POYo5WT%i`5k#GQ=agJG#ZcGP^;E|8AS6c z3q7I&`r?8-W^)xM|9I9c6d*a(eDHNO5j}s`A15#hSYUz}ZYYs8lycpvDXIVB=;Dv)*qoU%5Ye zxN?RDoh|bYPyxB$xLa-5?O7cf;^}dE)VWQyiFg zhaC|mk|R2>p?IZr%$*jl5s!?jyr8$qwYzjjr=3)EjTP=x=hZoPX=lp^pDl;Ye_j?d zZ$|?Yn&Dm$chVN8h4_y4Q74!!(n0R21N4BNxy0Q0TBQKOtgh@&8x`x@A zUAs!?!^@twl(6Ar`|({-I3E>NVdY{nmkCK8Sn^2e=T`_%i$Hmkx}r6-Mqg3;AVsIG zwF5(Qxw`t~o9zf$UU?8?F4likO77>#GbwT;zrp@6>h!Pd{b9OpuKhgWkgV>Q*sybp zYEJbSZr{ewBN6^ljFzXvW)sla!b87B_V!PYaL%xJjh|V(WIFuT@?sgz1L-E}&$6v* z7d_yh|G@(M%&%M8iZ#A0h<5PS+I-<_qv`Fvb|hOq z*{NqvIf>qRfpbN7s8+DX3>L==z1FU6AT>242^b9ef`#}n=ViRk2dPhwj4-kcD)x9} z%o_nH&GQ^%dJuP?Ws-puY@Z%)A@edP(XZB7Hi|k^{Gri5O7?la+%F9coZ&8Hm({Xk zB3a?^ye`Ilfdp~+qmJv>jt;(~5VxkS;B&(U6%1me6!evM6=d~c@0{q+*~xxu;Du|X zhqI2myKtN*=e9LYz3D&DI?6#TK1u$Z%@{Dat9ZCrq7OjgB>$5RZD38a5u%+vf#!B= z=_UM;9$kEq4*)^B{a8~$hc~*Ee%9{&W!CN=9K5kYqXfzhz;$dhm$3t6;!=oF<-!$f zMxWn!ioGR1C&_vd^P#fsa6ci$7k(n$@bGbOZ+PnNu58ymqTbMb+4|b|)17i^6b{~9 z6w^998;e_I`-mWpFhK50)?2f#nTa}8XUE%y68pm)#|!#bOI3U}rGU6;P(lAtluE#U ztQ4-DIiLc=w$zOHYsNhhlV+ifF#r}cr#3X>&E0h(MV_8+E zJX=vZZ|g;m8?(&DmH%Zrdlp4XRj8o&_yz?P8SLf{3aDJZChnMo;z~V(J~p|2$1go% zJ`@2z;@CZpG$g*xwdi^BZFQwoD6UsT2xY*~%O6=!2myR)7)>dV%Js87*2b&tMZ>eH zY){+v%b&&C0iXgCzOV|ZU9|F7G~I1aTB3-=wzRF+ukhh4K58!<8HPCRCrW}r8RDdX zU3pz%mgP*~zluM5*Px4lmVC6&=_eC8Fm0#xj^ZVwr|)sM zoi^_2DTx56Bp^G~*4)8N-D;_#>-N0gb#zV|=-*z==-x-AMG3#DyP{NuNu2eMS#nl0 zr$O+&Me?Tj3HHG`!4$hUP zTuUlwcphfPsZp^ay%h)kR?W|e8Wcv&n?_1Sj{{@D?o5s|eG}Qb*q}!ReI;TyV-$BC zc+l$OwFMr0BJOn+q8YxXkzOIulNV<_b6{C{*>QKhL%kf zQh>-MZNnqNV=9IX#&fx`MQV&NV_?Be-#Af>{=UT{Tt*=QMov-wXdAAl=k9Bd)?`06WRFF%Rp_lefKF}r$*e5;kRCsL2{!il?x_=vHI*P zf1^BPc%;Q}iCex&&7o)Utju0^wD)aJQSZ7HGq4o%sRTsPBcDslIdAA zL;wCNp5EpOezVWEM>h$d`sVENV~U3@>O5J_xsoW-gC@vn7tEcqO~PPW(mPffJ0E3; zUu>aC9U67`2G?(XL{$El?Q&TeD)b?!uMA=RkrngzFT0drraT7@@0t_d_V-`rx0)^9 z>mQPa?bo(!I8Z~9C_L-p2$-eA)+^0bHGOe(Oow5`6X(+SMB%7n>p~Tu?g;exeOXDo zEH6>`ZGzr)>j8drcHG-@UE3QaO=`r!0$ptitDXekgyR!7Hdk^~BpfAcr;hdC-`8WE zcM~Q*dmev3bK+Vzc7E-FGGc%EmXUT{kCA1tCC0yiM0${|4osE$2FUguHo*KRj|i|8 z1;65De{5ndef80A0>x{+V!fe`^yF#>Z4JwsYdOn%$lg0Z|2>^*C>Hp9m)4>0wZ?v6 zJaeVzCJSx)A3B7uC%3yS=LF zzjEc8UX8i^0uMHsOnFxrs1VNbRJNx%Wu1DZQ9OJdWhc4eChvE(NzIj}Pqb=`zX69S zgBySg>TC5v0D;?aEH?TTh?LFMdLc;WFOKjzJx*BF{=<$p1q8mT-jVbqIy_){#jF~e z=th{6!`tD{XN$?j($o0p`F>X){q^`L~6_vlz_wTh!dCVB8&nkQmd z5d4WwW+GTyWDpQbag)$&dXRwd~f0A`$vT z+f?-SEf18%|AW_Ji>qCIOioAJTJoejZMP7Y7cf7snl1Al;lnT$AKvjLrE=^;w=jIT z5p4nrWC${ux?e&9ZTMtwYK|ix65uoI4-==^%?UaJj}4u~fF|+FCV;qLDfzvbV2LSD z&2>RTpgG>6C9=frT-qbieyrQvWPsmLb!m>s%#0B*?4S8QjdZi{2zKg2d%5X_p(e-I~6jFg@EKr?M zs>(epahrzNa#mj><5~ZC`J?5#lp}qwV8YN#{WsnbWs~R{wkJ}jOI`YBG z5kmP!V)ZqvLm#J5)|bTP;4X-W|3xP`f);{-6k3SX69ocgtSY)LPC*ufKRd#a=6>#$ zc%FGE0u<4z7&iI^qw_n$6Vge*y!`yrUE19bU4eIJl7Jl12JD+b^oc0bCBjKbVftmksl-{ZrUttYRdYUl0grq(9;z ziXi!WbFt`2LJ(4~YflInVkViVR&YC85SFz+_)9&AxB1u$9cO@uzW&itg6?YI-mI| z!c9OdgyWy}awrmk&PmG4VvvOaVA4bXA`U^_BYqG{Gi5jJk*<^z@xcE}D0_bM+%fPvRkdL75PZxkf$;O40$&NvVS zbBUL@U(1RPDQH#EH|eu*CaieT#*jPdT>JWk**?{3?lY3n($LV*+F@LVA$dHO{qAG8 zX@4qBEQrNY+}HV=Jt&NbUltQ8ovOT;LhE)WCnM`D_pBHdS%=H#6sf!L+SlZ#xI<)W ztA>3c3;QP5(c-G`R@~#`&mOM%-!{?lIou4go&~ZkJ7R>UItLGI@RhaS1K(p@KX)|w zbi@Gt8V^zff6tnmka)i~`z0Pa!J<^Rjaf)O@|5(m44_L?TMfQ|QXp`Blj<(s!rC8c zNAuSiuO?miRqPf0 zx$PI5^31CZj28DAgNE+!bt4c_*W>zCF}chqQ2{~4_*Z68=r0$!q6w;h9A6N##)1El zXie6(C4kN%H zBoTk@aMi??cA(zM;PYyL=R?kNn@{2&Q`6bw5iY9zL1#YM{)Rf4^)*_z)H*d7KXTmq ziKN6xr*!dYYr?7EG>7u)uJRy6{1j;jqR2541Vf7D^=-_J&e_|ns6@Q7?})P~VU|Ax zfCPWAAD-j-QHL;Kl;|t6Y&e~|`HK|1O}={g!HozQ`M}LoSHM&LJIm8f5DbEy9kcm> z*a|%vT$RKe*M4w9x>yIonB)?s)Z1tDzfK62y6~|zCfGbyqPM& z!W?!`^VK5?zS=jABueHeNv@Cw0lty$PiA4c9!0{S}iD9*kNf{&8q6}@8#k}EyKD=o-aQ3tOwIJ*t*+ks)?S2(jEIV?<3E$VXKw?%6MgQ*U zz72PAuuDSZ)>O`Ck{+c3`lwH%A8QJ&G z6fqUxC;cBdD)<>`ySwS>fj6WnO-j3(Tq~E!DGp_!ukcq|NR0Zxb(D@~S3-r8Vpc!o zD8o;xB#d?B-+{2`qz%)4O>yXH0f}#O8pCtQzYG3CJU=>8f}fn+DE{v!g$R;yCvrHn zc=F%mS)ohRZ}||!#H{+5Z}o~M#;mS(#RC@(5Gonbip;TypO4Co@A%ZO%t%Aqt&Bb* z+`<7o*gDg{r*qZH_~$$`)q!Q1{pRA5lq94=lW^1B-2mKhSf48JhPsz6G+{OtAVS2M z_5USJ-q zTJcNYVVq7NIPA}dA;;65%weMEOoBtE6bw@kg3t$zG`K@)*vVLzc$W+^=l&|xZ0x&KyJ}WhrYvtnMTAypXJ;995iXU8!b_e?RRTz>+fHlsIspV| z9u&g_zlbd_^}l6yHr3TK`s5z>wyk()97L8#MoM1M&qc>}$4hA%Pe!^B+um}2bd@uQ zSg7Op3y>gc|js9@c6_hqv)|cZp`DPOt6e_sK>N&qD{(#f; z`2Ao>jTzw`QxTyc9h*=ul&em(-Q6%f@3ev%{K#SXrEATT4gG$qXLg_Y%B~PO@PH{W zdxBqjV%5^B(^>OJ*F{Z%O0Cpo?mRBkG=p&6EbHtfotf+CV`Ix zsvXWFgy{_VAzU5Z45OVC(qsYBk6U&NPJ|0XkE*UQwpN1z%j+QHKzk#h6k-F$)D#ty z&oEzw`G$~a;(C==bZnm32ti%YJ?Br)^$c~so>ljZuwF5%AJ2)j^mL_5*9aYngCKK< zEhxFtE&B4X>HL5IbrOEZj|XuIM(Lo!ak~lSf@9nvOuG-J4-GwyvykZ&A28%ytHH8UA${-gV8LDIBtQ66Ob2MY}7%7{VRFe7dgefJCOzv?4;j zrVT;;u$Tgbx8MH@i#$2vnHe3o7YAJ+<*H{J4#IS7sgqJez-Ar3+3F|%3S6;U@IIBB z3c1RiV7-2*+~j#&f+{Yvmux?!%3)Cbl5U|5M&^ekft)-W)AMNPt6xW1$pq__laZ-2 zMyYC!aH<}Ew?da%@09>nAtqd_=d3=cL}O;k^x8hXIh3!pz07;Zzr_W@SS{!)B(q1k zIbBRa*pCH{G0Aw@($9$ddT&_|db$OEM4ni10TZ&xK-V%KSY=ot-br3(;T~jqF};NG z*AE3H@ulaNZP*|Rm_i_ls3D}jM~m+E3Hfglu*mLobO4`j4fRgD47sKqsZ-DjowUtv zxd?-g=z1vW=dR-_e~@$=e8-)v8yh6h-!+2JTK3uoVny-cFE-isx}Z7rA2x?#$&WeB zt_$e5Klpk-M?0h-K6b?p_+JamDkB^tRH@E&@!w5K8HxWo6gB-sfj*BkYq9oe;Pi&W za9_4At*djvU<3~hq+mrxMeW3!q83UaVVEp9+rS^_5CveyWo7;BOlJoL{a%{7Pp+y& z;B>G2Ru|tCK6@Jgnx^CCtWRrOQI^p$6e8MlFyTjYD}w@GQIJMf0D;%utpQaq(;$E5UW4cM}i=)!7DD zjkb^DuOYaB5vmA=U7Zc%QXd}w7I{uJ_~wb$1c3#J&gGP0+z?u^tC{d(E1@cFuND;) z$0+VA9H1kM_Z=aWhWVtm>-Dxsr#MgYEF>QB0%jcADL)0(Sv6HA3ld*{K*YVUL|Yd4 za6BD^@(%Q1juYNv31hOnDR>0@sgbdmGy`262p!#m7&>eVa)QZJr3G3$bZdGo6>4K6 zM2b(w#mX$aO&}n|1naYhq{aCMMOBlHs0JZSQ>FX$f^NP!*CTa01HV^XMn;xU#eNH| zTYm`ZiQAb6{7;oGRaP9s5mFhO2u1OSr#-dC`c>qR3uKLu!G0MX@Ph%eSX3m8yxfNI zWS)~{rckA*n(ts9k%TIT^DS>K<(Mu5JbN?VH(SsXp57AkOeENf!eWDKK;AZrB$|Jl z?-QD)yqcT6YY;Vk7ENGMIGuOmq&>iI3 z$u8*^#5+@VUk}R=jF%lMI9?fcMIbs#)(?|e)7(D5rf zfFwK=!HbRCe(-YxZ4fVIXK#LE`9{8y#1;1AB_F(aq0C26+`hT=)=Y*s@;x%)Ge5WQ z{?C_C#}R6^uPe>fzB(<-6yC9ZdiE*w^7Tao!4OkRGou5UK#1NQ>}7}TlL$Zj1O?qN z-D^qXt|wyHWr!Dmy!)s4HX!t8AUx3&XYT{6)BYQr76UwCBu!9Ix$@VAvrM-8jHvS_ z%u~aT`T$UsJL1FWnO9(c>gHo&X1mS6YNub^npyAcoH85KrK$;bdmeFWm_)LAF6*uh z$jh$1&c|0JfS;imOn=o5n*E|_s`jU~=QqrM9Hx)JBOaiBZQ}>O4GQ$Q zHS=$!E2Ah=tjT+&MUpVeVc|dA$@WL+H}VlqhAaAmgju#WVm-nwX6Of{#EUxDLuhjeN0ii!e!q4RW84tZAYANYC{Ah8FbIf5tt}W2WiG5 zW6Iw!`pQPA!8(;Nm>2zA!vl9wc?mlUVnMWJ9S1aCp6QmjR&JA(=(Ib zkM>Odc@FkpSLI1k7smefttlMoFyFfRuWFeEo%HdYzr0oEf+br2&Avqe#NCY+Zu-~x zm5L#12x!8TcOqLMBPX?l@z}V9}u~z0U30?3KF!yT2j8(ihzm}JgtwcK^BlA=Aa;}|yDZs$7POC+M%aw>f zH4TletU&MZEN|w)&_Ca8gcE`;1G84&CZ-X>R~s-p-An?b1|mZWbms4Fye#A)7xBU#R1;`tSs=WwcriY}zTICd;HJT+mET zY3(9bLPAM#m?oVOoAjTCaf@pMc%GCe+RL*VF~O9oP2Mq^&Yh+wJd7}hC;1>_m?`fK z_+yGn(@?^o8JYC);(jO_3ceeq_|!^xNMSh!FqkdvY$FKnY73FaO!5zoqDx1}e6S-G zf?8dHxRnJ~FkqPtlegQSok4~VN-0kW z^7)=Vq&LI%5vRhOJE5RHCkWhK?qFW4&MwQar(Xd{`nboZT3Cl{87^qnzma#T9rSv* zq)sE)5BrDbnWPK$QjDx}C<+6VXjQ=LtigCEM$_Q4^`BPPOQU#`o8kRXX-}R0{L{vi z3|+o%@%@`QQ7;yN+IpNs@%fkF3rwd4>z~%`<*hh|wUy9;HwmgYmV|TH*12igK*Yd) zZq#wINW`$S8>AOgf4GIV#Nz&t^{wA?LpoMY{e6D~%a3n08#~2CDvBe7;|$Gu;j}wS z-Ve<#FAWo-$J>eNFrzaCe>F_- zKgVNlpwL?pNoPKa{C}_jDByM%@w4||D^UnwMp6Kh`>O-GPn9K*9kA43Q{`N9bFwVzCsu(xmkAJho^7kDe91EG2_=ygW( zuZ4fNWK;mWrB;`!|Nqhd=PM9N0hm|iZ>$x+guGm2TlR3gKCxCj8Vb^v%??yF4yary zD@iCxWTD(~_-4JmYt6o1>D6<)lj}J7Oe_d>A$Jo+OII~T;N|_{ zhp2ysunwEz85oE#`qF{=wkAO$B2gkM1t?gWNFxB^+g78$jgz+fHop}o#!1%- zV${)+w5Vu%ts2M+&PqtCH44Xj`?fAYLJ_#z?R9UbKPCkQ2z2{wqt3X0TsO*iEu_N5 z>8WS~p?Gw&r-vqNWH}=q8B56_1~Ww}U@Bnl{6LUI<2OYTKu_*f&U`q~p;D0won+O! zh&hE#k>RS037=Ys$s&QcDl%F5z@NqbeTOI-#dFvJjC|H#Rj)4mId!sGbFI>OJub;j znZvpIwExTcXV7*iCZ{N6K^;TZR4_L{#g zdaNy^8MjFVyI_u4y5`Y3k5!!gjhdlHXXD4j;3$F)0tH0io^dGeZwf6y<^arC#3w&j zD%M|F7ANeqC8>a^d%U(4fLmAO(&ZLX6Fd)dRAb>w0BT3n(4y|2^dY>Wl_m_oO6QCk z{UQA`;Ax!BSAU8m^)1;Csh@eD4ftBjKcAgx=C3I5nFxFPerNGJ8{md6D)3d}g^Zh& zPF9F8Km{HjiA15G=Hl5$m;C5!^xQsa$zuJ%=x$BJ9Sw%N#zsy00j`{(EG@fvWSTWER7fjn}0C%lH;Ab0J9C z+R|xlK$AkK0iC&$VoLW&55i5z?|Z%S+;3TfOuI}4_wSXd4+^D~1RaAgq$kl3ar-hQ z%#VJ#pj%mMmT_q=($15}-2*jJX7QWnd-E|#E1HOLux6@Y;Ziq^>NFi<5>FV0z(GFamS%R!!UlZe^9>ac9yM&%8+A-J;A=t$58?9 z2wC__1wmu#a|G~X=dX~0t)bJ6XSsvUNd+Hz3x`BT$uH%WDK*gWWKiiu<#Gc*-e?|CZ4Q^WxzwlZ@=k`*aYgp@E|F_;uH6W5bB_ z77Wtn;1-WqB8S#JZDW7k7Do^4onqt6(=AYWe%nrE|o-RKND_U(Y_QG{q9a z*eXLe>j=B?t5&cjF?iKZ>}FyKKy{U8-HiZHSRtD{B^MUg9I#M*>@b$J65V=A2;C&- zpffgmHM}MVJIk2F09uQ>P8%M?lyTL&7(oxFLLh` zV&;N)k<-3cXl2cg47QYZa8-sSVD+}SQvaUhK*NyNQQAO;*gZO?H>yPERve3)JPQC~ zmtrD|2d>N>^ikb-~mA zRg~>EfQ&dTOL+Uwq+`(p6m?h?3i%3|Ko|JEDT3z7fAk6-Qji?nC?v}yY#3)=jn5bmAjL^4IXo9|+UUpgDh%Q{)_IOZ7fvB6g^;LY(4mfmUu!-#9 z$s*q}^;2%npPyj=xnmuo2Hr1g77Q5!tjVc^Ep+pWaF)&>ZIW1m7=kfoL>$Ngbxa`& zW*LDVa!r;A2iu~n8IRbC2%M*4u0JL`98TgxW6EXz(1A6Nzd z$dc`od3R&oHrZuY+3z_SYc_`MjqjPi+&zS>^pL3v7>IQmSKTert&+m&1`YNf0 zuJ0Nj&;&Klm*`r9{7TYy_^f#WMi_~AX!2he#ht$SOIdL*w*>c0Drr>A9qSSNU47+x zd)#F9EbabB5)=Gh*yY!{7SelK#6S?IH-w@nlLI~1G7`~D9tO7<-HdGCCFbAFj@SKN zYA6BobNXBMt5;9mi~y4UwFLejRwQnGLxUe}DpA~y!d|ID4VYb>+XFQDwMayX5h^T` zTgKhd&lahJ&!?(5N$0DvNuw!d%a7faZol%|!5j4hvmC(MNfh zf1p!J*7y0JtuF9Va zf(yOvlc!_2eU^1&)zyWU|E2;FFRF+A0OX(55@MvG3F1CSv|ei}Zi_GR;@s1<3AP@6 zFs(SfDWFgO{JVElj09tx73>@D#a*H5a&u0eACMXX z@qqzUv)rAPi-pV^te!X%?W&s@q87&IWPNRK^>?_c_uP->x#l^JWHTH9Th?QZ+*Sf0N{;eKK!y8y zr*vp>*|wLp=gOTz~yJ?#=3R^z&|_Nzl(XqE3(P!c@N>*G$lBwgUGa z&*4fhj)N+WMV^?M9-k6hh85wCbkz$8U}p2i+22axHg@L|pWJWlzD&yLOKxNY7__c6 z1KqXe>xK>4^^L=^+MG0}8#pTDSeCj&o+7hT<2nyS9EnE{Mi>2e znTxx0+l!57mwp>Ha{*)a)X-$%4WTcCwcI2z)qz8d^<8E|G2FLEYq*vXlq{1lJ;}Cr z1v1J=y!CI<4kv{EHv2TtcQ(D?u5kbUd1omPw1#JC-m?J>>-xk1Z9K0@^7t1OE&lMQ zhgU^6KFIY&>^NGwkI{)buP+U6;T|1WtE1w@hkg@Ms#{YluuYqPdlr*>Rt+HEIUrxXWsmQTfSew~6GXl$=j9R)PDIPWl zRshbUYwb}P#V->VhljH#wevZ4Ji;jUm4sA~{JNJRP0(A^^d{S4+ zW>EB}2_iqZff}?8h-*|L!(1PAtdKIFOMe`$YQ4d;l9e4M$OjABsH6OQ3lh5f!_p6|WpQ*8zs3Oqb7;#~^yS*`|a^l!MY7%M?^n zRAqBGU(FQnw$@#=6-n{kZ@MRMdLt&AYb^Kp)#0rf6Jn=RN&i7n7EYKx~~W3Es4+Tgn8_1yx-^7cm!Kn)#BIe zos@tN$yA#g7DY;64D=%&okX2Zz3|Y-$3OvK`2^M+h2JafaTV3NTCGU2rhYQsiI_fg zpq8|ET3|qSOdfJxf$lr2xA{UUmQFJMK#2^-er5j?c5O_T#~b_V78zkLnaQ#F`-g=z zbQxnp{f>wZ0{(F1-t^7aBQwtn_Pm)^)8u~4cE5Xc9g;`ikNb$Hlh1%eS?Y#xKh7Km zfaW6)L$`}?phPq>+ey^ZL|ZS;W|D=r=>V}#EvJ~5Qil-GoS#q8ElkXBi<87~pO$sI zfq`5F-#>pW`-H(16FiL$FhyrRTuAYjj}xpsu59029nY1f%$x?8RqVB7%rJ|Jng|q6 zw0Q&l}<) zt>apl&E8uM9~4ZP+Glk&?zW)CC1M|g*=-XESjGuX~{^?9wPaD{pF?rH1VBvLNQSh_XJv3fP>TK5ZbbUF3do8vn=ALmp{zymNlc&~Nk=&H7h_Zx5Tb57C2o zd)hD5U0In)&Q_1LqkIlo%mzC;Lyz~c1#!~8pq--ExLm83j5^(qRM$M%1R??8*eQuyK3S5j&+P$0rtA6Z*jAk^O%2p+)6mOyO$h z=Y~C}A1U+M^(>-~w~zG;`o_8vGlKjTl)eUHX_WB2E5NsJfxh-4|2w_!v;!G#J%#u4X%h%iGf1L49cyUdVS`w<{c8EAp16obJ3XtH;Ftf&P0q{G^^PfdxnG!KCq5$?1^Hp^eaP%kNt3h{b z6STbdKfl(x5Wc7MA=rMsT%|SY^iX7r3OX`;t25U2%$;9g7|Q8hDe8VVbDi=PXvc+< z*@%=c``dYe78`f_S{OL?y-f!`{qxa|6tmCefyQ#>k zn9)XbnJYC0FGa!4q;U03}0L!4*B%fR<|xFjFrV#P054Rl?;Y$^af#0;$q$p6g1 zx8|3^8_(^RZ6C-MD7FZ_K5g-)6O3qH&eV~8evBdla& zTTN`vTTC8&EjNYl_#tD&WT>k}d-U&YM45?GlB2iy21Y6Qe*eZ_=r6BpEEDsvX7?c2EflmBV!U(!>sm{ zCo_#-?L`Q;5l&7=6HBbyuQAy#a@`gGfe7O-+J%71)u&+r#jvg~eo&m?(3^n3k1y~U z(%}SLV|U9Mno$TJ42G;v+uoa_{qXbC!O0n~Qd@8@z{EkD`q>~h_!Jg$6Va|ITC$6k zFVHMLco)JX9TJs8s1`wYH4gyIj?_)IlK#u9eF@#ck11T^;R`_Gnt0af+vIsDLRN@wa zymR>u?Rp8anrJfStM+FRDFn2(r4G?elj;-O2#F7CJE=%S7-FGn0=px}3LAFQ0%Yc) zI;5^KyA}ZHNP0)ix|?Vs>fL1-2r2X*Z_-g6%95)!!2P>!%zO%toy`Rxz&)*yN+nF@=y%z{;GnuCF_AakDrN*H3Qm60z1X-9E|S;g0rq)^+cPK zQ`+#qiPDKqE8_U|?(Kw)ih-Cx0|3G?2dJ#V%sstmq-B84>9-nl)yiR?$wV8Q$4o`| zPm&3Ulm$a|Jo+p_!~aNrj#=ef#Kl<q1;gv;;yAHtu+10y9LI~#7sZn^=-@Sm8mi* z)0q2#8p3ZrR|%7|SAHX(9G_Q~ zJ^bZ$U3?zI`6Cj>bW;&&TWHYWXw_rCWKdAwqxul*5WNWWrCY)ZjMK$0b75C~QLtm{ zg-YC2g{jIqr|~}IlZ22#F=FrrK&L+!H~f)*PIU?1G#bx5x0uqj{d9CN^qk4l>;AOM z0C^{8))lvsLD$Wn*Qhs@upKPI-ad)ta;!yY9x7;Le=S>*3ley!wvx6<(^DzSBe zXsZo30;FWS5E~LZdVKjIxZC&TP0B;o^g;jM_W{8CA1&H3i_hl_V_&lZhCUD@@xECb zz9(ffwD-7tc`b1#ah~*1$h?hg(dQAt<|o7vuEN`+|e3`W2T;)i1jh z4LX@10(EQ!5n>3xUYNzD0ag5JrB-4PbGIRMgO6iu#BYQgjVw)%Q-|TE}4kH0kERbZLt1H!A|qtg+iM!4gK zX{;vOAsgucFqSmlUm2>vm&P$OStjQ7CD3^Ln|^&~3v!1}lb3o6qUDoViAZ(8mb>fn z)4=PJ^NqQk*)npWH!Z!}HB8*xtK!m58w?zwET)aWPz$f_6)?Y%icx?4W6bWe++pZl z1!p-C*4d)#_AcVU)N*!+*(x2Z5EAirM4qZH8c%y{6g}DryjDo(GpW_$f3tThI@`=K z_zW`}IsOXlQ+z6&ng=BM!xMAg*+!8QwYj_u>kDc0If(t4Sh`?*{IQVTJ9)EtWmVl~ zFY2X&>AyQp&UR7Y)ss&#V`PGvS5p0_yKdxP#62K;&BrqfBSvD)y>}rIqToeFV4}7L z8wvpvd3^RX7nVr->3Z_gK;k&{wfuZLj_(y0W^3!jV#+Vy;n1Bw4|*;Rj}ByeTgIvh zN2^1(+5=va@Zgpehg+r)(J*v;1O8l?j6XWRssunXkm=}rlnZ^u0PZK<#O^MXUQZ*L~(2p1UD z!$OI)r6||eIZ6|~i}xz9; z?EMADc;a@(1x64dF=!CQa+mFYS#<73;Bz)#ERsfQ)v{txrrO82jCyxLGjV12>X+s# z2$r1w72Wz(`AC~`dg!eiZ*e^G{gnL5vVQSfh6;Lic68;AJLGe5H&1FTc;(rRptw0C zBFaX|v~lpvbZR|Oh)j53HN>EL@3l&1qQ2FiN-uEYNSj_pk#hp_BL|N8Gq*+!)PkczCs#2)H7pC5B|*Z^3b~60VA92}M%Lra{_D%GGV`vF$}TCPq2) zrh-xhgsscd*sZ9ORacp`bGs~?A4zRG*WAsR*{{uD$&d0^IG07Naz_APK^`S0Iy?2} z*7#FX~K-MP!pjJ#GVy(io)u|EpvAzIzPJUD(R(0Xn8c+cAT zo$r*A@sx6>%Ia&5Y4fM|;+_%S<2M+gL1_H{uBkqGoqICB*67D+_wT-%HFBB=o&UVl!Yae3kl&y07$k;P;rcx^*gEC%sb{Mwz;VOVf>kSMhNb+4n>>9%*#X?XP@9qa5|d}h zP}XWP6`#ZSi&yu11_7IR-Zc8qs4s2}qXQL-Nv5$**6xVj*DBdAm@KiemKwgMGs@s& zjB~9<=)Qw2^#cCvloHcaxM7xj7CE&ZvRK&b1N}v*x6t53_|06knjC)LkbbJL3@o=h zxnaiKy3X=I|mgJ93rPfcr?2I~zJ{};RWzm?*s5jM9PFpH( z+$=NMYrP3X8F&?XKz`HLe>DMec#e`m2UB&q92r4GV6c`f?O4|YgCYiZmws)JZf2$F zQN!r0M!A-2l<^&zmha>8cFX^%?ySF}`o2C+JCqDaOQ#4!4Bbd69RiXPL+dEr>4(l4 zQW~T~kVcS@PU$XT=nm<6uAk@oeg21M*1A8Od)C~0?mqjTvtN7Nwci#mt|T`PuJFGk zyWGzb`F^pE8?09ESr8mwY>062<$&z6?XB0%YUFczYbai1WjxKpmSTf#aIWOahax=wYX>Q_=aY|0xj?ArLGz9;AS-6}3vYzv3!M3M`!x!fR zr;{i*P^0n@wO1IyTv-nh1zxhx08{R>X!cEW;AM2cpyeXv#`P(6e-mC!cZ~)2ahVA= zt-RIt5nG7Bsr|x>x(U~>a(sJCfNZb&fI)Qo=TW7xd^MO))j_!b+d@tZ(Jw2QVJw?eyszsYGFawBPQS}1@k=u( z*tN35I-%FmbFy~Er=gN44(N%!JN0EBQ?3UbebX94wM{zEP3f_Q;){LL`)w}_ly_@L zW3(80J=76&cPOtM4)L6&*)%27IxkOFvn%UY?7rx(_fYddk&BSZ92^Xfzn;^G{f3 z9@x)gwV9Y9cLE_&chaqHnhMrPM=G2Nt<(c9N`f-5CmK{5;d> zju*e1M+a;s=Y4LOV9!4g%pa(d+!oCv@C#-2I6?lbU+}17#wGE`!@OkWE(oGd+1SG@ z9NYdoNNc9bojGK%wH}KgF)8cqLJz!}K5m^Iis4a1inBetudMk})t_GKS~$tit@Cac z0>*eYAl_FdTs}m`%>wP;?j@rt2jB44oxtdLsZ&MFEjlPNYOtxGYghsJ&7C>kfh5?%a@ zcmAQ}3KfIZ%Pbm-gzH_JnNdz+uPjG~r~bUAybgL0Mq_jxXq==qfFzGQuMR*1{lx-z zdxZ6xzLB%e93L?3G|ZdtL{JczvzYCEeX>RvY8pS7@BJZv_-5#N*XQ>aO|}phI{r~@#3`n61PDH zKo#S?Vu-Us_oJHu9%E>>R(UUFb4La3r*>8@=>7J-#4`PpXTrd4I#IQ%AY#n)j|Ar7 zok%T+HNhk)%k);wWUun-!s0aZOKVXh#2TsfyMxmiIa)q&jf)V2Kn|P(tk3L;FNb^J z36Ee`?mfK6WZs!BE`H||lmh(n7AkW}1l|@lGMJLh6&F(zdbY5V!0+@lZRtekiSup4 zKQXD99c4)C=G0e?N9XT|Zb=QtLMHbiRu{T!oPhSC0|#+~pU(sqt`^J3?OYQ@)M(nv zQq8_x=bI3&x{%s0N0afp3BJusTLE(H5r@TBAuEM&=QGl;PYvjlT&e>aQce0e}r2qNxK-e zOE49mPQZ`m6OwqI26edjMBHfd=N`)?&Ymeid&02J@t4*^n-fh zSR1sK(+QDE_RfdTzwsM?yEutrt~Xbi3(rmt_VxDSn(LhGOvk?AwP{hYBwgRt{b9e; zxct?QozIeGNbtghj_`KDY=02o4eGxUB^id}S|8#kK&jA;?Rm)7G^3X9Lc(`CQ@BAy zMLicMnbAKS2~)>g(~i7!TOyQyE>cbl9S;YM9JfRu>~AqbNt0?g_WD4y8X-oOmqNv& z(elhM;b`Xv)Tnx zvu$vZN%^6z*_VdXE3Q``c8A%tZ(y(3$NW!uw=3Mf*m+o@9&>6!dQw%_-*x)Ul}`Oq zrd_-1THoh~r%PEEMk81FRm;@}*G(;)(u+j6gsB|-mJN_B+JoB>h;;taU!y+#U!zvS zsM*3L#4RcIq0=wxdl2OsC63ffk32<$tjarnqHYq=W`7jg@`Puu$7N^3=RbyhAi7Q~ z*Jza_I(h3;bME`&wBxBlQ!$2XiufKR zC_C>gC<*fNA7;LmsqGgW`C`uLE;=n>8xDNJa0y8c!uHhEJ9O~SrWxSC{^0-iG4_JA zrS^4#+=5VOOz)+ZnmM86!N|Vk?n+CGmaTQ!hR|~A$s;KPFEpdNOs*+J2D_q=v$u+D z4xvHS9>Y?)dbQnc!!FiLJTV?o1l$bcK@+2LSU_imWXG7+oB#V14%hwWj_$kFkOEp@ zC@S@ZfjDMKYk-0wNkhNAwYykEW`mbsURf03Rq@KJB5^1UbVX;UftbrdCl(1 zjy6<9xk_ub3Yg?xRv9L_v4|`yk^AN@U5Hk*HlaY-_%n^Le`M*G9tFR7Hn=M0Cs~78 zIGok_v-R=sk?^~&EH>@Vnx5nZT+Jsj-} zq@TcOf#ez!Y9#Hje*|JeML?t^JaO7=cPATsAJXn7DxJVo%dF_B$%Y$zRGt^=$9{&L zFAat6T%JZ&qfx7CH*N^6_$lE)6jbA%^d_Kg+2P8iX=7_LMJ|95x^^yqS&&diQdC;E!r z5v>Em5h|#DR&HoiWyT>w)(`k5zV}bmpCQ{YTs^3 z=}+sH5UxpZd4>FA>T#PK^9a(dO&@|L7G9olYu~PE7+-hSMUplbmgb`8eGPNkB2 z=^#v?lda~{Nc}8a&rp8q@Wrad!*P0LfX67a78@2I;#0Q!>ASV#IJN4A4oI{oGpVZ0 zY{w_L7guF?re*H!f|IE9-{H5>qnqygC}dkj@e?JI#A1eNoh$pKFxT>V*RwvzF2?Yc zpMp*L571)J^)v0N?+ck0-aMPvUuEhrgYsaH&|-M++3CfTfZ0wd(Ftnj%c2u{!vxut z14YrM=HOH6j~PiGBpB%O1wv*nFBs(2B-t&3idcTVoAqC2WF(ihm)zU#TlT^b>`ZNv zF-r`h)DgcOe7X5cx57nA_M8}TisfJwGIZ^mO~jyyB&L0r$$&*So!?-iah*EB#)o^> z&h*C-4M)cM>HhX^(Wj(7bAgn3V}j(De)H*0GhmxK+^}#eyLU;6eO*^ffUg+GVfoaa z<~(MaOBhj-(Fp8>MDN&6VfLI&k$B+Bm^2M}T2b=M`t|zM4E-KRyR14S~U)~IY0}qT`~Nn+xo%8JM4K;!exfo z4o%MFQd*LatfzQ@q+6P6*iTET=Zw}ib5jkH*d-V;1)kn`1O*-?XgB+H386nadtQ?` zX;^#p+YFWSo0e|&)}xJ*xAB0TY9t|6U*(QEmzjep@flvCm9idjc|t8LEV!G%j$M%? zTbRGG@_dFeGpj^|&Zm009PbIjQ&s0vugc#Ey`QhMU*EHTVinV3HhiAo0xSETO!}E1 zo0vrp-?jrf7EeT}y73T?7{Yd7W%!VUP!SA2(*~`NB4wqJDM=@4+1p=WL)AHb>#`AU zXx*4141#d8jj1(y+3%~BaKNHEsu=fko}2jVG-?s59BUA?FAQsz#gV1KZDwe#;ps={ zYj&A7mJ5!3a!fUBPW; zp+;DwKc)6yYtgRjIb20jeKWO2-8RRriswvllzv@CGFeD~FYUFJ(ac*2O3y zykZ8`ch<{s=_{wH@KsnIw;L$j4&&Ow#C907$g17|6iKSHEW#D4{g^iS@ZnIy|7& zE%QJt_+wy3KvEU!1I1ceURh;z%&XxekKc4DdRi06Z=n@zP7(IWVTpO7@6?Zts31sKaj zURyPL8!Ki>nd{f7#>VhJ#kPD&0@U$pJjORVw*S}{K@jiR9AK;r<0Ei9){u)Jc1ug_ z)_*0J?)e?@ibDIrm}0J9v9?z1CT8;oQvgWvk#h~NxwEHOs(?}v&07_X1d<1wkuI&3 zZ_ppwop-IbH9H#95bpcbZEAN6Qce-rPyD+LkO{7Y$&4!LZM zQ?M&R!KHb?XS;fX4gxmkn1H=3bCs)JB>TPG`Y2c*gG2i)J?z@Mu0m`F-`~Y}GdVax zcpg4=&Rt7Wu>BCfay@BS_bLHgzZMcc_%grKh^3q0t9Wg20lb7P({;9QuLOmu9~a;Jq-vJ+HooI>^IdmbQq816jKF@4R+N>8w+MRB+NDH%VT09=~-F4 z=HVQ|rM&J9bsFgwsbX~#IfNu&-^4;}5yEiua~ICq!ySj3voF#aB;L?U%v)OyeJnDo93z;S8E&*Ld^6{b@&X~8a&TC&m+C|!@Y}9 zHQMn%ogtaNB9=5-E(#8JBv~~pfDb)!$+Yg%5qs)L-ssmnBG1FoHCg`R8?a-(k%_9D zpYowwoLexoeKjmvtczQb!Y_nyF&8|e*S9>PNC#|R#h_^`e#i&DOBJGhTH>Z-J)P@l zKU$d)3Sy+srr?4Z%YF)yq9v&$UDc&+c^y?0BUN`=3U-olYlwP{8q#^y=`LQbG?6qy zJr93}^BidomF5gc+Y{n!&TEYQ{5i--&z4Dd? zGAN2cONadZL-F)8QKb2fDr3MB!efq5<+mViWr)~(LBZuy!LVqwIuOTl!KIPQe7T^) zdGHf7A+!^lCWw{%_)N^SEz=%_+B9J%W1MY#3Qok-P>q4NXE*`%op*F$7+N-!>c(;& z>2Q#er{?sLsrRW@ZRLA|$D#@ZY^O>fmt?U<-0Wz{MP2k_ z)x=7=@T&R&n&R)e#`|gcLl#N5z zkuf7tVcK2*;u2l=o-VG^5yg=Ui|UxxUX{b+^!NgwD~MMbuN7c48*Q&KXv}2(LxW_& zy53Bm*m>)BwVnQC7D;O1*{B7FAKXh@3EMh_<4vc_r;nUX25ixibJuOpibbPuD`HCb zv4YG@V@B?IjMoGb8ZTok{&Aa6y+}7rst*GDmhL1b*#w)~2GIC2vc$xh@pX5bvIoCP z8u1!S?zDw!Oa&&fAZ*JN7*+!%r~>l_n4zj0LugCY^JRy6Q9C_)KqRXf2qK;PbtqlV zPQeCsQnxqhu;1wk0{;zgr1(3#q}Qk)7@WBe3X@fF`2=ML{4!=NH+%OCiT&v>reo+u zGEaRNm^vg&M_2figs8pcw~#hjWC(J+!cCpWX$6>Xc4VItmoppT`SLO70dGO?{Lh!f zxCvpsN12kVRb6E9@!D=fsu~6gx$cRZZK8>~&FkU`m0jZ|R#9rU?7=Nz>ZPAk#5!%5 zN_Su_b9s)zo7 z#X{EEO_}6CSE`DJ{mH?e55WCFjS8+qpcfm?cpv%w%nI^ghd3Y_E62K2z1iSqlcQ}YR>Uc zC{con+Tovp_&sjGvA%7Y#{SASh^Djph#XoaHm%zC%pH&K1WC0xqtB2g6-OCw&+4cX1;K^N)cHB^Nw-n_MlvvaMqdF zG!}(}-{G${=FEpe=*2xQtf7sn(4!Z|8%+l0m`n(NBtHq-MDrT0nS{9B5f->pX=;ko6(OUI z+)I2@3IxAr?|L`S!wnmM8++^*nCn&%#ZyR*Kt(hBF&H_ampMSr^gql+mIm-t#NF+T z*MHA2sstz~_DWF;Mg0fdWV+bem~t(orRy^Pd#0Df3`txS8$t;C52k5W0w7m3GaUQ% z-!TF>2Cf3|HfS%`yyL&5r}G{_wdd!juw8(k|0TL0E`atJZ)|}a>HnYMv_YV~lK^FI7m_&pZ9iw69Z6x8L*Wz9bQ4=#bOAOHXW literal 0 HcmV?d00001 diff --git a/website/docs/aiml/inferentia/compile.md b/website/docs/aiml/inferentia/compile.md new file mode 100644 index 000000000..3f2bfa250 --- /dev/null +++ b/website/docs/aiml/inferentia/compile.md @@ -0,0 +1,64 @@ +--- +title: "Compile a Pre-Trained Model for AWS Inferentia" +sidebar_position: 20 +--- + +When you want a model uses AWS Inferentia it needs be compiled for use with AWS Inferentia using the AWS Neuron SDK. + +This is the code for compiling the model that we will use: + +```file +manifests/modules/aiml/inferentia/compiler/trace.py +``` + +This code loads the pre-trained ResNet-50 model and sets it to evaluation mode. Note that we are not adding any additional training data to the model. We then save the model using the AWS Neuron SDK. + +We will run this code in a Pod on EKS. This is the manifest file for running the Pod: + +```file +manifests/modules/aiml/inferentia/compiler/compiler.yaml +``` + +We will deploy the Pod on the EKS cluster and compile a sample model for use with AWS Inferentia. Compiling a model for AWS Inferentia requires the [AWS Neuron SDK](https://aws.amazon.com/machine-learning/neuron/). This SDK is included with the [Deep Learning Containers (DLCs)](https://github.com/aws/deep-learning-containers/blob/v8.12-tf-1.15.5-tr-gpu-py37/available_images.md#neuron-inference-containers) that are provided by AWS. + +This lab uses DLC to compile the model on EKS. Create the Pod by running the following commands and wait for the Pod to meet the Ready condition. + +```bash timeout=300 +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/compiler/ +$ kubectl -n aiml wait --for=condition=Ready --timeout=7m pod/compiler +``` + +:::note +This command can take up to 7 min. +::: + +Next, copy the code for compiling a model on to the pod and run it: + +```bash timeout=180 +$ kubectl -n aiml cp ~/environment/eks-workshop/modules/aiml/inferentia/compiler/trace.py compiler:/ +$ kubectl -n aiml exec -it compiler -- python /trace.py + +.... +Compiler status PASS +INFO:Neuron:Number of arithmetic operators (post-compilation) before = 175, compiled = 175, percent compiled = 100.0% +INFO:Neuron:The neuron partitioner created 1 sub-graphs +INFO:Neuron:Neuron successfully compiled 1 sub-graphs, Total fused subgraphs = 1, Percent of model sub-graphs successfully compiled = 100.0% +INFO:Neuron:Compiled these operators (and operator counts) to Neuron: +INFO:Neuron: => aten::_convolution: 53 +INFO:Neuron: => aten::adaptive_avg_pool2d: 1 +INFO:Neuron: => aten::add_: 16 +INFO:Neuron: => aten::batch_norm: 53 +INFO:Neuron: => aten::flatten: 1 +INFO:Neuron: => aten::linear: 1 +INFO:Neuron: => aten::max_pool2d: 1 +INFO:Neuron: => aten::relu_: 49 + +``` + +Finally, upload the model to the S3 bucket that has been created for you. This will ensure we can use the model later in the lab. + +```bash +$ kubectl -n aiml exec -it compiler -- aws s3 cp ./resnet50_neuron.pt s3://$AIML_NEURON_BUCKET_NAME/ + +upload: ./resnet50_neuron.pt to s3://eksworkshop-inference20230511204343601500000001/resnet50_neuron.pt +``` diff --git a/website/docs/aiml/inferentia/index.md b/website/docs/aiml/inferentia/index.md new file mode 100644 index 000000000..0d199d55b --- /dev/null +++ b/website/docs/aiml/inferentia/index.md @@ -0,0 +1,40 @@ +--- +title: "Inference with AWS Inferentia" +sidebar_position: 10 +chapter: true +sidebar_custom_props: { "module": true } +--- + +:::tip Before you start +Prepare your environment for this section: + +```bash timeout=300 wait=30 +$ prepare-environment aiml/inferentia +``` + +This will make the following changes to your lab environment: + +- Installs Karpenter in the Amazon EKS cluster +- Creates an S3 Bucket to store results +- Creates an IAM Role for the Pods to use +- Installs the [AWS Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/dlc-then-eks-devflow.html) device plugin + +You can view the Terraform that applies these changes [here](https://github.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/tree/VAR::MANIFESTS_REF/manifests/modules/aiml/inferentia/.workshop/terraform). + +::: + +[AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/?nc1=h_ls) is the purpose-built accelerator designed to accelerate deep learning workloads. + +Inferentia has processing cores called Neuron Cores, which have high-speed access to models stored in on-chip memory. + +You can easily use the accelerator on EKS. The Neuron device plugin exposes Neuron cores and devices to Kubernetes as a resource. When your workloads require Neuron cores, the Kubernetes scheduler can assign the Inferentia node to the workloads. You can even provision the node automatically using Karpenter. + +This lab provides a tutorial on how to use Inferentia to accelerate deep learning inference workloads on EKS. +In this lab we will: + +1. Compile a ResNet-50 pre-trained model for use with AWS Inferentia +2. Upload this model to an S3 Bucket for later use +3. Create a Karpenter Provisioner to provision Inferentia EC2 instances +4. Launch an inference Pod that uses our previous model to run our inference against + +Let's get started. diff --git a/website/docs/aiml/inferentia/inference.md b/website/docs/aiml/inferentia/inference.md new file mode 100644 index 000000000..af169d52c --- /dev/null +++ b/website/docs/aiml/inferentia/inference.md @@ -0,0 +1,114 @@ +--- +title: "Run Inference on an AWS Inferentia Node using Amazon EKS" +sidebar_position: 30 +--- + +Now we can use the compiled model to run an inference workload on an AWS Inferentia node. + +### Install Device Plugin for AWS Inferentia + +In order for our DLC to use the Neuron cores they need to be exposed. The [Neuron device plugin Kubernetes manifest files](https://github.com/aws-neuron/aws-neuron-sdk/tree/master/src/k8) expose the Neuron cores to the DLC. These manifest files have been pre-installed into the EKS Cluster. + +When a Pod requires the exposed Neuron cores, the Kubernetes scheduler can provision an Inferentia node to schedule the Pod to. This is the Pod that we will schedule. Note that we have a resource requirement of `aws.amazon.com/neuron`. + +```file +manifests/modules/aiml/inferentia/inference/inference.yaml +``` + +### Set up a provisioner of Karpenter for launching a node which has the Inferentia chip + +The lab uses Karpenter to provision an Inferentia node. Karpenter can detect the pending pod which requires Neuron cores and launch an inf1 instance which has the required Neuron cores. + +:::tip +You can learn more about Karpenter in the [Karpenter module](../../autoscaling/compute/karpenter/index.md) that's provided in this workshop. +::: + +Karpenter has been installed in our EKS cluster, and runs as a deployment: + +```bash +$ kubectl get deployment -n karpenter +NAME READY UP-TO-DATE AVAILABLE AGE +karpenter 2/2 2 2 105s +``` + +The only setup that we will need to do is to update our EKS IAM mappings to allow Karpenter nodes to join the cluster: + +```bash +$ eksctl create iamidentitymapping --cluster $EKS_CLUSTER_NAME \ + --region=$AWS_REGION --arn $KARPENTER_NODE_ROLE \ + --group system:bootstrappers --group system:nodes \ + --username system:node:{{EC2PrivateDNSName}} +``` + +Karpenter requires a provisioner to provision nodes. This is the Karpenter provisioner that we will create: + +```file +manifests/modules/aiml/inferentia/provisioner/provisioner.yaml +``` + +Apply the provisioner manifest: + +```bash +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/provisioner/ +``` + +### Create a pod for inference + +Now we can deploy a Pod for inference: + +```bash +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/inference/ +``` + +Karpenter detects the pending pod which needs Neuron cores and launches an inf1 instance which has the Inferentia chip. Monitor the instance provisioning with the following command: + +```bash test=false +$ kubectl logs -f -n karpenter deploy/karpenter -c controller + +2022-10-28T08:24:42.704Z DEBUG controller.provisioning.cloudprovider Created launch template, Karpenter-eks-workshop-cluster-3507260904097783831 {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.125Z INFO controller.provisioning.cloudprovider Launched instance: i-09ddba6280017ae4d, hostname: ip-100-64-10-250.ap-northeast-1.compute.internal, type: inf1.xlarge, zone: ap-northeast-1a, capacityType: spot {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.136Z INFO controller.provisioning Created node with 1 pods requesting {"aws.amazon.com/neuron":"1","cpu":"125m","pods":"6"} from types inf1.xlarge, inf1.2xlarge, inf1.6xlarge, inf1.24xlarge {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.136Z INFO controller.provisioning Waiting for unschedulable pods {"commit": "37c8653"} +``` + +The inference pod should be scheduled on the node provisioned by Karpenter. Check if the Pod is in it's ready state: + +:::note +It can take up to 8 minutes to provision the node, add it to the EKS cluster, and start the pod. +::: + +```bash timeout=360 +$ kubectl -n aiml wait --for=condition=Ready --timeout=8m pod/inference +``` + +### Run an inference + +This is the code that we will be using to run inference using a Neuron core on Inferentia: + +```file +manifests/modules/aiml/inferentia/inference/inference.py +``` + +This Python code does the following tasks: + +1. It downloads and stores an image of a small kitten. +2. It fetches the labels for classifying the image. +3. It then imports this image and normalizes it into a tensor. +4. It loads our previously created model. +5. It runs the prediction on our small kitten image. +6. It gets the top 5 results from the prediction and prints these to the command-line. + +We copy this code to the Pod, download our previously uploaded model, and run the code: + +```bash +$ kubectl -n aiml cp ~/environment/eks-workshop/modules/aiml/inferentia/inference/inference.py inference:/ +$ kubectl -n aiml exec -it inference -- aws s3 cp s3://$AIML_NEURON_BUCKET_NAME/resnet50_neuron.pt ./ +$ kubectl -n aiml exec -it inference -- python /inference.py + +Top 5 labels: + ['tiger', 'lynx', 'tiger_cat', 'Egyptian_cat', 'tabby'] +``` + +As output we get the top 5 labels back. We are running the inference on an image of a small kitten using ResNet-50's pre-trained model, so these results are expected. As a possible next step to improve performance we could create our own data set of images and train our own model for our specific use case. This could improve our prediction results. + +This concludes this lab on using AWS Inferentia with Amazon EKS. diff --git a/website/docs/aiml/inferentia/wrapup.md b/website/docs/aiml/inferentia/wrapup.md new file mode 100644 index 000000000..8d70b2bd1 --- /dev/null +++ b/website/docs/aiml/inferentia/wrapup.md @@ -0,0 +1,14 @@ +--- +title: "Real World Implementation" +sidebar_position: 40 +--- + +In the previous sections we've seen how we can use Amazon EKS to build models for AWS Inferentia and deploy models on EKS using Inferentia nodes. In both these examples we've executed Python code inside our containers from our command-line. In a real world scenario we do not want to run these commands manually, but rather have the container execute the commands. + +For building the model we would want use the DLC container as our base image and add our Python code to it. We would then store this container image in our container repository like Amazon ECR. We would use a Kubernetes Job to run this container image on EKS and store the generated model to S3. + +![Build Model](./assets/CreateModel.png) + +For running inference against our model we would want to modify our code to allow other applications or users to retrieve the classification results from the model. This could be done by creating a REST API that we can call and responds with our classification results. We would run this application as a Kubernetes Deployment within our cluster using the AWS Inferentia resource requirement: `aws.amazon.com/neuron`. + +![Inference Model](./assets/Inference.png) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 7cde82a4e..1243e151e 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -31,7 +31,7 @@ const config = { onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', favicon: 'img/favicon.png', - noIndex: process.env.ENABLE_INDEX!=="1", + noIndex: process.env.ENABLE_INDEX !== "1", organizationName: 'aws-samples', projectName: 'eks-workshop-v2', @@ -134,6 +134,12 @@ const config = { position: 'left', label: 'Automation', }, + { + type: 'doc', + docId: 'aiml/index', + position: 'left', + label: 'AIML', + }, { href: 'https://github.com/aws-samples/eks-workshop-v2', position: 'right', diff --git a/website/sidebars.js b/website/sidebars.js index c80f8393c..3f432d0b5 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -14,13 +14,14 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure - introduction: [{type: 'autogenerated', dirName: 'introduction'}], - fundamentals: [{type: 'autogenerated', dirName: 'fundamentals'}], - security: [{type: 'autogenerated', dirName: 'security'}], - networking: [{type: 'autogenerated', dirName: 'networking'}], - autoscaling: [{type: 'autogenerated', dirName: 'autoscaling'}], + introduction: [{ type: 'autogenerated', dirName: 'introduction' }], + fundamentals: [{ type: 'autogenerated', dirName: 'fundamentals' }], + security: [{ type: 'autogenerated', dirName: 'security' }], + networking: [{ type: 'autogenerated', dirName: 'networking' }], + autoscaling: [{ type: 'autogenerated', dirName: 'autoscaling' }], observability: [{ type: 'autogenerated', dirName: 'observability' }], automation: [{ type: 'autogenerated', dirName: 'automation' }], + aiml: [{ type: 'autogenerated', dirName: 'aiml' }], }; module.exports = sidebars; From 4e04ca79ffe6aff54eebd34e001f1c8f0d2b75b2 Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Fri, 18 Aug 2023 12:19:22 -0700 Subject: [PATCH 2/3] Resolved pull request comments --- website/docs/aiml/inferentia/_category_.json | 2 +- website/docs/aiml/inferentia/inference.md | 28 +++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/website/docs/aiml/inferentia/_category_.json b/website/docs/aiml/inferentia/_category_.json index 38eabb7ef..e7e5cb29b 100644 --- a/website/docs/aiml/inferentia/_category_.json +++ b/website/docs/aiml/inferentia/_category_.json @@ -1,3 +1,3 @@ { - "collapsed": false + "collapsed": true } \ No newline at end of file diff --git a/website/docs/aiml/inferentia/inference.md b/website/docs/aiml/inferentia/inference.md index af169d52c..cfe123a7b 100644 --- a/website/docs/aiml/inferentia/inference.md +++ b/website/docs/aiml/inferentia/inference.md @@ -28,7 +28,7 @@ Karpenter has been installed in our EKS cluster, and runs as a deployment: ```bash $ kubectl get deployment -n karpenter NAME READY UP-TO-DATE AVAILABLE AGE -karpenter 2/2 2 2 105s +karpenter 1/1 1 1 5m52s ``` The only setup that we will need to do is to update our EKS IAM mappings to allow Karpenter nodes to join the cluster: @@ -81,6 +81,32 @@ It can take up to 8 minutes to provision the node, add it to the EKS cluster, an $ kubectl -n aiml wait --for=condition=Ready --timeout=8m pod/inference ``` +We can use the following command to get more details on the node that was provisioned to schedule our pod onto: + +```bash +$ kubectl get node -l karpenter.sh/provisioner-name=aiml -o jsonpath='{.items[0].status.capacity}' | jq . +``` + +This output shows the capacity this node has: + +```json +{ + "attachable-volumes-aws-ebs": "39", + "aws.amazon.com/neuron": "1", + "aws.amazon.com/neuroncore": "4", + "aws.amazon.com/neurondevice": "1", + "cpu": "4", + "ephemeral-storage": "104845292Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "7832960Ki", + "pods": "38", + "vpc.amazonaws.com/pod-eni": "38" +} +``` + +We can see that this node as a `aws.amazon.com/neuron` of 1. Karpenter provisioned this node for us as that's how many neuron the pod requested. + ### Run an inference This is the code that we will be using to run inference using a Neuron core on Inferentia: From 2e97b9be6090f1ecb313f7b826a06359f6a0c39e Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Fri, 18 Aug 2023 18:07:33 -0700 Subject: [PATCH 3/3] Missing label for clean up script --- manifests/modules/aiml/inferentia/provisioner/provisioner.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml b/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml index cc9bb6e50..a0f861d02 100644 --- a/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml +++ b/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml @@ -3,6 +3,8 @@ kind: Provisioner metadata: name: aiml spec: + labels: + type: karpenter requirements: - key: "karpenter.sh/capacity-type" operator: In