From 83522f094cd66af2be12d6e02a6dda2ae79873d9 Mon Sep 17 00:00:00 2001 From: Volosoft Agent <43883821+voloagent@users.noreply.github.com> Date: Mon, 8 Jun 2026 16:53:42 +0300 Subject: [PATCH] docs: add community article 2026-06-08-getting-started-with-the-abp-react-template [Community] Getting Started with the ABP React Template Community article from ABP.io AI Post Generator. **Folder:** `2026-06-08-getting-started-with-the-abp-react-template` **Author:** oyku.erman --- .../Post.md | 496 ++++++++++++++++++ .../cover.png | Bin 0 -> 2022861 bytes .../inline-1.png | Bin 0 -> 980035 bytes .../inline-2.png | Bin 0 -> 955049 bytes .../inline-3.png | Bin 0 -> 1087493 bytes .../inline-4.png | Bin 0 -> 1096727 bytes 6 files changed, 496 insertions(+) create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/Post.md create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/cover.png create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/inline-1.png create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/inline-2.png create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/inline-3.png create mode 100644 docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/inline-4.png diff --git a/docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/Post.md b/docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/Post.md new file mode 100644 index 0000000000..a63ce8c77c --- /dev/null +++ b/docs/en/Community-Articles/2026-06-08-getting-started-with-the-abp-react-template/Post.md @@ -0,0 +1,496 @@ +ABP has supported multiple UI approaches for a long time, but many teams building line-of-business apps have been waiting for a first-class React option that feels native to the framework instead of bolted on. That is exactly what the ABP React template brings. + +If you are already using ABP for application services, modules, authentication, multi-tenancy, and code generation, the React template gives you a modern frontend stack without forcing you to hand-wire the same infrastructure in every project. You get React + TypeScript, a sensible project structure, generated API clients, authentication, localization, permission-aware UI, and a prebuilt admin experience that matches how ABP applications are typically built. + +This article explains what the ABP React template is, how it is structured, what you get out of the box, where it fits well, and what to watch for before adopting it. + +## What is the ABP React template? + +The ABP React template is the React UI option in ABP Framework's modern template system. It is available through ABP Studio v3.0+ and through the CLI when you create a modern solution. + +Typical commands look like this: + +```bash +abp new MyCompany.MyApp --modern --ui-framework react +``` + +Depending on your architecture, ABP supports React in these template types: + +- Layered: `app --modern` +- Single-layer: `app-nolayers --modern` +- Microservice: `microservice --modern` + +A very important detail: React UI is part of the modern template system. If you create a classic ABP solution, React UI is not included. + +At the time of its introduction, the React UI arrived as a beta/preview in 10.4.0-rc.1, with general availability planned for ABP 10.4 stable. So if you are evaluating it, make sure your ABP version and tooling align with the current docs. + +## The tech stack behind the template + +ABP did not build the React template around random choices. The stack is opinionated, but in a practical way that fits business applications. + +### Core frontend stack + +The template uses: + +- React +- TypeScript +- Vite +- TanStack Router +- TanStack Query +- Tailwind CSS +- shadcn/ui +- Radix UI +- Zod +- React Hook Form +- Axios +- Vitest + +That combination matters because it covers the common pain points in enterprise React apps: + +- Routing is structured and type-friendly. +- Server state is handled properly instead of scattered across components. +- Forms and validation are consistent. +- UI components are source-owned, not black-box widgets. +- Build and local development are fast. + +### Why this stack makes sense for ABP apps + +ABP applications usually have: + +- many CRUD screens +- authenticated users +- role and permission checks +- localization +- backend-driven DTOs +- modular features +- admin pages +- multi-tenant concerns + +The React template maps well to that reality. It is not trying to be a blank React starter. It is trying to be a production-ready frontend foundation for ABP-based applications. + + + + + +## Project structure and template layout + +The structure depends on which ABP solution type you choose. + +### Layered and single-layer solutions + +In layered and single-layer templates, the React application lives under the solution root: + +```text +react/ +``` + +The Admin Console is embedded under the backend host and served from: + +```text +/admin-console/* +``` + +This setup is convenient when you want a unified application host and do not need to split the frontend into separate deployable apps. + +### Microservice solutions + +In the microservice template, the React application is placed under: + +```text +apps/react/ +``` + +The Admin Console is a separate app: + +```text +apps/react-admin-console/ +``` + +It is typically served through the Web Gateway using YARP. This is a better fit when your architecture already separates concerns across gateways and independently deployed services. + +### Common folders you will work with + +The frontend typically includes folders like these: + +- `components/` for layouts, reusable UI, and feature components +- `lib/` for auth, API setup, theme, and routing helpers +- `pages/` for page-level components +- `routes/` for route definitions +- `locales/` for translations + +This is a familiar structure for React teams, but it also reflects ABP conventions well enough that backend and frontend concerns stay aligned. + +## What you get out of the box + +The main value of the ABP React template is not that it uses React. Plenty of templates do that. The real value is that it wires React into ABP's application model. + + + + + +## Authentication and authorization + +Authentication is one of the first places where many custom React frontends get messy. The ABP React template handles this using OpenID Connect with Authorization Code flow and PKCE against the ABP Auth Server. + +That means you get a setup suitable for modern browser-based applications without having to build the auth plumbing from scratch. + +### What is included + +Out of the box, you get: + +- OIDC integration +- route protection +- auth-related helpers and hooks +- support for ABP's authorization model +- permission-aware navigation and UI + +Permission-aware UI is especially useful in real applications. Instead of hardcoding role checks everywhere, you can use ABP's permission system in the frontend so menus, buttons, and screens reflect what the current user is actually allowed to do. + +For example, a user without the right permission should not see management actions just because the page rendered successfully. + +### Why this matters in practice + +In many projects, teams secure the backend correctly but forget to make the frontend behave consistently. The result is confusing UX: + +- users see actions they cannot execute +- menus show modules they cannot access +- pages fail after navigation instead of being guarded earlier + +The ABP React template reduces that mismatch. + +## API integration without hand-written client boilerplate + +One of the most useful parts of the template is the generated API client approach. + +ABP can generate frontend API clients from OpenAPI definitions, so your React app consumes backend endpoints using generated contracts instead of duplicated DTO definitions or hand-written fetch code. + +### Why this is a big deal + +Without generated clients, frontend/backend integration often drifts over time: + +- DTOs change but frontend types do not +- query strings are built inconsistently +- error handling varies by developer +- service layers become repetitive + +With the ABP React template, Axios is already set up and typically used together with TanStack Query. That gives you a cleaner pattern for data fetching, caching, invalidation, and loading states. + +A simplified example looks like this: + +```tsx +import { useQuery } from '@tanstack/react-query'; +import { identityUserControllerGetList } from '@/client'; + +export function UsersPage() { + const query = useQuery({ + queryKey: ['users'], + queryFn: () => identityUserControllerGetList({ maxResultCount: 10, skipCount: 0 }), + }); + + if (query.isLoading) return
2q)BNab3ZdbZ!$mMA7%2kxbqu9`Fd!H9j)`agCCeLf#sC%PL zy|d2CguaI_ewn>C<9&~<#*{Yh%Y7Owos3xUn!fopdRX7BH+SFtP}+Xfjg%DV^|7UA-$s?$Ml=p%e$|3 93#_Ie*xZ--oaN;sX6u&>|NrlP}}%X;k2iY3tBG%@+&zh1fE_g}Ou(bPT< zmDWC;3Wv=vt$hUic%b?{D|pQeHX0G7wKs!H>!Fgn3&AVgmhV*yD_ijQZJawwQ5@|d zA8e%e1(i m>{!J}r)-T@e4{Dy{#JJqc0W2Lm=bF;I lOATki?^#n~@{%r4X@Z{iDBla2l=>Aqzf&&aCu!T#y!n2xOesNHJtlzag zWdphuj<{R0zYb(P)N|xrs7Wg(V(yYA*|h`pmmj&Dfj(98GT~8$l6a;2j4eqTdhI5j z9+U1TPu+cD%)-w54JE}XC$ >Mu3glEq%Ov-2j^>H1Zf zt0>>aYIhu-*d@^OiQl@t>E)cVCFa!O`+7}zKD^`HhtEz-t9AdgE0H^A<`~JqoA;jl zm{MQ8re*$v{_2z^C+8rlG<^HVvrj~=ui+i5_7Sv^gEKh~)2_~66<$@z9kAuzxJ|Na zwG(gT1e%vje8}9E*q-!ks^KTW{j;^`7Z2&T?Q1Y@aO7)W+Gxzq z4{vL8dK`2d>wxuiund~Ixr1-Y$$r*LtiH<8l|vXe81j vL;A3`0l;#(^9y) z Ou|p9<(-1NFZHQCx5Ju7RX42EfCM#xdmWi^0QqF^*~@_!yUzFr zha2^<+{x@_?b@MZtHr x$gDrF2Ag}o6-o? zL8UW3x5s`OZ0fqwe^qdGnXPHJy&?78Gb;|ftThimQFOI^k}{g(K!Ch(wcLp9yws z_C50Z3#S)#d3e9@mxwY2-iAAQNumF6m4o{Hcr-G3MS~ZgCxmaGUfbJq`PtZ#D|Nm* z!oInXw=E-W%Mz)=r0KDAc-hP7Zs~_(#V_te_Ds;e@J~J*X#QzX*_e5#%$Mv>^xntQ z`sJ>SzU!NCMssxe?H~9T&NiEtmUGg8+ MRUn;sHFUFo5p{xfdBE0XZ=42s1_mtyz=>n9hH ;APYuO0gr(gH7SF~6-Z8WL=AzUp$9L3i7XTX|&``th~aw@Sjd3EwY}_D*vZ z^%)hgHR}S49i2Mj#xUpR^UC>?esH&)dqyemJo(a2Y);kads*`S_%7#V=Bl0SSDzou z87`TNr`A7gtWOOO#{5KVIb2ZOV&9}@`_>8J51S8v8Y8?H*B-ZDq;34(o3dl3;nU&a zgNJ2K?Uh<`L^b@0yhHHnvLz3^D_TuMbS2HWb8^Y4%*siN-n*}HjUO+r*H+|o-Pvo0 zbRn|ynTHj5-{rL6wZptyS}| ZIw^jenCbNcpyYxb RnHlD?4-+hr5wd%e&Bq-*7$udEnMMC~5z) zL5w*U_O9Wr|E<}H*lxtri~HfzQKp%nC$OKbI2;l6=Tc2o+tNhKRe>?R_g@%^9QA$O z>& {=y&olzQRQ4`ruHXHT>Z%2Rr5qYiF*;d}Vz zW9$3fjvTnRUMfodq1_}?UP T~Lk7-`}>m_!mla_`5y3K4kKTeHgrR;uX;_ z!*{i|_oFk)Rap4-M h!rR-IBF6oV8^w?JYTCZ}dc61B=QjktA@B`> zZwP!t;2Q$p5cr0`Hw3;R@C|`)2z*1}8v@@D_=dnY1im5g4S{b6d_&+H0^bn$hQK!j zz9H}pfo}+WL*N?%-w^nQz&8Z`|AfFR4IDNK-Yh4%VfP`mUi6>84PLmd)l5{?##qj$ z0kgcvrv|$Hbe^?g!^0CF)4~gu_sUFN-RHPvL(jEVLV_8!UcdI(z~l+*80kySqr27J z-2TTR>&~v%qaWVCdsXWlEnwXJl+-Z&xok>l!)EmLrq|0xnlJSW|Jud$_}!;ttEu*3 z(}#~M=f3Ix=Kaj#ck8>}Za015o30C*Z4+M7Ed96$bE9()G7X0o&6?fab?o}B7k&D1 z-@JN8m{(PHzUv3O{!m9-pQdHcf4nqsqkZtof%V2bnV0nRZ0er5I~%O;P5Zp;Xz8#{ zg~Tq}MA1D?{U^H)%$nT|?p_WbjnC=24r-M-`l(#flzi(v{L C;k l|E zmH>knRwm^ih;6P?_vrx3d}NtB3rszJb>%H=ozXBvat?Gn3reU=NGr@S=EH8zaIAzf zP@^mp;AtZ)*yOZWxL#6PLS+mN{sqdCS}|%NEI*-QOa&Z)Dz5~sxxzk~6%pc7$4$xw z*sZ|{ mal`!=P z%S7iROAF&l2$f%$)yx1ZgFz#*9f;V_O|%#+Q5}PiUJXk`RgBr=&rro}OpC#@z`sWt z?obB2U_`btXU|7O;d8-06uhv7F%QQ{h&$(z#!X;Jm9e9yDim 9!n*v*Sa)*{mj%V3FxFyI-nx-l>?1WU+*8FDIPz($-HHEHx795(?`2tyRMYgU=$ z9SVbv8)4;C*sWCHaY#qvtr_JNbz_w&GX;175|#$+-pnu>KI5>X1d|Nn0S-Q(`o^@vbQHV_Wz6Kp(hGAQ zb%X<-br=jV5E2{4Q(@DyK}b!2$Bi)&mPiCH1Wy_b&v|572?4t#CV^;3xg1N2Avg)Z z{=in?vk>@LVT+1QN4ig{s9RVGORA_uL8@e!zgK1@3IuyI#0EGV32TO60dh!7$dAFs zgR2*l5V5)-HetZg${WOTVP)wkfEE%2&g+I7a*eRju!_;nmFcLwh8I|C>P`e&!-0t# zOdFXEbVKC>kdJo&k!SYLfI&Ak2vmM@Rz8UELR!+)MW1f2a(^uA_3m<6*>1<(sTs)h z3+5g_)vNb9@8O(Y-7mSFv=V9pV3yeCBey8XMA!xlFc3y{At`a+^uvzJ1(xRB#>{bD z+-GZ!Wix+RGHTiSGb1u2ZS5l$N*9kv?%cL*7PFj|!O5T{XVSW4mZa12%kw$33{<|f z)A;i7S!uM4iLi833L=@yNysXJjW5s29G}JI+#JlJ#eng$;HU-}v8?j)oJ3AWQdZ_% z?nK~9nU!i-C)jvkK2E|B6RnRKR?+~K2}?`nCJ8thuq60}7%Zg%-g{yL7Ojd^#hO?b zm096*l!1u934XuJ(GI>Z0hZDNmI+59V$@h}3N($2bhJphoO~IT$hujQ<$$GdV`C77 zKmZ7kLJVH(oOl!>p&}hw?r8Vaacf3a8a4qyyAQAmpf?DxQ<8TE9B?;a+M6Yar2LHO zhY=&*rvM%VrY!+%m=7bqZU{>{*nLvmKLPF486749HU}h~28_|i{8T`T?Mi5u77w|U z=Q#;!F&GH3@uT7C*cd!B{sgeQt~cOT>dnElCa@-P)~tmD!I;Ro(7j`w%nJB;;LPQ@ zX|SXcsv3sOPfokQiGi?=txk_&fUm)5O$v?a$)ksEIs(f`(xt=psgu)@{3_VKB=9gd z3H*i#tgs~F+5kci231W(APumrL}WavrBuQIYwbhLEknd=AuDOvq)J#5WLafG3wS~~ zJPXz$1?C@`u2T0grvZea!u%@M1ylt*Ke<^2h~UEU)C(|>XtGv9z!`yU%Cg`W`sf~6 zVC6aBpO{RB^-gvqq7YL} 0FR1YpIeRVY{vyf7UL@&h2MEX_Vtdf}1AYw8xJ zl)>A @^<2H#4}tVCv&Y!(1@9kB66|BRy_(=t$%fEEA^CF$BhFdEVT z*q2jS3A|$;3Yg}(BO__X`-8~%bQwv26`C2qAmhv9N>&_QdtoYKAE5V&y2&L#FMqG+ zIT^RG?V!TmK(xAXJKoZOXG-dVn1+B+%2sEM#-I?$!~{orLOaLYy(nD?JZFyyloKG8 zjGka@2d+E(LvsO_R-zEeX)s!0J0REVwVSJ&V3V>ck(F0ORY|Z+L+1Y?>3w6|IPW~q zr;62;s%~ VezqV1e$hOF(`tdK_bJFlF1 zTNzK{k2(Kp_AugSV;pg>are`SsHh? !0PD sk7S$U3AD&zQG!vFj+b-BUO8*TR`$$bBFmUX7J_V9<} zlDe3X6SkIPG5O78I=VH|9{twn*MBYSd;f5GOG;>AbLh?`eQziZ%w*9W@ AIFaGz>{_ZFLWf$yGuixl4L*t;V1>1^y z_kyi0H>iF?H(QOi`rV=FwIpgoy--v;tOLcQY#W;Lp|~pama|c@dj(U-)q}DqRt7Vg z$eUJY?Z={SIRl9UbCV-rxMO9jLK~KPid+i|{_Q_nw=YD2)p7*CMdc9HU;lMlNM@^P z=}B|B>Mr;B4Y~jMV`;nWg9ZRNd{$NuKEKfGOZ?@LJa;70zdvTSR$s1&;!a~)F7>*p z$|wet^||F*U!t~GCuZ2(@(M!p@`oD-+NMlp^$Nb#UvYYDO~2bP2Hjz$_{-;h0?_z} zVY!sykt6|fEYat+q1+eVzd1NxyS!UqUHJPV12FOW)NSki=hecyukAUem>ar 8VeFDl$WLkTxFK3c!yW8DY`JlJ<{e8DUp%%KNSutp_AKud1p;7Wd%FoM%Qb}Gm z#DQCIFKxYXvK8LG9NxNn=83E_d01?Tmi5*0gJRxzxEoiN1;L-+zqV=`_pI>l*F`ZA zU>V7DdX~gWYdhy_Ek!o8q3`&sTJYvcy?W-Yy;bwlR;WxehSpvK_)ttTNwH7?x)k31 z!(w~p!7Ixin5j2^<&M&`oL(r5D}Q(e5OepBfg^jC=%nPUcc^$ipD(eP{X*qQmT`=0 z?=_x2cJCju?O@19edU!ZJuzq9{!}ZNvN94SptYKiL+(rQL&LO`w9A2RXjPEXgKz0l z8KB RVq8&`^m4)7JJI5Qj(ntHyp18UiGEjdD${#DrY ;_qvEVJ8rl&UM7^O|;)!sI@ww;3K()eXRwM%!STFDOkOC!gx8;D%gJf zrqeHL!T$MNhX-pFOi8Z72+~^r)>+j^Yl`ob &RpwCN-3R|p #MXAcW%ADbz{+l0tw{+rXN;cto zm5O4Si{7uSjUqHG_gm#V|IteB^c^+d-rioyukS1$*^x-vYW~`DPdc`p`nXY-8%k#L z2M42rwAN@8is$NmDXFWS{oYc0KlksvG?cq>=x*`*!*DeFogYbs!CqrHDVEampXCnS zLMHw?^Cd%;e*8~{zu%MkiY3=>$kh?|n?L0(>(V0cbrAIXdwfuz|Kn>0djWqR%#XDv z|E=Gjw>2Z$4sLz0Rs@+OD*)w_i)|xQYX>W>J&5hCk!@C0%ZZk}Ae^zy8V@`<=t9~Z z4G3dQV8)dFn7HZ!PPZ`VB18mBBD*enU14OBZcJSZ6-1h`*;iB`TWNG)qttY*Y@-hh zkvyd`Xs&0_LHeH~4V5^9^eG32+zwLX4Vl{HDPx%rDQVLU;a>a0(T-Ki=0MgRg~Lut zM@xDqwITP90kD^JG3^1QTnWLVFcyB}+9{B!n3T1!-vnGj6Qd>WwFeIgI+Ej7qmr zVIlQ=%Yz#*i@l#JWomV0r?J`V@2ds`sx@z;YHjuupaS2yEJc#2iCX@Mqf(Qi8P%Cw z4T9|^`j4xJu jU(6U2b}AfY=5Xi%kKUW *}e_l4QG2f4ZVXZ=RIYBOiH3ns7o*#*}}hoSXWE zFBRS6`qu}aUjPgSP55C-q@z?i0ygVY)G!_bKc9qv8j}h4(i`@gNr2r%=BhHSRZ&v= z%GefKE#F!?ik5=r=6rgbxziKVhsCL>8 3mxSy*Ze&G!#C27lXYR^xkwJ%J(fMk)T1 zXj>61gh{z44KwXkdlr6nQupdkdZM-f(xDP mOKb6( zL>)qC^~03VrWH9znSE=T)@pp$muK_USk<$XjSUI%cIZ~^x<;}6Es%~q)>}KmyeCK@bs4{stJ3U|f z>1Rt-5v_5H33F)kq{E?~iubOig9g)+G8d3^gH$hOVg7KUPDN!RXZzOh;`;eljmr62 zUgAmvRzv%GS)Qs@(R ZL#I`sXQ#nJO%TSyvN2`smkA%fh+59TJQbuB2Pr~Zi2&UI%o_dT|$k}`^`KW zLd%F&McVe2aJN^`+IQKphhkiTnX;cnYiX)UsH&O%np~ay`d;Sivn bi3B+?%vJ2ktH2Ol9#BAb_x@<4=u=ebF3w9 z(rPVnUrT`F<}_YjfyH71?>p|bQ`V8Hds9?`M5M%fC!0kyX|Bf$)`utXz|xg>UwbBm zE>=Z&ajU;1+M++N@iF|bv{1Br@#-FCs?pN!sbF `N#*q~GF1+XLhj>~>`*95 zQPZkYG)m`A1tq^Z7xv#X4-a1d3*ODJ5+49VKNey|;hjTam$XJbMDt8 YbU51v6HJ-~aBy2s&KBQP8tj?=0)#{;Xt*L%$PrZ$Fmy#UYERs6s`N zGw})*s;)?)V=dfkD86AXwn4}J?KkYJuWc)3ZV(3oWOwr{+D?1z%v*+B4^kVNsAi7) zg$Kn=clq$$Z-myN*+Q6FmL3$@scC=DnnEU2UGR|`rbx&rQd!IU#Be`}tq(M}(z~bb zK2{!8U_lg>2JgO+)pH`)10=#b)=cSyQM4 IqbxRg`Z-Ehv}Cxbm>;0~IsVO3nx9p)TwU}P^Jr%n3(=re@s*=ixk|NjT)vYo zPttapUy%w|{=3x(IgbZP)1szn208$0K04Y+b^QK!WG|0LfVCok`tu02Y56;qsC#_y zFKC;rNAGyitcL1w|K MN6%1^qNhL&Crq*AMGtv zly~&P=z9l|#eOz27%nD6K@7S`(=eWx$+9N|^~qz0Xp$)TGts^%pU*Wq{gpt`Hj(06 z7wQgYqm!1`ed`m0s_JI-cG#?H9mMo1f^V5hFLHvNVjb;JpyE?ts8RHXzNM&aM`NT~ zm%e>@*OAu;Dc`W6-0)=4M+SRPtZnA9mXiq;H&^I&hO;a;7L~!W>D~Nbt=xNqH}LKq z>novxl?!Thv~%+;C#2 lXlk_v@W#^$2Nal&tC9VrO9;hv;uE!IJ-n`Mnj$=yu*VX!vYF<3;gZT0BhDn);7 zoZ&$lO#4oJXsF3bQ7x1*x#?_jastMxqP JAcp8L#s9?`TVIC7y|ScfbBTYgv_p# zAhuwK5u}ns0mI0b4(;?y)I&Tiv3@@1$ktb9)uWwYeq^?mTK&gbT@Hp7?p=>rR=1IV zrIe|PB2Ekcp*cHi=@;^yV4u(Rs%QKQofAnjD5Nu7w=X&h4`Qn2q%U7YIV@C0Cj;rf zhJVY!)Z;A8=n0jxcT$!My`&ZvN(bmw8|d0CXH=<_-1T06-qbJcHY{=NwPR?!`PgcE z{#mIc=L_14UzF15!!}R3%3?foZOAFTpz4cr(qxAZz;SputM@sI=km2&SaMIF@T^ZL z8(gEJ<}dBu`asdd+#&~+*^xq)&0W8Fd24v)8>~1Ev-ITQ4`*4?eAM|@bMHS-Ver<4 zZ9;bS&E9 ZKfO0 _g4kgVrkuZ3&z2W(jpFrw*tCK&e_L|2jda`x2Fgs%!Bg`NpJ%$&iM{e7yg^GDt ziuS%EFFMZ8mvorbgW2a@gimt|JI(h#3X}f4`TpC@t1tR%B{9+ZYmLYG%z$F>^f4gQ zpXkGlFK_n*P$F8XBBv>nsFe0s4zaf4#V7gF4U5w!v;Gs~-bvK8n$Q 3}9MeS>b-Jl8Fk%DH6`YBMD5aKuG8de2B&52e^m9%RG`#W3vW59N2 z+Zs-ymF1x(4x{G!WUSWjjNO6-1hAuKA;J-@&x!ogpEi P%`dw61mHn4L!j w}*> zK4*xCHwA0L$$Tj{%}{g7J+J=$FYHV%i cb$B}P+jJ9ggRO+mdT@ior$rjT07mfrs;|A z44O^}!GCx@#|}jLozb|sSCi@SI7*d!%}u^6nvoGX$!W~-+^hn2z+rR?Oq(?CUg&{O zgS`|5Ba@Un%~%#Jl`^5hacaZNuwJYxXklv0$*2iK_6mbl?3^|f8QL&W3$K3>N&T&P zH1)jU7JR^Ojw)r By%_c3E)d^oANb$qpH#6Fi=g(xM)TD&4+D$ZA+ zoRvuzB+@-8v^s3>v8{3ThF+rV>fY1G#%dtE%}F}r@Zp*=uxgEh4T{bk#T?t?8PpR4 z2~6Mcs6o>OumdMu9U-n@P9ZxUUR+x`a;>9@R;w?!ti@!np8{2kE9!8Zt_*ICK>OQJ zXVH;z@BiZU|JNz^)_S)e8)XztuU{seab))_y}u=ry>7hu(+kh0#?cDz9^tUd5h-2X zZMK7X5+mL;lNe2q=u?QpiL~5bx(WiEjKOc4F-=?_MNPfEuS&9aLuz&B)x&W#JU7K7 zVhehnf^Vwo*L93_1XWKL`9pQR$5Y`1T3mNydHU~yVbAL~Uwgb!-;{^i_4BVz)hsL} z55xW;q!(HPWp6qYJ1rs*9TzeT%W2hXWIZ^ dIC49JB>>E1O?Bqgf;&|Yqpj4HQ&zY)qb*~z{@~>A-){8h zWymH1tlSn}%yQY5LvfMI>WR}*!l<0M-$SX|aHk&vkNUY|wM0dz)z|+c|2)#v1x>WP zX&FKm&1Z(%?F;b|7CBy3KqXPasA=9uZn)Qw#^a4iv?ijiGP&AFP*$YUpt AuG3{u!t^fATG>3MQD%t*SC3>&ozh`>W zrw-Myak}YHi%uxEe>~bteW=yE>JJ{LlwSBkRVJ!Wc0?@mnA%Oe=3n1Keh{)0u>u@_ zyI^)g$KDA$7lsQDXE#N$w{-Wiapg0l1R&8+CRU<>;0yOoe1esbZEx@U(sDAx1AOqU zqiFk$KN+D+S3p 6Fv8mV) s_MPC3g#@3}>^tXkdeCT7OMglprX9yEluEj1 zRnzYri7TfRd9BhrUV2WGw7H?I8-lwin6397&bFHbYyjFA5_%3$igsn9uUd||tX0#0 zY7Iwjz4r&bp5% (G092keEPX8=l$f|a4gik z;`fo*b}T)wOYDZA`-Yt}#KOx+eamwO;=NuQQYJhUe#GwneL_UOf_YXD6+|k)YGZ2m zZk9euRb&!&$9u|?ebPu%+(52m>X&3)Z; Dzihnz0;!R7lvh|$ z2swpG=GtqqD?sE-*%+Ps-4nwx0jNYqQZ12_h!X4`Ua)N!3>5`IGt2uzw+}H@TB45d zmD}ocA1iIB4#qZEB5%C2`;9_I@`F`eE9k}3pQbA5G`idjdU+K|Mye1ca7tG~1v;jo z@vcZaH}7Vw8&Y*5D;u$j&Ct`*Ah24&1?NX(21sf33bG ixtMaww=;O;8MSLm1`AI=L|Z}r7=oc8zq#!y}q)rw!5? UY z1j}eiA&5DFmz& ZrH5r br4 z*qEL{aPZ=n`6!rbR*p}|BXM^tHMmpi!7NT$bNz+HPUUB~r9?-#00=~9$xFdnI++ zD 3!Q-!Bi^$cF^jf}_4IBKpfiKUpSTByt>G;v(GZhzX^wgA)Z#*W0@oY#I zs0hi{8~Q*{1AonUz$DWafFBaVXpJnxKcgMfrUm^P Bx-T zwadGmr5d(Nkh0Cb{#3Izj1)Nev&RVFEgdbCp5^7`4@s`D?ks}Nu@AUTQ0ClvQM0Z; z*+`TJ#70%v1%jUb67s_#w--stjIqJ4W;q?0KmjlD(qw_qTIu3k_1VA8T?;z^M3|5_ zREG-_p>{xjF%2^%4l3f7$+WGun&Aa8#l2`_qq Shl$M8s&b)YJl@ wms zZco%Z0N12e>nvelpbIpg>hu0deW7}XaV+ZlCqDjj_K={6X=3dQ77{{$PN Db~lxAb3KJu&>{bDDRmzjFJr*H6@@_WaCmK8vl)V>7+)e_>kU zj#~KT-7De*TG;9L{!`Gb#@s2B7ybX4 _%}XAk4! zv}FvWD!yo&Xewn)N>7lUC7XS7H9j6I>}3eyC;ekpf0gidKQ)Wlt(b*q>8n4ZZ-JnV zgrbiVm40XOqcD|oek{Ir9u(URBzH+EzN6>rMl2imt-M6%N^C`g;h%n6^sUzR?F;A* zLmSf#Vrn*y#=c=Hrnvjqi7spm@2M9YJIu6Zp2Teo*WCB7AqG($)2=ZApqfID7jwM3 zT1a~iy)@|c1r22q()6h2BZIEVg4a3(GPVnZreY(Tzb2v!iu05SSq(XVm|5qg9P)5c z<0@p=&c8ah{QluN^mB2DiXoDG>%dB8IE;Bxe8AYA^o$~|N0JQ7oI?vsY$(fF!m _*`hqk Z7mSyjvy# zdw{iy<}V*hi^>Z~DF_bPj}X0*rcM~xC{{8!>Uw7$zgNsku3jfqJ&}n6yWubm3<{MU zWb@9j1c3anU(U9S45zv#p`2u#gN?MQyyT|_+g8Icu_!KWy=iB8Tf^@iu>P$;xjMt^ zn5tVhKftxNYIreAj#&87SxgO`NWVm3{7`G@N96~_9EavA-9%p4d@AhD%M`H@y*bu% zlolRwBd0tpw%**iQkZ=2*<;n5P!N7bS{B8yNv{n#r+*3W3ypfzYb4WXoS?O_n62fY znIUEwaeRI>Fn<5cJG#SV|73VkSZB$!CSAaI7Pg;cUHN_Kj_5gVxN73b2<1a^uEs`8 zDnpBN6EMpYhpjaMFzY>%z+>E9G;wT6X(7W_F#Pbkno|zU+Im_J=Q$wR9T`j7>93ih zYL^Z;vt?49xcaMFYfVg0Abe%)ul3#_F_ep&pSCS*WrAVCgNy~dWKJ9x?#5*WHwkMQ zsL^Iu6f$iQtZLFrf?FVUxS$ezu5!7o=45Gd=56D_59Q!~Wfn~$lkjJJaXdHuY2lqM zwqJPr(}{}oR>eWrE7!TX{(Mgq*-7hu$&R)-*|noTIaC8^Go-4-ep3-Kj;;o|zrmie za5m_xSaRmc6RNKq2sN8) o!%|3qc!?gT s&9!EJ^co6g7HqWc@2yzXOg?uQH#r>t!QXQl1d5nXYs;P0o^?b~C)lc# zgYQ4MeWJt`QT)I0yEjjK^ml)mn$Jxq3oHy}bk!<+c;ZIu$shdvJUX9RH4ir`z29Cj zg5Y02Q|Lgekh(`gWRYpf$T7Wa)*ziJxuH@dNMwEzdI);{{KCWHrCnNdU?2gSG&wah zH>|i*TP1E2Txd(RT0S3I oFEV7a;US;RAJBH;bzmcA zXbsh{dF@WXPV(yXG`M+^E(yQ68SBmf+bkVTTAd~f6>StEGMGW`an4|>jCX{Wm2AP+ z Zd4+2}(JKHVtr7 zyqn?#Tm7MwoJ=ah)~2NMif)@Oj3XL8GpMlrCh?02Dle2N*aKqMMexk$7v# XjCSFX%S2{WycwsLus^v1Q?X(r;opa}w-$7!+O7H*XO$ z_Oi7szQxm*A4gfSv51C#zey_w7G=|T=as=W>Z>vWPA%0u2R)~Nzd#{CMVP9X15(ky zbvA0|`Qwqi$dllV-@8B%JzKy!35{46!;lqzr %<+V)H94Y$TCKMZNuVip>rUy~bWbtPmSQVQWcW5on(qUgu#!+{# z+x_ilO?|4eP#Q@4nss!(mW^A-_9qxvv2N`Vy&&UOing6huEVjG5B8e VM)Y?IFT*;-BYoDb96peOAH8HuEeH!A?o6UQvx_+ShP#*fF`|? z6S`!Yh&U?5WrzRBBIr%s{(U%zRP&OVEan*v9I04NZFt=Abexecb`*A%l;MWz@HyN# zgy224-aajM*X~>wfcw@kcJQ(|A~=o&KRnR<;ba3x2atO{$5N?JBatU&1odLY618F_ zAprntYO!rPI)~6|`vfoYwWFen(+24s(-E+OOEqDU&*?Rh?KeD%SeD>Z7S#wG;$^Mh zJ)w}Iz&s@jG5^jHL0(`d=GXq9NnW^Fh;?W;+cs2WrYtr>CX}X=@p!@^n+>hgQoY}A z(m8?#ydt@CQ}+FS6r#VFb%>OAqX}V147g^NZ{<$Z%w9n@hl-7`Brj0ur|En9m62^n zDeZI shVNTFXX6{9sa zPPYHiSvsn7t)+s$I dIiR$p)bKOkW}*U_?VWwCb?&Ob@6*<-xFxEDu=E zg`f@z;&z0Iqb4s7Jpg68-z5N}wnWW~e|ybb?qiqlkI+M1+Tc3P_usno^ZiVc=iNV+ zbYA%Kvy^sSA883+5p)(11$|FM3Y|-3grS%#Pu1zgyBE^-*ndyHv5&V+i;hT-FRo+p zUD*8cn=ens7pKwvcuP)q%abUDj-HHWetfpQ%9d|V$Akk3=dosouRq@U?b)oCICn$( z{?AusoG@-8>jlkeX^_fvmZs;j(nUzYbqJ?EnLOp)xGzsHqFCHmBcBKU>!f^XF;|^D zD;=DjLKjupc(%Eo9=qcDMMDmrdHWQX>wNiY)p=FUoL(AyTyinOED4jn-+Zc+I~?oU z>1UR5zu}l=qYKP*{;|4(*;o`34a#q=nGFdyxuax)H_Up~gm{e9fTk6kAU#=@8+Z{o zA41=}@{J U6lNmQDA@Fj15=aF9pL`u-#@I#m$%+Dv%&Uo z15H>W=HQ@lt@+;Xp3sc}Qh|UAK`E}nmgoYbBG6lJqgxUaL4Lio<@8pK2gTN{k!cMp z=YJk{EoVbsM jLmZzrK4lJ)d6C`N~642P;v zmxt!jju6P%Le0^u*|F+$6p7`|kk#dk5D(YP88MdW$*+CVC;Ach9VLL)U5ltt{SzWP zperEh)jw37$%4pS`u1UlG@B}+m`QP-wNGvXn}$6-#B(KgXY`smtG*TXmvZ%WnJl*5 zi`z|!L(8DyumP>V`dTsVN_5&b1kAo3dUOne;$e}?b6^;?KqoD *b|%?5fm1BZ!GAW zGBm4)xI2#IX^*DQyzcbCfd}fcw1I1_wf1AfQY^AQs%|J*Nq2oDu)&iPlb#USyx${= zbGA~v*I15oep;CPXerlP JKKRhQ;=0p+JbXk@G3TB-F{gw(tHOqBG<)QfzaEeUT`B%e!GNf*9;{lBM|75Xua^&_>3%!PeZkx#yM&B0tvfldhT($!j z#&yaamWlM@(u9p0;XHZ=)O`OW;X(jad$`lzLj&(xZ2~{KQbMeJkyb$<5DjXVcjq}M z>$!s8cFvLE6&0HB${aTBFr_8ZkdDnq;%3wZJ4!hSo}X$Z$Koe~?o1IYU@zh|WcBC1 zsF2iLzW*p$xkV^o*-3{PE7w@oJB_SUeCJ4mD<0aVUbvTXe-?HK?{P`Eo)nR^+DPy+ ziAXGC3BTuC(|Nf-L_h9KoY=I|j7*w$lc>7EkSN8vTt%d$XZ-SRa&-RZ#>o?JoSaLh zfBYFp)~bsf;*hpDm((y-fjnof!5ef33xhaCb*vFgP*A+P`+mQHlCjth8J6H69qFO+ zBowkk?3QQ}tQASX>?ows3F>x+>2j+>_W?;WT7OJTOavRQ<~VlbCfv$8e7(|B7Tl)@ z1UAhR*Z)14s`wPDj7ynTQxDgQ6~ceK#HZhW=5O(UR1^%$`zxg)o<)nD|43vTEzu@0 z`YYNPo^%lV7JEF`oSbcyN^V=hpnUzx*;6F5Qpi_FK5@zZzhJG8Y~z3Er43a2N^fZ4 zMQqO22(Uc$o9BqWlrFA6cX08!s|ck%Ow;-FiJSlYPkrgHu6qAjGaO&n{cldxj}VSJ zLp~t)q8PniNuNl!V=?AO_!h3=GeiT}{4yY2ow`o1yB#F$gRwwxm-H6hC!i>rwhWHB zO;oc?p28JL`RtV5Q7{)cN_<6}>}Vt7bvk?7Lnf2BNbH0N5gUz6cG)3T%b|e2TOuYm zaSPGD+X~jesRAJnlz(}*pIV5TiKw}W0*z-)%t_C7n#7&Jl1KnF_OT9$prK5-yz8Xj zm_|$d{4nltuF=3T<&Y^57lwZ~>+e_TLY*%bdqc#$^}(t-jk^7n)+%b;hFKj=z!#E- z{9Uk3r?*d4aWE6=b4n5E&Y}vr1Uym%yJE}z>px>LVz+0|wf&~#)-fI>N<9d$p;X{i zdC`^{n=z!HirD5ETyRK_WU N~*DoBf^6M<{|?Ue&B@<+01YRTa6Pb-R;J-jLSx= zL25!$Cq3B!B25Gq{Mph7+hFLDY&kwy5nfy3rmMa~R=Q0~L?e)LE$$F$OeN}-Z8e{M zJJ?$y{Te?V
vS7 zPDVPcQWJl#8F+CLt1o2{4<&GU2aZGleGUgdCC**mT18~^fZj|7;cubY(F*@WFBC5g z7l}cx(`zKe$j2z=S6EW?%3=it7~>GWA=Re4_uJ39^R^55YZ+14Y#ST!cYc>ej&(Fl z$3|OBgOE8Id7aZ@z~v<>&*BiYY0yA %V>qD3m4YYN~ zPJj5>ikJPB>P NOajG=3Bk;T_x0^4bWs$Du1CU^NtAAb-g6&jJIgfSi2wfDr3+ zM-Ef;Ptm%oC)o?@RBnRZnQ0}$EXCVCaXlhZ6gMi!*j}-~r1%G)Sv3*&-=R3c?Kej% zk!ToaY5=RKkj$Fbf+g~vjVbY14_*WXq_YeHSa$~ZBZ)WXvSzI7kikQ{;&&l@4Vr_K z5uC}Qmpp|We|=%_D0G$2)e2~ODF0(dHFycr7!yQX(FO9lB@z?+9i0{b>%X2Qk9+n7 zlnppy&P%AyiD#CMCiXcZd(8x)wNma;`@xh0N^jh->e=dtXWLvw3&^A~gk$W+jZ=fY z`3fyWg6=eAj6Oy-JC^o<1SG7HaIH&Q|HN^n292yZir$O1yZqINZPaR#@$JvU*Q8$I z-m9$Checiqr^=KBw)68fd-ti_Va6#|AXdpA-}Z+WhyHehkVHk>)RH@mf6@Vj$6@D@ zbYm539f$o_YI2f0;%1wtPCWD2pxPGKK_*Y#H;23DUrkKPG%KQ?B3F!As~*;g^Tq5D z6hBV!`S;6LK5Ly#$kSc(H=q5>lm2_LZui~Cm1v)ObH{#?{gv~~Yx#dV5>poZ{gV8| zOWK8#=2r7`li>KJFF5#EN0W1#vlN-1#-|iC?bcm4JI&ROGNd PO(VS6F8%0iVls*THwODiv;@;Hjqv1I zaMbxxMyGatV))y%M$v9b0^ctHU^9m{Jz9qmyj3cei)9k3c}Yw1Y+EyKXC6`Avlu6E zv~ceq#L%Q?LT4^TJj$iO(1Wxqu)31Hq)Rkc!T{0DVP@Um-V<2%&ZJ_edmUOxy}9a{ zw})rml4_i9a4W3BH%{tAI4Y0AjV5wvR=;+txN>RB5)uiGDN#6&pw ea@vqQCGAwI{_Dfp!((X2G3r&FxE@WdvBdGz=Ses4yQr4M0w0}>B(^5_7 zK&fdF=aSq|2`x2jFsq5@Kvz_obDu1 MvXPMU+bhv108J+v;K zE{SobmKWE*=K}q$ <{A%n zIqa(3ZFK7_;E>qCa&1!s%Ez1~d;5>ccsu9ce}2&IHk{EpX_i46%{eZBz@glMIf#kQ zxSnPr(~&I5Z#n(sZwYAR2@?uDi0r9A;-oz06L-TQNvNH*16uEK|CcTib>NnZJHk+( zphA)Z)`z?16fV4c7!`;ynA-vqw17O##JEkFs6c;Z#&(zE%mL8(#$&!Wr&zA_+KKCQ z-g)b#0RUd7MFV9^4R1g5{DJCZ(70;Oum4A^f+epXl2FMlLem*y)*>I9gXBiTi=jnU zL?C~BmtJ8h4t CnzE3`No8-)H)>7|mJjF0{#@Zp0T zbY}XlL2N52hlR=m1nOI*R+q0_r9IUu?1-ZsaOpj8EwM(JWpz@?;InRmgPDR>h_-K@ zrFp&=2K#ZJ1;&}Si0W+J*f#@-uHamMNMe~%!-SRKSe?ePs{Jm?Fv~mhA{Z**Xt+p@ z_%H(|6v>e~V=^?S8_(%Mc%}hIDiMx9Ed|@#43S$c)1YG%@qg6T{J118D)ejB^$y)x z5{-Vj>KHGsE?U@S$%=UW$4X}IsbCKr1i}|{2hd@|#_8=?xq1-7D2V~kZ9-$OlHM%~ z+tzBh6*U3)_|;Cp@UdKM>9B?8tdG0oORMxPJ{2^RGNHUhJPlgg HmlJLRc~=J2Nak~HzCef!-endtr?;I^1@%vyL$vS} zKUl$E#(Wv2Rf8-%hXh)uTXnujAK1B^gk;k7+G{EyWd^~S!5jap9bt_|YpzKci$6Um zRwMcyS-nHKkU{k=^qLH3IrBd;3FU1^ocL{coNyvY5NY*zMiI}k|ELZ*w%0RDEzsPR zE7*EH;Yj9OYnu)#>xlz4x__KFdUo#l%HX@t;h}S=_LAue+LlXON-eM7*dj-ow!inJ zwP@+f)2FQJlkd%bt2xA5|MU6X|NP=#E-`~D?SB*+11np6Op5NGRMKT>H(GOuAz0{X zYY%>+ZQHc?Xa#kh?sL5w?a{yBm_NOp6N!I5l7D*T!9PAZJeU2egI)jlKUb`U5`xyK z>^sj7I{TS=bwJ$PICs3YM}u}g*SR&qIYP=_YD<=aw%9?1mN(BcTWuqb`DT;x;j5F= zHtYvKBsNW|ig3Q!N~v#Qa7#&sOW2&%NA?a8&xBiV9MaJ=I&hc00_B%ZmcCSQvmL;B z4vIo-J=Y=Ri9gh8isdZ(Yd`9*5c}3VEbbtnv2zuZ!>!jhQBM@Qy?UuK%C+BzrL}IA z%-S8d&oKmKEfEB@u`n3PDYf>NhK#x5NM?dTcKOJ?cE`K++S|7Y=E4Yxzw~JWSpu5U z&<#@oQDh1B?)1A7(lh!vIl0dtqu-eG9t}0yNs&r|DNQF6x_U?gLBmC*m{CT|B9O2HhF@U%$CzxS_WLXNY!8n- zFE*M?gl=+Y0yTd)$y9ps?j|;`!P7Z#-*q=wU4ie)r=X%p~ zc+>zk>H*13o5?(MO#l?IV{PUNbZN%Igt;*fl EdKO!3fIIbyWh-Fm1t`rd@Km zapGvo9L+X1Sv;l!3Yws!D9;PdItMH=C^IDfxcn>ih^K-)4}VK)?G$->AIMC1b_Nf! z#uN>Fr8rQ>{^(2Xt!Df929e3wNre~iTwwGQ_4~3KM+qlI7U&^u{P+l)$XNoQ&V0xE z`Us}PeXwi_Iam^A!;ohbI}W<%z5hIgYsAAVmt>{n0=DRp6FvW%T9tE@Sup0|ScT=P zd3_yvG;+yT@$m0L+p_tBdE`zf$h! I14?y!$T(rFGOys^#EIs6Gm&q3*SNbQtxZ1D>Y52B@~hJ&V8C`MZa`Y@*i2w&UV z+ZL#?sFhTgWophl`Vl?Mbp*W>8#UXRp&7_Fx4ME^qRp>88M_FsX9JrrayGAL`ZKo9 zpbG9Mn+;-X#LXhq QBFy*{1T8%0|d^c+2M98or=STMPQ8OGeU zX*R#}9BcNdoYAe?uf#;m{_dSJ>d{2_Ax_NslkoX^dzI-B(b|~cV3x6Pw1^S*;ibiM z+*Vp$n)Rk-x1bhcD>-w>o}StVkLpt=W%TxUtQ)tM??+7ruZ{6*@7v`NV}?#hW`_~a zudt8X^g^X*v`W0>(k^LEPu^Eq@H{TWDAm)m3>c#)wtjkb9IcgJKe5YbSv1`&9(aPh z*rPD;O7h&bJDrcw-aG)Nqtd&x>F=%i_p#@vW5&{aV2lwlC**B;%)dFy0yRb#tGgEy za`rh^`X^UnLUMf^?O*w9^W=$7nN{X`{$1th%v)Vv&HS_PnZ}3OwESV{71wSqmFAr% z3$d+5zma#N`~8!Q?83_HdB5^YZV?KLkNx)NPaXd9vsCmQ>4iHqdt}!C&sVL>yOsP_ ze6Z3V=X&)gdfsdQfE?jn-}%?ix*y8;8wbKA4G!JNGCMiiCxj00#~or;5=T$2KvxTB z%VcP4Un0UK612}~5_GD>3_sSVU;@Gf)LY{ZM7T+;Ftqp&`eGdlWROyl$Of>h;t^jA zJBTfQh9pD2XnQ?7I%yOSd Srn8u5(+)`m%g3v z11hMCkog_KM1@r{G3AmgQ0J#w8-0^;gNY68?uCo%zy52rPblU{5P#XZ{i$Am?hF6; zNT^8SB&>m#Q&;ZL*mL_abc|6s!&n|Jh7f^6ZVzpjsz=Pp#J0z#-hmz+?%*CQaX5=- ztpv!NnQBw5H7v=_3vq7y5w&B?aig=fHrXLL$rw^4!+_65VqqXckHNsl&?<<8@t~2) zho*-WMkaWDL@+jpy_L#fb*GWkM99SD3<(;hfLiG2p;SdXKM%>Hw~jQtzUh((iaQXw zLKT$~EbmK@-DUFT=}EdmK$kQcLO0QeIiNzg*95IuB9sz?y>5t;_i7Hf;s4^o=%VG3 zo-HA`s+(GeZ2jvMRcH7SV__xjl?4tuyw^u 409n*G?GZWv- zAxWvn5QUT;{ZYrcEVvj3jmwZ cdAEBNU)CJAt!VF$3_}Wnv3+% zBTj#g6;v`C2GY*cZ};~}GUpLcnWS9Yxrs17!Xr+UNMgmyX=fDOPAtYjOyl>Lf6mgW z{fw!89*ZUzqT~aQ)1|nnqHXo7Sw}NA QQzD=Wae$n`lAzcYG z_tkQ*v&RS{yVsGFjo!-DQ$2pb`gofOyZfcga?OPEhDv%NQ&~U5)YUjKm5i=350U{w zw4V??b(J0E01rndfd$;7wMKT*SH3|f9~mqEk %MT=LQ5=d=#Jq`$TfHh-H3|qV z`H(aQJ>2VMSnuQ~tV_?si 6y3c1ZA=HVu)vt* zk{O6vo&qua-WTpx+_+Y|5m%cyYL70k?)wC_$U-4jm;qWVLF@vp&eaUZj;vdK;5E*Z z Bc;cD)|6A3_S6AGAupL&~&n(sO?~CXhrlo~5y}-XBn8|78=xckjq&cK3 zy?@8Z742Bh`c6d*I3Gzp!^Nx@g<9$b(qj9?N{hkjSe^81V47r!W=8W*5+0UMTZ!)- zhc#hfem4kN%NG;9>;Kt&=4Z#f0{rku-3lwqThA Udr_YJEE2Y<8i2F0EU%prYIphkn{ep(PQCj))v`?sOTal>>g^GCB>HXPHUb>$0 zj&WqS@0Dw)vt0AYlb5&liQhotNEQ$(VC>Bg=|Uj3v%(1uZfo~pFzBn{@{}%P zj3hu}0 ?{srG-eJ5!Ge>uLma-dct=beiC}Ku%wFQ7w>?$epjXi*u zbVPh@-Ytx1jN;)%w3;(gsmb9*dn8RXo)dpF4%ewTTha^maGIGeKQ5C_!UD-`7Kv1W zHjq$wXqiKIS|)o4i&!Ao%}k)?)NEkjkf|oK|ECa}Cb|yjU!u7f1d4yf@}cF3mXGAb zznx(AhQW-_5iSEJkH}WdEMs!7bC}`CEYq0fVZ@*Z2L!O#zTn|h#Dof_NyJ_8f(HHU zBI&GY8D@~-#n7D )eV ^I`HNHLY-$DK)J*tRbfHqM`%?(&$> pg)F?)~nyr;oA1+ObD4f}nFrw?^1e2`Y3k zgK1;C?d^V-p|7!HKsPqoLw4g{{OH#GKw&8);<@x#m`5X|2j0@Y7LSW-E=w{yCeEd@ z8m0>|*!!f a8e1GZ<}9=7M!bu2iE^|D44e2~ z!er8p?fku#-2@t^)dWfvMi^4UCfieHwgCH?(@iE3F=#3_NrC*wlElvDm9DW(xQxUB zww^vb$C;G1p8nJ@r;K3{4w7qz)xf7PLn|J#7Of4sbW_s~n8g|ESCNxDx6Znh^f($6 z(_>bDw8m;g?b?s#xlH;=n+TKy-e}qGN*Dzv52G$~loog+^9YjLtM2rm>=V9FhdUn2 zz5cVImYpupkib8tz@(RP*{nQ)N?(YRw{taA3#yce_Q L|8nJg)(bVK`YBse}x(43Jy-*MBV@shvGk3U6)^c`ur$XZ_jt z)Xr*nak$GgriqKn1o+N&Fok26VNL;E?9F3x{|1RoFv5v6YaGMw|A&jiU;g74Zo7Fy z>PyR_bNHNgqsbc+M{!4*6s>FxFUG@wC>x;U3Mr*MtFsa^_JCZknXTI84OSc6l6yRz za<5;Uo;*=Wl+P8;eG(QvS~=Y9fdp8uNuAp9+t0QR{_*hyGW|eG(usKbzW<)>{N<82 zT^KX`;mgk?eep)KHs^V#8rgrk%A*-pUO(wyI?3-g3Ex^D{>7<(-HC&tNtLHYXTWY{ z@LTKe0F5=TBsKoNG<)L|bOik0>C(c^C?zSl`N5K87HB-2%e7YTos{?&D;jy44LRM3 zDKWn)J)%hE97a!6*eG!yA%aZ&ua)=){}e_+ZKVil5S5I_3*X7;FiQT#4S@2!6P{5z z^HxF4F%b^zoqm?i0ET4|RU@jr;B&yvs~|31g-Fr?HCP15nnl$hyY~*N*Mr#_k=w79 zWkZmQWO|}rCqgS#NXjsbgSJr%MAl!$q|*OClHNDAjq}d;eP%eG4kfBf(h4sXHpNgJ z`OjMNq3D3uTN~(zakylpdR^zBQKA5MSkm#)J>*5QDU9SzF$_mryCD}86UfoV&L(G_ z_#E7ALCFR;x%a*p@p=iVb{oJxFQ{-Y(0YRw1>6OKzQ~JWf%|#9ZBRG1#XmF8JkRg< z`~FL;30bx}o_+eA^^gjyPC~tjNgnEs(2P^mJjjzNb38s+XZC>Jma-XZ-^DS*<}bmz z0|~|g)K(LiaT`9J`z*VK9lbik?9_*gjO&1wjjFg|PIO=^A3xZm?g V z?H2P}lp?rDP%10==T-#$)|v*=&0%P1s31TsX6m2K;t >1aBz z6(epI^DK5pqqs%YrY5T>8B$C(n2|C!CnRaOjzO1j h U+s)o$D pV-}D$s*l%*m+16mxQR0U(?##!v6#k#5-5C^6Cd%zJ{5$*zN|dAQ3MD}E zgGs^EAp6@)2@>=^^Ha;#)b`dJhw#MAfV1GiT+*OTb{E8Qa#T>jUD8h3P?S8&_z<;u zPdUmsAPZPP1`qzTr(ODC$8&L4@BmT_WM0GA$%Ck; %!#9Gn zIQKqQ4Z&1bfm7R GLZ3lNeI{2_n zm$Cy*$6I<51@}5rvU=JmD+n0s3u5}Zxdy5T^^VUFOeq`lkOoV$d(3fYOR){ObAeU+ z*%I`)gJS^`b6zfSuih4b#tkrhsr=|LAt^XHq-g#ynnQ2W-l72;9zDRo)}(Hcw&m?g zVv)=Uh-X`TNC1Hm{*p~)RCu`Q%~n&A0czdPN0~_l5iWs*!Tq6-TYR_=vtSte{Gm~z zcYo$&a8EC#Y-8WFKE`}DC>jv60+Quhe%7&)g+(s59t>x5|MFKuokb-^QDTfpDmdaP z9&6b*+ZFC=OY2m_lHJsT7mjB`0CXzl!;a+I+AvxR>NT`)i(pl^*MLk-Y?D7-dij;Z z4vhqown`X~Z9y=g-yJLqI6}7~x~6-Ih2rus9d@C;xr?~>x0{u7m%|gVfC~oVmVc!G z`@VBfZjcfu!{+m-53^Z)r;yZk<455*?)LCLGW;JL(b%P|1DH$Py!_wj9O{^U&4SM{ z)K-SyToc{G%}L|15 K?nU=P&0_zpUFrA0Njq zOrUYxQheb0D|b-<={ApnKE>N~tuiooBq}mlv5m|bf{@#)*&Eb~RP;^$TVi(~=O|jKh^ek7@-)S;RA2^CfeUQi+hVa`mKqFS>1nqw2#=nH*>Jb!>!6^Re{lLi zXn{CYV^frzrz#>I1Ow1467BB1OMNEKl3tB{U$VO>P8(e?h+Ye&1%8*VGK(Z6kj>I& zwZl$#os6_H{U($27hn0iV o^Of( z2tWy0Oc3fT gwl!W!7Lb8_ma(#4=0l|@iBKyb zwW1nt@NsdUkp^EQ)9*nJ+MWlJo##Mvy=s$+uN7JD$J^F#ZVRr5lr!p3(p2QHBJOW^ z>z~3$VIB=19czEkdMT{IbONDw9m`}YYi5ohLNRx)x?)!EW=$ro{0@~eJ{f#6C<&Mj zQG0Mp;5E*`-=gj1G=PFu#krB5X$T(z^-V(#dtp1)62Rd6udJ2r&IDIiM{%~G60Jq4 zJ3kz_U9KK}wqP3Uc-U-XsF$Iugn|vFi(D YxKr z&@;_rwg8sf+uGsU(Bpi0JAycWc$T3-D9)j~?9fm}+?f%6$5==qyeU^DLL^Z$`W8e@ ztYe_W4Y@qw?jb$t_qOIKuqVho+U=zW*=3--)9*)+61QdVsiX4x49T6Slx?Sqvvys1 zZ4=lbQAWIn<=P1Qc7{{ns1hEeGXx+cga#UCdk!Fg!A|>^CtmDxbb+ZXA`82vgpotR z; KdZ E|WCy)1x!ReRjSLzqWe6*V^J;`#FF+X#%d?CiOWI(t ztqx8<|H- <-wQPCG^5bxG3@?)S^{*~XRF9gSde_^K(B(m zA8>&K1CU;huf?ei3`ZX;zN+Hoz^G4i(k~3JOvI^#Xj wSGM8Zf(s31Mx?bAZFp=Y7&&J(QIMU&X0|sf(!_M z4bf3N!8TW2(R!>~$ZH|B!Q2JO9Bn9&AnZh}+j(y2@@40}s8_i@SRF8CiDT5wRreis zDo%O?SB2q+d|=&YZXmTh$dN|b>{;BIq~e?=ceHx*Izt=oK8#HG#$eIokF+YkO3_k) zN1K+p${s@6+$bKtaS&W=XBm2giMNvi4~#rW#{CKJ`pbvlT{!7WpUg~+UjEIGzA%#@ zxF$F!Kit^5uBS%oDTt{F7_B3Hh0+dhvgnOg3(Bm=^$}eKyF9klOP?sCq_S!|H@C#a zx9pcUe!mnrTNa~!@4>Efs#acM-&J}CeTL;${lr}H$Snw0^gK8PUtbMg{LWKj 3bL+#0g>0S1KxPJ%-A^J<71kJ|4<5L{nyBGa>TkqJ;sjza{dE$VdPp9U}iwplnj zBTs7dfgAp_3N|i91R+d6>&TXcY q)VfSCb9RXoj{KI@8LXUUb*^2$S32 zH!zD)DM_lJ*CK(g2`8etZVnILH?n9oT60w^G%ceJ@&zo=#Ri}<1^a#;d&V5qHa~`( zd*IGcUA@iBN@6JhPQb-`xdPt907?|)6wL8%PS77rg g*oIyr}4b{jB<0Q-Cgv@ZrONsGw#JV&fngXeN W-dnbitr@ZPP0z}6tmeS^%l4uM8syTU;1&V{Hc zW-)=FrmJIElB&ZarsxG4!kJoaNHYehmtg)5iD(=g2!aYlrxrCK_ Mk3gavhKfxfWh{{RI_D3|&Cdumx`%Au>m@rV}3n6 75)BsjRA@nfxfke+xnh(DjWMnAqXE5rJ()4876xPVGY{%N~05h4@GW||j zG>}mc;4&9%E_9mSoaDn*7m+)FcQAw>!7Qm-6f!LKamD1JpS=lUQ1Pth6Wf@IB^7ct zR+#N414w?;1R&Yd*lCEVMRm`t9`joE& P)2Q zr{eU_!)eRk&_sq<8W;o7%!c ZF!s^&!$Tc?(V9{s3yKU8P++N^*7^PQlU3eBO zC$Fl_U~#(UpKYIkh!3J=tD8+&kWnJeSUY`86P@Oa@)2;0s85`n_Os`IeTI55d}HA) zS3{+L;)w&c1Zh>@KC`o2DAb=C!&~pXi^f5$UHj$}D2A}Tn~xw8QQPa*N7(;WZ9)gZ zQ-Wv(l;rI3gG7C;DTsbtC8_1`keL%+rH&1O8RffPHFrY;VFcR5#OuXzSR8%NOUr ze&^FAVc-%M$``1qsX-IXCZ3#DilGF^%I7GF5>lHG^kcmVYJVQRK9<&j!Y MY}9N&AAA7lM{8 zZJBD+6UcKJ-KQYfgge(9=Jpc|l?qNH{5kRk=HZaG82G2Ny8tJ{EQGf#vvWAU-TA^V zZd=UchiD-%*=4qlm;*-CS$a0V7un6KbvS8$0r?vvU66 l%JKHJY6O z3Bps5CPuwV3Ee6lb_PX``@mh>vQ`A1XmC(MCKXl(oZa)C5#PN |RZVMx3X!qB zh4>gv8&_BIav(- B7*kJkgIZW8mD9t#DQ_tzB~@mt35+24 zHPjPSvg) ?()HbEA_?7yJ1ettJ>)cLqrl6P9sI&Uf;psZjzA SKNKgi(6qkoQ%My`IjB}SdV^-8 z=B?H0IJ&?84K}aY$1GQ!mJPJ0r_uN+1+!Y^LZ}+7VD_qVV<(ouK1EnkUWGZ(I}14n zB{XYG+ElQ1f{f%bg`uiL4 YQvSL-{t@1<;Z4)=T0Yv9GnQuRJ|=#2Q!-bA_l zjt+`BxP)1?RTP`Xt6ywbUoI6lr=lkxoEN|M3iM@cd7IcL4twp_UU{y7DG*Dz`Cz*G zlRp0R`&K=}Bs9^$svCc3{nbN5InBUQk?s287kVmu`JVRbb7uFMjaOfa=Eo3!wIcb> z1Kn<4`ht7*0+vxibKi`iqf{JEXb2nF*D+F($<_@dkhuPsOmzgDC=LO|_2BWeD{$MG zrxXYOPg)ItI@0edI`kDufKuU)kr~-TO;SUAO~eg@whiDQ5t@eY!COUKAa1rs_$cWk z>_n**F3;FO;Wf%k$eijHJ2LA$qMqfsw=_89gZ&HU%|B%p2=Jf;%tuZ3n~U4qnbE z>g=ewht{YPRvYtrP(b|WL%0j5PwI-F&%~&Sxia{lF=vMfxpr;CLlaEdmW?Q`FV7M* z3yw&k11mU3K^3Y^%-=VU<+h &;k^OaDDufOrj3lB4x$@$UV HUByl-tSc9{-uy8im=*~x2i0Q}hX!fQO&(JNq=P~+1L(BC z2%i0-QGNf|qo-L82RNp%k?V*Xm|#*=7Ju=yT1iD9WHW_ttP6`3lxC*Pn17P`ut)YL z$nng+h^YHGdPrBDxk)vBq|&IQ-7QNoiFkUClt8S850!kCK_NxHw3K#y_W=YaqTS;% zw-56}@XY}ZfH`JDGR>yDHG|y#AHu)BojW`J)si|I {10@H;PHYw9@@n+i++!|DM?`v#(EDM;X~T;?(otXf&M}# zRwhFrO0fNI_QP O+n4Eru!y7qa4R-Lp}Uc z$s#Xgu#G?|Dt*tSM@c;C*(%C|`3@)#6b$yjl27$A%rE01kM8~&M8VPN!zo7XlI+CR zmF@+v9Md?(3XCqsLD)21iD1V}J^-x*uvL!chK(O#@;dDjbU>uz>nh1E@s#<1u_am> zLtK0*!Z-x|&&x@iRXvITj>_d-!pDCGeiro>a271zyP%HC;YbiH6WSlgI5_UvRQ(!A zSAzpK&hYQ8yBw|BAs&9{#$N5lWl0(uCHFl7M}k~q r>(QixJe)G`5P7Aagk2buc2oFRk26L?0 z-yEAtM+-WNF=csBP)`1ggC*Kuz0u}6HSxcoZeDQli6hQvx^hz~+4<#oD%=-T3%OmQ zNjHSwVXFn9fLDl5Of0#7vi6Y->l>aWG*~l_O?xPxhGG2M+TK&i$}?sWv_>4g7JiQ7 z{3^%&Ofep=Oxp_uk^iWBf~>c3 RjYh$x#Q-oj6haIZ#3PJC<}5GZiK z+>crWHljy|?c)FPo737^ntbR6){S$Yq|SUHGDCe@GlPp`YuA5TI5l}THO-%)L$u>( z3i05gqEFtK`^c @Y1C2Jq2@T7N_Q@#SVsKs(DYcMJ^% zFy;t-EvM2$(h2c_ios4Bp|^{d!WgI_N~RxbEErNYMtzL;0;hJ|X0FVZ8_7cJtKgH1 zqnPXGkxKf7C|j&FloP|#C_JE8@eCP^Es-&l;R2R8f+UYrZufgxNGup^rln8_D=Q=- zKqvu+0k+_(k3(ikbk}zvI>=EI(TPxH(B!}s=qb|e%bTYbp#TdwM8;6d^rbyDQ+Wov zO{J>P-}zahw ds*i0h9YEA6&0tNyFsy`+vHPk@@CnjA^yb;cP{SF18 zB%>vzejYkmLNJ=F@w_pD0tsVEUIt+x*XytgRF6M4N`C@c^)N~@sn);(eKep^A$Cco zYSQ5)s-h0RURI8H`BQaC9XF$Gs&)%mlxroakeG&JpBdvGe_rujKyhv8*aqKDrnZ#j zfE@X|%s@q8w8y$Gmx({--q9*G@PQjZV=7|QARVS*?wR0;yl(>O5?2Ez8^RPiBPRJf zddP$!M8Vpep*)0XCK+{vL0jxyU?Sj3(sj>eAER?6%ChUP%8`9y1S^SDaQN0mUfpeP zt*ca@w`A?uWQ(D&OUf*t?g6U1{>zMYpm9*NBV?ra7!0}M%S=M0@!1x>Iy9&v^_wNk zRT$>4v&CWPexwi15+lU4@4{PtT3To%n2swOzBH+qs7yaPJpFbAq1#a18w|~ADA$`w z_jZ`j$UcAr5iRCuBRr6<(I7R@2vLxU?$+Zyik4x5J7~(%KvvvR9ABU4%?U`~3LHGv zyT1X|0vAC@@mw3X`V-&9e6eVZKoDCC@Z*_r*#Io^uJX_8YY{lS5`ARqo^{$_SPnwZ z^w6|-&)Tx`OOj|_kW?!;T>OAM*0F)4=aDg75x$N~FPXyO9&bjx-O9M`_GTaoNq+{p z*3!X(j{O6S+U`@7_S^>&7e?7-^l1lG*uc=#3X-qPL>J(1hBi}PaUK?q3CUoWX6E3M zQcYTegDst!fhc6u( cNYN{jCT5% z>sV{GAc?{oO~;E29+9>K1lE|Jj6~k0EyPbjXP<}%cx4uOm3kt}M1A(k(v77uVBo*r z#sx8pPlh`OjKU^C!-l)%1D0EQAYfo(^Cv+1@TKc->_~vQt?fQ{lc^F7XhS*G!bypX zjUgRfC7=jIl->j$2kkAo8*10_lGH~zjO<~Xk{+bvxW|2s 5P+G`1dWb~1B{Ui`( MPX6KPtHEOZ`X-2Gul>$tX)?;Ki$h>d`noOY$I$&c z)fd F!N^=_d#e`>Ap$&VHE?iC@|X}XW^lxfBR!S)Ccy?xi*7Tku0N2I)0Gj z|LYSbu|!l8?Rl}Wg_s0$faK5HThI)WP_zX3kqtqZ#lyOmcd76IOoD+7q#=sxDfHv# zF8^-&1N4;4ZcOwg*dcuV4%rP _D1gDn^(Bz73;=U?*^mC-8d2qKa^?zF #BE72s?vIx14{Z!lqh&Tk$L34cg zqNS}Sg5wA~@c5e9ALL;=y4BQ`V@)C?ax#$;b`XC(4YE!B^B {Sk zhsR$$*~+Q@Aul2?O>Wmr7f!!jL-s*gr<6&6LIls}?}!Q*JqhZ&rw=EwC$ORqf2{Ah zK2$zg_Jj(K#N04*LhZcH<;R1tPJX;@Z_5}xujNB%q^t*uu=}wOX-qIN2)Ovv^`+T( z6LoQDFt#6~y)?af4p*!^2^_+BeDUFrCHf)0eA-pf=xBo@ZyZ8f&Ktr&1H>C)LDn~> z7@K;{Ts)=VAk_4Jd15M =uPJ~ zU3xA`3t-i&gi~c1QqfGtebCZe6b}+QJ^U|3?g-=n5oV4Gc}v>jHE^_MUCLb8V8XNA zO2|y-L_faBbu8WaBSr?Kfc#@PAH95cX}T1C4!d&hzO10q4}Z*C09DE+($rjmY<4WD zFpZFjzD-!s6f+4gEHWo8o-uD)L#mdG3V2R&2@^@ms20nRu%0!g#k%bZX?fU?h-RUm zqsrjvm9F~8%9s^~GUo;KcR2ZGu2)C!=5G19e3bT#jZuXeR~*Fp`47Qcig-x;y$COZ zbXwN&=kb2u4Ld0YAChKEc@EMEV;iYjeZlO4ad8{K(8BOcSs~1DJ@o2lp7c$eKJ=!N z#Cz1N@BmG9TRa35<1|w|g{Fk4vT!CL=WcS5>0U52OcR=6Olg;%Yzq&!pAhNNcbSbt zjju;?qW1(jU`{(&!EQYd=SqE1zjE<}@Mw~^k@G^4Nel7-zP}4g2Lvxxf8!9!+4VOL zVQ|Oqv1j2Yr#K88#xP&8%1{MaV{8|SiP|Mb2F(u@dBIBb9o&>068q1%k86!%6`B|m z0xr`S{2{RMn=Om-mD{yNF%4ji9dVzxe4hKYRzTX=nv85Kj4q3)v+I@j!#IZbasvQ@ zSI-EOjj}tFEZy)Or8CX+pO_!dSeszX`mJplHcYrI+_1v*7JXT^kRJmX>*pa0{NZwU zB8=2rk>mNI+s !w|`c=Hkd@#>oe4`tEy~ znPs08yDMNcyA5L$u4a-vXzIx8eA^Vix@ z^f4*>#)Kz6UO;*#ESSn&G!o?i8*{)2nWRZ#)dnBSLlEOdu*_#TUJfJoRT!y@aTGb( zcykV?y-$};zcXhEnTkO8ub#rQNT4vs{x>;`1D$D+T&v_w=A3p0Hflg;0x?b!t6EpU zj0SvC3}v9BF^%3vqq5I%j1=#htP3M_6I9{IJGT`qYtf2PoW;N`(gjDPaUe?s;Mcwa zbA|rKr0isGMm qR`}aK%At4lGlYr7(aNx@@K$@X4e} z9g>Sg$!EIBw~&2CIS|FkK{`s*swwFj(W4=OalrQ!PB5_|bQ=Loo@Pgfr2u0vg}2=b z;LQYYsrV36Wgg^?9^A* LjG^tybLG p-OjA)Cv>N{|qch23)x8pdmni&Z +Jw`&}!kw#~Fl`OhBeX zWmSARVC&)fP?I!2{&+>;)eiK?Xcy93T}k0fTg-r=!KV$gV?r$AKrxD!)U11*5k;Nm zTrL>ud8;vj*EnRU)rLX_9k2`becWeayO2WgwPPF+IPX#rw!^!tkOYeVf$YK2E3ZJk z;-QcWD#82lR5Li?E?wml%6sp;{@wkvAhTRk?9zav0z43On0Y$#RJS&3d2^K%eR@)R z%qrax9S&ohA6c0wS^(VydLveDiWFJcS1o9CI|5sh#}X^590)60d=;dndSD1ukaiw6 z#_nyIFBtFAJrLVUx*1L31076;4^(Dsf#h$2sAB0sIsTZMM$1-_UiEB8jjh%M-od%f zgbCUi0cciKd=czd-V&!GOde(%oZS%~4SL4}$r3gCj)d7#e6}KPi9g8VK6Po@+cBs1 z&2;ZT+oc?>A$MzWLAX|d)e-v&1T27LE@>i=A*mS3*oYaev~c7&d_bjMgUVS;OI{_i z8D{dFDmvZegmV~^7`YsSWgF`hd?FX5j4rgy-ZF@nX )&z!Zffy1Wi5$dxK{| zN@*lGS{S;2xOWFm=B1bVJ$sNh8WZs;vGj#tg^YSzt?H@k+1^wA)!F)WJofy-YO;Fj zV}XhtT_^7muU>qzd*Vc-H?Ll~ryqLI;|&YdS&ZiJdKLIn {C &L#48*_869&@lfE;rvd@R9suI=* z{|Uvi>la+GWd-B|FhXT^XP^F0$-7RQyqJe$Qj}!V!L-x6@e0(eb_Mt+DT1?QXmR5x zn?sNve)2}FD3(=YPZ*7Eg#O72U~b?*abX&hEDL-H88Jh!P-P(qD~pF`M350AbrHPx z#K6>ydRGbO{)4$QioOsJz XLu64}iU>nC%Y_rVFalo!GxK+@S 4P-h6Y8}d-~=uYdu&}qhJc$9(9!)q zXcUGNB1vGaXyQnhiwjcK7~{}0V${$VeZjq8&tnWYRy~HBmqVwbFxnSiUE@ z7;7eN!YkQ+=Z$8%UvI zpnUHZV3h%mj5TJ#MF>VgsWzIvY3(1WAS#pjP0{=?di7{7{tiZ0&qju5>&nFrhzBM5 z4fJPfI+)RmZshBOCa@DzGtscpS3X;E+uWP*du=+2%=0AhF1i&F$n$PVyDw922rfiX zRzfE>x&k75hzKBR#58Hrmd)IqE)i;{9)=x(nP7 eFLirZsiuRUC{}dd =`b;1rJ!2mQhB2B-~W^q5yj1HBayI$c^V1}!VeRYjH zGpX`+?Z{cF`!P#!RuKYe;5H3Q;J-3J7V%L!W@7cYoUA^}S5yM(n$6X@p|vYSV+lA- zbjo1FK&>mCe?}9fu&64t^tw2LRA+ eNTBtyUVu zBvoD%`MiU_r~(Y7a#&(q7EA{1oV18AeTVXMO<={JQAbX_X?JY%zUOsMOk1SXmX8X2 zu+a%7*N`6KMZG-}w6lmUdmo2;)tkmq+q`jm?LX5wUAy$(#ej6xqN-4>gfR%29A5s> zTe)Zna%1+V=7a1JsB{Xnv&Er%MRbFuYpW?Tf(TfE$GkD4xi$sIT1a{#Sg04(CM#wG zL?@^eP$EWF$6