From f870e037624e2076de208dd58c5f24529f6d53bf Mon Sep 17 00:00:00 2001 From: Liam Miller-Cushon Date: Thu, 6 Feb 2025 09:00:11 -0800 Subject: [PATCH] Add initial support for multi-release jars to jarjar PiperOrigin-RevId: 723955412 --- lib/asm-util-9.6.jar | Bin 0 -> 91131 bytes .../tonicsystems/jarjar/util/EntryStruct.java | 4 - .../jarjar/util/JarTransformer.java | 10 ++- .../util/StandaloneJarProcessorTest.java | 72 +++++++++++++++++- 4 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 lib/asm-util-9.6.jar diff --git a/lib/asm-util-9.6.jar b/lib/asm-util-9.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..cc109b03d0f42530936b11489d149ce511b577af GIT binary patch literal 91131 zcmagGW0Yn=uq9fyZQHhuF55P~QkQMpc2$>c+qP|YnbR|O9`3tuX4Z;xGJov&kr8ns zGa}bMin5?!Xh1+vP(VOH!v7v1Advs@1_FZqH_C~t3e!u=OE7{0DgGzm?wW*%7cdY| z9w-pdKlT3yC?_m0Eg`O=${;5Zlcb<9$OJchoAQodm16}VN;Gc;`TYpAfmGPHZPSgM zNny*1M zk(@gn3-R6QAIGT6IFgj=m$YIChjZ+GUErXKlJA!T$)Zuq0@v zlq1`mUhtJ*??{!@OIC1cZQ;gQ>b(kTsa##YW9Gf3H^`p#<{0W8_*lVl@f%S|YNLOP zV`zRX`TH{ShSIX7T<;Z}9e(YdpB5(P%x?ld72gMMcpmpZJL~sc{BYSnC&B)681lc- z4q*D*){NfD-W4$MFeK_8UbrmePl3jE!<7b$ zxK|JjPJ){=%$afImGt5%mD0P+-Eb$MJ|GU$K()8{7N;6N3L1@_)xF*uOcz$>P6+>Hiyp@INsC zV{0=L7dJEG|1BEjzo3nr?f$nKnE$^Tzg?_s|BD*T;dJ6U2M`c{3=k0c|5{C0Mb66H z%FO9MoYd_D>8(2ae3y~o|=?ib`Tts#ujD&X;$* ze!T8M6DWW_=WpD<<0V{g^;*{2MyBG4 z{aw4uPGDY1r*&dAT~+PY&TcxK4)C<{PC=QGL`E+U7-F8>v`M3otG24GHOO)??rhC{ zQJW-|j@f}QP*#bmSYBHG5L zqhp+;GKKHk%~w?CQW!iX=!PQ=O#DT)|O7}Ds8N* z%5AD`Y^<5{IRn~e>WZL-+&~CY*yzXoixhL$#lgX~z?z7yq($M*B#B5`naWryi^*(= zpDA*9oMeiDL7^V^riZo2wZPlW+R4YVL;2TI#E43n+=R{Mt32A*%})B#n~EiNFN#SD zwuWVsee=xM6=k!(cl2q){rA=*y-HT zFbIdQ1}lXyxw74Q!{Y1a6z(|j0%fk4*1R~i_>Xj2*&sML9<5esn9%4+I#eL)0SToW;Jj0ztUda3vTnh*%Yx|ou|ZROKS zTH*Pt)2ixQW;=Mh5k(%rmdv!D4ozw^l4po#EnwFleby|k$}$H(V$wJklBEwnK=ssv z2({4NO5owvu11tZLz=hxu4Tz1ZS?~tWa*G+-I1U|*ye799px;ktF6&NLVb^FUVAk; zL&MahaA<{iD>S(gcLKyzv!kVXdUX$CXfShQ(}DgNGJ3$ndj|q-&#{gP1f!1xUdTTK8VJLejz3;Mf1U{)9~ivQSt zCccp=vy9fAgg=^%i0R<@9U{*)r`EYo($i9zFzU`5w;(Bp-984I)>oqBz^pq$ERx^{ zUS`Rf*vsW3{g9X-3*Uw^Xj=lTQN*iGXSTeGntnz!<{%c;s0+J#uT?`Cuf96BwX_hr z-@`Ge4T`O6qtzc9E_)`3RUi^)Df&6Nx#^AfAOS)uA_9}9d+^r@p7d(P-e@^fc+Cz> zS!9rdy`{wichhOb7_PGN;I0*ki-+vj~g-;3Q9+L#;Hd&-VFmtk?26mYelAZMPpW7@BHeTxo9tLk^Y#G znN1eBfg38;2DxH=s~tGxR@Ath^T)$`2TckYjss!9Q1)}EIYYXqK~Nm!pUA7?BoB-y zAe5SsCa2B{8SS2y>97bDcES`s6xP+$(&cJtb)cj{0y0C+05Y8ce`tc)KHKi`BC*0J zrUhdS`jffF_TqROssD3bnfVEUIZw#15tU0-e^8&3J?Wjjv#%3 zdyj{ChlsX)jd_?s{J?i;XJ7JWv!1Jh`tGeW-6X)hLgxS~nd~ykp7w|v(fq2A98trT z9i`v3wUws%HlT6ZYc8yDyX~&&1(16)edwLMi^u4#=h8?On{X^7a;XY>7D}Hn2)bht zW@k;>Za2rl$YM={_5@T8dAWaa44uqo7YmU=ft_&uI*5;ozGBc4>CeHliig_rlUiEQ zhAx+ry%4JalT!@-FbZ8iVRg0}x)pQ$cb3B27WGWTQWZQ8c^8?aAKZe# zjKjYC@?u7eAnoQh!7|0> z%#$bzDJ(l18QNGa2-Ib-wm+&8E3B=t{$nGNVDd~V1fING z#4YQi^rFm}@lf;-Z|cN`c`MapUkBjk6b;OZ>iN#_n5v)EkL(t?z5+ zBTF)Mc#t6Wuv=3*sN7#K$b=c*KqsbRYYLwrOp|fAyM2C@uKLwcGOnld7*RDX6KQ*3jGN>5|zvn3H$s z0VeLCdt8~$fs}1{z`>y7ZG@yZCL=JSmAe@)q8h_W5`dk3`BCKE2NvQA?s|yUMp(PlSk+(@W zwLsn5TzS)40?w$Y-CHz!4myj6SvxQ`89WqJA$GvF6wL_`GQ6)tobII4ZY*@upyhIeiAJFYn$BmE_sJN_Zp8I(zG-O$ z)|7IGT(SLr=}hK0YsI$+HvcVlZ)Xw1;zcy#8KHOXDdPJ*wCl4{TY7PN@pKWCbd*$F zhunEl^(6K!lUi}?@pcaaD$?4%oz(!6ouJ2T>m1t624yE62?AiXoybD22_r7oy)#ya z5p{#fiVhlC+F^RR%8Lq7OY-0$JT=DqJu-`;v4upQ`B%iFdM%LVChZj}BxqVU)gT^h z%G2Lj$J*z-4VE|dW4*uHPdHjQ^J7dk(XYDJxc~68ATqH<>*WYD47LUC^cS4MplM4e zLIksYZ@R1*Q=?+tx^t}Xd*s3iVu*Rcd(P*N2O~i6fMa_3vJXKMaY5tmg%9Ut;vFwB zo@huAv%uNj#pAwV^OAFB+-rhCedzjpP4}A)txLR8#yz)gl+r!77%l-&Jz@@9fTw9F zNRiNv-En2q?P;cSv?NaFPePa1F}H+W9T40eKv7W}r-a_Ytf)pc4()0sPdV7Q@lq%u zvXXEZF_-MO!q-5O^z5Nqo((geTla^&w-Uu&Rd{D(Ln%)~QWO!V&R`H>o&|c|43>^h z^7#C-{2CD1*YL!|cZK-Z&jm-QnW3VNe6b7aNZR9^c2779c3j8b_`P9E}{92o9xEURQd^9ALj0>ASVipIv~jEZMrkdp1r5XLXl58D#_6Bp^YSS`)Sg&-V^Q!j zB82seaH{@hCBsabs_`DY;eQN?H-~*v*MANJ1Z%>BIjQ=&GadX+j|J38s_t5(f?*OW zC~;L!&tYpLf*LGsTIu^gxT>|}6=$P?q{Psy-ktY%kMG7MJ230sykYTY<_EWmC!Xjj zGn|T(=uo0KNuh}4Q72>aOSUcMc0M)7b#^0%1Q&!Cd@M>u7y!~K{BAqX)H{e|X%0-bp%Ep1t8!2mQKsmh1cu(M%v znamM6&ue}ZdtAd$C!PYwh6z4&grMFk2`D!?#4Uk0g~jH7K1NXJxSGocca`Q76tAM* z5oA&XEWYuitf7jKaN>89h?bZahL(?}Pm=d`&=|It^8`k7YRy*Ks4_*0H3A1vL>@+0 zU^p%shZeIC*ve|GHmg;~A5uKP9xDbj+$d-Iuw*M9OfAxhBJ~XbFJNQA;Jl)Ouj~!8 z*Ql-D{Td+;4ym}p^kiUF8V6WwukYYVd0Q_0?V$KBhm*{f`qD+KDekFJ;sNj=YFIA( z$Q3dJgN!p5iBNs3bMwH%1JCdBXvpIId8&L~Q0_Zmz7Z zr6s*n_0XVOY(+}ZpqIVgc}{`&hO&kHNce~cLfWA)8**76K`_xC}I4C>I32+DB z(*<0@_=?K@pi46bYe8g80m$E)m$g9_5iD?V9~;@7 z6kT-`Z@K`k`bO$K!T`lKnKxF&q2H+HPK7;nOkVcVN=7>*0`KOkNC0};aT>a5+R4g3 z=@weClH=iaa)@p<;!L%~G*-w?04p-|P|C1#qfGr1!dqf9;(bn znFg7YWSmEa;ec$W*1DheO?|^TFYLz?xj^-wP4ysw{L<-6 zwMeW+z(T65EZX9~T%gu+@ku(miCH=1Lmy~^ z>WWZx&E;UYd1gSDOPkvhfmH)|&>w*yNwco-?( zR(mCIzSog?TY_D&kH+ky9UhN!pbo-h+X}lweY~c{!n-46%&H*grMD#bThL=XH7hTQ zZ6`a^`GiF4&Iu8pTN4dc+yw6lYh#LASM6NLJKFa+?6aajl7cbCkmnYfr?tW7m=D5M z$i3K4bG2O3kmsup6X|)o?q{tH*SzZ^*mrY;rkio$W>7Dpg0PQKd`*mBDQr-h2bb;az`%0hR-o^ce)0oa6kp_lsS_&>p*(&<7@+XLa zNOc;0D(KlQJEwLoja+OK#|_H;wUK;u1SJ!mtXmu&XsQxg(jGPa?}cg^^o@-Vj>wI^ zTuIZ-)q68ZPoo(_!W^{}l&uelWQO@~4(dIG`uleG>i1!dbkLyPiqY%I*}5U(cr0M} zu#DMH zdwe7q#_-57BI_rIk0v0wt|x5GCS$IRj@HInr&N@8wyvpJa;p3n&@1B*gLgm>Su*~` z*tR^7I!ETLDW1t|io}$M6OLSBhDH;Xh-zt<>P4yb4d7~sficb9V~rc{eagsa?8B3}5#X_Ex0dZEeEFyf~SHGVM7 zq(e%nI{8fILVE|nyABGeWs0UdCC^S}F0XB~Expzm>x%<^+wjyDK6H5=fpBi(t}wlp zVGAnx8>2!fKGU?W(XpW1EyziBW)W?Kv9=1pgGBY#>t$|izD%%He)mFl#fNzFBz6w+ zop}D`u#vVe#+{>^0u)-B&{36qo(wbh=sU;IK_kaKkip78=}BaTl~J z&cpS(Owb@F?^7MNMW>{DORQtM>Bo2Ex$a6D;27o%f0B1bvn%CnemI^ zmnaI<_syE`c+d^zGmn(ACw8t2c8>5&DV*D-}PHP&mdXNoatA#SGpXx zc-wB@UEH6>QQJvInrxH0FgyB?SyM`(|U8W6PlK&`qHmXpi5~{X6j`^$=bvsUz4| zc3L=qIyW<`!2X@25)-)R06IA~EWZRD=5fQk{HPi%{t3gpND%plb}FKGMseVJKYEz( zPaP$pt=%Y)!fz!sq`$L;{^5S;;6tCdjM2hVe&Ha--?C^USUAF@b+8bv#RqzNa}@05 zH}mPG1*&ZL)8bvlf8rJF-(cBrt2Wrfe$3k2W`gS3H=_4x@S~}odO=o>;Efc1xWzK~ z>LcN~9F$@b+FQ~@eL#qr2r?8Oa&E6WJPF}OwsRqXy7LL!`ryT)hHyflsw72{)m{ww zH`H$fo^o3};a0rXFX}bp8uz0{JqdNX8COtkpTw$OT9+Y>ed4PHur5VypNupK?JEgm ze*Yq@BOt$^)>H^#tIUnvJb?>_{G0;YDZNiZs`O)9I^b}Hiyp?D;e_u z>tg(@8nCbnj7RuXYfUW~lNq<5qnfwteqnTXwLw;VB}u}taT1YoLNFZ!;T#o}8HNf` zV}0VfS_h(#r9h_|lRkrpBQKYhUI(BC*58Pz-=JwGk#!Bx$j}z(*Dv^!TW3WGk+Mne z*MD)LTIakk5QdGdp;C6X4g@}?Pa$aX_lI+y{YFZd*=$g`2~K(*pq3i{Q(xxRmvK(F zbLQV@!eYY0vzNDqQ*P^0+%_iu34Y51fzI1M(f37RaEw>Xvb7c`|6G^Q0arxi4! z6*Qw2G)XZq#J^+tiS|La(5yp!ro0Jgy$waAx(Zqumk7May1@THh1=;x=j%#b115}` zum3r$rv5VFzjPfuZApDZc->H!n+v?~6yooH!a}2HyXl3{fCGG{ayCFC-y^TJflJ(t zyoUP)A%A?S&&lD{yoNJ}n~Q?2zpq{zZ^b2!SSr0~3EeLks_{gu(ow%pzp!J)2@*;K zd4p-Jnw;$rNMb&Nb^IxFIOc~>xx>S``&);j@6Wm~-Ug%}NV{*g22-0q-wT6C6k28^ z`2EA<4Fu?0bpY}W;v5%pk1FolGzIArHSg~%MnXswza#h)fG9=kEw$1oc|>@}%uOgj ztT9k_1o4`^1z`}6@S1oPR6AC5$L>MULtH!1dZhOn>kYP>RJ#x91m#{t}ljNF5r zeH74qm-8f~`-&x}k=dGOQF;fJ&7}H@AlFO&9yq=Ul(|TBCISG6K{#g=?gT6Nj+Vot zI>T%`--eOpsHoZJ8#8Am)i<+wvJ52a$~X=E*=LlBCkb3vF|$H=P>R zp>8p9sk7RGlgNi+4#EBuLyC~v)KSMTNi8-UgpWpCeAm|(qz17PQactyUJ}(OvG0UL zg*@KZu5c}AsG~IT()m)FWJ4^VzQqXpdi4vTz=}%aQFwM6@kNAT7b70U7v;x4hR7rW z{Vpb~B93stIA=U!l7BE8H%d~ZPaC8N#<&=1*$wWvG(?J>IsVQhOZ=9JDImk0210<&PfVFh}_iFd<`cEg9&n+E4M#$^u{I^!X?gDNKm7m<;_RL1L|NR7`i zz|+umzn=fvcZ9}l6jn}{VJl|EKc5o%m=OEG0Y@FPOqU+%t2eEpPfycyNh2~)?jaXh zP;G+8d?5E;EOH+Qr=VNPN!;iSDt<+0Fy`YPF(0yrZPy_pDNK$WawHwWPZ4PcQ=3k~ z&qz#9C5UTb=fS#U%aRt;)+9~9&+rpVtT)Xj;#N+WlJ%yrM>(AD9nUDGO>!t$8ZXX& z1me$^Z?Kd3t;O0tX38Q?_1oI*g#Alu$_Amrj-i4cahcL)d`d!C0B{$_nvK} zFE*VJXJ&4ZRHVAtU=pFQ)`J2BAmz$J&7zCAGxXk_>?1&pd7|xLQ+2T_x#Jpwal=X^ z#9(#IjLd}?K|6S z#F%ef!pM6)xu;2a>1`Kx>seMk+_9+#tuw_}Dw=2%jnoLo=tZ6Q;{Uq>x4hAr+xiJQ z@dcft zdcww%#}x_W3i?CfvE0-CMLvJT2`-v5I`4@ME7k330cSRR> z1r~SV1SUg>%aAH{`np36-68}<3MtF;buD#xX`3OuKrDCyS^1z^`M@5o{cE1?2z%~^ zNFNdLd2gro{G`Gx{fS>Hy{YHLul>PtbZQ2kBawn z&rGKB1nT8b%;Zo?z=k%bqzlK!E$6)xRq!aer#%v99TOQ5yb@VoUsjS)`EV}1k@am? ze^n$E;SxP1=JP|mLF0Hftt(Sr7RxRk{?g1 ze$Ny2b9QaQX^BmjPi43iW;ueL@AN-46@9>O9*&&wq#CtC}qVBpaO!>3lE)g3q#H! zi@PAr3*m#JgjWJ7Zv`>|2xTkAba@kE%*nr20IITkMbQsU2_8HND13+Y7452Jnico+ zJSsp>FZb%hnM#V}EwSFyTYppdu+WDvn_N@-DM6`MsKgXCS?TqKY2g|}&6@iWI_w+% zog-d*U8Q%US4pG^3=iBf3m(KgGE+1GJT@El$U*{D8X8sMpB8-mdh!5cT46d2E!ea^ z@fCHDu@Nd$6Sf9sh;^(e+vp%G7rv=N)O>#e(8)8gte-zk zYyU$Ywq=~MH{dCgWK(|5qYhukWO*o!9FLra2?aOA5je951`pmQNaxjLY`a8cjA10;EP&jACTp0`j zaxQ=Dh_g+`kMPKoAjqM6kZKxrg=3t+i$v&y*NQspZ5_Eq(@4A3$_K5-iUqP3vCNKL zR>M4uMR5lN>eo@eBjD}6bSOD~pl^plYk+fVu1|(eAY@-nJn#jdlDAE5m?~6+i^|r? z{^%rjaqCLk!|5b$B8VoQe$z|aBdR1~7LqYuNF=rfQ;tt6CZ_SqJg9H!OM|V_NS~~) z0)J;w;+QGL zd6-Ve7jW|7-RbD7psy|z%RJJh_HaQfo6Q~|&+&;3JY4a?mwEKni%JV-!<@X?V|;7ocF5{{u8019OoB zxrqbm;-2|Q;AT25Pde~R1Jv3m$-WW>xB?3z-)!MN&?PXS5$iSlDR5Sc&U^Y`PjUs< z*X;g|mpAg!&_|kaCGOEIf-K^Rl5`CyaR4H5-WDliAaTrvBY4VuaID^zOKV0#6W56i zaZyYf{Y{wxg3gCrfv)b6-Totk%7^v_!Tp@qc5!~KCv1HpSwR`tyrIbJkP@DEoH4>g zteO`)@-x1~zh9X+qokiK)m}$AshXTUPV}qaJ3<_{<&^$%myHPkRiqqB%f zVn+br8hHFPpMS;bb1a&vqR=g)e_KXV<}=rbnN&%xv*p|3C~?S9Wtk^WM^I&9P+3&h zB{uidtRPr4s`+A?`xzUJTPBeg$)!efP-7cKJP%{l4tiz^eNbDK@Zb+=FI@O>h4H!= z-X&CdeA3`FUDzy(Ct{rnCdL#=8$sW&p>3Vd#Z?Ch+ww=7S_nb#qEa-#GsWbDz?zUI zH#8bSZ-TL35za+Fsa@%6&dvlyt-Yo0o$wNlXj774>QK)QyD;ICAex*jK7MUYh0gC= zOK<0|_!f}2H6ie@2zmaIZ;@afV8y7%H^wBM#S~@h1dBOTepF5CS9Rq^tE07*&!0Oe zoMQ;~L_ex;^@9FP3*H_ZxX_gX+*lQNWJdCICH?S~PQ7yjXrFWVw0 zQ)o9h_m$n4$*p0}3j>`Aq!GPu?#xb@^BSZB^as-7N1P%kp`qswbm{X?5axPWDhC9u zU7Haw8LXY1P%O_m6aX`Y`t?eb-DhcN*kLP$v35^L|W2`<6GA?K5Su&S4gMz`Cqi`AH zm4yxknjLX$i@ZT$^_{tEFA3$$pZ_X!hAP?u!`Zu$l*lD$qG;)icmuHQ9?xmIN&fW2aW!4 zfM_=r?f;@*f2ObwB2R-?KWOTg$>u1BG}lC-SrCh;l)@~*xd#cG)9w(-*{Dk1j{@^{ z?Azap$;}^F3~U-LNPF~pdhjl)tzvh&T@zM_E~-{HmftL~VLO2DwPE9Fmk@1}7<7qA zl^ix|k;3Fd;P3LwpRmyQfV?247&5e#!kiiHCLXO$!P0Z>9_<|Dl4o;A9Ql2EC^iT< zu(%TpD~l0-iVMo!a6hY-^B23u!m5%B-rpc&3mK2Ekqe;SV53?w?=!Zecx|H7teg&f z(iG5{42WvdZPU(z=WXJ4KumqH^0;f_K-6D68FYJni&7U#SC=AbB4JUarO4Q*H!V~b zIk7A${zZ#w?t#KQv71w%{I)VrY`ZVZ|WQr*sxoD7{zY; z-ivlKoOf4b`iO%`Azv=4WThMOsWx^=^N(Hb=-p-j3|2%kiUY|d}0~}KcmQ8 znf(IQ7q{vTmFOnCXj(0h;{~#?0&KL*w7eW&1cp8AHdVhqRkWh~LAasmvOwABlv)y& zn%fyvd+wRmDbC!DI`%V>luN7a5!(pz3qlKVGPC~KW}ydNDYztR^Wi zocP&E8mjUk{$jW+l9OGM-=yoU!IG@SnD@~xya9Bmv$ucAtyY$%W7*;^{p=o~W4HW_ z=A~{~24WElw`3AYLnUH@C1PE2U+*%JFmqrCE(LB;V4C`Ab&9Vn<^N=kne&ib&O@(X z1CP0a5p9;lKL!2{zdjq{@}xv?IVmIsas|tyK^ye?r3kWJ*gYDYV>NICAMql9$}t|? zEl74HfT|u8&xDx4#Kty7N)e5WbHa>DLBTeK3PTYqfQ@ou1$&Ya&oryWG)p?gC26Ca z>BlUz$~YPD#W@MOm9Dg3)?!N(JN3PE`X;S^WQ<;p<@Sk<5b}xmE?NLCcTuvh(vzjDATAj3N%d7%A?ViSo7aU^8qo(%dTum9%m+kz znKJR04@yRr0&)AhDvM;EJk2AvX@Wq~>!Vh&)+`0RCj+-=o+!tK^LWTRpHqrJo^BCl z{N^J`g9;%Vf`$&rE&c8Mo>%u07tZBO>| zV&yr~wxr}4yGv6~p#1XXnTrp3PW9@dhbJigYS!7kC#zmf>m2H%`bK%{eDga^hp>Sh z=Y`Gr+q?85$(N~TvoB4zmSBwi>gs&XyXQtho-pAO=bXi3Xxqo3_^uJrI(yOy@}g@EP164Gwj)#PZSSL^+Q>pj%U0ju)aZLan6`6YI! z9=adVK6JU^-UodJ0b}evOmkOSuwVDX+0jv^mkrr)k&`c&Yy+nU(f(CB`fYgS0oNR# znRK|j1tUh~r(R3qfa^Ui^F0m(dV&ZFmz2X+v$;oyf#IaSKb-+#3*wGnABVzbY7oHN z1l;e2|82svA_^6dlkrXzwGQ`XYC<;)&g7`&{9xuK%5)CdSqlWCZlB**_RF(N#i1K-{!Fs{ktDn8wuEc1$@tez=}5 zz^O}o*TywDjd<=8uS)m9ORhGB6&T$L9;=(N-@=C)+w~;bB|I?y#*TvSt~y<*p0#V#dB6-fcUR)$7=ZoJ%5L1QtCxMIpY*=??D$`o>r^` z{Od6ChL-9WHu}=quKvKjT(tH#zF*fF^n&iJy7f`M%fE{6ijzF?N>}+}p2vOU_P^UF z7TyvcK6Z|)ei5+XUcSBimCb$k=GYx{+7ou_{P>yr8nqF3B2)%`BpB;l8lTizSE zf28IK?fb2>s{oiYC~G|j%;~)Yd-i@)`26yV>IuusJG-3&Jh`0%-i04uZ;i&>^M=m} z>l|OXwSK~n&j=euzEIUGe&XmC1q+suufyYgPIj)*Ev;xMS-_DRZHs7n^?Nh6K3m5BBD|~WV`58UmZd}(1KglGFe}p;xQaB zmSrxrvZJ~hpZw#2-rTNL87l%<F19@NES;!Z)_zK@eKvQ}jVXtv{Yu)4>Dthot?gbEl;gz7EB6V4m0|F{K89qwh2tTytpOZ_@7lg4VcftUb@X+$U?G?h z(;yh;y(QKLg@qH_SWiVsaM3W`hR3wsTqwYXg3fKa;aa15)LOCRW+rLQ|C?HVll{Al z6pc3If?J!geZK{nkgJm`!uhyJ3f4Bula@1Bz$rDI&XbQO0MG%cQtn->$ z6vrX;n%Z`?p1`S@u?wAq)LF!j>9w%QX>P|RES0#aXidb9 zeYCJ?X$U7KxRl;B)kmTxeoV~*%e^URN5dyD8(5T7dlFNm3m;;teqp5CnwmwHe-hEE zh#ymGWl+%cj!n2Iag))qiXFRYWl+=jO~_!>S`yJViiJc@5KK42KL4%j5BAl5HNfa2 zVuguR!WCzNP8GtS8(v_cQxn0*L#$-F$%UTWH^6GD3AJ8B5Lkm}zk^yDh^hl|ZsmE! z`+IF*NIqYXJ0t>%4HiQNpE*WmNzu43rVK-W8c|1j9f>r{B4>+}h>=UMA7|pzK5#S(zsX#3Y`{ zL@5xwPO27cXEdzKiuW02Sxqj9L@1FZ`MZs2hqx5HChp%qUHA@Dl`yPw0fLOjJgYoc8aL1 zZI{Lf_E*HQ2_{8M0^9Mj4gN_*1B)OKxz&xb zK=ninMHX=b^D1acdeCRFi%M__aR7dFKSJ)^>y6N*&t> zlkmcfomMrzWWUElX*)-hjrhhru&AM#Og}kt8oDkrbAjQnq2fRrk{RlBr2Ei7X=Dp@ zGO=uRra_0oeLPclc~**R-S$2?ixaC*Oz|gl?Ug z{<#(pKZ!Z@PQogvU(DUa-s4P6?bSZ2^RU(hx=yO^`K49`wpe!gvPYUKHWXHrfU`-K zKk{Rts;n-0<(V|=%Yk$S75s%T6_7l3fc7sVwG=&zT(6s+3eB8BJ-UYf+ z&R$AI5omIjO7=31zwcXHvE;SQcn2+h2OVo?86{_m%^6H?v(yQWEWUIQR>J?Fk^#NgE1B;@4Zcv_DM&koDN zfHLH&V7Vw2AUPW;VL2w0IgErz>{msZ!Q6IADYxwz=MIQtvZ66`VwK$$M9HGnba2TU zZ4D!Z#OX@29Unl2SYd9Xnd`Z94L_Bf#n7DmAPHS^@jXy7dbJLw0<|!shZpIDn1cF-vjQrk6&5j3W-)lsU-f8f$$~= zO|GZ%GVy1lPc){W*jP*+CGZISzRuhssUx!+S1b6rvWbw%#pC~5Y?ji*XYWwBdwTow z_QCHT7r09P?M_~Ftq+-$k&Zz&NS(uFZKQ^YA_)Qs5W~9&`D;ph~W`fHCD1E9W z5(a$@us<*%PyRCCw+nW*DyuQ3Dp7IADSIJ^d!i9Z)tG^i6l58189!NMfLq2|AXi1= zrKWSwj_tGn{D~II173ik+8O(QqwJl6bYX&Z&9-f3r~(iW z-T#mM`~Q^pUeI1jDlfmBuib1GP*|EUMYKpS2@9$&R?7Wyqb6wVc9~o?Wpk?Bhamx6bZt?GZ8L58gJo?|lN=knoUgR*7K@7CU;MuOxpAqV zH{GY6FOD~!&+EDPK43s(6tY2Ec10}=+Rl=F1l+XpDrb>wXl%m)&%wpcz`rF69(pWX zl^d&Au)#L~429&1u%PuFcFjHdNiUYpB;x$4 zVqVeF(){QK+O@59{&*62 z7-{w3>rUgwF=wg#E}4B074Qy zO?gJya)U^fLy4I*uGcmW6l5ye_$OUM1b-6KI3|OD!EFE{?bKJ#0Bw*aQdZQYsrUVm zMvsx!IZR+46|b_c4-=43sgQl*SI&@a;-;Ln5kLf4_V3}0KY8h)55h9&M5!*3ga=+`KCP5$ z?_O%~IY{WJV?T~xAJUK?u!wWPP6mvdZ+&jOaApV_<$p z9o`DrT4=}?#N`+tNdCpyg??2H?#T*=0jQNzpGRKYPN_f$qPHBsqa{%tXuG%XIANzT z$x-F1;D6a{Ez3wjSuhu5y6@afN+!-;81{9L6ti`BB|Z)orbwp+H3gPfCdC%{&V`iY>!9sOz;XXZ9Q_I!Vc^=73z6Tz zbJR^4goYa{Uqd`c{md2Wel=7e*QA|`Qe97m<32V5M`E^PU3+>tox0KEEZJY8Y#W~ zfOgub!XbOoY(SLS>mODUcxqYzR7$NzQbs@L0TBr=$-O5rD@Xoc5@S+Ips|-Z<`lnhvu`@$tV_P<@ z(Bf5>{3;+*gP{|7ghYlY-0FP&1{iV+6fwg>rP4L4F4eUgQnSqJ(KSCZZq;Z+HcfhE zo;`nw@DTny)y3RZFotZKAN4B8opsdyjg2kfHTh=X2C=5nU;d{vfTf?Udr*Uu*YB=NLxbFZbCtX|?bPliHY@7Id*5$lw{l5C zJWC2BK181eqfB>4`FIs3{Ua z%6B!PWU%WW;^Y3JU{#i{qUPghXBww}89$0u68b@(@q2=O7b1b3%hw#V?SR(QIbj5; z1OI|ovk7GMcZ2+xaqk&sgWiZq!(@bBBx0^2OATTWpxr7jqHYR0cMw^2L~jn>H=CX* za!a)MNd6+IcF(fsksx9?vDIMVS0gh;JfE{D-<2%SmM190ji;S3HfSYAzYF z`6_6UaVq%NzPPhRTR!6-BCsX&AH_>aloT#&n;`y%)Ud9@d)!tQ`@BGX3HvIz>`c|%4B#+GWwW$H@FTr72m>;bWFGhlqgJe4AD$hnYoD3PF5w3E8>*^#`r$i)PeuP@l%Ns)6c*J z4=m+O8Z{WZ+siO@M$<>wrtYG?y@4!-uX5F+tk!*39oDp|DYHn}*zJwC#m~N)w?%Y< zU$fW@uZ;L5XD>^r3^%5{89GbQ6s~q5NcCJd{FC{Mk{2-=0!+Iv)zyqpB|rsl)eH=X zCt@Ve5j+Ntwid+F#3-;st9ltS?z(o?{M&OIS6d4hU?gsd7dEl|Z{18BdjDXauO*~I*L z*XFIrO{x=eJfG2#Y_Q2+3V+?}zA|~mJ}x}rKn{?7LAkae3_tSm^26ja|HC^rG*(IL z?orDYy5SYvB-)cdofHOfoZ`~>DD=iq3n+zZC~$ESqiT;f7E5IpuMyv?d7{frc!PDjm1AWbzE92(|1~)nZbWZ&9y^X4ScU#>~Qtd2>h)2qCk=36$X3+0J!;4Y`velVT8ng83eD5pISO zPyfiWi&6ZrycHy+f5i1$%+#kf46EU!>Jj_l^~RG&sVMM1!x_`drg-)Y-n!5Gj{hfX zOP$~8N2(S7`076k58NMU7`_+sxvJaByF-mQcP{E1a{Q{ESI_GwEAv(XL4NR`iU?8> zCf~E9aEU;R&mdDaAjX|xEv2!EU}eL0Y&v9(KS2_d7fVltvlT%RZzz3N;28G;W6h|b zSHzV$dzuzEMx|q_6xG!vaENfCY7bY1u&DmWJ&2q>lFk;NhFOJ}6fEt<#yCa@@fa9= zLv?KeOpxmxN#l^p5t~BWBu?S*he!*q9%e_<1j}MZk01sj%aEg3W*?c@oNrNPdrHoy zl}P&br92-Z-%ZBV0i|#lD`iprrR)vFA*t|6{4vlzNtIRW{g64`&e}S!67LKN34;LM z^As`&eZR0ld5i{cQZDOlrQu&wIUmMx;ozHe1y4r;>72hH!SO})yna%IYzGG~QaHDN znlz~j`y@$=2%3|XVTF)%;5iHz(4V~{$ovOR0i!DRS=V-5^x=XaYr_!Knjjww!;CyO zJN*ZkIWkj)O92Ua%UpLT1Fr?6`6Jvo`jiMx1V*hXQnNV^ER>YVg?}nwg^U?&dNlep zCLzTWo{dDvyQ(?*s7Ji$UsF$1*7&S|Z4g1(eAo-3_GH1hBXKEr19!C1p1y8~vtZ>xSvS&U1!9S@%fEuCvL z+|Q}??3dcM5gBmsR;*|+SHAx&~^gupkdFb48;QgLr5 z?i~q253j8wB-R4H^K}^q&lc#2pHVX6Tn;@xX6q<0r(Pn(Xar=8(ge-I4^*#d%tOMi z$kYZ#F_9=jw)h1v9IznxalmjPRi4|{MqxqDs530(2TOhMyrL6NiGmal9~EO60|JTg z;Y|M_oPCLqG;%KyZt5glzJ&l7;av3=4MQxcRe7H%r zvm~C?#kdlRan^HkaAGflB23H{Biv=Uo5z|vP!~|d9h*yVUtNDCV{qmT@AhuKunZ*0 z)oxVjF#0k$VtQl~_QutI_?wq<%R6kYxGX-BuB!6#sv)N=@eCn*sphtow9kj2AuZVK zz1iv2$H7qov4?D&!f=OVEDAK`*Q*|cs7l+?L7kfOY*w-16ePBfR%f3QviBug-kTYD zX?MtMPKSNPJxG!n*2!-68Z-9Jl_$5M#r_<`9?(e&Cv|a}q>@g~IegP}7oU0;ZDbwb z+tbsR=D1kVW3CT7&LK-leOxDAPYJM9@l@{77FWPsa{`%BPi%>Lbm@jNioL|FZxnU+Xn*%U!ga#Ff1dfH)TM$vuMYSlrtz z*mX~*4glQ4FvL~%u?j8rh9sw7;akn}m15Ux5`zV?CIfpkjR|UK2QF45p zJX}Y-f|i7EsdtFg54?TSc*Dk^e45M zIs`AaL~p+*cooB?+iIlLRn#nxUt5GRVZ2)*E?&RZ`+t`x2t7ZyHtIPNlg6?Qe4i zY%&{Y3M!sIEs0f56Is`f3HAgMIuW1be~S&Rl&bZ{a@R z{G{D^ks!uz`#)@3f3k~x%`SI2KVFeGLVH6mdPDs~UsR5t?XVDw$gw1dDOntNC|F?h zA5Y4w8BTn1ii$v919-f+iv|eLaCP99O8V8uz~j^o`=qq)O$(o=`V~goZq3t1`V?Zq{pGL z&s*)7#j$&OQ75@=8j#I%`p{23Agsd{XOHs=TwM`6$f0n{NjT_Qw@cU{_3Dw1!zTm< zcNq?#ZM}JOMKjzG1FxO$7~JBk*MWX81)d*Q*WD@9c3@(-X&Fe!ek`!5r~CTZ*3?Lo zYg^(^%kj5^SJVVXeLVr(_s3@BYAphl7TAwl|G7aHbt=6G^=R8wwD_H#AErC-OdPJ? zBt4O7o~phEZdbSTr)2$rv|RfMoM&!PHZ41ItuMN_a69u$%a?30S>G&)+4wWA-z-UQ z4!Lk7{`;o-uEOA;Ut9q>ZS5OwI(ETjbM3mB-hoZ^XmotouHYWd-hk+Y z-%~+3u_T%5jd#%{-}V-7xkEq9OJq|XEH30mC4<$&!8 zyuRbr2IKF0zTcK?TExBD~1m77^e#6`-DoBZMyY=U3i(2aMMa-n)rojU{ zMt81KGzo2wOippas>!2P(bbVqqkOoaYRixYe%}_{PAFi>JVi8Hj#qTWlI-4*zd*3X zUtf#1XEdJ2@bmsBLjKg>6Bj=E52K?m@SC=TXA6w$kBuQ>sv7sXAjrH}*DqbS0_>8z+53gnE}r?j($ulshqJ^VnD0Tyvq)_z z2jQtN)){HwCqh#)Wah;1bjqPAWy2GW1rg*U14iiql(cZ>zkcL>lpK?WDw)zHZ2gM~ zmA4e&m^n}t`}8>v9eJR#|5gOaeOhLRF-GM#cf#TgIwmJ zu=^v*5kK3;!_AVc5synKjXf)JVF&D|Wm4Dxs%!-_@gdnI%t%L%T1TA-wS@>nhuO!` z1R-8527MGkBymd;fvn!G)7E1GpZ*D52)a_A3>}U`%>=$t8=B(&2{h~1=gCat3{B&V zZED6NJ8;L4kzv}G{Vx(ekRL8!WR$*IQV<;YIe8W-&EnRvDNH7SnC;qPSaa)f(vg@s zRW`OMtvNdIMgeV&qmw)<5r>-gUVl0mfgui}k9^tVf3Jh=-I&q#XpaJ0 z(*wxS$bK9s<&)Gxijyx>M$|+%C`Y|uBq)cJ2=Ob`5UWX;Yw!`U1IT;Gn)Z|6vMPoX z`>{E6Ixk8eHJ3t|;c6K*c>Oi93#4VHrJYOV4PPJNTqR8_;y0P?*vMa(+#KXc8@*ZS zVmU?FG?h9)W$$kK-(!u|5wI2z*kk}r*s**eCN^5ss%YyQgfct($6Yq6)O2)`)*=2Q z@J3D=3KiTcWCYqbveB?!*uhABo)UYn@%22SD?c32?gZ$UcdTwWzX-MmnRmcFq{&J`21dYW6BmEcb3nk=-F~;TiPk|XitqscyUi;S@a!4Z)>*r&^CmX`Cglk7`+os%%{aTOUEl7?G78)({=GBCmD7n-k+2WkxQgoZZw2}LsBBtk`A;u z;D9YT_o$s#6Rk_5n}XUAk`c$$tVwdC)Vy*@z6xNW2an?={j#n6a&4_N#N=q+oyHSuD8K)8AdjkJ zxI7NvDCAx?pQ`kYzSkP_ z2ynj4v%P`YNS@sFr5f)OBYD8^ih3feza_p3)j4eX#L=oW-*y=?wSMOFcKW8n5-8N+ z^v$JzSscdY*8)36GyRt(OT-ZsGr4=>Eua=7XGLovxabd;H6GP7sPr% zq)tv3qG=D!60zH-YR{QP>;u_3l#Ic+Z53frN?8J@)Jmu$4Ng;JCh5awO3SbVR!-9I zV~BYasYTNS>$Fj>+-})~_mz+#>sh&D7dxG^Pj!D1H)eL%J3H>{+G*M#dt}>C`p5Zj zJ8sS;@>5*Cv!Cz=GS$rw?D;Qe;4_#-m26hcox4QVFG#lxBK>RzgHP=s#dt~(;*1@- zg+9}rNw{!hEK84%=%{K_q$0S%LHtR~ti!=t6Ox->9j}bR9rnNr4IHYk|NMbF1sZ)E z3Zf=MN*b1wbd(6$2q@V|S`G}kRA8r64HkJaj65MMq+fHN8KzZ;t7jwjMo(uk?MS`F zga;ze0VozRUqRn}y@*Dl3{9ep$u%o7PpMRSM3M@!+KPbA-{6ve2><=v1HdHgcmou4k&L>?{i!l$ba;NWKj!(;v7wE0;$vZ&pAO*0aiBje0X6{>( zMZrEf?$>8v-{f!(9dCoPm2eCti@mT9CHKNAw!$WbV1+U!$qgojKUt!zC6CX^rGuPL zC}UMf2kuYUr>s$W24NBE(2$$0KMTvquG($v4MarM9=ZGMZYU&&s9Lr5jO1` zzQ(#I=Xxg!j9V=Y5}$ZfKW8>PqiAnNU$qq(=oU!(gsOU8mVtn#4G}GSJRL(kUl8J@ zxNk9WcFHKu*n;&O2)W$AyEumbn*;=YNo5uX18PdueKPD{nRcWPDom|B>BN$eUzx-_ z`50{ZoBS8~K&Dt9M{~*972%apDUi1iIrhV;M?yLZH7yVgt{*Kk79B)mm!C=SZiY9_ zNjJB0#e`!VFETBx8sO_*)N_xLAB{&?e)N=C?Mbr|z89(2@84&}JC~8!+~aJ1>^BPu z=3EsoQN8a^S0HarraQ+E#Rk`Z1la{%nn@Qeo;Sb7NAa{!E&I>tijL&6E$@hB7 zm#WR0awUOXH3Jx5auRIrxwN3Y+y52iweCXQ9xL5{VD*)B!Ac$C3^yh*m~lxWO??nf z27b?jmt)^ht4)ZQ+tZ6}Q(JYyCLn`!tkJzUgnMOYSCd}%u#UZ@JWo+Z`<7W|LWQXE z_FPMS(PX_>iCIQ05>&kDoSGrZ!Lt% zWH~~W_o$ zeO~fUj0d8J8oI}kAPIw#M!_No7GDpwH3JU3qU+shygf3~XCx}i2yCp=D0Wv4>~U(S zgi4YdbY#f1gs-$qFU2m)Bjk;D-koWx>r^F}V?x^&H+=8b2U{mGQs!r?Th4rlwtbsR zgw%?8m+Ohj>_z1oan%UH&=(A8H3*>^7f^SV#Q6$%;0n%g+W9fTm&^8ZB`1S?%|Hlc z!FOF;$UE|-eVZ2~Zfe_rf(W%pZZRN#= zZimo~nNasE?2FqXv>my4W^N%9?PrLn)aH|ABo?Pd3Z0?n7ff}mXFhoOACFz}SY3-+ zh(&S;^fu{S;x=lDQ#<{2Y|P@hcE+|nhv?ps#J4JjxgFHsh5bb{w1&1@^9Iz?jWs&A z0g-E!wbYWN)4WOPO!3m=EF0IufJPxo?4y7H|=`R@fLq-SV z828GVZW&{3JUq^w*#w6jO3XuzEG-+_FI^_<{Wq!2VX08-l~3=RqRxl3C;?e>Tlf2K zQ%P|5A0uq{5CT4xB3+hsnS?(Qxc3K$EDi6TLxev(Bzz~UtN19P;BzvRVXp7U6LPyK z!Luxja`vTXCH$eaMdt+jfyOCQnBgoQTW#%y)?Sfs5rYAy!r1k$58bW$=CDOyEK7s zBY(qe$2wN}aSycac{NtSoF<5`(6r@ve|?7$AD|zb7Y+n;>oN1X76wxB=rMl_$t3at zr(XA{%@P$&#BzYx+$Z;mG}w&8otcqz6@$wFst)bp zhWE3(j+KR|bfF-gM|t)WyAc*Eop?wC{<`kVR+h|Lr<^KPg|UY~rRoqL0K9QoGlO(> zAo2wzgY33&M|r3PV9ZLJNxuf9f$fi&HNgZb?Es);w>V;MLSvXPu_dpbrNHR)CH`0G zgTY(;{r@1wWK{k+pZ+(NL<;8rP8^9^m{=MAFK)M3MMr5<6phz16AO(L2^Ex5LSB4h z1L9yVHfYE~lVOenJi!ozHJ_lN8_S=D^Ce?0ccGN;xjWl}QOPu8bmpn~w{)?S`n|9| zl*fsOxZ3qL$MdG$OwITE@sj|^^ge>{L{&}M&0DYExT9Z=)GbLO4_I{whVfgyM zYrYCf7e0_t`!+_EF;jIKg>D!OTePEPXNMh8CL}VH2{2AsBC~lS0?{&Ucawjtet*-1PU}*t$uP{&-G!iD+I(f7)KJm-AzQj26e|J{^I{1p0UTmFLd3%q3nF>!G3F3Oz;NX5?}~z^sxob9(nicHkc};%K#3VP z;izP{jaAL9dy$cH5^j%7=&R~MwSCQT6T>4FifTwims+_xg32LjV?B`2;+@YBXGbW@ z;G~Mg`k-1^i3@Hk?qVu#)KjCfQ?u4n0)DY=Fb|!ZLbL;#DX4hKJu}fe=?r&Q&8_rK zi`SZ}FelxR{+YjnX&%=l`}Tp#6^19u)3{fCr1GpMgp=oQ&(Uj@7WzavHXh=AxORRc z`?|^PJD^|4En z*jANlEB}#yaWMV9hLRsLdvx|*y@W7T@8a(jlx_lAk3I+e*67#R<_Hoga0lv{`fx@F zI!`g~zqaYU$@-jnJwu(6Daj^$p% zZPebMtgO;*l?i3HI3bm0?hzfjO8?>38}0%;kIn)ZtR6Z3CtNCmtAIvVQ^$?4@QO|$OkbI$HP9#N6Av8K?^qVX>c{_2zr&Nk6j%G6{t8G z_LMG*RhkdI{N*Ow9?gBJw3&wx^Uwl5Iv@#n(Px2T(|CDi(LcvXMd*8yLBxwFKDR&smY7N~f&@J(ewmO3 zFq4O&Hz&~5jl7JFF5#^d^tAop=DvZp7-*1qVrbkv#%({otJX86do>jJEu4&On4G`% z5$D>57XZ*!+_dlZ1}?3|~PI6ZZOw+zb13R-vmZ8TYWZ zO_%=?BVYF><~1(P4{~B@+H5wFOarZGO6)z!hHHS?6W@p^s8;Q$TpcqD_u>HuA1~^E z;)`itb24#cNdXpiJLp-7Bbkg%qIE}-S2m2h0GPFYu5J_PSRTo0l!l`4QZ)L{xFnx320@`e?`57Lxj+`U+MohWJ`8T_>F@O1myo8 zVN3sifiy)O46IEAYz(a2J^n}Q(5wOLm9(7vn>*gc3{4M-jf^MHcmxcE6 zFEoX@|M(Fo1R1jd{=YJjCQ8-nSU_cfCQ`gY5jqV761BOO#kG*u_KJ(^whh51?M2Jx ziVH#Ylke^8w6q`!R)@|TspF~7X^!I!=kMdk!-p7s58NJ+y9fheyfz=@e9J;u(JGF0 z;y`(fM7k3To5cwXaRWe=Y0F?~c(A_aS#$v$d5gtcfMRLwSDMQLD{&x#30+1;6Dh_d z%7R%|BGrhu+qu69dl3wM7~ig+j-#MpOQsmy2$FkOKR&LDCP9KM+O2~T8G2L^!~%(~nLXn*oi0Mwo{alY?{f(D}>v zb*DYb;!eAmKC#r&#Pl$()Ca;aMZ}q5b%HK{$)J0eVP|{}aw<1W&UoxI2|&@>ytKtz?YmjV=4zBl<2<#b`E zU}9uq5ng<y9B@KB1irN@Eob#{Ci{L2*>2=SchTRBcNOP$L~Pj-8yth9lcYllTC1 zefq&;Nhfi;8_I&I;B%*c5h*B1$`p-LeaX7o{;~Jmwsd7R=4lLRXB})GY=0!EZ8XIQ zY6hg8zX1KgBKQslDHg{kGf=%BcGU}eI1Fn#TPm_I`&^E-3VYEn1gO0R^({3~~&wOB#a>Uh{KU!K(C{47uzqE7J;@!x4%c_o03(E=J~QJf#pf!RTEAvRnaBH)G#ZNl}Rl$DKGg-<>`F@G7N8Sh+p|d z1g`x{rc)sp3z6h}GVk2>x)!ucWr`0KBn-H{2nh$2w`CixX_k4Uocmn$4L^@f)wRjt$IEe0S7Ctwt_SLk ze8^8!K{0y3PM|0H;ivLxzdBSY>XnnI>QjkT z-HXIGCr@6~``_m4->qPJBrEEHaxx}HKAtEs$$KQW#eMs3Z_!~t8xOQt%8pS; z+a1kB9p=HNEtPs<<7A7D>WcBX@mpvWuvP=^S`Gc34x)7RO6i*sgceCEUqB0$-i7`d zfi0+;rh-y`_E?4H8wqzoiO+dc&(c z(iM7Uuf9Z3H50-{*As}f9Xc-~JG(IPJN&~!QV6^& zMcM6lMSs18p1H~F`ata|hw7!T3#NFa9f;P?8DyiWN)X95j795Stirl32S--pYGA_6Pg0FqyI~<894RD| zBtqySNXR+P!zMq?i2W+jD-9eds{AV~1CbLJ!Nlwtg+t>aJJ4+VbR3cm8wsasTIY28 z&#VeP7by&jRXyXokkupuQ(;l8OP;hOSDvT@lU_(ibj%(w|LDOte1Eha9Vn*+ppzZi zsD4|WU_bYCD*#X8K(RaoNV~e6`TIp{Bcp?K1OjdYgjB_IR6oawtf|w55Qg-$NFHCM`Fu9mX zc82}b>d`qvZlp53Lxj$_X%=quFx+Xb>bXA#?9wX*jT3 z5Bbrxhd6<%TouG}if)m~bo-w^U$>|X*|;$qz#)Fm>yj)UJ$&Zp)to&=iCm`X)G zr&r`yLf8H&(K&pnLP~qWw99`@6F&yrIRU;xm-j4XGJGuQBFUR+TKLH6rizhXOK=K9 z2~EbpdpBGo&j2tv#7tSZU1eutRkbRNnx2F{nPbA)mu;Lx=a*1H%Z$inw4$~0_=!I5 z!!>o5{6dSX`}!IIZJqz`H__DD3{9_eYKh=jeWMaB3=tQG48lyX{$jzHN9wZyxzjcs4$i{k4)SB0n^2_ zJEEM=DOrsxNG2!Ne`%{6hCnGxf5$>OqyTxBvQovV{u7I@w>-Z*zd66A-az4dSxU3k z+WcN(V<|iEa}E`GFQM5Khbi==B4RPkut;jf(>~fukb&`+ifAo|K~VsGFG$eIohOSe zU|(P98@?M7v(?Mt4pWB;0MpX7OpLocdF<$rUqzhyUb6@Tz-x`V*p$Qad%*r8ag26y z#EO@Lok$#E3am$A+?ej`DqCAkF^$$L!pVvFaLy)S+xR?pJ6I!gJ=sZ^VN3u70jOW# zP3P&kJ`s%_TD?@0%RIqSTe9->S@0#CoKOm~xC64dRpCnByt9A<(QOQV$xyc*{t7M1 zCsNwyu&A09NDNLmG>9WnKd6%1azk9vf9}RID;U($B{L;Rn((r98aJx7lre718*F%5 z*VjTvRA-BXUKl;J!7S6igo~h7(yfn72~%H?+!8=dU7@#5ChEEiy4V??AF`@!DNY!4 zNY1HnyKn#XG^NWe@l>wN@3MKp?VOr9&}cdLZc7`}F%V9z6>m&^OV9|`ngYCMX{f(K zjUdo$@Zibd;-P);2-Jx_6OD`8H~{31O_Ahy7UMq)^D`|kr;~XrAdTcAXa1xYd2BN& zK_114zJSZ5$FLEXml~Mj_Q zesyO=CGw;s)IMyAC;sutf<8;8ygBBZ6+Ovyf2e>9#w$c(0O#HzTqQ(P*3jriJk;%b zzi2!FBI8==^&8ig!@Jn2!!}8VeKlz4&h|{^ZEGqoF_s+D)lk8!yB%#x&Y}O^Q-8-2!f9?$3KextmfGWg<&>qCR6??Pma|UA% z?UD@ib0vtv7q*n5{w@aQZtm309Kr6yz!4Zy6pWv89n|jwUk!^N$qaLZ4-ImK! z_P*JUcZ{=Ocl%EkKhgUd+68=TDGuHRdG9Vz#v<>5qy?5)uUws$9iy)`hIw~Am?);e z_Eiq*My8x1lD;#qN0r>_8ae@b%)5q4p(cy?268OUkHka0fZKdqTB$)6e~N)z1&H^?83|a2aH2 z_uzXjvvVDHr6+oA0@u8z+t3{`|M7^3Wi(PQEkI0cMSEz6XH*M&YRF5rmzWj?pBACT z2#?E%+iF19F&`kK9>uM{#~ij#ce4}t`Q}T_7fOTQ=jetMdI#PW5qd|4KN5Qn^^=Uj z8zOd}|1k+NUGZbOH_FBdDK}C+8E3c|`oQ*0pAf8w%Po?l!L)nQF~!x5kDl zW@YWR+=8OlSbPt^3Gt`ddVt;9^-!y2^uEIyvB&xorpL?^+I9`$5Kr^`v!(VBvPJKJ zR`bGoli+?Zf%)#g38Z!P#vncg4(V{kq|YU1u7rSvbyeorA8wy$CIIiSrnMmH^%wqx zdnH*{EMi&?{3g*Cq+A0 zm;}wzi3MImCC-hAjn8FCv1?XB*S_zFHTJ^l2C6-%w%9Q5-Zr5a8ailqr#m-UICe8W zAD&>l$FjHk&1)%@hga@g<7gx7dry#<6dOe51xVmm;CpLu2_s+$xMC; zsq3QQ+zXXcb|&7j=L5SD9iuHpue^`l&6ju#8cO`P?Z<*!`9IXO(H&i)wJd9xo zm|V^3dwRz@y2N`Q?|E(`ofRB5T=km_kIir6Cmp7Ew`XD-{(c^=ABHwywP;di^8$A= zC546<4o~3!TJ-gh?+#cGsB=w2V&*$z=-`t`reMiyI$FZxI&WQ@nzI; z;LPHmO z43x1~toMwqnB%tbW;odCKogk6h9m#D897)!Hd*(iDL&>|zkM}q<}MS$nDES$ooij@V+F?E9t zGc#T*AZD!Ni*8MxeYH$?8o#c$1Vs3>hbeeWOYr6D{&m@<9c1gufTL+SD(C{aLEupB zS@eat!9I7(w02TXC@4@cesc z#_L}+&h7ps3$>gv;<0S8IIY8xl2^0^Nfsur6J}Jz?=POrCmHjWFP;oVb&&aDnDH~p zi6k*blPOcMWL6T}=uY$K`R)Qeh0Cq=gyH05fM2|)P>kOptM=0C-uFsB@`E3hsTJ%l z7GW;?W%_|~+U$rWR^x4=^OZmcgY=3K5qI2q1Mss0wdtg2RU&t@J=)tPqe@So5cF{Y8-*wV#I(>G8 zG3^`rQV^YaFN$&bs~f#I)Od2>`{8UqL9=t0&y+jGoZ>Tle6r&C7Jt10F8T9e31jIb zI$0%oH>dJT1!KGf`2nu?M3zGM=Dek`j9*~9Gx^WNPB(fD^20H&N5s?SV*nm+L#yVm zYCtxy*^LxIzux&`gPI13d;f|WZQAzdy|v=lcx3YaIuf_}0h2qJ&w7C4kpkB#kk%R66TrBd?h|S1f&o3r-a&o3mGva z8YVmhx^+nqb^C^Obrwczyt~cl!xj`eEJkeHt)wc@Bi@iTPw_wYW(Sthis`cXdP6;~ zV~P=YB&C<);4-d#o!~$HQ0~FUN0;3@D$>(>HWlGdf@7Cv-hw&gx+4Y)6vH>i?7?ol z;7lZ!>13zMy&?07GW4Wqs)4cxV}8WU&_IKgHB%H%@ehAd)2dTb+HE!~e}(|(E|j@tW+p5vS7Q4OW(KPV)|y>PW=*cm z6p0e)Hk9#?z{@-Z{Mo+X|GUhZ0(*hP0RaRgivR?~_VM1(s#VV& z(NvIrof|S`Qv8Gd>^VRM<&6uj1xZP_C18xJ439o83bKFBYs9u~9~BJ#?US`!j2A}t`ZGFV~x_!lJ7j%%e9 z7I(R6EgXax9JJmJobvy0c8)=sM8TS#Y2$0#wr$(CZM&y!+nBa(+xE0=+uFWy??&w1 zKZ}T}ii-MuPGz3Ve4qDP4X!Mxog(K%2qDiryV&XpOwiXxOsoWe5K-pIyl9k}fon5e zFcy6+dbvbB#X9+bdOS(XGN-*@0J}fQh>l z#R^|KfP%F-0ww5ixXYmwRT3SJnY7nGRWT%|0w2^`!ad2r}fT&=Q>YIWPAGG3t z`S-M9`QjIlTcIr}-~U77X$)Q}g4L4s0fsuO+kgWl=m#iaOIsG#vSwOp+qa4?50*}j zUQDK`wiPcWI_K{H9a|68YL!pitXFAjw6CFW^3K?Bte|#n!jsXr$FjUn^4NQV&6did z2mLNiuiuJo+DWO&rtIdmzAF&1y%kNkeTg@0MDQxNBDtu_R^-!W8ObB=#K0le}7K){k19+)yC3z5H7Nah`=<1});wPD$ zX7S=rLUDx_Ek~ITr-DH&^cy*w$T(oS%6cCsA?UD`l}OpJq##dWv0v{jMv90_cQr1j zkFtdEmpTJ7;z`@I5b>1xz)YA_jVISvEX^vppD7n$`bpK+xp!Rmc=W8;hF>?~*ZkbZoX)BGRC@8AK#Z+f>?AW9`qXtfa!(Qv~9B{#Q(+nU%L$JkwAO&6i zna2(ZD@Qk_%^7Q-xc&<>g`Mj5)NLefQWw^pc_QM7IUK}%u}@p)qP(Cr(6Ce%*FSd@ ziwz)RKO3RHN`#rXB-G=1^e|Pv+H%Ik-b2TYOXn6(Q(J$!j)9XJ5o;B*9$=w#mnNkT z+n;yL^2oO1kFjzc^)G@Q7WU-j+YJp)fd0qc%98$SLe^^`$bZ~T$rUnfP9qlN>A zLM)9t&Uv6|sbTFPOEx&pDPG1au0A(~mKfiZD!L8%*5LugR}ylwS@NRTTxJj8Eo98; z{^Oss&MsJ+rUzKjT^nhE&VJclmcSwTzo*#zGGCB$(b`*V)0lh{?YXss>}zZ49-6fN zlx`>a`MYdtIXgT^;zh~AA$z|kVbP*m0XdU#vxClAY5Y{DstlAgFoL;4*>~6 z{@l$fo=GQD2Rg(c#HRBVkJ(igkCRz_kB{#=q&`puV87^2wz9Fw47DO>vMNnsHFl{y z1xIUxB@*x7#Atn+&!7o(XCTy|1 zLp2yLZruO{%Jx<^x>SDiB0fTtEwaqqu>lgrfGtxouWdCd!j$dLB>oJVje$r=K0FJt zQ1TpkfrO}f2x)=F5dGTg2DD?H`dTqhFjI<=snxrdsmH)d{Sd8`$iOs~Nu*J%^=uW+ zNa?@vqza1>hKc<64JAyT@Ku2PS>bg`uK}`FUnsnq zXPr{LVg;89@o)dM5}|wt39qG(hhOtI;@1p>q2KDX1mjivMWq;v$Xg~e;+Ve;yaW?{ zdev^08OqUsT%t~c^>Ow+36w_)b>q&`{y{t9Gr4BY3H%-gRfmA2r|5N(@U!@hSpTa5h?u3t_6j6Y?1cNnsxXK828YEE zg~vUZz_@hIN}Nzi4%Tk0Fz2f?FN%|(fM9OlWk~Ma9q{@4zo&GYHYB`sKYPjZXW&Ta z|6?zyIa>T61JxW2?Ct+&H$6F_?>{!yaL?(LtA!3!BO&2XKtMCg8hWQc=E6#$#BBft zWQzq?Uf}vwdk3i87oO++!BAwl`QC4qTm2~C#23?bTT10Q>-zVp%;(RoOt$yW;}N1? zEe?UZ)%%wzS;K$L!NBts_Iyefp$l~=TSV^1iXqly&jlho{BKm>Ds1HD4cGUpsko7% z2;4B|Na(BOW7Gx1dQY}fm%N$!RO~?3WCMM88L_jpmN zuK?WIyjd$B*dtzx(D6bm6-MRsDCxjmI!;2-sq=;|{)fz06zAMsFiyx&5A5h5;ec@F zJ4)ttg4m22G#9F)y5t^X3WlPP>Ciro00xB|_oaj#`mEo+(Oq(Oihf%8Shf4&Idjl+ z8k==Qp_Odny33VB6D~-VW$G2DwGcs~mh6mGL_{NKig_C6=Lxemi;1EIi_u&839+Jn ztLS(zn9wCE+R-Ci8igrbJjE9G;Kll^H;;3|2z!8qSAdDvaMUfRN5u9im&0!-{!&^+ z5>!eRCRCLrL6%r4gGW$f@Fl9Gg1d$xx3s10{c)+nBxdn$zp|c?>aOs&unO&cEA{oW z_xv?AqN6pxbo2mOpzi2jhzR;5K-Pd?7C^@H6*DEvx}SN;ctnM}=!WF8TG0exNJtOJ z1Esgn|9w5`W!y)~)BI2?P5#f59RKZz@t;5SCND^LWRa(rinFUpVhnt6;DZ2#YT`tY zws&fsx79_RB0=!H6-=vJBc^&%_GA)ol@ZvF61LM%KB869dY_2UZOa*s-#_6C-p#dL+*YGq8YXBT-I$ z>F;*sV=SOv#E4?#U+l3S#m9uFfo6H1@UpS-L8fa)BoTO^eX?QZG7%H0UA+*81tAh> z63yssMC76joccWolbW1`R$sre>~EcevdzTgZ>%!M$Yjl^gc0?o^|6c5;NX)nv|!3m zJww{`MGi|Db$#lKq{&b)g%&iTk1t-(Fu%~)4My|{%ST0Y{L zUBzAsgAv%e+FS)C41r{qQ@v1-z{~^>5H@2%PtMWT&SJ<=kdIX#M%CMiY$W8t@oQ-M z2=GLk4C0`$$4$!r@_DuNejz?iE&2t%sK>L088)jiy#lqP0oE89^XLc+X68)+3-HoI znX4h^1%1RM2BuF-(tCXrR}>-Eh^maC(Ifh2&kr*$7|Ev@vM1c1prL_gc#g zn(}LH5rOqXK3UVtrb$6>QLnCUY#TuY$E~*>xs>dRLhxT^koCuStFH+q1G+a@rg%i9 z^lu#1Hhril8PPTElK>}u?k3e7!kp3w*qb7LqNH|xLg{=3b0J2f0?7e`ZPIxp@Jbnf zR7^Ko=@N(E$X0sbx@!2QC9R1dJbLL}fa=d2>Q9!^?Kr(xK2Bl>YH>zv!6w*zP@_1+ z`)WY-`}V~Li#a@}lC!o*HnA9!0qWY-oPMXe>QC^f^ELgmW(kU(L)hn zBNNE24;HG~cr@rqVzv|(SduF{g{(1-*)p7NEyJ(EOnMN+1A?Yw5#WVgi=2m8bWaV-5w_M(!s1WoA)*&;PE%!zlR_hKv zcQz3C4#q>{TpWkHy-$A~&+Lzczjz6;Vny1W6%;q50H7^MiW0AL!;RnqjqTLuZO=D0 z8!5h3>LsZ~g=1#^38?e0N(!al+w(vKdx+V$y zgBJ4s8D0Sk3Nqif5#CVHztO<1HCMjb=O6&D7tZ1wuYl&_gvmy|)1lF7Bx;b;I|P${ zQM#`ZXX@hIjMg38M-t)_C^0rBO(!L!ojHPw#Z^?niU$(Xgcpt0G^s6m=7N{SV<792 zjn*B_N9Ip==$|)3t%Gb=aBM3QmCDHlDn~WFmsAMTDqPf}{ zinI7Sy}^Y8B1R8Q@AJ>Uq}sEPc*VWo_KTppvN{W#Q74i6i$Zu9^HJXQ>C zFhlUw1Rgc(8`R9zWuJt+kGJoU6ndSX$+ z=OTZ6dhv!5Dj$g&jrJZv8D)>0`;-MtQuYEY>JJU+x1`y5+(iO1(u=wE2940Bo_a-n zox&4gocqjf%#67P@ClkWTk15k``eNJ?A-zR2(c^MYPI`K=28ON#ucLmjpaI2$GZ8#=sc&VZbeToS+xM*z2H zNP<}6KrUWP9U{III3>%vl~ldPFEzW(?S_<|KoEXGlE)A)L&!{8P`OUJl%U_XqWo%) zN!sY$tPlbq0VSCsJ5W3cm0xIIA|W9GUEq;r#ff&eURO+NuB{c_wI{#OXHr_BmhMw$ z0FB|~g6qoF+$!YnqQe&R|A~STKqd)5%AZPg_Jc96+~KcYXqi-KHNp;Bauwls6Theq z5+>jhCL%3!w0-Ned)CG_NcSoJLV$bQAX{~;yb}7EO6@zkNT`EX2_kPJC#_1Z?+{icIB4yp0#ROh{IQ*%=vGufvBm8=m+%*8K|| zi%ZlQ&Xt$tH>pzRtZA$yoJ%4dFE#%_N%M^d&m9HvncEfnBsQjq7ULL+n7{2Kp z^%Tj@rLIca{MpqREILm+z^5DVwyZ?3rry6Azq32$2t2b9og(F6XOE$;0z43(2?8ykZ+E z?-yRdoG7upd6ikVuaYpx*wJs_D?>gLzJi7i#M_b)zzby*MTlfe7&CN|>N{H)gbpG5 z<6>&$C#Xyv0-^aEAK1{pgI|)6U5Sx{q$3V@*bIl>%+C)Q5O-E+ zvdPfNtVl?pkWZ_(;b_Q5uF!uZ$F7f~XX0y|O@O{m}?GHxO=tD^(_ z!QLcss(8uSQl=r8joDGd%wVK1Bn?%#b2_6&(MsYxuwEn6g_}d*xRw?>X|ZgSj4v%G#!Xck3W%B!!A?dp)^}Qcj)Fvjq2hMeJ&jQ+nk>0s9Su>FKQP&BEH$J zoK}0mHS-VU;RQ-zrktMM<#tfk(b%_~jHLs1R|H61nE8CxcqP6ma6n$J*R!0^tRbkd zv(z?H<7*(zoGO`HhdU{r^aGZq=(UP}ZjUB9ht^mj3|I20)15Wi45B~Kj0l!s>||0F zqBR><%BI`V~54wrkke5`nr zZ$Twfjq|PGmCPY%XV?~5_|=PNjNemgx{}n3TO6r zs}Cv>Ra!}sgtELNLtf5Bl-+?%&MPwraRWKao=D3nNo2dx7pA|^ZmLK~nhQz#J}|)& z_mAG!g^`ij&>ZCGAH4wDa)%X_L&Dgds6$27rs0uv`zT|bG0TzHfoGIQYSb>bDD^eJ zZALoFGv+zb^ho~D*ZixnEI;me5vey~2_ZRTnK)8aX>FBrW!Xc20~;C2GyyLc9P_O8Y>%91duZjf;6dguDUGLb zrvb&@!5>N1F~T5({OcG51vY?(6by1ydhDcF+(L(dLJ~d_f<+q^Rt>T+B^zcJfnbo4 zwNyK-w$=jd$D^Rh?H8Bk>;c8B))#Ezg}-RViE==SMtByXdvXNsI_%1u-6S!nTrra4G=L?Az#_s(b}_QJj|12{)F|ZlG)B!jA)!$fXZ(_TFrN+~JtoXoJUe=totYd#{)FQ9vpFMRn+AF}FCe{_M4-tx*IcwcH)$-OT{ z%Jo_WAXQf)iJqdHc*|j18e`a|X+9czc$g^OAmGC*%Ug?y+y?DRbGz@Dvnuz}LiK*> zx|6|M64dr8!ETaz3U5d2(R;ca4pW*cT>g;l4(-z@NtiRvrsQCM(dDXpl#k;AVc1Q9}=j5)Y1;wzt zG^f8ux~b59AwxXC=2kxN{Ts?TI-ajJ)Bdnj7}(({)vhXk$`$dZNei6NdKLARSK^ zZK6)Ev&>5Dk<5Y2RnS1}KdD8I{c0Z-VJ}XP@sn24{^+Q`{sZ7{wg#EOel&>C*h}Bl z5NSJOH-Pi;(*{)OUjmM@9XwSS;%f1rzy!RKXY zTuFN@vF)0@Pt;!-wpR$PS(?UJ5zd`YKBhl{ z`YTN$<+utBzXgy*UcpCEBt~Q9SN5!(`DGNFr}{5`Jl;#D_|7y3@?entC(!mk5|Q20 zj2P4M4c!rHON8xLRb7NwjuoDIOLFL-ODR+3oz>>WpjvKw=F-1n7!(uf*q8P2pmNvb zqTa)vlRmg_OPW4%l0uy4Bb9D7df^k=LGZwCeDA;EAHSrQ$oC$NsYVl@KBb=vo-@L? z(5%u>U?Xpbq*a!|`Vl5GnPK*=Bsq2JQjH!6suq$Em=lWIPB0r_kci7K`Sm6Z}R(2cLV)H}Jrz3`*Oy&zhvabTyt%w)|R z#(SUo>pam|mK`(w@7C+yv|ER(S7JL|Bd)%zTd|FsvBhjn^s0^bDAe+`@&a_okm{BC z;Q{-D_kcGbgk>pIZ=@SG1X7LX#9KCzDkhaa3#h-)3snwGwW)p5X~8@cD@y*#eVuq< z$eywN9xz?>EohXmv+^`3H4oW{wW9WQq*ElLWMBi_X>jh*x**@SZkiD(Gz zw7OBPMd+nq9{JS1XQ4BN(h;1L9{zJH!%u)A6m(#s2!6H*L1Y!$yZZsuKi<_^!3!Z8 zLf~aE{dJQc%Esbvw7m$XJjq>0v}z%1Jgv0AG;R4&xIU5Kp-_F9T?KPt?F?9dyiA%E zYaS4^5%`G^V&Mx-al=UbWF2q|YpjFXa|1w!0KPhTY7;!RR80y9rx9qmb|Zw!RLGgS ze|fRI4ZN|HQt8z%@JmRdIBO1(Aq~%zIcOX`$qpWRzsq0(YdnD2JE&#DAtS0KQBW_# zTsw$JLZm9XR)#r3d;8BF0<(z#q$8BKPD_rZe6j^s7DmsnYcQ=~&wOw|I2?sAecq4| zcG?!IZv9M(<99wQ$+5L8zm?-Z(TS0Y7gFKGRLucchw5tUvKNxR3!MeKaGG7! zGr)i60+@~vWPUD?W^Y9cy_Zl9Lfc>l~<=&eAvMEpR?>_-$@D+De)2M=#ZG9N5-0j2(TP zdtmMw;r(Flpxq?G27x3ESc7#gom$W}d+fks-C#9TKv|)3=BDk$zw(!%x92=}-x(Hz zH1>r`B}tl7>l3S+%^qCRG^tCCNmEfLHh-4|bA;|p+1ev|RnUWDyd>F3ROlrGp;V>=l9dO+!H9haQVvhYmxy)_>W{f+ry9!yv4k*3% z;6kV}+o{^zDXwn8_4_^87L|jP7$zXX3U>I|Pq)9ql+_q}OjHdjKRVJ!%!_M!3n|}6 z)=$XWXL?vp?Nza(2DMGu2cXpqY76PQ?yo^PLfhft!4ggTqo?NnnbSM54t@Qsz{Cqv z$Bst9io^IKjXrL+nl(jl^=xpX^^$GR+7rrQSprtaq%mctZ`2N}c9A>9Yd-o?iuUy) znCAn*D~io~*gYVs}B$sWwf5^CIKC_C*lUxJ^j|(@zchRb71r-)N=blXaTLyN)L+{Jc0x|MbW0E zbzp^{^ni^GjW|B{^Jk=uF?*KFIJ9T4r0S|)xXPZG#L&q8^S)zh>Be%bk6OlOnP5Nq zSH&^*5BqGAe3H?+fp={84}MkcE=Edu4acBj#~kkd)US4diAhC;LIl8yO*N}{7%V3S zTboD#MCer+nu$hHOt`0B|(WiEY5sznSxovn{FL4k5>dKwptmY z%bH1CojN7q+-oJ1u0NsvedgD!xwciBw1s}09AU}cU5C2VSy(8Cm z`0-171a6Jne~5OaSXQn|5kqj6%{T%!m4c3WSTq!>P{>yF%AlEFzl|OtWq$Y>Kcy?| z&|vTmf^w|kBsQks{3{D4kpY#|h+2AB|ALC4%rFs|lqZ6S$~tW^4n3}8%vcJxVJ*v< zy&W7Xq7nCBT(c!yR9L|SWudbIbxLk)mQEUk8wPJ@SZhyEYfn^bPr&e-*3Mx~zt?BT8gOg)k z5Fz=wzUkBGU1;zLX7EX7@JTG}Qj0#~8(s26PM^{jOY)TqXkEh54SKx|wb@A{@vhvd zs@1JJ;tz&*6{%crwZLZn%Bu`>0-9O9%O3-CSc1Y_KV zZ09(a9gaO>vIjR8)#as9NI3D&1PffS!K9m)MaPyEH}D+X)(6Twb>Uqt!7 zC9A$gtFh;Q%(+2HQ%&kCs>L&n+d{06_hq<|=A0-@_j`Q;YzJ0z(>W|M!d2$r$P zfzJb%TP@dEL$7M2u~wC}Sp^D+t%+M*2k2OH{h!&KxYn%+SMuNvMT}^m%>GR=D78Y9 z`pquunpz;ZC#$|jY3_b~?f@(>3nBe9R^$+?0eroQdJA9wV1550InWEAWuni@#wYo4VM(`6cgK^xM z2?GdY2yxXO@O=%r{8*4ojSBQ)ST;@`MX32jKs=5fGmJuc$7(*TbRoEmnY1&H=O#@+ z8}0BdPyN5DAXc>jZJOaWQd%)nf5k%PQ$}R>b%L}6YF-IFWp;IRuX5Os?61RHpNY{+ zWx!fkK^+^*=ruF{#ky%2d!(ubxwU0*}ffdar*lYU7xC%b;C2`QRTeNCVj~=!(-5A2tgxt$Gg`by{+?zD5OZI?onV z_;+H$cc#~2x_fK3e>)>IKjR;+i7~l2o+nx1cev(dzKGhp1W~hq+HbQ)xKgH~vDSnb zA+jMlt)D8At8+o~ACHl8i2BG+kV9dls+LtQ!498spW>D0KZn!*AT0>`Jy1v@;^5II zN|14=cuf)Z&=TO=wdh1SqlV0Nucg3vM8R;zZkQMuyDrqi!{mY7ms0Q%ro{-UMdoTi zV^zU*t8huJCh|}X0{{K8YD~7TYaYMzCD}meIw7*iI|0Rw-x)fc8UPUVsaUO`OF)~j>3tY{DpjGvp|Fm_mn0}om z!MY`aXMJ^q68n9S`YCrmeh4=b-W!V7!bGPQQNROjk+Ae6fD+{17{k1q8ki=|Bv(=c zOp|rTvWXAhE@CC{)z`f^`l-)3{a*>JqA+r>cf{n2L^>BwBmuP z_=2raPBYH*ysa3pBY1lxmw~@4+SxP@Iq7qL+C`A74Vv}hRiK^u^Sa?E4Qg_8EnU)) zwE~S$MtdBbTf$_mJXpOm0SH~cKki?~A%b?mAGBmnY}2?2oq6t2 z!EUayRJaSOUulvSX(v4T|f$# zEDxkL(3m>-awc;pm{gPUe`J2H=@0{bW*#bh%!X$wT zYF>~*eIuS5_iu#*0zzdog-8d|RWrnOvmg&is3hWfVjIoTlVcg@XwdN1iN?hl?1n58 z-+$cY-+{5`c>UNK;dXH@iQM6Gd~>}CS6VS7{(#(p0xRyoOuB{rE;FC{2l*{7&1=i> z+FArLLL6|H@wfgwuDh&kfU6LNFXpPaKX~77o00;GIW0ctA}hd@Yab(ux9X zdWW5F7N5^5dcs{}xACf0IJ6yy>O0cIgl1h`j({i{VE}gnPP4zaU9}x_TO%x=-m=Gx<#|=AG{cLgJbC!hVxd zDzCw*L*h)aDY>2&j zVX({|r$wwD?uh{R^52R=Np#iLrm79e;%`x(xi2vhXy5^Wom;ASdF3zrPwfn=mPhLW zIpGH%?j;iSmV_GC8n?DmGr*y|*o+Si)>5XLQZeF<#C%qvZ3hX$QZd6MBRdJN;VFgR zg+zS`&{ZUFwu&SXZJ2S>dApH5m#zd-qC_pq|W#KdzNlpnDGOwcOlKrgt=7yav$EPC97TRE?5-f zHki3X!h#atiC0oqMSRY=atScx{Gn9~HJ)E%KTlo=A{%k}ot!bc=#gf+fn`6bXMuRz z@9DfWo|rJC;P2!hlh1Z}<)dr86F0#8)_WER# z%L5*7(X29=M1%3nm#9v@ zJ}6gmH3w`3J{zsTn({oh7rSgz<1$jG0T&yM2ejxvDY>NxY)cq-45uN>=xs_*j||VI z(I3t^PfsqMOViWR{B>7;wEzUSc?jioo5)DdmFR|hXXMV##)Ixt!sN$0>r+CJES`_Q z(%rx=JTrB2oeM?P@8tMrqLG!ha1Bxj&N3q#dx#H0l}_MQ*BAAQuwT6f&2?A-;?dq* zKROPF^58w6aKh~tb(%MMQs0$I@u!;+VHqqexu^Pdc0FS0c1m{7wzfw2Rk)s@`ltKiGA}ZD2P2 zZtse2xT{6HAX;xe?4^!fuD5|3p-%*NHD3VlVve8Oqg}tmr$kCQp1$oTK9`nn2FiKp z3JCWnwsb}L!$2kMr+45Nwbf#5J!_D`r^mlCJfqA9w5nWpcv6rWs8ly9?P0ivjye}I z>m9M6#1G`Vmxd(hI_O0!rfeBMjt_EQ*rKZ6I+yqJ>Gf0pDjKK8**Q;pY82OM#l08f zvo4q1=M26SbL@&At^<_5|I#2!s^<7AOhhdv24^@ZHyC|@qCoLP7|N2IA?X65?q6`x z!&vXN+TL?Zv9dfM#8!s?*AJ-WT?e8!`*9M4bieCmwO`@$?deg{f^@{}%Ziy^$zG@kbaa@B4Y`Gz4Z z;_WJY%H1@6F?3e?0&Oqw1^4K0qrDvmKug7YKgv_6{{?y1FR~;kqM6RBWp@hr)?C_> zz1c23ISblJi9uK!J*GVyAdh5HL9d<9>XOeG z+rB^2h#He?6ej)tq2(PS?3%jeczyXb$;)iXMzP;Xr$`H|=U>GUeNw-_`=of+%bk^f zqjim-o$$!^8#9j`W1#0_VH2)&Z-@s_0m!VG5_VCEK(Ck-4SIG1t_`>4qNFQa8BmVO zY9A>}8-P|?XjD6G>h^4uBu>7&<=5O|$5ko2f$F-B-o@3L)iAXdbrv_^-icX6aSJgA z`mEer9js8OjcN@DBQ1+5DHF57yD+m znJT76Oj{kjKoB21t`qddC79r)@YQ>VD4wCN52lC0MiTja z#wg}u!EgrPVXOuH00-JidQ(ji)R@0tGXYP)43FQDr6aO_3?EKkYATuxv1|G`O??O8 zpM0)orD_zrbb|9oxJTb{f-5NB2orJcr)P<_==Z%AlcCH;zY~1&F3$@Hp+gBPkTnNm zBWsGX=q1a{puC-{2!n&?gX(R_amw0)#(<0EK2qa?w39$?%V2Y*D|9rkPF4$ifyT%-RaZ48BuhO^%MCT^9pFVo?|M0 zIG=kgm>%R`$S^o6JSlF9+A?WgF4U2(N3M4;fPMji-VNBY|M67(>D?xX!*33s!u?E7 z4ZJkXCoCkRI|S5WYY#)ATUG{fMMLlC?h7`eR^%;1^ePzPbecEj4Vj1Pp%c7R&Hcv1 zGB~2=)X1p&dx(Lx!feEpX{J3*87;L+xX<{{QoC<0x}vi2RU~aj4&u8T!kbsZ8Br<_ zI=B;kPYHuWZAH;>s5#vfPitgI%|`Z(Pa`RuPC@m!Eo~{@ut;FC_u$%J*)zr26Y;zu z2)P)=xlenweEZ&nn}By_JUI$4xA>alm8Oqo)6=zBldM~x!B*JF4GF+t>+iL%O3u_Q z6zssYi0&pB=zu01{bz@9U$^mqE1s`IKh^>7&a`C;o!89b*eN0c1>GteUishw&z~In zHlQ9}W@}k4T0df}(_*9eHal4NONH z#z6*AEwq($h(*S=XsnxgDVxeFx0Ca}uNpfgGohb?< zQ)xwYM910WHllk^in5=qhs6|yM%m?5W=_1i(1%s1 z6LWO~4iPKkas>jC5i1jRfFNm;b_gL=rD{ciazLUHnI&ea{q+Kx5F5p3DFyfgB1zQA z1TsM`5kW{GBxVWvNDzZa!o=Z|bCm)f5v}9&3qUf7SE&1n5VcAB4iU8p`jUYP2UMVR zt9DqRe1!UFqN=r)Hk+VyOLka6Yt(MQK<$)oNI~sXZ%{$)RBl*7Td3SS0^G>mO9I>| z+*<;k$=z!LxM1twA+D6|Qv;qU+L$i`bto|MEiuGp0JH^K>na`SMDHy=Ad-o z@{C$S@RC_8aB|mN#g^&l%HN1AeJ2FaReY%-f262isyKMdWZ$_2$la5#I+9v@B-Bnc znXiIFO;m?dYaA`0yUmP&q4obZFFB3vU`PLk`|rcqxU&|(#y?^K`5&3WIuDZUu!7VTtnm-T(*`iu)li|&XA1R)9BaB}HpZ?bEg7YqfdluFb+!lvBhv(T zQ5htujAQH6Sx;!0jHV1gCX)&^YFm&p#EgL$ijy#e45AaJ8Hxw9GaDm~mQ^x|msdKS zA#$OfR@!{IHArk$=H;Jt9=co2qik&aAqR}<7$h*;W|RaygV$?&qz{T{D;m-=A&1<; zP>5tsu(Vvd1zqxZT7^}caWsceG50UPs6W$Kl-Fs?rc1VlW=k6C2R*tEsasDU%|S>xZ{j{skUT zAFy2CxYwySav3R{87wx5r0H2eymHz~==je7)|>rJe}CDh4Y7c2G*+IS);erCAm zC2zy>BcG*f#6!AJGroa&9!)$)+vhg*?^P^}s)Qy(hE*x6)O-XsJ%Ww%1>YmL#>*4u zULMWl;3tuZkI+2zSc9!~4_iCV^K+Po^eXB2=tcDT642!$sM%HJ$L;gxe58SKsK*6i zC+hj%R4$N=8nR*#zkapA|6iyI{?~>3Ukg_C(ieFNgD26te!>*OfWRF81Oz2)G&XJIYX_cTW$o2`nLrUOD?ytg^}NMT_93G*I%s(RL>bDG9P z@IP{xmSN9Ef>LESZa8p}w8MC?vDubTg+3?`QzL`XwCEp$^nw&bL8~-#o$4|r*3Acf z$6c;$p~5^j()vAEN!oI*u&PIk_=Pl8g==Y48FAP`7eKWj<;-?48F3b5|2e3}SG9zQ z*3_-xFEh}v($e#Y#@;9_z^E8d59V^8Jsbn6i_J(cH1quT6rPm)EKUz0B;-;t-cA~Y zx=}>16TKRR)A6X3`xe=dEX>@vkyH_PeH1}%ZesufUxe=yjqWprENH$wyP`=TIPYX* zwz%Cw8->s5vM8V@EU|n~uL2^30{v_^TcG7vI*EO?wA8%iglr$08CYq`(IY*ibwLd{*~ZOPFILcpp^mxg=PRFqc0X{qVfl{ zs3~uJCnkgeznG#3R^ji_U8R2)&7WuRpyRJ~XuX@m=v2gG0^g!f$J{OyF4%~VTEQb! zfFXHvLH0@H?cyS1^@KYK&z#Bng0!)$4K-$_CxmrLXaScfh-B$P=E?-CL2`vbrfQR7 zIok$z&uTxTvNbM6n9gxO7e@zfk=VQ>ma6cexQ$^2gp0J8qOdT;F-1p#Kbv71_*Wat z)cj@egASbV7#ZpPS@UYRb!C^iF+iR4+Q=-G>1Mwj+#1uGuxt83W#jHPgta1FNogL~ zF@`C2p{Wq3*_*_%iVF>}$I=RdafyQP5aQC0lk?bIsh!b|VP5Mz!vFR!5PmRWW@sU8 zci)g1?#i(YMkff1jynU$jxmT*;-8w>_PV+TfZz8&e`@B2_8sv~hvJU-ym2QuTOCY) zH*otK8WreD9L?3YIQf{Acw^Co$I%AT;7J*S0`ud1Wt+=uL2SN-1NR%~M6*3<3cGHg z=#*DOQE6>9dsspSGN5){6ga)uFzb_JOx)Yxw-#@uI!SvwrxsUN-JDi|{59ke<2>!I zX=d>3p@up=={b%w^5H2d_t*w;-3k%jmP-p+VC17qJjN9N^2pX+2j9|iPJrPbgD&24 zZYjw7ij9#Z0fSPaQJ0dj1x0f5Dx=8zl43v{9SCThX+e`eUb2a5bwU+r{b z43dNB`@!P{NpbS_j}YFPlrwYbrUgsi%JLW&qbyauwXti%Z>?+J)R%3r*I;^_FIC8d zkAHRlQVQaG^lDR0l~M6kMTw{kr{(KV>L4kCH?J5jk z2qC=@d}Ux#0$ufKrrVKRiBRoFru0(A-Ot42+%o1 zem5@Ba>0$u#$ECdcWo}69;k0%X@8?^P8O&p;J!&N72$$(L)1p&tVQ5){}sFA(C;G{ z5JL%1GTTv?4Z^aDcvE34)mw8!o+F9(Mf)_Q?L9F3KM4EA;Ld_?+t`@clZkCRnb@{% z+qUtGZQHhO+nm_R%d1!SRsC<(ty^{WhhAr&{?>g~?cKeWn$Zc%gQ%h6s^+vV-4G^0 z1S%pajboJ@mqgon9pXEdEK2P0UwgzCd;AO>*C>1IVV*a5d*9uWqR?0S@9PO~a?W5f zq02o>G0~b_D%SA1_K9XMm_YiDr#MC3Z z`uX+x@cMB2y_p3J^Rmk$7!E5dIFYS<5L46o(D$dNJ-g=dFF?y7Tm!cx!c6?Y{oy~5 z>)yy#e7Ze-AJ<)D^bx9r5%1Ey7s7B}aytO#rt4_ENBDJA)n7e)mBWS(1|RGlRDfTh$s=hZHJdS8ZGbPLpn^`KpH%Q3DC z@-eRue!(98uqR157gZ@j%6~oYN-TTtyh{T$bE5w zZCLIwL~{-dD$1UD2iozElHjHHHj`AzT&d}?CgnqmZ*UeJ| zCD#?^WoC%!gQu9`^y+L43w4}V6xZysyyWljVKa@KsjB2ys5`@ekDxz%MM)`U1Sxe` zIduxO3l7!4HkTBZY>R_Z*cGUH0p!HqF!_(BFsehW_(VCAtZOG|DJ;mX5#p@XQ;)|p zubx?RCFV%Fqh9UnN2X=SzB!Ue6-Qb@2~y(`mRJ#5IsFflS_^4;QM&WD-zrE93K8rB zJM<#~R-vnJ3Ngzc`2R_!7hfrpo_>gQ#*fTD`~O0w6^spS9gGBRt?g`WjBT9$o8Z5- zBeE*04{cmrrDYU31FMCKrRJY-OiOPfX-PRM?45w3o2$d9VEn0?8iqA#a&+X|( zf`!S&*sQaauN;|~u8vNn)J2(4tkzA>Yxf^Q;yC?zP^0S$S{ud&ccN93?jlL&uHLy< z)VNkzqS;@+(1uOdqj6xoQgOKHG2q-vRFBp`(24>ljTV}hw&k1I*dL`|%+gF&CDg=mPY$DTO)oubJ(Tq`RG#W_$& z3}}`vN$;+(5oPG3S2-dy&6pw`$P;pCGA&?b;v}_~8vq`}H1P~|k0`NN2iJ%3v96fJ z>37H?M_>v<;XO|ZVUM8~5}G31ISH-(YRNakEbh#UXDHm}gT*Ff{HR^4Ed_B80WGIi zAF&VTy)|h~IEC%}!#z=E@|!G_|AE%I6J?|xPM?ST5l{7HY1v+alpqKZE5Q@oHzP7# z^9<%k&$g6X=V+?lltrmkwDeLCQ=yno;P1eQSVHy_$QjZN$kZ9Voq~y}e!SR4VRqINw;xFpGEUkm(p&P%A^5p~sdT7L2?zH%DgwM(?ET`ZUJ z?;&AiQ^FfjC-ngmErRYvc<>bzi4k`^$rr6`xt46~U%tx~&F6&;yq~_}0FRVAiHUkD z#vLkbhk7EJ!z}5AX3CI1ydf(DM$FJF>>Vs2mdwPHB7t0JEW{8Fak#56^rf0T{qWF& zlzgkAt4N)c6q^RCWScl%6FtMfO2FViPFth7uvP3+jsxwuhC@*Vt#1sa|DqSR5Ev=@ z^eo2>z0D$RER?3RYrFFr%qru9886(bC6|Sfaqh<#hgg}?*aW^Ctl^%=B zYx%Mo0^E`{0*Ec(uKcGtg!}E<6}cK3tclO7is{AtM8a`oCYloscR9yP#UhfL?HeHN zy=1{)^6w2!F@>Eni$kjp0GUKcavfUJX$t2eX{1s5*yF3E6|efKI7zGpjyt7k(u9L} z#uHSAW~2U61VRor!Kt`vO}IWK%5?TO{$-rZ&F2YM?PuzDzO`j&o5`xjD>NAg#B<^N z-G2$jVpJZi6zoUNI>f&tpcbI*n9&xF*H?4ahx61L5=Cv_@PDW;d{Rdv*h1s#A>y*D5o3a*M>1LMD~diL%T=Hw2dM=M&;M5 zhpTN5OuURBpHE$J5ZB#aTudNk$uKb5aZQgg_TyQzKLbr77(uuR(}i&huhWK6);%L4 z-9*fNW6(Ntf3s2eVNeDc=P0lRfvml}QpN?B)oaS>2QNv4pb^Yak;iXAsVAHU0_8wx zq$UGTf5v<==B|buW)oU3dMIb)XY__#qER|T7v3U^irw>YNV#H359BL)3>nLUiK!}E zl#wG-puK`SYqZ`-OcmWgP&~3c4JdXyf2-_r5$j%5kJNHT7Ws&La*6ZkM0ME=T%gp_ z`J)@_B{J47oiL!g895PFiGD%+=U!@+fKf>a3Iyc&qX_c9?WKz5rZ)Oc&JO>-HlgUG z?_~U6njr783v#Gm*E&}g{*3?nyr|AY#((u;pkOtSuh+GK6nA&1*Qs$fIG@{oNphmF zU`O-4i(<`mS;Gk#5Ngifc$Mt%Jae6FKb+Li?Eq&AX6e^2=}kaZZ#`zUD*|i@}N4;pFL*(P+Xca@~%{X_PKgkp!Mks;VYe-?vk-WSOK^ z0?vzIpwHj#B)r4*Q`*$Zu-*=gD~g%OjSGy@k-{&$ikRCq7*(7S_20e_raJ4psu%QI zQzvdpgCg`VWr#w&kzEuKrE88BqCy;BrO7nWSj0QPgD`qflj#(+DaaEAlTo`ltu8t#Rp&RnL?h zUX{_v>?2es6q|P2HugqPWz>TMw7pbJl}q)Nw!WKkQLJXYN zM@V7D-{#S`kN?5Q$gU+5lqUzIasG&T7VF=;4W2J8#aI4!GcOL{Z`r-vKwa z33`V8RgUx|yo$faAEXf!h-5;DyI*SjidPUJURVd|*{Ao5OJvkn0+9&c{uHwQCX7Mp zG!6NNdLDl`UW`w;+f8L`aG3Yt1#z&Iw^_JHNR~xOAC+v-lT*e6dtVZxgzryu7Vkf3 z!<+9qt$uSGJmtJGbC?_tqeEKc{udUSPk08Z?SWQv5|32+DkH?iV!*lncw^yj+SKID z0g{Dza_3+_2VoG2>2zOLssn6?Ia1vM>204P8b-%kS#s~*)<5^q0;FIRWZ-G2haM7f z6ar4-aj*f@qXAmThau?a)le>qu))H8=uL7Q?^rE-dWWC*iH6JyyT7&l-ygu;_yxVi zMDL(TxQp9(@}i=hng4}ghZm5>_|07!6`s`3;U2US(Ldt+=lY|8o0S2A1p->b0s>CP&{ujjXnUYO1u3nJqIT=qj*1SQgSyVW}SNN<4VjElqZoj_)e~2N`J= zF`P@5c8;F1{QHooz_tFHL-E?~BKn218UTk2V95Cdn^6P7Q57hn{i^ zGs}qlyv}lKt&Q4#;G8@iVVu!YTGW`su4dKYW!CuGs)$bug|G21jD@Ah%mRt@KJ*Nt zq%!?~RG#{WlXit=Ben2>ot2u)RaFwR{+>xJ;k zyJ)h3s%Odr^St`X%j7awXEcdeQqE1osm<(~-YLlI{aohVQ%qqMRVJGhY7P;{4vVp} zu5J2N#0ZH2o=>Dxz6S=@NzN}9(ZCUJU&7l-UZ{f_Mk#pTMcxkr->^$lG=@UqWF)OP z!3j^+ryGGxJ#QCfg|>?dKeFexra>rI>PnUhtVvSQuGB6m+e|Md?V)kQ2t`28K+oKW z?0_4SOj-^e^Sho(f}ersHYsfh#e{T5q~J(f*{&<(2+G}_(gHkYtSgo@QKTfh5#)E< z9~&oA6p98gsrr7uyQb+#D3y7uP~lZNl!=`!*|k9O31KZ5bZfRrt9&AY&(w?k&<@iI zdAfr7knp_npb(KF{lt)>(gX=MMUO-`q548tvd14k>m@@*8d*3n(PS9xVJe0hy~WC@ zYW=Lgg<_U-lt^q6GbdsOrVYI6x$=qEE~oYbAj|Xu>T@ia1~mlW3=lU>F3uK_IyJ z3u@4G<>sh12;fOI*+ghO%a2!6#)m{M^-D5qm7@Dd4Orn)m3Rm2#dcUn_^8O7lV2zT z9%U_B|E9eq^ptXPud z>e}ESc27gAd{jci<1X0cth?>(DmhnE9Cx7I^I%`gw;~?0`k5C({)v(t1^(vGGH01$l%OZse&Y+j0^*nEsC@{JwP1Js{k! zn+G5bD6h9b6*+A7Rd{{VhKEF}DQU$^2w6+pvRdLR9z^`tC>3rBMtX80XN^cR@xIZZ zgPVZnkhHyJEp~CgRsIr3;K>6!AN$YHe4nf{`UNyu)MWf_{8F6sQ;NHwf~$k(wC~=D zFhgMioD?hsyQnE=PuTp51X)9_DX-n643e$^Z>O?EP#tig58u;ES7g|O%>crf z@lx@D^Re`W9p25{nv@c;LvQZx25`bki`pK0NtyKsHvVGq=NP~)!?ZencFN<-ZoB~k zr?~DOd7LBPieyAo_>3lh{4E9=0J<+ z{?$FRZQ((~ry()n3#&E1OnZ8A|qnvZ*b$cCiZKuusInVt-C zS8t9Zvlbvjo3R}lQIGXrTWf_VvmH8QeE*!s2+0IJ^wAa3qq?xk@^GaQqirgXOo4)M zXyi2*l4<3Sp+*C(Gb*o>VfBw{E#;GYC|0gci{jG{%>{)$cPM=AV=XVV_2Hff6B6Aqf=G83Mkh0J$RKKMF7SvMsdUV;^CiWzH~ zh7y{JGBfuqSj}OdCwSzc5HGHkQs59z1&|Cay0cd(qoZ37ofvnFT6}WPj?(#4fH8JT z!swBPtJ4RQJ<@iiXxhLDprSREw8^2`bX2+RxDyk6G*6N1k`U=3DOgEus9|ESX*;IA zsbl@}=_s~pe43Prir=j?b3N`YiM8AchsN!(;xfVSRle|AdDv?o@yf~Bj-eb93DUV1W#sczdF3aYeu zikcVw0%Oyl)VWm_m9n9ugm42sv7c2=z0FxjeLYSUng5GdKFHhv)g%%bEC>=UKWXQq z0Fu7k2~(NV_|}H38e`qQ>WeN4743P|$J*>Gvd)MlrqauZ<+tM?n9^-pq-_(*j;BcJ zWS4hqj?)u@yoqi%qvDvqX+x?20#n%}HKijQAk7=o*aJ`GWGyNnVr;ul>S+QKKL6kB zH8+-wpXww*G*EHGpO5?~=3{t2M9zN#kl8tutRE25@di^a{w;P_K->wg$&o0~9dWgh zP@atX7>IH{%>~>&%2v4*Z4&ckcrb_W$GKJat(%u;%I5q190*K z+-fln@{zxCIFKyxkSx@zmwY%*!)Em(f7v1FBX*w@`d1A--wW0zz^TOdnJ*f!G?k8M z&C&D6`bF#f;ghnSG;Jk1>>8mi(H?#b-LTJe`UXNkdg0ia)cJ7w{q0TnuLOfHB_DNp zGKtAn5O4!`EsL0hg(=g+qNpk^=E?lk9{@Ff$PqeHcUTomU47N0!Zmd0A;l33ww6MOpAb4M3 z*4h64m>UD|B%Ai4tH5tlxW{kAvOO7KZM@$u>twF+y|i?h;c%BEy5d>NjANao_2A!J z3A>Dr3Udcmjj3KYyCghVGW19pX;U3#nNqjO3Z!;d@0xccbXWEh4(DRSTd~}=U|qO7 zjK1pu^8!_JIfp-(yfSB#C{*l!1N|qTh7PYGSi%4TO5y|pBL1KGw48&v&5!!t|6|Za z8t!_E%FBGuq~&?v+v85B&3;BVo%yA@gr7aTb+xELJN)Jj8 z0;pmRLL}wwb+JqpN9=J&w(K)!uuL<(S8iOdJ;z|JVZgu5d`~t#r`!Iod7b-n*V9r> zwp)4_f@>@IRgRRilx%Z#c$4w+h(?L%g7$(ZgTiaL?I7+m`FqaW<=$>2x zbDEA)vhB6slF;R+ro-t0ET*K*1c6;?gdQ{gZk&N>f$wlrh!0!eox#7T((z>nnPBzJ z6MXNGTN%vn5)`n-3wRC-8H$*bLeLTmKf$7Z_rkJ8-^-CqB+GM5{Px>jv-DIfI~8&1 zm4@^%1DSv)8*+ebc&|7x7dQazn8Ani`B5zykqJ!v`1;bvn-uf+x(ktP+_S4ETS7-+ zwx8FNTJv}ud&-tMrJ>DL?VTC(+&&f3ETf3OKD(AFW~_UXbEQU`8cc-V329biL$Tq6 z1E}h$Gx;)cGiM=)2BFN+zNn&FTSgWkS+JGU!aFCWZS&J7PcM=zgjL3m#t%Fwl|uej zb`?>-Iu#fyvMUrZvs{m3ix)F_;02qa)pL0L1HwGaim|qeH^H{XKBmi`Q-qzLwgkS3 zGwE>+_kd$q@hdONSbVm1t19qm_P1n9(f(GNQG_5usAikQpaX7nr5}C^-L#8(QxW?=k@71Sl~MlHp&5{81?l0_s$ultEvr0P9t_v@X~BWYco#NO|;v| z_YDL9Eeu=y-WgzYifdMY!kJdoLpi6Jr`gMzf?C4kY|81`cy`XmvLaV2{l5hM-89Yhxo92nXrk8b4lO+JY!QE(8*7LziL!cL zFg;sqbSY&Ap7g?a(p`nH^C`Gdnc6MUDOIMQN_hz?!>b~mobo%#q_BlRM2;VWz38a! zhTpICw6-JMG!8Q>WuEMqc-#_v>18YOw!9yPFWZkk&`wa#RRh(Hgub5c9Bf$&jXJiH z6yKg0&{CSwK4q2j7~TtCQO<;(R^L(3F9Jx=8A4Np6pw4uOk+yNVksM$mT@dFf+#p# zbv>Iu#aIvYXfnyvP%dPK*7M!|5gOe;IcFVt<#a?<|Jxn*B1yNY?~sOE1!(2$!qA47 zd}byq%U>rHRN7TZR!1*c4Q|nGn{c9IZ8o&}o?qmLKTWT80xK9pe6?m*+c>6;2e8%h zH?l03{nXEAxhcD6i$;=J9C6KBTxut@TXJB(-1-xkBANP4$vb(o%{8qN@Q3ISKxtYG zT4GX5IO3$Lug7(=818V5%8{>j%janph|}7eaY^OpMuL4xef}`GNN(xto;v+1$g#bS zQ6tUofr1+`EZ<@C7kr0D_@~^vG?jg@r+>th&HP-?jCS&=)t?`f9c&^k;jfPqCvv%m#1Ds7_<*y}Mg94Yeo*nEQRf(Cody)t0 zF2B~t9M=WOu*-8Z&QhX_RAzT~imtz0lBdRRz&-jGdr0aVuXWT#`17%9*CQWKsm!p& zHI>RDMGuM|(LL>**`Gf37uj164GQN+81HOnCvGWH*Kht~8c1JG=b5D-1b=0tT@E6) zvYiiWzfM@*t)VSSes|5_2lK8THDpj67RTz9FeRVvVwejp=t|_w z*6=(qct?acFU=*f8T!PQ(-zH~ws7D3vLjNVKzz!~HU_xvZ?)ZlcicfX$1$Et4g(-Q z)9eETe2p&|PH+Ah4@Y4^e4>CxeGgYOSOaqE@G^tG&o_d7{lI*V^1kO*MrCk(%5PCd zlIK+#vp#r9$yv&JBgb<+_GzV!*-r9%?WdHJ_>6r2B41wy>9E&x0<>nN7il8)o*JLj zEM-FpB=`>=>DSYK?-F!&D#0NM#*;F@8S~P_H=<6w@+5wqN+rP*QK?4pw_xfS#-mo# zzd1WYx3J)HGf4OfozmsdHQD;l>y8a##$wV?*7giMgdzz>4ME85oE6#AP6ySBXi0W>GS>czbZHwR_-#+_n^A$QXBb^a z?yHKH=wjaMPD*`K!EI2VYT&(jv3vvN8G-gYqsSngJ&L8|L{+%k*KTTQIZbLrVhD+O zoya6YJX(m6HYO<~3s+gyma(2`<`O@2enM{vd!*FK_{^UvkExF$Z~B=zl7Ga0DB zHT+l%!f%S1hbkxmWl-Y|-A6qdLm$nONB4~%g>OtRLdnjhJU#Y#WGfgjxV?ewk7NGN zy%04xyvQv5e=RT6p=}4&HpK+z*4I#iK~^@&1TwX4Yavj9u!mNxYq(al;HnuJmdzZK zRka+Iu7s`WnMRRQ0*n!y&#nB8)GSVXARLM2S_Il( z{G*zNVYJEg;@qlQO{DHHqu7auN$%41km?H-mt$|ZprWkDm~LJcF#>)vkSL?)nQ4Z( z4ICr(a{;kSwv!9^pR8wF@(=G!8_6?>1W_V%O`yw^1FrO(kygJUs84r_i50zh+pQ0BO`DdmKCxq z#R|cr#xC#p!AH+=_C0S(;AZ3p&2d0FdC+O$IQ^VF&V6?L$))Rccl79K{6WTlknEp4 zP})(eINp7U3C0{dXyY{5HrDz{)656zK*=yq`Q$$7LG3K#ZXlFtM&H3Y%Uzp$GAFKI zc87GB<>vjfJM5;?@H7*<7ku^1U|-lqEumSxCI46Nf^+#q4ergJPFYFk~D@E43g&K zGlpM!O$4!~uW4${Iw(ycaONPzGJ3E~pCNFTAd1rIy{PLQ1<57pEWnRw>Aj2LT1ebW z`Os3rKVw#FEc0-4kP25bLaR~s4i)WKqz|M)n1bfW2%!?>I}{qleKMdcWM*5 zag^ap64Hw%YF(2CE3B@KHg;5KEad17do9d0{skB2H$5o$4&r@n)PKP#Z$wMZAwmnZ z@Iik^*jS82TOA8Ph@_(h1RYKgjM6e*DoxWgU%ZUdG+!%Cv23>0v8OuR>gbST+=zUP zKtDTL^C(90gK<);9^XMmsnT2h#UllA@b?jEq491s_idw?-Q!ar9R&9vbenQQXBQ=_ z2qs81-sv3&@uOa_ExVSW#tJy5(vNdnvX7eYhlX1g<2H{3+;DKZrb2{L=$_Uu6}>L> z8Fyi6WBzc?{97PYSiuY+ee<$+&Z>EHvoQ$~DtLaeulWa2;Z1-_q~UGuO@4Z^JY0>5 zeAP|NRX>S{<^!p7UgIBn`Xo3YT-;r7<)Ilbg zKZPNxfgb!9I0r*tG>0ytQEA1!j=a5-Yra3$oqAN7cU}R-LSxYRAsbzD5f}K=A02ij z7@Ob;>AOP&7Q}2+wo&R2>Y({cV-lR>(#*>@yT;{aUQdb{Z$`+DIWSk2u9<)5X2B9- zh2>eIe&c7}T3_X^?j4w;`^bQvn>Os+&G1qh=mo}1@yNtBkj|PyUD3wMO>uJp@ zrJK0VLLs_^X5%q;xxd6+G2f?cY6!;>*NJabGZr~C^EiRsXeu_;Ml3E`MRCw`hMK57 zVQ6sSu6_x-cb{zVC0q@h6r7q}y=$eHc<0E%Qg2Y{Z!~FcY&2e}7b|671><5!;|Y#v zPX43cSq*u05ufb|6Lew@b);C3^L*gL19|GN~ z@#;C-7NeDR_N~`o^?uERJjn`)>c5j+1%IMEt#{}C2t+*I0ULPNH}|CFFIudX2hxn# zSPwN;-7ZsHSVoqyx{(XC6!c3~G&GKMG_;Fo(lk+)g6 zBAX-6LJBQr|0@F-n=qh%_2Dp)LRBeN6<{@IL-d%es{AOlGUk?^Cx8w4$+rDEK&ZN0^fV6gz12lmXTUM7T0P}WlwnzN zqe|L?p&tQVR-Y<%E{3=1=8|Nfji&|$tb3*osuJI$ zy$9gJiZCn(3P#2=Cc7&;L`B*&IeW-Jv#iiUgRW~%($@O(t;%{$F<=E1Y~U3)+J#s4 zol7@&Y&zxC?u3eYqK#>VSw!$0*+ccs)V-cjB0B zCADVRYfq|IXT4Rx@wds{6u|hvwrGF6p6MocNO|D9uK-|d+)_8%BNYz~IP&VI|A+6G z+gaZU2bx`8k98@Jc8GrvbgN~rOcI+#HMCrlL6dUj)ijR@cIB)zgQIl)ffevfs?6yt zgOX)C$9zI}Dt5Bb*!wD}ap@I$p4F3IH0@e8_4>QYzFT%{8qqBAUU2>LBaGJGM@p50 zFYh8NXI|yR)CvER=kg;n+wP0j)e}d01%`mQUsdWED%9C@L%&Nn09oc!i7`kLHLZ!@ zT9hDJ&&G6VVOrDNU}>RxZ;S;7Jvot!X8n-Ig7(4>MCAv2WU(Fuy;W zX&7!hkWDv8u|>!&wyHANXJ||qhI|;vvq@4mew2$vONMvtumGY8{iI9z`W{Jtt zF>Y2QIj6A#rE!8SUeY155M0gRlvNSX?6-Z5Em_k_>Acv1)bR%`oXEL^-5+H&Bs1_Nia7*wRRc7= zR^$p`iEtJ_Bnc-F5z2U=D203+dW~>Yy(nZX{$S(_pm&NoV0x8sX+L|3Oo$)f7r5Rp ziA->I{_qCi0{}aQT`uwoC@Hx;!R{XtS_s_A!6HAwq*h$JQe;&SQc8O?y#(YHAW|xO znp}zS3n0a$R$zMNa2();q*g4uRAfz{1wbo2y29U82+b$HzHSnauzD}0pDOVUpW#yGmp_ zkWPtCIJLq-8U7~Z8W4-57o^^jL0O z9VU!|1GQFSjFCSyVF0)SfD0T(#Q{?*GREN7BykOSs^oy1D>?QF3{5funjj$qOiU&n9u-(1IPqjEj*O>Qv_tfvP+M> z`Yiyopx6b+41rB4+sHSyWK1d42U^v~G=>`hm4@7+V+WWs%8b2k*$D!}_W&!sPW~~G zVOT&Ey-wjF@^BHr|o%;Y0ErW~b8(UyK| zL9#-xQ(#1P&;pR6*QqdKJ8(^sV$dlu3c2+lSz*}DJ%kv(p==Ak6(Nx|>=Ykk!n9Sn zqaM~w;?A&-OgLfOEIj&cgH(;26X!0>X6tPb;^!qVBM%Xz#f1~Y!AQWCb-huDBjTyhbDDq-0G9u=z9r` zd1B!!-}wydkl-6_Rv!vR#ZtUN9UMqJG4kde8b)y?c?H~xljInANsN_X<*3}L51S@= zW#6ik=o)#+jHO`Zs5+1xz)EzFzvL(I8F-10<Rtt zwn%={&i8CdbWh=Fbr*28da1hFy>?&k-U)8?9gVaHPUv1B(E5T_^w8X28az5$KR&OY z<2NqRH7)UFsC-*!e0G>W<`gga4ov&Lnh-tQJC*uaOxbt+(Go^8AQp*yFrI$={?E1m z3z-E`*^lFubpQ|$>HpjoP%?INGB+{*ug1WTH>8`g@cK6w(@!BEh4vRRNDvrQ7&dZy zm=m zywI~}_cyO+o9Q;w{q)8$4U^-6V$Y5vA5wH3X2D{6$hf>SRSZH3OBHktCYnVh*3zbu zGEX^iXLDJ3KIP^v*#q{fc#S)}a+7p@tlr`P9^>8V?D;REjz)Gz6@-Ep?zP{_c;!{N z%9}w*fJ7|3iV)V~5QT{fY{BU0y>zsty}QLFYPXnembv7h`iH zgA!JD()o0JyPJ@;w!53K<59vQ1=`fo(uG2-IfC+p>yd|)g>@+@+>=yAemQ3){{jfA z-Xc#+E^$feA0}IM0TbRZqc#vi0ug&AN5{MR6yp+&v@G?wtds>{S-67SGhI$clk4~> zFCsK9;PV-BRxVQ=c^MTGaT(S@J_{v_LOh&Y;L|7-eI%XX{UV>?NF@=5Ht>7LNJrB{ z|NGx%ZtBV%?d5eal)dkun9dpMU}e-)>g;qSn3ZPWl+h>3EUW_Ff?R&ZmsJPmr=;nB zsW8=FTr0mg!E~2kFg5Wskg93@{$dlLBDR0X@rcNnBc>&^w16LrgC!QoUcv$Z!8raL zdChI44b9Ef6pKpAs$6_ZThu4_(q-jU7U>Wm3n5b&s6=SCMMnr3_=OD2w8`vvFwI1% zuuFqJoKf<*jGIX$%0Qdu1KbT%yN7?I3&rc0{rLxTM<+JV&+Uv$+cAxT9G8=WFGyH? z(kV}Ha3mK_?I>~p%DtS#FcnuRhlgtQ#QxkYEc|N%5=6dmV%gBBWo5{$Tw(*vRtRp= z(o3_Qe~K*4fH75b-37*Ha|!+aJ}UFeqm-8$FOpf`ZYSWe;!9DPDQ}f-{zW8$<)&L4 z*O`?o!X4;$aiG>&Sw*eBT`-tbS=k&UXQdO>r%_9&y@=!~idoX)A5hh^Zlp~}ok}!v+B1n`IELwC$O{#}(MQBl*|{x~+q@?47>&6*CI%q5!gRhNPR56aIJ1OlGY-3=!deA4 z5A9H9lZ&#)v)A94p^Il@79`x?%qC7Jr;A@rW6DfO12gyj#{@Qum?3A999%~~2TvA& zC!2`Z@U(Rcw{|PlX0ZU`#QLLCypm1S%LLtu|It%I+Ctt)s_0(xM>{ubE?7-cFvrVWy@1kgRrM=5~A~8 zf0y~)OfJ?kTUF=8v;`q37R&`kfqZoJhq|e}xSLZ8C0Sh9?>ed5&YPOJQ=3!830{E; zkC>(sp0~41Ms~c^b$weSu>HE&v#{NTfV&yd$){b`WBl&!4-bEfOTqh@05Rgf3?D=H zR2dVjd4&o}OF`)=`17_l-c7mOU8Fw089nLK)Ao?p=~+E#<*Jf3X`1Ez_TvynxTq8n z9aTkL5|pBdkoI(Oy$ADD_+3hrzo<2(iM^&r0jiNg!mXQscx36se00E^8Ic0;<%lvV z?k>hNNSstqJHkwi-tP^2bs@QcDQW~6Szx%ZZAV)hek0oUZG%3<5JOKZ`uPKO#gY)9 zJ^5=v9UX!1vDow)GV`8;Y}@9-&5J(NHO~6>V^PS!_D4%MTwrH#rlykh4xt{R5;;=Q z0!!x%s90@e)a8<1Tc#6%{?n9d=p8lp9GwChROFpfsZch83>wi(7*8KCDWy+6d(7oMi$f~0&bjg43N(1- zBf#AfR3{~(YEXJb#w>QQip9csNIOgY0p_aIDurY&)pOe%G|;$-qmjaBY%F~3?XVF7hBAQ6bCWkXOo7{)5x6%`Kx?mo3vdA7oCOxZ}T=`a^M}vRHkA%z5dn?L7k>Q zCw5x62^+NZNBl4Ehd-pOz97M0?t(FG4ZpctNOgh?GQ1rmn{=SF;ZydC+IOSh1g3O= z;TfTAQ@v= z*-9XByMwx1O__y8cp6nQNdgHE{JfBj&$vdRoZs&HRtk5gOwITdlP4EDC%t>TFOJipzJgO7nBZ; zwu0_b!K==SJO>HUtbES39nIVT2G35F%N2)zsxqm8u~H5Uv^=hj4Rl6ns0 zH5r!{As5*WY}$@$Ea-xqEm%+*)fuFqH31hs&p*jqBfp&{Rb5la8%V}O*NBjh3a(z1 ztCwe74C9qqOjwzNmciFh=2?H6${L)}W$&4i`|Ml%y-*2aQdW+r%q2xNnz1*RC zYrr^kt;^{m?rHeAM0?G;Fs&K8;qZBKedSr0*-qM7^Lc8nb7V0d6p>cUNHHhxpr27F zK~RHPJgads#ui~N27tIN7Ja~PrC z7Kzh_fUmlmnF_3%M+gJSk=7cl2}FQeCqXbG6zSnzqrBH3zuR7$_$yk(Zf-zx7UYkF z?4(Ieb0pm7Hk?r^_Wj|19;_FkmCJNGp2S_4Dzgq*$lPlBjGx2P2 zeVOEnJ$!EwNHihybj+m7i^P2w&t2wL&adgb9-zEJJrNx^@6e%QiU?Li02vv2!5D6e zoXQ9F^@n9DX??%|lv|qA-uzlT3am)5{SlA+bVX-VXPr!FVx>dGW=6jZFDY=a{kzu1 zRB&LUE2YfETj;E-t3C!Z5<1qIQJ68WOaS0Gu;8$96hsOc0g+gIph%{W>Js2ZJ2fGx zjk}w;=`A0uRF1r+y3=?n7T^VwLx~r`{j5$nA{*LgG@X&67)PUNXYI0l+3%hTW-~`Q z>;;Tqd!8t32qY}QV^l+wH5oE)(sqH#0k`L9@T%pVTfkTiq$Q`LtzL@#Qt{~e7Zt>L zWS?{q{&cmp$52XP7V7E^_QV*? zTC%;lr}h~+10G2wl+4v&X3G)w7-M>BOh+v)EhhtQ*ZEElNW?7)hxO5o{lg5pLx48A zJ)TXxz-IZH#b~n5Ucs-%|4Y#l2?)eXn_8VQ?hQ#S5@{>&gFVfS_3nTHu6DHTZ(L4p z0oDAIPnPuM$>{dbKc&`Enm=C9-SIVKgvu5cLI8~#mSelw9!Cgz(NKYD4+q#MjwzN$ z4K&dFYv6N3y(T~*cnJ`r^qT0&AHK*OnxQ9*Hu6WmLYa52>IuE&3BsC9HL=A8m^i~D zW7EDUItR?Ls&W>h%gs%YSBs4GJxWWt5%d^Xnt0#>OcIkdi7n3n?(&PM#-aBlv07qB z5gnP^fX#%;wOJ%eWLi~pi8xFYa^rjK(|VELZxQLgmYbDz2#Bg>!@(_1cV2O2!lo)J zG?%n?vQMYQr?=SVw(enIPm-q{%et|Mt6*v@og6Z};3FnfKIS_UHYWoz z!PA6=(_s4+cl@Bfm^)zVtrv0lp{to5A*8dK0L+yWF#c~?|7QPnOmLBX%XWsHA9^IA z(oBwnMKayNG#m%)v!%qx{DN`6Z;iDBao<6(C#K3l~ad-&Z1w1!YXdf=-qOXdsR zScl^DHyMxS;LD*Q`^sGx=I#u{{8CB^=%|4yJFk3`wW<2Dhb~iF0>w2to|>T^2Z+G7 z%e}2Bb8Z)2O6RD;lw7|%dp4hdz_@EbG!E^asK3&KAkIjd_7L~# zIuUB=C|kGYu37D!9HAegCY{rGeMNNA2e!yi#^GzgN?s@DxEtAvlcMsXdCT=d0L!6Z zP(fL&0WH^ylN$Uh6~b6cSEyDozTpXVZv7tE3GA4lrl1(llGh+y`iCeo_Rb#q?;bIb zJLiMpgXoK)An-ZG3Y~3b;!2S3n^`QS^?wg1m z`IpMjm!!}$P^|sM_qL|vR`!*RaV|S)U8|$K*+!ZM^F!u(Bkxy=X32+VSb2Azg>xxI z)N<@@S9e}D^kV45oXFTkMQJ&_^1&;Hd!D|w_1X`KSuZzSy4WeyI4{=^zVk}_j+ygF zME~Mu`4jtS_?ODajw(@_7BN7;NnKHxCp~#nT1|DMk+G81K3LYgyqUYO7@eH)ik=(u zx1q6>qUbeKh2R}&1UJmG-y#gOI9?a)pY{ow{r0uJCKE@w2PKNEFvWig>;WN_a)#{W z`$v0EQ-lJhaMuhhq!L0p+i73DLanQ3T)IF0q=C8*(P*EC+J#YFp>1KJZ37Yg1n%*I z4=Jjyyg$y3ghQK4<)JG$C{t%5eFmf{oamrKf5IV#bTT<1Tf z1Q<{|BYpPyE5QIyt)GGWdY_cihz|F!!?|KBwv4~7)APgq=SF2LE6qOlNZVVORD1ZF zNa!o5>7Tu84fzEaM53-pMIr@%y!`z9U@Aq_jOB1e=)~C1iSw$#q{9MgBNe5P6G_S` zW|7ROp!oFDt3zi&?W{9Q{xo!swALJ&dhlZ4 zoNzSDDbFxR6rOTPe@pa?x~IdJx)azH2GA{1C&L2`>O%0)4wo*8UmKNlXavxZeoYXh z07ysBr1K|8-L7s;;if#~ z@oOSMFoh(tOY!zA-De){*B-$M1vF0mp8T0XNFp3VK}8}O9C!@l;oBTyrbm<1W3)8p zVhe4e-rHUa(oWsk#~_12n;@wG0ae+(Nk4vILj5UVhdP#U!A?r5DJn{u01VS()Faf< zBu9zE{yIpHw9UEEM0O1@#h-0a3E3bM(=N#w57q+EuF<1?0Yl0$wexYBbd~fP_`ad0 zNX04Rk5d=if;@$?tqL=kWl^#Hmvd)gn*6a2Z49_;k`t$n(TEt!h;9kJnhWl z8?=r_-#B{2@hlkgxQitLhn!YDS1%x3ljmyAVV1VgQehja2(iPVQof`Th__$7in4WD zwpG_gQp`;H6nygVZt-(@zNhyJU;~IQ1LE8R=He$EZE@G2O^w+I_uC%35dwH6Il87S z*D;&FA_$^XUit>DB2B*mW*~Hu?_nRLjWOgH?+ zs1Lfa-&ITg(1Z*{mFt^jW~9J(3V!Y2t7^c{HhzR1X16;z2Nf&?-Okf+zZF&b+24nH zjImZJs_<50B0DF_E2>3((^}rZ9Y0!+*VEe_X|OezEI){oDqjT%er~eCwPo@&PkLF4|2Wnx%wuox5I<>!(PbTMB$Y#8WE`|bAy?G6 zObZ|J2Zkkx2zQn7y^YFAe-ioX2r?!L*DX%jK+auXTfFdhl$79xxYEmU;a!2rb+E68 zWxL`xet4{ZG5E%teH%9_abNkHBiuJa7Vr!%;DxhoQmyxtKlklY!QDXZ3`_#r-=-OM zD1f)ViSIDMJq{ntpL7C|En%ZXVs>V!2--p<7U_AuW7)8Bwk4JJ-&_`L&}Fn%MHlc} zg`!b^`g-mpv!`N@Eyc~@TD8f2AW2F`l*p#!8)EVtAOPU@PF@Joa<&DPkFS}yEYv)_ z0LUqsn3)}cptC!%%iR4@SVbk_jL~9|TxY1mZk&e1IiU4Q)ANG5w6sH|utXMTP00s; zq3JXjocQd+N1aCVy?-<)%L1k^bwYfAqKa|9deE)4^d~w3^_VkD6%n#0DpzE5q2K3T zKw9pv!+&Dnp`wwIOCoqe6*Jf!2^ZWtU3fyByxQXPZ>$QB@)Dy(X@^BW^6RuP1!7i< zySpa8A!Nz8#MfiEjnQ^u9uvqaiDa6%vyP|~y z(dK!LFktSXAMje^H+wofw8Ft0NbW6_8-FbOZWs(2;4?}aX9W*}G0P&U_{uHR3|=BA z#SS7K((iFN8)q5G8s+}bKdk#Tj>0fSC6D_^yH8lDsq~N7i zjAOP%JvxG2OBY;^R!|)zV=Wn`ByZO}0mY>Nz!<>LOWF|DZ)LXc^jInqGa?(>FiEfM zBvcA~0j7DdHkqfU!k-Iu{;E-_S@UeWYmC z(zfZDc}(%k8p*rgR1rcFsfs*J!o-I`YS*W~N_GS4?PI7W^t}WfpgJ2593aTU6HG3} zb2Xe$m5mp|^G@L}Q%KIxFDG${IJ*Tmub=zH)DU_DOlQ$Efon9eDg%1R%-cY4@M?A| z2f^!5rwBU0)#(lY0}I%()ai5%QuH!Q#{_{6v3;_Hf}3MR=~xU!=U>k)2Qsi-B{wuL%2AV#8D73q?B1T@K{JjEm%<7jp^(E1GP zhJ1^s-L*tBM$W-(h|rLCBrZwdIn-iSoirp2wk7nIWRS|5}W@bur zigk)+l&h4#Dg<(IS3={Ay2z9M-oThRKCH;uxoXTdEi{Lkl26G1W0J=ZRjq*fQ$mpr z6iyb9FOh4`M3D{>UhFEU5Rg~OKB=TISlE-q$xR0>0yB?N)%wCVO0k6(x=TX{RcY5K zl0+8_FbB9x$OKe}O#z8%EM}N203`>KvL=YuY21P}Sa41haahAo2_JLo2?lRv5qd!1CHN8>WIU112^RQ zY>SOVVv4yFtaN1>vlrwiM?TwK8X-2|*MO)?6r6joAkYF5!Ivml6QpoKn$njl^`k97 zZq8J#{jEGTe(I)reaD%h6KCxzQm;WP{V!h@bj6Z`hZ&mlXqgXVx&meo$to7BTUI*Y zoiQ9SMbUiXCeMSL(38fW*ZqSp3Tp;dt>&wcbi*VNy7-TsLM$e*D>o44rZ!4@&RM~_ zVwdXj&Y>*w!keM*A%(k8MS$uwL)+nbi}0eqFhbkoh8xH#D@@gQEysi(fOssKL zY7a{NapkO5p%CA~oFO*EPikeHDL157>S>)3xYF=UN*0_hVLf89%9NR8V3t+JM#kaO zJRCv#MygjnSI0_Dja&)1exXetPWz8-EX;`o=dJxzSl$C5c|b5NerXgeyz!28RRS@&J-9Xs6=RhO)h~L>#z$#?*>71?Hv38N z8Xq5g8F~>g#-8>BLlB!FL}sA|Zt@goVXq_ew}0EN&>El^Qq)E0Luna6p${N8_aV~- zk!nLowSpwulhW)_srN6{{ zrUuNoTm#9C*xi`^UC0q~riKYWl3krjwZi2Xi&_(3r@>s+#pEi9ziiK^@m`cGcqTVt z6-L4=n#clT9yRqrG8XBSc0y*UaG;EUs|MTJRr}{Zw~=4rHBFdT1E8WrasOez4N@XQzi!NvP-WE^<|Gj-~~rL9`YH zyTM!&y_$xCTh_aFl+Vn}Khe)ee1e931BZVCSu7AtoJ89)m7vfYBefPsZ8))K&~Jfs zMvOKI8vTmP?{&#!RyyK4@Yen&Z$3!|Yj-6vp+b|HP$U!=T{Cfy6*egq&;=b`B?u4f ze&1_uXMuD=KArGTCXFaS+=wW-b(*=zxPluD8{fDWhIx?zhbfP{Nk;%}D5XTAWld-uuk*(ZS6zAq4Rr@^04vP2-{ z9+|7%3N!|nv=4I!kWn3p=he8l>rAL(9aWmB$b)tM;aYz>cTAD!Hi|o2f+yvhJs3Dnq;;Zca-8*6K8G}3r`Hh^y!h1HL>v6_y?iyZ5+QHuZb)~Z$;hF7^Sn;zYTV4 z3EJ77^wkvA)L1(L)Hw%aXKm8bT*sxkdIhv?;s z>?!5yS=BgU&Yb3%eKXm5J1WgW0DmcF{sPU?TguXlT6f1O+;`rNp02r=t`WQ9MxJ-% z%n6vbJDs)@zT$=kapI&GJZW)0X~}oRgNx(J63czy+BhX}_93@CVT^6Rt{n9K>^?w) ze&=w*kzm6Y5#UXKzh`8LjVUttM8ujJnPc&xIJ&)4o;)8fwHJ?3~M&5_u-*LbAPnZlScVe~?~7(1ya z$sU2Y_evgySrykE9X@b}<_nlQ6tSkGH!bS?OM6^Y2|J_W1#ERFR^Q}BxG{)cr}Sp% z3ZG5CFSV-TMcENeZ{&M0u?CN4__Fu*Z>pbtbaY9IXKMEV{R~`VoOAGotvlqiC)U8@ z^*d&7sgt~B&-;$sZ{;q~odyc$0cd+az|~G-&bH4$SNG&C1)=$KPSm*1>L^` zUSUg;KL7(yppVcls8tHc;SkVgMo+DFYTdn7YVI^k6sFiAn0eN>3-N<$)6_>=Rm~7? z&eK%C`vZz#{2Pb&x@zLce+J>hlnHzmEU$)1Sq-@`J9+947CO0gJ+VS^MTG9Tz{Zk@ zM)J^4X~M3kuPKr8FlBKBa}&McsmNewnAq$^%J~}9`F~@GISQWEByW@yT)49`ehJ0r<3VgU7$*I*YGFwpeJQlP3J(vpEa1BA%;?$EUd*EXuYhARbwnKMk=YD zF%2>26v9fqYXS6w{0Lyq9>JBtbhvho>?v82ug!Q?_xed9&i$@%kGl%4wNq}yH5^H# zYbW+@_6(T{*xy||o-+6Lwu3(PRlHQUdXVT|JT3>ciGy~z&OQa?Wz+WLGxqE;Oq){$ zutTMr_1|G1Z~`UR581g;@rBZAaRh>znvYoA{v(YQ{VsHF)TJG8$+zs1hb;>PK9B(e zS=rv#P;@~k+R)?}&}p5_hNqeqsIh2yR^DdLU>kFJR3h6DoUQ@U9dScj2MTiOT)ydP zIfTAjcB;?%iItHPJ->I8Tbc!PuF2}oU|JrsBPx%$+~mMEVV%74&PU3wa6?ruh-+uW zkW}ysjJvTFo}dus&glLt9InfRq80Lb4kQA}zQAK1zvzg1JjZtdvY4?gTqUq#X-dJX z6yz{i7gpIi+Bf6QvcC|w>^Pn|M zBYohw;eRyJNNH?nxs_*FT_?n&QBun$L;m`zPgy*%xV9)Yp z!gO_-%Rt+0mGWRtMn=0}qnH~N1jT`rk zDtv9fQ~L;ese(v+ml2zo8=I$`l@J*AGV3q_hAyifX>rGrkAZ20XbpEl$dy?d*E z08ek6y;p7a$;1t><+Ep^ywY@mrj~29y%)+6+U41Hylw{BaNqcQ<8TNcDho)&E=ZSp zp*^8Bd~PI87Dk|QPGn*8=1Q?G7fiE!u8x3L@d=_dc#K3F=9 z?BncV8`$nVOHd61OVZp>a4`&=jK)X7nCJLT6GI1hVHVg^wlrjfl6mBx-_@5a2w@s@ z|1<7G!omj~@z_XsjcjRXzKBUUgXBSKSRxkBsh-Y*Q~zKu{(vv$fS%6;+0TGJohW6u z`Xz_L@Z33+O$;ffL=>IpBdEz8C*x#yE0s7!)*Pw?H`GL;SH3Z4a;&7F8ih4GjSi|^ zosbs*JI6( zmBDt0t6?2kZ9B&3V1mAY>g4UuDRb>DCH4o~u0@YydYc`Sf3jz zI44SKNKX43pw!h0d1r=hIOFZy+?r#Hh(NH-E&dW7a%yqM&_#on$39f>80Qw*{X1qs zZeL<}NU1W!E%*s#rVe!Q%R1G~Uj~)Fj^>Vu`gct&^j*2rxQyLAQ1*%-Wqk+3&VKCkfm zEmHk(OdRk}!f==zcif|VN~zFqN~U<-UV4^7ZWD2f&~}Ix$pEIrybB)4k?95I#I%xrd3nZuL=jmQW z-%*7?TGZi%A^S9^%3))vm(G6SflhQ|`mi4VLCxqdp8{ULXGqq-K|D?%c)BS=md$;Z zC1kw7)Z_U-GDAAW*>oyMZp1y288X^vb^*O-3T0i2SxW6C;~^fK@{ajkIEUo76-j5O zLZ&rurNl?%8*RN-xcF89Wo$xB(${GR?x3FVc4%9}jq zG^w*?8<01}8U4uG%%(~@>i=Z@ERF6vzX>50O)b1V)ym{$Yreu+O6-ic#-G}VJdZi%Qdx|Z17rj_G>%7*uDrC~e@)qU zQBtkESQ2B*J@G_<`Si3Aj^fW>i5)UIYP;t*MS=W#MaJUtDL+ZwSQ8Hjs#r}0u$T@6 zI8tt<3nf%>kJsN527ypDLt6v|jW2Wd6NkxEld!eD?;M`{CRF^$RDa_i#bBa4P;8Il zm)Jy6g^grQ{QEPZ*})mR+_vO{WMf12u?=R#2~K?n^-dRb8Sw~8n<^%4T|a6)Rq1efp{NyUmcGiI#4=U;Xt^s2`57>dgN@4z zMN9h!uh!I;E;nUE{bB+OwHD7<&Y?ckJ^7oG=--q0_Zq6X2?deY$g(`IAL`}8YFkM_ zR)rq78IE(W!z|P%IC-IqA0Z}!dChnHc;wOV8C8?4Z#wl89Mmb}D*xA&e$JIS{R{Q+ z+T{h*3%A!+IQw;S`7jrvBn@oBZ<${f8E3*)Fj)p!!szPc3srtQCRvg(TJ6z1&_orv zUPq%xHQ~ChN%!?u1N0qipG?XQfr{f3@-Hs#G&2*@ZzuMV}_@HC>~H zENco&59RDdZv|;pL6R%)Fq3yUBupps>KELp`)_!@IaiKJQ+mwWCe#h_-`_6mS025y z>c5kQ+1GCZt|y!~8ST=(TE3W=)bxRHvxFjq@ZGwC~w1*tuIgc5iyKx1Wy!>D$BJvF|^mKHTsSIY5DO0evOCy9@fa z8tDc+VsFb2%EnzlkZ(k+TJ-MwBcds1QP=Amr`26iwx6q~-(+Jqwqbmx&n#Tm1En2- zpP(YNGpo}-PzJ`_gM3?Lb~6t%_$7E}9j_@c8?S0yuP2xY_i|5vzTdV!wFGFVqbGY_ zl;SJi`#oT!d*E6g;b~rZz@}a-BA*b{??PB+-c!-Ea)@F+CzU|mpA9Cbxl?}J$q#1a zn47lL#{R+TQ-5-s7q5Qpl7ruh0r64uYionuR|JD`ZW_uyZ#p0USX|j}<=j|Yy=DOQ zv5ba)I`aR5gLeC;=Nxk9_W@VzQDlq7*s^FZQEGWkp|YgJB>M9AT8>$qc*j4t`jQr^ z)Z5$h5$gTIeQpeKv=((|V=>TbTx>2Ie^%uYSNpTGoB-dy+d65RZ_s4(M1Yk;OnJ&gxmL>B^NNrPk zG=*$G>vz+lK%fn65HB{&g#$lXdLA-td4y1l5S zEY(9`Chk?wZ&qlVAqKu;hvqWAa%BU*!Z|maDFnUL(6?rbYH_k?=SgwA;-+ePIHTzB zv%GR|T;}a}I&Gddam&i^s#2m%`Ak4yHT;V~sgdMczgX)N5(W+P{EUqp@6duVawgEu z;rn{PvWY`V9(qTh*M`CvhqO=NCDwh;`)SLlG8;g#u9&g%Otd;_7~Ya1U*44%ygos( zpey_K44rP5;?C02YhvubhA&w(FexWR^A=(`WqU`hc@Vb^K&kXUm5%2dPB7y*9%L0TzPKt#aJDM8t(vP^YgZ}Ka&oq+ zvppJ1W~~x|+yqnDZ6v>V<}S&~+Ypi6py@*{!ToxrtFNQ!{Q$Wk>tqzF6Ys{;|HkqU zOK@Oxs{`xOd1Zitv`@RJ7rbHx@W2HgtH#-=EdX@{L##C^8?G!cePC!Buq#GwfxR?h zU0cA})UM1~Jl8oFd*j$N#gy1QL$puw#%W$g*{funqItqJt&z`dJ&)OIh^t>MoJxE+ zdkpg?=(fxRTySP=H_zn7Tt1xYJ-BT3b_)B`^cUFv@zvkiAA;#%qr z!?)DvGhb1!Aw4g}ne>KlMy(Uo1>`_PZP4f?mT6leatS9^zy?nIbO&lcxKESz9#UtD z--&xtmgan~v&Wh2z{WUPJx2HuRpM5Bc9b6Tepq+)zTR{QAN3!y)iL?HRg@|okMb>v zhT(*+?wtdYpr6fnE1`4XUbTZ}23|Y;W;$NIDCr%)+&h2Fa(G{1hs!0 zZaMr9pQQHL_nr87>8-eQiUR(YszB~tO2SpzL2~PWVzbn0fM&4T%M_L*AcY&b#29WJ zv`%|Q&hfC7lFmpkaw@bmR-k7%Pt<5>J>DukmVE)R+|nVk%lvQ5ch}aVxNEddPLpM| zhul4SgFJd^v07CCZGtV$XUWwvLq+XP5-oHqRb*T3io_kF#9GDvzBZ7V1^z27pm^o} z?2Vx38Ib$MuKX)5BG+pp1=hr#kVC6gG&9>{$?JfI*sh4G#v7BRXYb0n?wqP-eB+XJ zggWL+u~qlyf=i+gM%SXQ3>_=JY1{f7{g!pPx~t~}>yj^6&rzRb9#g)N?7AGYnGO1S z_N$atu4n2?r4N{MWQ+xlia1-`AyQ z`cH@tHJ^wt?4F5l1iPk}+Yhfn{CmdlzcCLb-e|sKW)CY~yx-9?GdnLsw{l)}pD=pt z-&ypdzPC@iKX*eS`*=TFT{YhwlxT*p2>YfE5sz~BJ)HXW=I(pKXz193jlg3ov+clY zZa;XFx4=eAcjBCQh#lk_63OPjTSjQRp}QXaonVI2r-VO`Nm_!Pjl-G#^i#NL0 zXk5yVcC38#3G~9)k#-C+&$#@| zUXY6ZHw5K(MRQn>JliRI$r6wX;T%avjoV*!a}X;HwuoFZ-^~J>Qzw*mUvZvk&3%Un zLJL|!(!%EC(zgOSQ^uFeJv39ZQ+sjovPUtzlh;Dur`U4d-XU{{JHm2kOp95*rEcOy zN^Ee*2o)1s$)DI>rr&qR-8%B$CWVhz`*UnqI|fo~>;p>KkgVIS(!7GHRe~fw?`DSn zkB57pnnMS;!wZDjcff#8`MbZEe8XKaDVg(B+3PFzJzQR)ZXPvzm>A#IE5Qh;GiiGT zhZ5-BHs-rQ-f+!ZeO+8>A4SzuxGQ6~YVB;?s-2d>G0)muC^a`$jWd`sd|^E|JRH{7 zQ*<)Z@Mv~z$p=bWRs!y*amJ);Rr^`qd-k*;aHuz~(Fb32d%3;7nKp0mMwLzS4#IX=Pj5$$vnjqZI*Z;Jdp#tsYwMEn1-?55;mZ*S-L zzZ7#(a$L6k{D|I0y%6(-d$5Qih9Wk?aRK8`E z4=CH2Zkrw71HQo-22c#N)3p=VlG&d}(_%le>{Tu5juTXN!e!3O%URe!kg{9u34)SE z=u~x)^Mo+AoJ!!L5HrteN8N*sP5TI9?>&in{VT8>cjPTf91r~pGbVX3Y%6Q zBnx!jE(a#Vb^rTZ|Ly(N!stq!Z_VL$dFU?`Fba#f)>L`~89eX9&gksvbc85m&tS}$MGCAlTas>Yqh^Ie4NKTzY} z0#^5uepImyv#^i2sV~`8gDfJeTj3%z#e@7E_TmGXk#6E z@ERnz;Kt<}(!J4s!RV*tRhHaEG?yA?o^&LP_ZqLFn_QrvReLelG`uJ_v0kJW8Q7kS zFk$3dir1w(Z653C60zveY>^rc*I+x%K_i0l*+KOIjOOd1ZIw{)pr2VG8QkZpB$=eg z_QYZKJ9$VNx`zi8*9kAPuE2d^0R3GeE^JLb46{j4Pu>11MZ|AT4q`=vkA?lEAKrKx@Q7Ie9gT7 zPY)7+RMOQEAOILLLM_wlGzy;>Wo3|!)kb*)w2W4Hs%9%qaqxUfaAE_ z2DD(zJ1XFaas%FlzG%PEeoDDtcSdeLOqn{k(qx{?Zp}_6*POOrzHH69A4Yz%eSY_X zyGapd(@#eoCqPCex~z&vpBG)4uQ4$fct&`PW6Ycu%|~i5Re3Rj70tFdyBwsu2A#%N zo!~DboIzVbi!hsAQKu&>D4%8@t|>6{aq47jm*+x5e5G#mAwxBrR6L*ITn3UZ`8N7qGo2N&DxLsATjR>5qu2|eqg{DHXYQk z$W+E<3MXaGDOk+N?VMMlED#1pIDD+kL(~{Am{njpacozi!{VkxkK9kBfrlBRAq4|= zeiJVwLY#OxoESp2S;es%QhmM@X-yT;>(8erbZIaReui8St>DNH!I*PvQN_UXQ9%S2+1l`3#x-t zOZYHle#Z&2v{B_RMqhBMYIPc?(BQf!m0YmJr)QW4t2W7~Hu7GftekG+T88ScX6loO zqtISfEd6qKHAr`_Hp{+{aQ(KAHVIx3rBq>oQ5<7CXx65)J4-HnNJTh^@`)?ADF^o{ z=nZ@Jn2gXGdKC8MgRcc=r;4OO|00zXd~FQIyfm8NBTm~2|6H!$bu!q5%|ZZLPd@Bd zD6|W_?r(dWC7oXNwCXE;8RFexj#HDlSniag&~p7QPJies?ASq9lyg2daCC;ZOdZ1M z;1trW`{mT~kG*BXaSF{d;Xv)Y&S8$^6t9@WOW%E``Kc#+S=}zI^(iC-C8BC<@yZo#L zW#1ahxGvnJa7&?Kk~ws=E&5o}p=L(OOxEjDOS_{p?ToOVen2wx)!~#Ts~d53zh+Z> zGxXrjp*?gGjgHPbOv7X1y?*ptsdxJM5Z{*=tU2&${ss<$N#P>KaC(Hv=U_OM%ajK`y&9 zjDk}_uGY%8Xa&1xvHkK#>_j8Tq34ukbx~6~8{q)cD}+muN9p;|Dw=2UahjPd$H_B=vyxPeRqxU&ETYuK-k|gw2yJr!-%g!QwQmoW=*?>2d}}l<=0Aoi-Oi z*29%x&|$M9Tg9%Ez3~g=5qqx#K8o#DCL|lFoi3;@*vD7MPAxxc87S{BR(bw|$=bcv zJKThGIve&YZdCp=Q{{jMzbI@4n6y)Gaaes;c2-y(xG=o(9FO)88NDgIRUG=Hk7rZF zS{TMO5e*)rM@Fs~?xTk06qyKeT!Vy_p5YpccOHsIRRF4u(dxrY8 z0R8pvYh1Q~iLDSqSQr4lsQDsU!2=_e=f|xA7Pzr9a8v+OJ0d=@OL&b&bUmi#)Wu3e zecm24Z#D*zo!6T%pTx*v^Fh24n5Y2-BH81c-_hA|(A79F zH2NF713~9N&H;?JBe@vcH5|!naNiDq0& zXf&R1EIhjt}p>D-OsF&>9X9q_0si zHWI*x8W{s65B(OAOh+NwgT@|BV&E^bCcg*z?JQ72F} z$8-7gEfIc68E#!9VH~ro8g@BXjOm1ZuzfwmBhw1=_d^n8ll~8;lbF&bJ=1kcXKM}8 z^~K*0(SLWjS{FsQTEXvO)Fc+igyCnl!U(w-Ufk|>@;Tpl+V4Wz-^1Hq6YYBk?+i`2lZx!W|E-4AjHIL zGOb+m_>NIIo3x^1M@AjIB;h$V#>K3_<)W%Idzs@)xD|$+yf%GSs84HzKiIBT$R%Pu(&M~irkG~)OS;zllnyGMz9kAJ@b zK)geQzXOH4AAG|s!t)AMyR+cxkCIv{%1`h(sl&R|Ic9c`(Iu1-_<0d z7ADrl|51}vDcdL^E1>$&)wI*a=8}a$SOi5#s%nP2h|&FQmqX^^;Fi*Wt>>8%^y;sSbbSIgW#o!(3m&vi}KcE!4=R zI|5*4I>;VW%*|Fuif|u*&6v>Kjs}@v;Y9@L^urfEb|%x|ny?ZVgm3>UhUT)gm11@7 zZe}l<5**tdASsz+a76^m!OQZ(kw469je>x7VXHdcErji@s1*jkSA)h?FS3)cmXm)c zS*AFzo8Jw@M^y0RmG+ZhTP5@7I9n+Jt3lEf$9#*v#wygqnVxHMzg=-yEp^F*z97!O z02?8e-OWw?j$rFU+T3R~IKpm6iDR-Y_9c3jl@O-Fz^U4uPNC9}C!vdLHt~3e_NRdn z90Dmt4t79y5WpB_$l^Q|1%k?Vou_ljmibC^<$lCISo9_?*s5k4F4+vwrJ;61bZv>f z4G*0c{z>0XM?*HH%`N|nffqj~Eu7#+5*ZDpA&UeDGw1X7FAcki;>BA1GDXJ8M-Z{e zB!%&(b-@WH)jan8Mmcp+&-hJA`ecNn;>cQSgCX1~PD>6wqcWA zxJ8>mMhHc4R!m6Hs2`{=uGJA+ob-3G*iV{m!FYY@+7(}dngWC>mpd^8nu4IT^cRSr z>NXWZlb@i105~e}Z+T#R)TEG|Hh^n=+9b&va8Hge|MWJ;i`R+QiNnoRHM?C$L?}Em zuz*y;+1~Tvt}0J5?h52a)1vR$GoPrUWu7lywI2E@F>{=FLJ>1KN7bR)$c~P z_hZmzOQUpxION6EE08uq8>ruy6VqA3=Z7?{y{%i(5qQJ)u(%Z*mf`Nct0 z!Iz|4LX9ozQnP_|h^Wl{AM=_2k?fl)UC@CMrX3^#&I$$oL1*n{FF>iBIo&BbDk`ZbsD2{4xa%TB(hm}%zcEVMs z>K8T82+XHWlj;SvlXCVW-bwkHj;_t-9sD&?-{_C@&hPvWCs9*IT-IvHDbHxvgQhm= z-ZFI+)fl#gr++qZ`Ftm?Z|P{NDjw4jFC=bi0rPSqc1p6HSH}d;(4(xLkbGdTA;r?( zHX8SY+&*9tB?A{XUEEw-M(Z`2E2=OWwrLJvDjtdpY<=&T?ekN-oU*L5k)JH>8Q(G| z0u|+Ro-9(9F1F{UCbfJ!YdW}By7a$*@iKd9u5{+29$Y)r0rH1Sl$ zf7r{(>ni|*kEkitF}(DpJnIWR->FMo*s1^#u8s}Q56+K#ov1P4g34*yKLDmE3vbV9 z@r$Ueu8ZW9g`hvcxU!rsw%V5^FsCrU@0HMBQZ!iu^F;xYq9Y)WCYqBkVKofo>KSIn z`QW+z6yapU@f(jSTn?Ssj3V+mpt%F%kE&V`?O_+VbVENX?cv@X=~-=925@8vYtn30 zMaqtgrUFgZ!Hja&8PF_d&?;`uwk$>Yr2y`@_9g)yx~(@f?~JXsuKmH|Dr$YZR?OOWC9GoR2pXu2De<{!jf;w+pobs$We;cg5V`ji>ochT!m!G78m>Ux z_p`zP&n=|&%1@o}mx!_HIvIMU{ry__52TClJwA+l>}zv3OwzyohdZLENeO%b>-g;t|g&Ek#(c}#83;hv7~ z%=v^UQ&cVixLW)=rkHe+K1A{U?YK+i#GfA(ESoOaWGBL=(9zG` z)pcN)Dc8?7l7M(95oEZx?&r`qzvslt*>Fpp=uIV6bm#p?=Bd@Aua~0FuVfy!7o0er zza6wH1ueC0&lqBlax&}AXjfZ+)!QE1I;#9B;A`HPop=P0z2MVy^~3&D*c-ZHLv@j} zbC#BXHi|`!uc+^_IxFMsK&!>LtVc`x>8drHz%9FhrhvkNJmf0^E0~fE03f#O(y8m~ zPt}J7`4h*rl5fF;p``E>AP8LGv>48$a;W;!Dcji4zq-b>Ig4u;_c?L@D$NLav8X*1 zU@4*;I(AM3QH<0Om!V<_cZZr!Dea1el7hsz-cK9})txcyg`g^0vgA;O6*dC>Kv_)M zVO<2(DSl?*mz4!H1;v@P$lK2w7k#dV*@*pHoh)1vZR%s=2CU1jNUeV&$Nl`5C$9D%c>XWHonNUwXZ=Xyu}6X^xY6Q4iQ6$X zq>7xghs6@@NB-A>XUXX4Zp&%5xNtVhHHneZ@@imXIyNVtZm9iGyB`%Vo<;ai*ysE~W=IL}JJAqS@gC7$tU2`;vmSZIG zs~wE>U{KuC*H6DDu}cH1M3NM3+;!koe_Jh??t}FtOUEYkG1_)f2&PrPL#=nt8&yBMH8CLY8vj_k>hx-_->C3|mf#oaHXZxp5n_F9x+mJEX z)L`feVZgWh-7gIRcTJI&c}8b!n|!WtDzDyf%l{LR;YHMQ1G>ft2>j%(T1f|b z5sg%?J+@{qy05PIt6e)mTm5xt^~a*2-2yAAmp&+8LznwqC#rlqaZgTJxB&F?6X3;} zz=q|Sr`@Ov$Qa&~fdfx3w@qs?H;hd_kcbW)kJKwigaeIJ!Ep?k=h4t1Z_FIllz*zA+`b%uGv%d(gF(k~^unx{`C_<(nvRLb;c~^|Kl-Gn93sz57j6idM}f~{k4i=>+W?>8-zgr(oUCJgW4Fa<$e%D?N&$@Ywx zw=;cso{k^2Mlu#E7W|hL&$G2XtqKe;tk`np2;)ptxDaXy}_XI zA#=_&@SdhaZI;`Ro`WX>x}n}r#_vIFf`+)eu;_9Gb;ZB2Pq!QSS>}o6gg?SfHObNo z2S%s|k_T+i{QoQLol=}z;cTzt;amEq#0m#&m};3Q8M}D3i3Z}g9aq;5co%5h6p{xP`n5FwdF;};2yI6~ z@8$Y2F-ERB%k5CQP^3C(WOM(G@SlzOn=2i#^1sHM@?T?4|KAJ?WbBMxtWEx-Gfzs? zQd-bQ4Bm+$3PP5o+($|ZG?(xXr@;F|Ax4=T2-1Z}FD*qg$5tkxg?sZVF-S$AP!(M@AI8NoP+cN)-9u}$jlt!!lTG&bo1CTfP% zKh*AjsB2d#F7UtpM`dRL71j1N@S#+?Q$ijk%^)2LND0gc0uCVY=x!tg#6hG(5F|yV zyBxYf!a*9Oq+<{SK|or+tM8$I=PB=dhsCGkBYO6Ec4(5Wvb}arwSUT+ok1nic1oOhCvpG$<;9*mIO8gQrJIkmFcgrY zaK zgM5;_@T5CI7ll=PTIO~0uA;se(U0#%s4|^`6y|y8I5N2ZkoCBaNf$w3AA4J~IpfyB zJyoW22&9rE5#d6qXnj9*5hrJptiw9+|Y6a?`JQ&O+i+U~Vx?ReW;ljf>Q>XFJli zt-#{E&)Q_TovyZIG5>jmC!e1Pk@~|L!(fSN=Ya1)r^9};yn-tiixHq5E#?35K?{39 zmr#Rmd?UdDi{SrcMDSS_I!TFt*=Ue*j)NH2sw^RLB3G%mHv4?vNvzZAUW`f@~!R^R&|#BFfa=TB*eH@DswccVob0^Ac~imUb+jrts% zK2=ZuY@jT3$H(e`fkprZdP?p0Z+GiA%uO9#%&t1xJ2^U-1FrV}eLh~O{q^}cjdZ*{ zfeNkQR7zbHoIkxzjYOT+|6Y^2JPme$JVcZ$Hr)N4MEI4KFKHoV^5lN^t|0f`)|NKk zY$rP|leX`bM!nsVsz3hbL^Jh#CE%bJM0&}&fNd>G?~gPK=pVYbt}9gV3g@+WRzD5zhB^fi#H51e&f{JvN?Y zAtOiPL6d>S`v|d(Sbo^(;$Wv&J*s9EcU{@Y<78|))Z8SK*cjZ^$Gq_*W9WEACEwKc$?N|AGh+F zbaXlA)H74R-lt)M=_Ahaz088CGvHlO-g(mEw+Y5pTB>CA+LWF3Ge&|$H2TJTql>J{ zfDi4@R8?N2XFE4g*!!HG5V3NmIYbn(^ZuILiwbS9_-EluxmoU7s;H3%$peoQ%VWmN zQU{i?)RicX2y7OWaJ6@|MEgo#mdL?eok%e^xa=;T-RF+G9o%2c>TsRR2QOdi_L8wx zATbGLwyD1w*F$^K#IVoFlz#Z7`*E`$toSt!UbcGaRe)&2{6!Ls)HCcA&t3y-IKw6K z-a&ZJr8Kd)ldCs8_su~O_^w_deXALG$7Px6)$DqFT7nS>)_E(uqCtfM%$&1;8|sho zw$+!JMg~at*OSA4zMQP+VNHiW@U$%wP7=S)$oS6b>1;DXsWYsLz8x!7l}h3j??zJD z)P+(=8A=oW#-*~#6!0k_bh(XxUZgjeMKQyTZ^Fu+^8M7YmK$Hqm*J6R=t8Pi5+4?`@ zw)QZ&SuE+-_VItVQdLum>tH+}l85Tl3i02p^m~Q)pX@UZX04SnOnaB_p#Z@nGa3_R zITMnI78(Dnc0xHka&-z!i;Li#wx~pY0g2aY7O!ql4!+4ORHe?RDt9pGvoXL5Y0uNP ztx2u8QgdW=*pXV1Ep6|I$X*pM@2%fW?h#zRMEN99|PO9P*jdC0ri2jfWCuA6;49H)AE zky_{0!06Iy;ql|9(7u@_nGu~T%N$$S$i@sGT&7XqI_y?RNQILKgQ^+=Kek-NbA~kM zUA0Y>B`UJyP)7T{uYfH_8m&VvmCl%`z|i!iz89`lf5sOxi^PRaXuAKwEy_o|;qLLk zyFGB1U?5{(j(j&Z2hh-o`f&8~uNc_@;+M=$!ka&6S!O$mDj7xp~C3ZeEt&iG@Eur%7)v`n#ARBu%ShrQ~n~*E!+ChnY{N z+VV8l+a8az?Fx_gt6nq;I?F(TRLM+8#!OauBF4$UBvERRw_(im#wK}Ei&@rZDQ}K4 z^j2axUPV(iq?;{P+{>V%%gUnA?PkqlYvzqjL49`he6?N5g&T|lDXL?@w}i%pBnI0U z3trw{oyWrL!jC#Efx0r8=;miKdx#vU7ss~>3O(P2&9mHyh?a^s$Wr#n8PqLPvgpBy z=^XY#r26bEN96CcM+pwtR8JsBYkIhXdzSY#SVY4$gUH$paaA;`r$bTio9kak%C+N5 zHwV=xY_znq!tw4XvlUs!Tp!hiznFX{kkfMWAyH2(v9p@?{FxHly|Bexd6j3*#ufaG zl^g}0@tPg&hbkGs^OT79v?7HH&c z6JBd(+Lt9Va#4Y1XO?^~gZj`ZpLn%=ZQ`1= zefC`5(;^$ZxK2uy9ZnxT#zTTfti}@>Ks_;Xk*A}$l52C7Ge(9&@GUd_>!k^G69yiA zsEf0o0>cZa8hqiTy?W#+gPfeJ*5aCf1|7=jjA^wnGrnTq84co}#n1&^QsZQtTC8DN z@Qzwdx>$RlN8Iqbl_9!nFvFIrY(tRyQm)`8n4b~G2~JgOx96U1hIIcBdWs?Cx5n@=;Gk$>#3ZU^C1OpplJQ?4PMx=rN=(?8!6{mg;NXQe zyd(%=cU2Q1UaB(o6QtUixj1Ov9HAal&8Wc$n=?Nn6`!D@XzHyUIdBCYn3ZfP@VDkhyX;ix>W*PsWQ^=OBjHS$%q>q)9fq*T&EPuCy>{HL% zA+hB2B7}^eph??S97?T-D}~k4viUr8X@Im=l&W&y9@ZX4qto1F%DFcgD7t^M-S!S| zU6F@ZHIHk3*Rh?ykDqG&*}W(a(GCnR+Wcw>RQ0%5k;ba|$D|v*cTm+mUS$EpuJ^YV zU>HwrgPT9#eD+Ot)Vzqo>!T+~@uE0?AMUy&R#eQ{x=p~vZK0uYIq30>v)#BW1**rm z3m-Y;vFAbgc*8N&0Xp!+H$XK#WOALMJS%+esu+`cdLe5wS+wW_EMMX2g`yfvE1Z!V zm{yHgZuhtt7Tz*bt3ScWYkiPnD%qw`HHuNj@GPR4WwhnX+NBNbJd0A+5_?7i-lIlI z9dM9)2!q}|!W@|?HLq;WSza;xAcKeJ2^SRKtHUXlWs9-KUP&L(+~=p+xK0F@YGW9%TPK1z79N(&Qdv4k+YTi;IHd1YR-bpjPBuBdbS72mETv&G#;BmH3@Mnev^8+nQ zUq9eh>b5akvDp?wesVJ2zF5R*;TmAK)M=5*FiXR-hc`ywK~=Y6GH5-jZ#$|(luR|w zAPG;xL4dn0)xzdvq9|onANnO@PnlueNv7P0#4l=VGEkx+^dP^EtRrd&Rz3#5G*m1j zaQt&xW))Y9Nhz>zY$WqTVcuNiTob;+=4TAkVn`Ba+779|n}BJxw%lvAg5p^->YL#=FgJ9(unI|>HltW~ zr}&i5GwzB#NEw6@sLvVlQwTS5JxY$zb`4|xOtt&!*nMVx!Fz&$kM&UUaRy@m%<|EC z=fs=tl85>Y`x8gWDCg{+jYoxIJs+Z}I8aU<{@9jXM$w+}etsQdUl=Xth^w&uUWy#y zw(eb0+@zM@gpr33Qq1$U=c);h)X7wkE<4QkrMoGw(+%ByEoR=A8)F0xc@&Z~k-{IL znFi#c)iq5kAAcx_^ed70{Ay*7dUbX>V~gqiOFx5tdLgs3gk#<%W6a6UY1P8~2YL^5 zoDEVkXjPsE^(`X@z>tADA_Irl(b%8gy3hzT71L?7g8I)HK**PXBoZ zd*zrnN}Oz8Rp;k6X1aATz zw{hN!fLy`-)k(1MjK1FOgH_g<8&Q=?-Wo5+)C~IX)AfgG&k4rAlQ2EFVR~S~AvByP z{c0uAP=LcPSWX|Kc-bQ{SH!}lU9AVqa()1z25GG5sDk#+sYy$wli%#k!}gJ1T=4!t zr5!|LHX77$1y$m_`>yUEsA7Zmx|%YY%-8%qCaBP;b^O5xUQ#`QcOc& zD-c=ofvfQG5tF(q1||g-1qgHwxHAOF0>2;-5JLT};r@LDfk;4W-~I(r(30i7236!o z7n>ecl=B8+(4PYLm;mg1%YbtNe}5N)$U?6vDrjo)K@`ymxBDKpWdrZU2PmZ9 z{0;Dm{Wqr(ueF1P<6ni`(Z#)1G_f%^ zb@MPcIaQYIC)v;ckTrI-KUE%xul>7y?X3VXfnR(3L-$wt+iuo&|A64lcgKtYg>IxH zKp?gg25>~cEq@P@)r9;{)f@C#TsUMMZ2}NFz?Ad+guE~D+kTxOf66UDC!1Uhv5>$4 zfjEGWfv>UoCk+9Qko+zAs+GB^?T<)(Su~BiF;1t>3i~4SF&!lc1P7+%t7G=0A>h7t|H5`Lwg<8#jP1Pc{BFu0~cG7VVIGe(N3SgOkZwR<;@PEPorR>*pKWWc) znIF(`2blk>-!*(4LS@*0*8y{}2G%Fc#n{Q|cXMWxv=ycfWa?ZpM?WD-k^e#AuSdh! zXN_eBj7A+8jp$FKS*ZON__zJ_?ff2$$%|<^;4cS1RUIPIvmYwd8$>|#ZVV;0ehr3u(E#E;`{n^E#JK^CsU;f zBoUeadMvyIeNYgv-Hp-y<<0pqmgC<4rsdas+>m1CVc_Z!3vA7-Cvf11fI}vJ%U5@? zcKGccie5VH1d4#0ZT*&rR!9wfxu9pL{a|WvVf^k=_nmp_H3dE2>j&D9`}gQmvcJ&# zj-CVaLqR^@=?eat5rfV~k7fPAz5*ok{pKUUH_zWcBU{ng=&^Y}*j*B*vwsn(hYm-7 z*7pNGs`xMPe?Iv`hoe8I_yPA)IUSB>|37&}(Y2uaS$}9@f}XDByZxi_ae$o!1Y!n$ O6ab5V_Vx1<=>GsIdLR%0 literal 0 HcmV?d00001 diff --git a/src/main/com/tonicsystems/jarjar/util/EntryStruct.java b/src/main/com/tonicsystems/jarjar/util/EntryStruct.java index d52b10b..a73a071 100644 --- a/src/main/com/tonicsystems/jarjar/util/EntryStruct.java +++ b/src/main/com/tonicsystems/jarjar/util/EntryStruct.java @@ -27,10 +27,6 @@ public boolean isClass() { if (!name.endsWith(".class")) { return false; } - if (name.startsWith("META-INF/version")) { - // TODO(b/69678527): handle multi-release jar files - return false; - } return true; } diff --git a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java index d109083..893800b 100644 --- a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java +++ b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java @@ -41,7 +41,7 @@ public boolean process(EntryStruct struct) throws IOException { } if (updateData) { struct.data = w.toByteArray(); - struct.name = pathFromName(w.getClassName()); + struct.name = replaceName(struct.name, w.getClassName()); } } return true; @@ -49,7 +49,11 @@ public boolean process(EntryStruct struct) throws IOException { protected abstract ClassVisitor transform(ClassVisitor v); - private static String pathFromName(String className) { - return className.replace('.', '/') + ".class"; + private static String replaceName(String name, String className) { + String prefix = + name.startsWith("META-INF/versions/") + ? name.substring(0, name.indexOf('/', "META-INF/versions/".length()) + 1) + : ""; + return prefix + className.replace('.', '/') + ".class"; } } diff --git a/src/test/com/tonicsystems/jarjar/util/StandaloneJarProcessorTest.java b/src/test/com/tonicsystems/jarjar/util/StandaloneJarProcessorTest.java index 42f86d5..e005211 100644 --- a/src/test/com/tonicsystems/jarjar/util/StandaloneJarProcessorTest.java +++ b/src/test/com/tonicsystems/jarjar/util/StandaloneJarProcessorTest.java @@ -19,6 +19,8 @@ import static java.nio.charset.StandardCharsets.UTF_8; import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; import java.time.Instant; import java.util.ArrayList; import java.util.Enumeration; @@ -27,6 +29,14 @@ import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; import junit.framework.TestCase; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.commons.Remapper; +import org.objectweb.asm.util.Printer; +import org.objectweb.asm.util.Textifier; +import org.objectweb.asm.util.TraceClassVisitor; @SuppressWarnings("JdkImmutableCollections") public class StandaloneJarProcessorTest extends TestCase { @@ -128,6 +138,31 @@ public void testOutput_emptyDirsAreDeleted() throws Exception { createEntry("zaf/bar/A.class", "Hello"))); } + public void testProcessor_multiReleaseEntriesArePreserved() throws Exception { + assertJarTransformation( + List.of( + createEntry("foo/bar/A.class", createClass("foo/bar/A")), + createEntry("META-INF/versions/11/foo/bar/A.class", createClass("foo/bar/A")), + createEntry("META-INF/versions/21/foo/bar/A.class", createClass("foo/bar/A"))), + new JarTransformerChain( + new RemappingClassTransformer[] { + new RemappingClassTransformer( + new Remapper() { + @Override + public String map(final String internalName) { + if (internalName.equals("foo/bar/A")) { + return "foo/baz/B"; + } + return internalName; + } + }) + }), + List.of( + createEntry("META-INF/versions/11/foo/baz/B.class", createClass("foo/baz/B")), + createEntry("META-INF/versions/21/foo/baz/B.class", createClass("foo/baz/B")), + createEntry("foo/baz/B.class", createClass("foo/baz/B")))); + } + private void assertJarTransformation( List inEntries, JarProcessor processor, List expectedEntries) throws Exception { @@ -141,15 +176,33 @@ private void assertJarTransformation( EntryStruct actualEntry = actualEntries.get(i); assertEquals(expectedEntry.name, actualEntry.name); assertEquals(expectedEntry.time, actualEntry.time); - assertEquals(new String(expectedEntry.data, UTF_8), new String(actualEntry.data, UTF_8)); + assertEquals(printData(expectedEntry.data), printData(actualEntry.data)); } } + private String printData(byte[] data) { + Printer textifier = new Textifier(); + StringWriter sw = new StringWriter(); + try { + new ClassReader(data) + .accept( + new TraceClassVisitor(null, textifier, new PrintWriter(sw, true)), + ClassReader.SKIP_CODE | ClassReader.SKIP_FRAMES); + } catch (IndexOutOfBoundsException e) { + return new String(data, UTF_8); + } + return sw.toString(); + } + private EntryStruct createEntry(String name, String data) { + return createEntry(name, data.getBytes(UTF_8)); + } + + private EntryStruct createEntry(String name, byte[] data) { EntryStruct entry = new EntryStruct(); entry.name = name; entry.time = ARBITRARY_INSTANT.toEpochMilli(); - entry.data = data.getBytes(UTF_8); + entry.data = data; return entry; } @@ -181,6 +234,21 @@ private List readJar(File jar) throws Exception { return result; } + private byte[] createClass(String name) { + ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); + classWriter.visit(Opcodes.V1_8, Opcodes.ACC_SUPER, name, null, "java/lang/Object", null); + + MethodVisitor methodVisitor = classWriter.visitMethod(0, "", "()V", null, null); + methodVisitor.visitCode(); + methodVisitor.visitVarInsn(Opcodes.ALOAD, 0); + methodVisitor.visitMethodInsn( + Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V", false); + methodVisitor.visitInsn(Opcodes.RETURN); + methodVisitor.visitEnd(); + + return classWriter.toByteArray(); + } + private static final Instant ARBITRARY_INSTANT = Instant.parse("2024-02-27T10:15:30.00Z"); public StandaloneJarProcessorTest(String name) {