From 2c1fe7c77c5d5ab28875aa86c9a8ef3b4ffdb254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= <20689156+shortcuts@users.noreply.github.com> Date: Wed, 2 Feb 2022 10:39:44 +0100 Subject: [PATCH] feat(noResults): allow providing URL to report missing results (#1289) --- packages/docsearch-react/src/DocSearch.tsx | 1 + .../docsearch-react/src/DocSearchModal.tsx | 2 + .../docsearch-react/src/NoResultsScreen.tsx | 31 ++--- packages/docsearch-react/src/ScreenState.tsx | 1 + .../src/__tests__/api.test.tsx | 112 ++++++++++++++---- packages/website/docs/api.mdx | 43 ++++++- .../static/img/assets/noResultsScreen.png | Bin 0 -> 42411 bytes 7 files changed, 149 insertions(+), 41 deletions(-) create mode 100644 packages/website/static/img/assets/noResultsScreen.png diff --git a/packages/docsearch-react/src/DocSearch.tsx b/packages/docsearch-react/src/DocSearch.tsx index b2759fe4..26cded14 100644 --- a/packages/docsearch-react/src/DocSearch.tsx +++ b/packages/docsearch-react/src/DocSearch.tsx @@ -42,6 +42,7 @@ export interface DocSearchProps { initialQuery?: string; navigator?: AutocompleteOptions['navigator']; translations?: DocSearchTranslations; + getMissingResultsUrl?: ({ query: string }) => string; } export function DocSearch(props: DocSearchProps) { diff --git a/packages/docsearch-react/src/DocSearchModal.tsx b/packages/docsearch-react/src/DocSearchModal.tsx index f3911833..d4cdc421 100644 --- a/packages/docsearch-react/src/DocSearchModal.tsx +++ b/packages/docsearch-react/src/DocSearchModal.tsx @@ -50,6 +50,7 @@ export function DocSearchModal({ disableUserPersonalization = false, initialQuery: initialQueryFromProp = '', translations = {}, + getMissingResultsUrl, }: DocSearchModalProps) { const { footer: footerTranslations, @@ -429,6 +430,7 @@ export function DocSearchModal({ favoriteSearches={favoriteSearches} inputRef={inputRef} translations={screenStateTranslations} + getMissingResultsUrl={getMissingResultsUrl} onItemClick={(item) => { saveRecentSearch(item); onClose(); diff --git a/packages/docsearch-react/src/NoResultsScreen.tsx b/packages/docsearch-react/src/NoResultsScreen.tsx index 19b8bd40..0c4fa9a1 100644 --- a/packages/docsearch-react/src/NoResultsScreen.tsx +++ b/packages/docsearch-react/src/NoResultsScreen.tsx @@ -7,8 +7,8 @@ import type { InternalDocSearchHit } from './types'; export type NoResultsScreenTranslations = Partial<{ noResultsText: string; suggestedQueryText: string; - openIssueText: string; - openIssueLinkText: string; + reportMissingResultsText: string; + reportMissingResultsLinkText: string; }>; type NoResultsScreenProps = Omit< @@ -25,8 +25,8 @@ export function NoResultsScreen({ const { noResultsText = 'No results for', suggestedQueryText = 'Try searching for', - openIssueText = 'Believe this query should return results?', - openIssueLinkText = 'Let us know', + reportMissingResultsText = 'Believe this query should return results?', + reportMissingResultsLinkText = 'Let us know.', } = translations; const searchSuggestions: string[] | undefined = props.state.context .searchSuggestions as string[]; @@ -68,17 +68,18 @@ export function NoResultsScreen({ )} -

- {`${openIssueText} `} - - {openIssueLinkText} - - . -

+ {props.getMissingResultsUrl && ( +

+ {`${reportMissingResultsText} `} + + {reportMissingResultsLinkText} + +

+ )} ); } diff --git a/packages/docsearch-react/src/ScreenState.tsx b/packages/docsearch-react/src/ScreenState.tsx index be2e8bf8..6696ef80 100644 --- a/packages/docsearch-react/src/ScreenState.tsx +++ b/packages/docsearch-react/src/ScreenState.tsx @@ -39,6 +39,7 @@ export interface ScreenStateProps disableUserPersonalization: boolean; resultsFooterComponent: DocSearchProps['resultsFooterComponent']; translations: ScreenStateTranslations; + getMissingResultsUrl?: DocSearchProps['getMissingResultsUrl']; } export const ScreenState = React.memo( diff --git a/packages/docsearch-react/src/__tests__/api.test.tsx b/packages/docsearch-react/src/__tests__/api.test.tsx index 3b9dea95..efd23979 100644 --- a/packages/docsearch-react/src/__tests__/api.test.tsx +++ b/packages/docsearch-react/src/__tests__/api.test.tsx @@ -16,6 +16,27 @@ function DocSearch(props: Partial) { return ; } +// mock empty response +function noResultSearch(_queries: any, _requestOptions?: any): Promise { + return new Promise((resolve) => { + resolve({ + results: [ + { + hits: [], + hitsPerPage: 0, + nbHits: 0, + nbPages: 0, + page: 0, + processingTimeMS: 0, + exhaustiveNbHits: true, + params: '', + query: '', + }, + ], + }); + }); +} + describe('api', () => { beforeEach(() => { document.body.innerHTML = ''; @@ -71,40 +92,23 @@ describe('api', () => { it('overrides the default DocSearchModal noResultsScreen text', async () => { render( { return { ...searchClient, - search: () => { - return new Promise((resolve) => { - resolve({ - results: [ - { - hits: [], - hitsPerPage: 0, - nbHits: 0, - nbPages: 0, - page: 0, - processingTimeMS: 0, - exhaustiveNbHits: true, - params: '', - query: '', - }, - ], - }); - }); - }, + search: noResultSearch, }; }} translations={{ modal: { noResultsScreen: { noResultsText: 'Pas de résultats pour', - openIssueText: 'Ouvrez une issue sur docsearch-configs', - openIssueLinkText: 'Lien du repo', + reportMissingResultsText: + 'Ouvrez une issue sur docsearch-configs', + reportMissingResultsLinkText: 'Lien du repo', }, }, }} + getMissingResultsUrl={() => 'algolia.com'} /> ); @@ -190,4 +194,68 @@ describe('api', () => { expect(screen.getByText('Selectionner')).toBeInTheDocument(); }); }); + + describe('getMissingResultsUrl', () => { + it('does not render the link to the repository by default', async () => { + render( + { + return { + ...searchClient, + search: noResultSearch, + }; + }} + /> + ); + + await act(async () => { + await waitFor(() => { + fireEvent.click(document.querySelector('.DocSearch-Button')); + }); + + fireEvent.input(document.querySelector('.DocSearch-Input'), { + target: { value: 'q' }, + }); + }); + + expect(screen.getByText(/No results for/)).toBeInTheDocument(); + expect( + document.querySelector('.DocSearch-Help a') + ).not.toBeInTheDocument(); + }); + + it('render the link to the repository', async () => { + render( + { + return { + ...searchClient, + search: noResultSearch, + }; + }} + getMissingResultsUrl={({ query }) => + `https://github.com/algolia/docsearch/issues/new?title=${query}` + } + /> + ); + + await act(async () => { + await waitFor(() => { + fireEvent.click(document.querySelector('.DocSearch-Button')); + }); + + fireEvent.input(document.querySelector('.DocSearch-Input'), { + target: { value: 'q' }, + }); + }); + + expect(screen.getByText(/No results for/)).toBeInTheDocument(); + + const link = document.querySelector('.DocSearch-Help a'); + expect(link).toBeInTheDocument(); + expect(link.getAttribute('href')).toBe( + 'https://github.com/algolia/docsearch/issues/new?title=q' + ); + }); + }); }); diff --git a/packages/website/docs/api.mdx b/packages/website/docs/api.mdx index 6f270aa4..117ddf26 100644 --- a/packages/website/docs/api.mdx +++ b/packages/website/docs/api.mdx @@ -4,6 +4,7 @@ title: API Reference import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import useBaseUrl from '@docusaurus/useBaseUrl'; :::info @@ -160,8 +161,8 @@ const translations: DocSearchTranslations = { noResultsScreen: { noResultsText: 'No results for', suggestedQueryText: 'Try searching for', - openIssueText: 'Believe this query should return results?', - openIssueLinkText: 'Let us know', + reportMissingResultsText: 'Believe this query should return results?', + reportMissingResultsLinkText: 'Let us know.', }, }, }; @@ -170,6 +171,23 @@ const translations: DocSearchTranslations = { +## `getMissingResultsUrl` + +> `type: ({ query: string }) => string` | **optional** + +> example: ({ query }) => `https://github.com/algolia/docsearch/issues/new?title=${query}` + +Function to return the URL of your documentation repository. + +When provided, an informative message wrapped with your link will be displayed on no results searches. The default text can be changed using the [translations](#translations) property. + +
+ No results screen with informative message +
+ @@ -299,8 +317,8 @@ const translations: DocSearchTranslations = { noResultsScreen: { noResultsText: 'No results for', suggestedQueryText: 'Try searching for', - openIssueText: 'Believe this query should return results?', - openIssueLinkText: 'Let us know', + reportMissingResultsText: 'Believe this query should return results?', + reportMissingResultsLinkText: 'Let us know.', }, }, }; @@ -309,6 +327,23 @@ const translations: DocSearchTranslations = { +## `getMissingResultsUrl` + +> `type: ({ query: string }) => string` | **optional** + +> example: ({ query }) => `https://github.com/algolia/docsearch/issues/new?title=${query}` + +Function to return the URL of your documentation repository. + +When provided, an informative message wrapped with your link will be displayed on no results searches. The default text can be changed using the [translations](#translations) property. + +
+ No results screen with informative message +
+
diff --git a/packages/website/static/img/assets/noResultsScreen.png b/packages/website/static/img/assets/noResultsScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..dbed5d4ccaef2f3c83d3a4ddd446be6980bb1a47 GIT binary patch literal 42411 zcmeGEWmH_x6E=zhfe=Ut9)i2W;I2V~yE_DTcZc8-Tmu1uyE}y7?ry=|UC$=M?|<(7 z@~*qqJ)aJ1&oJ!i>aMP?s;+*jHbK&o!f>z{uwYOi))}evh#HLcR?wQ|3pFDenZYl?vLYxVVkac~E0E4XiaZ2^fUVa_{80 zV3$Qjs3l*HdU~-^*QMwBd3)1Abt{5s$id1uyv)83q-T2VvEeze`!#{LOZt>Xcun|0 zvb~sL@iOyX3l&I552f)kOC=&Ywj*L5*F;!8wpKc_f{}d%e`bZhtUmfd#6%D#&|#1! zm#SBMh)l)`^0REdkD+Gy*KnUN-d_-3yddkx&*xbJ3n0#X56xG|8|wW-_oeg^J|7j% zR=~c^n>TmvujrW4J)s)kzkho``H@Q0kHhO2Q_MQ44AF0(Db?HCe)jP(?I-&CX(sgd z51NmUkCzv~8wik7b4RPyGA7szj+RHg{Lv*KS4Dkg5d#ScFbd%FD=_c?V=zeI6FBg~ z0A65VFQPt!K?A>$fR{iz#J_JLSkhno`wZUn)bN8GzlaF%TTahLU*E#k$kI+^Lj)b@ zYSLI<*-lwPoL$e-9HjHfQdb}3WN!6D0>lZWq0Bt_}zjX`22L6 zh5+w(6FXBb0%ZwlJbp_XeLQ9mEr^zY8x{`_kJILp0lTb#&|h-kFD?QjJ3A|O8X8AO zN01`}$kN7;hK`MmjfR$e(1u*%@0};63%L zqibnz$3;N!G|=OZ>lI z{w3t3d7AnENaBx}f8Pb<%ni#)^Sox~ zDF*?HryR@P9%75g9D9v=JN+=Jnd-bt@xVtmMtKSe6AAYBT8s3W+NH5bf#^IK1yxi9 z;|R}@?(^MOpIkVyTdy`svYSRMptXp2L4N#m;dMc#yu%FO>Uc+gQ`FYQJ-IvWJV7fo zKkd^=Zo;TV#x82|A}B}%y^uw50Si7E?tdudAgYziD7UP?@%gu}KoAk29w9Z1vP9r|q$ zoREg7#ZrR&a#k=VJSR>>%29^(&x+wpHP`W68T79x@KJ);BciK%op1h4w-ud8x>%h& zhDJ-3TmN_}V_mu7AZ>gkD+r6w!c0f*1I1TY2Q>M7`M8XYH;b&ANzaqEg)p(p(=@$( z>!;j#*)sPllkYK6naRm}NIHcyWKft5A3j?{KCj!%Q|qJ=x_o{4F{8k+xdP~VGf_pM zSPF$VI6Vws{;gRgFDn9>R`Hv8km)Uk+E}2PC^ZXtU_^xQ7lN|NS-+pDYww@M{>EGO zyC@z$-G~wT1mg|eO6P^l7vz8P0E6+v1Q#2h)?vz95xSShK~~1H82jb)OiYmKW%3@` zHrk+0M1ftlRp6g`@j~bb<0*_QQ?_EO-QcosKp)UPElJBU3+TxMDxNi9@lN)p@nEp+P_X7c~Rw&V< zneDHn2bryT65^~pXThJW8gg~z^LJ(ANX$+3wbr*)BV-z*E;;-k33c_KRVm0#RMa~|`2Y0x2(h%v?{j@_XSamSW;Wei)PHN~LC9+zy>#%Z>z{mx zA}JwISnArkI-eEeIt;8s!lQu@3;ubY#jm92*I;omqyP1^#sW}X?}uA)K9kiE09{kM znTh{fxX7g^sv3^Ag*U8oxpkHOxzPu z0-OATz>aYs$r9!(ji>kz$_P}x_24>Jx!fgxr)U2rz5FUg#+u>kTA*-2J17DCK4Z8% z2(u_T+qriBG*80?ofqf6+Qmhr`uL%K4V$~_{Lv1!LdfGCV zaW4=Cr(DE{rWndciO986eY0V>o4HADWhVNc1F}N;$PmpcCS|LsA!AY|qjS0)nBdjc z$p(qaMq$8>g`*d2_)%R_6B^r<69EBDneE;4il?YR7z)f! z(=nTr!4T(l%Us5GuDFdiSbG}J5JU%8((|)*vQkfjsS>w7~3`n-DLq#T) zX#2X*V7(*HnLU)?-G$=`;SM@5q*7O@+GP8!SKdDS+Gh!LDzI3nOc6YEL|PJ80EhMS zYSEy>K@r(qiHgsPbL&WESSGXUE^1PvuQh>k_eS`=e>KMeyAFRk)tFm9&U=mVXbS^E@!4N?<{&S#n7J z<c0S!){T{D%oLW)xi_+>-n+V@tE?(vh=uDk)QNWSaGqh*PY;aReLT(OP8J3)qx93NyPn zHl_D$dTVnnLe#Wu5(*T`=9k#rSFMBjL#D+|;7V_5d*#t7j|nA`s#-leV83v4J+wy~ zjn|@s4qRa{n2bq4Npp7)VN4c6a}O2UxLRW)dW*<1!;qV2-0+(h+_>kM%$=B);jm;B zZec_WhJ)&r=1U{(M`!y}xNunutqq3*%QwcviUg?GdM#INGxPCF_2!uG0=H@(>P_AC zlSZt!m2;p1;azt3YX<6|UO&*98}ujXHw!n>A(fStk)%Cz?Uumt=S30g&!4*G;5b>8 zZj&~pi;0TTulv5_*()eWq&sYi04=zr+fG?*P1l9=u;DY$TDI%WH-@nbCJj9brvvJ&W$FT`_W)id48sye=!p!pGwXeKgYz zj+Tv&i|;u(og$ZLo1>IdVkwn=#VTpG_0cp1ZVV)gS?yaQW!+|Jacz2c9&%pZy(Tal z?2tnCXssRU$`Fpgak8Jba-%yCGgN4~iz`yIUVvlC5KkPvS~(p$I+a4EwOUTSy53AX zJ|c{`o|y2(ENQ_pohtshLM%p~a;vOsqi&(1;4l{Eu~~dQG!bai&@pjVp;d=-chZL< zUo0=uIlGWD=8Q%y3n`JrI4C^@3JeND{4xQC`M8)sI2EJ%HAZ2ALV?z%eb>qSiZ+H) z?X48|H3~_e(`Zh^VI5kLS`G8%O8A^5KiR3s5?aKc;K4?+mE4N4lcc3CBZc9$d0kY6 z{@W9iqB37^g{`%5mrTstbt3znaYSO#7+Q(l@nZjw8})>5nDMW?EjvB8E7aB9C&2VR zBrusuey(@$4))vHGHPTyvETZsB^M7$J-!KKaqDu>*u0D(Z^7`UT?^_ODKM0>%@5=3 zE>I}=e1Ch%QIK>up#a1K3931s`R?2X33q#{frM45pGbv&PLzPXbF5Q zM~Y=KhtI!ItvK#0lj&3vD@J^uK9x9T$9KgVO|C6##XOnJ&MVVj1chofI1eDu=~*ZS&6XZ~axf<#t?h=m)-^oOoe^Z1Dj%b< zdVkNAoUS0nYC*J0wwX%7;KK`aC}jilO1JG%{g2|J?Gs8``^e0y#iu)Cn-Ey+cCY4Y z4u=V}Fs#;5n;TPM47eRMJpODeYjEH>loSPctBrN42QJrB9bwcTg*+nf4V=BRv)|#~ zt|!&Oh`t@KiBl+2W%`+CBAX3f=df&k0}CHyTJXX5<$JmlxJsiLjC)XB|60Y|R*6NN&8Rn=-Ma{>ut*EQF~-gsma97S^N?9l1m@80altP-JnwT?a+9!1}2y5#ZfF9 z!@VE^Dy3@w5Yu_cUcgwPh#b13yIhsgNJg$^5j&$5OG8#ModmU7Wp{D@(shSeT+(U) zu5)`kx^dx`d-U_kxsCbJ?~2$BI)Iw&7anpXTwhTz{E5*bO(7(8GCjRGG~|Em`9|-8 z`%V970a?gL=9-GKtW;b!!sz#3Y`E7aYDq4rep9DOs7Iw#Yzvj* ztE4F$q|uPe4Hdo4Mq!HY@p)>vG;72-&swrps#6hXkFDzsJ9*mZKYO)=+c% zLSZo(Y$^iv;f7b&P!H}c_v77ZsHteYRROv6`7BfIU2tE@gm~e=0at_mUEF!kVb&_I zl5gHE<$KDA%tV?3%HlKJfK%H?_sgK~yZGZJT0=@S72>6*J%wC-f9%$WG*WYVn)W3prTahpFw-OnnnRete0}qPNdsED7U5;Y*hl_AGBaBkaBMk>Pm_$Mw z3WQYRIwU;urJOf`RT&@kbc&-TUM{&izB#BT5IU;qP|FlJGIlFui{GnE|`*X;@)=W6LbyDs?Kqq;4& zLyzpaW%CWvE{jF01ER2D+Ctxy`>(c1ZqB)COW}RhDz|mli@o!8rm<=XQ`^EaDU~3) z7NJBeNQN}=r1FG6=J*jJ5eBoN4i-zI9zMKtbqlxX8vlMb4l}h97VDM?cIRvFpigEo znfpj~Gb=+)o|Q?frRGaMW4yfz{8Xl6?awom zg-f1kmD8fW89msJK>MALH^*XWALmE*9pAKjzkt4*{p5hq??!LhXY(g)S%&#kL(yBk z47s$rU2eSp}qp2idzn(7?`lKDU zzsDy?+?=&HShmFeYOGJ}bfGzI0 z>2~%qN;yqQ3p-rrrzQhsF1y2?m;Y-t-NnZ1X7(gmA3uBfS`XQ{xBJe9#mGq^s z+^syRU2DZ3*3smO`21lFq*6H!`)ftg7lvY$)GZWMnr?PzE8eK~g`m-Z;2$2GwmUZW zO~701^~Vz~7x`B^CGPx$T6^>Sr!-G-2`%i9o4LW`ewZ@BiR0YPkUH&b8`63HfB^Pg z!{e2XyI>5KIJnpP=y!mQM!UOrCQ2cbyIS@)Y`Hf-+PJ1x9NgS>Y_1;d9Q`sNZ#*cn z&8(f}yYE8mce{Jp`{Iw91mZ2%TMkQ?fb=BeTKa{F^rt6NZbuN)ITZl z6r571j>~5DHSVVd>^pwU1G9Mv&jA&#YRip{7_Bgs_;svxCLw{Zb2Q5MJAzd1t8@C4pP45s{mQL3!^dSmUH11{@*rYT-16$g>clZeJ3&JUVH(hUaGF%%j| zO+yV}GUYi#XU1|bI$vzVmgVLe$>&BkK?z;&A~~emI=JpaVwmQh!i+=r{W+4Kz^`z}+ z3yk+>vJY%c&}@lPrK`GJf8=*W5^32kk^A1<`*h~AXE@$EpQ+1u0j8?OM_o&6J-v*J z;?-H$#vnEce`-y!-RMxFxHDTC0~@?%@^81ae1`B!%{r4+zMqq`ba)$I&dX(gzAken zrBtu$VrxE6ZhELNeSmb&@)hatv+#8&uX0GTTPOX}TVa*~%8z;J137pLn1lXLy`8-9 zW+)$$@JL|o`tRUO3nM*`(tq2l^6x0zj+9;-G_5ui^cP6r{XxWQEk}DuX(;#?H9!>e zS|QQ3)djl#OfDC>#mZbbU#0yY?2PX$Mou{z=J=LR#16TyqX|s*uUn~Nl43f-( z;9}BtZIK^3B9;q+i9KlbWl zO4yy{;cxs_bs5t2^5jmxkTeL}vc*O4W{|``*y}3o%#%QMgw)ZQ7r%b}?z6#l+3hmR zKhy&Z#?JV#t!|;wXmJ>s{!K}jZ?8f=Uba=}E6i(@pjd7`mf0&%p>M8MR|rQ5+(PKu zt{?hu4Fdor??B>oI_3j1JZ2I@A0i-fz$t+S;D#d?Ick==?}=kS)-LMJr2auZ2oI2a zVPzsbt66JAd$Uz)>T(p}0`ni=yv-1#ru$z=5h*Z?+UI1QGVp8AyBc}?TIBc8SmBpn z^qw);kHnENF+^-=>K6C4h}gLBA94JNN)!I?*q<;&Fgy-tAicgQe|aE?nDYBdxU2OY zq!Ne!+`!s@z~ZL~$3*(T5DuLc3-Nx5vJ76GAW2E_eic9ZZ_hYMWNRYfG7>hjuWoF} zPinE^45EY1%Nr5Gx@~_%wpt&uNk zB9Z?B%HT*=faY6|YX6DPpVVUyunoU^>a~CR;su!kXl)8(0_i^(@0BZ{*E*iB+5X+Y z11AL!#w3N?cpka!D_|VcOMH^gkoo`13IGfL|4k|xsnEaSEMALOSRowVde)?fj_N$5 z;!4(}l1Yd8u@vb7$3Vni#b*KfQT=4Zk<@^*GD9qbfQjUFfRrCEoU26*Q7Y`K-1#gq z*I$R!5u72qeqy9t^Uhx~yVA)APz)A84Q%)$%ti3pVD_e~a2YnKKbxn@U{yPfSlX&L zzIWJPuskstnQ6KNTM^jGoz9cZpkE<^uu11*8NoR2SOPy~$3&a(DjQ)!(?tG{=CS?H4qKmhgu z6X@>`4C?)Ax{L;c(zbp@i_8q-iy=BN4>HKwAqlcd<#QF8 zQg2#3z}jB21o0DjGf40%3C{F2PN3SeM~&%b-fP+DT#i|zUx)y60SAOZuuNhbOcbdG z5fWFzq+xVqmALfWRoGEQdba2$}PqPp zfb^w}%0Msz@4@XwjAb2V(o+L$g9#~hGTmpVY?>$WbEb4T059DQ;QGkUmnjS+-svz~ z4e5;AA)r$VeNwZ%UEr7)O)ray@y3US)vO8C*anBq(l*EHB^@)fuFdfzl0`C0mA3r ze1HuoKcEeG-ItV?Fez^#6eyKw7Y;-h+G)m3*W{=DT(Bp9JH-Dy-`%SiDxHp5EGZ49 zbw~PS-+5R}*N9{jg%gYKip=~Q#(*>+_`FuKz2-kk`a()VgD+SLX~^vm!0L-QSojaj z!l?}~*-Ku0Wy#U=*o%hzn63?|9(lrLYz2WgC!zMCwO-3-{DyE_O0&vG4cDUerJD@N z--(A;u>hmF?aFD81fgE{vrzWPc~(6X>;9!94=iT02B5KAkD@|Q*ORRgAw&Xgd8w#~ zz>!K}a@9U+CFK?8`S(rEcAz((icX7P=~r*7m59X4zwD<1_J~(LKy!phWq(K@3pVD0 z94M#>gBi9vlUh$-prfH`4pCC*tOjHv#dD|8Zv-hS=92WDT4cL^| zJ_CbWY?V>N2+(>rA~Ej-ms2wb%UzC-G^1N0|7cN9VTW0Z0@Jgwfr%Ut!9#*!^$#0- zjC$P=5c=Wvw@)b@0n>GrN=?h|?{Uyq>_+>$n(|bPH{=E^eP_uKq;ia$9{^>5^xn!43?U%NMu>_+^2r^fcv``a zyz#~bfJAcyw-n+&h_s1SHGM!P2PELLz(rXn31@J)>iTi3A!f^B81-PT=AiUn%d!U2CH{gz73=(I> z8V%``+3KL7M0C^=U=4X8J|IYYXX5@DF`O5yDOv;h>vP0{=Y1!J$Ii?=scg}>7<0!V z8vfh2104dF4-taKcTs&JQc^-Ta=LDkLZN?ABQL~tJlKNl_2r_~rzehnUu=L=kA7if z#`mvPq$i93E}PBxo^(o7REno?&zJuRC?g>=;BmS8zb}7i(`9-N!|tTKEb{I=BUt&K zZy^Bo;0G3>@Ek&&@OW?KD-`f*{a8My-ynHh0)-%4Jab^a`E$D+Fa_&V zPs<cGRY)7;_w0m0CK}~6SzECVyk5#F9vyKxn6)NbNcCr6@|5Cp%j=H%T$ULIoOhOnw zVltb(QYMXQJKvpJ9h2huNz-!Y^D`jg^XOUV)Izm8$HT)dE<^Z2g9HC&n*hYMKfu37 z9Wo+kc$MkY@~9ZiQ(luEK7yAF)U-$Mb~V!FE$Oc@)9ijr>-pf8!fM^dasi}3B1ED| zZo_S(uUl>(0$`9m1Qsd=`FwBSY{nF_&FvdqhE`T2wQtT6Nm{nkB${tp#1nm#G_gO| zEO~S(Whe3nyw&NOEZSIgBv|;+vqFrp?vN}6U@W7l19#GbLE&ONxE@zJ8>lZ*>JA@n z-Oalq9!YrN5^fDHJqN0$pbC-2eIQ?A@o4Uju*ODy>SU7!jI@zD&ivwfgQm5mUF#}`Pq8CHHgFHyT;$~hj#T-nO zmzvGUs=FNn&~OLZaDmd0bP}{ijnS8kY>SbMvOsFt>9vq{RecxQ`%82obpW74+fdKt zNn$ki$&kkC3YMvducu3(3iJTy1M6 z6B>iX0)-KQDIlI)?j3-7cUOni%boG8ArXtdujv@n;25b_pw!|(g`U-_GEtBz|0JSS z$AFB6MhgF}MW(_)B8F0F(7E?arBGQ0g>u8ve426+$exB|DvvONr^7`@MOkef>0~)Y z5vRQ>LZe)zRLGAhSt=~vEFel;?TWzc>jow%t=OqwOulLrE_gdzu3zvA6MO%0NNYib z9VazfHCC}iMQ<8~LcZG>J(`BfM+mpSca+p_O(*Bh1MNe(;h}{b4ILd~%RRG%6Pj?2 zWGekxg+d{#?MA;~kSy_t0u|bNUp$LF0349L3$-WF5~pGrbp2+LKT)8ROvj9*GhA;^ zi6YU(^wU2}d#>7Cx!#R!+&@E++T2i!#{FJlv}JMC<$UK_l015w!Q&EpE)hs5t)|Hr zC+LE0MsMrbgY0ziMR3yeUP4b&G5b}gP}y<3csF_OyT8ozD{|`tIF!+gr(i}Hp%D#i4O5!%3{Oszab;9 z77V?CNil|acx*`B9yz)}lvpOF8){+Ok>F%CLh!h;hJfIbPxbl?hZ%0!d_Q>yRk+S% zI@uaY`uUS_ku(eM&{r<&y)8QNTXzf!rQ*<;3WFqz^KYl;SI5~r_Cbts&^^hP&E7i` z1<9urI4^n5XblDvj30U@`P{)m-R|w>^He*=w`U5_EMlR@mVfy6mpu$mM;$D<>&|=dR^j%-I@EXOVg5wRUoKx3;6ax}ybrouavkbl z;Lgd|o7wy-_~>!JN6=zv-^6v?zS>+4!}Ad6=O?gKmO4|W*I-#F^%mU+)1r1UMOMf0 z7TZxY8B(2CTwxx_9@Gay)9Au>EH5}NUcg|Qr%y7YBBZ(9S2&|;#c*vSkDBuqYdUZ>(P@1e>STdPlLcsAu(Dvd9#L*u$306sC9T(#OP z(XvsB^MO^<<68gc`sl;`@nyC|n@4OJ(Lfr{)B%JZ&m+Kqu@+z|%1NipRv9W#7xCXz0cFwktp3dFVl9yCn^hIBhM!WS2V1 zYV}TdYk#6)p5_PU@jTuk9Ejvqp{Twb*V@ct(M*@;WqmG{YpD6^!^S{TTpgK9+ z{JMo9ab2jInibq=P^&4{WuwwNF##_d^MUewzu_`}i4-!CKfb)h-d5tUKkJ~dbP0u~ zzT8Kn+1MTrPm<}qz_M_sMQCOcq;ULjd+<{qsbB+Ie|H!Isb?FB$&3UcksQ zT*5H69Lty_t8k1FT2g^J2E%fS4RceaTZestP)C;af#e$A!^NikojVe521&e|&IEJ#3pPVIU25jzLuwrUuh_KA!84x#~zDDTzCf%+dvQ5;mPigbjo4XpppIY)^)e2Cai<6h%#wsvPe%|4()P3K+7{VxR0jgP2W1rBH&&7 ze9H>*GWG6%-5$21+D&6^t_dSv?jHw|8}|Dj?GBD2`m4h>D80b>X@P!lITt99NmmK-`ST%i#oDHqy1N zodSmZ&npWW7R!yd*23i;=`~ z={cR)>wH95Qk(sEen`zxU3^70Pl9lr#S7AoSwF~y>)+Z-n_2gB7;|v5RSlR zB4~AN`vO$0g|UrJ2s90HL;JRWXOfsVpjKrJsGp`6+n=prC@4Pjc0Z`wTnXoZ4nE)K zx2~D+d#TQ`n!LwdjHMkEY}v7&w{5Dz_5C30;hv_f;L5!~OnA&Xs86N5eWi|9vE7*c zv2k(Za$rB4&(7p7s=g57d%GV|TJoU7HDo?ouK0pP5>nP7ke)>T^;mjMMkulCpA744 zSbzK()2&UYZ-Qd1SVK)tf6=W^mBIA_OYdCPbh0Ba4%-m7KbqGA$i_tD9*X)!i0GLM zHFB%#YQ0_UAx-P$)f?l9+ZyKWJ^npX~^-APo%H%Y%*~p2twbH0Rd|id6ZaT0uJgpU^0yMjMY7o6s%?=Krw(xgEEyKwfnU;{h)ia{P1)d z;Y#sn)`~ba!=QY%nabw3o=arY@7bs;ixW*DW=d+e)%)!`3cV?-@JQW8kY4G9OdFG!sh6c@PD_1I^SiYB?inJ z>2zc8;?_*LN2bxx2_}^N;yec z+NsysOYHV0dYi@A==u4%BhZ>nFTFL0&@obeL9BoKG1B``K-2Zhvz#Uj7PhK8S6Sq7 z+2QTws2GT@AcB#5cgFDRhrV}lR>SEhJ>{fQH(83oAvb3qG77cF(hq>Lrf+&(;VPJ|3 zw5h~mF(*C8ZpUDd!(?no;Mym%yw8E7*|GbXqcV@`yZ&H4I5Wk|Y*nv~$1*UCv*K+6 zazg@dD|`UQ1UXVbbUDwN*YL$p=En-)qB!JJ9^-d(KryW=JqAQQ_%}KAtWYTpOuMtT zFtI8Yy{i8-lX&*+8rYbVv2B=22>KkHw{5nQE$d;FH0)6?_7^s7)AIa3iPZB-!|@G* z@|b$65sVkKOX4+JTr~B*I2=p|G38k!J7C%u8QXyTYlhY@)Z%}dvJ>>p*H{jb721rp z6dPa?fVb9X6af*mu6^C>OP(v9vDgQX-&K}C%yOG*oRbVxaFCHSQO<$`-PD zk18l>=?8E2Mwv=DxJ9zPI$AyH12KI!{Up~56pD4P4cXQ%R;B|rM?$Py!BvkUM-8yw z(DY-|J4x<|#cJ#=aV7SNT9uSejPq3&%3l>l#>!t5cWZfE$ErveQe-_06VE0&m@OH{ z1?9X;hQmH=c?5q0qYYKH%i40jqDqjo1GwKDDim;`)?onndO{mM*laDG2sZ16#{4H_6Fe9BZ z7>^3PaX)ZAjcjTKmWvbzSNAJaH}=D#BJWpv}jseC@rg#8Ta13!!HmFjdu=5mZ=01x-W!W2J|n+I}LT_^Nzt#xO0+c92cjA@nQg@*2cw zK06K>SR!d}zhHa0;4opID|8rnuscjNpR4(mTC*fn zpcwa>Ur8G{4`D?FrL!yP(mzNkDl$dB52njpI@UM<_+o}Xp;`aoQA9=Q$zS~)cV(Kg zLy1m9NKgoR23p^*wo?=JwQsg|aeQ&ISHO+*&02KCfF?uznbPHlL_FP1j6_?!YH$vi zGHG8~07BTCWvWOkqL-|7h8Q9>Hr(>Y(M2e&oMm(`&IrY;HT!VLSV8leOeyfyu!PgzMeE5n5RY(6B7oXDgt#yHWM#W7Y|ZUotN(WMA$h& z;$RfHhi(6O|0Bc$u2Io6Ds^0;LjdBJK&$;y`ZrAt*hH%4bs55d-rz55Rv0{8q7Wp@ za*sDvH9kYsNDJ6g`{9F(PO^_pTiGTG`m5aT>5!r(AEe{OiJjB)^~t8Q+zb4BukqkE zTz*`X92CExZxKbMd^txnb#8Ze;mbCa`rRR&Mn*wKy279+^2#Ko_h6x6ptmd`A)yf? zyd({gQ253t85ePPr6}BqN{d)n$Tu;bN<}x$yr56K$kc?+*pf;^?|vh@MUKPqAnM-Q z_LznyAzuF~0zKT9*B=8^VGz}j6rxcww zC#4m0n`<1yDK?`K6=5Kyp`IxFDxpu+U7;0^(x>$w7J<@rvV%Kny%)xR5O}}N$p)}C$2?)50VoFj*5y4*QtF6j^iaZJKmktT=>=!^~c{Vbn~{E z%i?6FvmjQKrk`NVWVH@&0M=Ynf)I-X(OJHkI^MQ9Wa(&1K>m<^h%=_W%@8}@%WNEl zYE+yduZ3n4ZRQ9(8T3mCz(3~?-gk)s@b%%VdAn7K4OHZti~;R9wao^YthXPvc=NqC zP&>?3Y7SJ`kc_VFEwGe6Ap*rGg|`DUziAh~E4-^E(Ill%8!(1OhHwlI_#kXF%9l5}4Z1mva7RDuAJt4e`;< zs{bJC6ac0CN~j<3Ol24a)-jNnHDvk>P_MB8Ffylb@7rgpK_cJ|gGk!cbB#r}El^fgbTRgzy)gniD$}^Y_28<6Tt^E987eezBXnnb8z4km0@TY8*R~y0e-&lh zQ4SIGUg1YG9TW1Ai`I?8_?+=w79C^KBbuQXGok-F74d=ghA zHXzNtSI2JNq{EqFre_~h*W2?>Winj^E6tG5;n#xK`<8(eU0R%L<6|o#qov)uoq#%4 zPHL-ZazO8l0kPVu9+#i`@Gd8(WoIgk-6&VP5a!E+;N!*fKLxEAEnZPEa7A>5z_j!W z4Gk8_6q|{(kmK?oM$~yycRkz(NN0VdnyoepWUtCkVh<7#Q7*MYb=aFFwaCmc!uQE{ z7@*jg4~jlcXt9F2*y9RpqoXsLFRfNDDQ2q?n*S)=ks5=i7;nyTu^jBN8MsR&dZQYY z+5rEaMfImkRTfV{Gqb3qXy9cnjO1BvOyjkOV^2-89kc zzT8kMnxn{+EsRg$?lM~l%9UlDNuZ+JJ}4Uu=5g$l_76$2PuXKu|C&EAAF0xNU8vpw z({PDRn^R*pM-B0biM`T9w|zJWIp^pyF4bm%sG;ugw(%>rbhaH#rTNUOCf7=qbqX_P z^F?pXwqqY#j+L#E)dYOo$*k4sx=SxabN9i0GrxhaO#y3ny6xCJIy*Pft^_C5(_vpq_T7o4gCd+1j@kxRnAiB|d~>^@8qW z5#cq8VZF^xSz!d?Ng-9)*~;qUqgfx?%IN&DsK?5Cd-fd&g$7ME$3C~ze5;i>S;8xLlf8kLAlF~khQ1iMVG zlGAT@qL>1HL&IpIkegAv#xt$enzBhCs~>G@j8scX$QcoHM|BizoquI;B;cm@(4(rM z<2X9U?MEMn<9=7$x~cWvG)%1qs6CZ)ntFH!xaJ>9}$-(LThW?0TJ6dRJ0o9 z7!FwBaMid(Wkkm6+r9%if4tuh?)r%WPEuYM$UXD%>Zxwrm0>A-LXF~H9t(lNj8etF z`MLxp($h2DXwQ;8q+&+JL@b8FG#P|hyrZXd?p}a!rGJB~J7KI38OD9&`Cwms=yoHX z7u69;J35W4hLvk|5?Ix(c^=y=AsOD+r+yLmx>%Ufk}r8AG}EeAUk5zVI+hT%U@X>~1%ZG9ONo%={DyuHQ)6{|sqBAW9!LLfCFTh4y zR|WefF~8+NSo~UH%2mx%&vs8iaZK*qp0+5!f=dbmc0+r+V}?h*!%E!K zAApB%uSYi5bnO4|G46Lyn^rfA;Xk$ z##~>2>+l(*`XwC3j>NlYXB$}pp)f28&#;$^c}(v7IMKXW$jW4KQG`gywwh9=Owx*+ zl0D`71mUdch8p)Qn@F$2I!{>Tf|c!}qN2sY$}2bv8ZXx4JTheCEesV{#%=4Pc9*~D z8O^818Rx&t7!t@;xA~w%*y^({Rm7}WCdsDfM{l}oSEa8Qu>Rz8pMqRO4YJO=79=3Z z6#yy&5HP?|DLkn){i)|Jy6F#Ez1z24`^Be?n)=l_D5Nv^-sBDxmYl8j^jOQNoS)4F z+bdsQz6(kw_t7ZN30F<-jjy1R`EikV%))DhW6klIY`R$`;wfH<0qcPCg#U;q05MYD zUT4z*Yeen3Xw)c{MWhkuG4Xv<_wp-$`IIDtYTqJf{nXpvrt;q-(br$SRE04N5Cu{W zNh3qRcXlWjHb4I^T|Hs&UN-xA?feo8^ItFp2Ez&jJ*?V582>a!-~x(hfw<@q$L8hV z8@v#2fw1iD`~K%R&5sAz{f}A#Qo#Rpux>Z(0yx8lj|C2pi+Q&yZ`7bmOezhDd;i57B2 zf9fnN3)ozV67(*A_(HEQF#Agbz!3%mKMnU>USPUii-=3WC;F( zZOF4~eP)kHyU9zrO5DvYzgEUErkUoCeEx)wZC`lB#dT1~Wg#(4R?l6Q9fAf(*ocX- zHrwc)1I|b=-40?@Y;6DBT(Z?98?<0@B7+pCjOS9>il%%hLgNJo#)waz-R#BC+HGoT z--2lJ6<(Ui_cTbLJ*aQQwn%$P78P-i;oe3NTxI_3@`8JGDsxSHjr!@fzyK~%NAkyI zTt(9E!^`k?=aJg4M^s-bxTk}GfYJuW3eIV5(RGkB;uV$ZcE_$>hPb8s;PG;c(zRow zHXZFl4%t~ttM4x8lqWtplZ87}$R-L+tBJ4=XI+qDJHmGKGA6Ngb4eJVj?TQxrtG9Q zg>!3yjg)JnaNsHkRH(Yyxq9h5oG&tXqfH6yVBN&6Xof-uO`H9vfvsnC#*d*Jck4p3 zHaPZJx-9OlIq6HzUlG*4E2OndheR~n{3NUw@}Ev+aT?C96MlyUhU>$%r7@W*ofmhp=n>VvH$W48cNu(3zOSCXsQ0>InLNh8I!NkBcb#2(UudBZHdhg9 zYo>>Cs&@jbH`}jy%7%V&uH;OfbdAL}+ zL{j(10`v6?Y%m=6nXuIpya>=*o8^ggiDE|xc7xX_G1n-3Xzbed)ckbKlEr?TpO!|g zGcPP?Pe1x z*qt0+CPMGu#4Rf~LL|`t3{!dS)kNRSM;{rHtzLQ^XX?--}a6K5l>*DbZ8~Mw$CgQh! zNHS)6eT8Vf*XZfCW;r2ALSg0Uo4Gz8#b0xXyX*S6U8VfJoHQR?=3qzRP5DJ*azfkV z+6{JtAdxr`11}AZLT*`A;?%_1Jj+N})AUvL>#=`RX{JY)UpJUi^p2g8Yda#bE;F6F z(OsKyJIkh)yCysJ4@FFcR7E{v%x*P-7>BLYU> z4izN__#CVHc(l%RthEyOfc_zI0DtsHga|C+1d}4n(Rt!UI~%rzO8G!=49Pe9K4{XR ziFF`I>{2MM5{ zISMp~L!2`l5XA{Kv%4x)7<+zMk(N(#EE`MhR~gu^QoskMm9WecuR`AF&bY+55Q zihb)Wrq!I!)nAL{!9r=Ba&T)JSroRVxffMcC6&#>oo2!jOF!CXLU+=%(}frwT}JlD9Zu>}9Rob$RTTghUP&me(2I*|A8pWg=_?($ae zeHNK@sXu*9d1L$iA@(MwMO2fInwSxe)_P^iFQau`tpm#9HsbkEojbUx#Pv&BHgG|aIyhv>+V0_oJg zR0Z>RO@VdZw16E3DGhjYh;K7f1udj;5njt@jjj}&R>7l#IdD7sp$;+=2S`d<9d=x8 zxXhK6iR#;FlKJ3i1^*c`UrGY9SdH5B`&$1o8h!V9wPrmm?uve{;(Rh!KK{dQ#WaNk zxVn-4S=}5PITod1xNpX4*@;K31^_&e7m@f8WKxM+t2P}mx@$ckt7Fefeva*;$lT0d z&xk4$I$x*52)yj1vTe7zcJAqXikW<16iwDQvBhae2WOl8CeBZ~8`0K3^R7hDqmI_f zg2#nstgsk4DTIAGAzh~&EgTTAiR(CIxc}T3Rnak%FVzZW74EzW;C9)WH}ui;amyQLlzK&* zLnE9Pm&;T^JBEXjTB5&2O9_Lm6M*5?B{i57p>3YW1iyVStZ44>bE)xGR?C$Z+n3et zJo<2tO)Gze)j8euyEL%IX|f{*zD!H-G>yc>a+QbA*$V^+dkA&@Yv)wSr)HY6y>1KK zX(2_^bAmfg%*AjO1>qdE%$IJJ=@0t-8f?6Y?Jn`7-WUix@Cv=t`@w|3oud?!auJJh)R3a)>$h^t_@ zAE)G($%#dG$ny3{Ht%8n5EWkC!3T!$na#_OHm3b{DKu+xGAzL0dkkCe$oA$hH1l%p>aoQ-=#{$R^UQ;t-z}z*P z+g+?*mfOa|+M#@E_xiIiMh|~7|3jUL1V=?heGQbc+YR!A0(xjZcORb^+A#v+DBf1* z`IO3g0m6bo}1afG-?E-}6j+`@XM6wQS#%>}gAwN)xiy zP?*1PuuIhlxf~Q{gHQFwQCgpYLD@A}kar3(^NBJPb^ML~xeg<~*Y1hD6&buJ{Jq`NADqdDl3-$F-XgBx)W~#^{1Eqg#6<^s;$-GE)Ffd zjYm(llQ;Ui2e?k`gm%Sqk!fPH-MOb%)*lBXHcB>|j1jH#H~^pnD@^RO)Dr;AzC~E_ z=?Cr`k3YINOb9RMW+!#mTbw?>EdP4k@m!-i-y5M}rD>ajtrJ2yCeneQUf)^xc_i@}M{?S`~hzLi)YR{Bvd-H&9e zxu)4rYO%x27K(9`Yv#!?@Uh2gU96qazC^LZA62UQJx5oIf=FPEyH?ZXpc|dU_CCaE zZ#rq6oxW#4Q&kw49;p3$2_l~U7{$&YV&=(VA**YZKujP&Ib`Sgz#i!2for?Z7-$;6 zCH;WhEML`J0wR_&uwEGu9*+e$3JUa1dH!;_SbVY&ff8wqGe1Y9lYp5f8lQe+_$aG_ z&lb`xB+H4@#!TdikVK(4${{)Ls^Q9uvr`>XG4%`H2SXJ|s#y`tK8fRGOfsj)4Wpv7 zPrM9r0||Mr+v3nbZ3E`M;$v-Zcl-H4?pCy(3yy2l+a7lL=r>1yiu+`i$DOPc+fJ#p zVu9bIA+l@C`?By+Yt)K`op&A5H&Ime#l91Y08vh~R#Y2>#kwfKu&ZCYnqN)-D3FGm zeBj{9z0T&eXL8i9U5?=gtr2cGY{`ZyhVU-XpynK z_1NeFJNDciw$Jqg-@7W+_nEL9Kc1$2zJo9I(-X!fU zpZm97bPL|iBM;%FI;$AYEGWf3Vx#fFlJ2a3+;_X)%|D2RzP|qDhI?MM@w|EXXAV>n zv2cDt4{m(V+beH>N%Thim4;Js8a%G;01fr@EIeZFpXc}3+e(^cgyvQ$jZ^z*^rd}w zN@YcG0S4tzjv@NyA>P&TOQnS)p)||Ki4uI-q5Iz*)#xh*?#k@&lGq7lJ}hg^vuNlE z+GXRO`QJEG;K<6g1XOTc$sSFnYNtQnrmJc8jm#?Tc+3S9EX42Vi_DO!=*CN7=(1^o z0KF6}06my!R079n8%saMGh9?hJI_F_awn??eD0ncEkg1Fg6N`E&HDy5?k*!eTiWPJ zMDfkCb&JS_b@5HicLSDE6CQ$6h<_#;Dsbl`KDKtKP)C*5vC2sn+(G1|LRz8hLyznq zRys};D7cp|j~#8Ynscf%h{BquX_c1{?!H0#fwba0*b)IJRyrsZ9#IJHI`#4TBel9t zlFZKdiSI?GT^vEj3ZD1Gl%28T|Qx?pjYOD)UTdC9Ntq}<{UcZ1bj?fGle zgZ%Bh2h5o?PwBMljQ3eXQ;uoQlYDfm-#70YKLsf{`J2&5BI261*e|Ibw7A&|(=+)$U-YO!yo zmqMs)vEC?^otV*K8sFzcZVpkgc%#+gf}q^OoeH|uRkF(*Mg!cONP|^rndpxpH(!z8HC$7xS%GEbCHuxv%67!( zKKdNnp;hCO(lC_Cb3)wW>J7!!cakqv&eCACg4-C3Q)yF1Ey`@BTLp{bln1O+z|yI@ zncyXCo1cUmkUJwR@%%(JJ8;LXRy`2VYIB{PQ^oCwzSII%L?$qsIud3&^Ozfvrd32^ zF!ya~0lyUT&sYNIdXCsXbNvrlhNLFlD^89F8t;P_haxSn zx(sD;=1op4$EV3XGNfLAR)sB=44G9_ljfuWg(TYYdF(he%V+htmPlrdkb3_ZdZiE3wld7qQw&*p z+&H&dqy7aw6jCXbk{whK3YwhsVN5#>;|GVmBDgFMu-o%mRH>uP?427w@8GK1piW+Qq$LD zMrhjzOO$C-t6qqR>a@?Zg||Hg(CXzKwl>s)_i%>LrI38%NOk*p9h@K>`GK4hgYBR% z>wlS7(6@7R@H2ttgxs6n@oY-~3kGo^-vB!Pym{FI^yfVF-2jyJYxA5HXr@imn)zZ| z%xK?!QU5{XvVyTqX6bVw|GJhzA0C^956EFTs#C3|hYRNAg=%a|Aa@hRy@bKYRz z3Q5}Ca(CbJ2t*Wjs}t2v+1QE!PV&-_lZ84^-})%k4G_#q+udR)o*EMSgZ7e9lg{4- zc{J%j8ShKqbKsR~xHFrjoGTbWefd$a{4wWg5sG;wsVTFc@dw)MHqb}ZzkbJ7u+GfO`NUe^|H9elP*M>bR%a+} z(@=7pOg+cr83?F#Ou*?ks#nc8F}q^$St;$BAvEK%T~wzy)6^(V44}5GtDh&ASu#zz zPsj{NT$NCl_|5i@6%MR{Ylnsm2PcuOi)^|%1EJ-`Bd5YEgN7Ab<|4MPfv@S@+%#io z#{SRE=)yqn7UHVHUKR+T16_cw2vxW6RdG7vfB5l07U^YYi?3G@2Op3Y%CFa}0|8V< z@jqFNRL-e4K>F`LK@{jeCy3ZmXa95J|A{+%#k+QgABlBC(|lciaZvml(+<`JzAuW$ z4TsaePf!MfHwoDZw3VjMb_(+ANT%qwXRm0=X>UcSxjq@(QQyDBz9;BC(qA7kR=Nr~ z|6167(SY#OGuF0YHGL>%Aku2@4vW2Jy(U+0`#J~3jKt`E5Ax%uF>{K=;{Iq05QJP2 zX^?DRSJcr7n{Lz7aD7hiNWZ-p*Z#dm!=O%wkWR)RQm(?`apC&>bd?N#{fFtSEpJGG zBJsy;3yzw6+_DcDX@1>7*92B@>c1WcnifxNGy>d3QcObh9A^$IxatCcZo&r8rktE` zb*LX-ZF~HeqkusK@_P-Tjh7tuZt{93Ac$$Bv8}lTzyP2H8}Q6}UUB?TI$G(r7%;|) zdR~eEf{)k623P}a@xG}2XG{x?p>-0SU^*YT0e!+BR}UvU{o`QV*FT*?aRKJsp~`d!Sh-4WWYO9dnF-iD>zCv|=%yG8KbhG$QFTk4Gyhik`d0~{wX5Rtu>YDO;^ z_XjWs%#$B8K0E#15Mkbw+b-6sFJ2mV@xvo`#Q3rO5z4C;nxdTN@{02#{2z|`{mWh} zno>)3mOBYA=RM)B)+lWHB@!|c#4a7_y6WE6Ez}U6Zp$X#h;&MqLt)d&4@q!XS#h*C zPY>WuE0oD3KCgf3HUQRSbuMdkp4n(n@As zg?N+F(LyH+br)V667q_K!}(BXj2P@wKZ@?i!ZljcPfAZBmNUZY$oS*Hj56FNTZDg5 z!4^n@Ucu0llDa664up*))ZmX2NUbN6fEssjA3cN?$xB7k*S=a5W1YS?;8$?I9~0vP z{T07h#`oU`jrKg3T6G|GZ=U0=ek?!8qUeZsN(j zy1oi&hX~Neg7_)*8melYG;z16P7jY4Pn$atpbh}F0pJ=5$FzjpZcr+@pQ}d^pIPQ! zZqle=avj@<_bbCG=3b_EiqkRD!?#WQQE1x@yAb-qb}Xf7*_VN`vn~YOw63;R!ZL4{tD>24%M?C{p}7C07*`JN0gs1cph zYsX1)1TS7#wl#tPi}Q#cPq~(TqCMXM{<$Lkko3t;KNQv^oxSc~B#M1AJKxUz2@2Kl z0Bq`IRK%9p3pYDwSW1^;gi+jcHwRgT8hk)VVQcuq)mEVL!{&mkYqw;gt}{iUdVd30 zDe1vl^Bb!!{O4I1WK>k~Wf`LVVFFgYxYt&gst@a*wNj`*+0-8(M0OtuzdvuPVj=zjR`Ie%yq z0UnHyf#F;DbRExpMX#GU*kc$6*x7aGC72A$)H%s&ug>>I*gO%U3BPwcus}UQyMupUke-tqo?VYPw$uTRybh4DJg)XgGi%efQ#^> zAP#2#k86#QOl(8_!|mfQa|$xTu~Mt0qYwkZWI*U2l845+d%AvR1G$nt1I_0yf- zYP9IQNj5U+ZmW|d#i_L!xo@Aa}~!h*uDTD8%a? ztlVgpT^Aps94?fIgF9VBJ*aKdmVK+>Z|#{Ez>H)4 zill%u*X%iD%E%7PY_aR)e&NcRZURCGu&NZ!7jovRWltp}(hgU+Rv~aQ3gy+I=I68& zZ(uq3_bi=l*xBFFoBvHlTFtOiM zr>t?5T!#zsDk|q5QSY=ga6wYBuOfqs7oq$PLj2>3zX89I?&SRo%bn9qAZ06&O|X`2bA81{~TOT}&A3$Y7byO;fbejAm2 ze`SvBAN8ENo$efN)`rfaqc@{~S#v-ZMizT^S7#isf>uTc5&4A12qAzX4}O&VgGlG; zM72QmV&l5K6Cl{}_PE*2kguHi6a|oj#W#oPxEzkQBR+`T{qWeJ__&lYClC%qfFHqR z5AnK-$+ipSaTg%{DB^eDCSAwtJEDY?;oOMC{jIs$F#1K)>R?$D$1ii#;Zx-YsQ+Wiq25xX#0rziM#?}Yol9nG%iGV%^)lh19n6-|<<_(Mkg4jW!p-KS3x6!hwOz+A$eZE)g zE%(|vBzvU*tMBH;8FZQ_rh!McYjBYVD)jsYweAGCVL9_e%{d3ZY_g(pIpJ}&MRcB} z#Wysz;_9c)!+kpuWGt4af+Mhvm8SBDqc@=YT-Wp2zG}SO3T_4Qy~d>T0Ti^ojsbgE zov#JJ8r=fgp8FW^pXpgdK*bran0f9^<-IO8JZ0m3{ce@)xWAie5I-EgS6u1Kmy%M%>4X#^z}KZ(bK-83LO?5s&Wq-fBO`CxS# z3557a0I(Gnc8QPol&>VA)OA)ZNj}T@)wUbfXX8^x!mpln%Z~~I>Mf9#=z>{P75wgZ zcv;b==W7J9(_hcD5Ys}Mu0yYPa7-H?z^*^xW?VG0c>Q4iR>CWhY3Y>(_)3|l)t3+b z+2c3_{&7mT05ceGJQQ$K9Q{g?UY1nmUr3&nPXj)ilRW=j+UYr;+T^B0^Hv%~Tn;>) zf`jL@qFx1@7@GU-R*CWAjIFw)Fu~)jdeCrqM`WhHbW|1{=F5ja*TjZvm;pns5;dNU z4M=yh6=p`T=k=@91Z;Mi31?qm@${gt?7(eW@<+~Q*~%BL+-H8*3*52a?)oXL9s=*T zi=Pt1di9!rJ!Ioo`iG35GFX?n-^Co%FZzcc=wZD^C-zJRV$;&QT7wK8=zLHScD{ve zMn_b7R?L`wQ%f9?JRkZkqvir2$1Rrl)ckBgF%vS}%J#Tt(s@5>UPhjGb7OMuRE3mVtR88K`h|w!;m%2oXW)Ih+OM{6-7|_;Fm8au zl~(N_-cw#Dh5%407^s)m8wbH#n}zxU|CZYXYqPDG^}3f-eR?dbGl}7I5b1q^v+2bs zoZunin!^1uOHu95e036ifEc^^VH#F6TdTL3S0B>vO)7ED5b92_>qtf!7JwL}=X#W{_|! zO@t|CN%>eZeB5rthWq3kt4zc%Xi88gG5%qh^>1_N=ss>@TRB`J_$^EwD!Cg>R{Agt z-^2Rf{Jq`{*T3E~IO9DXGkLDoTHT z{y8g-1s=baFC}HcgYp00^#27Bbm^#niQgTR6StF)NL5xZEe0x2s5fyo@GuVJGm_nF zBq=E=Q~&DYtpn=gjgE!I_RGy&>pvO-B0?yG4E?AV3@hP3`ngtFRyHy|fy0tQ#&*h_ z`ajPJXc z0wGtbWvlnq#0@4NC>(Yt;U-_y7WXY0NA_t%G9S`r`<>E$7Oo`@&vh0RDKA*Bp)dh6 z-yv!)wt(K@U7$EIJer=ewzgj8qRTeDHfpmYhjwt(!$yTCFioRNts zVp9gA8Dv+%Yy&zzK5^K>20;4pa!>5)@UHlDqqCWG_`xlQct9XmvhxdWa@6P5fSh)g z6D(I*T|Gs4?HRgG@5Wka!cqeYi6BXd(hpcRj;7$#gQVnWyER*>#p+M|=-k+69b|dm z<;g_67Xy8#lUwy+J~zgLH)U(|%=XVo;svoP2Cz60dX5Bauw)WT3P;JV!{iSxBYZs8_M7(aKP>~J#z_K zd+?rl+(B3y$Q{l;Y!V}F0!ls3bDA0L)d1>s9$?C@#qC=yKhFuBH{3GR%@*bF){z(; z-UaQI=ElO|o82eikJqZTgfQf8iormW=yhT|p>TIJgAB1f=L}yixAT7O4PDJ%AIq)j zzXu^5(~PRv6fZu1R}S3EGvcM9TXY7rgO-MPmO)3aX*S!7F!C-anjR3)fUbdN>ttot zAY!AKbG~~0;<8+-5xd8;A433pxsScdgIc6C*=`Q2@whV z6ca@vp!9s%!%lei?YG#^Ts8KE=FoII%=F-JxNp;BGYbETm-@ZP=or3-+3dIN@luXV z#4EcykMnzMnRe%RvY>UVSqY4i&+*|)*aEbSG2Uup+-W5qL%9Zr#?WGRPAZQ>Zk^Sv zr0mYSWb!n<7PVj#E2Gnl>G52SRfLE5wTjIWebBX>xTrCIp$s+|jeI2sn{?tr(IW6| z441OKW=h4d&>n`WXKO4riT0R=J$_+Yo=&`dMMF>dI!hiIm^#;em%zpsUrhozTzKYA z*641s9X$iAN&f}HS3+;2va?m#SQd{WgHwfJ)hHP`seG9hBDuZMa#@f(9H02@+AZ1T zmEHNB5wf$~r6?@ldD5EEb3_g1F+(71h1J~IRPy&ieV#NvUyp8&OUOy@SC!!H7Ma%l z-_39{zf{?V%~Gsv=GkMvI-jp;BjR&Lb|?@%tb2Km@d_fW*~71i^cP&u=wOY^g^(0L zUAmr?i`Y+|F_FTV8^gX75X4ng=Rpofu0!pEo+!a0?C6vG;aOJ*pC9ThRyC-psRi6FA>rVL`4=bf3O<9)wi1*@uUTj8pRXE=JHxkK z&}-^J3g9f@oA~6{K}mcG5_k(dC0`mn2;kE<1vKM5DJE8|pf@|8zluaR5WWiynG}Qz zHS;=cS{|>Lww8r%GYIGQtKY~lDSVt(#Eh@rOKdO0k>injZ0}&iSJK9cxr#J555Q5# zVvNKlq#3Ri5eedsC|m$*V~X`;LTI=8JdG6_7=iXUp3b1`^Px8bK=*Q*n(`s5^**Ii ziqGJ;JQ$}i>XD9gYDtcijC4CzbpA{qOZ_&DJZ9C3>o8Lt2T|klB>II(KfAk0=2V5z zrW-aMArFRB+f&;6axftmHKo%w;dbPV_+f(=&FBIg)p-gpe}!Xs9aEPL((pX-6mJKs zH0t(zT82ClC-Qq59lSMTu}@d*_q1`s zHhk=~(WI~fGDr-X*86>f1MU&{syTdVTt4ah8B=^Q_Dee;1OqJcr#o>1g?L2wg2Z7Q z*bVmV{S}XeYAWQ3wvGkt`Cvo=9vPm`?eSCFoPD^8AJcr?uO1s()l9nD+P=Z>p2__; zYmy%wJOvcSPk1Z!F(|#y5(0WM1nGozibkKuq(-U7%F@8z)|O{2QRgGePMPPjYP}HY z`-su)A$`n2cshPBXEF2!-TEEmmliL=o5~dlR0;bkkVoK9YYCWZ2%ZXzFNj2c;&f30 z5(Xh7_-!2U-vo%2U~2llz|@N(`Q+EzmfIR;1PfR<%8KR*$$Sm~|JgU?6}!l_sLO5C z16_O8TRh8R7dkQfmVw>eKv*)DT2&s1FcGI+WWxO=@R;odltugMSzJ_a=0VAUgFV*R*-8;`6x!*L|IfhvU zD7ezMj^{$B--I9kUvq(8YGA1fNi0!X(hjw)^r3*{!feToCN?bp3 zf!r9vw&yOJ7k{$S(7C6V>+hIs$DmwC%BFQcXKJ%mPy*!(Fzy9mA>3e7ZcH$HI%A&CXpsH;Bz3g06X|Ow$LI zPw>Wm|1jh_xg1TVdwC)cCn2So+iQDVagUJ?XRFd-xXIW%m}kQxmPV%jZ6MF{5Djk{ z3Y()&MCG=a2x!7o%p@*P3}o+{}vmeMUv2ms{d>bd-kV0M9*2%-Q2U&BZgT zaCyH}YOi1sOR#rtCVI*)4>HfD4}WakwVzWi{=B<)5IzK(u}ZFtR9~ConB7%lPv@P6 z&`NhEC!Om8%~o8TjPHb0$BUhEvhyUV^UWGESV`Wx9p5-FWJAJwO*Gx(I%L(4uyVe) zYX=jBawpuiA%6^tE?hSjqo=h5b~m%x*BP=ii2q)=p;t3uk%_WdOOVk?Q~dohRn9sU zA2j58w2OOwP1swe7fr}oqu$)eSk_GKqpp$>${W$8Reo21AX3G4AeG4?bXt=XPIi@* zBaqhfz=tDKAsGtFx#a4hH_2q?ahqK8$Jo)0+kWU>)>XKs9F{uUyMx&|P!9WakCz_j zaSo*jvbO^IZw$R(B8&>yV4sMwq1-8Z+D7?;B>S zaoHC&4SOvtkL#Z*^|+cbderlK`Qm$k!8XmJk;>&w`?{`5{cVZ@R_n%#uop^6=kAnV zs_6FkI1cb=46X42`&j(6*Xc#z-CV=C!>}8<++I4=*r`nQafz0k{S2-L>%4i#J1LUx zfaT%xz9g6N)np=2H`GxaPIJ(31B%zw>Gdl_P`GhP_7nwr zA}{ML%5wXKZN9wU)z9@B1A-wDm@#o#ZJzDU?)~xwf*@hvcS7ZUcL|!Yk;$$UmhU+v zbQv7Q1-Z+4d}9LWsb6vf3L!bi?Ex{cruHgUODc5GGJK?1%q%E*>tA=(kKx7_@7JM- z-A`?i@DHRS>ocN;4g8heBHeeJTx-TdA>bQyfyScpiCS#w{K#TM-eTv z9!f&395f!HFZCY6egIvj9FOF4i%Zo+kZWa zbz&~r)-n0!#cH)~F+`Zrt)7MaPC2YUR5k6%uH6C;fQ*YYREdG` z`k7xvuqe%$6FzGdqwrgF4g-%S)gqgtg89 zcfBJ9Fn~(R2A_XW@BBJ-!mfApAa-b%a4XbhYCTiAa;&wx+5VUa;$6zixkbhUR+{*H z+rtcFf3`O*N^{vWdNcmO+QjERz;eL70hK}9Ol^*qs5TXn1lIp4S+neRax{U=_8t$x zAru1BJ^w^GDV&T(()0B^LyW4>{)#3>K3@vh$D{K zXny%gqVj!t{>M3Zp&Y(}iq0GU0l~!BG47bp0_+?60i7CE=f^155(1hq%nJ6Y8YgrI zK2|k$SgA)5>n{!)$n>D~D=W_P-7S!ILpt0Po6aYVhkf(ITfJx7W6tCo&_G%{Gh5$Cz+aDpBW@XNdWaQDscEEzkuy?=Grfg54!ydQoQ`TA>nM>shX z-?sb&_<=2GnKGR!^6nuZZf!cxNc_&KDIsPruEU;iE7$= zRU6sVsvS8S36urV@lr;l=<2fDF|JIhNG45#wB#u6N>6vWEjUDmW+6tSK#|>l#fL|Q zUE7354HGr)P}@Zazs*90B@TrJe%Wqh^ksOjw~gJM4+*r#=rn{h!7*=k$KF%_H(AKZ zZln-}ngzAJj@&)BHUUw0{X{qLOU84{g)t-Fv^Re_Fur7B>B&I!9`WKbXqh7`d1mIG zN{Luf)v=Y^o5#YK>lO7m+C7?27sF78p(KGcb1{01U9~BPsZ{EON(s4a;EEk7qa8S8 zjk%M}JFuGp&lS#3o&XXu`hMd=O{i$4aoN5LX8y^!|#q)(S?r2@SGh zu9m2`gx66GS$x=yc~kxxe%^aEQ%+M&gn!#P?EPg#3N;3`!g3@WCFxkNw6K((PVc#- zoU*!@&R&KqGd8Vo-Am&cl3#ZsLTMbI_AcW)q$tKS=k%?}Y|6jUDgHOY?7c!S+d1Xb zZ=l8JCb6{WbGq;$yTa*~oY=De!bGz4a#Bo zjEum-Tx03><{DFl`Q!fw?gSCZR{tXxb>=)3!T$im^5C?flGe1SZpwe*V`Crh*fitm za1EG$;mJU>upI@ucv8mA`BQoOe}piVj(qv#p{SyQSsZI_O)P&D@}Dc&(99y>jEsy0 zMMdKDIvvFO`}?_jg;Wi>iRyowC5EoE+0=gZ%0k!eOaqqOmJn4@QQ0fZ{3~~0Kj)B# zputJm*i=1uI}MGEL-{BueihFPjF$dIJ45*qz(GOynAt&Ig(C8D|NDZ20Kcbos+5#D z&tKfL3n&3mF5mxpRhmB|UV1P$@?R|jA$+jEYB5!YEN?$sma0UP_xJIV)^$jK|G{4? z2!z~g&1K8O|2~?sd72jp$b#H|nf>&Ms9!=@K>0s|I1UR!#x`EUQP23dnP?OQfoQBT zv0J>iiofjuBME|pfuV)i%`gG-TZDXnVypk4{C^Ind(iw}&=~g$+&D^OaKMW(#m!`$ zs&3Q%zJtdrwDQOIu~f@`5o-@oGcY$W-(Bjamo+DKxxab=e2^`87qDK$Rm^@e!~C&q z@)|o<@d^w!00+1Cn-yqGJa!vqYR=!M=JSB+z3;%Gq49MD3AUN0NV0#b@LqcirwZ*W zL=7)Q6*K6}#S0TxQQE!q{a?ySfCehR7(D>KEiFBcpeF49cU?<6(PfjfN2>a$4--c~tgiP0b4-{$wfq zODsNhLS546PhPk8pblolmK3gd@`RhJ(1Y0n~m)eqgL(1#ym^xNLRi4o-O*)sD; zWx?Mm03y;A;JwetEc5;BOsqHIe|13y!G{u2NyIu;L!_?l@91Siy8u;d01Ul7|L@?* zU;&3&rtz$9@9&LUz}ba^B!3(GSDegRe{^uYVK(-^W;qmaUUKtKOa1-llp}B2 zmHIFJz=x)6zWOA>K=mKh3gw>_0qWwc6&GFe-zHoL<r(Wk= z#=IrgF7-?VIya*L?>)cHa3{gZt) z5HgpjLhU5Qe}B7F2HClAH#U4G$_%TkaJ;470Jw8j;18b%PD51-Dct*c{e8;^?8rk0%3{DE2!&26FPGZ;R9cn zFQ%<>Csk{P%-BV;uZV509mNkAD&kc)O3J?{cis<(_U)vN# zP)W%g0E!)?Kx*P81OfB66h4PYsRJZ2aArNbjKSZ(Y0Wk(5-hpwS4^#eAqP_AB2O@F zgluf;@xZ>t1E-xih%X#%QR$pv4YY`jWHi5-DG^QKW&TIM0lS`IZrw?hq?=iO#Pr0Bx_I{`g=|_jINDAmdUll7Nldn@%4OJZr<*qs7nEFakp`jF23iM63xIvUw>2 zlLW9xUXR0eOoW_%L~vVTE|G!n*-;BfLiV=Q9W}5_;+b3knAGf_15p&nMa2Ta-$M=@ zGkB#D0xHK(fo1v&>BKF8aORcL6>qU&t3U2FsxVjVVe&mf9IpQPpr>X$;VSMS&?VhB zmD1#LKW}q9U*jxatzmteX$ZOTc)EQmK?uecLoqdkCM9N_8*@D0Lr=wyQmZj={_S49 z!<=|J`QFfj9)Mj|TEJqz$YNwKRPQR{id;zbEBo_Ck0GSk#GYOE*xs2F)4N_1v)E#I zrv^Lbu*re2QI%-I&8@1K!IXu&&BM><;}C7JPNDw>>HF0uy+5Mk$1A_p z7nHip%fd~hCou(Jm1tSO>zFr4m`^6PA~x{2ob8&%Mcr`N?`9uHfPvf#JgX`SEl<^a zY)$8rPasU26c?w!bYj6y5&&AH-|v$455%*Q4=CprqWdCn6lhjr7)hxttaBZ*6Uq0M zXvfAf$PorTP%;&W1@~HEC=`{I_1~fHFV5C#-&rYc z`(c)!`=)3`dqnhJmlq*QP*BYik6I0S$MS27+KFZgLr!`QO97kOcaqkq`^68lU_Lz# zSVrT4XV*tU4h7$3rKtRDHb!k|`#!mfi^88};S)BQH@k|-dju)teDkxB4$KOWUm=lnxpjS6mitpNidc@joRraLN{N*n%q=5T}fsw zw!H?(W)%~&vdS%_u&aTh1Iu{q_FhiPj6R#Gi4=lCBcGBFKS8YyeQ_%l^n<3&H=S<;n3(9jZ!pLx75^&CXl z!pQq;-c(;*Ag5hAFtlOb(|l1sG?G}1CN@&l?YZwqb}Ic;bj%LTXgg`eWRahCBuMOW z?5CGr7ZXiTd*iK#9XSx-op#^FgTK2yYX6mbbjT z7$;88BNF`lOG_&?jos=vK#J@hRISP-0(Ze7Ex+`*cs1MbRS9#u-E~^^j zS;S#@L+>VpZx5K2Oa4%}#|Hh2a~7h*g;uTmIqo)*DL>1+T#@(mpHk`Uj}>F!vAdR! z!G9r0OAZ5s8v)zP4uOV>H^W{cG6*5#!8u_0KN=&AF?R2@UX1201!nLzA9`<3x#L1s zKLS(_(hkEWmzNa$j7I!p?D3oEg!y=ZX#kFAGbl`BSL{D8%RXi0(XBp6xQcKXyT9$X zP#KudacFZ5x{IE|$xZs6_CpGIPwFBvvy!sL)0PFd1JM;?F7xKiyy*)yb8;+NZMxqi zcwBV}Kdh5|A6(qGUv#-Ppw>bSC*M7u1~$2M$7Jud&b$a#B^52&Ebqu~WjbA*;eGCh zq$c#F)!$D%m>Mp>WCDZ7F!wJ>8!<1|ozrb#u6oBK<1^TI*lcc9s*K+%?LGmXTT=p= z)q4091$?Vu`VRMYqKVj5gix7?77@&SEmPa15vH*48JL6vG&0l<2vKRIEOYCrt;I~8 z+0&xjm)Yt?cSV(-5Sv3WZ*FHF*!Lz97b~b=MsX5=>xINvtwG}GT5!052Otng@Y5H% zd(6K|mJx&)7T9NuR8ArQry>fevO~kj#S0!(g=rnDFFjzD$HL?Vji~Yg2q62cYxG9x(X1ysNaQQ=_)Xdc&YO%{{!df) z9S+ylH2_>1(QBd`GBTnCgJJX%GQud4qK@9p5S{2^5Dd{fiD=P9@1kcIL>aw@=tT7P zy7zs*@80vz`R}y-JbOKR{nk3WNVmlh!y;)2jEqWfXjN@cVDoV-Q9~E3ZyhD1_LDL? zF8ny?Qrk^FbBImdCE(Mkc!f)EvA(O>B2#A>og{fS$z%h1+h+QtZ2DNaHT+o*dUYs+ z>l;4(cKf7<6fO-SU*CFrF~OHzykjPg+dIf&zs{#*n%ZEM6FpSRXHbnRqB`3Qa$Z)Z z3W(ahShh(-iLzw!)*Z5l^GG+iLxklLT=&PMSGMjnG1)GtSB5tu4|JhWe(4O&TilAa<$lR`;f>Y5>J?O1E1mHG+_Mt$D@ z2G6|!G}X^2TK5ta+@3%>^ zfw71mbMa1Jb-|5~ea4Mf$ra#Qd=nMex^8gia6)bSgm+R1KX9WBoc932+GV0A5-^&` z8D$W`k{-__FT9)L{0>W$EfYi`pIl>H0G*@+A6-v^K_}JV^k7Re;fBf^QkX`K-wHn) zNBda%WKBdAF7~}r7{vM;l`}353cIu-Wq-~mRQw=`rrw+jbjd{sgPrW~mx|y!%Y}+( zkd;XWGQu-T*7#Xz*5U~A+P6l{91tj!f4+N=IVI!5>HJARub+ULhPO_B|NNDr`+(b_ zd+%L#*%ou-Y(?C2TVBL*1=|h*zFF|#pu1h21CobJi+yQV)67aamcU;kwNxxTr#*MlR*5*~q($z|klgp8%ve1*dm^$D2>_a^gs-duNcP`6aS zr#-K2*Q0FtXj#2xgymu*(cP%gid{BhL7(7IE!9e9QTR-jD|-NAx=;9d?$QZ9kF9Tdo-z%O}^lIBm&(T}Rt-C50(Bx^HeJdFU|;d$XUreF2fCOH>!;BBKsus`u8O zCJ$ExM=(MMtsP+*Q#H=BR}iu&v!@DY#Ql#fy5iofNVgNu49a^}yxBl75^aG*RXDBF zCna~tXvKS@h7{98t+4D>f?HOM!0$ zDhpYH1h-=KkN0T|M3r1W-$QRCCh|T^3XA*ZW)C-LoV&CB3SM$Ix^A}6T~ zjg+?^NPLekC2n&QhJJO1)nRLs)KvCOtSl9hn_ zy->g@!b>w%#l67`PI{T6Ci<^Ry4snJ30x`v@!9HPe9b% z-OdPI-70M9=(%9pmf7BH_ZVN7`z!2y{w(?5W7aMm>L;%})M@#103g*JzsjygT5)QO z#aP7~TGp8$aZ!K>ur7F#tcEh;4DqLK=3dgmRtB^nI_=k=mOGxL?U_)3p@X zZ!ne@%9OjHm{lG~i5WHb>{R)wCmqd9flk^BA%eb&Ep$V@3qyZ#x||a}@)9OdhLPU{ zzGtL^q9)sf;sdq!oll-=agvONPje@)A6tI}t$ZMI5T@*|7)>>4)_X`fE3JAepEE!d z?#o&Jj*`;qtI_cvR%IY9E5`S+cfQ`p5(%w48{yYS-UZShy%L%q7s^{dx{fTex=syl z5RWm!Ia|+woFs@6Lh46^qDjWsKsRyJp&7%hut~Zj$dLxn5xEC@uoeD(1?%?s(}yQu zOUUaNdJiaN1-r#Nnrp0GIVT1Cs%Mj0Mw0CEwaWGKVFYO|t((_t9Opp-SD{3Wd&WG} z_i=P)Imq^LGkU7GhgTa5JKBIn6m5zJX;wOKU>N?*%3*JM4K8kY@R`ypWsYIC842dm zlVc&pbXKNue{K>uDp5XZ`dfPMRCV!*ca{9OYGPrAk~_=WjQszGr#${BHs<>`Y@v_- z#DCOWlCfOAW6ey`?+n;rRox#=-Qf??|33X1$id02kx1<;Qb*`N2^ zV9A@?pOHuIa_CUNP^i)z>Z-?x=W}zeFnoZmHQC3%nXW0H(5|MIMlwZzK{;`83^U+(b3?Hh^a-REeHq1QR zO??0}tw69^_M4ByHth*BARE(KGy2VOY3;9Ou`I6sxdGUu39jFinW1!P!cdxg_|#$V zAOpoaGn1IlHda7y4~YC$Uv|8Q&C?_7tPX3puWrPs58dg-pjO>u(~m!eJCm1S`76bh zZTq5B7yc&p;!6(Nq>*sdLwvZpUk+gm=lbrDHi(x(J#Qc_-he94x>r#jIbAPV;Z95h zJbm;;wa5)~6oDX@%Eso*mCD?t7cfll1n@;k(R)WpsPEwWEE*-orN~s^f9E)F2C|?wtFb{9YvpX9P_RYr{cdFLgSGb$Uo~`O zn%6Qt7wab%T=3%BrzH_zCChNoX&4}ZYYxvl8=u>0dI^(8{ume63+P}87nn5(I{of& z`3E%q+a;SRGa`8tQ2sqAC42LJvJ;*kKiV1^#AMVX(0s@i`U<0Eha+73q{c*)2jZp&h?in+^NXC3?9VW#&$1Mb% zwKX?BC)opLAK}tJ{tQB*PT=mwcQ9|-H4WPYUeEr8M(X}w7fDMSN$2jJ z8lKE^36Jt(JMe149lp(K%nX|oJSC7eQ5h|qkL?JJtPx+|_3HJblM%m}d_-;pz@#jt z#ZlCEd~B~ERoL!}5Kyp4zl2fpg*E7Ml+?k0UXGvK=#GH1PNN&ZlXZFDtV?w6zkl5vw$8TEyt8q&+DrA)&%VRx0x#Q1LSKhV zJ_w7ovcQ+LgPm7&xc$jx=w^$@lemr*R!HfE8WGLj8+yOB4}Oy;-T0ZU#BA|vP-fS6 zM@R9N8EI=G7jd}$FWL_g!zELH7BB-Ap`83-Ka6D<9jpH^@p%lqNhn4@R+e5`x?gVZ zqdUYTN`|qqP!wH-r=R+g)up)?h97vRI zJ7QVHHj3UA0j3ZNEU%cxbP{%42b-~yIg9-ydu50Ol^os>+OKgvUA5} z`zm`zhux}2QfC9bfNT@qgUT2HC7MgFPO|or-YB0fXURUETz$vE7>7=;DI(ESgjC<+%-6kx@mgwQKv+%v zqp`Ol)Fzk`*CLls?VV@1RrdOw;Q_QHgR=wo(SuNrwT_0T{5^~Ja?omyd2=P~_Y#ad z!dG3Rm}ph+!X8g!nzwg3na-^kc*(Glw*XCZ2x>*;<4B8&#e29}X8=r_6ggu@>+W{;=+D729!*zi?pTQO=GE?h*Rt#r~Xm=?=OYIF{0O~H2W986OFYV(Da9z2~y{)OLE~i?c zBN=ZzHnFr-Mz>+zRH|*3rC5-`vYom-Xb*49w#GvqRw`L~K|~QyW@%ioHz84F@mf4K zL;NMmtvY81E>UBFJS}U0|3wjje^G?@-9fG#ySy(xhR^vqE;N5xdvEkDdt;u%=XC3q z&vWArJQ>4$tV(hx9*u%?nVRn}cZIxsdVa^$O7(L8m>e@!tk1Ao*h3l2sZT=1jC=95 z0xW2TLSBmm;*zu%G%?a%zJ0AHuMsol@pZaPnLN71V+mVT{B{%6O_NVDOZ5T^hUfy6 z0}0?@jE3rWMO4s8>*=}(%#u7VjC5^TSvVxZ{29^aB+RO?#BfUW8bcaEb;m;opZspX zwbFh%Yg(oJmp+g^jX$cSwTo-2RlbDUc>Ha8p>p?#7T#9ApMGJe5lU;7I5DB)6l~F8 zFli;$rph3sOmP3*x<@W{-z5>PQ^S)BKC_Y zDq%`0)Hc8F+52CU+FvJ!+dYQXN?&N~4>!tKx>;TzLW~4Tp1m0OKi>UYy%}!T0;^K7 zg0HPnEQrOgFf7vj3iltEJcPnU2W7*4vtG>E@LHH;?ZDjF3 zLi=7$kzFo!WXOz*JVeNVFbz#}Shoc$KWQr%w?1XCU85ijG@%ZO` zGxC>`@&t>=D6gT6_1yt9j}Z;|0^N zN96b@qJ>JuZq^ynJed^O@IRv!U{2-O2k(mNIv(47%N}h40Z^EmKdFQ)gCX{WuT@Uu z^lk?933|4bViun=+7r+)X9_&JjNU)fI)8Kfp?I%I2>M^oSkEr^_?y!7Iscu8`qY&? zIf7@5mqCNOX)Im4_nnwJdW~-revT&IGquPu`}%vKCPP8qYE`yoOu08QK=ofG1M@r& zquNbawkX=K{9u{MB0TVQDuU}nMM?chiGp$9 Fe*kjaItBm$ literal 0 HcmV?d00001