[llvm] [VPlan] Lower BranchOnTwoConds to chain of 2 simple branches. (PR #174016)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 30 14:28:01 PST 2025
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/174016
>From a5ab09378ff8e91cd15c52886dc3d116ef7c490f Mon Sep 17 00:00:00 2001
From: Florian Hahn <flo at fhahn.com>
Date: Fri, 26 Dec 2025 13:03:08 +0000
Subject: [PATCH] [VPlan] Lower BranchOnTwoConds to chain of 2 simple branches.
This patch improves the lowering for BranchOnTwoConds added in
https://github.com/llvm/llvm-project/pull/172750 by replacing the
branch on OR with a chain of 2 branches.
On Apple M cores, the new lowering is ~8-10% faster for std::find-like
loops. It also makes it easier to determine the early exits in VPlan. I
am also planning on extensions to support loops with multiple early
exits and early-exits at different positions, which should also be
slightly easier to do with the new representation.
---
llvm/docs/vplan-early-exit-lowered.dot | 8 +-
llvm/docs/vplan-early-exit-lowered.png | Bin 65533 -> 197694 bytes
.../Transforms/Vectorize/VPlanTransforms.cpp | 29 +-
.../AArch64/simple_early_exit.ll | 56 ++--
.../AArch64/single-early-exit-interleave.ll | 23 +-
.../single-early-exit-deref-assumptions.ll | 49 ++--
.../single-early-exit-interleave-hint.ll | 7 +-
.../single-early-exit-interleave-only.ll | 14 +-
.../single-early-exit-interleave.ll | 89 +++---
.../LoopVectorize/single_early_exit.ll | 81 +++---
.../single_early_exit_live_outs.ll | 274 ++++++++----------
.../single_early_exit_with_outer_loop.ll | 12 +-
...or-loop-backedge-elimination-early-exit.ll | 46 ++-
.../PhaseOrdering/AArch64/std-find.ll | 158 ++++++++--
14 files changed, 447 insertions(+), 399 deletions(-)
diff --git a/llvm/docs/vplan-early-exit-lowered.dot b/llvm/docs/vplan-early-exit-lowered.dot
index 44ece393461e9..30a011682ef9c 100644
--- a/llvm/docs/vplan-early-exit-lowered.dot
+++ b/llvm/docs/vplan-early-exit-lowered.dot
@@ -8,13 +8,13 @@ compound=true
]
N1 -> N2 [ label=""]
N2 [label ="vector.body"]
- N2 -> N4 [ label=""]
- N2 -> N2 [ label="" dir=back]
+ N2 -> N5 [ label=""]
+ N2 -> N4 [ label="" dir=back]
N4 [label =
- "middle.split"
+ "cond.0"
]
- N4 -> N5 [ label=""]
N4 -> N7 [ label=""]
+ N4 -> N2 [ label=""]
N5 [label =
"vector.early.exit"
]
diff --git a/llvm/docs/vplan-early-exit-lowered.png b/llvm/docs/vplan-early-exit-lowered.png
index fbd30ef60c9f3b99059fe6968a54ce801deedaab..d7dc07c1ddce8bb5975e205abb0207128be5ff72 100644
GIT binary patch
literal 197694
zcmeFac|6s77dE`leTMGlQ%b4OB&0Z`5Ya%2B2<#83`wStDO0DBG8LsnPKKyN=9yC&
zLI{<aG9;Oj*yjCSYnM9r`~Lg9&-1>|bGtvE`?T$C at 89qHUEj5?b**cy?YU1yarTTQ
zGZ+lU?A^QM)ftSLX$;1{o&NnBeiO8N<skm^n}M>TJcC95`zt%jpTStp*e$<pzhiKB
zqeH-f_Vj6Q9X=fJv;1k5Ui_7c#WOiCdn{fMUOnGy;|&3&>AU{m%$v`*c)_a09(iXq
zSFfCLcIEHeRxS6qd?8F=$^MmlBdU+~^2R#0hS(lCBQ+Mxb;sn9Rt2-(#65SO&Emk^
ziIA+b_`y|7{hV1R<li&(fd2dY-M4doJl^WF at 8q-}50~=`r2YKkp&!SBhM#^sd_H|f
z?~g}}wqJgA_{T$=vuCCM at la~p6Yd`m&jkPVA0MmoKkj3<r<;GfgUjWkgI$T-xZ)$J
z8aXZ_0-7odXEOeh9KKH*#$YIUwwDAdhHSP=;KofJNv%q?YW~oa?VMuBU<AxCPWZ?5
zG8ilW^VaA6=dGW&sr|N!Mk=o#9BBRf=eaNJXE7LO)D1^IxA*5S(l?U+jj{E9<hQ$y
zJXCdWuVHb3V66`>Z{G=-(GTI)gReDB*snUUrv4wx%viqtKbCIUf9}}-z at __Nv}6DM
z*r|i@|KhRu?;`(CSmYnR2S>m0NrqjQ0lb0qVBK%Cmn^Vd!eBh#`@?VetysFr+ynlm
z&~L>KgU-rGY1dFVYlA(%G8pN~KaRXu+xy#AKGS$z{-_saF#gID_=f}Eci4Ne=*s$e
z_`ST^ch7xh)_wIzrIb|+##Ya;AAXk0hV5bg1 at 9)%{@uGR7rZTD<@33{gnUotRm;W<
zh3wOV2G9Lg^q0F&Za5gLlU~}DJ26y${@PEBt(G=ZUVY!k*-JOA8)|fDj^2M?ef&$5
zocCPW;pO#L88v&`+S~IZ1ND}~We**8nH=eeH^{$i;dbD`e!=!F at U#x!Jy^gAUiWcp
z9h)M){@0rN`EMR+w?0a3x;#)WC--?^Ad!1EHth^cacVIHUSFKcs~7!ZvO<wJzuqc0
zBvPJsH6ncKCIe2)TqN9ZSBidH`;Xt6y@}Z^rJsG;?&)rNs)pzP6QSyV;F&Boo(i^+
zs%~y>>vS{3Z>-b$JW-v?a?8KGP%V6?ceG}l-rcy(b|2*tk`lRd^PZQN`x=+rn0OmH
zaE(vdpuZ)*nPnTR5vB6#z6Sq^>ez`1eTfsV1lAsmx!E(^eeYnL9`}_+B9oI{U2(ZS
z`BxSdCK#85ogVzCmg_drm%Bv#`0s;V)xLGfW{P at xdMV*QbEP;9ydQ4!S2ZXLmSXSk
z$JY;YS;ZwKSC(u%A at 99pW7x6MAhkHXY{}2hR~fP<n9Rw2^1uH2YrIj>wL?kAE9U0l
z9_DW}d*g-kBY*C<*#<DE(aE at n2Oi$&sbMg>FHQwz0nSj at AuX?^62f{;?bjV)=Z1qH
zUrW3A&RDoMuZTZ%nMttq&LoTaO>?BXAJ1C7zLs;{q2F5zysrf6yGgCt8??ZzI=1nh
z^L|*UicEjr at rp17eEv$e(W=nXkI#73rdb>Axg#T0;KRMtu+Yc**O{E%pSBD&*p?qh
z98WT<7A}))^@`TbwEykewXztk#Fle&Wj%c5CM9Jjhg)yTxx2Xx)tab9DqW{d7_WAp
z&`dh<daa7w#Fyg at Y1S#N>SxEtCXT+iDcb+>VO+uZ$bjL%`%>vszFUTBRt0UcSRyx4
zq#EWrHe~&|h+pxRn6X$uT3hYoqdT&`R4Vts*ifEV6K`nPm|-XVW%St`>2<<cpPr_D
zdO9<FxBnV0rRfZYT!7}jef#`+ekbc^{2i;E<Kl!}?wFRyp(-PKZ_ll3k at 5<uc3p37
zikqst;6vhFMm|5!bI%dbjMeE*uGX`DAzEk at A)bBm-P4<!?M}Fiv<Jppw-y-Wy35OB
zrNfUtyIAqyz{46t-z{PZg+4)&)&^cYTQ(PXFI_ayQ7$qxCShLlM_rOBhedsgcVgLQ
zv()uRRf8o(3%s~EL~_S%T*mtg^W9i at i=BzbN?V at J6!FrZ{2Zuucl(8v*}d=$-gD)~
z|Cl4y=64*o8Q-B~jK36h9_k(*?TRz(dh<x(bm^ye&swqW0^)Ma2HVyT;l9GX9tt-C
z0~g@}ubi8+SwKa0q%EfX`FX&;!sl048Ftsii(0qjg`EC<RS0akpudopx2G=oif#Fp
zRQW~1Cgpdy`?3a9)*Vg~NHMQXP-bo(e5KJE;jgmxo>6m166=+QYW`o_&b4GSn}j}h
z(QbaI2v@|;KB!6XlY$}BZuVA|AIY5 at jB^;i>z~@}CJjuw2&ZxF8|Ebs51gKSsg7Wd
z+~ItYFr1eB(|r;9V|Ao9nb&+er-fs5mDNz6V604*4cEtmKdifdX^zH7zpwlFMEQ)d
z?nKr2hQx@|Un&$^@nMrsVyv2TDzcrK>-he~5YYX0KK=?2xc at 5?XI<gp!AC6<%w|=i
z+^npuw4pk))~kv<f+@~Jea&*GzkHZ?dy~c56lY82M~9PJ(mU>yoG>*TAMUrVw at A(R
z;@U93J`tN<k?GL);pN?DmbPMD=cjYDIOLA$z6h4u5Wj`l<lOfG4nW7bCs_?qB&pi2
zyGHc4Im?D8n)S)a!x<b~SAAo>c1y5rnP<FV;W2Yx^Am4kw6Z=I3#lcacx|p&%Lixe
z={7N%kL%Pozff!;sBv$P&gsrb`rPBMqSXqRLMjqXj)t=q|M6E1&&P~`GU?WoddvFu
zu@^xbg(k;4<O*5i<*dA*jb`?vvQZ)Shi7q#MdVFnbgST#Iq{3SIa~hrD{e@)ZGC%g
zu5e{C2fvC}W^aa&p8Le0Ze3!u+h_mKyi$qgWgWq`DxRaYM>S{kisTF%oa$@ZvTAPL
zgf_0U<<Dt69uH$P)*3puZALgb^J1-(T=v&&DN-FyZN5;dqKkuiXDDmD<K`bnx5qd1
zm5AheA;9t-wDk2DMpSQs at v55VvcA-r#pRQmvZzbioz%cHFaF4rvuSPDl*3G`?)Bp^
ztj=(#ytnr@=la7*9#yJxTPkdv<@3T6uC&~{ZFza8_mceesSWetoP|%7cGo7(+_GBi
z)Q6WhWnE7f*la;+5t)Mb6g4gm7;fcd-RxN`Z2|Yv|LNJ>!k?xs`yCsl6w$!b-^hPP
z2JWgNVz>VXMB;V&IWkvW9bPZB%9 at A6cXFp}ypf43{FwC{Et7oMU+ZG=<1dA;*RRSE
z663Ybo7bPmp}Ih0`{jCWhlco)_Mx!DiO2SmDO3Om<rVkLo43KF%nQ3ELSA^WsDZq}
z*s*6%FU$;w<FUpYo8Z>_8{;}~+_`(|Q+ at fAZy22tVKD4fzoDkB2l=!tS*rO5J_Kzr
zQEBVwSX7d2pO at t{V1WDa>|wsU#9Lq*6~bA1Tf!F>vMS!S%6Md?+?}V8+d(IcFMaik
z+Y%yWvSZznxK_i at ZADt8pL<f93;NtyW5+8acFRnBsggV7Jl2z{!D-uky6cfwd(j(b
zg=^Q=263jE+;LhnM|SvaT7SXP#Dk~cw++8^Rf{Z<uv`Xzqk7lh*OnGPk^7zVQVC11
z%)T6H_I++RwkN*H892}yPE#?}vhnh%&*DX+u)O)TCP)D*l1!@>%Q&7~ITk5q)s!X4
z8XpLUtEYfzyk7C149+;c<R)Bd*q9HTs*hxgha+-Ij>bidGnH{VDPN6_k(s(<j?`+Q
z3!U(F(KWsPfq{X;f?0B-6~1Bc=APXfU4}oU;hcR96d7X1#d&ux at hrgxX}*fpmHznZ
zK1Z at ywGU!*9{jLDZGtgHfkP?gTI=+(B#)Kf$=)${CSug8!%4^Ixeq_%4bx7wlpeKc
z4~Ew(M2?%aBWg{cpvD at wmAGi_)Ly1Od0uS(PDDOJ!trp8hth3~V-6>;%^Ck(;)s~<
z at S)m<76&&}INaabiaqqf%kp8}>Uy^=^_G#-_iB{Z6gRD0T|dwMInF^#kXdZ)eU1zO
z=*5IN;8PU=55nLz)H3aR=p%5+!_)ME2EEp6r!45qf#bWZZI!)or!Nn8xg5)-8%|p~
zc>VPB&tpzQ-L=*g3XAeD at w(lta3u##Xkr$xtW3OIW=#&QYWUpCIGci&0Ky;YQ~Ty@
zdAkqyM8W&jLrsy7)p4u|7M#l_Ht2GG20Yc0ST1|zz{7(JN1DPFeSM1j`4yXUTwCeN
zZ&?XNA)fF7i|zlQaUdnqroA|xH94jTM3T#DrVY5fPzacLVLzNu9)GCIe83E$$|&n~
zS_!M`QmuGb?ey|MlycC_0ZB1@=Nl&XJK)e at t+?mrA1h>GM0rCpWJ&-f`8ILD?;;2`
z3lSMqV%qd@?H`(R-3ypSz<{@{a->FwdbA_DO0EknDqLo}C;0To`_{#RQF*)hLl$fV
z2K?+s>jy`i*H+};3OsNHq0Bim5^f at OC$qP)_1RoGuWjdkQ at Ai=;pHrS;dDfT);HQ#
z>(zgHte1Vd0(*A6KE(oNyas!lyu;a|F=L}FJd-1{(ZTTji(8 at wc^<<pS42|AGWhQ}
zuDqubvgFyt*~(*`KiwMN|EF1O`kFgV?{5+GC>VNvk1!6R)zzNG3Ms&f!#Lu4ZTh~j
zTK4gm8>=mEF~R at OSy)b)%VIe<7cXw<O?qx4?T0c>b=vE1Ff8zr9I7#Fy|75n1DGY{
zxiepTfQE{vP;A;t9_Q}(7-Kq;r#dV7-o)waM|91V`SiDBXM}&t^HsiHxSIlmO|JIh
z>sM6eCdA=@7Xs`#uG2~Tqo*s>eR2fhaR=E?aX|mkf%LaS^;W+9t%Zdqp{@tJnRnp3
zbWT+$D9G~V0H9gFzh$x$i_;1?;f;Og?6lKPG53V$&sP at 7ULcbFMg6L5k0G6rp5*F+
z7q>PTzWw`8wOE~^7=oH>%H&w%izO@@?BgsD98Yz<Sx>(?{_?MFNW(0c8%IV)`X|Tw
z3gOmUaMhlwvLmZ|l7UXFJ0k;k!sJ?`!+q-R_Q8v&7YXeel|(j)pXIA=i0Jd!eS9_Y
zq#KUi3!85ws8&IzK+o~rh2bw%s)le8f^l3DmO8kosFyA{HJ&p?vQB0?2jD0S0SrjK
zziHTlpx at N~g4K-UwV0g|5_rVz_2|jr?Hvb7C1#ci?T`MQTiSk)mdt~Lj}D6ySWGrs
zG<%7-z>S7Z7rcahK!G+=oO|v#_i|P1*zRpO`D}K4U(Oh(_C<v&ocW=XU!o9^_Qf2E
zH^{7(FnhCZr_VAjcp#yaS+`OEP={Z~xh=$gec2QTYd+lI*y?TFo8D0%TDVLj!r-vl
z!UYS+ybZB={ebos%+(E)K9G+DCS9BK28U;*-0$%lX3UsjfRj(~^H7$f^;Okhc%<#k
zU4X$ZypIZXJH5<p_+37C;`7g+KZhaQTff{kEnmwdWFY`p>ERpPq5wF at n{y^MmAqit
z)8<F1gb?^s5RS1dnM#3I?6{amhS_-O$l3!B7VNk<%X1F*=I+l;w>|+l6nyEdGDMQ1
zARFlhAS at _1(pDzj=T&c+X^|Png1HeG^qIG6=K|AQf0fOG1nq!q>)$(<1CqDKX7*l|
zbsaSya2^35Se!djYIQkD;#Mj)W%0%n`zZl1b^mQFHR{gkweV=_$7LOQ8zhI{p37y8
z)h3!KUg2DyGWLfOya*u}U*v<bb0puM2^srsGBhq{bnS0*d6rF#4hmKBhb37yZr<s&
zcplD_Vtlv0&RWgbWpLZWPu7Wu^o_|eb0$Z-$TbwpU13$xQg1o^#e?p&GK$|EPJ+%B
ze1ty5ogO<-4qmBEr-k5fbE}-MFYuKeJ+9+A_*(AfU{Ae7hC|;SVgw?ud~=8a^ZC->
z>Ma0jzHD1274<R;@vMKOBed_O>EG#Zag_HsJ?Ip1A1PV9`P6aF`4gd1w(sQ;KvJB;
zx(FG;cX|V}kxd50%OFSeF641u$K&|+&qI%oJlPc2Xq7u*0MKvUc2)7%I#uhD>fFhN
zgk0zvdp2Ufy at lek#Co#^%Dm)W{ob$JKS-|N&!4C5baR`WlPg>GD>G#9ivIXY@^0G)
zC{M7?U#MxcLak_{P22M{q<4n2Z&|(PIaEBxdNV~-q}l_#j7NrBeOqs6TY7ffakk71
z{i`C;q&yA(R?07WN2}F<BXi-sf?!(ttquGL7`dhXH&?9$*x;b6<JodL54le6j*(+8
zZq73au{&72@|3(hFh9{ykuB8*4z at 7nLO>Yp<FbTFKKylV<;s?DU)jqVs#`X4is%Io
z$&&Y@#X(p(5Hq)6A}UfjumDkY>Ce;VczFW?4b-jjkz7gHHDE>At{WlokIs&@<X;Jg
zt&8Galj54)Srg&<xo#CXu44wS0+z_*ta15;Ar4KqhB|P|k}L4%``69g*e=F~*q^Pu
z*v at II=ShIjNSQ|4Z$Q>$MMc?d<gUd4#`1x}y7N^AcECz6Z?dQ}Pi)XbhMU%T at 3sLV
zeFd@(uN(ENR$^0^NHm<>0pG=s^ATUF-X_NyDL)QJJ3bJ~dU5=oZZh}@Wca0<N_yyA
zXJG?G9Y4L5CoD^}#3i270(i+n;7wH{RV5$z_f3;yxh&_~?L){!CGQ{<P|Vs{f<M?B
zB<@Kspfv|3X?UMZJ9X;gE5UFlo5m|5Ig1NHhS`_&z{boelY#q6f7U+a;X$5F6s|If
z-v)U_#`CDx8VN3=olzA?S}ktW<Mb at GegDEUcf4JM3rUCkt4G=rgkq3+`_2?jJ94|)
z?bDNKw8+~peAY=qR6Aaq(2koTR)jLQGUT8J>yfT7H at pQN<^ddTp1I}Fm=$2h6?m|P
zT{&P|+`eU#XXfACb4#ou-L at mZ?A)}uK0xn$!N)rWkwUhQBRjrq=p(h}ojA*+G-zW*
ztZwG;=Ms at BJ=?c`PAia`?Dqw5ob($m3SKC5&<jo|58i`^HK@<JK9qq2L+P-8VlF>?
zY|Axe;oW0?JCFt=)mu)?4v_Dv`6|p1zzrEPEO=z$A)94<RoKMVgc9NU_q#h6>7G)<
zfs+=LvsmTN&g7a|lgzZP*vyoXF}uId{3Lqh?=!#nxBEEvrqkKreW)3y;=C8;9FE*s
z6ah}xtxxLhnV${5f%ENV_?;(0L3iau(H4YvC*p>Xiv<h?5u_wmXc~{>5rgz4z at yJD
z&Gp4fTMqn`j*w~2+#+0$dkF&)6g4RePO8>%XtWcx at 2-i)Z+0dU(h`M5M1!y`9whs#
ze*wOxeu}#cSgfgIt?&wQ{v~`@J3E11QQ at Qg_{g>_;3dK81gF!^Ap8hV^!H}=-OGMo
zEEMOZm3S=QlmE`mBMDED1#=>NT_#7=vyuKqN$ZpS3e~u81oB1dvDXo;?>M%2rok6;
zs9dij6DXG%*h5T2z1s6Ia_O{CUDa`_>32Y=I5fLD%mVxSFjvzud+^O-DI25x4-c;I
z*%%`2-~*t;e{*dn0@<QPdX7gMkVe(7>%~D7r=!xC>EH{q<t%9;;7+I*=9?RegnBLb
zp4<f`6GhyF+5x5u7U{cOwaErx?C(x2w`8se*z*x|IdNWs?mpwGxf4BB*2vZPZ=NWO
zbe0ru$z=Ww*J_#gTtC=Hx;M=cu~j|C1ZiU7UWvwlU8vA0 at qZ(J|H_L71gNY0ykqW`
zfT}3V$@()t{cHgLbKyPSQNJaMhZR*8B3%extt!@`r*7lLSzOnKBFZ8TJUUGOo(~pE
z*}3%b(Pu5dR;quz9-7E}8>j^M+fr*1>a8rCzWUw%diy88F3JOF3B&Hz`fTTn(M}b{
zLWU0Qe@`h6Xl~xr1{>w4Me5RE8VtaXQ5q1XQw~&)gS-5FS;*~^32p1a<{nNl=W-vb
zZ%%P)jB^`&cyp7*VI)KmH5*_X8}z`Au=6ye>}ynl7ZYw8a(y0qML0tM*=}Nh8OT;P
ze0OIt-T8wbJjQn9fzU}Aah?E7^Cn{I$^Lvg0H*Fa&m+Ll32nCTzG>3~8vimvK7a7P
zk!wyBA_deev-%5&8 at xM0EJ}Nze%bc0Fm2 at fpjuY9*Ugq_*k>N~zBgKt$7%I%vljc=
zPf!s9`5E8M=nuWQtjXcVKDR*oY;bI%N1vYmg(DJxEhY^)p+ at Y1m_wp^F8%og>+hIH
zuOxm5q%4P)v{PWWfPjEUiE!pRi&|T-qaI)(c*(Jy_qV7==E$?**b5KJ*V;#muM1J`
zLn-Wee?F7R at e%8%)A{oNoT~IR(rwxuyW<O6P)8^oE*hh>_i*wF<5P1JI*<+RmWsmx
zB1(!9 at ADjy4&=L#oQC5D1gi%I23qNm!Rzw}n|BO$R`C<^NS<&;f(55yQk;BBj`=Uf
z-$PT?b3P?NkQO*4<@6zxhF1q4D}4T<dtgcnKsOhU9B})9MaZ5|Q{_Nm?>k$Z at 9E~Y
z`bf7hb6KuuJ?$H|FdH}=nw;?F<KyGBP=-j5rbmt5Ma_tfY+=00>2Bp)n0cL1p?6L`
z;I<{}!&$!5vv at V71C(P0m=P#>_v})knj-i0lMlk~gYSnStU>ngZ{zyp?63V@`mD|G
z_7_py3O at OCdOzOnUiLlkexk0UUy|lF{vEqkKgUG|oQE}{iixz+3OX at fOE#|U;rGvi
z{Z>S&hMw2x2`0A-X23V*82P%oP`*$&yMR!gU;gReBy}@R?Uo7!x#5C$n;s<?g!^&)
zaQBjWtgd~nu^JrKc at Ebo(B?!Q1ekS%IOu%=rhg|d-2u|?3ZP<yj&{;<wOO$Fck*&y
zfZX$?`?CCP9w8~{zui2(hF(e><@g6hxnlcS^B=<xrD16+W0~M at h`De3SI>FiVj_jZ
zw_lhcSgi=eYLzo`?CE_mv$p3~iQ2ZfqtXnf>87aR&SfCGrmrz{*l_ag--x8fDTWbt
z4c3Jg1OB^v0f3NVnm)a6{{l4FJc(u(+Z022`8<V1x&byh2))Cg-8fW!W^6T`l0XDV
zBJjJ=S_ at Y5U=_|+EhtU1Zf$Axl at k^(N3}#HWV7)KwY*>{TZ2z;p9ofiDho|AOaF*$
zZnt($Z&j4)8x?Ev8NmPR+Yck`rfNMd*|>1+{$0+8Wg|;Kr1F9sR7tmQw5vAmaWzv6
z0mQF&5y=E5n!m?it6X->JQ!G|-X$*ceUO;}C|}}He({gbL~7vXpR9VXc3%Cc(KUqn
z_AmTD+x0d`Me%GmN4_~eTqviKz6t2$d=-=oOTL at DdUdR>Mp>xaXy>5>quozUQ{voN
zlY$+@|08m*4t_69p#ZkLeSnxKe^ps71cBo14?<D_fbxJdDPLNjG!*APA!HVnCI{}F
zP-B1@;meD&m#zsuUJaIW1@`7f&tjvOK$flKi__sQ5|cuAUVSK>*_}Xaoknan{$KRO
ztLXC_#s#RP{tn`5Z~8%y`ow~e<rD{sgq{?$=O;qF!LC}j)<?}KcdW5540bPA4G;Ev
zv)h=(Q_qyXN at bDKqR$hc8E at E3!gulo{{qjr^;?Nj;A$BTY7O#&8Ko$B{O&9Bc^BvW
zND1Um#6lD&3+raky|)(n`cmzw{cuNFNH}hEI{#W8Y}^$(_&QzK(ir_**$Nr(@s|<G
zR<+j=JxpbS`K21mif^o6N;Z>X=(mk1pBUZDl$SChA|jNUkXz<d?+K#HGE(JRHjm(B
z1$l=A*JA<Zp?tMoG^$r4p%MHMRiw-d1rjLDh2h?|u>klLg;k$Nod!n6jkL3<NY$+t
z0bipGusZ1Ed<4;-r-G>bS}+xL98SDWZC7i+hd%YJ9IFbQTmW+6!uw0y_J=6 at o9VgI
z;^;%TH*2Kv{K5AeCx%jU5sywR2r_A1z{GvX5M32u)_HlD?+Kw68$CMp{`(r<mxuCF
zidUQrTHy~LRKw15EcC?!Z?H^nzY$;t at PCCevUl=DR2Tp%<wFeh?-A(!&1dt+XkyS4
zxD7Aqo_zAFDR0ARq_rF>i55U;<+Yc*P_Xo~fh-8&;Xe%b%>hl_g;)n6aeXBBC?t%l
za?W3v0y-|KJ=#3vUM2u>5`VEi;HVndTwGBc>Y9av)%u|}J@=#TD2bPV`nzr8mN!pP
z9^i(fR6W=STvx!r&vPV~zgxW^6}iM_*q-`vJ(Ra7ZA<Wr9ws&edHkxC2H+p2M-^p-
z`)poIoIkB&O8Dd3#N96jhyP+pF%ER74Z8?F)|VT4GUydC4Qz~Y^&s?2>SfiBv;)~&
zb?(}T6(>7oV$7o=F!8?{u>{rMiQk_XjC1!!?Bfi=S(P at 63RVGiNPO3EJvtgdaJcbY
zz#v6Xkuyu1U73wkwU}S@*uJOEabmDqBbL3FC?(0;7(K<kFTuN^1_cLeUBG2xBsed>
z9lY=!sazn-a2zH0cRk?#J=&F_V#Z2fYF56Jzl9{@Hoco+UpBMMet|s)f$1dkTCsXj
zdz27LTVC#%yEh$1GqL`iIG+X_E{VF%sLM~Cxe5 at e0iTmzGMnAy0Do>?kZ1AB$;t76
zh6ykurig&-JNafOLc3)mX>ZTgAo1i-@#i88iX1lUr3<2`DDafL*q$J9L7=1k$8$g}
z6 at VYSx$EMd`@jPPcnRRon at 21J_#_3K*Ti5i-FTFX9TAt*W9`5fz7xOIPZ at o?;4@<0
zko%adQ0vbm-W?nURmIE|k4jVmvzRN^7$YIHFCGC945jV*?nNqyPD#2Dft6VPPFzkL
z`RVZZK>5tll0Xq&;>l$9xoEa5LusKnnLr*s^!42xmjVWISrdJp-Ex)<X#oQp%4IeH
z1qI^zPXMkGI|(%h7tr;o)6Rl_AO``MLbVh*l>undlI>wFnn;v~Ys=kk*sO2t9OT>G
z*OYAtB}in;mW$US#TPZeSuLe>NfN at 0?xyegU>v9s!47sE7reprs1dn|F{Y}N9IB at V
zAO&|zmO79n!<`F>i at -fm{xs85j52%=xNpuNe!B$sjH<s>rF)X(hg6Hfz+Ub7_X7V@
zzxELleYg77Yvhpu1F)ccBnI<UG+YRPrh(f{<UZH94|mrJj`D at Qm##emF$q{^l+Hv3
z33W>8_LUHPxC(v~GV(PEMg`AT<aIrD*J<0fZ89LWw012ZO3o4N>eLpp_;ug0fDx|X
zWb+5FNkn+yjS99=x;sL(`FBq*a5XvuQBs+1`vA;eow at v{NZ_%hm9pbkd-u0qd$9NR
zCMsTUA3!MB)C8(=-RiYG2%n|)zu0R~O)@}G<8v23&hzfE-|GmloP<88Cj0uh`?Ig-
z)#D3--bkB2)c{rpuW11}rX(fz?mR~eE=*anlr;kGO`}Y?{(cMVM(<b<4%ANO1ki;>
z8KTA#MC76mO^-K_Z#|Uj=6cr&j9e=U^rhRwUfc&MPpPM1H9N&vA}|78D%V_5U=tj(
zl9Vd5V>5%{$Msz$^p~U#QpNuI=E+USd%v6;A!!pJCEKOnFa~QRYF_g=zzq4H$~wih
ztkLRRIH5RwUeK+lo|=kT!Ji6tbY7m!H!ixyhkq$0`&o2O%2~r)0x$dDV&xKNux8KA
zeaG)~GJg~BCg<Gq at BB55%mh?Q$V30#yLalmFQo0jDe%&^Opkn7hs-U^nc1rbUoM|8
zi$_Kh)$@H{kFQfl2+aRf<#h?xr%Q6HgI8yYxjt~uI6Iaz)_c3c^{7dtvz5T!{MW4g
z(69syK-9t?{EJdf_E4Qr{k+S2GniSleeYH?7>}KWTz%`lR at yQjnZ;#q0+Xq8e3E2K
z&67i^@?z#qSyCu<-?Vvz7z=vdzMNOd;p|xNG34!B+4xXrnCXTLk?xpN`Ms5gPpUFq
zrJiux>zJMnCH3o>hVOWgyr>T)Iqh{|k>Gzo<WjYFM(M--_ve#CTgjE8;4~mTqxaK}
z&Zec6A*b{z1=Du)lbcFewcz%t<`Qhsd=*H&G9{*h_5MzzYA6XT3 at QiZ10u%V$b~gI
zF%}g}rFk__;$D5K6~wi3WwR<Hl{Ly1HWVG`yxbVsY4n~I5Std-yV`kqHn57Z^!E7O
z%<SQTr3}WkDM at R<S^%q)q_JtQ`+2U6UqyB^-ivC`cb&lCuz4=$MF&jRKkP*meX9r3
z+pBk`v>A98!4A}zc1i9Qs|=|O?hXCfPtSC;?ObC|)jDKIn%7J0zaEG)EpM<ej;LD9
zC{;umZzktD51 at 7vqh{ja+Ou%FtdTezGb-o49{aWlD-aDce`=b*U!{<Y!pgniIAE&q
zv8QE9%ufoYn{SQCMULgjod1`!rGr44^Hzvse%#GwI-^A7_am*GJaQ*Aly~lyFZ;+}
z<mYr~>bovP4Q^NZ8<3s`%~mFnLdS971W~jIJQ-B^5T7g9p?qUq(XC6|Z{?<ptS#V}
zfNW%^D?5$0*>P)1sQmmqyxYBC7KP*MLYkaoZUh@)Pw6kmQ6~1;P$n5(!>rfpoN<_)
zl<ZbYwOH7&Vv%5)yQ1ep`v%~NARLxs$le4yny at L$wWbQ at _g_(1;A?&TP_q#9?co?_
zi<-wPz|RNU^b{<$@`CR&XtdId5IVj$RCdd|)seT)O7rc_ at Gn^ej`!p>BLP^|EhJ~=
zDElBB*S;^kZP=3M`85Y2#Q%?Dd7TOs)w&M4#mOl3NJ7AO#Uc)IG9Sh?vlRJad0KZu
z$z_Ys7Qfi65mW~i;DDc+DvA8+pcHhfZ#MW^B^UuXaQDbyp|oc{kXalc*%f^-6=vW>
zF1$xp<DsD<#W&LvN<!v$>pM&zydQ|-CE}!<@6}a`ob|HoD3ts0!NV}3TT)c5C82K!
z-*f9J%kwzwP86sdZaJiKVFRi{Rp<S;R+x8Hac{D0xOp<@#aN--<W-wHF#03)s6t%t
z`FEx{xPHM7R7FngkJH=oPMq9=#y8oe(j%%uUz)?M9vdkX*%w`{=e!>2LH70mk`@sm
zvd(!y6pWH&MnH<!HT8B&?(IxQr8Fv7_2wT>c8|100NBYP6W2JNLkJ5pwnRSxTX at _B
za6|UR$tVbIdMCbbbA-^Pz}1~Om%au^NF=}2JN7*w1k&yT;*yee-5mFfuyLq32Y`+%
zgq!6!Di<b0N*8eQT4fi-Uf})(K_Xz6EaEv6?gKveCx%X}Yd>r%5IY$qYFH5A at -l*y
zU0^}htv-8=tzQ9L6~>0tLFz<-P_UX%z;dVW24|02$WAyD_1G<+{{A`hR3DPdbr$^_
zbmL_g1w%d}*um at iMU7C_JMl;j64HP&R!YaBr=73bS`i^+?E^XjA%76%;CsPB at lRtr
zK|qmr#mCkl{I>uJS`;S}2kiDGoR at Fuzk%PUb|II2lt=+as{8IQuG5ga0f=3APqezY
z*&FkyzT2j77{`~L{QD=tYLW{fDfx1OYEUD<g25-}3j~qIrk#H-$=pOit;0y%sQN?b
zif;I5HI>LHQ8F*AIZ7NjN*a+mnP6lowP(mrWx<($5(t~K`NLn^2f+E~5tAR1(E(1D
z1h#_Jn;m+yG?;tTGgfvG8AwSwY~mEKb40Kz4&)>#ur<NIrNp7gQUUfMzzpoMX2Mai
z2vkkt!A5N#fMtW|SfAkcZ>2!eFy#OgQBFrE9t^})8w<c{A5aMFb at KT4w{UPo!Vmh8
zlv9(?$rX at NYWU8MOLO*Wy{&`Iww|3ST=Q;>uLtPWSIl?@D=G|RS0Tw{uoSLy<i<bM
zASIkx3M#DXM(6VS$}Qt!z^H`cIaD;VNVW+H%ieT*R4FKV;86J`vK$&?<^6(L$i3si
zg9Mm?y!V02SPg2C;W4#=_8ft__FAui3SYXA00M=szL(il4Iuo(W-t^GP#xA7garZR
zP|ZUlcFXvuXGGke=eVu{na;7|5!BxedmGZHNB!ADyJ84hY)|?dkWnC4;wUo)u+xau
zh2Cp=)Ln5B5w>FQy@=@s_z&ojl%g^)U(3;SEOI_c5d+M~Xmn7Xo6e88Iyr?#YSu&k
z%ohvD5MV|T0!7Q@=gcKY_8~Tkdzpo_%#`_DfhcpNA?fT)!}|3BO~I~(=a5M%Ae~{a
zBT3jwwy&&7`H|j&1 at NVc(L4G4R**qHPtHw?(vfcU+CbHW>HJ}<PXn at s!7#}*q7nN^
zsaXL|nl>jKgr at Z?HAR#Yb>@+Y!v2h;Ee|$=kC&Qo6UBB>Nem<y_{;XtW at H~?Q-Hp4
zXQ2<b#+_JM_sQ|aNHVVWRpq*~0tQf|lKlAQQD)W1wKw>f4{+?o$*7s;0cVGt46BSH
zIRnm2l+IF=1gNr9yOm2EWpXNHwn7KsgMv at n{`5p7(}Eo+5$=)PU4*<>BF}BCC(z~*
zP#l at Yd5)eS5JMk8z85$910s9k&x}?q<SW9iwL)CvjWARQXvCHi#OS1do>oo%f!wVl
zgrw}3fZ!8`TI<|8zOo!piWGVbP%5wWQGX7!&B49-)UL6Uq#PxdczP6VssA at O`nbLZ
z%ie-Ru#3&tF6iVTpG6`}HechgSv%!RckKo?XW9cOd8M-|ia$8|OD7Ip at mV{BH6o at C
z#vHnOVSm0E=?TD!h+mw;y~HZ3e<%Iv>7njhJ%^gjfT4>=0PW_hsEZ+biT3;~Ow|vz
z0 at d~D4p1%z>~Jfb{iTvr(i|%CyTyPsBw_JYZvWc4nFOliZTxbcU;^ZJ6xkH&Irm(*
z$$`~URXuC;<HPCvN`2lEO&%#0^##Bu8nL`^d<56eYoN=B6*_g(+PfVLMo8X+&1~%L
zVnNYQ0s5{J(zaHQRX#QCF1zayfx^JW3RZ8jYFb8I9>SN%yZw>MNPb#T{kAJk9vSE;
zM2$TZSx%n^+=e2MUJF<=Z{V|uBR%njJSFN6o>pEL$;H7u?;o%XWghEgcCXX~t0_-P
z0|7Z-CCL_0dNIiki<6PV7V0`QUO%}~=^9CQ0qPfFks9t-TahFyqmwOK5almf4{3{0
z9kUi7X$@(O-ADC at dSx<7K9?>1Br!9A<Lde4#`7-ET<~DsjIenZI0KUY+P~tb&6hI|
zm~$KZ)SOV at w!W_+bU9xw;Nbd{(@MWeDcoASIa*;};K!QH0tRZk8LQNf$Uhw`%&NS*
zdh2s5r+-!3sm!_5kshdOF#lg}cg7?v4qw#h=?3TKiIb|RprGK*L=tKMKSTnkS^S6$
zlUJvfTfY<eQ9wYzE5|<MUd`<d4<0<YxzX&PH}iy0nZz$t#SFG77Tnl0hI2!lP(NN~
zB6;8h%JgevQJff#avzPlDPg5oz+^)lL;<|mmo at DB+sH^F0>)x7qg{_8^Kn*8B-MIQ
zchYYigqBR~!NZ3eg6|!DUR2~s@#yMp?E#kh9egyY2DnrXNT_ZZd?l=}We7!N1>obX
zHDPzt-=3XGgmf%(b4RGV+x~+G?=4poBXuv2`*{CxP_Eug+E4aDhqkw<_ at Nw0+;W)N
zefhsG()k at k;eG2pNCaeH#UxOk6@}$EG1Z>Z?LcJhlDP6aTck-BcDSPy-UEr;<ElaO
zlBTAn#h;Dq0wZJVRQ`&Kj`kpZ4D<=N-x&>R>gsY+p}My*vyeo)6cbvJs at jtS3YV%w
zd7R|JkC=TKU9oAX;cvJZ?KTPCdM63;pmKg__rhb|DzTf#t51wIOd^AJ7?JJnqeg(V
z_8ZzKvfbgXUyr_2O<5259R!5BT at P20x+^yQebB6^uoX_j?=H2%u9b at pFI>2gluD6C
zk0PK^(U<x1a>v!sQ2nl(w>Fp*SQm0HLWnOr6bof*9+czuV<z2HY{lUz*|(NDW2QXt
zL>bj0;M%2ik-wLdV&{Riik+QZ1FU~z(``WVM^Vcp7Qm@{k#xw~+S;3mu>6cfY6i%$
zxl~e^H-vSUkerXi)BT`xdrtPjd6qif@#Nqykm?B5=$asp4$fyjd_~ET2N`2b6bL23
zF_2m_*@rSl;w8EEps8b-wLIzD3!HZsYxzUpQGj{`TTliP&BTR;@F_#m+9iDlG&KuJ
z?xd;bWE`gQ)Ezk)aRq7z4jgEm0KZ)TmFy~z)z6BK at 8SV-91tsk%6LtZsfJSZo*)vK
z at VI`dAZ_I%Lz3*VL3>h?xE_Q)NybiHk5Ual_EsPwQTf_lYUq;O_)+R1GA)4 at f2I3u
zGVmZfV?2}Xcl-9zK)utZ-b at I+?kt&k+_s~PT$WW-7dUFFJO-G&xCn5R-{;26BnhxL
z6KOpck?VUxHg8lje&e15U&=P?n}$A~NcY}I9)l!DOYj;2G$kda6IrQngruc6#AQh@
z{Oo at Oi^mp8!wvG1Uf at wHg7Ly!WH#*1&?6a*(#SW=vU1Q)G2AZVe(RlhCW)`oAX^9r
zKC-SejZ)Ck(prYqp~9e-Njl876_7o8aFR@%Qjj-tRu3OOBo(u$+xT!zmXocwA=x^S
z;y}sAB)MmoBK1(uXd+D+BEYWBpxxq772T9}up}TH*h>65@&r%N$BtN_6Ryb at GNNN+
zec+Kr%VY*#d_X)K2l3k2K8%`89+45l(?VdU?h)TQuDSzh&!L%ltx_!{BxJTObF$k+
z?x9_X>wSS*>=1dhwzjrcj_!ye1bgz)?AC&kj at iYko;tXuR+7<^P6!?{rDXmjnmEi{
zd8<0l{5;2lsC`oZ9xfz}4i#Zo6V0rU^dp&%0U+27E;u2?-Rb&RfWoFm4IioZH)loG
z+d|-Ze=v81FHq;&O-=qos7zCJ07UTu68lq8VJsU=GztDT-03VSuMg52X;CKgfP|oc
zJj)X!cP0)^KGE6|ji)po8IshSgf?KrP5$7TU4dvy4JW%sGUBp6D-~Do3A1t=xZMwB
zB*i>?DNCFx5((0Q3X6^wpk@~cNw>y;9`I!z&a}6XA>fML6A%{mq2$gD)N%LFwydF^
z`a%>DmO`Cb-<pjC at 5NMi-;gpLdBO(;&M5s9&WUo)h3V0U_K6EiNJtO?p5j$YaGZSI
zDml5_H=?BGAY-ydmi*eW#dS?K_-MA|`pGojWgKhv)ZG1D#~-yRs*i67urxvN>d$PR
z5QfxSt?MSq*`N?!N^+?;D*0|8yA7V6pH6HG?rDR)(+Q}qAWfnkGQyn30!JI+D^`)N
zXi48Aur8oRIf);>s4>w9CCdCj9h=>!P(>u%Oq=7~N~e1k|Cs)T3l}Ia7g)D0#_k2h
zrw_>fhy_4=6uV{yGosX1vitEf3arUKB`A;*_Mz&KS6kT8u at e2sYd7oyMfC67u=D>w
zhZd9-0!Sy1cie*qm-RtT(!oCtgCRXKO7}dF9JAY%NIM}n{A6xeR+bEjJhnIwd4+|A
z39MavnW$%IMfP_wOM?;s#*~S=tnSc7F}rftH)68JYA;%vaG2~fCP}1u_ScyyEH at yL
zjb*&(b^x;FvlvO}1g`YBFmusPH8r(Ih9r}jE6Jlhr3GLw445Qx$}sNILpgv=`MA(9
zhrXr?bf|+-8|7JeVvO0xi<XoY;pVtK!=PJvAoglD_JJ=hr1ptR%WQU$149J$yK0U_
zy8_u8Td7Uwje1#9Z3$DNHd`dDI;?UQR4O05hjwc=)>%MM(35_VV%Zopw2sus<Z#BS
z_ffzk at hIGXuZ`ZOnYT!-iC`v=xNXLrNG=RHMax6|i4$y43iubrR}#oChl}4LjLRKH
zK4- at 5OnM41>ET%C^;$Jdm%)endrLAX!8-hA?*r=90x!K(ZlY7QYy5-+KsxEorHKe3
zt!fKtT|+0jP1p@!kdysRv>2+s$1Y8q??6cim2%KQsFnmlOKcy6KYrV!>OX$2l4ZvQ
zze8Br#!jO~I_fAJCk8|xg$iH;$w3-BPeV>64$b?@mB6?<hJSv%Wpc+8+V;pThMOMg
zq>HHl9YJhUYgxDn8e?*Qlp-y&eIaW7_fOLz))f*RO#K;#I1TZR{VjAMR7Nc4DK7`+
zqEe=1W>3m-7)G(p>uMM;FP8TsPe`%up+k$w00>;rc}q{fFIDo9WS6iPOZPEA6Q-l(
z*icU^iFSwu<I at s*r<pr?0P=SGKtmG!QPlN9bIlm@&(XRJJF~38H`-K%Dx?ZKDFR_4
z)u!I$a_ at kSiIMw@ph13`b*sIT!Dt{<KZ_UXoZJ?0<Ho(VQ!H|kXc3$TsbVvatNv#A
zt5)z=zEI%DfVg@}%|Rq%L=q;3?mGX?*KKo?5V0IVI^Yzzvl^6AVdCr at ASSWwGTU)o
z%3qQZ=h7}@H|mzg53Zo{FV)$7NOryT9f;>5)-^LY6A1REjFSz7_dh!iI_dL*#G!Lb
z`9T<{3a-X6-t{PHkpOKNdd+3muU}7gTX(|QF1XI^Vi6V^Csz{qtCdI$+`N?WEtG4Q
zkU~g*yk!x^)x*33F|o0+{U(VG4Gjc1yluf+Qd1Zus(EyfVBov7dQW9iLjwdn_3!G?
zpuB`cc{k?&#OT)k2H1}9-hG?nKzdKf-n7<_GI22Yeu#u3R;Ya@?vzvkj(~|wM- at O-
z67XBMc=8uee+AJXD46!xHz7j{d+=Z_ep-;o*Xtd32Ls3)-QR<FLG5=fsNOU_9O+Df
zGm?Z-fqM69TcxIPpV~*VE6Oh^(f8q&?oFvV3{;HB=t(>f$nTc9?!!B%1PG5R_gac{
zv#pnfVm)wJ6!7mZ8M%74RuWwT_R_HwtkAm2$Hzx5=R-sK0MDabobE&D8_k0Dh_ZB&
zxln$Y%*n~5{?pbDIhIq1>Nb_Yj~_n{znkm67*Vr|r at Rwf46JD<AUw%9VfBgi(>B7(
zw4h|}OWhuT0gJ4#jXZr0pw$Wi55xcZ>xgehL=}8Qt9J9~!Ge<PPJ56`g}z|?%nNs=
zTR{uQR)ahOi?xUv=>bq8%uDw?RDCj`OyPLEK6gTU{Jli3C)#~vUe9yz^Y`Z<!K)5P
zA5X{U?Q*OEIYYvwy1F56Ty1P at 3_xd+yf+|*iBh{H{9HyrOtKJVxg_I>$}L}g9ogH~
z)8A@|f6H!v;@U^GbkfL2Nl|DIhK}1*DPT`(qrEl>)17rI!AqGg;N;wS^ypEFH#26=
zB-SAwTOJ(~<5gT-d<Z}Qa<@f-Mb0%xFXa={4FL|)hR|ypt4u*M^oR3K9FMzVMRoB7
z3l}Qjo#;QL!e3N}Y at 8dW?>yo6cc6`}Z7aHgy_Q<0t)P4_E;*rx1m~zF#i-cgIyj&X
zxC}OgRCJ`U#3oZWSUlL~o?J^%D8^E%n>!;&G-C**tf2OW>!e7co;2pivF%9TsK9gi
z%9Zf6G)de^D~M8W>T{;%aO6IArz0=2x<Xkap`=dV{i>*i43hK?^`h#%kDtxCLK4?n
zpQ|==WrvTrFf*I?)}CIa=;H+vDZ)J4e3t at t4+UmWz{m1H at CH|whvH~{Kq^H(F=rs8
zk3x+`ioL6ApL6pS;56w~&U+zSI93*X>soS#eb3?6hdU#l!G@^Z&Q<#`hfZjv&<N|=
z*Re2u$B1AI2n_7&A8u)B5fBnmHViY$AVD1*fHi<JL7I;)pFaYTvirDksmu3HXK9AY
zx*8xuAm*&`&YY0d{`{&wBvFse`1rsPnyfCFT%2AqZ0Of_ at 5o^1s1~V>oDe}89ez`u
z#5?|W8cE59Cz-jtu-Te$DFh-?VBC|^l84eEEGA~1aK?u)y5BnHLw3&)H5j83VGTw2
zLzTJ5sV9OG<YDl(>Nh&5Gv~HthTtf(FEnAJ2H*9$va5 at 7PTy;ST9KWS?iS2`{P+(j
zjIW;EKjwoQCjUwObDqT9Py&E#e}5MA88oC}v#TC<kubW!@TYg|ZgZfNCH{Tc7e|w?
z6*bHrH2j6J_2b51_lmEj&|UsSl_O}R6}F0?>zthE5)M91sK;8M!S#S*k)M2DUa*(m
zzJ0$FtHGX4fXvj`*m(AXhRH}G>L{`kd9!jx1~n#OWJDpt<nP4tm=yQuZzgAlyvGZ|
zMF<XQyu{ll=hzO1S_z?h&dCd`&wT}qb5qLp7^DG9MUm*l7_kQnpiocnn7_p=YK@(f
z--8vkf%>IJ*kwUM<z at sVH65Mcv+`s22>zmGz=rrBP$jTIzmpb|(h!oYl4h_)A5wKg
zoJlGR5c$IHz^C>qII-}su$9o}>gPjk*qBE>1~^}VS3~!bbHR}o)E3duZzX?1c>-7M
zOvahElG^wEifmL;!w(tPCLAh<v`wfiP-oGN`5V^(dz+1y<c^nE7H+g`kZf{ixhf>H
ztiXY at +ra=1g8HjGGwr%KsYl4lrFE&=;loQHKPde$dFvDGgB`|z0847_q^GBogOluv
zNu(5dtgSG44LV1BsDY=6+Fg6Juu0S`3x{3cfaB)+eyo@(6R`EBhng#+AELZc0Dat|
z_V)JKEq8B_hMpQ45bpJ;CQ|E at SbaFvlADC!NM=QZA+~uAh;AQ|<b({9fHid22RhQH
z1j+DrRetLRM!$4ww1z59g at 3JGuRh5DPEgmwa2#tCj8F8gTF-VVDJix6`xl_R=%@qz
zm7wcMGZO9~AxMK-hdSGRasC1xg`iwZoi0S))79#a)m5vf*k?3?A+~OE>gYMygZiU4
zb^9r!jySabTlwm- at 4l1#P*2n?pp0o8=hT-}to?zx<9zMTH0S}P)2!@QO_0q7^j#%+
z*A>))H_|u>Do2AGlVyw9dPy6ri1IpxdJ_0gyf at VLr>99F>WCVd0dhM*-As_rYU=6<
z6FrdKo<1jF-1mqe7x;X at gF7D7bIdpQ2{LGTg5DGgDU{;htN8i(e>J^p4}qnr3)(e&
zfqr}XgGn?-wkr8CI=u4cy2J$y at A}vdaB85;5GGfxF2XV_qU!~$EFhsY3>T=w0MH~e
zxEdc0?zm@;6=XD*$)IL`++TjG4&x?332Y$E3tNf?N1>*rm9A*q4J%h9A|1>Hu`+B;
zB_cfu$p37cT>>thlQIrED)r4nZNGGo5DtbO4wylV1xY!;Ey{vSp_XE<U3d0S2Q^(B
zVNZ6?AZYz~AVS?6O#{%n(I28e5TWY|p<o(~08Xalh|O>&F`UFnk{+Jz)=<FgVInDO
z0ebeO(ht#asA5_Y$iHH$q56b-QUw{@^6Y<LIh7r#Z(Qs#W+Fa6FD-4<GZH}(h?s3G
zZE$Xoq-bk}gu)XN#Aw-w+CYz=0 at fgv^|4i34w@$|It`?q-U- at k|A7Mv;O-E#E!?Gn
zXA`*-w`oC>10rBEMNY(T>gA!7bitxUiZH;TPL5vF8Zfm~^rlLtd>$)j`wnbSV(?mA
z=(k-JlAD?oR^v{hD(cLJMU~nIxT*lvQKyyl^A(qjq>E)AA`7MuLB%qPhK~><MG03*
z_|}lN_wP>+&IHXM-k&x#M}~Zo=aeLc?Vz@<oGNRwANu|K+o54UVyynpX*U1=`%}Nr
zAA|9XnuwaBIx|f{pd1}1{h?hqkq1lSRFPQ2$?0}v+uGU^5&|NaM}0pHIws<vAX!s~
z4NRHb00js1rBI7>O!a0&`3DX+;I%hX%!8YL#5|1B+p~^-&9CdoI5Y7A+OUthma5l5
zT?&%FFfYV&^QXEm=v@<`TZMjbTjggw^JCHx<8f#wWYsCFy59mHl-YxwSia($S>uI6
z8=y+Cn6*q2qoh{Cfe=5l7_F-*;dpZT)qgI)8}I~+L00>~Z1PdLWy3^-F0Y<YaH=?L
zSK?fI%qoCgyn0|ctEb9HP=vTWAgThxI at p(8BP=mxqxcY9&yU-{qci8H3cp{UocH5m
z at rzymIZ|-`f6fq;|KICR&yP>(fhs$w+KVdX2AcTA7~%r5+D_xVx~smss3Cx!f;>--
zM4DYlFWO}}H3x$Ic<cFZg(mhR#`Nzax9IWKm2D>9&bi+ba5TP1?Tj)0>s1jbEB44T
zou%M3#I2fS5FY>P^^uz#HU~<nF=;c$LC{Xw@%3F9kKLD`b5;h at d}$qROkFsIf)E8%
z#u at YC(r>b at uP^;x;AcPlr%~b;|3~ff|4BCe-+TRP{b&9+^Hu-d*Z=P8|LRa3ok)$$
zNUc9k3}JLiPm(=~ZXdIIHFG{+uL1GRDJzCe+UoipwC*!O(pu~DSQ)iJPY7Sx at PzSk
zs(QmXv$+doDXDYnMNeG+ at -HeD?A!27FNX-Lq^{gX83%zkc3?h}{T(0wttTiV;u{<s
z40v4xGL$`bm{Ftr9U^yMCwc)=bu=XL;{u8Zn=y`vO!Xx&9#>;9Vj}m^X;hHKga#TI
z41H<fcR*BQ2F8R~!JftSe2-4f#j~%xzXy5eN63jt*V}^zm8*bgcrkmpFyqy^?=Kp>
z7NAk3j4TWM`Tz4tG4zK~Q6j}~^}XZt_T5{)-~7i&YGB6zshDHbX%&pNKCM!`gz at SJ
z at Eg3*Q&n{dg+4HzMJMR$|C;=M_0g%7m6f0!pVv*+3fB;3x&IxKY|Y+?*-k2G{)p*r
zL>Y%hgB={AH&FkMq|XFAe<S#js6yaoBV#K(xjgy%yYKRZ9z-4 at hyrHm!FV1#x$DQZ
ztFMIE0J4pciY>@4xpD8MAMW5KTSvc}hM(9i*}W598_L*%@>8nx?yf)H{nk%E|3*_K
z#8UL{&7`5;-#K7Zmc)pZIC${J)okjK2W3vg4o1Ds`o4JTCqVvi)kcBcLmn!Yun154
zaeX(9i2azzL8>a#<|yzZJ<fQVacfH1%-C8Snd#DmK}*C69%j;$V#rzPzra}mOM&0P
z4 at 6i@pehh)VS!&Rcm8qd>D0vzv#U&*gm|MWWfPwF+w$YH6`Y)$4!`L^^@R$y>&<9q
zYJYt8;ehMc6;Kc>uHLI at P3!tx_WNyBQW{PsSGke$AlzM~8L}Tn(T|O-ix^EBymsvx
z<V!o0s>$N7?f8D_NnDsUBaXQM#$Ayae~`hgo*LZ3V3<~cC|xY;;;8fnX2~`<K`mO>
zU2A?^z}f>*v2)Ru1*7%9mW(IQ7^zQ9!Cn4HNm&_nguj})A|42^-#zgAK`?!dI)`LW
zQq{*~nm38Y=y`%lba`xsAOFRVsb+IkwIW6cVd&m2H8kfimf!!eu9;sAu3xV_&T1Pi
z%<;wlcoN=aF)BxTrI>SNH;a3-cs?5xul{j$tA>Ua3_;kx3ZjDG7AVOXTjziG1%C5>
z{%w{A9L6iBrY6o-$n?%!{5}Ntj2Dz!_ieSZp|AyYbnTuz{c+_FTNXugX<XHCLP7$V
zH)Rd>m79LQxaT*alTt*ne#p^9SJj0`@g<wSFR9oGRpl<C1!%NgsVSa3vwBK;z*rtm
zqb^|X&f+xfye9X at XQ~n52L*$DYAc<zKiM~Q?Z at -haJ`vX&FBn=6)Ik=#Gf;E|FDw+
zZ)m<zdNa$;&HR at Po_lQdW2ss%U%pI@&l{UcN=v<QTeC=j%eXexEyp+$6WtRq^v%pJ
zqA3CI{oONfJxHzTLE@$fRd!LSFz>%7e>jyGn)U)lt at q?3bVq*cS;U|FS$sbsMthx{
zM&{)5ZZbba<r`)8nwU?i{u#^7zM9#Qu|8J(Ct8+n{U2)`M6wy0NH}jEHTR;A$4H9C
zYx(_{18wv=Fe=4&nUol~o2%{O-M&LNVQK8|2*9<n4Eu7P#XKm>`AP2C%ghDa%;$v}
zY+E2NdQg7bf_>uicC=iH6TRu-A%9LcZ;AJ>3--J4?c5vV5xxB1OCIlAe`MRX1=5!n
zm{wjInf!FwvpIOj7L(8o&s_DZbv(=K65sUAGU41X+MWE9&F*tkw2#zlR3R}f;EAty
zFD~@&A>|)W9YA at Sh%@3rtJU!AnPoyyt_YXeLBWlm6ke3tTuxzHMm6QFXVl-)G#H}K
z@%YRy*URnLFJq*LfGN8Ip0jN;Ir)7vh{Ug+2QuJ#$+wq$eWAz8slm?lc<UX3(5|mf
z>;p9!4aPIpkRD5sL~9s at E?XqS&qZg`g)<m!B$Zo4mAh}RA|W!xH+m>_P`LU(XY7B!
zP5N7>?f?03+kYR at vV8q<`tNE?Ed~Dj-_ at 9M9keL_^H$@oODtg(_K$fnssSXo(H=~v
zmhPudpU&bx+fxO)+W>uD+T%{pjr*c}V7vm}*Vy~FsV^#7ZZ#W)3Me*wpj{RTOG|Tn
z_#Qn2b7}4_m&$MTzSIyRoZfbg<dHNHRePf%ICxV1JwJ)`qIl&uX9Mq~mw^&g7(}7z
zK0noGlZ+Jw<QrX!84Pp&;&$}Ye*M|Hmejs>ztr@)g4YiMH at Yj}$MuNNe4*-jM>0Fc
zerKGCFr7j(jL((SeWRmzrbiEuA{=!|d<^4n`-mUQAeRiKbo9Qv+u`8a8c13~i4LG^
z9@?E3P%ZVtAo|CBp^G_R`DBPaX_cNu2^50Qeg)F-^dw`*lP_HJ>YH;IXA%mgfAysd
zKYr5W)))ushS4Mk)D+n2>#ki4scN*c1MHk4jV5{_GQHi{omCwG`@1AJ2CPSfy+VaH
zQncwq60tLPF3nB|upO5Dg>l4o>K4z)e4_Ea5L<EKRR^H_UP0rSX|zrIY6Duk6rm;G
zzJ6x;TpCo&7gS3lx=H)x11%1=;IsI*F7K^8)GnVIP4Spve06GlpZ_d$FlLt)#@9G~
z{UU(n4pV<YFJ$;F`rqJTG4*cK&(>HJobtiwwxG9rqQAA7H4YV*0*(1YiFaMU8bBc1
zTv`K{K<^n3F><I&2n|fd#QI5J{SF)$YNe+cmU5G<M*I5pXx9qp8aBT~qd}o1WA(RU
zT#_ese9#zYbV*h~uD~ltV-hff$^+ewJJCWC8~*cjEwIB`kQ`9moJ!kMDgb=2T<>fa
z>ryDUdSb`1LMYB*wOn$OI%Bxle4JqF-Bd$EAq^3F6{jyp1I<u3p;4*tH{%SB at A?*;
zAM2uGtZD$+2aU|m%Z1z;dZiK0ay3XBNC`j!YML#{?l!s*5m`?khL at 9~gQl~%U>vcw
zj3PWn>!RFY1%i8|nSqwl<NekI10XmOpwWa(f|O7wX6D;MhdPG_P*JlIjqst7AnR5e
z8?uYyIb)VC5PeY#F<UJU6`Ci~ngS>z7LyPr90ipMRMbf|5!<R>O!Yw0UD0 at 7>K`Sc
zM-2**$K2g8sU-||O;h(E$Fl8)7ENo<?dI<ES`tB0*AumCK=@!qo#LCuY-yq at EfcX7
zn0Y&2k=t&6fJj^<=6E#-{@+j=YTeXpB6pvrXj<lsykEvw=R%??%yKIv=Ru<s&Buj?
zPzWkSp1uGY<QGa+Ur^8H at n5s|GL*eyXaVu>$M_N&G6Ut583~0jx$D;TjVZ5axFO9L
zqCry__KVk{jj<XtP+h4{3Zm?!#!W}5eS}mS<V$GPxI%NOg$@5wL|v4MaXrUE#Ybrz
z5H)(STeP4iEq9FF4 at b*Mv&G33BraW!F^c^(SXlWLb+XWxIow-inF85U4NAW>WyEKd
zuZ)<9l$ZscB2t64l*Z|4+i~pN3;{9?EN5>hMkK^zBaF>^b=blZXemi`hItATn at a6y
zM&>-lWmoSS$pw#(V<P%05)I?54IOjWg90XuX7K|~dl|2gqw4HE)lj`KS%~s#aQ&%{
zIW$k1#?B$XCGpK3c`pxAW$nb24X9De1O}b+-ap2f0EXqj5P3P$`+1TU+i>6wzM_Lh
zfqp=>kKC>H_y|&X)se&!=utWP at U0(fR$5llXvMhP$<vVVu0s-)a{3MyAsQ3E#Gxdi
z$~*3rYtJn`YwLdBTxVgOw3D~pm@$YTR2rv=b2JX=H;rR#NghI?+<lt-M6*hl;p+u#
zrf{I=+DEf{scnr~%xILw^V6i_LC7qC^v6G5Y8raEkgbx^>6m$$H_aTQnh|}e#OegS
zwe*!5#N|=EtO<g)*au??Xi|EZPP&cfqua`mO0Y+bQh!+98yY(WnL1ln6pgg4t_$6C
zTu|&VeOWG;`By+Q{gQPkkdZimdbg7|+H_L+9|H;5^P;*0v at OtGO49=iq36svpn9 at K
z9q0ZElxr+ce0m`ix;F*~#U6o{A<2wa<10IwzI;GaH at S2GK4TTtWrrboOy9e=kQ6h>
z@{{&Y*7_a3x1 at ns0~+i{^2l3Wn%g1RLr;_xi6dwb+rjGMU!5)O(QPHcR+f;}K=fAj
z at i4j)J>X0%E6Ts5Tb|4%sjE9{k}H&&L;BG}rvM)-Cd+i!h6h~+`M)4D!9op^9h!<p
zW30jljs+puEnjIcHk|r^9R(hHLlqo&$ksV;F8>heUqsPq?e&6*nSBK`l#Kn1Hy6Ew
zLDxho4W;ryj}{%yuu_aIrIrY4Vh)n9;-QfTr+OmxLXA(35mjL2r1UK-4Vto?`mq#J
z_V}KNw3f?429R9w#omGx%k#E8jp3nTa&K%J-B}aHDf9>EX{7IzXy06LPz!~0x^!gd
z^D&`BIif<W<x&*B-J;Lkm*#Mg9*z{$E4z+8#n=r_%y};^=1@*~Lu1iN&PZx;tYAVZ
z{|Ry-6(A5DA->rV;8$r$lie}rk0vZ9G~qiCNIXO`sZbmzYq+3%h+h(Oj?IS~C8hQ-
z4X+~mgE0J9HeD!4G3wnTmrGw{q@{1A?TVgeEmKS1;deW45v~!kWu?+QkXEdg+_;Yv
ztc8L}LC0^5=i=Ys;bX3A=9Vlgk~i&q?}RWz(w9}X7M{pq^WkjfYr`uwT_GtPHL%bq
zn)%uix at h3aV9%c>L90rlQ626r3>(58FobC-epTx*WWp07Y*CuIPqHF6u_3e`+%tdS
z3b}0J4Sr30eSuiA2wx}q)2`r7b|UB#9w^;?5ff}_JRlF<Feyf_-pjMti14hVI9!1s
z%O33vFd%|Cw6`kK1M$@vG%A=TjmAS8<5jk|lSHh<N>ZVizcdu!%Hv^N&Sv^zoETZt
z)zgO>y2-V6Ly!c|>p)*CFkhdAPOK{!B_%;3_~3E9_;hMnc|BqRjpFN(RSB$tHdtxk
z>ye)rV&6gjR at 27_AZ-yxPh+9VYGmMFJVT$3(YS)O`=kAyAEx>1!O*j7yL>jqbVmbt
z18;oMhalROmri{P0U;k?cmg_PQR|?FCIKWOM?=`XJ2+wrP~NoASY^yqI<BmLu*nIs
z&Q=NZ9B_sN>7aYN23!t(%Yd9)H*yC0;-hG|C~~jx+ngj8B)J665EuG#%Qz>rgz*%#
ze$DJJ=pnH&@D#}gi_NNDZ#W8_P*GjO2z{+lvEBL76v%Kvj};yaDa*#V+MV>3253B>
zj&5=rG}f0|`UrRx6;kYli))T?qMaetKYddKyZH!CB1KYL{d4<-47QUx8xorQ9LU$v
znW2?3aCf-MOW(jC2{)Yj;kRgj`g|w~c)-C|smhYF7qMfqh$hyj)Jlv)BOpSJG9-DW
zAp;n|v&DiN+e?CQ^2N}eXDEbf0;TXahhsk0cs~h7*k4~zt?xe3%5uX>-X0w2!Hh0m
zYWO7tMKfpdg-A_ra$;i8u(A7KNBOHhlci{U8Z#Q)d7DN8nc4o#FjDFq+544YviU&D
zRqDl|nI|<txudV+!Vo^VZkZw8liW`MnmZ0Nn>auR(z$eX5e7!u!s$NIr7zJn3IwAF
zy%v2vkPnIF=*u*KEZ-c9OGUrxP4rdL_a{)>p(EV0M6FRWY&{KrrIijSk-mr<63*E!
zHdT8i at -f6CU5kHNAB=$w0zq at 5<wO?x&_o3 at nzVv%&ETdse)={N>VZO at mA^)=4_#MY
zP~PX0dNbwLAGcK(5-lo&ZzQ13m6%6Ym1(Bt7of3f(M=`jeOZbznYG<=S7?q2>DTx}
zPN at f<s@$#p>X&qU0|JS7XhrGUEuibGY3tZ?d((Q7coCF@;?iR1 at NP`R3vWSxr#toB
zJ=eO3Tup?&DXLWVkt60Kcu`9T%^f=qcTSjs1}ag%PAfIQ(C7;qogOtYPI7MeEKV|{
z0HKaQKh&R_&ap-wAWfnxq93rF{cQ&HZ3;9x4%x1RnKw1OB32X8PHM=~jNRST!U8l)
z62Eu_xu~|wTO_2Zg at hsxa!HfKSSw&(nj3^E8OtcdVt#^CqO29k^no&Iyl)HUv(>ci
zy-4E}k&{c35D;{IP0Yq?mAJ%V>J6fH&w>t!K0{i8j$aICv2qD)u)o9rceg>72^ACv
zz<tSZ7V0hs_XU4ZTh9)i=G6psB=N-%Zt7k2saDh<Ev1w+ at +MYyDXl9B-#LYKZhj8J
ztdu<T@#u%;K=ev*RU)1A{!=gt0`Rs?CX+0fkTbg%hdc!JAhit=d<G5-h}J~+Kj9d7
zHok%fnsGb?qM at g;PF$Ls@`i?6Qh5rdZ}GYA|6=aV!*b5s_wjp%8Dj=BlQ1ZITBsov
zm9ix&?TNIZqEy;Td&7(&R8pc%+V`fU?N-*LlC)^wNTnU^`}e%=GK|mfb9{gQ{Ep-2
zc#dbDr^$W4->>Cb&g;C+i_^AhHF3^h16-hMAh5J>6QWX*xMt1mL*iumag_8?Xgwew
zsrOV+zm~KUNCuS}u$N~iBDpI;&_M=(^e1^6S8B$A$_B6U3$@)-e3pzGaYaWLu_*~k
zP+G?Il$yATa#kNV22n8&VyMSycn4%6in3NC>Of>h=?L2ZELkpyZ at 1cS1SEuntU@pJ
zN*HxJ+D#Z2tLp|<MTntjAlDTU!KqqsU0Gd6)J3I?;f1C;jyN|TAj^@5D at EtE>h1hZ
z&_?n=Ke{v`!!-MD6U;%Ar5-m>_0p at O)+^$~w_H=Cj=~H`{)mi>kZ)`ReV4=zijMT6
z&6I*G(ze)|H3V0>o?1LIMp^^5jvgUrMD9OT!}yvm(I|0ie^<VR_SK8m{8mC%lMM6v
z#!8x&LyaAjh~Yp#6=~7LSV5A8NQB5CWSMK$CpFS)K{ggH*U_Xbt6IOf$b<UV6wnAt
z0*WFI+Q^E>(Y5D6ojnjX$tv36nt<ew4rRvc^UFm>)XpK-eu6wj<;@Ti@)A)dPK_|e
zDwBym^C_gKj>sH at mn7{*7K`ZHY?TM2l~&^rWtIf^!v-xR&yEnnWKe!q?J2UyG%5~l
z+oh8|BW83j3If>ZU8&uf)F&u+qdEn3HE3Sla)RXYkp<r>ryEF&Xu?@Ul`+^Bf95Vj
znbtyT{4J?QXL|T<j?vMTVm|~#VHiO`fz3UB5 at Pj9Y9ktDV%Q?6j@>x}&F1|#(XEMS
zPh~rt+8aPk`ohI98t&Ac{|4EwnP3?_k<K{D9SAE%l8Q<OQvc=763A9^$qrp2IY}u&
z#1MA5 at TYtN8#mUytrUAjGl&BBzu>na{ha4x#L}%Sk at ZD$U2FzyVSv+04%@0 at xzvZM
ze&>0x1ala?ZUc*5yB at CZqaOKOfDsx+*TSixqNVd5LaMDJnTQTHk_=ByeiAT at 7I&s~
zyUKR^k8k;3Yy~;}4J39pch}*6 at v6G6sJ%wPXv?j3yts>HJ=!QlMzS?X{{jK!;v~@f
zn?<1tt3;Yicg~<ksP?U6HgVKp1q#lbKS0SI<ig#NB4*}SQYY;qI at KGNiVR5{ftuhO
z^gm3!Wlg5?sqBHD)X2{grKBh|={59WpKBzV4j at a2aMq?HlGtqOi}=#_3_pr<FKjk4
zRvinDp at Iv8v9ugH7`3}!9EF*r?tIbxsRK_vSFQwxdAcB(dK95MDGaMZ=9sw5MoGNr
zj338Jc)&PIqYH-=W;BY_5LHosP&1M5DR=2-e at 2o|lwJ}KT78RY95z`BU5i^C98MxF
zJ`S?K1>!S<i6 at h;aiA+xp#~Q8GEIwN)3{bj?{b+mcRt`Vqp~9@`9T8*Yl01C)fAix
zro<o^Pen5592hOKJbMshJmj<>^r}&$x{SoBDTk*f8C*7iM<o41nLefm4lGWxBK#5+
zV3o-r&R<C(94;`pv<=73W5 at XGpOph!{}>{~n3 at 0y{-B0PHC(Ocr6lDK5&;=G);%4y
zDgeMnd<p`2PHfLhqdlZvJ(Rv`-j$uAw1z|wscVjUf8yT`_YS=yJ^De3EC6fofLv2+
z(*{w&2x4ecV}TyAbZaJ7HA3~ohPRWtlR40ZH8<)T#xstYjKXUdrK_N`M{%J0WlTj<
zOj36~0v>}2GINMV*9W%lfCA00M6M@%rdyb#$tfeXDCAF<LZrraU<uh;GJwqpWLQa&
zQIckc`7r{6?8kzsE1gomZutf9N|XkZ;6f<Q)ZD1ChcNFe$?sCG4s)g;=(U56;=6|I
zG3n*yB&&S}QVnkq2gq#FctU;VG|Gs^A1rrHS^$|wq7EEQ8Mh?;A5u34Hm&F=4;49<
zJ^&1yeZWvK6;MHQB_=!9QzBU4EY(F~942Wk5m%>Mhcv<|&8UNjP%;`*^(7Pu!lSlN
z0?};Y`co at OLx0-cNO0!|2XIm+EW#7B{>VS5^`HT+{Yg$Dc^C{`5~4<M=#j`37*E!}
zm4s5Nl%Qz>E^0*leMC+6jUl(t+j)--jr03OZJ}zwwfuX=s>d_n at y_!Ty;GBBn5o8;
zat6Zm0s6Hqt4gj1KzD&oCU2f4hBlzDDi8%{mZ*9qWiE6BpzrK*^=OJWDQuC_IQ`rx
z=_dUz;0JRfYn+fGQyDp&W5dRcmuV<4dZF+AsTyI6R?$2Z;1^@cZoUn><y+Wbcj|gY
z at aJoJ4?dXu(-}ZkR-=-cq(+Mdujv_${XO;Ky~}5BF~zD8p*sWrc5BVXTJ(X?GiV`X
zRX%+9#?`yaG2#`kOc3h$VPg=1#~Y_6bfsIl?~|?kFxEIF**#qBGI)okh*FXGq1ujZ
zXm`*9Sb%l7lv+t+O(=8(wzz+jh72VTX#S_;Mm-MU*{#SNuOO<CM4an;G-V|vmV^oo
zN>`$;LxELakIby8g!rI0!9D$h*g2QD;M3nSycGXk`-4#CGcEgw7Ca5UW!!YeQtVH`
zQz(wJznH23E1ix?%?G;L2ra_!MROx%DP7nMEHdL==%rGfKA4TCfQ9^z#>zXw^p%M`
zC+|oGXB#?T7AoAeKn(0aP9Gwmft at _-Ot5s+EtiKiQ}F<1BoPdT6hR?u3fF5$ah5VC
zn&#SahBhAm@&j(fy1<QFsdb3r1R4UcJiCV?H1h3~&zGO;g{z(B0$e^x<7H{0+o$xE
z082^@FDLCeT@)m~l|Wv^l=7mad`W;y7h;aN++&^qz;fxdBKfndF~<K}MA_om7?*<J
z014{IBV~*h49#nKLyG!{)3&nY&{L);-F-u*0YOAKhc0y7NwWdnuHNP;MRquGQStW?
z at Upt=0#9 at jE<}SHeDvCN)<WPubcX7a5`q=s4NxRGE<$$~u$kuI8q at l#dIX_oda1au
zog4|0lZ{DjrUp&A%yZY*I8pnX7P2v;JXnuX%sJCKd$BZtE`&{m25%loP9k^Fs)>x$
z5~t>L%B%o#YVBLSIyX0$goY at OQ}w8%F&T*4u83S}eMF`UWxPwcUED3hP%#Tb4oNc3
zm=s}*VZ|2IhYJ^pNfEG<2>#~Kl#k+3nU at e_xB|Rd-)6pL6seT~O7PJmX#Mia9g?Iy
z{HLlfc|>9^QS-5kV-ak9YJR}(l!sVtOftPlEpy$&kVyT-72}234*2MxLZ*jQrvw}?
zpJwXE1O0DZ;Hf at N7=0R7<f9kS&OT(lH7pGk2})Q=cvC-krmFSqELCQRJ?EoGV(^gK
ze~w(}H=q&x%8ga|{ncqSO%%;nWgfa#MZ(nLy8eb?VLgO>sD&_+V*^^7NJ<i|NI~YY
zxA<W88z*|~s6*bTnKVD>F27dOY=slHJJn*V5A8yVseSYik&!}Q9s=|m=CMVp0GDVO
z49!Gr83tz7OkL-XV!XE?t0l<}l90lz9pJgtLuq7|^#?!ollcrFWsyLBeEpCjgTjnD
z*Qp6AGKObIqQplYdbVn{)g1#^Kjg`tK8lL&7g$NT>tvfN8}1`HLrM*h+N*lF!piY>
zj+Ab1fZ(go0EONdL3Y*LpMMA$V0gCCXlz`fEHtcl+8Rz5Slu>eVqCIn1*PXyIasK0
z#~xkI%`mP9L}~6DUA{*bU0&h?sj;jexlBQv-}IVnP9{=~(qLOrL`tN$h2QCbV2nGV
z^eu-0Cw**v`%*p=&c7K02{jV+ybK5>qk)Fq!vwx at 2b%A;{3C5QEeTm<BwIes$bBv$
zDO?xGH%1v8szmkgjPgm!iPCytbJvdwrfsFdDm4fqxw_TK!$l(JWOeA$s(AbkaH}L>
zeRpQH6 at b==iTV(lDN22eucZQ_u(LD`gixi#Fq7m`7k9_3vRY3ZEgES32pp%BJu_7`
zeHoB-no;GF6BWVWq(93{f+^cY3+CZaR!c8pqXlexY48UHbrBr3h~~;XTH@%OoAwQ$
zZ8z|aYTYGw_tM~Dw7Pc_I166hDjcXNR6UFo3!}O+P*~9eXv~{Ox?HU$#WgCFGfNL8
zQ<-dTWPT2emmu}lnp!7y;t0?<M?iZ4v<`?(KA>hVjfOWXPObzpcaZZUJ$&9gGo*D_
z8hE@}t_JptrLvz#042?T2}Nsk$pOvdFgT=e!q+W7Yh+{n{1noNpp|_s1QnOdOKJR2
zBu5|nT1Lpmk{L#lMme}_J_C5lb)>k7WvM}vmuiK$^}AmvM|@=DVh*3S57z#o1DRH2
zdG4?rZ&$slh(iR0xiwS!tK<8jfzZ~)K16eDNXQ6R7($U<NQLHd*N7lxBL(s{vF|km
zkz>;;sd{h%PdB<Hbv20qIix?bEML)L6IOrS0Y{g{!tmxH$!2w);;K at K_fdXT1Hp7;
zCA9LY!f8Yf%`)}T!-bK1Yi;IudXSW}QP<T8)d9_mn!;ZM2d8pTBtmikR-Ag5d at EGz
zkXVfR44 at +}k7R72S?<>L?~+*K=s%_0Ei?z{0u45>^y10>8SV4n4F*_tp(=Y|ThY%%
zBE%(D5G8L+Q#cnY_$+0$^dbl2&7=C`VJQEG+7r$~YS#tHRIhUZfXD66y^tD5VTLn3
zc3szkIinoGFM0`PH`2TnMD4}9Vogb|5;mMu#Y3Au)2yFY4vu~ifKfi-sGX`=kdqfD
z4Lz)d2{GEbfXwjbAz0wRAu8+`rN9J_P!k}BtoJ#|+f{7QFCaNDoF~mhJ(FZ>?qJgY
z>gH|F><5yS3*9PJj|fM$h46b3pZs1l&R6%`tBCm&32t~T)sC8jHm at RI9V!8qw#%Ae
z_JUGq8Y{_DvMF5CAoUj#Kb4YL5|x2e*VU5-jJ6!kk{&N at qM~$xgVDD6zWqR576M9j
zEl5U`NpibvSVK%z-a`VVym`Ro7m*yrql?~mFcc=2B52(IOpiyltf^|Xb%CA)^5UGy
ziKby`GP=`hQ_|8TwmL$*=01 at IWXoZwZVWzs>~s)G0-^l$+K47|!7TBy>_U7ZzpW^e
zya=zWt~gvfOM-vbnlDd;EjkQoKD=Cc8-RAIVOn`bha+DRSmE&QwvS$>n7kcKw~?aH
z4uID*UTH3OK|Bq>g%R<y>{>ZByf0LP0xzEdywl#l7jUu_dCL$ZSHleH>m!+G;dBLQ
zXho<FY$qjUICNGt0 at X)x;=%<IUBRS>%ka0G)++{c5U!dS_D>L5N!gZb- at 1$x>P~wN
zgT8PhT!T7XK;BN0eF at lb%LcMV-PgYVsFC$_oJ at L>f(1cB6sz&(1vV^T`0SnGq^v5W
z0|tb~wjdeF{`$c6cWFM^^y$Pnj;*Ap#<9+wA{fveW2H!zfofYE>k956joXJqAWJr7
z1&IK!drUYvOI0kHW{Dx~WXr!gAGxSCssKaWcab&b&E*dC3X{@*gt*Bs#RXZ;UN{lF
zs|Hdi+1gEF7;Qg{+lZ5)O}+34`na&NKAk)!`$)1P8Zj?zDWWCTkQ@&XeD=|dy7+iw
z09GXHiqt|iR0kT(soaHaOt7l%Z69z_l`Z7$Awfk%0Jo(kFwg2T1oT=~{R($FL*{Xt
zO_?|}@bg{yr{F`MfB<mgoYWMR-%!+$6(uEJ8hHnIxe0#AXMj{BU<n}4t51`h-#{yf
zPq`5-=M-06okw{lGL!4ky+AuDN0AcLmqYon8H!C;kR=PRSwpjpD7^^-^eC$Ev;y@?
z9nwDH%_EE(pPL8fKqtx#Iu{*alrLkD_MD3;%`ojA5DSOX5Vqv}t9w6AV;BOvOpoMO
zSYyAzlOZNuKf at e!XTq+^Y4n2TLDOlCJ5SW&1gZ16zL2$Z9|H?!DS8tQY?GHErC5Sk
zdGpA?s5tN8W9$_BbV$CTA&^Krk+h at Mhar`!fJ#hgmLpdO37bP5as5gj7ehWMAzA{(
z!rTWYqWSA7lYn)&QYMj)sZ=Q9`0;?lv}S2aJAyAy(zl_y5R?Wp%WCB^Q4%LT$cqld
zY==iE-WB?M1A?lWYx-qD;aWBQP^>|{=E(ZN-(>wzWQkM at ZkTK&xl5k`%DtM65o)Ek
z5f;zeiHh{I8h;tcv0cW(qF}q&7;#5UZvxVO=w`F9GEfU-%W+_*2u!x}`hl@(>{B|n
z8(7b^6iI;9HzXWw9~n)OSK{p?aebn&U{uIM(z^kq&(%SQ3-HsotCR-`r&C54%{CCO
zFsNuJ){dHo-?LE}8gP)f*6W*g|M}vW`C{(f)qxEu7$qPYu_4ChfI{Pt3*n}q&fiR;
zN`?QqzP?@OF|;W;U?U6O9l=g^Wl~!+AXS#v at VU7BgKX!JMwV(_BhU*<4)K&MT^rEg
zd0K9i)qdlaa$qJHTK5+ClRG+4e4>{C{|0#j#)hyZLiMq!2qG6M^sQ`PHVJs*C6N;_
zejpAb#R$vujiza=Bo7gvD1m!MI*b<`0G- at qUUe%qgPAlk8{a?l=jGB^qV~g at u?<k&
z1jXg+=cI0`qS~mn at 2I%?k>zGnng}gJWqtX$I!G-CdY>IAOd7>&QwOOoW_U;Er(m
zgj05S5J*W8Dea?Pdluvus at 6?m$YS`t5+XQ$fJ__T95g0)-=1+;Y(72gL-g7-;nm##
z0<|C;Opt63C>25&=}85>@OZzws<~7A^_>O!VMq8#`J=#r#0IeP8rsX#%BeK>(fSR9
z=B2RcSRhBjmC1G$BvUW|1$z;eQZ*1bIN%dNEMy!P)}ShQHQA;sbH}r%!2uopgBMaP
zW=TK!x%Vnzs+F75WU)mkB at UcH9UhDPc&HyX-OI9zRIDspQk}nH7#teWqJ9QY&%0%a
zGlT)67Xchigy$gOrSMz}Bjqj{XkdEgc2KK$^BjhHf)0DA(GX&v0f5Z82sFIS{ktG}
zr%~XLB|UY32BWA}lnLAK5{MXcAuiEPllP}kMMn0YC?!!l_N~uB(q&3qtA7BCpej-u
zIp*kWTxI3zbwy%p{oEc_Vd+SwC27Ms2aR+!MrA~ePIh4K*qg1ZsiH*UOKbxm%50gA
zaK2-#GWujMcFh=trx5X0K5l|02oi1FhcT0E`Id;ba}gcNmD^Pt_)#+pTfUb<)`?J3
z?t8s1)3;l7qD=TvH!P-x_L4N|Ea%%OWzOZ6p}Mk41spPF4)H9fq*ZI*vm5IM=Q#HK
zoRZvz at bYioPJ?!dBmTODbdypZIs?EVk{q at 1tPw@MWeEUJc~M(PeeXk=YmF#_VHwd?
zuTK3r-~jg!ibGVvXc91kuT)&;eGIWI&GwDr=!Bl5&+oTtw^)`2HRWV$pc1d%rdZje
zgYzAq_><;Z?Q6$0Ow$ewWd$}Z(B#&hWo6{kb65Z4Y`dA~!>7zV-|{-TW~uUBH0WVt
z9;q|<Y+c)nx(jPmO)>|Ak@*RPU{gog2;ih+K{80Mcpzll#N}ceK)8jvsRYJaZC<v`
zH3V`XYwL5At}pv`D&Tv&XYnbihr*3lD7=|Hl+tfAZZ`6=Nyk6n(Ufb%gmWn?zXW9a
z6b2|I2MJ6cjZ1>d0eBeLczGVfYxXC+b{6Tp!Pl}4P%W6Ci1?%((E0HhAcz&&@U?+~
z>g_O1FFM9i!riY?*`y#TTd99oU2&m8CC82Y at 71e<eFo3hPF;U8w`Z_!rM^QkKQeWI
z#=g-|yUaN-F;Ax^V8F`ReT+n>aP{Cp at xREI7L1NE7$ZAptk~O~Nb<@=<gxRd8rqID
zEdm7$wgHL+p!1xPHQ34*SEQ=RcZfR!Q(}LQ>wHu}YHtM&WRexUFT*oN#Yc^aF_s^K
zkD=3JJw~XLVA^?!p*c4jtl(uif${MuC&2_31nA1erM#Dvfun at 71=Vby)npN0jO4po
zsxV at 78P55$ni at RglP$)qL$qoiJjX)nC%HI^LdSBVA)z>Q(g0W`86|RjL?YQ>d^*N@
zeh*c!P<&kbS}5~cciD*zID9F=9Z&W at yKB8whln1p*X8dY%BpkwR+GDS>lH5EdgJ`J
zG1b${n1D#c=XYI6M3Gb1MhOlAI|t$MmMon_pTBz3U2nZ155}g4W9A8IR(c4`<jX<I
z%QgU at QItd=<KyQtygWboJr81M(J<FMz-dF*DB at sMIgmkLP8z|j$^~+V>;!=NQe89S
z2xIg6Sb3r{U_=_TRQQoI0#$pfJF~_$vz%YkOi~(;lbvYNIQ*@_!K|q3KGHz26*Y?W
z&oQy&)m2u2{<K4HyC6y-L`ATVJ<Phdq_h=t;1#NyBvG&;jsO8UVVzVs+l<`bM-P5R
z-q8vXiiX;!ewd?<6|BsbqF0jnyPRYPfb9u(SGF8ZXBhz&Pb+JWwEH`P(d}*Sonopt
zzsJi=NOLkIUTDYe(gNAXrc$Go-uWj?rY|hgIB|pQjT7Ss)pg_mCX`Kjlp{a8oV1l>
zu3%{|I^d}h5w2LO`!i$JtxrKD2NHbEg7wXa3-XZU-72|DS~+-j-GXHJ8WN|MuB=_$
z?td{-A;=#OB7aUiLMH2JQA&C0XroZZo)f+i*=sH?tm|g^6qIf1eFjqc at AAtfMPPge
zZzt8>QBXH938K;El)igRP<;!eu#+bIG}ZCbg;7FS*bIWFUO_SlIeW32Pb(Y{Z0cd;
z4p#@|UDn7H^g8u-!~TNsA_4FSgD?;eM+wQK|Bf2w?>K-oW<s?>IOA~zuN=2$8_S}l
z)dK2LtteDcJ)_~kFB9}e5*tGkGcP(Ipkd)>Pb<D*@bLe8vL-OO=`viuZ?r4oMk;Du
zPPo=1^#BC|ZkV#`$u@$wksnj^J$0FOkQy2+y`oKIE1M>fv}3}Rh^d~UEg|oSPI_?|
z<#CQ?Z7@;9IvzQ3+B*QUn*|PR^I>I7D}mel3;>MMcS_LWl}qAUGr`+K63Qg29nc1H
zz+N&VFnP#jkWzGrBz?nBs`-SganOVV>&^;(q_C0w`~xIJ3ig>c3uGYrf^@~Ra1azp
zKT6dj8}SpJe at atQB*9Y at EStT*n#$->1ay>xM>aN$DFeReq^h^Tc27gQ$WQnvrf>q|
zjmjw$Q&19By<JO5$!qXrRKl_1iCrRtb+8j;P at Yy6`~@FGRC6oNwP7SzhWtoT)V4^t
z(xh*k0GN$OQlq7^QJyOS9BUf9k`W?QIs^RJHxZ1XK@)31KClUZ>*8s|`Kf}bO|zdg
zc?aCMU=*cajC8OCQRCQjAotx*i^EO(&uS66NyHuAJW^jpT2cw2chv^{6e4^Pg5~u?
z!TFSzJGaw#K8Q;x?|2t-PSBwy1F5;=X$rFdhH`b>a{4HP3buH2Cs)Eor&|%;2;8V@
z7;t(NK)wMD-R8|B3yO~R#*WNy7_wVFIifi%jt{Cg1<BT)agAE^Q8m)x)>j5bLSSWi
zI|+dX at f*>-Ni6OeO}pjILyU_Fbyca>TXQa>S at HF{>H&E9i1;YSi3hE`KV3-&wj!&s
z1I~U+&UG+(98Xgr4;h`jsQTiDFx>7JHh;zw2ApE)K1KqAtgC}mjyMpe1EAhS1bsrZ
z7h)G>G+Y5Ep(`h+s>6N`$~YgxiwS)|nKkEC--%kZnk+{)B_nDJ1G_#jva18ZNr8ig
zsY0kV*}{UT1vI{g81cv`TAe|<BnE8+M_JQ?+7s}%gx%w)oI=sx$ZV(F(9j6gZq14(
zNRT~6r)GH_C^^4U4xXr|FHgZIe0D<CH+Bfrse~HN(FyW3#&26)YMagA+3 at Lt25-Y6
z5X)RZ8CJ%brpamww}Ih6LmXHkXZAs>^}O18B}jUy4ym|JzS<hIsl($*SPHJ>&Yxuu
zp1y)NBQ7Ya!I*57axCR7B2iDosJ at iLN+2S;c1}vk7D at PO8nE5@n`Spn$f*v|1>b;l
zZ at 1(Gv(60q)`4^WBQ-&zya@}Z+!eqRsl(>mT#nE0=j{P0Y-$PSwaH&}K)foK+j|OK
z;Nde_!AB`r+8XKeq_T~Qa&oSfBq}Y*pq;S|5ZDTlvz**Mu5QxzwQP}{Y`YBelMBIl
zr2GcORBNG9DrMaz>cSm6(;}E3S|B;hKM?g4MV|BzxX{8agbWj8JD2-x%1KC%MtoeK
z34&_)gyRTYy<+voAYzl!s~3DfN-~xxQr<~BEkbo&LJYO?o at H4_W!%S)sY#<K_#|G$
zNYShp7XXKDf#$-W86nR<^^@9%Bga?9La_}H7&Qr at KeG}o6pSpugO21Fqfx5}NvixW
zTs#Ff9BJUoi;BQ9lOpk>iv^J&t!*}#z*+Q|&S?IzAYtlK5ohY4plO_NaKw!)NJf3^
z_t!!`i)eLO2a=pW0w^m^?ly`bGLU-^xJu<O7Qv3AuyyiiaZxa?MMOL`2BQS-Gcd4)
zrC5jwg>7Qe6=YYaal}VY)6(i4)sl2wMhq?jb$t~ESW<KOe_s~R6tVFmIhc4F0*C`7
zDv>wq0oUZ}K+Sv7wX5F#%$1XGramYxmh0kMowg}fR$BACk&4`$+i8Cu_DINa-+VpI
z`esM8dSUwViL@<2$+ at N1Z}0U~ThliCSN?;yPsN-n&soSO_sd)j1sB)nNhdB_J(GE{
zthdr8)4{%{EvMI0{Z`}$`yM^3pB4Lo2=T01)#TB+_!1G?L*v^Rm{E2sA$a_Vl2QnK
zO~&e9k80vw2H-F?Imd8>41|_x2R_>j+CVhAjWjvoE&|r9S)&#BL>qvjBPh%5U$P
zgX<v=lcEmSNp)b#EP)liL^(jnb<(M&t&J(3sQLWX4qb4-tn4nYDJ&>R8Oaw$apx6k
z<?X52_N`)yYHB{a_v}gVKsmFzeN0?MTKc@?<glJyp7~PEs0_ at UkwF}k)iw^T1`N%s
z at 2En28b>aRXC<1hjQ(v)XE1*5gN at XX(4K&461;g}uTC49_?WLcf$63q*me&peud&q
z5;EVCjw*0x?tNreS1b#cSvY^CWL-xUlqDlT-^dX0S{M--c?t>3sm7da&?jFjx4b|`
ztC8)}*DAk+`-2nQ+C7ZSJZjU0YOOLJ_|ih(1G{$pfmt-7araj`J39;OJ)O5T{A_xr
zZMQ#cc^GQ=?@)}ZKy}?3!A)&Xeqmu5;3w)+K{GzF7i*YyNdat3#nYz~X-XPXT>7ef
zkl3pZtD?NTeYiG>WkYQ at J2@mJB}bvTf853d8{vNCijB;IeINjMqfx((^RWR8m0lnF
z5b%b2t4UOI6oa-|yz%J7?Rp=3av at UnE&u8ZFdjSxx_JoN2mgrCxZi~R#vI$scfy+A
z6&r-tWfu=%VsM<yAAkIzo`+_dMD)2d<X)7$1<<4L)WfWQ{!s$CzXb7Oy;ngp%G9Aq
z3$(xjEP+oaS$HBD_juUInVbLfsuP7p8w<8#_+!z4-_rxP+p8cN9*9-6BkguyD7o0c
zwjQG>PaCIfJr~zru%OfJ*WBfYsZzlK9KiJ#<GtAi9MxB@;5FA>rx8oSP}RxthQU{f
zO3W(OYFoPf%s)kbb5Mc2O%VJ>ISYJ_B6K at rn0gt3395DXM_QLtxG&O%1KNp5H(gA`
zw(Ib#c#X2vBS?nsaYCLU-g+2C-%q*#tQ2XxSHi-=t*7gv;f5NmCc&9SgZ`Pk0idz%
z=oI3$kUSKp65(FNCZnShjABtD#u;R6JJ_xQuXKe|yrQED6;u69zisbGwQ_`}t`SB$
zpmXm=%AGrA%i)EJ>wG#CaGTN`CJ at sID7@iBdC};uVacNo;)6z^49DE2`~ly)4_RP}
z*y3M)34wp9&Ar%UDxh;O8fbnyz`b05C<ev>qT-X3Y<QTzy%9NJs>8r3yS#sl(CM^H
z)H3|lW?fxfKgpG6TE+H()!7e^@T#K<UtP|$GxK!Ge~(1542s6}oR9h49o@%pVQvF%
zt+U8RFyz0 at BJ}Y`^naegJXF at g;J?m<Aa{tvdaLK*?lv=D6g_`l4iasGM>XFI$8(7K
zW8eYQ^8|Er;!*jN#W)2!3%)!ttJcdfw>0!HUtciOX)6C3H`Y*AJr82QO}_VCU)<V}
zbm77e7*15yaRy9q7^O5+^$uqT`}nN8l>6q5P;fDB2h_<M-*y^Lcy7lW&3K4eXKeFz
zMtbR5srU*U^H3`4J(7Aa4ayG at NoDW70KL@r>ebh7QVn5rjQ?J6 at YJbTW?0>8U<&RY
z9_k7T9<M$CsOA$ADmSplLMeim2MJaKn=X`|Xk0F81X_U|4cPq%tUTn1itCl at o>u&n
z0nqF&Mj1He*<8v!-gj*+DZp2c3&B{qjs5zs@&{vkIharS1H_Q`y?*_KRReIm*!cK(
z at kE@l!#F$Ehb0fuz(0gCCc!&z1qUZ$B_NPro|`ZG;&`$lYEsnj2m5pzuqA?5Svur$
zRtS+)5e@|xeL&Q0jG-L at 2h;?C7H8w)7~DPDPt#H}H<i>^k7hfAamt)r)^ifD^GmRs
zj#@ckzKw|PuthpTbYsK?B0HAeMyBWhQipcnj}5Je50y+z;`da at Dk@fHSTu8_T<0D|
z-OOxYl+F*(iy%qon%s*fOmH_t!@^8YoGJ<ZiyS_4+oEEvlT=JE^6P<kNIxvh;R);Y
zcA3`g-uO-5;Na6Xbpcbi9<P9)kut)lcn=NnTxaaM7-%Y-m4&_=qG;CCf?|M<O-28T
zoiLhi16QOvbiIYd)~$ySPp66HVS(Uo)$>5IH0vvuH&aHKe)GV3fa!%D!&sPC$$I-t
z8*}P&^WDvGEgaC%DSYhFY`CWGv}8a`S=)<o0|p=kUeY>@SRo1))m|;Xz#o~#JJ9FK
z!OApgC=1y&D;rK;;DC)Cx<BvQFH7QXNnI~4u8E4kk>ullCF*2%lx9;U&KL}3^}LOX
zFM(o^2;*p9&O1ycgh@<F=Gn3Z=Ns7u*)$AZ$lSK{UJ>@4BTENj*+mN<XKNoga2eF$
zV>Vqlx%9Ait=bfpL}isBb9fagzZ{%}qK-31kA@&tQ at g$UyCvLXOM)|B{L01_ib_Fa
z>o64Bg^xa9cn%Ns;Q%{8?wG)dxMm!*)FVCDCkJF05m#Ux!Iuqzv+1cQ=3jiND5(wI
zNHG8-#JK4Erhn||J^o1sK*@b%bo3OAn0g-Cdd%)Nd3$+<08y#8$VLDJw(_5kw`A?v
zzyHFU=H`Ql&ElH56@%5VzWoR=9Mv*A?rUc|90b8F!}xX&Y{h9_ZvgiDaPZQ_)DIty
z#wNsq>TJjUQQ{#MTgYkH{K^W6BM{XV=_Nypei}IhAVq(*_avZePdy0=tHv0`C7 at ts
zCMqgQCk<jh at nD`2 at 4^B61M81(W&B!E2S`MTQzoDpyaOd`>(pA;;v*XugX3xpb<Jp`
z!N&%I at wW@~1!Lg#1r+9(r8*9s{yXsyq9ve;V%GACNHX{4=H+dGz*fhZBS-w{^8nTr
z<mOMB!c_sxDnon`?=dzuR%j>`3lKv<!B!j_g6TtNBtU8t$%7+|p{M``2d9S#C$(Yw
z_PP$<x8CK5NSuMX>rAO6NPyR?84jm4+OZ*S>a-uPsx)8}%OjF7x at I<0PJ8Fhm|(Xh
zWZ7fYVl49pE?=G(XHa<`^=y&K4}ZS#2>bJ|zl<Q)AfoukbA%mm5{rKQ^)?vy%x(4c
z^%)j>&~L1QXo9-YnAhJs_P=|5{h9!%3UO6chlNe5Ubaf$IRE(b&y^rVYcJ^%@L0Jc
z5k#q2pp8fFo%x{MJAc6f3T^t4J1}{)OTdhM*}9_-fJ1|xWKa{D)%`_G{de!)Eri#P
zh={0PChjtxfzgS=eyt+|L-BVNvxg7v-hCFq3#G1Eo2u{QBFdMPl=w?JXB9aDA&Nq?
zM7rOh*PP_)(9kOCq^%hx==c5V)vFN%-5v4Pvb9ZvEPv9}*!?Lh3qd0&wiC)*T2^M-
z&<7895H`+Sn`b#}c`?=;x;vTy&FC^Y1g at pa<jBb-k)wWy>$E`Lu0YtI;4$a>@8Lpq
zaKvmZ1c&a}xI0=}reF|F=%Yuwv%x`8??t!DNp?22H_y*t6Lc>AD|f|M5s!mIA?mAS
zVw$7}^<<wcUf~QQYFF3R*%^mRE6yLr#C(pOfB<~&- at jkvh>5(>Kwb`z`Eq!Zy at 9$t
zfdmGgs!U7(1GP^5hcpn}My|l at H-}o=!TqQ>Io$*7uiqC8#~Xv^bU-#$XDi!@I78_8
zlOKT9??G9%L0i$(kIME^D6=SItF?SyO5VPGdlXrhp-mTjV at J*1IN%?z->6Nc!6-<e
zWOnLh$RB{GVgVZ;&hABAXKj(<x~P+ljg9 at c-wgYLVYxJLWGhiDi+uk4fZtoF>6M|?
zfzB at 1x^-3eii?XC!AHM|rn9+zZ_i@=&RWWFidsJ5?R0PlsB4UTLqx6zDG4+`V#TcA
zHF>8@!Qld`be+FqdsQoMv$v2#zoF--gU884D<6JMbpiymbp^Luy!q1w66~EA+ERve
zGborwo^+H&d7{dCs;`sy3_PNu8nDMU4l5MPvC(LwuI|9ZyD|!dFbYo5?()dkm@$0a
z3lDN8zF#<#*YFs>V~Uq}Vib}9lu^=MB&}Kx#PvB2bVM|QWT;Tsrhq^~8K(hBg-L at I
z=1kF&{Wy0nb#Isii?z>#_bNr8_A13d4se+)?iH`fLr{nh00&}rCKWD%yoWN^`t=RM
zd3Xb1g93J3GbO~=ISAvmyiJFC>X!-XUw{>g#M}|y9XqCit<WkI0^`^?@I*rqoUWD8
zU}&i432xc)D#zK;89(9U;W2l(jx-4qz$Pp1?}0%oh1vHF3UaQrCu<NCT;%`qr4rnp
zHY>JPM3h5uJv_hCO4OmWe~RD&^*9<4J#nTSki!xIHDE{`dEUi~7ndQlR!s at 9cEFbf
zrSzak`PRoqLIy9}bHvgw919);C}NqUQwB(#&F|;kym`~1#rF{VvSqPVRaMM}G31vU
z)~|p1da0~C_LKsZMwhV!yyc0$U`Ws#B9K2-myryq2hH%Lb6qrDI~%my(QY$WYL*HZ
zq8Zn+3JMiqUbnuV*YKo*w+Bs`mGI9eZA^goL<~-m9+_-G)cYNtwj@$Qe;(w+1uf#_
zbgsRN9Pc2^zPaj}-lLm-qtQv?i7?V};N*Hw9<)v#G at U{hPX~CE=gPKZl_4I*-%Fr~
zzpnw~yA9#Qmu)i-f#SV|FTZBRG0{Zb`-yPAMzEGODF&BNP!A8-YPQ%u$J5gj%&Rzz
zzT5xJH{UEMJgCC05D0f;eN~}l!Mu6p81s+>;wi~&d>pWOZZC&{J$SX8foAO4-eAor
z1y0OcQo>i;?O%KdxcyCZU0YT<0zXYa_z(kVCOvo-*FiWXTz?~E*wFJ=Iet8}KI$=^
zLXB2dQ}<;C5>TQkGJ_k&;(+`bqnW;=`cBjyg~1)L!Ou_JA>zRriEArdhL52q>IgtS
z-VY5PDR#X&&Y)O}*?$a2)NV3xpMS^_{u2pumq+K+NF)DA1d>@~)5$R}6E5f|Jl>E9
z4A)lT=S#=YesbDTCU<dI3F(HlBWM|NQZA~f+=Ix!60LGhwRh3B8V$ca<TMhGiv2Qi
z+juhH at 86rF3$kkJ((n|Xnj2UC5Y9)1geyM=6Vu>jShfqtd)t28ZWYvw+7Z1AbP#Nd
z9RqM#KnPL?bgi;~|Ne`E^&pfWEsQ|4*NG_GE;}8Ouk8N)8O^s^Aj&s at fqOk3W6n-a
zJ)_4j_9rEAxuSE}u&XM0#TeUJ0A1F&;+9u?1`vZ&50maaHT|Sna~9NnFk;Ym!1 at M|
z4vyWw+II|d-XD8%uX%fi;)!Y`l29uI^5nOW%|19VkOONZOS(T-+h)(69gWKZ1oa$-
zHbkR)Bo-?$6bM%o4PzP+6=jTmpY$KQp#!d$toX_WjpjtnmjKe4>)&fqU0qGi9^jzz
zTN;Dp256=qnyiSJ6k>7rB`zhvt}YSKdI|8xW_;L!n$zjpz`vQ;wIZ<W0B%tNmfAtY
zG0Zk*E$D#JNEsXYa=;XofQ2OF1NlM(SOx4x6L at -<ZYga2OR#Au^rV7dL4H23Z7X_o
zdDgF&2COA8xXj~t^5K5ma%0@&y}{roOAK^Xt0Kl!J98!jv;>P{KOtBw;veOkh!pAz
z8X>LP+mM7}(UBad%vfyKThSNSZ`_D}_Uzel-x`T(R4)=x!F^o6nL_|6&iZTl$2t)q
z^KRJC8T_5vA&Rl_jB0OeKw9?`|M8l)_3-;+d-v_zAS`@$f9LEubK;<mPZ=HDJlZ^6
zD#y?l7757`WrQ>+8<iogzLcs6E6u)qc^tC2MeQzj&A?e`kzs<ha~o)X=tJDyDM;!a
zxodjjL?ry>?cw1w2m(8it?#XgLcjvrK?Fiyo4gwdXPMbRmbU;{y7#0rqk!^vIK3t9
zl;s@(RoupMO|KLIzWe`GFJuTvKg=Em>nqiH%$C`Tn#g{zAunHJvyUVr0xmnRt<2U{
zt9Am9`ElMnHJm5-;^?zyztzq#-?en<(t>BtULtbwy>+YC>mIIg2{~uP0tJnYjjN5t
z$^a-QVJY`4z7%n|FYaJmB=-6{1UV3nLh&H$py3YJ$$Nr=g6<RE50admod?jq_zv|}
zWz=0{Q?E0fk#-RB*X6GoCO!YJKmUxz%f^CShpvqHt}YYY7#ZZ>_Xa9q%eQSj36nGc
zt|l+S+GECI1-PujDC-`VScqZcYN&=G7bEYef~*C-{v@=}j=&6wWqPOTvdJ>Ah~k0v
zK4?~0)Qdn4p!0HIf*HUI-l2Bb<MG-Y>-cI4qyDy;WP at n10m_KSIz@Nu>xVx-VRf-G
z`JlO9I8;)x2U^L=$+k(FNJ75DfdBy{R-2hNJ~4sB+qN?gtuEa<cM!`0Go*~V-m3lz
z+!J--Ip9!rPpU1FiABP3_S`wMiD$*dhY;`+sVp@$^|-UddmuL*fcDZx-h_tz*n_ny
z1r<p4p2vnoE$nsxT7V_iIIXYmWyKhugTx29JQ+(GVV8uF-L7fWjZ^0bRJR-8pw)4{
zV)DDxzKr-S7-PojIrCzvM}WW=lpoBC%VZ^ra4v=HKk5^f)#G9LH_!os!zj_I<IFuK
zInl351wKqvv9$B4ML!*~kol#^*~_8UY?qfA2W!!ewwqGqUY8~;&xfHQXBUzJ3WznW
zs!A!Vtj~Idi`RonM=54(0}tZG#cuXealoEY&>R=FnW+j}<$L4C;Wsut>gH3gU|srA
zM(RMhkE<bR8{{HFU|Afxxjo0p=@ak=EXmsV^%y=?<-mdG5<4^=D1SGEF?t;kK at j*L
zmZ;{VS_cgqibI$@SBF at -rR(yUIhsFC`*X$v=XiJym^zoMy(?jroHb7Sg*P=Foj^#7
zSnzLZ1osqO%F08b_iEcy7lW`KG3_p$L-<WtXF{>zFF#&*bQs4F=h6`GdJtm_BVy|W
zWblA$z=LpFU-$4pClxCd#J+H07 at AYx0l5A!Y{^{r3LIDhTn2mU<8b<zT#pfyL_T>U
zMPdGm54~6T2k-4~k(cd at x`}$UB5FEZIwwI{SwT+#z$?=v3B=V?&`%&qS~<nh!4Ds(
zzsUN1(=Nh&;|jak0GP~0R0+4eX!-Kak4ZM)e*0}dI+{=QHe?TNOc(dwD#@$`IRslD
z&<tSM0lg+#H=y0{K-|93?!c$`Cqt2<U5Fy@%}R%U27TYPh4wjKUcc}k{%0q7WGot`
z=zb>+5q<%$UJJjC5zs|9x8$wnKH_i|4M~OwUFm{Ur$opN4Gs((1Zr{@&ACYDj8L;d
zc4%kx{UHRwSF24bpd*H;56A~-F|mkp3;{F|*auiI1nmsOg%v1z{R6TPGQl{={g4vN
z(k}*xW7J+6L0%IGYLB;s91ZfKOMrRNjWH;=^mwSQLCAavc?<+bO<?Bo>n#E!5ep*?
zJV*?F;rj^YNVf#^-j#E>tuE^-iY at r*CsiETvY|MbD`Ze%7#~9m603Cktm+Uooedx;
zF+`4>J9+Y5406O^#BZ1h8i)9c8UAhs3 at yBC$J_jCl*!8J1kZ;B#zg at Uw8Qs1I~f#!
z(@i`E+ROGKvbH<63<tIMt?J>!hu`)5GIMC%#`Ym(0Mcc~90X0|6qfn4?4M&Y2*N4%
z1AKN0IUlgDkjFzmELfmUXAWsPEX{^>>z=%JJVS{m`CUYSL4aGMe0<njT3f}eJ+WMr
zTL3mIfo1FsxSw7T9v*H8mM6JK;LDs at w!q-g>5j2Mvr4-&;aT?0KFm{qps_v0EVe
z*nrE-mek(dOh7uXpr8u*Y;4}!=H_O%)Ccw2nU;Go7Ue9Midt_)smOy+D-z7iZJTe}
zG0%Jm#lMJ0D9a1n9{xqD6G0r$_U&3o;mP>|v*7S4 at B8rF2G`uy5PUvz_b-AaG~WzR
za*qRyO5Pz%FSH$%TM<!$6M=qC at i;xSEVSNq{2A6j2{+b^SpkF*K9|W0VM+5jp8;q;
zOtx3F#5fc*bt&K)Q`m~sAE07lU|=BgMcm=!P}p|+T2D%ZDaSW+9n)MAF=V2lp;41z
z5k?D&{7a|3y&Zm(M`bA!HwE?hEW(h$9Y^aG9GMn;h21X8UQ3AXBI=i?5%38sK`zZ~
zyN5H+w`r3SE_$rSok%J)!O_GZHm8*4CvV4KxJWK;?m`n0itf<j9|&~Ywes6YXv`y#
zWar?B$40~fC+{c;`y0+i`vymbHWa5p!=VhM6QP5Ox;o~s?bxwH0$)s55%5qPJXZ{k
z{OJRo+Vsjm;pjznO!QwP6Ri!NU!oOauiG$?5+J8g#EgrSyJa^*=!d{bk-Esr$dq7b
z`f&-~AuJpUT!I4+3aOgs_Kz2EyrK}-qb)&JV850FQapKJT+C)MuI|uj+x&SSmV`Ae
zF!S>DwTbHrzIt`Fu5P2|-a*6}3Mm`^K&G}~?b<zvRN&(ep-8ggOw%{08%|W{j*Mvv
zf<#aTi*M6Xu*l%V3BD~`R1w5tHPc;i5R2+JXFtWgx0xKb58C0XgAa+-%1ps3;n4A;
zcpp|CeA=@Vuk#LhcR_KnUw at LK;SWFjU~Uy#`WQb&J5G9VCP25VxyO}p83<Ovf>08N
zkN&Y(E3W`03(P>X9{FfMkqpj7EDjA2wNTJ}XlD_tSlT^TF+gqufbWjjAXY0Ht0AE9
zc6#c8%tyOVN~gH<imEXxTvQSzuDhL&3Uy!6C!*%_u7 at W=9iILmKxw-?9%1?tAUT-t
zy~5It{lV#+oE)dozZL>t<y*H-3J_P1hsvq<&u!unaD7k-xWs~=Xy$E at CDdTuIM3W&
zG-G6@{~>!600NA)dLA0B<(Ht5o$>zk=RlM7OCht-!oV3<34w)BBwhc at FWn&bh9%bE
z3=lMMzeLIPnH`_EoApUb2dFxUCF#v*KvDRvS!2U|(3~0fmVd5xuzr!}JQ#hzLyvGe
zvg!#CM+mY0oISCAhmrdpO%w&klTmF#NDaPu*mBCU{>Qf-jUpQkOQN2)EgOM!$na+n
zhxJKrK?pu27O}I}SxDgKVoxphtifuP{_z>8WBp>)YasncQuHsrN~U5s8WkBk+y65*
z3%}O&9;o#O05Kk𝔉Nu-1Wj&j{)N`uX>g=n4$vvyR_b`sY3zU#~(a3RFB>w+?x9
z;@6Z={${<PkHFU(^aDmXq?*6p9j9k@@56Z~CnuEO=^Ovmai3l=#$G~$-hn1;rv;K$
zCcIYXc at n9Q`1z}E&iK2(-x~g at c;?ZzE%+b504*9Nfamz6n$(zi-=CX)G=;Aotx14T
zSX9!mlSnOFI_2hri~K-&ynbd*!pxH~I9gy$WDguD2mc>9RJWI~s;Vl+ at 7d(pATlN(
zO5CpJUgx-*8v~bH5$+qQ#T5>3pxPm+FzKH at hyEF&1|idAs-{t~jcZI}<6_hW?>rj<
zegkfe21ZR^UZ_e(Wvk@!X<quwUw5m#b9kfwrekLd3%YYL(jy6EIvLavdORR(-<15-
zxq0tEnKK at zp0ha^2mtizTYDfY%vkYxT*CARCxMPD|0+f`uYPk+4E!bn(i|p9q at UUN
z)fJKbix?L~7i8*Hk)<c3IVYz)4Zm#i;Y+JQpKSgo{2}}#p at n5LE7!B%I~)KMRe7oW
za}YHiyF9wrhF|TC&oaPGbZuBq5^`fWemQ;Smw(*$eSK*0Z{Pp$)d$hvSn>5;!OtG7
z{m&pc`Zc`q?62OKe(3oHH-r8^{b~C3tL3I2ZvXbHgNUE~|K}l}2#P at m|G!*-{|_E`
znE6 at R8}ZIdh*q_;&K;Kg3QR#AC!KA^=XFlM<mq_`Ath_0X&D)et$j9Mc%bQ at Vamqm
zzw_xwjGzBA+;95FO}~C|fz4g*(V0Ndv|S#fZao|~{GKYZB3ymLfncbl>_!-6Yaz%O
zP6uU#N at d8&*#Ju(1e#DsbMmTQLIuEXA3j{5^}n$&jMG8zWztU9^C8nfl_?1QZ^2e@
zjnSweX0GC7)ER+PRFmV(getX--9C#f)I~ZVI&%p;lQ%s)tOstILbUPejhc?4ZmtAS
z9x_cE0A$v*%5<lx!TrX>#2_oNP}$A+2f(-s=0~W?%DOYdw$%e|5Jo|Y;0-{G)^_M$
zz at Jt5jrCaRnLo1U0De)}W++6}AiUmPV;9se7A;*G1KRq)yOKT7R<Kr4Vf at 3-&o7U3
z4S0%@gM&lN at 6G{5ClH{c0KV4&FlIgHv{AaSa7I=e-{9U2005ArSH3<$w*Zq*SB^h;
zuoI1t+TWksMfMN`jX)oEhWiN=$Na@?V%Hg=#z}=r$62B!Fy at O8sR88>K2^RS?V8?6
zNl8pS*5jKuHqZWi7{sAAy9*e;;Ib=}KVUFUmwzLw*8 at HEn)oK<4z~}?eW1tA&i)Sk
zD&~OIoocPvpL&4gsA1U7Izn)d+;_>w#P5z)HP+g=eRiV{Bmx0l08qoH*JRnmp~|h@
zw_NyC__JsGm(KhCu4%10vQq`w9~rrR2v5Oht{WXeRoUm(t>0azN=NbvPTUzuyOsCk
z$&6`vFl!hy+!tqw(~y|yZ;KLj=#NJINndE0uebLa$Ep2XLPBbIbU?B|lZpa;*ccon
z5^)42X46Un;?cxjDt|FB4)hZ-C><x<f~V*N5f3<E at N)7L6b+2TN=$zPy#D6!$jAai
zp$<S#<$!#TS8Bma5$a0VAL8ip3=2K(h}n!ham%+Cz+vdg2nO)M_frpY==%u(4uDJ^
z`RC{#D2290POs9=FT7Zf9wJ&^US33INLF8=nA+{%+twC^@C&O1Y5bi?0&Q`W%o73J
z7E%mUk8A;u%jx}ZwE%r~3=sPOR8J+G3RX0LM;|YUdf8B1_U}r)KaLK4+J(!~VfYU$
zN0<LfaE0Jg at GZ38i05qRTdvgAX%UQpoJT#+lT$nrz*Uxr&o!H_DrIbZs at P&cqNrnM
ziA?9P8Gn5~x;tb1u3Zaz`&NJH6=^CPAhJ$2c0q_-9wE16ue3Ck?h)2{U-SOftrNc!
z&|)h?fdCFy=Od{XHUk|8O{-IKTS>NJW)M%4^k)yWGsfrU%@|}`8&<F0g*+6A&vorS
zV`MQv6P_L26b+NZr<oQ{AMcp^<Vl at Por#EF?Ab9oRepXat(-u+q+A+;P;VYhZ$;Cg
zFF)Vn!<)S~i%#ItFhh!W>(<J|5vnC4Sw%#KdgLls*GZo5cDASCMVP at S1Z2P{y at Fht
zJnxbSOMyGpPL&^!kr#p9h~nApOBAKzKuvv>_A?l{HmIAR7zglLhVGM#OV0mtJA&KL
z^InPiPp|zgSOlbr+Fs8xahp)d4g+<$aUcif+D_y$5s~FIV~OFm^>r0e;psn3Hjpxj
z{qxV+c&Ui+ at MjHuPGD9VZ2AqNoDqmmM0vRwXVPFSP~1q}KjdH3s-kS(h(f+ZVYfHs
zJqcQwDp)tGU3{z$e1Gc;U!COT?+;_mb1gp{b{{imDk~2`ms|~SD+*JgfMvJQ$9rP*
z^llsm-qLKmE()I(mTTI!1QhMf*}8uH`5BXOx=Gcr_v-pj&&?1xntYfz7N{H(HbDEP
z-8V5l&c0%Wz`2L3&OHnP>1!J=FXK!UUc(5P;@%urU|^>Z?k-#?s*7~A+d&2?oi^pf
z3m4Ap#J}Sd;6cf<8RGZI{sE>3^k7^$4&xgK*qLrOcp$(B+QY*cP4(ajJ2DHpOYbXK
z47Hwh1l(JHzZEx<$W#ifxm65C{OixgwMiYW=Os`&1HqfnX^cXY&1{7--!6C-?}tZ~
zZb>?;A=BgL`p&JCR7b#>NY=KZv>NtXocC%U721d{plyXLFdQgjG#XA6WWQrA(Bv0s
zRFfsj5*Q7B4i_6tADaEcY~6vPC?)j>*Ml88cu|RYAtUomNPqtG=W6gEh`UWIw*xbv
zycur7Tt%?0qc%MWD`_xv4}KSzpM}EyY5NiXMRK9_29P~$6)hP||LKN%MwR2p<p}`z
zuXB<mwRkfE%P$EJfg<*@>ESufz-J>suHl{xhkiQf-4BtcQ#jBH`={S3{>!LW$-zKh
z-w+J)|9B^~qr=h4k$0+1^93G<%l=@3nwN8fjYR^oQ<^3r>9RNuc9*~o6&00oVAgY@
zXj&D6QSn8Tx`2vcfQ`tB1E3moxnW{x7>&Uk?C|11Y3O3q-9lTcF$(NSReew|3PW85
z)?9RxZ{N+LR<<I~ix+2>#_iHDd(D`(0qa}vUv5+0xEZ(>xOimJdPV?i3jQ{as^wHv
z<z6?Nu^-3aC4eru)Te;9?j?5BgC_w(N_15p(b|A7^MXqBM-1yT-GtGJ`RUW$xrBue
zN{1;!t*sJxahHGRzYb%dw^0{+VWT3;c#uQ|iQ(a4wj at 2QOl*@23e{}BwOs8;3+cG&
z*taa26EVFqX<w|&UKP}jk<h~H at rj721IdCFhki;qI0dlc1esITf|X~)Yh;+;M%;kX
z1~5ZVL_6K260drBHF?<_KYqL)twx2g39CC<myglu1VG at Ydd}&u#M_*SL|yz8IBp1c
zUZO}~4J3!zI%oE5o;7QBV~>FpQjvwesRxy*ohbc;C<JbM?KMDbBh>h|>GPlLERDG2
zeeD`&iaKyHC~&>;qA_&X1Dh|F?DVyNJrkAZU@>irpp=xgX6;%qI3uX&4k(7A5gxuf
z)m{Gp%umo}s)N&EQRVQ$+t)XOuBA!#jT^ts1kT%*e$G!quoL8zVBHW-Ww}gbY4^>V
zHS1NjqaEC<O?S;flzqv)?zDLF<jFQ`34Fz(?}oy|*VW&%FFV#r&JxS4jGM`sHf;hk
zh;cmgr$-gprxId8+;Bt~J^=x+Q+WI6nF=Igytlo at E5#XZtkOJwg(K?(qFyAb?7#fd
z^wNg2$V5ckI(vNFiRc4n*#p=2R8C*Hsjq|Z2f|q3+aOke7-?FUp^WoxTVz%qeHAMO
zuR+Wiz_?_0A1D)9i|F^SI}<hTNaNwHhO<0WP_PD+*ba}iKsz19Q!!8q(BInp(uQ>k
z9^5zg`BbxEMAV_w3UqQ6B7Q*E)sBPmxP&lT-=ow6{GKl1gQYMT1L#%}H891xm3%h@
z3`q1IZaC=UzSSn`Fw>7Kfg9n^XJ^jitD>rkmW2U`>~|n-N;XbJ7);C~G#kYr<|hR9
zn##9~Kz^KYbYj~T)SS4Z0Xu75P~&k_Bp at iw_P~Kp10(~VAfD1YGP55Hx4h)T8-b5r
zg+m7Ob-_wWlS(I8)4%@yyYT2HLvUoNm`KM~tDR^gkSEfNO1KYMYR?I4Pawy{GUYWM
z8y=>zC1hCs4oo5T9)mHoMd9ChLl5KtRL%G&7(pZ{cZ^+j?xe~-DC5MdMbK6Rv(D&w
zkLc78_ei1sv5API{zD0*W~hOg*Ng(AK7u<+9Sf<`L2ZVv#pftpXB{{9K49bY`TO at P
zp@^-`Dg&dq!vn-0O<>BvB!iG_G at S-5^Cf`Ppsam3aQ%=W*k<GT1}g4X!K;5=F7fTG
zS){@0`@3#K%oyus%<q5p9BzLX0!xKIBrF=wjbeRa;s{)i5 at 0iWox8?|2zaH}30?!T
zEX+JXzd>1^pu(X7y}d_uCk}>sqE>sqGfFJ6fWB+mXTE61m!88s3ay6)pc24-@$wR=
zgS!qGhWPhLJ}8fxoE*Q(VALr>N%^NJzgjM^sdQyzWR`6@>Q*+y7Yn`=(mSSp(ihkL
zx5lFBGlsxnPax7m;7iKjC!)1B4i}5rx)s^h)vH%w<xkb7B><YE6s?JjZCgq<I5qng
z)j_#Z95{BCNfJ1t9cU1+$ai6_RNc>?qpBupkgJLLh}#bTg^H44<v1u>uq1SJv33fw
za~bc~qt0-S7<wra0J_#*%3XuJ#IM_a>xnzn5n~8{slFyqkM<6j!qVqBzr8-6Xu57}
zGV=1iC5Arv`lWCZ-Ts{*Ai at dpVaw6Jp^VZDrA|!=Bn8$1Vunq7FmNa2>o??vQX|0L
zsk!fZzi==Pa64#SVen#16Pnlxn$?#FI3HoEZEr&Yydc8D185;kHO at h4<I&^CuqD`a
zH87eG0x`}o!Es4AocyR|%)jV_Cr<_{xX&Yy9w4{$$Ad*uql2~X^fzqy3|(wPE#MPk
zfEcF(M#r`YjrjLaN{L4*4$?;)%m~Y_%TqZD^#-Ps?w#uRsforZn~|KUBJ>y-G$P{p
zlx6Pv%1ODEHlYMV!Ons8*AQR%fRkQ1POuw1G&Y;E1ArT}*-A&C)~f|<L7=e`9SA7a
zslX^|=M1@$P8zC7ZP&BYO>0|!jjCepL{s;+nf^X(5!<sDFDj61A(vgWa%B=UMQVhn
zAnK=t011o5;_{&U#Cnx(6bIj3hmTscc=0KONE9b(4*G at T?Tk?pJ6-FFsC32_nlrwz
zC<@@^d85ErVn|of2CYkQx8Hpi1Fj8Tg`ScuH3D9 at v3!h?N<E(YV|w>Wu-$O#GEJvI
zZo!H&O{aj(g42J5ct*7};u#YpmzjUIDto=IUcC+Y<e8xmu_bA$vN5&A13>*9$M}of
zKVv1LJc!)BNLcFP++L`COZvD-Kz&MY5`0(cnGeSyI4O6!XgYRJ{{p)(*#@ry1|KXu
zEAzh}u>y=j+Hs_r at DFrF+(;Fy9qMj&cJq+W#ef<j(3p<a4&-!V&ZDV?Lz9Xi_Emtz
zV1E?=KW#$O=Lmjs4}dM~Iq-#4gTlqkw!hDxFMxGN_;U(C_(HaC8Rp`bazl}RXNaE<
zcMS^d at i;q%{;fJ4RP#}Y=md2^T}tXtW*B`oqv`JFJKp1nQ$m3)YO#a8jb at cv|9X#T
z_$C4)$TuCW2hYtKajIRO*E%FZ)GlT_l7k!G;#kABaN*1#UpKb*ys1NdYSU2`U|Y-2
z**+m(OhqSth at _&{n*{p at BDT`QhY#r>J;;Vdp)MQor~Fh-#l6?cI*Hc0RGUt9zaFDY
zFufEGAk)eapLW_hXy*U)Jwtze5x&94#vpI17Ty6m(yzb%O6RGbnGX6^2hJ0Ny&jB@
z)DuO^?D8_M!0f<bb)`%QXk`$8m1%O{F~7LD65vcIm0SM(u78hINI95gM6ZQWq}nIM
zl&Xa9BhCP)<PJiUSLtTDsH^3Z```)2mPChyJgDD%`r3^f?@G^(A+M6?=|#KqPsENv
zOq2QPEApbynESGRHEWCTU*<j(%YiBk)DDaUUvO^$l>kozI}pD83yguGB#6PyfDx0&
zRAmAaAk>c{u at X#yR!Sq9t5Z#?1^v1VJaK2>$_nc at v%cZI*yo^>RaE%DhIQ%1aEN9g
zq_9XLKxY70>Hr6|8r30W3AkO^5U<B)N5wv?@%E=m$C(JgYPekr|5ud3%?g2OhWJ^c
z^a}81m`$J^)zMsQj{T0FL*Boqa5cW!wv~HlDPz~mxkkU4ui2wo`(%l2b7wNA;JixP
zf&;VW at z4KDC*ym;vfB at KMx}Zw{INT5;l7kZS3hvg7h0u!Az(M(oQ0>F*LgG#pDw&^
zTA$<E?>F9I7^JV4 at IuxhcxjPTTbJXYRllM-b7l5vGfx!#uTR+Pc;I at 1Fe?rb-^6EP
zbO7glGXC>0bi3=q?%Tf@`AchRYW5Ee`3W_?eEExv_Y-)dFr- at tc)tl5&&tYrW9K?#
z$C9E3jGPOAE$q&nzRV<C&^*8#vXis^d01Lgvut8w!eDAvN<~FQiq2Fn>G5`SbcE*Q
zNCL%RhpE3ZIy%~x1D`sLFLT9q{60|c%G%W5c5`xaUX3&gH(CZSxxpwcD@%;#8a!+3
zBi&T$lP-ii<vWBw9AefyXz^f2-^=#qG2)JYsD at ti<vh?pb4d$!!3}C52u)8P;@Z&*
zk@~(fWdRLBRq0mex88d_9~qHy=>bzyQ&J%Xq_`MC*@YJ`UQp}mQcwHZ+J?m_-Cx2m
zkiZYaCr_R-Hf}!qlfZ?|dR^rF-5$24({yqMgHIOGLh9YSd*$Th;vtGp19E(XbX8Rs
z0ycFxtvUuRXsyU_#-{Bw*?=ZeKo&9I%?iyCE0xTN6w6UmRJ1qA1_bLZBDpI?E!Sb6
z2J40pyIcWPYJ2+LoIse4Ujfm3XbIRot?0+aegdw{t+C0e)9NdMj<|IS2 at BJB!57;q
zs;YiliLR$Yf3y at acoe4HqTBO<!9i(9$1$sbnjvsTOUI$ie;lsu>N=S^>oR$g%n<~D
zay5d<bbOGE-3%W1P<(oG(ri-4a2@{Jbz55}JG1fljwSfiqlPo~*Xv?pVqz6&_}H(%
zcHe%>pJZcW^I?wb`#JdBjc8`aj;qnTTlyX`UwM(`M?+F({_-Y$q at F9L2F<1x<K$uJ
zItNI~;UlQX<w2%njf^)2H at c88)d87rj#?|3AEI#HO?IXzu~UO{oB1jfvvc;B2?35~
zht7+D(IoVtE`eqsE#OE0fRa%|&G&8(Lz`CY)zxHu?@n8%Y4iIa#1U;;$KgwrdD!2~
z*)hDUzrWu{$Q3ZlKFM32>tsTclQ+l4#ugwPk>2{9-EuP4A)h9bZ{h*%Z7HGzPa*lR
zgarQ4u`xM+Geg4*>txp4D$Yamgl41<CSFH0>5RL`O*C((WqUvK=I>K%tgWT|BTGt4
z*$^-APapHlR{v)$mLFc&<!sUE^RM(l!e%b=V~<D%j@!<NnZDvCE(DmDKq%h!<6pa-
z(5K-^I#FCjmF4A6pvs9=I}FnCb5w4zYHohJA8NA>0N<4v`~Q1%divIy+S;}9Wh80(
z2J*gqMmcF|A_%URj5tZ6{=-HC0&XJXictA#%^xsu*DfP{--oj<v~_D9#GY`JP=wY)
z>`Gg%k+KfDlyux5Wb&xLU9shawe#h87T)4(V4b~%<?kM7fQq at M=l;|rwhpn}5}b5?
zqe&>}U9!8^%z3rAO%FvKWn6LkoTKgC-JIqosf+52Po4UnW5b{oeaQKz?;K9D&=0pQ
z9NW)qI&$PlXha0p5lziz&<(hXiZPId#K>X9;HunD at B9u%1AG}by at Ll2E?t+ekUZAi
z+grSf8oYj)$*neZbk(N+4iX(K;ZsDaVN517eB at Ae$3Y8>N80PX&H~l=eK_H?I4$b&
zO_DW}jXGT}mnO9EDQ>qveaw%fuy6&~(OztELxYZ`QQYm at t3Qr7y|v6VG%?|@3DExL
zXgFV5jMmKVq=Zi+Qk!<uxxm`8|M-`ovGIl at M;%wspFbZ93n4%;lDQN_c_c+G{+UG0
zq*p at K#P!iEdV$}z&&2U-_wU=c4|fp>)kWQjjze5U6`#)q7>G0%!~pS}n)`7&(59>#
zwQ;6EFi$T#I~&it0&fp;>~clP5q+6H;5HZ2 at 3rvLLmauwN5VKT6bwG)WcijKdsyG=
z#WfAExE*T+S(~L^d|T-P$zf4zgm)`9Y#!p7E9+#Ag95l2od&E=&`w at sht2q2CPfu%
zxM&L7`gslKS=-p;B3)S{Uq(Y=I6%k`A3>97E_xK!_!Y87se;Ethx~Q;;fM9#Pv6f~
zax*Kjhy+xUffezv|5#F9&K?vL#8rg0su2=O+3&rMMx}w2w?S2faWv!WbFQ=tk>tvR
zgamjZlbTdsg<F!^rQ;iPM+#`z>)XB&5 at tRA{5P{%vlu5U8yj~t-8jo+T`>K8?rA>2
zQV>TE;fl~r8AlK5<>268 at 75%U=;MxKErmoxr1A1}lGe&6uNg9Q<X8S5tKjtqXbMtT
zOO}mEc*}Nh&z?Q&WY`e0T|R&QJRJt<tpBH-yz1fMfxA^IbcL{8Ax&*<PSRb$laoT#
zz0p at m0;;l%qe8rc`)t47M8S3#n6$JsLnEV$q at KS56G^;VarcfRIW9J3jU_CEP5dpv
zeNkOpY^>mZ?`eQ7`V%eV+>DL6Ra>3|U<rTO*jNuFR=U`rpVDXuIsmJ7=aY;2WSSm`
zirL?iT9f#R3-D3jq~V?@-RqbbUa<QQ{m0OJ_AQK)d at wYowS|}J&5{#(@QDvz&Saox
zmXhB at hpsE`1e~k|x=*}YS+cYk0lQA-4diq#qg&9AFu3YP8!VU98cKRsPn)Z~)1I at 5
zOU%4!C+X<YVZajshdWq0PD9v8^i4}(3H0qQz+qme50TS5$7D$pDH+WqjXDpYuJS95
zpGAa)`qbr~o*wU3ls`WrrkOqnHQ)cpP-Fje9X~m^_uE0<xlDs1U_~k_)GhPLig>TP
z=p?z4#F1_ys|jQt-`i87Zk|4E<YyQ(JEhPE^}o0m3sA%IjCIFq=<xiem5Yv=9~;-+
zoPK7F>1TFRj!8=T9pL(FTpkM?oLnrwoPSbG3{7~19fX*t`wh&)q|@u82ty!}QOjC1
z4V7ugP5MehLxZ828JwdYShvZj8&97C1btTvTaF`)x4`ff){?#ahi)&nEm~;$?moC+
zi`Kzm2!nC_wR<%V-9r3zej^u**(5<<TwZcg7(pR`%j<Ug<X0>1_G=p)k_8l!uyDy>
zR&E3RT&9mkg2K7<UcmCv0APf(bO at hapZ}GImHrbUvox+P8W5y#ayfRm+zTH8sf-*6
z`B&&|La;pzria1z_t$^>d;%z`xd0zvxT;XkwzjkL6Pk)Wl+AZKt349Wj=?1kd)G6L
zmh+~?IKin++u(wkI`+H`RO+E=gE(!e>FG=AGe&kVTeb`_#Xf{IPoGM+a50XmZ5TWf
zU0!+UanOJF&Aqau<X7+{5YU9edc92u{h!|BH<wf7Mpb9d%qQ2Q7Cvn<Xu0phKFInf
zBqn-5#!CPv4&Y%P^p=hwqG3F)y|H=L4#A%G_WV^cw(j+$A-rWjd19%V=w?wUPESou
z4OSonJr>Pq=ig|Q6B)T4 at X;dpV^loegkBQhqusk2cKBg7lPP{~T{W-m{ahCT*7bd_
z2 at OsRFu(clDQZTb=K+{9D|`e2`4d#N*J3ANjFDYL&`wB49uFum{pzLW#e5D=DO5u=
z?IW}UWDFWw31>{ku)MO8b^V_mihpK$ZpMnsOy7MTCZsFK3xz82NP${sZEJfS(mNw<
zG$0%g at I`>ikoMcG_q~gLJmS4JT8(-0 at B6Z#DT8F!sYydq(<`_OK$I-NH}G!N{osD+
zi8q%V#ftN{)`jTLW+;6xlCcjV=)7$wSVDdJdEC2c6&{4xgOL^nBM4jg=I<Tj$4XLO
z{*;MC4t@}qu>=7>Jc$87h at Da&*4V`)y*@8K9jvAdC$LC2+qnN<WOxjor!!9U-yoN(
z^W8i69>j`OC|1badG+d*1!U!<a1u$DRR<A<AEH#o?~zrJAHOg|jRh2<xh;8BS-FJ9
z?;)HSZWzj0f_Z6&W%`7Lg*PKW!Ck=7f*yD{?H|uxn2}r&e^34Cc-LSi-gWQj?!GcO
zIM^m~w--g&@DUs=*6zWTL06EJx#`Ux6dwGa+jrcg+o<x`vu^G^fgu>VjJzp>^2
zu=ghZSa<8&uqI6!gb*Sb3Yk)dLc?W>gvgN0ibTfDLz>J=X%HzyNRlDSkYsGoRZ at l`
zb0H~1=J#0F)&1N1e%|MO{(<-D^V$2}_s;OW)_1LS9_Mi$=W!m>MjQo=6^UlgSlrwU
zXDnY`Kh4W2TF5?EM3#MT#mR2+PszIf0;_R1Z+2q83%(|9`H<(cVmm`G!U0Eb32bKu
z#+xgCFe at r5E{LKBktX`52+}3R2{KRuh%g5pzH%Pl^)-Hz$uMGY^K>mT6+@@Uyd?}4
z*G0w at 9vFS~70CU2qtlnt;tGa~{*$X%0k;UA>>)F_HsV_N*A955!%5OX>$|hVoz8{>
z9y!YGs5}P^(2wS`B?Z7?1WzFzBJ-uTwVA*3qhktSe==;4gatlPd>&pJ<bL|(2_tuA
zR at Uo(0p*R_beM^&CI>J#rZ;g*KJ*)}hnqi^7BDTH$8e9eGOQK3!YkSpkxhq2YV<>;
z8gxu^5OcE(PoN1hr712h?mA59397*;5jas?B|9qiDB4GK4GcW0%0{*}Z!Z+3B|(2T
zMUdrxk{CFxISza&0Zu0y1FqcUSYw8vDZEH&M?w$~h4^A7=pN^F<Z2CPn`9%29N%Ai
z9Z4;;Oi2g8MnDZX3q<P+bQ@{L5ko{2XoRstiD@;GZ31}!H46$(>9e<ne;z`X at vm!d
zm&y*84hk9df}8vP;m6_-i<rEdM$0-mrbsB!X|8hQ$Pp4VB~2B}UMV*JliU6Cv6i{P
z5}ClRt5>g*3j=TAnv62g5(zn2p#K6I3>(XTzicI;+c;-W*}v9T<QWJIlGYNu(po6>
z<mpq*xWH~vb57zE4$y-J(r6GeB>GvTcn92=!l%Pd;3bKX;5rjp5Z3t%1^6~X?iJS4
z(*rb#tT7pdzmy3;Pl8=ub|XV}X<)sG1jH22s at yp>J3A|fLRV1d##q`j>93_{1~giS
zoI(V2yr(3Pp|l@^I{-QfwrpS6Z-dqeqNW(#m_iOgdxl*?bU1SRm4bo-2__g;MlACG
zrpy0tRw#&?fp5pBk%B=i(>o?b+AseHmP*!uc0yR(f@{<Ypk(-F+jMHm1bzQCf)|na
zo7x0zdXipZ^vyR#<WzRDtuHC{>GS{n91H0w(rjz$*#9XSwQC(~X;(7&^e-f7mioVo
zMj&3irdrz87nzD9(5xLD9VOeA;h1dm@*gOBtaH|)9h*mgX%9g;^n()^iu50xkIJ!Q
z$25MEnY?6s#Ry1YunHN<Kz7+P&8 at iV=2Zg&U)mjWV&~j8e-Dp*`d(3|pGC755IuCj
zk0$*85S&(9S9u*?$q-bhJ7B&>WOSAMg<QPt#NiphtmKRgkz^UHP|$&Q<hHyW0yB%9
zSW}XW2Vi2Y>VX3XG=3YJx~Sk_;&rd%;$pJ_)-ysHy&y`lY(z0ean3A!hVUancm96J
zxy1j at d;XhSu|f%ziV7Y<B9euyt+cazJBEI}=`^7J&<Xc8SHGUEiM0y*jOjEBIS8mD
zrZi#K7h(!M$se~oZe5d&5j=!VWT;Csy7M$Qck3B}y+h<Mw6yqE<zTl&&^{A09hS0^
z$#<0iFIH&H8$P|tkIxK2+=j>g?a1h8C7M+TS}h$f8LC95;-Pnb`}glB1LAOl;LO3h
zeKQFV9P5(3&-ms{<<Vd2UD^hD#yLC8J16B-GTMmK<4&OvYUP5`$eoCT2{-=(fna|}
z=K5s(f5kwCz1g3tTxlDX?=QDYp}au3uXEMh&s79LDRp`sJox^hSYaaWJeX*4;{vC)
zw$g^7YWyZlAF6j0;CuM&!t_p$?4n%-C!Ccp(|3&~?Wu!4p~LmQX^}Karc&*#WI7kL
z%i%!CHW%;9z=k1&cxxi}#I+#@>$m^H-v3Uy81$p8&iw%8$`r#?Vl|#lTZ|@p3c=A`
z3Lsp~J2%X$1|o?18wZbo`9IGVD at nenHH-TT(h<l|If(+R94iwD=lDv3%<z7J)vb{2
z(autAE#vrB8p*M%fPST at ro#uPig$*}TZyue*+>o<AFIOFnust9o4maMEdK-E|F?u7
zgNV7m|4fiI{h~Vb_ov=LwoTF_{NvilAJl1IfFmcf!ECipo%&Zcw-y|^;A>eK844l;
za!7EyBqL|w2>4%D+v3VZTHs{bA8-iV2p<yOsesFb=1LgyJH~l=MZ^C<{tjW~360v{
zbjVM<`2QyyTl^6{)c0dx;1yr(+k-UDr;dKoB=- at T1zpPP+9n$xn>G4jdt78~-9f)^
z$pmJ+*?*Bp|B#ED=P_7x-OJAA{d+&vgweLhvrRwA90qLqx!Iw)fToXs<Jc;nrsV%2
z9{&@wk$YDk#;*n^l7k9VAsVU|Zv!b1;f{L{;hzo5RFAu0!03GF`8U|gi at AxNGouE%
zEsoK7s|e?|i8r1dXLzSAsISl7g&!k at a5m62_`JD690wqEvcL-^4$%WBqx~y`KwHv$
z+_v#&a5db^%-mt^Fa?(!X)PJ|u+M3268JTIhv~<EV*|isCmAV7u8lLNUZ<v}UOVDE
z^!<AnUNo|8vOAM*t}(CqSIA#6DddgU`Wo)yt}q~I_}E`zkP|!w*Fb4n(zKI)rYsgt
zj%Ek)08T=L|8jSU6Tk>=^=kB!o4xB?g(?Rw7s7?)=jV5A`9-{@339|bqd at lpkknlJ
z1nQzHq}T$Pz)b5n_KIN181Dnx*1Y|TenUn`l8s(G<Ub^8(jaGeVHIx_#y#+X3=3?m
z9%w65#>OIO|8L?t!kz8cEou$Y4n&11rd8-3IpY5yXC9!v?)?V;kv=M!mAh4at9zJZ
z2A!Ti@%N>yM(hexp8KsFO_s~n{}z^O9!+ng0;V6Qc5rZz3XSW#ZT~AL_Q66G>JT%6
zxfXLn30 at N-@t0kQr6Wj-g)mbzBo`2db0)^l6cJS3Z$9TU(3~%du=rot)`O(ZNE9*s
zs`!UTw&+3Vj at s|awJ?rfq8CO)qUqaK@*}Q6EQ at a^?A!MK@&n@#**1~T7K#FRtc>A*
z at n?iZ_3n<f-G^qeD;Y-VPmLygQ at m#tQOi(*w^5=lX-?*&_qSPm`u^ibRM})^Ss0mH
zUXwU=_i9UZBo{kjLy1c}GC(qK#a0`ixR`s{kGYp)r||7HxBfmAar~+#`Er`_jD4dn
z<8?{PJ+BgW$l|@jib6C5*`cH)z|OpCpv}15F?Zf0;{w%rjQjT#8DC*@fOcbBTsH>h
zFYZ+w3PnO|%hN4Ss&GVAO2`;Uf_2es?;(Kjy)fD3%oNBhr0_!#^xN$s9YzINCZ(kb
zD~%V`R~}RPeWMTLxq>#SXpynJ*th8Ru!hprSPjXqSt`}YS)$-h=_esyJcWfFeN!+k
zAe1tpvIBlyPPD;e5ZiS>pr1DiSOCc-VQf#s*`BGzSS<>mC9r(HAB<@Q*!FXfehPjW
zNtHFwFH+?1fQfoI`e$YO(Kz;uZ_}XxC7>ckjq_2ob<-E31;L<YAKt%bNt|p*vw|@|
z4itX(J6S!@xqg(i`fw}+BlIQ68Un03T#NE>?+>!B3?RzTXK(2-=-w{$N7F_}VfnxH
z_4mJ2cw>z0)t3JKm0_PNm$h%K1?X4|K7|yg2IwDD|2jEU<Z&wz9j|*_Vb4dJgj1^4
zh}w0Kn+!1WylPdSe~2$F`W3^5Ql+fYX!-#{a(BRp`i;UH&BoT&cn{=o?cB(|RU91$
zImtJcd}188QXw_de->9ih!9UGoOQfUoOK5zvE at k<00uEu!xu4@|9*UpT{I|~-m9c@
zgC4M?$C7zxHa&o_0q$J~8+FaDg7^KDd+Y%HF-N9d$00RH%FGl^mgzP;v3KUT<}7V}
zXrGp$Mm;bvkoe_GdH!g%JhFNS#4$dnEon}YQ>(1|ywN-SFB|&LFMJ3t1UffeKO|hy
zfHwC#<8yH{+~0^F+k4Nb=;^1czb`$f(}90iW$yr)f+|}&965|Tp09t?nI33)LTDSA
z{G!FlS?#maD}Ep=4*ws_R{s}8 at FRc>V+^qr88L^qi50y~&g7mu7d<eIww;?*v{1Qh
zp;FAwvSRarSy~AqjfO)c7p~-%TMbk`+aWQ_kB*~9Q3u!lvz~9tG0{!7{ge9V_5koX
zP|*D0tPcCEj87psLSNgu`z0lc0Yl>f61Y=yqx24e`{mYIjo)xS+KTIy+Ht%?|G!i-
zy;<zG7K(_Sn&y*w(<FB8gwv~W_2#D}X#galy^?F`M&(mbe{%|KR;DL6rUv+gGrg{-
zaiS}62~L*R5!Ol43QQ6Oz-i~ym?rAelxYlaYnq!agHgZf$&*7t))F#@HNN-vcfu$1
z6;5BpC-%~x=K#?AIV!$L1Pq50zwbt=AWH%_6n5-LPEGA8%Ery0iZy7YG9JOJk5}?n
z at bUFcoPxX5iG~j!Y<X6293}SUe+G^z-z4kHp<5N-zX)%ogN!z1+(_;uh6+<8Euhkl
z at +=6l9KgT;V>J$D?OQv){pMl_+VB%3jSV?qs`20NlaKPxpIv8Zhx?y at WwX*M5;p}Y
z_dt{WRU3EVk!btgy5Syj{_n at 1Ml&$HQ8{_?WFvYwEMACemd`|<^t0ZH=Kk(NlC)r*
z_Dm19%{uxGSo6MAsJb`&z_Ubjw%dGGklZX4jnM%k$)wivC<+g>@z%Eg?!VPvNY4rX
zK9ET8zaQ^k4S+#m|7r={rSe}IaooE6f0<MIkJ4eL at 1Vaw_}&uw?eO<s|L?E;yAb#X
z+y7nUe-`8aZ(EAvvIqU6zc~VifgACE5${%vN&txGN}|yJ>MlJ at F>uVA?NpxKc(nf3
zOmK7&rYLqINBO>55J*Kt#naOhQdePOA4X^twAaWH80R5|K%MlTgQyyUM#vYKYsNxK
zd1%k&2h8SygP0cdQi;QbM71J#&2$anbYaP_jM=m6p at 4t2X&dmw91VsAG2baGQzn&V
z<g&I!0YrL~ppY*{6WpstlZ+J6cHb?otw*)uQDv}If1&P-9M;asDGFqlC=t1UTb598
z!_+}J6eY=EMk at 4Hyc0EQq&Q2;a%5f#sq*i=2<G2{k9I|!&xajeC9=cXKL~})Fr~Hi
zy+sK8(y7lwR|hAtTF+|o0eQ*XRFpahXJFpAjpz-?49dmwoEystSp3tcro0Z~M!B?p
zd}uXaUtd(Hs)dz?L;t*2o_YW0g|HGcXq_`)N`bP|-zbpRP;5#RUG=@4aNiJdC?Yp#
zyQ$dW0<qaq^SM#mYb|%Kw_!>vA+Ee&LgfFZd#o4J5cSE(be9hXhLvO><~_1TUQ)D+
zkm)c|AyniONPuAo$|YvY9b_DJqZEf_>95%A7bFZ4Kx3TPi`r8J=1s{X{BP|O^dVnQ
zqvS0<{i@$c;zq0!%8JHn7H21*&t6Yf693L3_!^~)Y6HU~Y}gYL6Y{*6n(jpuVSo_g
z-fMAX>;HWgLRu5%gJ2$p_WSVrT#u^4YX!!QSdHP(LJY<<8*u?&7Cl}zH#7WsC_okj
zs1>^FNHLl$uQfcXT+mPSCwp!(+wS=Bu(FApWuYL#OZ&D#;=DF8GIAJ`XI4~Y;Wxy8
zxQ?J0!H9P#1^VT_HF9M+7|6RofL2K+aASm=&Q1)jBpjCZ$DN>)YFn~FT)*~}W!P2Z
z- at BtNlw_Dh@)U|)Tt2=Y&?YH2*KNsrDbs00K3l)9%gw#YtBER3=}-BpD#8x1A91G|
z^U5OAD4hJB*$IE8C_;;qEk%-fB#GvsiSUj%mOx|=#iLm#BMJM#_2uXJYyKpQmUzMF
z86-UkqjFw?`5PJ=t3bc at c)@z{QPe^P$qtfJk#Qwe<mo<@1qN~(Ufpr}A1weHM&nD#
zZawO+$?$CT at Rt<~lKM#5J1!?q+f2i=A`%WhW$nH!gmo|*SqCb6Z+zT7S9rHo_hL)~
zyWcBVjSqXFkk<J-ac+9~)s}EhfEJRAfY$EBU%HSdIOdO9g0D49(XWy_#1<@xj!@a`
zXm;n3As<8h-423f at DsfSG+f_ssQ?u)$a#Kw3Nob73%w^D<Q>-g1i%H9_F)L70!gCW
z+v{-RL<Abas?ZZzKY1NO-D)-ENvazucm`SFnyIsa_<VuV>d)v5JMsC+wq)8Jw(})k
z8w1l~yzXH_E#40dk;mAFLO8;7lptNbtwi|BPQnagF!JF2=!q)XQs#4eEOip0(<52v
z?Gx(*r-x&r$o7<UFZNu(@XYxq#)2tfAo-=FUYHQCBm77!riI%2&Jy59Fi`*fUghbp
ztJH8gHep^A14jaR#FX6J+`eH*KUcVbG-Y78RZpHy{|T8{Oy+Or-kL)JXe~@&J(}G7
z`VY5-!5fra at iDU9KQLD|9>als*7u)|ZJpgfkDW-m+l(J4XG2`%RMdTSLoMMI|BxT_
z;X|dUP~uc;FES7Z^+))P$rWV#lRwTs$n``dY-T^DFbueR^<BJ-H<fKOpW7;7ovT06
ziX-1Sgbi^)rXEvjc!uC{)|ogrk+?YCm&{@!jKOqM;!M-UqX-15;&e0@#B2dTPqe1w
zY#}E>(px%mSAtE^5OkF17w=>7_^-Y3-vedyvoQr5<T^M|GORoBmvG=3&@+2)0p)Ud
zhs{mt(w-Fm#Z(0Chws?HW*;ZG3%I~WZlz1ooJXzTwHMV&V>wB^Bq+4Oto4E%kgB8}
zJ&PpYtsipIuaoPTq9?}Quds|cjjxWbT*PjwGt&C8bS!^^HdZ5oeizYx8Jh*j=^W^!
zl6sv0T)kc%{v!P%^o_ouA^VVby>Hm9sd`vCLR-ewybCWQ<gf4y->WmP6f=KRfuX5x
z#wSk(HcsJza&P5U;>PA+`VR!<?Em&H6jKXx`-(_TM#l4P(AIBtfMk)B->7b6J~*Vg
zb|Iusc;i31Lr55_FfxJ{!(!a2ZoHFkFPxWqy?jT at +HvS%P?4NjO>C4@*ZmKs4vIjX
zKD}=kwS>ZNsW-`2YsLr=J?Tg*H0T$IkC5a)YD_%84RVetV`?W+$s!o9a*1O<ginp;
z4{;wSQg_F7yFnX?bi{x8b#USi3B&eH=_>-Cg73L at 6a@yA=tKn%5u|OjUox#c_G5=g
zSpUfde{$VdFJh~lziwNjoz>8y;IL1cR*_+<)E8gYypvhCO=@iInW`|Wh_I?Ji!fL!
zyd)_^{ouUKzh}#-#j~dv*{?r(s+8y^CpEs~)y~`w=kYh6ci3pll_!M!`;YowXr@$r
ze4f}5DTzp$lollFmiG3WO~8X*ud}Cpbxk~aM9>=W-+wNh$7bBnYzDIHim0J>x6FAL
z$bevvMRCx}q_WVyl=Jz%eg=vw<n_DIl6PyT_phG*(Yfl%%JSOUr6?hNm~wS-IgMT1
zIJ{p~Rh97;{QVpIr at LxdC~9hD-U&xcP1`#<f<dyEO}N3b%)-GT)5Fi_0GdKJC at 4(6
z{)kA&%)=82jTJv4y0eFe|8Il)MpA`Oo+Lqd_x78+iJCA!XHNF*D0G;ZmId&jTumMY
ztsxgLUSxpYMh?j)Hq|DhhkWq~315+{M=Q^A96IFZu!lmaIz6)pO?&g at Rz6^jdY>UI
zCB=;Kg&|>K&jFvlOgBA$KHtg7$=TC0 at OK-~kj8^&(@IZ0`q$!nz7(^Egop37vf}6F
z=5FumT8M!Ltef=~q90%{#+6%GTPJ(iNW18<v;t%qXvb_Nig~yajx@{veMi57bJc6Q
za6 at yUDEb^-3 at +`@<_QQ2c6;$|- at e`MT?%P)Sj5ZA>xZzuOkkTMW;8y3aOCMjIQl}P
zx*F!KHN#2+0|Rf7&wKg!JO at 1mzNGtgpq|$8<03G7eh6<`l*M`QjdjCH%hrl5LH3#l
z5CDIJJ?PA4Q{ShDkAjt4Wcu{f3UuUGKp^HaHRdQMCwCk3eE<BcSoO8L`yA1%ppC+$
zT5w}kX|OAr{+wa_hEn$$ROMgbQ#r%HpL?7IOQC}RE at StWVZ}O`T at XgKx3}NcIliXC
zL7cf{=#x1geqB&!`@VL$tS7LM4aW0+g^aQsEn-ZwN}{5oV6quOlB%E!UkBa|iw>?M
zoiQkYuY{_%62ECR7nj4&ah#@PINV`s2q#)#&O&eRx_fb5&cGpO*`s8kVQxRtY;9$=
znulivXp0qkwC#E+{r%ElzAoFv=&SU(d;rZnQ8?c{o3F2f&9MutJi$0FfctDsr{)GY
zu`a_QR>M-U7Ug(jf+e at 259_M+J9nY^Xkcn_5E#me&!2hB%*;0F+z#Tet|9J$meBZv
zPG*NUjQG?n;_TPK!4-Ig7~k=ugvaj-MEdYEJr7TY4%|AAhLka?+ztbvVT5rWUJTFM
zW48bh2cfi{1dATLfpY^zFJRX)AMIh!aTqS$xMBZx9Lu5YZX1jS!DNV_T-9W*Yp3lc
z8fTPKWbEHja=G_~L`JGOJ4?b3BMOhz{hjd&D>P^gxH3sm3Ag%wpP)H72FSVfFrl^n
zBJ`wb{?IEhVfC(VHf~&|jjK*|*DeP9l4C!|^G`Ibfh1!^adEND%RQ-){)=o=($YGC
z7M3hsx?5d+Nffs{e}Dd1J_=<?AmuPmdI=iVHcricc;WEC9&R`+r19_L7xb9{C7GO|
z)OpX$i-iHJjg3v0kFr9-O3ZEE1MV2x?QU~jU@%{?xA`2rGj^6_KQ1Ux4P7Is1Mfin
z2d2hVS8VQoGGFZpRiEro;BVI>=o1P8sR%cQvrx*_U6<5!cb9=RGvp5oiv1>}4@`;Z
z+-87DgDorXqaFT}GH7nP*!xj=2SDdpND%m^8rM`iX?={~+$xEIB9EIP2n at y?WV<Uh
zerGRSNQR5o$$YqlE{0IHVbdj-4!Oc<Iqj)}*6Ao>-Bmu$Hq=^l1}$_%Xjh2dIJ2Zu
zT`=T$`o#c}YUpmVZA#1Wnf at b%wCc?5+kDubss%G^Mf8br*b7Wx`-$13y?>_AQ7GEX
zn~qupT-?RfDALl{jm|DE%vr?I`_j09YiLxIDiSk_1M({sXps!GQ|_aH?d9cF{Gq3}
z_d-w*gX4VKX1^i2A=<3e4>lbAnJ9*Nf6nSa=l at yUent{c^~@C#v^n5;aKBgb*c<M0
zC;{``HtFBH=!{cfT)!a=>F5?RZ!F)9k&ldXSi;1_ieoRM=(%mMDOc?tx~Ma<-SAe<
zB04TdZ&K4yGBBWRvXq!RPnx9My}J|<S9dgD=Qr`Zd=5htHvbhLE at BjvR=k{UO`>v{
zNcK%MLAUq!i?){d8ulNo&w(58GCWwpM=J~?d(@@iJ9Zy!eSGCqs?-5*7|S}v1WE|-
zj<I!l!jHfb$SU~p<Hr{z%#{qx55vIV4sMR;IJEfzoUZ3Sn!ab_<`(mL1N--P3UT+z
zM24EO&)5b_SMe(8?+iqLxDKqbn|}AZD_CMOby%<P;KMRLaTr6vJ~xZMcc{Btka!GT
z^}y{0^U5;=^5JZvLO70l3ecZ$>y|h%VUA6##_2uo8ny51r^s(NF#_d_w}kN{O25%j
zVpZsq?TEW9FUnR%Zl$<#)caCmJY|Qg_Q9Jin>O_&OhrdVvSDt|W~0N0MaR~)G&e89
zjJMUW3efkeY=C3cMoVmvU{ql`lr!PWBwt$X)ANdx>TiIfaD)A<49<Z at Z6dKZ&+05W
zh$mIat;d+ke!EA@;YPgU0QwiRtm!)<Vf<9^)ZEII8Ke1_aAN!mbJoot=H=-tmK{1H
zgx<?NAicLu?C_m2K+v}Y%883FGeIdx1l!AQ6144(<zzI~&p*S~C4MjuXH5_|MZ7x9
zE+f|4Px{;&-iC5%rJ3?wtoc638B29Q&hIzdfj%%xl=q$^{ml>9%;ehlc0-f-nPTmN
zVvqi-1DEZVv2Nl6#@Ul<7^$^rYS}LhO-&YfS&A~PlTqKKn{+lc`&+*Re!V67LiV5)
zzEL8&-0Sr=$DxXa<7j*mog8XJ at o(6T19Oa$dQp3sS6P3$p>lT5*p+~}rxxY&ja`KV
z1U4xwCH^6gx?ZKDT9z^9X6MAxDu2p)Qm*`ne0;ljRA>9IPPwc?<+<stAA3h0Ed2rV
z_B}Yg2ELI<%s0jF at YKF*sBMfh`5Ydm3&B`?2t0%o_1MqF(sJc9Gr1VUKrM4anv<2x
z`2tTQQzoxH-LudWQIDVB!>C=6IHK;4@`Ycx at t7Mtd@9!;j8DK#%a2Ww-+83iiy7 at O
z7cN{_4CjLT%`SHz!Jl#|<js50;GJsRbqYpIc_-V}V;Tbmvzk(k(P)caD}DHd&qKrY
z$qyhhR_tCqQre4~Ijo!d-Q<o?(F4unQ;<;T!r+vNYdaI#+o%HQpcO&rIENlDE8NrS
zaFi9ea0lK3DIRBK;m-iclMR6#5Nh7MKc%gug?my0rA6zX8v|?IbF%pofhxa3oOAZ(
zO)iYOI*ogWf?2UV%NZ`l!~~=0orK0@)yv<Gc)b?1_Ux)*RvG7oKXTvfyzZ&**gE>|
zb1Cb`*qO*8sEkW|ENg<IR&?@<W at g*h)X6Wc9L at vhLzpUEoNb-s4>hCr%BJm at pWjY6
z1w`S3*@(``u^G+KhzK(K_#v*`4^io7kp?Hja}{~RcG!*>D9 at r9NcZkOHncAtygXHG
z(~8wnX(1-pt}(5fF$LYu7tQ>28gvM3YGlu|OB6t)u`Bf`Qg+*xXzer>o-X}&n7Bfa
zq(M}^(`SVd<W}foe?=WPHZr=6+hmhjvD`9taVB<lc2;py4sC61buFzI*y+q%T;T+`
zDk!W&^sb}wy#pWDj&uiShzByf+Hdxp3E(wu!=}z_cDks%&DzrPH2mF@)i3d%EDeLI
zoL?pE*_$^jalPVaQugebkJjR0M74P3Kqa-nYxw{BK4h{(1%C#0`)BAtblr0^hUGJ{
z`2SQIse+K27j<zX>{Nmi6M13KaHDg`!_)Huf~Dz^Bf9?q(wM-p%iVqCusNJ)_aax=
zJ+&X70ihxU&u4*)0Edtgm788}6mU!8$dj`GtD;KwClJjF{in7QH|FLcaXof&a<#Qp
z;VWh{mGHf%XRK%2sZ*y^ae}^fb)AKch=7m~|K`n0@!W;pzlGqa91W+HGh<J28xhQi
zxtg0`b|q#U``kgC6GQ3hHa`h0`Z9Gi4gXUPK2ugx<3E4uoM at wMo!+lsPs8U)v;be?
zi|&F84|8(Lah7bF+UAbGO9|zl^1p`nWAAF}W+65sE_kE)(~3({e}lJ^>s%BN2{&4=
zqY+9u^GeR0TZAQFCMzpjSX6We1ALv`+|B at 3oj4(8Wo=Ee5Gb1XgoJt$rZhD)%F%@X
z^XJ#Sh-FgQX~`M*91-ibEhA(db-W4EMrfYM&VYB$SdZwIEi0mVm8)n;1(x_JV~McW
zaK|Ea(1v5vb^-yP4iDFKIuQOUqG91UF}jKu at Pw0rK(kZdCkZ-sy;UqeZ|+yOW=XXK
z8Q)s3`BHQcdZ6dnowvVR_bSazyKR6CbAj6**pjL69!zhzhLH6T4f0LDG&K$!U`Gqu
zF=ugL>^qpO@?5sfZzE)E`$M9m>#4)Ym(Bu;EFrdOI{4}3fWPh5Q<Ia+h#_Oin!1}X
zGqk|_d0PaXvVI?gFRNKu1zuED_53k{z4LQu`p*GAE`cHJn%2*sR|F)WTU&y-agcGR
zcK%40mlZ1*!#0Cpv<#mto!|X1H(!IU{M1kV!jJp<`nYHOyIx*9fWFl;<V1hPhm%)0
zgpqm=aqR9uBE9DlzY3GmQ35(h_w>lJE at GE$Gs6knIK8MS*ydeKRx1NlZr1lPJ5dsb
z^IxHpCPC*MqT^S<vF8ZL=a4s)xbc#4SHukAt>``z3-jFpxIT+YS6(6C+*Vfh(580H
zSGXw32l#K at x|MX(FM}N!3rvjoKQ%X({=Sa9{^hX8k>$lbaSz~3P5s^fA at f=z)duq+
zEQ|wH%>!e_jP<a|Q#&Sj6 at 3Iq27Sqm11=^V6B@<?5?!X~n17pLAgVG;o2)_3{|RIE
zEhYkh0WWXmBKLU?HIwbj8!R}zYXG}hy=UgeGa(9!i%-^*L(n3#pgg~j0j>&Hjfv^P
z7l#&j=x14{|BYjoWU=AV-~D}(mz8y-u at n+LF|6=VLR;GVZwpc9u*9ce94|xia}F8D
zG6;fK!&c4ytrW4if1#Ngf^O2Kc(by9 at +A)4zb=U)fhCq<51zfe8i$w}VvP-mP#Vri
zHTsMYRM#Q^ZFy3LQbkC>0sQoCAN!h`kkL?vCB*crk;=4&gJV-%8C3EnYL|~7gnjXz
zoS3lZ2`6`O%|PG64JS2&kV#jRmw(MFfEg5-ujJj7C4wz`4xzCVeWhNLBk6tHku$IH
zr?`Otqk;(aTweh>u;9KcyGXufJnuWM(IqQZR6^FrWK#4UZ<4H#+0)3#74W~CpP-#)
z=;rQz7R6|IvWFwJuZ=lehg|S2jG>_F8c%2;-JSsf0UYQGZ*6V0dAXX6?Hq2KjeLC1
zZddQve!O7`tQt0%<lQ^LdF3iX9$K*UhNx+CFCn0VT6!;1EL|il)Wqo4H4EnfTmeD9
zz!AK3{rdI6F(ml+^zJSLDi}FVn%}WEZC{R+E!_PK3BEHXX at MWvh&hwDhgwSgcfdwr
zv>Ef@(!X^s^ibdlW8EB#dnE~I7wD})OjDaeq1=XofiX+_J;anuyh_~b*ROw=pa1%I
z4z{lg5F)y#S#cr*d&73)N;Z1pzS(DN;6|^tD8Z;pR;^Nlk79WyFPanfjMNIlZsIwp
zwUIYNFmkKLA<D6=U_29r8KTw at 0?Lx<5(OV`H8kj>X+Yxoc1M$fUTKV7i&(GNeB1i6
zi?#V~PC&^DBveez1(=qEM0OEIF@%9{yN!$Q(a})+SR}wwfQ$H~nofqOGhyx_=ZuIU
zP88Dl?RP-)`V1nvKgTZErk)ay4y_JoUcCPN+yLWz%*qVLF6(nV24y>@8a;!#qpSJf
z9Fm%TQ20|*(`L at 8NX*5U2KXt2^H<l@<j2|R-v_84WJp6R?y+Z8Rg8G2Y6w{5EZ*h6
zyzG;CO$i(UF^Z at Y&*wGqOAtz|TZ5O^kZ_C)eNSHM`)}=_`4Cy|;4z!blwCWKBY!IK
zmHp9H77dS0sw3W44ycz}|H8t;+i(qe`1mo2xv+$Y1UtT~F<#yS5EU=29i=hGXk~Sr
zrQMi#Vdjejl6n1lq~cs$QJ=3DpcG^QPU2+#7UM??kruq&bZLUTEKqoD$NO=yJvh|5
zU4?tGA!D_ at o9gO?C at F9eTt34?06sPC0qjP|L|BGL4=&?s-(PURLtHm$Aw0Z7pz2S8
zywAI?7*>ub9J1kZk7<!pP#}vOH(M(60*>KiRdxnU%e4%;EAU{z%4v*3A<@ITbR}k1
z5a0Ui(zeSWwzx4^fUcS)%a-lI9HF-3%D!V_xJl9<`xE|i=*Z=7Q%G>ps>@n3hJ4W)
z(O{iG-3>&X+gL-N!BlBa0pUG+_m1A0?)`TXn_2wkqU;B@))o2QzmHN6tV1So^F_v`
zIgAE5p49srW(amX`wKCYRtJ(u&j&|!FtOSafaB4FX+h!w`5ZJ2LAmSlo<GM2Vtu{w
z8koX65OOx%ipDe)a;JU8Tgb4%Y!eoQCLtpelb+*(EY>DPJ#+nN1+n{rwqJXm*Inp-
zpx*vqk8#3$XV0G(i4%k;(;v(eV)6+-j}8Rm`&Ob$f`7tVChS)7hRmhr7)wC-v$hEz
zAjKtcms|rQhO3=^U%!6c1F}YN{K!3>4Y?Cfy%ND+#$zqik3N3%XwA- at JI|tAw+xO|
z88Gn=XMvyGmBCTcYLn5e%aUEx>}!6=ncWSJUbST{;OiWCBtC-im+&?N8P}k&zBXiL
zkvBftQf#J|+sCg<S?5J<CKG;|W=loPiVMm0l4ULO9V?U6YldKtWMxIvXO6`W+8 at M^
zdoS{gIwN|fGw;_F&bG?dGPCj-9H7A72 at E)Zr^?bt$8PTMbSgOTdNZ7Bbd_xdF!TTn
z*s~qxWjMDY1<ip-&>kYW at Kj=}Z*Dfhbd-R8-=g5Dsbfg8lLC8Di%vr%;BOrA^3Rf#
zHKo&`>O8;16Ku{CE*@a-TYlQzyW~A$o0Q-Z?*K)dl#jF`BfiHG6z$Kku__=Z!N)ld
zA3lSsm3$^9PU(e6e-FwWEcKg^bnnwKE%oE1?RwG3&n3R>VCo8e#~&o!`1Ktd13%%-
zsr(Qyn;i%-=>5y-5FIP)85oE_L)8Yj91gwzK|xMZjnOIRai-Lr$b<+;ftTVusQ?nQ
zy*>zn^1gZ5dT7+2p?xE6umDvnE;2FLZoTzm81)dk4TN;fsiz<*L4D3g$nX&j=S)Hv
zM;qzAzM&Hg>ihOddv)7LYY&KSdRbk)m<%bo>4w0v33HMo%jRaeq@<*Pefd=3-$Bf+
zuGTg+abgXH5u}%JadA-{K}|5jrQSryy4pd!_6}NLz%L}&If6rJdca}#3d7desbfIt
z$;f_1(l*=$%b^S$2!jVkG`+{PAVFe5_}G at wUjbF}SEMM|Ng<7zu_EVSiKm~gr_yah
zp`<X<H^z6wGqgUwKx2*IW7Gs*;I%*Wn{Z{_q_b;`iMY3b#?e7H9d!~Bo0 at H|+!QTJ
z23|qQEYy-F1T3@?PDXp|>^2dnT=kU++7|!=`K6`Tl+8|Nc1=a&(su7}jO;WWDgtn$
zo)Vn(7rg_PI%yDAa3aEZJNV;PzVycsAn9q$TMcQ1g_zi+mz(uA&mX4LG2*s>We`c5
zs0Z&vMYrKjub;bIZvt6&qLKd(=E&Q6N7!lu%UOY&T(W$51w1e|6 at A8)N`<a6dFICI
zh4WwqcXj$Aa)1i#J~SOWVYJEqZg*oiCxu~8TA{T6NQv>P)<@9NZy%p*J0ZN!9V!kq
z6;plv(%!-0HWDK=I^n-mJJ#y~zTF6Ze_^!|)gZaa;HwjhB_LatLQ$Q2$0 at P;kGHV#
zze2$F2ji7Sj(_>`C5FYO_75p;;H_*_Qd$qqX(dSDoZ}xvus$o$>JZn1C1k;z+xZ|P
zsFQFv5;!?qd;m$e{Qm2byYpu7<U-!Lieh3+fFMcvn1QA7Su%xVjQxr=I>T_YeZ_@!
zwe={T4(OBtP|!e2=m%8Gc4!L1TM;su!yV=VP<~==Js_I93%4mJcbY*Pku?nU&)Wqx
zH}l%Hsek&9;3ffdGIaIpLxNk0?`3^`@gQt*?Al8G3wWyt1^_zDYOc>rNZ`RdH>ebt
zk!poH{q~7 at np1KsW&Od#b~D_G)Kl8d!sHbvwRSA at TrkrA@ql}~(Dv<Xk-ER*(|v<`
zZ8?xBTb6y1k1wi9gcJaF+voHig?<8s5T!(f-haHOyOI1G=;)Xh{11y~LGwgXrCZM~
zy?8k1$v;{EmWL#;#G${4<i~@rk8g{FjZEO&%;PS~b|2-Pet%ZO`gIo|uicTf_m&`?
zAyLRmRTjm#$Bj67U;Fwt6}<+9`z3Stw`&sSNqDk92zI$8-$o%9A*UVy?;P%9vFcME
z9xC9<;XwE$4-Qq90I!b*5*w;ZgP;8Bt&c`x!uff{Db#4l46?j2&}>k)XmwMn&U`f0
z3ogp)5YPAVMN!3dly!l$(tyOKp;4P>5K-=P%7v%Z2+YFYr+LA2WEI&vq8^9R^%jwo
z8cauBZAggv7VgE at c&qL6U0_69YXUzk$bqC9?&<E06$9;21!yg({7MP!?cn6^#dIG5
z4 at 3?_D_BC;o0vyuiP-M!>Z&JYd=<*;g}C-EntF*TD)Nv(Gd7g?>RN+GqrOlfh`Mm4
zd@*?Uo{_=2Qz$ko<;p)Zpd&m+c5UzLo5$A3j>9)~)0416 at NY0M-`_dMC1te`wF+@#
z-fhQO(QC16@#4j72Q`3LdGT*y at OV&n$~`q`0wu)WO8udNfEk}!4IZFq)Or=kKzY}U
z0l2xcA(cM|s<cs8eE~=s3e?!Z?SdwOGkqUm`@Or{rUNrPL-0cG0Q)47+1qesW`hH^
zuKbNj(BnTLlkPw|UVG{(0R0+#;Jv_<Hudd at 3y9F|057PlR02Hd`!>kbM*A=Fam2PF
ze6igYOdaZ$sXC2!^$ws~rKKMH2H;J4ybzg}cOG?^(8iQEm$X(*E&qN)$=|2ofD%DW
zKv9>jUQM;i5Cg2<i~k53mSyWEGXf9kq9r}{GBfif6FPakj!Y%tmyuybs�z5E_pP
z%q9^t!C0U*kU88rzJ4=^rE+ABDh_buhpB=PLA*xB#_90`%Gri(WHzInBCZky&t8`0
zZF}|HR^HFbLVa=vzFz2ZER74(S|D7=We1sX(itACO*!!GHg%gqc(D at 0jih|sU3CS)
z*4mhev#F(ecfj~(Pc+?L4GU$GwXS0FgI7X~2P*&MHmIb$!$Bq-zez4MMF>KIi>Y~y
zIGX6Vc-MF6lA!I<;2^AL2U4J<(fNy(wc~0e96(*|BSX;8r1*v1xi(8!K;SlNS6F at n
z`5QhcutfnF at nKewD;MrQG4oPxbd+4{5LI9kH#Pco>AKCjPlmVWwmCM-P{$B_YOCvS
ziki7;*u%B|>a<SiW}K#N<+Z4pqT+Q(e#K^#f=4l+ZYg5;O&fotFMYUKaRdxr=3%#C
z#G~=A>nLg>8Cr~*b&`n?KffM(b$NHSi%BPe1~_*Ia+O|#7$y^bLK-psuVKZ;4(tTt
z#A at RYXu_fBlNT16A}=RrffTV14d`}?h<ZpfMbgN9hd<Kd@$F8xaTDADm6VhZ#Y<+q
z&@o(1p|I*K85=m1YG{J`Hm*;>e!^3evENon at izg(kz5IwysW7SLP at J9+LUGCJoA8w
zyItRHF^qIK>XHW9v0ITccGras-2h#C;?u+3c}EchP=mdL0+C3XbVPXga+D{9yw7~a
ziz4Nry7UH at kv?5Q&S5tBmDW^Lfsue*D{fLBnaj!EWre8$!7!{0Z`A5$?sRS6cCA6$
z^7%sQ7|^OE%2Og~wMCGUYXtBqK4rUC>;ACpcEZWBnYH+<%kd$PktCrqs_nXSk2dc1
zJusXVFpL}@8F_)|fg^X{3zhbFjMe3_<yd4rNXWV6oEe~CkF$N4n_B^nTg3r=a1<@A
zh`P|(%eQW=M6rXKX1w4Tau_Pekl2H^^{C-vDOJD=Q2GJJRy)eZu8OD27nr-*gbRD0
zA>^vGj1RUP%M(>y790fp7uras2{yehfjb1Bl$35>BjzO3hO$=m0O!S+9@&85w!hg#
zfxtot)zP?9Q8Du9-7wDyjGYoRT(sf$ujvW5+UofE&w#N=5;Z!%n-n(z)0hZkn?#}^
zz<cR<1_>bD-LZoiYDn18Yqk*QJJm{B+IB$nB5OL^-J#D<(_Gg${*2Q+E<I|{diT)D
zljy<5uQSlzyU!wU_hIa#3UD2kmK&6c3sHW6t2iI5b#s^qLc~~DWDy%o#)pT?p-4rj
zx at W|Q6<z;#+jc+=0Uaty$xYODgR%IEYW>GsH*S!=9{Y=%UPALEIP?Lss$)|N`M1E$
zp1jkz0O!-RYa*n^$R*f!B|*737^|}|fKm-IktS0A#@ODE58i*1L?g|LHS-V`tMHU6
z4yd?ZxzCx2a*@VLg#$OY at 6U~GL|IY5P!J0K?R9Fm_My0P$&?!P>LthnRPVQ#OhFzf
z^VF$ZAEd;ilB+na+LbbOuzgho<@x(Wwg-+6noL%KgTGH-Ih|7}W-l at 1Ba@4=ptvVy
zZHmwmHRRerB?j`5UvbC?DN2pY$%@b at s+bLSA;1S7$(FXZf+nk$FW-x^!pzGnF_m)+
z6%q`*-}kFxJ1X`hKw6$WiT^(|q{hpchJ&`PCl-H2Zo=S*@-UzZnf^6D{@_C_tr*2f
z@?EM4&iybvgTPPeb?cu;w^{|zsi1PiZdz!hjFfgP9OouJv39;XI;)|fNpg+zM2hvm
z?rC)NDl(DPHBJl>i|vT<OYCKGPVVeEC!-$gyJ#8fGms-Hi>u+1p3=0>0pvFsyQks+
zjoxCgum;*!WHB1DE6m}jII0jBrM^0gjGp;r&ss%BesF9*aouhZU{6(XgP1U?;(QaI
z3?UOhPZ&GqQavmvI3&+`LwbyD(+)jZcU~pGd#-CnhvPI&BtIAsKL)X8GnBdW?5KOX
zWl|Q7u}7$(fQ`mQh1#X^uzU#YeXr(9EWXQ;g9`M6%c<LrgLh+9)R~vjoq1IipkI&(
zJV)zQipQ15UcSEJ1#N{cd%FdU*8(0)Ht^wDkag?krWyBAz${Cm)Rkqun#PASbFyhW
z*OP&pglhL0#H1E-&oYLl94T^L1a%y9RwTE)Ubl=fDUaawg*Czr`!rZB{cg%HqPf5w
zszOY8_X68xc!SjtocQyWFjPqJGI}nZ0VE`IAw8J%-Xh3GAP4NrN2&M~=3u(2?6Tet
z?uu2+NGGpnXh=d~L$#@#yu2m)TZMAtSU6XWvGpBE5ju%1Ha-4 at 7tZg#%O=Cq$TVXz
zQyjh#c5>y)wOJZjKQvO$%`EEt?UU~g*hHN~=HLGH>xQB=C$#?{W1bQ?k9cDRQIXKZ
z`k0Uq*Yln2br8?EK>B2qW3>omL0(i+8d9{RK``V7@=Gtq$BPwxGK3;nH_K#OEKBzn
z#8W}@!?ftapES;l8}A~}XxF|~K$3ePW~mEJA!AY8x0R5|)wyi_=oDH-J%ym^hrlk9
zcIo5ewt(dzWlK(NIb?DezZFK08%-`hF?L#p8Bm*=ot9;u)EOfY8Tp%L9zusKaziyN
zGf`ckGP9W4jBN=Oq-!iodNLkX4ikC0_9;=CEX_}EI)-dz8@^#N^a9LT2*DcNGDF+R
z*%^P1V66(qd7C=L)jF_T4hHuYz+^SoBoggru!zwA7(YmS!oOrbvhFD86g8Z-x^}5!
zWc#z{!Fz8}C_ at YW?zK+%$8Bw1WzQ;lNGop!VO2zU9&-QluxBkfg)6ys)iVxJkV|Mm
z+}+PXKbjQPGoHS#mcVyO(IF90QB`Q}mQhcU5EoyGQ at AF}KL1fC5UQZzl_B)Hf|X5j
z<@fG}6P$VAOun5X%C;Ft(J5JC=L>?d9n)Hmua*CB-}qo&3GAYg#ukB{+n}g;B>OWC
z0)jM^?~>p7l{_MoU8 at +t7VFDL{vr}3oPEyE)^4>j53_e&*@_D-F2(6lqP$zxy+bZA
z+7*F;5HEF|;Yrz50}>pvp!KoK)ZAl~7$~Z$Nm!GZ%glFejvlpw%%7CxyS9U3Sb*+@
z6$#qclKokjFMXre#2j`avCZ&UsG;Zo1E$}xml;qLSnD|c`}gJPsqIGrUsX^R&5!zf
zaoMoSl`FEx$H%`#)<unLu>RSAJXD&hrjEnQf!w)~kNF`fh*#SmhD8RD`#OP`HY7?!
z<o7XPY{2-#p$DW22Bi+gp)Fu4OQWsN5rQsU<kN?4!ao5N-(6k)n3vd4DlOPr4n&C3
zE%WP9etvB6gd5Vw7nPOi@#^wOcaXyGMPVo}YL8Hu|DsXDBL4T44&v#r^$)o~eVNgh
z5{8>H8SrPF0Dn<VnZ at +XImBQqh~<4Sn1g8g2tSRcI*z<D at W05VxPTgBTaO~YzK$O8
z2fx-ZU$VzSNy}+#o+q at s!u+87!YfgUHOu~7UcTG4GQj$ny}iBu5W)lPPu`2AKZ;}!
z0IAhHm>s(wcf)%=Y9PYhLnsocaVW_S3=ZOswnb1)8pN}yU{I94b}|zbYkwvuzvmx2
zdb9)Wc^Ni@|G@=y_v4SAp7S7&(qndSM&Lmvx&_xf#tcC8imX&5`lw(x%J5$ixBs$b
zs+@{GBSGQe;btULCbPA7^G{$F2`|Yt(8rpO1&i=s<T1I-W)kNxOFgRtEr`V6Vt=>H
zB-Bu+Ay=X{qZDlS?s9ye at _@v3)j&cqLHBh!Gc(g}W_D)E4h`~9^TiAXkTMNo|GwFl
z#&7PhMOq0nkf%G30V}_M?&3V*65qJ9%Dzn)O)sk*Pqq|nK^Y^}b=?GR at N?rO^koZq
zhGhfbm50#5EN?ric(Lz`9TAh0qJ7X$S_O`yVb$6D<-60Du7bMCP(JbzN*SA*O9STu
z45G>$K8n-0u8O+4eX&gYFwbof3a%G`o?D-KMrS_0c^awD-qpa;kP6)B+DNIy+-LO%
zULyG-F`I9|NEG?z at wFd0-mRQk_I;GCCXd9sjDu+_!QO8%xrvePb at n4OkUG`W)Vy^d
zGIJtq+sz-tHMKnTgE at v}i(o^y_w)#v1djAE<H|S>EF9X1F(*{aTLpork>>=~3Nj^Y
z2zwsclC>$PugyrceVZ&eM|MXbHeLD9VlfzMzz+9+VxD~zOY3h7r0hw91ovW^Q=R?n
zRvP66?Z#~stpT{nU}bb_=x2Y1gb}*Fbpm?Y7$#3-QYEMI4~<<ju}uNS&EPiQ0tE3^
zVSX*;d)02#)AY5I?gRdZ6$~}!FUOcMT>bT!aV{A!?UiMHkrP$YlG6D%#Le7lImk8v
z0S$5Kk#3ne5bG<kB?L`6zYq4DnOXF{UxFx7NJSyDA9LcKA<F_>@XMS5 at oM+^Nq$$C
z3i!u`jEq*eTp!W4$20m8<dG!+im1R9J=*M{kYFqpAu#&Y^`Gz+`c1<6&K)q0Nnn_L
zqEE0coQJVh<!Dsaug3uH)6l|E<E}<uyb|}*9E4O?eWH1{Ox+_W2odQ=89!m%L=;GZ
zI|xEyJX6SA3ZXzUd#atb_36zSoAoG}3JBY&D+*TVd;9tVpr{T}Ylnx2VUr_CV(rqa
zYARu at RE7CBmX5JCd=stN0?9C>FqL>*W=>9$q(S3QIx*C*jDWe3XqH`FgD+oZf%dp<
zdScWNC2Soei_kH0qFVWOvLRwkc99J+_z%Z5hpV2)C!e%!Jve_a4|n2zcj<jl6aPd>
z-{E4&m1ncT_G9c2?3 at 8FD}#{+BSVsiMxa^ojXT~VtA0^kT>%yu=!^YxBC4IUvr{KY
zh4xz?XqXf_ix4*}H#pT3IP|*o5cF>(BH~hY_>jTou8`1okgdi~!(UDrM(f=IMH`pQ
zCv$E8-uXw*V*3F)>5}@t*%WdWNrY)u5q<R!J8_4xIG%iadmirDwBuLjhCo6j4fYho
z)j8nt*pKY)L7Elz<!mX&kK0YbPkufGGnG-AR}Q1wo0;dj8 at MslNDyD+QJ6@EGvueI
zp4n!D at C+|@*)ya##`b8_XTzFI5Peo)Oo(n3W5L2vnP2CZyhTuO5omHo$HTXG&BNMG
zy#Cl9Is|s}wWc3`OfAf*DZ<31W(_p&I{tTykQ`V8mnY?e6q>hot)EvykwxH!@SJh>
z7hohefM5Z&@eHb?k?$zYkzxZbDuO<#ALQmegQqQs{G&M{!pzLw^jxZ0j5}=`kKT-m
zoAE^JhYxH(*%#w$4)oN%d83`Dh&eV`%ikT9%Mpja=kJh{v%7encH6z02RNn+efCdu
zTk(sCe9sy~uEfvB#{hS?gyY7bq#lCyqBbLL>c8C3gGyD>Ak at p?jr0HyAO})ux$9K*
zvKtI>(jfStgCm8MBEiv<<aivFXC{MglVr88lx|;rV?LIUqjMAz7Dm)R%fW at aK#gV)
zb>sT=5DYbh(zWb^6Ld~%Go6`lJn_uxcrbQ082I5^R_PK3r~m+q74={5sk6dLNkO{x
z6;;rS7gqzecLKfni~=CrOubkHFE?}?#a at 1c57^nhtX<A=?ZLrgCDAED0fvM>7pR+n
z4TXI9jN(DOEb16ePdd~tDPJleFwBg{G+q38wFv8SDL;Q3s`bHyxyvrVY-LbzYheSQ
zVPjnEC559p()_u#^(|6!18Mb3>sY5j>l<h%ZMnOcFNJXof5oaOuIr?6gzJ^ZFZBFm
z+WBH25#(MGtEQG2M|?Y431}@DIO~U7?6ckaEjQ!h!qAX+oaamkLj<p~nS1aQP9jm;
zBdNX at vr$BZ$a~nb{K0P#)uiC!^fNQ(#Ht$1Ytm8Uwgk;>_daz6l+ac`$K`kIutq|S
znGvPI- at u#eBVP>QPJ8{_#pFHVU#VlbvNGZ+@;&b2HrKJ^!wYWKE&CDQPHOoSitE-g
zTXq?uef`wZ(x0yk78=QJv<N3o<4?%$LK=yTK~&UH`6XX|UGtRcw|Ps_PtQOvw#mmd
zsWs+_rNskT?UXm+q6?UFvVX=&wcdwpVsj~`>Ue>8#$i?6T9gnHp^2nSKse_B6uJ4_
zD1NZd-1Y<r`H8yfy{l&$%4heiweFMXI)@t!ir`3OPYt&R(X~M&mfB9j{7JI(E9K}{
zxvX#KhhTBMHu*DnGg8{|=!RuKQh%+N1RIf;z|u+sMVlT&YRO0p)v;JA4!F5>1;Jo&
zfusetX>Vr$e`6qRbKy*|F*;fL9Q8gjx~)4qJLlDTR(;(Zj}3M5sEUOJA5nTkY-AUA
zCPb@(9PXBiii#XW{>o^KM2Q5sMQw(|Zra4+5{-ZX2^;E at GQJDw!6NC|&tJdlPCdo@
zBBz{8IoiyLlyp8lO)&n{Cc}f4jo0>ig+;Sd8}0GG_jhkL`&*+7>8g5KBFzb|8sr||
zlIMp9VN3HIZ0K7Ih*ODHrUhci6O$p|30r at YDQ$#-a8q_W7LU~$4O1T*|LHr- at 3TMi
zCL2OZAKL%0rU{)x=#NoBhM)sSA>6GCNXH31Xh0VGv!`rVqlgmfu0*3}Wz}(0d2VhF
zvL^-9QX-*!ed!-Z5y<_RSqKgK!EBP0<{kgAkJ?#}njUF$7)1C81|yhME%YuXUCYVq
z8bEG4l>bdmEbQzTK=j;!ltJV!0_;J04Bo!H+J65Tz9mU4_F4Duzxsabp8Wns;R+H;
z^FHe<b#a3mX at 0Zx2W_KXISk?KW&DJ4L>=6&Z!=#bKc+7Ife57L<ps$N%4c90*mgK+
zBhoP8s(Yt!z9-M5{Bvcc3bk`h_aSI7?VbW2)oC<r*cKu at s<67`z$e3+q{`P}m^F-P
z9cxfgld|(o&|Zw>1~TFWU at TQozF;yF1SQqf&b5vJ22k^DlN~9Z{GDjrUPym}YCu19
zU}V*}K!Y8Iip^e<t*^o*rxK;vOfE94NX;80-EW~0 at Vphyw*;)GBxLiU(5$Cli3$mc
z;GvOav<rR(NQN2=%W?p-uZ&>H7<$F>0c_{v=v)0Kiq}blP-5!KFQp5vmuov;qk<7e
z^f}q|Xc0a<VFB6Xf54H2(sDS@&QeCyR3qyb<N(WS4<z5*c$Zh0IJGy67i4U>Bz5u0
zw~>)=2V*ba+xxxP>vv>`|GAG10V6*lg?U at -?S>)2UlUpm0cpViW;e<BGxRrC=CYx!
z0O5;t-+ajf{lkRmtCb)D*p!u+IeU&|7K&~w_XjD0-0Pf~FA-27fm4anXtu_BG|wz5
zLZO3+D9z(`ZAUQ(9TaQGM5|zwkp6XzS)4q%3MdYJAY~tJUA!2CVhXeq$FFFarAns*
zS&uFZ21vcfC2$Qxs5dpgVf(K;Koyuk4XnoKmtu?=vVfa6l7*;&YCouZ;F!;6!Uc!+
zf$EoA(r>;+MOh8mih;IuY07%TKWH9Ho_M%`Iw$Pmc+p4TLHcC{iGzu^_XsQoA{&QZ
z-f!|-TA|PA at q!lA4OXK5djTS*eYGiMU2x#vDljt7L<60KYdb5S8sH%G5SV~EpJL3`
zBgUzDW0;_(uI<JDzIrzJ+YY2&L?nvhM|dO3wHQAJek7VCu7rEHp at 6fWM=z}9I>$G<
zqu;FGUk6G|766hM<@!`11qGA-B`MPBZI<XecmXDg)CcZyZMyJJvtHNHJ01*f8%GPf
zfLJ#Fva0|+x&eal>=M%A^dTdbwh-khDE(%}zbLkqeR#ko!mCptyojlgr5k#AQjsU@
z+9}tkFr-AI18E>ySJ`!nU)l@;k!yZ)^0*h8qGfSG0iJ%(XU9ndZTg5eI$|->7Dq%X
zgs#Z0t});oQi!Kj4wM3BMhzpl<<|uBZDP9|5~9WMpQC_V^62Yt3KrVEd(Lk*FWrgG
zFNy;Uzz)gpe}f&N8MW;it!a>UN!W<v+CPe|$jW27f8W06;70`ea}dCZ&XbA>sTH^1
zf3s0EGgDu&?EHlb<U_hxBx*%Agvs?hkzRT-ezgW9Wk>KTtKp6$*bn*p3j~p$zw4DN
z0I(`;C^i}R)O^hWs8x`vQ$Z(GDHfoqlJeozIvi))^T}ND2oW6sCkq-L%RZE~j$~=z
zzrjdbpwbmH6}Q7v92KRrpg!()AlbjvNo(`Dd9E`rHJK(p=o#7SKt3-tC%bT8Qyi+4
z%4dj5Z1j7qT^7=EXe(%W3XvvAqr15Ry~~&(@z7!(l75>Vjrdw-7MA3XW-wqKfdzd*
zXU*>8IzLgzF!j(><^CjmaHEGKx)1f_Llr>j3N*jr5~d7 at -us4c{E0a__dN$bF$24*
z0lOM#sZdh2vkY3<#f*ZWk|-HN at V7wA(<7b>5iEGAm{Ga}oI-5;0BM{;!{E=?*U#fJ
z#??c>=Dr_9JK2ZUR;cONYPHY|8A<DZa9kVpJ}wH_KCIy8`xIw41$OCHz;*s+rva8$
z^c-$#CL{#3miOZSVpw1`(e}*j(qNc`n at wSZuSVZZi%ZI(EG{tXz?s4=E?qicij9o=
z<_a+_s~w<zoq+TKy#-UKD&e-gWclduX(`N3MXt8Pz3-yk(}rallpz+J=&cZF)qXgL
zPaTcd?!3r`zm6^4pf#FXJ{aPPUhg^F#noWER2)$GyyO=ldt=oYyH-5{9QCQ^$=c99
zQnLd`p<>uRjgKv9|4yLRAFbAmC|X~Rmph<R=7A9ld<+_t-TD+tPxybW0dn`S0$$|+
zQ(#u9G`9^E&|M$No52SH(m9Ay0%|J4&2K)m(6NmKHu*dhr)YJ({m1ouw9lPC-vQl~
z&mbIlAtb#gR(<gxNdU1F)MkVx+Lfj>uM8~NgQIGy>8MGg*^BBBh|2|SfVX$^)7TtR
z8O?`+2n$~G=ON at EINkhWVp@5PX#5m2E9StDCj~?|(sV{x^u_>if;)%iz}oCWmy?+<
z)E!bbH5YddB}VXKYuJML;lQ{Xs6ABrQFtQd6A*a<<HMLJXbE$Rm{Dk&N$Uv$p7$F~
z3MKW-f7WGX`qCdHkCG3ShS1Tazi|uL0mc+)(iYBBi{jRmkF<o2m5_E0|G-&q9EfF{
zxYF&2AL42#9D8Rp_g_IZng!4yws%I9v~DF0qUazZEM<;Y76hLPGhcwGuAnWKu8N6?
zy~VU(YBMfs5M=jJ2M+yWfkvBa+z$nO+OQ_YNKnEHc7TFM5)|L6P4O1W51WF7{I`r$
z5B?4ni1T)ifLG4$?yp8mYx5qKS*!z%a2{WxsVzN%6b~6R)8ykF2zg>Ac}viSmRD+B
zy%M4&M$&0}@F*^N9{NQuukCPLX`+h-b at gxgK(bt at vVq*ZR;1OC7LRVX^Ia_8Q*J5U
z$wyiR`J_=EW?R$I5_^36gNt}A91x==ZA(|n;QEeD6tf^qkEK6yH{hvC%SNmzn($)Z
zUl&FyCF9g;lve;~8~c7Wr|R+GIuJDAX~fb$h^D+r?DKz78vF=3!D`5=O{O4TpvM*@
zP<o(zSdA+ckxC*E`3!<CM7hW4!MJAX1r!`)LF%BupxFor84a}yJLH>;L&Px}WrcHH
z7luh2Dps2xvY~2k6ud_01+Q+otj#&FX+a%S#ANG*+OG)lphE3mASp(#2y501E at jn;
zlo<R>!@SQZSb at Svd7X}jShSrD!BQksT2P4%!I|#$DZ|(c5Y^|+e3AW=zcU>&v^U7m
z-;KG(6bGUeth0Z04G|nDx}wGiji`F=m3J|)vK>h$VU%$gU;`IGU579+a{-O1ICWv#
zD*>v{0rpOw4yiez0k#T~0 at MAww9&aSR5mAWLIfv(*B3keW4>7hmKR1MwZssOaGMgK
zCB%aTCmbE!iigmzZUJ*=RKnI~LC4RE*9HN?>*3PBD}s~`E0R6|87QS?zkl!)Vib`>
zc`&`xf%t^d0#v at yd&T>hhUb1jtb1_qP`Rb;g&vS8Yz>fW>)$uh%|??r55BklgA%CX
zD9Af#<*G}W{uvs_gPg%#g<zVce55x>%UC;KFE6<tUrI7v*Clzr1QZ1`MR91_A0a7-
z8DT`7Z}v1fc_XUCsGHane=^j0gQ_W|1wJ at up$E&vz5VJ&Yi1$oQXJ9!2og{-bi7<Z
z83nv(z9oOaZAwARUF(ScO46)ayY&0{KhwYKN%5LiqXN=~MzA(<0m?~qNMM4H5eH3e
zsM6PCpw#6&f5bC}c0mOd$cIb4pCjcCw(UNpl6}W-1s!@|RuYD?Nq8d|)hyR_w1_D!
zi-W<Jpe^j3JCj{DOS(nfitC>}+XX(WKmXb$-TAm5UJuVU^z`?m(Q}6PDKvsmEgPJn
z^rT@;(5v&_p&pd%2b(qg+tl~#0A`2RX6r+)#iE6AJ9&-3_oi8<>Nan%98nD`X3?{m
z0kYxCV!h153+K*l5D<9LK7(%0eGk4Uo%ke)%ATa`aLo&p3QQ5a-$KQRTS48G3mGcu
zRCJ9|)h3<vghq$ll+q7D(=NOwbZ4E}$%}S|2xvoyY(ZL3TwFYfR||SV<R8h5p})j8
zY?z0ye6PT0|EjWb5ei<+StxxiMG|vR{!$*8#P9;t8UIX7r2i9PS0KXPN5PhK=$iSO
znsTG@;!?6dlruE30vs1JcV-3MrOC1|uI`+jBc!u1OTJzg`s#9na0f<SyP#nocSy-$
z^pjw;us>w{q_hVa-zBu<nvmvQ?985a0AsJ8?eo?v`Gue_&7Mc?6oje0NNSS?iRcKK
zP01=qpvm13*61qz)sFCJm-XSwBz3&uUTf7>-vJ4zJg(yXj0`lfpk?|>>roKhOO`AN
z(oVZPScoG;#PX!&)1>Uw;5t%wA$ja6EnKil^b5AO0iB9kdHz^kqLZz&|K)_{L)C5G
z#+p5|rDI1RVBgey3w#aAikb1Mtw6?tZOe)E5VCv`nsyN3umVBH&Dr at GTD2$+pgi_M
zm|Q;9j9`Z?nDNo+*fC*mCTlWxl18$i+Cu2)p>Do&t at v#lpNN>CWP*`X!YkG=+h)T=
z0zGED6bI<Hp*kz63+*CA4&tv-ULzzP;8oJ&L$q`uYemz|qE)L_Ar(kQo&fuZ3+R&M
z=Hb!BBmt-ySK-Q1MVDQpi*0#nur%85DJ|&ZNq3DYzU0%jg_)BV00(0fnAfeFd^2=F
zQ?mk+86ny$(nZR*vwN%XfW$Oz at lov8ByduHVBjn8czArg8ja<w@&PE7)2_sGf(-2l
zFT_d$k(y0jiJ93xnij~n+=zn~m}LG*`M3|wx at EjsfJ}|rnplgYha7T$HyukX|M0;e
zufYAAUhMl2=n=%Bg;H at ymGPvDKO)$L3o|W<qB}DaEe<?*Ra?E3QR-lG970bbs-ZFc
ze#a4_tBJhEfha(La}Bg at 0w8H%fQKa21WiM at GwwR^EjseVeJROdA at PueU@LiDLyS*K
zdV at v%loRgln9L>7xSkQlM1<>ZBF%)-n=*3j-Sg+c(VTZZ_aUReD at NJ;H2lW-K<j`l
zIq7)$>Qz#Cu|&<1L&k13Xz2?GHFj5wl(3;InwpIBpo235FZ&ot2-EtVMkxE*+y)u7
z??HzWobEjX<^Y17$A26tIR!N$<S0V*6R+k?Egz7u>jt8L#+s+V>9a`D>lBU4MD{Nd
zNA%UGi(QKUGmO?ibeX&o3+U0{<bJwA+L7L*QG2D&UBM4NQc3x!R1j at LH>Id|Xo#ej
z4m^83hJH^q4}ALcNnLx5a^UPv<S6>uBL%QYAeT?xA#_u_4}8M+(Eiv&0dX!u0z*MN
zxrzgr@$GiJfFdxUxMt^wGgtH`l?^&PbfJVa!v9Pb6mMpH%`~ZTj|e63Edf#$#^7Wb
zb-`?0wP^QeN5eBIbwC>Nb!aHt<Gw8NL7`^x{NNu`Z^+Q7HFYTLzAbV)cG=_{aT)vc
z_++A87L*5nkP{ndQ&PLoYK0nDMpvDl9-6h!AaemO=UgUu5TxrbQM4b}Jx!lBL&x44
zl5F8+W+kuIT}kRmz#b<~R;40&)Q;c*3xkdu5ly9oRkQP_mYZno+qVZrcT!NUbtJ8C
z&2>e at Y6Yha(i=)YbjCk_{*=trh!Wt9`n>vv5}nYqIgYNC4HI`F;NfuN#e0SY^XETA
zkvhxzUKDn at EcjJmxX?yC;ey?(vDAs+4og<?7sFdf8L#19JdKSGc?H!(Cgr$64*2eP
z<gp2DcsqVn*>vcsH)EGv?e#k at 3Kx(r$_3nepo`l9`yr^4Ak(=-<Drt_fvB`dH|x|b
z7SxD2l>FpKaK)i0H8@=ASEQOgqOo6~IB>4CPD4u#H?$6J3TiX3>DS)gG}olo3CtI!
zSB;4cEcE=bESENi!s7#-#m-=UO#SB|{(*ai9O-tF7CuONaW7An*bHRyK<r_O(a15%
zt0*?Du1~{=%*g3WaXPsGFCaaxy;`rIQ+5$Dl+nt{$~%ZCawG*KYG*_d4ouO^C=!7$
z9ZF6RuB+zF4m54WWk;0i89n at +)j3>XN@$JRSG7Vx*`x9xXrhVt1ppK=Ss at Nqpb9B|
zUeq0h(ro|7$Q;{q>y=otfcKVRzu`=~!d(Tqj|%CnA`LmQba~#TBFMjE8y+0tqQywa
z%Y<8oBGEa9^ijn at kEM5iITCE*kV7>=Of)Gt5sF2~h~H-hqU9{i5y=`ORY(t*#vQjF
z`s1X0<cv4F>JPvm1U;36{HOXLeCulqWKlxbBn?70v>Q>P&R&bi{*hKfSU1~mk1i(F
zxf+D6 at uO2Vkyta02V&|AZL;cqLEgD at sJgzszH2?_%>TpQdjMs5c3q<wlbEQ{SWpoJ
zqXJTd05*!C20=tbse+V96%i1SCe0M1AVnzx(v%_y0)kX&CIKEg(xi)_iZlUf($3ls
z=Kucp%$YfJX3or+Ip4>;GjF6k&;8u at b?s~Iwbx#|uvzo2CeFhX1aIR9F3Yqyp#%&Z
zW}D}^X#?BVC*PLB at 9_KZJ)t2Xd`{8Vpvdq`94=69)}J9wFiK6oz#oikm$Wer`z2_S
zn`mu|4-- at bCw~>D2?Q0>BZ7m;#|QrE`n^U*m51$rGU8lj;r*TrwC9Ln%kgUGT6dE!
z-ZDV>D=aH%G_L-Nm6;Sx>;5}2fPYYRp081zm&|h<JKiYu>&}<(E3lb_>q2fc<S7YA
zcj#-P_}dYFraEm7`Z;gZfE3(1fu%k`;Fv#!X-wY(y4>3r*@{v%Q~AaE4t2IKgoTCM
zU)U-38aV|)O^B**G<qA*D7YOuyV_)3$wn?=sI|@!f=eqvWrxCBv8>Z3PEH at FJ`|ES
zuVO)&UQ^`URE%3 at bW~K at kz3Q@w{ER+TUu}^`vf_i at a!Y5By=khE)3LRO#mgl4U^T%
zpOglC`PEk!A>U0K8bncS2I at hhmLLs08A>AFMPG!Z(lnqj2%(kSKa$f=8GQ{E(`~c^
z-hN%AVXdEKxr3=*L at DeJ&RvZum&boB+{{WXWO_^?sGqhu;j&!4CZ`*IUgrxSQULn@
zKwft~eGyeYCNRvh(iCT76QE$UYPoU7=rWp0ch3IfiwN>F!n0gP>EG0I3XMISvt-jP
z%cpO2-o*2vZb(w|r*C0p4IH-9{+3GIV7^Y614{-&8kpe3j7z0?*1zU@!p-mop2+(Q
zh=Eq)h}*mn0S>E-!MhF^%4Tw{>OC2EHwZeu12+*h86O{iMRS#y9GnT{K!J!rp90UR
zeDyh$nAK~<0DWCBves`B3-4z%xX2xd=QY9Sy99{`FyY=DB^tR1$i%8 at oC10hU96s$
zs)B7iozN<Y24gQgh##Pso$U5y6O*$skTo&kfeaO=iIrO7lO*si$j^Uraml-s57<6~
zV8yN3y7P-Po{wc_fM_SroVjloc^Pb<G>jBbtJ#?3ji%B|$xon1nCT7De+xINckeDG
zb$@^Fbc}{I986?jl`-G9gg#g9xpHi8d0Z`Pndzx!{a1{|zm`%R`p;=Jm at dvlj+k^_
z*nWxiRp~}+k8MV46pvn$J$cpGL1){_Gf}~Z6?l3QOJs|Kiw|4h*=`v2_Ity2k#9Za
z_pjK%supGP<=;`auS5-{U0YZz74|vlP_NV(`@$)|`boFAx}D7AHK#e1$(&I){#-I@
zg{0Q&&>P3-_F<5(z7W6&L-83@|AM~`S&$>x>1fnEdo4j6IEPu6u#LeQPnr>UPp;4M
z;mD8cBX;zeJyAlN!Zw<*d9%$5E{59<Tvp>Bai>9rkYRbF#1N3{I`iS5-o;~%MKTf3
z&bH;GBt;}9zes2=;oh(T-ju%GlTG?H3OkTYU3Y;IYSPs?r9&N?v02L$_Q9&}mq+$-
z(dHr81*C4uX&ZsHsEt(~7p8NfIe0*C5befnG`Y9Lyz&;9k&@lMQX66Z#_uo(NI(nU
zy2Gw1_Ojo{dZ?hcp(5b}?N70yaK74zG$brF6<>ZLt4}no?sd3;S-0f98e$re(-hQa
z_6)&*Mm-o}fuViHXZ5r>Dj at SC4uyA6ukL;J!c}r^=y`>%4C>S~RaS2P-Iu2j$1P~u
zq&&FlZZENFOwKMTf>}JM?5Cwp`?5OhFRbM_{OqscCVh9;FraoP_s;u)fyFqoy25O$
zJrGWUa+UES1V?H?f^uleTRaD^>*bRLK?p at 7IY#BGrqv;;wT1W?A60I;tA!|HKY2ln
zUJ|IOr*$#tz(adTLiGb*WXsIF{jJwc<N_*jGZ?Y#pYiGPrlvK$w)uB=0NwknSow9)
z1*?4ZktyT?%xONR5l$v&-akqBZJoqkoRF+oslpC(kgpm-8TTYln0LCe<7mf4PASRC
zdX-R&^yapH<J7O7y#S+ESNP!UO;KW9obQ*BM<uJ=)kaH}KwtM8=h37|rE31}g3Rmd
zB!`~Sn4KJa$hIvQ?Q=O+`A*I6;9oGe+K_+V<;ZY)J?ZeYlHiSa_(Ma7WOu*=jDUcE
z*C1sQyvM%jHU6HQ-3MTNEOB5(6N=&Fh{-=Bfg*VI3?2{rPk*fSfMF#sqfy-wY}FWC
zFC~0n988{y{0mVoU{0I{o&s(B28-KOU1%Lkxf)61rEwH*LXK0Wdohs4B<ftNJz-t6
zL4IgL1QOX;8l@)-*khxn+lc-C;;*HCa-qE}@l7&DpA{@EjLL(!@5b1p7Q<a=K`^GN
zzhO-uYo;xnlnZ9!7 at W?6 at J1Cb>Rei!=FpgOCv#&^RM%-%?$fK0K=mawQt8$X`}6Ar
zq7Onn?wYqS)yBq^6(w{u!`u93B~A|)FrH7^EifZ!X#=FNmtOnmhJZLJ!4ir>E<A>Q
zSj`t!CoX=qbAkVTmoye9idHoEk1R at a=E%tt{Zfo8_caBw_2R<@Z&qH%*m%-ivKI6c
z;)MYFHhR;H^Y1TUz28B5j!D?HIt7FR*bb0KGuE?1Pqt`XN&9yVJNo{7{<qY=j4E;i
zMZ<UE)j1Nzpa*cQsc`YYE%k-JX{<7D_%#(Yp%%0c!!&WMbhoc8q;j at 8S|iyh9WtGB
zZ>GE6{<dDop$)s%08fXtAm#F9^z7B5Uvc%)?T2vbv4$C_ac?sP1*Mlq7_iym+^Xkz
zF{jOKaUycG_Lo7deGj^sDGRIDtf7ZcrtLi|ifo^0 at QiKGIwA((bQm$D>;47HvbpF!
za!<fi*d}^&pEW|+KS#Q=Erry$@X%B$4)v at oJfI>9DL4%huSR0eLZ<j`Lz9lJ(wi4a
z$f*wtWxxIP9a#K!BrbvWi5|BPPc<7FBBiJW3gb{ee?)$Vo!U*`k`8zhgxQqyjdk4-
z?#oVCdX79jd#3A7_p`s(-9bd;2NA6~;x at OM-2}ER3Q~BLbErK1BkjI0sNWrI=;Ohs
z`dDqIx#e^l(wg?`gGsg6F^)s24F2{Mw2F at aBfSGZaprxLePX<!vXXj(#q)zUNoQ?Q
zj__i)%1dpxprLlC7Z-Ca%`l$6{-8jdD!XO&4?c&xZqNL)-u=8;(-Z<*G4v_=13`^P
zU*KFw`Rm~Tc{r12b2kiSJIpVjgvamt<<u`llYbTD=#_e*#8rZw)P=_^;NXnY(Gb);
z@%T at hR5mTG{l|SkQJ>$zSxZan^n?9R{u<o9ZY_=wOOek<2w0l$$&5GFeJBmI2$DTh
zfNXAr>)^=;=$GX%4YQU*XcT8%EI?&if}#@4OO0L+mhnz!%*Ej(w}t>*bLLhEdf{w1
z&{QziZd+sgF&me1M;OM=ff1dN3qz)?e~coaT;B8KQPPDho(-vtIy|BW>n_CY!&qfL
ze*V_Myc4qH<e1#Ou!#8xN$sv at U@jr05$Ou}a|R8#sv|XvWwG$k$$6iU=!ZA%eVU1T
z#0#(G8h;?t(dPxqLU_?L8Yz0=&m{yVz_)4)%yV9Qb*v0Dus^!&dSjAtEbhT+lJvnL
zI?ou)Um4<{jf%cf-qPZn0)nEzyf`6Qnmkknh?k~UfrHJD7v}4;@CUvRGq*?O{hu&5
zzT&z?;4Dt%2oBpy5%uexi!k%9Zk>yI`c#nm_Uh2@>-xG5d7lv;h}M(cT*)w0w{frL
znt!`$Rw$|ZJhHcpMT;lz$uYWrPQK!B)9M3<P}^Q at j;h>Aq5O|^Mo_hDNiM=#ys4*L
zAmubl%=)ntXkcA3LIR=Sx2FtLPI*T^(&`%R{G2|qLra`4AO5si;(|0ux-+)%x;u8K
zz`U-^$5%g9=puIX_va2ZT+Kggm%MeV)3)YF5Og33e at VbWz#sIG^q`$l9erHXUo at _}
zrC>IvOHhb4x?3*a9Oa%e8sRCVsg<LX6YWm@;j==CXD}A^jb8s0o_LjmmiY3)WTJPX
z^Q%R8{wfzJCcZ)%R*?klXZ5U*#d;jWC&8&^)=Zy7oz)MA-+>lvs1kFU4{9?I8^nVL
z+Sxx^2?l!FaTq?4<sDh*m1Rp23u<qAT?ukX;K+LXjxx&X4=|E2M~;C`BF%9c0A>ag
zj97-`+5U3q*7KWkf-z6CpyCUb8xnCl6{KrLU1Wf7_aVflF<xM~Fz_DcqF2HXVcgTq
z!l-*;(<d~zoj?%X-Nm(IU&UM}#jBaFt%bpp+b7Jx5LpA2X%4tHfXbnvNH8*yz+bSU
z5LJ492cVD#vf^Sq5d#DuI;@J&v!d49v~~05q7z$nH)EcUax~IHw#3B8ga9d821-Z<
z1_TsANyPz)(;d`vWiMVd;hcYl$AWIj*Nh6ZBwXli;<PFKVGL6SMb8|WZ18IETLT%E
zFJ4RiMa{RoVc*j<G6N(FT<+@{8t~Z&*ZJab6p6raIZQ-cJUeW;hqkR0AX6<WT3!w5
zg>?LZ6HQ6qR3l at Dyb)b3n<1m9IjI>9i9s>Q1Wp>68YmqkJ=aoG0wbpF$fJ_RQpGOf
zV6q1A#61z9sh_=zZE3>fN)PgPBxBKk$<p|OwY4=^D3NOPA7*33S~Q|0FQY2<r}anD
zwIgq-llMLa8#%`5m00%^z$hmGllWb)ITB=nQM(BZysoQuP at e?r%pfQ2893Q*waOcl
z3)E9pQ`;P*@8+aqUChe0R9zD;nbpoXjXO;pK>Qqus7Ro2umkLYXNv2vx%E_w>1gNr
zwDr=q&j)?o=MCGh{{7upU#L|HR^!y*yhbr at TE%d at 1`KX$YwjxJ)YgKsT)O&jw^#O1
zS_O4TXh~{Fhr5iIiQtF)!xwM?bSV&}b62Q0awcz0sGdCDI1kTp4+?jwK(90JqJ0ez
z25A)e>gkmCrWavK!GR5G4NrIm@)S-$k}D;b7x8;txELQAN-#FnW~DhGeMrHt8PGp=
z4!NWtQqOH*T|~gSXOESzPd}Kh{2l2s15wQokAlY7?G+HHm=W2vSo^3TZ(19o>itO4
z1Q=eoNr_7z<&4BY418Elz3JbSP~NVzIN!r7<6-4Gc)|H;?nJeufXhaH^=TAv2s%!k
zcNod(FTvyq|2R*Z3MohX;JBm*1nH7<`X0={&7K34{nKaW)UsR-kvy>6&FQYCJO>Ws
zAT$bstx&EVnsnxErV*Af at 7@Fz?i)kr6HV%@RaKj}Ze at Tc=cM_Mcz5CGjFAeYd0be3
zzSu>>ww+K)6l-ECINTa#v5->b7`hNdNFk6}SM19w0$AhkKx^m}%_$h3luQFip8 at hM
zY+9Uqu=36f!?cw~hGoBtx<fM=8<$q3Rk{u@&e5%Y`n=i`Rj0hV1;jl{FRaNG9kU{|
zd&h9bZKqXFSDp$Gd1`vck?Ysmok#PZgdD1j1wg-a at 1HmSY5{maPo^_oKml3;*+4|(
zub9%1oM3ibZ`JgI>bd?h*L`+R#Ci+JTpu%%buy}z!8!ONYu-a>a6G7Ro*Ot-G0;a{
zL*qW3KxMQ9dVnSrd6Xl<AY+Tx)>V_v=Rn3)2Db3I%l)ZN6jl5n at zoqOm3a5?H;UCf
zcr>QtuP<0}qvYP)Z%v9p8Z+QD*{JDHGs|W_H5KZ`t`qLvheJ?_T>Trf2ags6G<hfF
z#o}9K0E?477;$wHFRsD73lG4y?9D-5>QCcI2HLVlr6mQ1%;{sKA at B%B1io(pARWg@
z$T)48pMdlIVc5k at kT?w>!3gr}IjL$qCO_OWp4q9a!f+0|hI5S))N1Ar$gy*kY4l|p
z6cF?9;X}F6-}Vd9Jt<JO&~O1{DSzk0kN#PuTPatrCY=>SR-kZ7QE^(!6oNHB+;1Kf
z#}wbdXDa6D)2DUTkcWq$;<hUUL)OP%u3W!IQ`b)22B=AMZl1!B69T~Wc6axbXqo(Z
zTuarA_+&_^F3pAumnvl4hkUPWny=<T`HO7#>*8l6e^D=)JU$74-j0A3;9rvt2D}He
z+se*&P|k7YJ!lR`?A$m?;Y+69XP6D3$`m;Acl}@ON^bAoMjTmXvufI1l!>wgXr1-|
zbyt=ZW)NyF8B7@&J#BZN&cE)-5n%BPe)VT0leF#Vew1MbNMPQ_Iz{ytTma)gjl=1K
zhu$?K;$<Dq{vIaOtMrt})^wl;B<3P#UhQg8H3V9Z4GBtMwGs|7e>@~^=DKK5Rpv(h
zr=$CcEbxRP1}{dU+IeJ_T=`=Fqtv&<dh?!^)B9r<k7x>f&mZeXoEnhVp%Kh2LvMo8
zxBiar#)oMjAO&2SHM($}y5FOL#!y*_!m9u;Z^YmD;6ICr&qqN#6?{64O_Y0&f0z at j
ztQPMNi$|6uS5o;HlRkxnP)%PL*@DVgBBW(X0RaKBzy(pz_0wcaLP)fXUnlEcFze4s
z*efW=3>FlG4)@&s>GFP!f({Ik7{i3EXzdg;Fje%dLGiLdW#ENQTn2D`HvqLSAcOmS
zr>k95q7NuC3Y^pLKLl*Sd)~of8fof3j?fH7?jSC7E3WnqtaWFQn0Dh{-@%h*K<1Os
zs5Is;lsl9*Q|s#%kYLFQP-q~v at UebYXm|Gu6e*YH3YS7hMMW(ER>x8>m4l6aG`;@J
z9ZGEtyJG{*Z!Sy&#uX7<$Be%CadXg^tdwp-zbZ=q4Z))?=+YnGxK4M_RGp`AP?pm@
z8G68cOOTF at 0*x*7L5?t-ksq~gr11d2B9eAFZ^rDN$eb2C>hb$AoM-o<byXUIsH?qk
zVp2j~aXvVCJ?G(!!x-ITtEN8u_WH%8Y`wjmkWqA at 6}_f)Ci3GQ{rO!u{{!x&A|xi-
zEu<BCdU_h5Ik6T8q?fl7Qq&S0SP`jXmw%%?4Bx#!Dw<H)t~4 at 0i~ahlY31d`UNKEk
z?d!GM?)n=ZfR2hXiPT6tAZy}NwiiYU)FG<`KWV8^@+OF84ACvUEW^jW3)$|LbK2UU
z#?nADFz07tawvRk5*9ukS_HzoOcO&`rCA at -hquElnG#jyBkJAOqGee9+zK0sU&7#>
zoYs^itT8(Dpc4HajR6-k^xY8v7|=*fNN0sBOJK75QJ;qWKcxINw-^erp0W5T57?#*
zb<hc2d%dUV&&uiXQ}jc4H%c;>RSK#BkS at cYo2zRkxPJl=^8=6c<7of0JY!Th%PNEm
z!$wsD&e6$H_f+e7USylHFg2+{aCkQl at Ml)~gnAkr1bcp6BXkl8@`T$6UONC5F2bF0
zF*=A3RdcgtB}iq1Tq0YaiepuY!7TdJDgL2F)vY-i&F&Ndan1)$Pt at ZLjL_awhKInP
zbVzka`>pTT?~mCIh#ktU#+jWLc}GX+#EBDSSo{;Nt<N9x>$ZcE4<8j(t(g34(K`QG
z7EYj^A=6xpUJ_NYMQT_FYB;PhA7I9-VL_SV at S9H496ee!UJ-xm{OI6+K_c7Kcio8d
z@<X212#?cfyavQQ#@P{Uei;$$!1XU`3+_V-WAya(0?jfB(_0yoMexW8lTW6!%pXf+
z!x;bYD$~qQ?M)^nK&X-XFE{Mv9qmAa6)&cB7q95ZS%|!bp_Vt=_pTl9L;B{kZij at L
z)6yNG7khz$f{Q)t5>cQa%7KB#UYa9#x=R1|EbN}eh0diTdO#kI$RdcpI(Pp3oLdrJ
zdMgdgk{T=81gYPsOVB0?4Rl~5``HR5j3=fg33YNCH=sqJE2By84!D=z+<?9O{GOYX
zr9?2CM!yI-OgFMO&rN3z|Ilfyu7H|V7qE#s9g$}whtu;Ku3{u*G1uaUTg2R|j^(OG
zfaB at Q{rzctg|b)<NTg_-vIjW(eI!S2qyB6BFsk*>jK3BK5s1)+$xCB~`eHM2ZW0w~
zK-?8(w0qf~Ogeo~THdA4q$#IAf*qZ}2sNhg0cQi_RPDf~MX4ZM^iSSwTeEugy6km~
z#($WbyZJ)0bT|4rnS;sYO8EEgy^W81Xt&{T1*}QB5!h<p1=}r5EYxF3sS89FT^#xP
zJ<r73mWvVgRwz7Fw$v-qM6%j5<aXkLN}Qx&x2twR|2CqW>C}|^@N%X2Qn)#CE*fH#
z3gf23xW~5k?JkiMp4ll?URLgNZ2+rQMIdxT8oRN1c!}_l!F(qbTVYI6;b6J^;BM2O
z`6d{6$fZ6Y9EFBY$D>P=vvDvo+=G+C)@Ew!K%@>@C&R#9 at Z|s>4PKEihTq{Hz&DpO
zHRiy%HgyWT+=%0e&-*i^kQFKWNI(M_F^Dsj2dRl7&G(U*%n?O<K$zXn5?!}<`vJ_y
zCa<wQLGy!p0A^iO;2%3tQ+ZklAX@>z#h(V1MeBOhy at SF*Y2A^JuNEYf|IIo_xqcYc
z5g3X at PRp}f&Z|_RDFbbldytLHN=s(CYb!})XTie^h{?(Z{aMBXYd=+1kxAno(A+2C
zBpSMT^X8rfDdX#A$TI4{hA?w`ltscu>%;A8r01^O?C(PQSn1&Or2qP(J{{rtzacR6
z1Bb?q->!aFa~^35g*OTl{uo5W9en`0pCdVop9cL6eZ+apkQB%bqA%CF4m4E{O&!We
zQB8P{MWjdxB+kxt3MaDKP78yqKLsY=Pse4fxD4ut=QitX%i5KuD5wKpR5PLf!Y%an
zONJojwE-JzH2>{!5ORuipL<X^t1h3Tv%3rgU<eGy_U%^Q&j;siFm?CZ?V5DiQZjhp
z6YNLRX~jYQrG1j#hi)I5q-2DHwlN`vXGc2<!G2H=@#1wV>RKw+PG^K*o|rN>gTwZ;
zTxTJUMdii8!bO3=$mg>$OpGFT%x{lE!%L7iQGlJ!PhrC7EU1(HjOXv;ft2Qh0@&gH
zsXnqx+5MAh-fUken~WTa>S4%-i5xpT5aS<3J at Ybh+i`Lbbp?MrF_Y>rHc%DN`PmzN
z+y>L+tEjL^GD%}V@%6#B7b5W3ne)PE9+m;{6x$9`nc=+qFgBi3<0 at p=@tc?#ZD2r3
zn*C*n)&cl at PHp$qLP;G2=51lu0Yy~QKHwD at D;kg8pJxJ%Iz?e`=aHPa@{|F5ly(3B
z;xGj at G;*^wnq{o=CpFry)hmq=(SgK0;GPI}%QpS_uC0c^h|HHmejr!!)#ViETV$cH
ztLUI^xTOg7U%)Y6&1X@&nG-rRTc+%`k>;)=#iPk*H at E5q$9cZ at A@T?8`*X$%#EC5J
zrge7VP9KIuloc(;L7A3d^LAqzpG6+v<^j$Wgh=L1oTwBdmriHbpz0-S{ZK8!e{e!P
z$VsE?ATl+C_ at a@MMq^l)^TpA~aO!5R#rY+urk#5Pe=c(A)x#sNmEey}n{j^gmn<xH
z0XHP=%5f4hiA*Hh(3+mWpYUL}Yyyl({Ah<*>WwEql1h1zH3C3!tvpwF^!s`XWZNQO
zZHP3NLhUFO5fwe}7J&t?%yFBLby8)B=y5s>pleqKpZCM6z$PKUPEVq5)(Gc)7)wL)
z?plxxH#0)DD2I9A-Q*DUsiY+Wi at 22%N6`}e8Vrqw6dFCo2-P7)q{&aoA1eYN)?&ih
z`}gIj5QUZOjazmC>u;UFt)+>gP0B^Yrcl`kXYB!O{rRy>{1MHtWv9>v{g<#1a05C6
z-8d7KWSUktKF4Z3j|>>LE7RS^`ud)TB82CovHFl1MFZiB;KR^qupjCu`M{MKe<IVO
zo9LXxg(R9LH#)_~Pub+()k at xaqdYjbOlrmS(1xoi(#*hrzm=#<{Q4%^0Yo0 at IsS9=
zJcJL@`kJ^6G!(51$+kCi@(jH4&0iCNyZQoAKEulEMmFz*c6E|nbayy(dIL1e16jz*
zqHwf}La1*L{h^j=I4h#8Q?hi&m+dQ9b{_h&U3 at 2qyxDHy7!W_~nDxQs-qH>oclf5u
zKLb~!;<%(oNGkx&1Z=BzTsw>B=svICpJhT67WTny!pzbrw&8#4=~DoJPmB at w>Jp at t
z2mzG{DB&G=I6er6a#$mD(+KG!oJv1 at 5pym#0G|R^Ziq|RFy<@dPUowwy4`Q)Hxt^R
zzJ(3eMc>%?_;=k$ov{R6|NL^O{&StB*V6f)n_Ihn-*l$b`h?xB!J9+Y*lR`YN>$$g
zG2L+P3tm;TZX&(mYc7`$$1syeh%hOXCT{r9;*d3NM;8_ujLM<z0GlhJPUF{nBj(S|
zaSYMwy#$U^rl?u at ixC!<yX=$Wx-31%fm$d<qS9DTZh%A_&a+w^5Qkw3I-z?iyb(AX
zf96zB5wD7=3mfPSa6<LuZjQeX17zL8w4#jTjfBmq+;ofc`lSNJ6_-=doAIK35*5LO
ztIpq{vcTE2=I9A3H<~V&8`(h>mvbfb219&?)Z7yp%;8RBOhFs+e~mfhEJv#me}6Qo
z3_drKDUgyU%4ozl>Fe%6x_JCt$F}M~Z?ep6kAF18VB*P`uSs7w(l^i`a~2x|99v^x
zivn|pJq40Wtue-w`4w~T2GUZNyPKNyoGtb!q&0oQ&MdyMV&(W*jILvTneAo{&^GEI
z{v;bfp`ydSH&C-Ld;8~Ks5|wN#(<W-Fi*)pi1TPl8>)aM^zmKg<i{vJ`r7GDE0X2L
zQ*GFiB16t^w|J4YJo%61gTnG>&`=7OH~@Mjzv&a8ZV|j2!)|#l|2fM^ffWw)GUj-i
zTM9AQuDrv(m{qgqzpmlT at -;l5)ECP-qv;bNN^m6i|LaA>mS05R4N6)wlPT`HBL_R$
za9Q-V*LV3wuu}ONf!8o)66O}ZG``X){+s3Bxskq!c{fEZ5q!sxsid`A5K~H^BYW5K
z at 3356x%@8O1igyE5T!SLBH&OhHBl+0h9FE|M=f?P-_!;qzg?gug&jgihL?ZFq9(We
zS>hu>BoZNz|C$Ta9YsK<|8Fnw!}1GM0)}^Iwpj`|v at OlKFTq4!>BQ&PIh%TY7V{|a
zWPBl)WH2E#4kqTw$~HlG9EbmCMgekI5Eooja*s`cy_q%PANb&Gm*=pSmAm};5k8#y
zo<97Im9LNoZPK4D*EB!?78ln;B%<R}{Y at cI6e$E4Ao0`Avwpq`v+kU?_|L01_yh#*
zKoHa~*j^xmC&b!0Q*y`vRpnWsua<xH2FJ$bcc?`6WdI6fR>&|CrvurJmOHS0e!ZT%
z%m>BsGvFTkEe at NL1r^P4c)b%iL&kMKuX`5pJ<Qv)>LE=K^}&yObG=pv-oIZ$CEJ at f
zA2aU at UUA(X+V}Xn>rAC}<cKBM;$5JlJP^S8a$|1ahI&_ljxwr80I`=ji2r*f!OK_j
za63l9!;cnO!{?uT5UH8{_e$`sovh5&|M`b3C%<B at kbnQFa*X-7KmYTF8uK>)`@{dA
z|7m=X_c2h{94JFpm%L(r=%YKvz_#}0{=TvtpxM=ZCCk~BDS6|k3KVJa9oP6`1nIg5
zm?l%hOUrj@>Tl$EbQsSHF+<8jm7B}!{@<Ip>pyS*xBq$jAL)6oiq{k-ipE15?;&vs
z0;W^|mLsosxPGifPuGH!I`(ah76|Nd-Q(e}pr7mPWXUK2$H)qB(`pz#yZd1#8oGXF
zUL at 7T{PuLxHneNPRNigm<j*-s#M5D%q7!P&$Z9q&yfiL61_E*<)e_YnnA6;1z7I=}
z>cs-g9Q|KkH@^AL3qJnecfI^~+8h7#S(kUf|AfoWk>J1A(eOXZ|Nr&n|LA|6O9K=2
zk&FA$#-Z13O_jc8<T#vz($hILB+ at Y7KXPo<j?Hk^_4 at VKU$=YHsrqtpwxz~x3#tZI
z-V80+Vk7ml_O+ubJIsk6%5`VL6rUs!dj%V&!9cQH_FqPyC*z>JC^`ht{?uy$oYrec
zuM`ZJ|BH!sov!`$EpL%=kna7!R19BI>lPs!f%bLy`;5D}PAK{6keC;>gMQ#Qa7PC_
zx#_lWy!tdf$^|N^(t(Xt)SXauhCiXPv&m4@!shu}LB-ytA8v7M#Gm7L=x<h~<HKwd
zGdYbPX at W06%h7U@#WKf4VDV?Qb9Lw~P at Y)^k}p>XCr!wMY!X?12e2o2hez~zFr2!@
zB`7s0-TrI3JBMFk at W2tG?eNX56Y}`hS?6z23SkL6)fV&%TJn9C32wTO4 at -(|^XK4P
zL!!oI%(9$>9*w0Uo=ecPTWA98&t>Kc(id@`&z(JccT`mRe&%)j`HlC?oQ}T{bQyRq
z`GSg>X8iwzE)%FnzJfUF9n>HAcJS<O{C+%>4Y=XDUDEzafg*J4q=aEY874%H^t(SB
zO`09zc}7L)4Yo7)-jo^ApmU%@M at 3a8PVnIeEY7g7^<uv0&fSEmZn#Q- at 1&+Zr=&;E
zp1tahrEE$ifml0~V4AkCUcK4?A_*rFyt2fL6OMU!YP at 6NGBlaBFdff(O)q=2c>IWa
z19C=YnypPY^sH^ykq18mIx~F%C_y|L2qz3tXzK1}b@$J$QK3KNCxH>EFy8oBEmD&9
z{_EwpK&7oaK=n*nMJj}TT&Cf68hSpoD33N0WrE!1L6BinqGruJL9vDn%dg*?xaKv;
zmuRq0PT~jg0~Yn5l-X#1WodDumV*rG!a}$yu~2I<iwoZZs<vX*`iLGS!Vm39O+l~T
z&p5zbE_Sz=%f*;jevHWInGe=q91pU+ewto+N*Q9BE>tiRCm8gc)8q-%#oyO)_`6)Q
z$#MBtlKXwf8xL^eAEoP<pG*6Ucy9pw`|PTH`p4?%moh4lCvzZ2tZEsn<icG(+Odmy
zfr{A2-B4qcmr>b~c{9pV=`TvXkjNB+d=K|Ggoy?}k=9`xgf~mSW4=kNO(Uy0s at Aor
zr7r*AMrB#!d at a#SkX%+WU*<+TbB!cee14Emxfsh2|8g8C$zm{85tH4)GFXx~UMzpK
z%+DKB!`Hg>hg(IU7}Bn<r3*@nhN5V2LLM??qAZ_s(rqq1Lf7(hp;4~nYb4_&aY|&+
zZ|`(YJL10Iq;lKxCR at eaWOK17!qFJAr{1HV?@Jp=(~*5&dtGv9`EfAg!?RB4!2<)W
z(KXKj!nm{?vRjnpt5NGs6Sbs0iPiuuHg<foRCxIk!lBUAVsn_E8Pj6hitpcOr=5hH
z-^isMLI7i99ei`=5_3N++)p|)$Vn9#ma~VTX6C!T;6Bvh5T at 4HA@gB$r0&>t*t`5%
zvhAy5vTNh_$KH;ASR!wzRJ3u;J435WUQwxc^1nL3AAei-oZ!g~sSkJFKDV2D^M<nn
z6LY&|Tn&P?>|4xo^Ey+S@;3H|iBF3KwS+j2y7Y%l4cAMLp!ifT&4V|-%e9#TkFno~
z!AE4zC8(kWycVGiSQ>s!U*;3^{F_h~R at 7!LyzyIK(55_1Qdtz{P7N~Go*D<@=CuXd
zQhP<dqTLsA1;w6Pgq(CQ_4DU1Iho-{H&#C;ehf)7z6k~%#dt^U5(-1({>)dctb@)D
ziW~L|78&ZxKiTOXGx(`idTwYFRL{Eq`P(F*M?cG{5Jqa=e!R-j;%m(pZ;>@uxs=Z!
zGpLU75k*iA>B4n{K3`GqbFe9ZfB4Y{8|f3?RmRYl9jLMi)^9_*zYX&f99+4YVpaOy
z!67aD$P1w<hL0W*%k1N)O}-!-wt$m7qe|O&r#|xy>Y~67V|-kal3QLcGpO-rB3#Kq
z^mcG|ESWai%f4g3;5fLu1(rrM%*%4zaPH%Pf1fP9aF0Jq>lWjaG!B)tcXeTOD@)~<
zFQlbGD}5a}Rne+NI_ZwiK6}#S3&VSMP^f2YnU}$}d>M~vU1J}r$W)Ir_j~9qh&N7v
z8&O<1+~kWt{(0gNMUIo9pja8$RHr6`vA<7%;uH&@_q^ev@<b)}FtlBYlfn3?a!~n;
zGJjHfX!&aRhp%YUlY=8C_fPa#SxOJZ=DY0&7mr5L%YQK6cUF%1VKq>su)31bsKGsA
zwY&tX6tQUxQ0^A6cK>`qQOpZUr2USR*y9s8cquA0{`2|P;27ShFLN10GL^8O|3X)p
zxBN%Be$@#F5CrxLUel&^^el(3Y7*^dQETJq at s4|(+K6W~Ow<ob2Q8OmDikSNT#2y9
zYH9|KIM`Y<xf|bUp5IFgMU*-qgfsIYy2KEoHbLg2+}VkCj`-%O9rn#Xki2&JyW=-$
z$?n_ at F=S`p6CyNkcn(8YL=Z^H60gO=&%@jaa#ybWG38zLidd_o#jl~PpaDDOQ!q0$
z5us&uSD3j0*=#`~@5wKO_#qVvBxCXACCAe^8QlpjV`_y^t`YNlch at ifz8Ld^w|_|g
zduSLh!y+ro0q<^{!0CT3d|q;j%%>niS{ASg(_5!mw`|d7o<BE0RH2H4X)2TW?&i(R
zkAI^onE9ci7o9@}@CS!7TQ4Vae7*_u)05GzQ!Tui9rkU at -?LF-zWh0o&0sb3_JceV
z7Ni^BoVVlpyGJlI&xl-VTfV`0%oQq{@OdZRz8#OQ#kJdh+{y5ui!bHHVy2d)6SA^!
zz|&zK1yy0p%jtG|V3&wEODmg$`CxZ;&R<)IhZ?ySv&5FaWuw5n7;Btkcd!h#mOo_-
z^|7FSZ_V7<XX&Uj(nF=y05VAooQTwsr_0^B9&Hu-U{bIRe_dg>nZCtXz0pH<SJMwH
zHfE5OkQB6E;%gQ)N9bX^(T3lPe_Yw3ht}SB at c+q%ca14jVBOFUUh>%D{o=nNb<{gl
zWReY8j^^~eXL;5#_px5t at UP#$&GDi4HN%LURvr1Bt4Qw)_gD-3BEGJ?M&p>@;5RI1
zM_BtL=sW*@$ub|)zyI2){Gb06Rx7u|2HuZen`ThfwmWF8A54JcbqtzbT$ocll?&0F
zsKcPwh<`?UA8G}%!LRajV7V$l1;LA!smQ@?_=RWZpk2xFIT``g!c|v#wVl6F_cUGF
z5C6|D?f-P8|MO3J0Lx!Hh5zSn{Ch93!v5!O(Bbj<>;LX<(2mE~4Hsr at _Qf@`R9B23
z-~^1SRN2L{x6mb-ndLp>V;&hS^X{bbMih^0mW~Uz*QP>@)~PR9dV^}zneTY;#KmOV
z=l^~k{hbY1Xl6Y^AsVhXqsU!RI)iG~9Y6yUqbvBepX;IG5~Ok7Dl*9cW3{jjSi2|T
zJb&Gy-NHBg5v17k<5oO4kczPDiKBTxZx`<y+lv!{C-)ejv5hWVMJ5wcO2SWTW4>T1
z<)m}72tA#fsi74j{Z&+c^|I)XkM{9gR&dfaa!<qev53 at INV#b=o<-d at V0s_W=liS5
z`2X<Cbk~*n)w4gveZibG<YUme$?v+?93vtPu at 0q05B&c*vh|=o-4n?0icp85$sM8l
zOVC@*MT#X`QI;D+DmXQsg^)Ipgj3YfG`JUUe{{<Zbb^SO)y3#A;-CHdaiOjkqtcxY
zW9PS{InQR%ou>z19Wl7nKcGJo*9;!SANRaQ2BEVTPx?kxB}$087d=xZ&S7doGS{(U
zQYG|Ae8J~fbF-=mwcv#89V~B`RGF8NNT<ziyaJ0B%)q^M<l|rQw=Uml&nap3d-OM&
z5R2OGKt<n*0!woxoyFv8x*YY>;!(1Nh3FFVvOoVV>Fb&{ocz;S=t=<rTmsv481>vd
zm4h?$s3lgEAo^Rwv(fNn0L7ySWZvhqEOkRlbRZ2zxqH3Ysc%?%a`Ahza9^OaXKySD
z+IttFcc*^VE;z0TP3gFy)|v|SrQl<MrGM`kwb+utVFv1`?I`W|Kzz#D=8nE9<Hg)K
zqrCpV`Vz59MBL_Qvd7B>s7+vu9zA3Os#E%;&DF^fz4Pq~WW|I5;J{yz4dSW(;2ZE9
z-6XJTb7VQ{cD?7GyaCQ~5vw<OG!Yq4?no-?zkL#0Sk4~Dg?pj#aVPaLdQXvOw4v{j
zsphwfz;mZ%6TkoWE)yF9W9?H74*2nHI2*YCHa9Wgny_muVohiYTBs#3w&q+^!J+o6
zKZV)7)?z#JCDZ~p=`Ip<C!-#c$n2m&r|1KfMsoqRxdyW>&@W&;h at K;q!gBNp-rbOW
z^K%#ji{bdr=ip{;W#Gy$Xn(M<1hhi2qMk5ENCID{j?;%{VTsMe?Twj+Rf$xE0)2y!
zsqFI4mjB7(^hjlSm-pO(FqMIaf9^^oO64X<a{{cSHJPv2yqWMm3(I055+KUInIPfI
z$VBFgT=D!%=YNY+EH}PczNpXd(DUto{`0H<kN(MAzDH-%NWz|d_2N8M*r(a4dUtm;
z`Vpme39{L*vrzVzV=mf49a2MAJ~$viqBRl)L0Tq+j5L?fDhziHp~kos+l%5~3F?kJ
z3Ku6+qE)!L23UI5GuE&il|BzwXlPz{lX?dpGEU^qa1Ke-rIxhb8hR%aqc&3YKwLP~
z4?)YIn{;0bu(lyuH+`|zysm_LTA*u91PM!|ZxW<fZPb7b(rP!24h5F=pcZv#V7F7S
zgSB>#giVgYk_xBzs<^0GFezPV7xRJV8--oBMIR#sx>|%bI6 at 43eJI5^%>o-M6<xQH
zR&Z_eMH6NbauS0(`!a6>hR(Z~BhlIqMGC01w;T_D#{$`kMvqU$rWolmnF8I at pEZ#d
z)Jscu4W at -|i%V at +o-3(gdQsEZ3YL?b8n3ckX at F>H1N2+R^U&Hm)@q(o3>QwtBXUTx
zqwwi#vCH4#WI#Wc5Zg)Z0utj;P$qAK(-BhQm<_!#(q&wMMia(vkHZIs2}$ldFgw&$
zKmiI_bm`g4Dj}F<?t<PDnXSU~)ZmwX2Z2rwE{un%_W*rN?!>f0dvk9vo5if(aRp21
zRthnsb{|1QAFYa1S9q9yPu(Dp80J>CEznJb9G}?}jD?_kr4xO6CB$*Ve%l*IRiIOw
znhx>Z)W}X at k=nV?1)W{wn}mguj_zDHGziE+`)3H@=>dhm+*958Qo?>yy+^T%(gsIJ
zvAYm1Ji)y(Aj(jjp8>R%gX$?70#a)CCgIT6^=UcCX4LbbClx_M5!`*Qpn4tGVAznT
zDNHTcP$v4o at PM9#=-u at B2k3AomHQa_#~4VCPA#~a$;yHfF&NFC_Q6eLz5_&%ZY-#j
z`{dMpeN=_Y<v6m$#vtM at g1D<(>J64TH932eCJxT^8&SHpLkrYy5;eg1t3^;q2n`Vj
zDR_}%1zjGcNLF>lAxl%}+%K9L>ox=hwqa~^jS-sUb%;IBM2aKo8);4rlVF`okQq^L
zit+YA5;Q_%E^T&dYLrca6KI0iQ9Ah*<^<7{+*cjWP7NZ|`@3rwd~!JHL7<yN#zLz!
zJkl*D4gFy_jyiaJRY5F4AM6XbQiNy7g$%~*bcpt at d$&Qp6~iHj+Vt+7+;h<BDN!Kk
ze`f<7>W#8|j0pE^`PgwA>Rq7i165hY$AYux&u=42mI5WhaCph at OPSa_WIr$u!Lk>6
z8XlcCY($Mev&AGdZ{|@4sSmkaKb{MjcDJVHe5!fKl~e~p9J?_8VxQR$e*#DNzgfZu
zrdv?YmZApUI|`RadH)HhWNh!RY|e%|&0)0GZihxrU~HB&NLx|BINf>>ApqvIm-41s
z&AFwM;i+RlxWpdojM+y|_5s$5k)!~#%o{6#Pl)6x9S%t}d6GFq7dp#sf0jCJ!F>{*
z%oMBYzie3vTT1A)3X9<qWr#o%DpgHVBWNQ%(MPtIq}!x`WVTF}u$dMCR1NOu5z-&h
zFBj;4tF|9;(sCXeDQ}4FY52xLr!eHyq~ZLY!T@#r6Qe?%`CwB@*MH0BPZC9JR_X~P
z)n>q~WIp_R4st?7K~46=;o>8vV0MWE2as0iu=yl88<46s0{zo8${j0}M2 at 6Qf*@_*
zu3Z>n&qkf5AXiGLPjzET!30GgC^<PuJc at H5P+arGGfdvuhW0rZbmbWr+@Fu6uuhnV
z<Lb*58uDMT91I}bgm!h0+cU)&a;25y6DTHJFk=vft;0U#fBFrD6vuauZfzt?JXx=t
zOTtHMH0SV;+?q%MjcF3aM?qibLC>-&_o9FJ_4iLa5aiQ`{n4i)wJ+xlY*(4mwRqgE
zka2o at 4=A8T_l1npWKuur{%9Ww{-)Zx_hjQx+G&M%+eFZzWCA9)hf{Gf#T{`!cI=n|
z+}PM^lt&I@@Hy%X9uO{@_RK=uxafgbj@>tiBPNJKW2-He`hJ3~>Aiy9AYFJ6e1Za-
z4AC}dJI*0Se!L1b9{lA=m;>s;DxlGG{gA0n+H?<STOcLzvpCE2^VU&g{@_WzaM)pl
zesplfeYE=VHSXf3t-9CFMIjF`cI%{OW5r1+YF&|qQ($>sN4R|}p9tjt*M{GSPUJjb
z$J$mTOC1mJp2jYP)9)JvM4**d=?#^zyIhxwlgK}0ho8xm)nbcIGFM=r?bY!U34^!c
z%dxldFi^h&#=MGmr*tE&VBSS)llx=p<ZRcGtRD1rM^MA?#tT<cPiVZcg$?N at +KM+9
z3igHs>0RfeBju at ErUjO^2T2jB$JF3?I96(*V>?y1V)N6?k}=0DriQw4mD>(Rz@|nP
z5ligT=yNpe at W4~pKi#-G6H*+ at 4`C5_xH^n4ZrG&!$g*?S8#G7}_d`*Wv_g#*HRvw!
zk^c0q*&?f>>q%Th`TNXz3%nXrvP^0_3i$JY%RZEhpw%<@eoL#OAt)&kNI79&s7p;(
z#t#C;x4wbxMRxD~3*-FLIB3TvD&5fju($rH=!T_;5CgP>dy~dr>D#i$?l1|kZZQrr
zHX1_TL(x}Tb?)9vU8<*!XHvelGL-ggv>r^#D#2M%Cw(xd*YS}fMsYY$cRCx}9GwAl
zRPHmRERTE at 9@{+*kECcpwWW053mex<eK<<3cj7JfPWAvX44l%oJ9ZmV#Da02BhrYa
zUWnUoQ);x&5Q6c2r1wRa(TNbv1<%_A>APWT(Q>I!cGm{9P#9C|0{T<V_6-9EiBX#i
zm;1bR2;<bM$i$WmY~90yPoGnVnsvALp%MfDv4Sd6%~Rtawx>5t68O8 at D!Au@#>>SI
zvsRJZ3pnZy$wbkV7BV&r<Rk=`zJVH$1d_9N?QS|2f1X6`S?xB8LvSKtwjl$uJWuOD
zkYwPb;R2cIi6bhvDDilp{3f2$x9KniZ*GWeNULLt4l^VdsZ|Htn0NW3lqI-FYv9bK
zt^!Jgc+P|cCj~p1;(0Qg&XJ{vz6htyzW6at#`qdLvV-WCJAM|Mh7T`e#VU^P;j-zG
z_2#-jzZSE4EphEO)p_?Tno&~@Y0{f7CnnMSauFB~5O7U4JW*5_)IEn{{bp(%3O&t@
zY4sm<<Y!udExHh7y>#tcxQB1vftvdc@|%OzK%r##pv~ZUP7ln>M+RZi%ZF>j7(kH8
zwRso5>PJHy!U2`Al=rJ0tDih1i9P_YEt5U(#pa<qE-kaK$UW`8rDtWzccn6P>}i)c
zq4CNPjuofooLewT#1Ns0&;4pXtW^o~k(Cg&l%`uaz^<?s1HR5f<l9=(uJ%UqxhWk6
z)L3De{m&oFvFrs4WE at p3Im&^CbmhT8asB4P0Qu at apIibCW2IKiA;?+9L%ug8TZpmZ
ztqe4FZCei?mDgFyvmel8P6H{ssri!}WW>wJ&mkLlB^nDz1Zwi9^LvFaV1sR-r31OA
zq#pc6!c4S4rs&u;s at LMqZ4<ZY5pJa<ET;b#z=LXyygW>CYbO&bjm%!D%`7ukfi^o(
z>T`k*O&5+_fyt+=(9fr$p<bRe;*@fO7y)B{j2KpuB?DA@(h*4D8#jU;l#1&wVhGId
zus`N|h25#yD>q$PV9*WCE6r%&sn?JyXw<l{kmrt%#7=1lT;{1I&JbNL)aXZ<f(v?2
z>EYdX{Mv)U9PJ-?OZXz{9NecR_5>R+$LISEOG0(*`!Ag>Sz`wP_X)UJxGR;xc?U0M
zdhJ3C1GTlgwPOygW^q^yW21%7PrE&7z!Bi(tu%F5Z*LA%>_y1I!&1jCWLyrsZ%t?$
zF5n(`z;VWTORrJ+^YY3S!A7g572+b^R~~b1VVGsW-)DM=I2^a7xlXHVucrv~LKJBL
zrLhlTEZhzzEXEUjh!%%7%iMibbRjn(ck3neqC|s%=jN}o!ggf_OOzw_VG!naVsQYm
zit#I7MJj87Nn~mPRHe~LBu)bTBINs90SDPT<Q~uHRFMNc0}XL()9tp(PdGK<=F^O_
z5KS^834f#&);T#LG9d7ETkOO}O_OCbce*dRk_Qig at fldoa3T|GZ-@&#^e+%vg7X1!
z4t(m?mo8rXr)IQx$w>ejeF#Jsx~33!X)5Wd{g`!O%XBls#A>>c9D)3Nfjg<qmzroS
z>Q3bn<fc4~Is>T728W0&Kz<jJmODt==DVg4oC6(;pMd!)Mtt2y&6Q+?lG$!kp<-IW
zOaG=m|5$C-9B8)jwp&2KeVToZP){NVHPk$4AyO=$G?)IHdG)~Wf{p$C2vA+bxX~hF
z;y(b1^3m%R^<Nqc;O0MXM$VX)7Io}k!Pb>5<so0bG#PpL+qzS-MZ%U?^5u3<y|mFR
zLW~Q$)Tmk(iYDB!KD<lVwTqhh0PNG%+JIn2H`W}P)-iycj|ZAe_aLQJ>#`tcJAy98
zmy~13l2~!xWpOSOV3r5_JG)5Np(D@{YvxqG6%5`Y$?tp<2$}OFF7d#cvb+|G>hMop
zi1%f$-keP7gwa at No|S(G^|`B9xTE>W18^niedh!jwsrl%Zh4XrwFjaCH<5LY$d at +a
zaJ4oFwa9FFw~d-J43J8*wMMsy!AmQqW)wH4+%7%+6HHz1zHWM_oP{=bUK(=k)gKAk
z&j7SeX{qhue}3O28WCA(lXv#I%;Jn8DF)bPLob7Y0#U<iR&gC?1TVj4a at bTDH8xUX
zmsy3 at cJ#=c83KM|Ygt-yHAl(tOoSm1Wsj-gwoHu+d%H4G65PWq6?KGJ!!NJ%ZBEdX
zYp~}dl+g+ucTh`j(>*`(PU}J|M at LNIAjm`sI_-IoaCi=96>qt)2az?e2>v_%Cg?A6
z>UuGlEHD)u4WL-)xSqzNZvvcdy;OpVH4l>D`{Ox<h-n at adnL(aFXW!9zKXP_m^n6?
z2b|ARi{|1{<o6&#kzh*^nQV3qQ#N9aWS$o%StP+wkIW20P|TRxO`RMAhJ^N#b^W(Y
zS<R;A=*aMY+y6FT6;``*T~iU<oc*S_fY>Qb;=Zn{j^cAI?hqd1?v0coSwE)SVGKMZ
zFLgM{;<P?BF9Fm2ITMHKo+A!Ft=S^DxADL|>;fj>&BmutTsVT8<`zokVH=kwWS0DC
zTX<vv5MJOR%=YNWT_<v{h<f(ynQRS>rtv^RBte}OMQD0f%uj;$hnrAf5jDFo+iRNv
z%@p$@9nghbga+b`)bLR^g^0ns(wX-N6HbO;JoS9KMK^3t_-h?r8Rwvcy^|dB{;#m)
z&U+_QtNCA=M4?lTf{uRsAp|C{Nya`KjbDS}p;9JU-C3nuA%u0s_ at D7aFa7~4-KHB8
zDrkpbj}XEP67)l at g@E-USihH`6KfTXsmFL$=0iW%iD!BODYO9+NpJWZ(z#Xlz!>(S
z<WfhXyDhkfCtFewjEIW05ixAQ(_yE$i)eq}(f$s(j_4Ll<6?Z#Cw?i~S09Hc^?9Nl
zSsC-vfhm>O?vU7jeR^aEI;i>P at RazIv%5UA`yQBkx(boy%=2oAMA^1#O{g_|ep)AP
z^xK>-WO9zEFWBDQYfFR!VK1wKSsr*%uoL+JQ(C*<+%P+e{3PU&a+Rl|g2_d_R%mmR
z2lpY$HfKuF95zqnnwC*(%rlBZI!5dvo;*_sL^6^qsl{7}50-<mzZh$X;MKfm1N0uC
z**(G5F>4%-0JwK_`5s{@jOBJN2$@|#?nP0WERLujE_IYEv<tp+@=W3j6$b`3KyZ2u
zFzBJf8jH$AoKY--wfrP?ig2JmGZjZz>;Y3Vczl@??FT0>J+cTqZMYBHh7;`lcO&40
zTu+A`PCaed?+=(vIW;+l5KQh`IEZx-j9$~Pr?E(mxJ at SN$4Z)bpsG(6Oa>_Qcmn$N
zT>HA`$^ZmwXy6{$I!#`0$n*W9WqVEmlDd!Ov|wM(z<nn0Z`opJ^yM%OH}GUFf4nn<
zj(h`@t=Xjz0}hU1ZpjwO5js1GG;2uFcaLVHl!WwnhDc%*+LVzTWKX`nV2Ete8Z-_A
zXK#?rQ;?a$)NYJW|F>LLF5(|`|90Jz=TvCbL-{B8h_gNJrctz^v0qK&$2saDM7Sh}
zDuX$E9-QJF8>nza-fzu=-*J<-lOsSMb>6avpU46~MZ1&wCV&>m#t6p<<LiaCbhAxF
zD29y3-dVU%aOF&suV*($*to%ek@%*S!Kr^f&BX)OCzD6^{KuU*M~G4(LJn)=LI7VU
zu?;xGeb7~B^V>wUkv+&iNBCJ7B8Cgs+gGd^%_&6BXZkxFN<=QO4?DwGvjjJclh8a~
z at V-+UG={$DY+_Jj6y6Rr;Tim33*itBG;SHcvCpJ9?}O6<$kQlw0f?2AJ~h!G#G;6D
z`7gv_70~J at 8z$-sDZz2=Ijj%uL^JqE3a0GoBt;`i;_<!<5*?_3DHN(wD=ytEv$krK
zopvA+xwtG$Hp#dve*|VM!RJyL>L%6-g09modPw#O6m=7+G|_)lC>(v!V{jGe-8u~&
zpemtv)Fp1L-jy{u$&!;LUiB6$?PC!lO<}G6$x&od9 at M~}^!#_8=Xlyo$OwOeVmUDj
zXn;Hb@^(f$9c-l4A?ko at --x@Uu$D_&ic|_ujX&XqHX-w{Nfm3QYMWMtzXe%h)b;E5
zv9&|L5ka)NoW4J>wg)ylFXX^y- at 70r3EKBPAYx-qtNl=a%g-Q`{l+_|kXhB(<ta@;
zSNzyTkC42bR9)%V@#`=;<`Kb=Oat3UR7Z1sLK at I<es-u|9YJs-_{ti)O0Q2iT>Pb{
z0a1D+wDmBf;B4K3El@(AM5_s7?Z|vgUgcZ8jX}t;<YeZS<}~0kS%d-<P6=Q?ZUl(%
z at pdb0c@Ow#rZrFeO=gLqAEi{QzTdXNgDikU_nQ=q=R7z`Y^n!x0IQD~c>rc6R~}ab
z81NE3XK^hs2WyZQjQHdoM&I1pZk(3S#Ua!4u)SLD?^pd+8j;>RIa3uXvLf$8Z-U9W
zr`7iU$NZVN?q2c at 8)h57H{HH8K~_ef%W`U)$g6b|IjG4!r_Ot8uv(TMt$22A1isSC
znHjkRu<C)u`n<Vc1^Qkxmr%?w_(_ZAB6xtZ+((+D+J&&8%$%CH5tW!pm0w#JjXw~h
zDxp_j=~k1gt8P at D9Q|m;(nAJ>awwo7;V3xS5(i*P{4!C(6ul8H#2!3BjJ5_nUV<mT
z5k&7kdyP8ElcxZ_XK=WPJup-K2&#xmb&(UWZa+-43UP*pG&l<c5|bbRc+{#;!-+-|
zXcu&^UO<+6h6%ipKl5wRz*ST at M%1NhkM5O1x?;q)Efnza-Nc4AGelkZOG>8xy-sqE
zg+2h1hiM}361fv0x%W>WrlU?)T=(bzx at 1pYUjn(h4UA5O&34h^vE!crWciq+Do&Zu
zv>N2X)PP=<IDHG-Umk>xYW1gFA`FNv$IY&`5oI}<4EQ7hN8j&EWQ7I{foi5=EGS|S
z+ud9F8zotgGBQy2zVLonZr)iV-$?AByet_!u<IIojMLV)esydWtE6oYvbgW*AcZy7
zZpxy(diKJ91nW<f>=kGym3Pmg@>v8mXhl`VZZIaLU`%R}D{gUzS)qzvcRZ9`VNQJ^
z)XRSuG!GfWo7H at X94$tHTwrR{1h<@!7}2qH5x>oUgaal6$YwibO6Ag2qoT_t*Es-N
zE4c~uF7uPORxqrOhXB8drxwV?jw~4ECITA49Y;aMSe$&R9;FROV8(7hR4+Ui6K+l5
z at 9xK;mY%ppG)W;Xt;%x<^e*+mZ=G}4j|~il>`-07196sTPN<_kV<X1`GLBfBt#N-m
z^c*Xp1StU<+I02n((?4osBA?tE#mXZ`pLKu2|zIhKF&|1na+|Oh!-_^0>!aWwG2_=
zN79J__f?rC<82vYHBy_9^eVSX!x9iy+-CPxd*jGr02|N%l{UUPwG_Q0$yiThR5=8E
zZQS~Xo(rC=Jy93z>64%cd)IH;%OwP-qnK%TEacwtib0S)3>3{H(ubq&2$frI6D=7#
z-nW^RwU~NR<HBrCl}m#iG7r1@*SBQvCCH;VLiMDT>kjXvq#&JCjAX31Wp0#(rKJHm
zEm7VfZjO!kMC3r_pBXEmEQs6`zI8O<_mERA(qr;8-m`C~4sti3ZWDh7k2|Jp?u6d-
z!j%;#v7N}@wk?Ls?20GOrD7a5Tj`^a%2Q!(UhVe<*k>5S1}4p&&ld%+4M%VmlU-s!
z at i0mJs6GH##Dz?^!ZCtgfy5SMs)70FQpSapi6U at o4*AB!Z=*UO8IPp;pC(IfavIGr
z{3DW@^Yy?v133yrK at DzPh-CQySrrTN2;|^kBq2AI1r^AQrwesjGEqpa>`b*t&|i43
zNg;x$Vb6}5Jp>uZ37OJQz7#`p2#pQW+fL?r<)aWAo;vl5<WZUg`+_1q83XdoaRA*D
zP-_Mw^gQ^=PgHThk}Srp3refOjb?ff7$o?$Aw{PAu`GAZF7g`*wS2*6)`r3o8G%>X
zM9q&=t&DttP<j)bit4k>9cDVAQNDn_lDf2E<RL{^1)RW(pJodv2#jD2rF$ulsHJPQ
zt5&^vgDs|{U3_D{+wq49w at +WdtfyL`r5|tLP031JqGKKyR#HC)=)WI9G$ZidY!Ygb
z7Pgkfk7faRu^$q`@ub_AimLJpO6yOxQ-VzP8lqMXNY1?|oil60X;vX6odZOjKnSZF
z*L9|)9|wsKDoa9yCX0=hu%vT~QE!eySxuo0L5`hzYT809hV{#Lqf{hI&$_%j<o0bO
zfI?I}#bjmYEvgG`R&Eoa6cx(VZFlV=MviP!^-fD2H9-b*h_D7Rg8rHGjF5V=`AUtS
zJafkeSokjr=nWX^WE?40eR#L9`%VY)kwhL8n4W|>61kul at UoOW#-Ve5g+1Rs)J~|1
zOkl5E8r#>GtQmXvoP~TM_T`R;ze>Wgo(fZZZD3I<sc;sBBUkHmpf*mZ?g-}*rV*2I
zB(87|-88|+{7Yw$=~J<)E|ciq3bS#twPg~|u#Fxqo|1$;328rxQA{@_^{NygAK5jX
zM}HJOB&`d6_bOiiaiTg%3|``{K%$2L%KXyzHQL6^Tj$+9Le2}R0$kMH0%68x<TYgm
z3GU7Sp=74QXZofMrJj8PYmVwYLFgt=6f-_cU#8lZk`3<nn2`JSFuq-%)^Ypf?8+83
z0lsr?VSqhjpkjC|1YqrlK{kj2?Hf?8FSkisBAYV`kRL}oWz6P?g99RV%31wzLD8v)
zBg~T+Hc}K3)~K7J0~KWVHfkEU at 4pbaFRNV?4pv;qG89{g;I)QJhlvPl3oU+G3X{MW
z3T@^9xpY>M2&baVPZA4^?p7*t23`wH`OqbGGo>CT;#!xHR5_M=*d(Yu*+~D%ftsP#
z8TCB8pcGS+i(EE2x+fp;OBQ|p2B<{y&CP$5c19X$D#FHcwiasS_?KjKV-WNNG~Pld
zQNquI<9q07(yRm3%t)XmN~}#q&doYh9cbE<?~bFDFKErvQUDZI6l2M}?D3E)wkBB+
zb>a3^&j_xA3Gr=2Fw<-7Mw-BYDvQrzq^i0i-bY=-W-tW4ECW3FbL{w(E at S{>{W449
z#&c*IV#9<1Un0Er)sx>ZSrwF9Ah8pn`q?Ew_Sd2-UY1ZYpNcwqtX(DQcvsSEu+Mjp
z)<`=mG~ul|Njty;r(50`a>C;727Xp<aYII5jCP#BV%aB+(2-Ev-E#aVZ4tTA3dZqA
ze14Yi$YPyHFpD<SfegVCkj7dtuJtTdz9IM#>xOgku|u|0 at w;}MqdW-VmO^wMSSdV2
zv{N8AH%XOoE4|4KwcxV@`gw5$x^xV~#yqUoi2VU%8)O)y&_>KH74l|(D%2qhHZn7F
z%93!9c7kq(iU^)aQKXE?*P(=h3e at phry;#w2SKCSSyJc#o(UVzQOqW)X3M6)Hz3-(
z at Z6MJG4AUH(}o`69xM;HVMM=F>>qB63P$W&u>rDefNky;XOYKL48RbvfUUg`_o(dq
zdj<#~MkhfmlB_bR+8kq1Ty<1w_8-R|9LU&@MAIs6PNH}|WL;F=(ojEuKk?e_b9h(p
z(=lA7H_ at i=Unhl*39_73At#}EILn`$%Vrn2nu12YdH7uW0?NnP<sx8OG(6Q3GrN!w
z!c%5N3UmK65`36x6`8((XzsBz8 at W_wlh6hAJ~;tzLS$8Hl?EV-neOje)jlQMd(ZYN
ze**mHdGg&+#`Y$iM2d;L5VkTX8cCRyN2b+a(&56(XJ4>ESwS9r3T-%Gn4CYg7vT1Y
z5;sBB_1 at n%A^R#T6+dUTXQKy&3RS(oIWUZrq%;*zPW2-Z%F?!2O*1?wq>Lel#fm`M
zPy!$ujckYch=iDrh$=LKs2!TMK|-doMYk`MEChQi<wyjDJ~t!rbF=p^9~_{fU4?>;
zDOOl24%w}eiG=VBkS`G at V<N)Fdd?}b_(<c>FtJGJTR2c*R{AAlO^zLE6vcRwY&UO~
zDOc%ZPf?Xgu23zXU_ZGe5lKfw?lfUzeGq3?VCq_yv)WY8!#Dtu-G-xB7R8yUs#mei
zb`=nwuy##gJ6C2!6{j2nJ!C7My0yGPl%y*knN%abr|F!hF;jD8YO8`Ak-P?pG|llz
z`-LzKPD&~yD72wVHDIdodZ{-m=>#kuq%FWh+ZT!*6X91pi2WzLFr)=>%rAWb-Ve92
z=MGgoS*)Re0H#i<^)*0Ko|clSA=!5~10UGz*lk66DRMg`(;U*_7#Gq_U0j?lln2G1
z7QBw7ISks*_#4DcW at Cr=XC5GQb)nz|!l|mB8WC=l->9yBGSv+lAiQIz_&DMAi??=Y
z44L;4he*qpx+jZ`)Qp}KgoR<pQk7ThjH(SOamY#7EVSh`|JRH)vtYQ-+@?bh306S5
zE21qKrV$u!&2k01zyKk}2$0DXNB1XHzCFRb$GNt#JbMD#n`5`U&uQ^CCoKy^W4<=n
zw|!5eBIGjJH}KW`q*`@WX;B-mgaMOSLsZ)%Xa*Q;EUsQ=0nkb0$78{m@&n7sOQ=8e
z6<Cz346r;a>;eL)971BNC_ER1HVik at 8`>itupUKnUBb0yZFF&z**p)sR1ZBtPIHY1
z3h+iERZDR2&@B(tqhcFXxyu^`CX{d_swAIH%b7*A??S!9llTqeNP6g~QgkEk2p?K1
zK`l21IN}QlpfSJdzqBAC0 at v{~s4|&VPY&uLM<kc7GoOkZP+g)2K^<>(bA at on6XY%P
zCdrNQ#iKC7rIJ69x9P$MYWkA$s=M6arG#BhkrB}iT|yym9e;2q-iYkCV+F5L+&}c<
z(@8U3_yd#MdfXM6_wmu5RbR5?*x)|Mq3|Gf&@CZQeb-|C__qN?NE#koV~v1@!g0Ke
zHyW=heo|e6FfEPaXcF;TM)J?a#mQt2^_3i-)N?2|_yYb(o3(*=8n-|2{V5X^F=@sS
zw*|#<rn3Bu+Ce%R!t7hk6xxU&3_JaJ0>OhpbUyVFS)_s^G!;MBLf0R<z<(cchaz$b
zsUOmmvCxpty}3<M^-dY2(t%$%+*sX*ZRAPyezP_<)36O7A at uKWij{|&vkMzpvDF at D
zHI*HLdu4l76aE at TerqJI;0DDR<`hb1wpYGBHtT=6WCGe<nO?zxoR3s*C$UXt?1OtZ
z$C0=%&YER@#1rMVh=dM>y3Tr^s>afMAJ*KBf0IQEJ<M{g-W5B8VCEC{+~N={-c8#c
zW92iry5Y2Wy44=(2LoW at L9cA+2-(h|ip0|-;`Zlatdz~V>b at A<X97Zf5^^5oWl!2K
zZi`&vOtA*F&d9#dfraWA0Ke5$68N-(zv~@;(L_8vawmLDTn_ib59*J}mzhRX#8{wj
zTqvlx21y*9a=j9A)nvCwPBAm+J5rru>P#_cgIcKtc~-I<G=;>MKbUH)0}F(LfrFN+
zY#w}+05FZltWWlKE4gjul)-qA?<6Uk2KTD{3=+_k1L7!!wsGs03M9MS;aUYa^Q^J$
z`gU#@=yUu*2G=M6oSZ{SsJbaUj>Dvgv;@jUF9D4cp%A1pHA`9r60g`#X`>Z97bt>A
z9QJl%G6PN=olU at VAT>shM2YZn<-a8?46n<#=IR9Y$2oGrR%oLNIf+f~Z at RY*;n<T-
zJ+n3>R))x4Ds7 at ZlGU}&)jz*dXrsh}aR2MHc8IUWFoIw=4qh&qz*WfR9O~vO{$72|
zm}*r_4F;<8r&{9Nmli3Leyp>PgJtI?7sKz){sO9d{TNbRZVQwnyQ9uUFEQS at -a27D
zX|=L&>)9{OR)4eoWwYY`^SjR9Gg&coF1lpf0gvs@`#rc{Gb{}Z+_ro3lx%bM+Hv5U
z_=nAb at u>#zV?BFa_2>SDzcnLge*7&UJfx#{QKw1IqrbAc-C4)f)TGe4<lH~9FN`fL
zypgbbPFXZRJND0hqqQgy{|d(QE%vdB<m$i`D*D=yGVXdQCf0=z#Lxu3TIuRHmK=_G
z4?A64T&`kRdF>Y~ShC#~BrsEPPvKF&sK(1<;KzPOQOU1 at XzLjSw}-WtJTok5rr at U(
ztc^RF>)8*k#eZlXRvK^xj`kC4OZcT*@sB@{)7=M+(ztWfuQk`f3TeDfItG5WsnjAx
z{?^IK>8n<ZkEU4yPwt*{0Qa}gsq(qo!u4VsxPvOC=cAT_VZ&zyZzW@=o=(pPc3;hV
z?vI_{Kn*Mka`0DF02G7{*}Yf0(pjKuW3Yv;Dd*YC at Y|)gf5+_bH&gWu4V!TX)PA@(
zg3jD^eSLjjwMIurV^DI;@gkWo68_Z!>=IQ&SUYZHv<FA|WBbkgyVn|TnMRHOr^LoB
zm%z<_3kgxe at m+NXIECLWjU7ke-@wVa&e_?yb`j~?pA{8r;65c-_i22597PSTp8<*e
zDj<g90+`u%PLD3^x)2Y~*IR}41YcR2nemCYJuVPCaG){NR>Mb_ZCAu^gG=Iv2dW|1
zyl7_j#NNxG{?dMk)(S3lqDONBCi-68#h-+;(=*eTLwqCdhuUFp%aG7e#VrH!Cr<nz
zF0M7THY6nEwwKrD;n4kNe#ev}XfuD&WHdZ9L~~vPH<s~=iETnk!vE1S5_baXo+GGB
zo4#^S!4O)b?DKEW$QsF_or1gd4QAK?ZvFJn{_(3eHh%#hu1Pn~(B_bKIX`>U=q_vz
zJm0?k`TT_oi92qVZ+oKEj at cf!@SU6Wo3BmuDP3tzS4g+|KbU*-u$sH?4LBlHD9w~;
z5YcFAQc06aQYq1-LLw?kr4gk$MGDc3L<1UVo at J^CDQTpXD9!VG?^F3cp5gkv|Gn?|
z<GFa$IcM+B-fP|KUiVrHAyJOUQ9j2UQ}%K?ETSA|v#G6(ug)D{k&GRMulGuBhsqh+
z&y==&>p<o6;GakhNy2Lld?nrY6EK>w-C+JbA3b_hbo6vP at TAwxn>XvkB=RgSIW9TD
zjw9yGBB)yc;mBQwfMs2^X>o1&72p-tMtZBYB3hMjpUkmr1o~vr<P8QbS6o;aBY)P-
zEsy8t2cS6r*Mr?HE$3idb`N&HsCfN)2_|58Cnc??DtPyf1%KZ1)I1&I?c;!~L(A6{
z^i>Ywx6IM3fOZWpd8jOOpL~4+6!C@@wiXCknKgM+Ff-04<Ko4O>mx7FS3_8gBBkXK
z*RCaEv!bCsUL`83_4p)O&eGmlX9?f<tg=$1>NCPGP}k~Sit)!}j79IadVyA0EiS%{
z3>}}qpcd2yZxc4mT2&Wy^JXB_=;n|E$4;zSvj(yCW{f4g^XMg+C4A^30wTqFjK^ix
zj6HDs_HAh6<0$)OgZ<iv{gV3p`7 at 2=*|GecMwt!y?)gPK?`}e0lm*)vXdi<zXD2rq
z_vKndgz9G at J*z=yqtU)fIi-4x9uI8E&P0}D)s`)+iHV6mfq|Q!eym5RNR1iU<KXT>
zUu0!xlP=Phz|!X`$Y at JiGf!#8kPr#mmU%1X+zg`|UcRK4m6a9b3*C*ho)#*8=5`}9
zD;U3ehd7!spg>|rH at j}x&Q~pNgWnCl*Jti--ZW+3{+eqX5o at e#WNw3Fk7Hp^5E~*W
z|7XusD-24OF)=l_ww{OTKIhG?kPuHyK&}vpeEITaDr|`h?7vhc<v6iouG(rTsi*SU
z%5h?TvFwSlatSsr6%4(cpL!r0YYR9iw`PD$vA=Zl<^!AMg6k6J{)CiIFjCPNN08Ba
z3fmA89xl+8k#N{|XlN+hK3nZkTG}4zbFU|$hae9K6Dat?(HmGAP=#je)~)j|GvejD
zaXf1GGDb$KCPe?S-M4PtO3ld7lL*W~l(#@cBxNp}mYJCu!-^HhL<K&fp^Q&ZkTT}l
zCY$63)zs+5CnV&K|MZ`#eEr%RLwS!|TOT}jj80lQJA7)YrMaVnPzrI7k=@mMaJ^1s
z*GWk!se4?W3s<gOxsaZo`R2$GoV3u5DbK9oJ!9GONX7uExVx8p+6r3d7fTzXP0MDh
zRXAyrlasOT7b_|%dN6++R|PYOR>a50uUfT=N?`XbW+M~AAsl+aimEl8A03p#Rt6KP
zR1cLF?U5r#yxw*g<50#_TPhw=+&i~CoSw0=aB&}Jq*@s}?I%|k7t at 0W_e4i*6A)Mc
z_pGd+b1cBl&W_K0-&>T=c)fj=1RS;&#YqT(2G!20snL>6#C%+Xj1^2w=V4}9EI(Lo
zQXXm*GRL!y{Gd5^3*s$6bq}VM*yWJVrj(=R2rOcmon~y)H#Ed{bM-3pqBtpXRYgUG
zmyd5ArgN)cYoUaT;&DG3cKP!8l9Cc0p=0LeP*5$;amiWhk^)?Ev;}bCRivcO<AMn!
z=xcFJT1*y#!dr?MoTYmVX+l%8q7`x+bSp(<?o^i3p*y)D10$m+ZbuW*nT@`E^9Buc
z1jZ555i{QL{VElf?+I>*y>vr3*}PH3&fypAw3Ac?6%~t+JP+HjDSXBBrbTTmLD+r^
zL}V;{o>lqU&Cn=g7`2aaX6~7vw`hIuW&sNFO4a9GzRU!@d5i+j2&{1&go+CnFBYmg
zgNE at RX+I%aK3VN>=FAxh35jP9cM0B%jN~NbH<~nEZWAXeH<)0e2o#J6z*X%Sptu0O
z_!InBZ{9TOSd<ilro~Lw;iGTlg)q{%Hp`Y5vIl>R#T0z_3axn}G4~nZ+Bu;Cle^a*
ze#|3IlX9cf=$l9fX~ATAn~mzO&YdL?_M}*{hOz~--FlnZ>J^J;UIbS_b|-S%*$jF2
z!-o&YoH0y&_^=3c at 1e1C{`f9;H(VCf02!ZFw6m=bH$O?w<5e&Jj*?S7?eqg67L%bU
zu~Mnxz~ZWpWnfIaV0=tVXk8;FF}++XV0#oDc`ZG&Bgc#q-Ra1{Q0p7IcD=p5h`ukj
z-IO&E-MrZ=DJe-Ik(emIp!q)(6_ph_%}Sx&VbP3D#>A9#lv3hhUO=kkATl7&UcK5Y
zy at aX><sVsRhmz~Wd^)CXh?#qLg!3cWT!yLw1_p*`)gVNXX7K&7t~kqHu#r5HsvI)L
zj+!PxY-+JckS(O6+krY1gj9axGSbr0oDw!v&>CM6<H8Bv^U=PwY;pA<g5|Z5in3OD
ztkcjy?#MIP?M-Emr?7X+tTFvqUt&?%g&MaH`vlyzTPFnfHvMR6;i=z}Xd!HpM-O9M
zQdXAd at bUZi<Df%W;J(^}S+G#m6!ykSU0<K)YZE`3KEIAjefQ}^c`!F|XFYv=#V~gL
zx3g~g^atO$bH{>l46cji1u2f at 6%e>1e-;D+ndx0>cS+narzf(moG#%IMk`~I`tax|
z>rtl#3l?xfid@=FPPe$4rY5U(xS))<q7|#C9mUL!OYV?caOcCu+pcLf$C~MXcyGU#
zTECC(Q-X2$@{L*2Qc}+|b_rg?En`c}n(#u4XaraZ`!3(Z#bT at oq&%c^nIkTmul&Ej
zim8A$PP1)QekaZla`2kusoR!gh~#<@|2 at x}7#?=SfDpCECxIqJH?}U03RsNux6xbV
z0~vvads0|gnNsxyECWvdLI^W-V=TzmK6F`kPKFqZP?ABxvzhZ2(99W0dqiVQB(aj^
zb<+v<_`&S5{*@D3S+jI@?tQR- at 8fN}ywr2%%#m>V6<_2_4pd2+nU{}GfZy^=>0LW_
zZU-u0Shh_2d;9epH^^)`wAbJO&q>S1##UQbSM>fp>y|BBM5gGdFd12O*DfV1E5SE!
z-WX3#<xg?K at Bu+K!#_WDyQau at p6yW<w}ef!d?TI>n&=!c$jrB>SY~nL2%F`ZQ>Ti7
z)DAUl3ArBdWv~N)v;=pY&S;IKBnJ|wN=VDHsG*C7qVC|ra~_W$Kc3r-tB3l<hqS(J
zF?wQ><>Aj#IbKLg?A&;}<sg<?8&8`ZXisw{aVRNL?wP8F2D9}M&+LPu8#fk10gp;F
z6Fm49XiWrDHJqKL(3&Nns!9v3s}#Jhkj<PboqL9dhqw9r_W)S$M6Mn7YLzs7Z52$Y
z)nkMu7J2h)c_0nYKu2S~oQ#Z275G`6%1g(O99aPO#v^p&%9RUPeeN&QYUvQS>*Nu8
zjv+zLxNO-u#Gn-q8_3~>R5I2TiVbBn at Ui$PoakRpSIJTQ-Ikbo=od`J_Rrg105#yH
zurM#EwKQT*lkav&T~l+(<Nem24#$oiv)r_tWm!e>`}cZb-8iaRy`1Bc<`N6;6y-+5
zm$R#O`=2^>ibYd_Kjiv#!MYRoqtdh+In)Br3#(4l0#9zwuns*@`|)ElNjNyERACQb
ztD8_oA)I;~4--=C3s5t_G--UhOFmm9jf5zws;^`rx>^9ky*^TTo7!vU&`X!7+}+&`
zG3+7z1u3tDPbxxUnF>ha<D<RFh8$c{r{$5hFwOv!IS6$l8q_`hUM~<Ed$wW24?C7D
zcf_yHUcTH=H3_Q06p71+$1m5Ew|ceHyB<zMAOv3?z0X8%SA^&sbX%s3RM$|(H`3h#
zBB}t;3_)4S<2$!+^T^3 at 13U`yzZFXN)0ND#xa+uNGBPIW{M#;$x0C9f={>?LaDAVR
zA{R|!vYM{YN44+*hL4TDYo^7^p?gvw0s_<`{ycQ!{CR5h at M-Gq4kX^wQPa*&9NKfA
zo*o;(#q}KFxH295tXWKq9E%eDzo3UcA$XZJ&Bp<!n!38yI~PrzL~5}Jgc7l`TH;5c
z=~D&=^e$+-BFP7?-rwZbQnH9s#*qOIw&vSl=;h1EcGy+tK^>y~i)S;3>`D>#JRtWt
z9K>hOo-uT1rlwvRS2&6w1^ZQk#Os#;Rk9IlK7RbjvR3?!RXWc56`3VlH^FV(v%Z0N
z)(1vdPxV#Dai93X(hW9S>9xliaIe-yDspJ2sK4fB-8peURaI3U_v}!;a9Ct`I2*D6
zbIzU}o9l`h=nI!FRY570Egsw4iQTtkw&OwCpdB>SxT?Nc<XohP?vbWqWc=n`qjUoY
zS}?L?c+oizuu=I{Ee<$>(BLqEnaDI|&SVO4JNEG*Kd#({x~*pikKa7`6Ph-a{rmTO
zIsl4+6V+(1=bb17!gFXUm@{ww{GF_sXjHcp^0RWJH2IzcK`L$vT8d%b_T&ii>4!oQ
zSy^U_u}mb6>_>d%<G4igkeAqmyb7MS<~(oD`9CTvMq2ZWXg}?oqUR8w7ZVc`TiPuG
zwfJHzr3mVYb#+k at 5evx?&UM~<n_>gr%wP&(J)i}(X1=nM;1VQUhEpv_se&ySG?eGk
zA%xQs<zVD^cx~emzYK0UH%`2{RJ|r{Pu|qzSv<$Q;d5g`yyaL=`l)tJ)K2ZNa~MR}
z!wcY=oSZz2^dI`#vsc)Y0(}rZ5|8&kFtjD+_&H}{Y{)~c{yX!gy{V4DK^Sw2d2{nI
z)%aQMZtf|~au`04jHTDYEQJrkU7ekN&=(cHd$;$ooUH6hH#axry1bLkf#Mli{C?vF
zd|inhca}6{*;3<yUH$&EI&MKxaWM+Wx#sIIhKOldu at 1oo^YZg2$Y;mJfzD!&dDMN$
zt)=(eK^#3MXeazZV)zb{-qpYkZX@$AE5{WQw(TGi9HCv~WL*#ew|)6i5sJ*X&)xe+
zYwiNyim~Ya at t9r(z2f+^_(qM}5Q1LZNM(%6v6QC!w1^6~(l6Zw&YNN7${^4ieuL$u
zrG+0pu;DXnlw=U^#PS at ZAZJMC_%$?Wf4tYx(Q$eq$~6iCo$rVyjLur5dX~O+(@^AJ
zv)TVF#%f}b>ba8v0rW1gII*rUEf*3J4kc!89}O(0^F9Iyge>h+KDufYfq3DfS91ul
z2^;#5DuU3i&j6ChPHw9xa>A$c2tGyD)Hfqa#!0)G at 7JEb^y#21^0^;C6vwOJEt-)M
ztLt9RJyWbzdvoJ0S=W0u%SSNrQTMUY>!BoF&oSgbc<Z<9ltlgOc1Opow#Gg*QHSC1
zM@{MaNCIu23r?FCL;=w9Xg?O=<5O(jRQ3%vTG_%P-qHkT5feJCB4FSn{d at v;qV%B}
z0JS;~!9bYv1VBRp9x(0W`ucj3>P#?}`z8mIaux8f85tQ*y(E_Ip~1m2NYxOXt$#x5
zgw4_ZJ9Glm9_67M4!L|;r!$9g&#vjt8AN!+qRA5s7}E+vf6qE<*1nXKmLf*o-_4$I
z^~x2#QFGovW!{mK*ZS4*0Gpbcw4%3x#KCpbULE3s`G!95kG_NHaJd=XdP#b_9&g*U
zsm9W+L;F3X<5Z-|l<6K-0eB;_9ksRlyhuR0$DoAbm@#-rzj_dv<#mxI5)X{B^&U3>
zjI7vt!opUX@!N%(4L{&N*S}L51{6aMY-_A5a?~7{<*1f(LVN>Q3VM*BMX2iI&u1qs
z2nK&Pn#8+jLxx>|$d<%`fS!%P$eURlK73VhBjuyN{`j$E<HkpGyHUtq2KC}z)%XKe
zY at w$pZa4Bdt$A%Q7wq`R$jJOU1eVWnsxSEZE<)}`aSV}coXv8l`3n~K8*e>rZ|{|z
zoqfFC8v20e;UXr{+r-57JZ!o}PX>50E?@44!V=%X#wVv10AgghPvsR6M&j;$%3){x
zh77Fb7`}k*aL+-nx9s6?UeHz>KRyWopCeWqwirP{5_ad|%a%My)A-h`VYSSB^r#p;
zOVo0V#bsoStK3m=T7ZGa{A1bnUEV;h#YIK2&$>9p%;vdG4Cq&Ix8d?Egilhmva(9+
zBi4fvVc;AS6O(FL^R=VWHccM)>f47yV_GC7!dS{uML at kpS)MgDjV82AyxTrzPR{!_
z%bdC!vh^Pubq;j-g at v)8Yu);~Ap&%tT5IdU4+0R)U9n=tG#81Ry_8#4SAqkd6~@28
zMu1102MJtK_ at FojI$VV;7NEDfNDDp%<@ez96fJ7v58KK)_gnhrjlZm at C`2HnGzRl3
z;N%$^z!c2ZUyqLqf|6WyaHzW;lU;fjynOY_KlcZS2LeRaqDsYb3SgkQz5OC#3(hu>
zvpx^0{R591s{AL##l;yoI1(M`VTAc^o!2q2MN>-|xAA at 5?EF`wqC^ZLSHQJ{bqPe&
z at Aq2NZEDgL;h~<F;?wYJ*L;Zyk$pn<Y0fuyrt!jCy_lXge+j3=Dkrw;hzNE9L!o1$
z6#yj{`|upaJS%q=m7-XIk()ckW_c^T?yl-VFbhSWKN~l1QndJfdYk_k8Upb-dsdf~
z(cr|a9~^zw)9bi>3g8&=sTsMwFCZ>kh*KE4K}&>4<xO!R?rO!Hvz&rhwW+nWcxVne
z)Qbou(jO$*+}xaH(|nHB_cTGJj-&mF6y`0Jcv6 at MQi1j^Xpb4vnKvvw-Jm^a{`M_V
zfk$v1FsS3%v;KoDTM{p<9znbtf&e_a;rVk~9NmW}^Kr{#yAf&^;fNh-lwFsE%=N-0
zOT5wQ)N%@EnC$w63-e}fcLC*gZ*=T2jfi0Wl-vIGtJ&oEh#;T%5^XjM;B0111;s;N
zxZWWk=Iq*3Lq7ENf77Y>SdaAEd0d(>zLgvjAiBfH$6bh{#~k4+hKC_E8AdFqMCa_6
zgh595cx5b7X-vfE={yk;kx$@AYU(NWT%D7XQ_<fKup5duT~%FY1j49 at 45<^Nf@!zu
z<%DSm)4RMacnhq#pk$&d4BBZsA at 3{v1I4jmf7r*3be1h!)`O4pAGC)sNb!v8hGY<;
zg{7qlguQk1UDL68;zOS6+3%lo57 at oAg0EQ6*w`5Tvu!($-Ka0+2$VH6aDfVD?mm#`
zA_*rFW5d%5mTi3<%AoAME;H;gfZ}RBf{{IsQzY1YA;MX|Ki=xlArdCskM9krgX+iz
z=TOG6hYBWKM>=Q&QYCVBr%pitM}<_orrkBfa|h8Hs>*VcRDE((6t{wcf~mPVZ=E|L
zc|vj{a+9iGLk@`n!6(&&K*gLOLYp at wkS<lLFlMcrUBq^phLi~N>QX5U!+FQ?y2lk)
ztCwuJZiK4}`C}H%9Z!3}GOBBS{{@&L7^$2IZE|3L|LJO3{>BtfPtVwHc$0Flw=6HV
zKko&Fhl>O><5WF~r-e-45}6EsJf52rLYDD5GJ+d6Y at j8)KH*4nYWL5D*<iMIM`D#(
zQ(H<u*>I2aTt=4jI4Ah}u$+$FeJ~hl7+6-FhYNz6l&3oqfPiuyYK1rA{1$^ghrI-|
zvL1ApDK-)sMN^dd5sDg_k(!{SjWWhsjnKsqMOh1wZMflKq#YkNv}A(;BM2FnLTL;l
zvOpvvn!#*7JRXIQe#UMOA_G<o$qgy{dqqdp1Yqkk%&S9ND7G`Jd3_QJH;y5<NHbtQ
z0$frdy$)@27a1EH(+cnyL94thZ?toLbsiwaLFBn<1>PVbbix$B5bKKUsCQIUl$im<
zX=|O&oX4?835`)2XZ(E+52|tO`m}j7ai8$Qrt<LfD>Yl-m|5JXfZGd(Mn;fMI#%c5
z6tcI`FSkOrg2{SoJX1fO2AQU2RlX|L41LAY+cx|_j~Tb_KC~Iy`YHEprhIln0zW=>
zU#E+=@V0GS2vII(W^P5Dp&v|i{O#L$4>eAl5C-w at flp^4|9t0;0BUUGwaprUBA-5d
z_^=9Y{5$-E-8BNQ(1*wKz9dq>T%3}2^ALB$PGF>`JR*<4udchF^4r&Ufw2;dyZ}DP
z9f2>3es(?<;o+GJu%s`sr()MF84kRx${pu}jAQ|Wt8b9+rfW!QpYC=AA&05}vf9%D
z*&0gX&gb+Ypz+W%2PaW!sWkO at z`)H-7FU&jlzKT66BEX7s#eRuT$O^GP#Qx(<cS>+
zysn}Nk6nhoon#0Ke(0{ol+Pk6G;j&RLGYa{m_r5QeGyUqY9XOr)4Lr&+3k2#deMVw
zs?LL|sRe=pS^@FnICU)6;nzPJHDU**3ZbVDiHb^bVCE5AgX|Q}bpS~fw14^XWhZM{
z5WCo1h~=wy%I>fqAGRg&mtEP4b>It#82vm{YRb1Qo?~;R-n at NFNEYN0)r9+CjMi_d
z-$SqkBjX&9H`SA1nQ-h^ykpaeU-9}iOtiOM08$NnWQv+PtL|bB at sd?PQZoS_#v%W(
zDrYDKr&M~%rntCEh5r%anDc9wG(J2;2URvt-G at g<c9RrovtqnD(sQA5EByikl~89x
z-}!?Bb=oTX_C;7WV#j*mAJ#{9jGSRJyUYz|g>=&@<o|j#o at OB7;ppgS3T8|K#ogGc
z0MI2#T<Z2ffMpP4(=ajhhCagm;{~Y?x{2a3dCZF`4&xB)mH{(zivBqDhFLb-n{~a_
z?-dv|9ywU?>QyN=mA{crF at 8!-%6|;1`yS};m at QMZV&<Z`65Y)&8x;}M79zh6oLReU
z+Y}Oeq<B2_?9d4=0iBh>Y*)e~Bk2(wauVon5?5`Cd;%%YWqGw1LU=`GWul~woxqGW
zkdZr3PZIk?HGd};Z)5hE-OYT&tS1;gu_MKbN at L{7V6u6x at USEnS{A?&=Rm)c(?ncX
zX2I4CIc~aASYtWdeNE8nZz!lnY4KglD8NWG-$Euev>3s1FpQJWAg~!d0(Kpo{QLXT
z<{}@>*8M0oRjYfVv$Ipssl5a60tu~h(<9QA*aU!G^cG)bap+L)n at or9{bAbQ!m<A(
z-wPKIOW0Hu at Vnw0H?n9FVx{Z?#S?u;>5G!QyoaU94EF&dWL>0M=1Lhy4?H1rRBFPX
zUbU7+2*YR%zFB(S_Dj~;35;xP3%I$X%qoR<D2}RhzNmy5_hqfHO5a~$5DEzwQw7JF
z7k-HNS^<9&j4Mft#UFYZW^hxHB_)c4hQgPpqzQ+S@<4g#TCdC7^y8El;~_A^_%U_w
zR#)EvWP#u?*+%@0K71LIwVY$mD#Xu4M`3#V)o}!giK)&*I+V1tc6Pdh<Mg8$$ylWm
zCz9*-(9Ry~!Y-8r-i32f2jPQ_OyWxLzzu<Qpa!WDJAv;`;UG1Y?66lvNx*mHnlZ{F
zkrR!#x!1C2@#0cM*?eR9I8PPX;(`YeR3I&|tebA>(sD`)SJxSA456w)1u2dpD!XgL
zGqD*!XB;B6P^BM)<^*>{JFbd0#y)rNQY=P^#;#py_Fa1D{k8A0-0IbHNHmYx*hLj;
zyOZ9LLB5t#T5oh_wE$JobMS>O09BEO0uLMNw&JcJh!?3^3G5(AophatmlurybY4GH
zvmoW2fyfj14Enxm$-{?078 at s@{p5)xPFH-Ni?;>fd2OC+w&we=OP4$VICTZOv;nBE
z^!7CGz<e}gyDhRCH*O at 6huxrP0{SwoKo0*(&I8-Shu44zJO{3NU1UIiNR1mwXFEF)
z1A`7dFT&MX3kcx_d-OKRmkG1btKw9a^6~Nc3@$(gZRA}WTn9y52YOrw8PvQoSnuAw
zTLtwB1k!jh?NkTV3;`qGMobx;hnk$+qC{0q<c6U+PqUbUVMQ+vsrgJS4G3ik*IQvw
zMNLhOo*VRDI=S}%6G>jnVhY`jJV3_ at M%+COYwZO^0h_Z?5@<HsHE-NWCD7 at 7r?zK|
zP>6C#N=nk+CJ52IkYaF-K(GQhBq1s3J17TAsOp;H0O<_h)ZFZeY7m}n+a|(D0ABHM
z*MS2EhDSzx2f<u!KY94>%NH+-BPCBY0rujArMEJKEJ4N?DbFCVhq>dAfVFY!mBI;i
zfqpxS4SsR>p&Fv|v at 3Mip^@DcmwFtx8$%WE1(Gh=I9IUFB-v2%c*9c`%>UKe6n+IM
zm?jv!P!p~8wzg<cG&o;!%$mxhw^2|N`lxQFE9*CZgvH<M(&?~PrTzP_*VzK6s6Kh}
z<REhTp%ZfBJ=CCglGxgrL9{3$*=;j94lssjxSD$(^`*$PJtw9O)(3a;gizDT3&9Rg
z-5E5wfe~-Q0%-3DcEAk+Ic(OvC9|&XXH%00)KrCU-e@;l at MS_|uBIs%^UexYG^Xf|
zXK*sFi`oOYhV-IR-MN#o`(({s#*E`1=Yr7jy39hR9gzHA=mZMcijYAV=)8E*46Ta<
z2vP-g5&8lpNk%_YoDvTr5kCxJ6W<sj+A4S^8P`$WLR|uS=*gwhrOCoV(d32_4Y?mb
zz5zig=|0i%uJpzf=Hq$e0kS%a^~1V7G+OnoAv at D@439PytgJzX0cUk}H6*U{33n at b
zgPM^e8JczGqpU+P$4%f4=3iY0{U`j_h6A!Y7`eC}ydC(`-rkD%Ny_NXe#e|u!7$4x
z_E`cwez2vx7cEOFDu0N6B1A at MFB*Sd at bZd*WFvM0&jTg5+>lJCz`SkME`J76#Cc@$
z+3VM3NMh_kF%yC}CV0&A+1b)&=H~B$V7Ha6$oe7V;vbs=^93iLB(<jyHWn>J)vKjF
z=g6brj3l2TB03uN)n=aKN%9<toEP#8B<9!Fal?EgH2VJOiB7Y{lszbFM`ve0<E`^=
zH5!}*3cYKb`?RP+bsccyh4Aojiz)Ot!7UD+EB9v4b(~?e2_PA_3XYT{-NbXaDwJG-
zW*ti52yCjB-OeD2_N!#w1HCMLO at -75=h<=Tih;5C!XZv51jDridB*u~If8Ip%us_J
zIsw(X02v~uP#ys*+2P)6#lg6T1F@(taN5q-!<PX8kV-46tlXV)f^CsZ6n{Uoz+|8g
z>4c>q(y at Ss=J}SSYT`uEgAlheQi2hp^N>T?DVOo+*Xi6YC@!W(w;cVL7iva^JUqp#
zKpR5pioEBlg>&JAd7r+7WM?4~8<MTxazPk0A@?g~l2SwO;_XvT_tbvm*C8Croq0bu
z2njKAat1)u@$u1>3xR=)5n(m`{3%ig#7-(h&EdrWV_biMQQSFsb~!R4pI=Ii4ELJ9
zytQq`i4!L<sfQkk1mnR5FhM%EHTIBPD at Qh<Ihpq!Isr874NN_WWchrZZJBte!((Hu
zIJdDAOO`CD%{{vnk_#41z0)&Kc{iT2INq07bwscPfJ59yYNcrfsL5pmxdSt-D%{td
z*;rIxf8dE$d=`!x>7#bn;L+_iaX3#ULVn|-&%ZpOkJK6Tlb(RHYQp9xP6XkGe`^R9
zGY<GkDD@{Vk(RB(vHO(cr1QkoE9+GI641z==vP6yj(7=oA-#rJ0VZSZmDi%^n85;4
z>eBbd%#+-NUIwiNDjM>L)u6fYnBTyZqlkPNQh%W at NQm&`#}A11xOMXneTABXKm=&^
zSTMxWDPf_K2584rvr^iRzannjFh at Ez))grt2)0BB`%*tRrH?dP-o)SmlqoQw=wid^
z_YOF2(C<B{@;3um1k259U at 3(Z1?<fNiu~=!;ltiIUeCF9|J?cNs{VfMji*)!f^Hz1
zmz>;OB<Xpp-N1-kxNxBWM{saMLT~KCd<3zv6Z;>qA_NMTQRZp=ka}=OMZMOYgoGHx
zbP{I=?-wObb|I02oY*F`x(<TlXa*q_`y%(p#aI}wggpp`!6n31or}U?Y0 at SP%{gh2
zYPG0jMxGUD(F{p|&_`?Q>g#zoY at i1M2;a8*C at 70dy_|+qJ)?UnAh};c4*CYW4_4`<
z;<&lH`+;iV6d369IKXj`gNANANL>INMxy<XeV0bTg`}SOX$%PlP6Q%eQVc*oS6f?~
zxgrcV4F)3`lHc0wGbwF$$hl#VvJh at nf@*S$-RaZBmK;2Ei2un;IN7Qkr&E|Mt)Kq!
zlew9hsKqk|xakFOEzaEmEwKB_VCLaNVzm^Cw_wLfX!p<^Mw;YTe=2KY6O at YJd1J*7
z5BD at fif}n+FCP^jQi;H5Hb@`i5%C{k58Z)D(&+i)4Uiv;7>`uSh6t~6a&~S3)#;Td
zY}D~4fsR7Rg1+&CLkr-RGk!0!9O8ojWJF?t10o>!I)*NCa0)mT(eShn5ApDPQH7HR
zF-zLK3 at +xBU_i6hOB=6lzx0$&<><Ra9hIvC_k1BMIQ6S-CpbMd);D_hbQi&3qbu`+
z`;w<iKYijPe0r3uD_{5s>WW3(Ctc?2gver!m>5bWc<RDKL(hRZIEen?kky56Q%CTu
zuw#eGk0`V*2trFvlK1qIO~J!|c!U>Z;R65}04~x%i7y=5r$UtG5vPDFqJ1?s7)lT<
zZY3%cS&1_8i6Qt2MpjlD=uU1PxkQZ!nWM6BfG&kQOcNXyt&rUU0MCU`n at ghtLlp2n
zx{rR{x^*PXL7T4~(5dED9m)q2K>({%rTl0TMA8zjqnn_?;(Mau;IM at iX%amCW^(uY
z7c5Iyy>Kp!$~mZ$Op$m9WjaJvDe$l^-(3#68WD9?BPYn*({Sz-h9)2#i;#7d!W_0;
zP(@K8iubed4+<(ngoprxnrM-fq*$?o8#F<0biAC>t- at -1(Q;|$ASf5YmFc$aUkziy
zu_bWT!gF=2eSB)r+lvh{yq{qiaJe<fMh6lUpF{aapd$kp*F at bRAt50QHP<3#UOhcM
z@(Akeuks>E0i&*n^9Ykqgi)}vtRo{x_ag^ZfaWw{!DAj7dO4v{Elh+?hY&3+qCY}P
zPE@;zoW6Z7_Nm<$TB1=V{7V*cGa<Lkt*l5j?LiRq5b(^WB0O6E)mO^{Z&%U1##;{#
z4x(EoD<L0_rHzAOOoi|gQWzcxAowM9eFFnap#`FQeB;`+7(|j!eMa`9Xye?C8!Kp*
zt_(o-e)vnHXB`Zi2SR05Xdw#_cB^m7Qv#VFBGpCoJeotRr(S at Tg(|b-<0H~l!UN9u
zd4|wt`;MwPIH^ke-$Qc at O}WrUli1wXs3Y=3Ua#}?O>DrHx+2w;BFwKqYmv$*g1EpD
zuLCtsn=4^b;~JBgxDI7+ez<pL*c3G4Nqa3W=Q_%a;G-ND(griFd0v^VTUc}~zv|J$
zhvyJx0I1I6=H^DrEat0MuRisgcmueOwkR%85iCNmRArSe)kxFh;vktebR7XOSo=dC
z*HG!+)tZAf5TzeL27T-*3!)~#_ at kH?<nR)KHPmOfADKS{8HT- at 4+va}?@LaaS><!m
zItl^%@)8O4-v0g)e5A=y^_ at FCA3S)V=Bp}1((`t9zh1~e)5EiR_4ZQ5H^Rm_KEQuO
zEusK&(6jP298>i<>a at P6Y*E(`J{KcUB?EiIB=j8|GTM%W*V<lq at IZ)Ia^mH|K8uR2
z8;KMLS*MIFyC)LjeRI1uZ{6xXVjzaFS-ZP<_{qKdxUfieH^We+7-b+ifj%jGSP8_K
zncCJva1XUlP6?2q1p0$aX80no&7bE!(p6SbA!S+fuevwb^EZtIB*HQg(TIi6%a-BJ
z!!Aw}s$4P)K5!rUHcI-e5E%OjZ<{U``K+RXv4I;!@rwaO&L#-S$Z#S$cIysa4dj9X
zorOq&tboMpf^yutN&n#~vJpVJg#1Wx6 at ob_Mot!{{L-?MyY;gw_o at I6kmj!nM>O1#
ze<qY47==rkhkNtj`9UXNg!r5JXp{*!6XH?<*@Ol%!t92A7{Q9ish)Xx%EqPue_~{3
z_dzrk-Wl212>ipq$~yRKPvnF%loUNsvVsAU7clVaLXsz9<B=sO)IE=b%DO)wDm?rm
za>jGJ;Z{pggwz(`+ty|Qif$pYdF9Bg8egMIUi%@m^tHXo-F<01*hCU}q6g6)fyT at i
zDC^vb5VCi at H9{=~IG??0Bx>NB2e%`<cC9K^&vV{2Ym~e9`8|97d>M+mw3-Ik2GK{0
zVSIf20y0bsL0mI|K=FSp^gwStywf5O^GvAN6hx7Z9$KM3F}1SVf4_Tb4E3kx&EN&Z
zgF~~xP0)gZOL=7p7K_LqaA3~cfP~);1^?5}IBcu8Y|$ectyI at Bhl6NSSA^C8d%vgI
zo;t;ZfS&HYoS@*nlGcfz<fd70d_V}bXnCNr0LQ>LG^XV=C`-zMBMG!~NmvOWtaJ9+
zA=1H>Czw!4DGr9Yh)vjT=2e1g at Ph6x-Q?<h#~iIJoL0eyyMf+ANz{Gw3x)(d=6Q1d
z+_}?NN4(G+gO-(*)vxUX#Nrn(UIJy=XM3d>SlcN6LmL7J;#UdGw1KRaCq-`kdiAW+
z-$GNtI}wkq0LQO3VT at brap~&SHLZ8o78e)C6&%Aw+#}7J7>&+V^Cxq^#Q|<Ea&T~X
z_<d`4cefWF@>PigdU|@kncL8WMLUqp-C~})-_(9j3cKzFyur5qELaOK+=oT@;Pr2M
z?d|LyGAv&%h$e#jZS3uZemRg7q>OXF>gk)HO+QpL7NaYTy-aLM%W$&LyW!r^kf)AI
zlDVHhABe-z?`Rt^f*|DdgqWCE>8M-r$Bzb3Xk?)&$DGyc)_qGKfmrqe2wL<uS)>3{
z;Ge?<47plH#_&V20nexQd+X)oOkk4i(u~jh`}>Q!4BH$89gRRhAtXrX^5x4=+bwKH
z-(=?Hs71ZsZU5ubN7KrmpjEu!lv4JkWI}nV0MKwD%58M#Ffy4JV9s(Kq>*G+aB<18
z>1|OWZ&-x0L}d429ozN;^BhE+qM)qoJ(rj72Y{r~=#o);(w_YJt#^Q>A+F`%I at gaK
zTlau;fRz6M*q+D*?dr28TbeUGf_=|B>3>XRK%IwN!bF(KUbc%~Uh{zlk;SJ%;RpcX
zDu}Ftx#g72%y^c8n1wLzX2T$9C_(TcNVJ7m!Oi=R_`v>Cojm!Iry*!yJ~jq1I#)(U
zM(U$S=b;DJ*3ltU63J0PqnmJj-7B~!6iyeSGsz;z=;lsnZ_HxT2Pt{({CV}<TT@@4
z1b|WLa>=y<O(P7Id9njNi5ua7b)>z`aDtH+?5#6+O}}@~VcV@@VufIvFumN>OZ!_s
zaxf5f$X0zE1y^s}Vcj0MD44Be06AgAvzM(WrUpTjm;qi&8R(->%g>%(M;oBlCph?G
zZf@@D_mZeK)wr=`*O9J`^N?bKg<f0}w1*GqUZ|h7#O!-_ck|b;G at yHkG_tO4IpCVA
znpzRW7siwN;hFP>dV33D#Yr4~^MTH;$ikb(qE|RR;jMg;lX{*piO~uiq}#0Ttpm06
zKT>pHCSjZ(C|1soKVl=|hdXz*BP%K at sdN9M!;48*sPEaqR33;cBX8a`kwun at fsO4V
zc*NDh!pVwJH&BCGf~(E{^D)onVn^GN(NP{5nVgy~C$6BA6+NRNZcUO|PjSw9(|(q#
z#iq7iLhgxdCbB6agU;)9?@~dIMFJ|47`t|jgG8dT#Jc5 at HtIYQ68laD&CjZQhZ?Hm
zBy3Q7T)BDkW+mVf)XK~g5D*~eWb<Ygz%3kA8DvHM?AZd`Z-^e8i<0^KThA;MP9#b$
z;06B4$+yVB1qB7!*w}bLZ3Lx858~jG@^W5im~cA0KJR+8RzpLh2k{>1t$>n&{fY1Q
z?k5ZuRH|yZE1w*(3HJBbIes5M1*39%>lqJ*Vh)tJ__Q4y)@KK&T7zsAnQp?3t~cdy
zU5Y37?2CZK`vh at 3to`M6&8LVrM_Uz7)E{+zA3UAV{NqOu2no`GbH3kBloZ52)7BV_
zO?Ab*7Ac`smw7(?Y&~u8IDU8km!S)zp*wb#jbDerf23~i5OVIRSrhK`h!wD-A1cEA
z5R>miW7#Fz95gFMeALy{LS0vgbXY~LS$NKDtQ=@1{?47Q{^62{p>A#ZZ<}$yRzhBj
z1~;6*S$_SIfTcNugS}5pj~?{}m)8ttz7%O6-myU+)$5<eHm48Xu=<gr{?vNMXh1cK
ztMe-yCPuU;^*{=hHG7q$kkDe_Z1B{|iKj^PMR+?GS6B7i<XElFpB}AAulp8<$mSis
zbv`NSzM-6UOYTV|Lh)17*yU1K7{s at 6JaSu61p)J02nV5dv-r)MW$4yDpCnRp1uxZ<
zPXvGJ at 7=r<s|H{#M+E}ui)_YX*52NpKVI#X3_^+&L-zFd*L;+Ehq-RdAWH~cj!<U9
zV4sOgCUS4QJERalFIB&~!4o=}4P7F_uH##Il)puKiwnag#~&y=mEh^)qgMLyBgfQ`
z`_x4Me3A-w-uS`~$O~gPbRwnCEP)Hyfy2??so(?&2?Gm at 7i{3YP=bQNrjP}YC``$(
zeohm*Y+N~%3jiN}DA(%pu^hi+h&#abTa|0U2)Yu???C?%O|n=)!G}%&xW9Z=vJV2n
z2j}AA%o9I60?Y>+{B2c8b5pOvcD3%-^?UDK0RPcxVFY{+Tk)pisc|`~?U1Cqt at +{T
z_pza=FU`#dZRGTpgX$##D2Sr;xB_7Cyu3V8blVG73|&gRAxn3T#v_P5!}WGP>@T$C
zN>}akgZ8((p&*A;f%@KhQMq>jgyHH<o0v&9H0N$vQPEr?@j)!XygrZS%0y;SuaK;<
z+#7D01^W61S#I$)>2s(^M_3#59dJRdzu#-+iI(Nh5R4OME?4lx0$gqZqEJNE-Uf2V
zcZUs8l0oWgi0~+G-3j*?&`{vv3IKBlTGBt()tLdikb)_QW}(ODqJmg<A*@Kcd5#{y
z8|_4pS~z+W&0oKMy;26zb2}@q;t^~`Kt7KuMFz>)nxKTI1P>AIgCLN;sY{z1iQI_O
zO+|;Y)c_LRF>4<px}gJw#Du$U!5s&g@<O<MCQ_z#KL8av{GV^5R<a5biGy$r;(<-4
z at Sv8FKB>C*ba(a+-4f=8nOa6jYf|&7U~GKrzPTP}VPT;Hpx*^VCJO<e25jF96hD8i
zh7Q-BqDUUB=H=bd-F(#uvb(l at gt_c?bQTg9*CzeB)cR#Xg+`L|lx}j)xT&}36wD$6
zBrEgq#BSy(gU5yhM2VDf*fbZ-zj^pI&^NL*d?bmRnwD05^aLtpVsKfAFZXx7udOSf
z8Obnr?%WHg7G7ufJ)u8N!HZS_#hw?y=F%ZRdKeI+jlrTDHXX0ks_uQ1p3X9tn%WCY
z!FEzeRJS7<s)XRVt(QVWV;weV7f#($p%hr{e1m*EKe8G|Hnz5m at R{lp*S;ZRNR&VT
zY1)Z)hYlTLIUCjb<A?ADlRQIG<o7NE`90mXZqxzLfk`5P>fX*uTDRoRr9ir*hSlcG
znQ(gzfP at PKe8FOuK0gELj<)sNw{LX_qSc5Sa^`G|Z5`m9K#9;7q8B-kahy?R+ct>e
zE-uTLLo#Fkee2J8t_Q$-2EfRz>l%Ci;)OaP$TWEGNPlYYyo0_+s904G5xWOE5<bUU
zJ8Cz3DCp%FMAv?KY`Zix<{?jue^~51WdPn|a}4MK#K|{I4<FWx{Xkan at zfe1b4dLd
zP>7e**UE&`7z2A+1j)|@)CPStQ9tU6PA&6|Nm)rv5YDMZ&!%$)V_6J)KED4ar!dMd
zExke|h_ev>+ZS}2jzH#@2@@dto`C@`=xW9%CIAd>_gSy~hMy=z{;vmsZ`HPKMgm=%
zwr(ZLY7+2(jLMVqT}VaD6yh|$K_vuss1<@pU<1N;;s&6%)NgA?tB!d{?|rGAT)I+(
zp}GrP0w+FpBjOA{<aKT)*TX8J8^hTVM-VK5b~F`5;O<)xq^3Mhh>tHotw4fe{8i*C
zcqJuAzC>|xafMvE6m14MYa;P=2&Ze2*@r}PU*`aF>cz0csJ&Id;2%=pd;W^IKO~<4
z?M=^H26#tgoPN#29V<q%#}<+V%k(<!2fO2{qaiQFSzkctVMLpqYuAMxg45V;V<Soe
zL12?rsLZM9s<GUJxJZ(u3$XzZ5#(sRYMVN at YT+<CF`)M39BOpP0)cVge%k_yfflJi
z%pzJ2!)1JJQij(FgKQR|uFEaK8o}1R2F7#1vHM6R^>Z24EVfE`AyRaKDh5KQAccyG
zD`ZfF`<=jED#8jFJ0ZKujtW9YG?8XjOSun#-3**2ftF$~R1hM at R90JVO3lo?_~_9_
zAT6ShMoSG2_yOlLT^c;vCU7(O2<_-x*l3XMnY6z2ZwcXWq;jRAib^X4iO}skemnvW
z2*!_`RLi%w7t5k=HpE|=rH{Qm%jp#P_ at SYJhc5vQX)Fu+t*5R%OvGd*K!eTc)8vab
zLD`LiLD~h$oS~-s^erFhEDM*%`-MPM*<kM>I%Ea-D1_3^WK0G^lN>Zg0Tm-gxJ*1B
zV#_>ByuDi0%RKP(ng)2C`1$xuLCr|mcQTXcK7VR*1xm5KWZO&6tb at T;0QM#n1SyeR
zrekmgbtu?KaB52-i7r68hk={h#IiaY><=dw7pay(Fhv9!5Oukv_+i-vfVSi at A|hXn
z&4*o3y1up$WGEJ-fJ2JZ%_8zdkAEaucv?OIqVZx3F(jF~Lo4Y%+4J)9wtn&IgCrm#
zA|fYe?T?O*X9oV0`8er(0s{HJK&QDHR2e6zu^11piRF<5AqkVBG)7nfG`mu1RxCpt
z-Gb-w?8OV}9+xt4nAtEL4sv%wA|OJ;yYK>~g6c%x5mHC5xVY9A7b&IM1Iw|?^P#^E
zTa15p93K`#bp|T%F90d)-rvUvbe5W)?u8<e$jHc=prfg%J=oy5M3~!HE;I^BFu)0u
zTk8=+C?vfr!lfiY8ixpq-xLQ89xD0$`<J)0wnFC_jO8IghVYUDvL~E1kyB@`y-k1l
zQUlUm9x*XSa%f+ at QUd3)2cxXRr at kCno=7PxQ~V{WLn<#g7Ql*So#Vv#%IO&a`wR?X
zAWpYZsXhjFE%ou^5)gVZ&=rZ>pdksP_0ok4O>NJv!=~Ekv2pY|dis=*Z%|hU0XG~o
z4HR)`)*H%L9v(2ivhWLJKfgALiFtx?1jAAjq|m>gtUfJmI~-C?kl7VM6sLhtY=JUR
zSDF??EaSQWITj+@;}I7{&J-dM)^1XFNReg$H2mdt`XZ5<kWW1fXdl~++_yYr><|u8
z{_kJ at 6E96v!Q?$xK`c>(L#;G+8;u!kNb&QZuLjCV!daSg4XuCYZC_jU17$pL35l2f
z^3l_OR6Rq^8(tQxVDi0 at e)S!Eg?ettZU6pyT22H2cu`~Kq72O4+;0517b+WRNy)~a
zuhags3u^+ORh#4V$ddcWNy-BL`emm at 1>`*merRiNXR}1D37ISqt?<{MoBneH$%f$-
zaw{9O8q&iebz5CWPkX&3#fE>pDrWc9`2;D}fAL~{)g&5^k}7_$zpqPC at fRsV#w%nc
za!f0U2%PlTplr)uf4IzhW=+n=(do$%rS6`CP>e*wB?<EV<J*QVC0z#a>en?i<aC=H
zIZ~Ym1Gqh|dTr#NdxgKL8qYl4H#)HBWe`HqJ>F_nvk=}#n{fMozCv<l9$NfG#FnX$
zs{Q--rPRD&1<oBvOl$|8<T*&{&N0L4- at Y&R?Du_%z&+LOi&}La+IZ2fStAqhkLT8E
zaod54vg92OAThr;=5wQJKt)gQs^)tqq=79gESN0`3jvnd7AIRF>Le8O(BBdN0WP#=
z=bC?P7(a1cc-<va3NP-K9hnDM?{|Dg?xSS<8KrK7RENalkOqO!f4t(Q*H|rBMc!0g
z5gA8FO7`B*%H<=yJ&-GDhOo^_W%b`bQ*aq6F~KX0WDP<PJ39n?c>ek|Da1j!@ZVp4
z6k!-XmR}227a`EDZuXQf2>JE(_0!G&aR^x!&FrXJ2m0-t2j^8M#wRH)Z4UX5s95ts
zxj&yOOc~9_bZW}ma0trD$$iRmT|xXJjA=+%Sb_r|l?Q~U5UxV9K1W?$9TJ+qzXJ=$
z>_-+N3W5$DD%QU*TAX%vr~dvg5R}dwtUtDv@)u`{LjRxtA2BK0fBzEd&;IRK{y+Pr
z{;AsRp^mIBDfjV|__xA7(F?VYpYw?|WL8yIf3iu)p5aO7nmT%+dIjoO$0Y$PgA>|y
zrM=G4cKz_Qdu?~XNZ6WYKfe*P=bQ~fwDI)TiL01Pq+-vl()KgFop7y at d#rvU`NnP!
zWAV!`T6?*jyq)Bxcncn-%uG?8IQPfc*8ji!RpH+I`BbBEqy-#8D#Nbj__{qo$Va}~
zuOA&%2hNW47fer{ga0pTiOy8&>B&@7=R?s*_Z&tK#=K`C>&tk7S*#x<P(XIfh>UZ_
zDCwk{4^Jt7n)#0+d)D;7Q2t)E`_I3M#9J9rMZXWicnE~Njt`FErwW#|HlDh8TSrrp
zpEL;G|AES5sv7kHq-K|lxP(AoU!RRkkic}^xUyFso`-R at NXtyXcy&cZB%5Wc!73mo
zO0wNZ)$wfy_o&tbw2AT1*H6?HOcy3=!i#=og7!M`YZ|CdnrQei1bYFtYVUV6<=$*X
zL%+!#t**?V5hT6oCL2C1mFkElL#|wYU5>iHXCr=pRL%7P9p#;{F=S9Hnb6WLhCZ!i
znn3Hlq~v?s*PBK^MXz7yfO=jYO3O}kachBCD|!2R@($R}={HDic>cxC;?YM-ROy3|
z7<{IasM}`u1nC~l#dUM2-(jS~0BN>`E^>_99-`^@W-?Y1e1{L(g2&Nx<6S!F?8DR&
zw7Zr~zhgncUcoS)%N2aa)@U4SY3bu4%l!(i5l+z1vzD5P)q%S}a>RE8B~oOBcW+v-
z>;31i at Vm9uhL|`_d1ZVApBjf??1SxDshdG&X_lXs91kbmpFtmS3fw%cZH98Idk9}O
zHW)mNpZRrq%E)0%EPkLT9L{^=l`@Rh@!HfFm0M~FJmD{tVzhkFeL9<Fv1j37GP)rO
zv(s!5e-aaawhdDM08r+`zryo5QO<L3`wn~+hYL@!v_$(w)8EUqX>FKVNQH%SZr$gq
zDuxl4&+i<fD<KNzA-m!}`Zj7=ANiJuL`d)6Bs=oBGQ#O7BbRZ&vNJ#_Sz1|j+JCyG
zc_(h)hUJ;mu2!Hp$&B*h??>crM6mgnl1|&>_{;3C&pxZ3pqXa{S`r+4|ID*m%S=nA
z`h199En4H!bDlc at J;iwQhH`(FB5rqX6Upt at CKEJ6UL7_^#JSmWA-+h)-6UPXu>IlF
z%c2 at h(N1K(rg8g2QupG;i$f~gjjR_~9fs<aG^%z)ClsbWD8rOxqk<vJ*!zS7zjolo
z{4>+P9jy;$J`mvBxV-z at X(_+bSX*f=9XRzM(ifRBaLEN#K;&keX|UH1yMb$vn*RG?
zt^7Y0RnS<E0gEl9kGr8T+rYrKb_Oy_lT3yoZRN?;Tf7|8t$R+?;NYn}P at h@Tgi4~W
zpT?TEUGE0Hy}h5c_a$dgPrN4`P)WCVw0)-Y9YG2h^i?r;6~0o(#oxzovizUNum2dD
z8XGeEmr9Iw#4+_D>MljYOUm30%8Gh4f3Ik5_zP at y9GvHt<F!@1yA!lSUVMqwTASra
zPrr~fAO+bYL*@_MO-kwt$;UUbEm|Z{f;?(0NLZT1_%f>6e^`tf&3~?i`aNm14?B7|
z2bBZ9Bj~}#NqYH`sWiB3c*s+SD8s<9A3JKXAamrZeDz at u-h4Z~!7!`por7t?7#hiP
zTU%S_P9D64Ce8vU@<zUr1txu>$32>QkOyN;d3kiM|Gg^PProme=!pe1UQ5yKpIAZC
z`IxDXG=T+7WkwIsqggCCY+BO7GnTl3L5E@*`khO&Vq#YR8gT(FqyL0M-u|?MLm4RS
zR&?gx`BHA^No6TYDY%h5J4 at MI)87ku_U{X+I*aC%q%Bw);*Js*bPNt8tu at g(+T_b&
zvH=JFXEI$=424y;+z3RpR$_ZrFw76f%1fazi;I1kY_IQbMWCxl$RB;3u;*kZ9E-l;
zp6NHaF?*3kpTXiivk<R-_bx1A>!wYLxEZL&5Zp at L!F}TCx7!kEfk+0+s=q{*s`aAW
z_`#f?u0JXF*(0XBfNOeBY0|(MlVvldWT+^{zx{@J(lJTh1($|k`OBcWAPsiaU&`T2
zmCRWA2gIUy#3cOhxp4j0YF6<qK|f?iw3;JB9ehX7&zuFQGZ-T)V<`sHo0V<GV47Z9
zM=@)$sLB#M`B#%IDoT2Y+WvUbUIv=zRs^v8HZp^!7M&#Tkuzf2vvI~~du+FW_K%ES
zDM{)^hl0~mkSTRoNf$_?w9Ec+dU`2o(OxoMK)p18U;S#y9od0IY#0?4`=`!hM$<b&
zRqOV}PV(W$<LErX7gRs(i(uc%x~YB^f#ots=>g2|vOWy=5GTI7qod<4WlIWQ&6*?j
zCRl6>@oOEOooX*vEMLwORjGoSG at K*)C1`AE9SO1`4Utia3mLJAeud>{Klk05{w6N7
zci5Eb0NTc)nZm|itFwxV at IjDXKCN4ldUGY3jS^=`W_J0GknaR1Mw$-e9OKS4X`6Jx
z7?D at O`~SK!wR4t0`c0g^OEaB`>PsXRxFB_P++duOMR_zdY`-6k$A3PWVVFBqa&33%
zyU`ec=6M2cm6Gj|Ok at aZ0J~W1bK;w6WT|JYG`l<s#+IWgmPSt9O2!b)J0v*-lh~g|
zlsGu1SJV<pT%dhS!>G+#h?}M#uW3?>{S0hrx*7K3%d^9es^7c`l{oR+s<CHM>lTvH
zN^tI^i+xGXz71vAm)3H*Nn6V8r9VDv0OaNLDF%StF|%n8Dhs9?*2Y6EflR+Kz-<tK
zmhBC1N>Y+PR7N6sXn#)}^sy=ioHkRj+0*8B{9jL-d>~X)t`xV0LyPHdU%$fiSEJtw
z<qA`)|IZF=`>*BnQ<G7 at NC>Tw?YmaV_Z68;_f4BOm!eO!!SuWM&l-ZNN^IM|8iJ;q
z&_VNmt&Ac`&|nB?S2`IP8KIHIdNQbk9U=sZ*Xln>GXoB)f+5h_gl_oP9MiX<22+zv
z0DvFvX#WA!LV66hR=Q7~GIN80hZIT0rDF&8J<8di{EM0Pv3tV#@%R=r`B+xo4bW-#
z#E_YGeyfAWoK-h9Rnqnam<LI&5z9x%`B-p?*rMr^-_bbh{5+Pg{|{SGFo-6+nJuW-
z3W5k&1 at gvV7vvjyADnbuPiCwS4E$im(VxZH@{7rou$lF=<O@@YP<)QZoF4*mBRk39
zX3`&D;43i{Li?FPRNtRoO)2-pwA1le{y$Ipr_W)Zr-=zt`yL(MMSB1Gj*y`y2*CqQ
zCVz!fd|y?5)~w6etM^|=E)Ou#94enQjASp72~#UYxd_3DcuryUIP^8QW|5cf9uTvS
zGcyGUrd7T3mK3<^*UzDOa%Qx>uw8cO2^j!jjy4x5lqJ;N`+aHHX=mV#we>E}jkmQE
zpMA00vz9raevY>X9MC at 0A#gg>9`qd{&V1LdUA=(v6o4gf{bY6puJ?5XmDXJL1#erD
z^H;w~l|BeaUxvBN3}m|A%c*AW$<?HrFK#Ji8?;vZK3x~3q^09>bGQ9z&qPbel(@WK
zVJRg5Syv-6L0=Mg?uY at a)1LF)-rojIlzryL)YV=8(*Q6`_3xfyh5>+0-_8FOoGzIY
zLWU|)fJF4u-=~Y~uWLz56O)pXiUscitJm?9Oud#sKlPRca>Lur^3c<`bO<>1_hPta
z7n4eD at 8F<}bYIK6K_8#fQe0#lF8FUfm|*G(G<{~r%#9P2NmwJu#*m1}50kYLD7JM}
z at 3#pkFx8q46rdz;$=VjCrX(EhuMlJUX-R?fbun}0al`@vWNM07K3euuX3e8b_VnXv
zv at 4u(;~8*M0GdoVHoi{g=H{o7MVNLtqE)%0ok_h3BCeDfs3k5K(?q7fiNBWWx=-;q
z9V=!{V}U~lSp7dyG*!I?8OIGaO_DNZ2+j9{$4O6X1e(&M6)~CNMlmDb_x;|R#lH_+
z;GaPPnQgax(>zmAc!^Ujm^S4T?A9OWJF;tQ12gHgjYj_YiInrpm6WWVsB2|3<H%@2
ze at 6#_fq|fyo2{g&q(4Cw*n0obYd`LZ4i(=KbgN!Y+M>hrQdU+g_WPMXr~=)Nvz;4M
z|MuHyW`Ctt2ddE$GOY&WV-T5T at 4b}!Gp{>*F=f=U2nH+>4~;L2s8IIz4rSwM{r$cY
ziOL?6pRbvzTz^8b5=0`nhM#WX5y;Lq6IV9ep(3}x!3 at 5zzHk<Ject{XPM4LH0YliN
zb9vkwdtoxUj6}91eiCzU9Q({BH(a>1h0bJHf#S!GueigD_ra^l8i18#np0W_ar{cn
zs<XH}uGeA`9T}PtOqPTV3?2uZ^+lzNBG4urG$J&D3T$T&&ax{nzC>(3rbjx-i@~3g
z;r3+aX3dA}_4DPsg%Bl>u#z(0){V>{#xRs++#}Ca?j0b=YyGUHEtuLf1FO?>r>~Tu
z^@8X|CyX|1MeFWhz-Vc)M)Kvz_$xx9P%gq}t~-1)%W?nq&$Bo22G_8Vj6Z`-<e&5o
z!Qeg-GGDk9l2UVI4JeUh&*1OJ>;r2phKVu+lb9hwFhgdD%y26yTt(Htl?<#SK$J4G
zL at WxEdfNI%hN~{h>QY>4?ktQneKzfXNQhlq%Z{8WK#FJ+nSbE}iy-8N;ah9IVycNg
zVi-~4pmhoGk{7?jKfM_CH^kEY$sH7U)Zo2H<8E*pC5`gGFfplwv|>j<><`~eIcdXZ
zXHS|a9}L~UJ(-qO3{*7NqsH3=Y`<PRQbstalJU1uleqGyOVELVV(pryW<iSSvuW`5
z=UO_(F=`<g24m^Ael0Vy$gPbor#Mf&6r<Se9+SxH(<?Dm{g=mb{td#3<}3it)^l{i
zu=za~<w_7Ite9DfU?w27&CC(=SRHF9Tn;2dhJ^b%A=ZI-wggp!ae1F_uBD>Mp9w(B
zL0S2ZV7S6^2uodEny9%csM>Vx at 267rZ%?I-40WhRKOj7Hgl%|6<>ZKx$xD<Avm@*+
z)AUm4t>6>D0MvA4ZKL3jO(zzZs*Vnq%dK3BZupdVYviZ<)EJ6F%t-Hg%2v?towaK8
zYBO;`Mn;+U;uX$qv(Uy1;%y6<K>4Xu;x7=ZF>Y-*t&;=#qdNpiZb@{&;6nL<@012W
zMQunYD1wCdGe^Z#1%I2NbAF$-f+- at Tg1k~~yi-44?IjtmSPnvm94T^dJYtGwLk*fR
zh!6fo=g6NUGt{0wecA##Q1d0!q~9b6_l6mN(|dYXbOyqjYR$kKC^Y{h3dm6+c$dZ-
zkW-Qj6~aLK6)oF-I_(Y~N8T?W#kKnwnfX3k-#Dpv-WyiMRPPVMpgxWQ8NLlzot^eb
zS#?XO4txWfXHSOGxM7&Rz}E$wHu9j)_?BR_2E}I6te*`#*sK0|iKyzEAnObwqdLg=
zkP;W at f{2?RhAwPq=J#i#4Vw5F9D3jYIa}L)=?bzuF%+itQo!h`hoCr2ZOBY|-l)p*
z#allyKwNif+Ovtcep5&NaDXFf<tUJ!UE|M3c5E7O=Nem|JbpYNC};_AnCSwv5Zg;a
zObpb!9Kr3<Q<!E^5lZM`%8g{-Fl(et<^SbM^?TwIOQ2J1 at i!SaGn?!(nUV^U`SmOd
z^ABcze>N^;XZSz7t4GX1j1KWH^=B)Gm}?~}Svo>c%acUP4=B{)7rQ5f;qmai|A&wL
z{6B{0w at aeB_x%r-7R<464FsK>++(%n6c at mrI=ilD6H?;$H}p_b0109&qA^&yh=>%7
zOGXm}Cb`k-U`lMqes^|N9pV4Ss*rmd1oFv(%z+Fk2}YIq&@<8q9Mlov6`={EcmsOA
zKd9iI{ArrxkB1c<WdPwc<}Pmr{VK=*6%;yUyHsR<g><sQc+t?$p280Oe>sH{RVBVm
zl+nP at Aqsp&ZMh9Z|64FeA!zy#(#{^jQLq2w5PF<xJ<mOE`Uzv?dUJoeiomkG=XL*<
z5Z(d;Cg}K<6;Q|}6COBPF6pm)sj1~(tYPwDsk&J$z^uP2pn8PpFM^D{0Vn1=f^STY
zI_88>cD^I!_j9}bFDs<3BD^G?8wMvY>m%wJAPr_(FUs;p*Uv7`3bvi_SnuDzM;Nvv
z7!k}geq|uB6u!2p3ZdV at RFeNaI(kbd42oMyj7~-+pFVSj0!XT&{@_hTAOG70yEO7`
zxBK!Vk+#a?11aviULsEj9SRrWohiIWmC0<pCBK(o^FN^x6-^9Dsvy*2BGY-y@~}DV
z(hkSRTiEg`Mlm{n)+j~`{$EG&-a&Mj^CczJB<``dx8L at Qm}oJlUu|Ue_3W~=)c-h&
z^e3isE-Cu;=z>Nb1~!*GjJpX_<CRkZ5CfF~wnaunfhxBxUc9wrfozW_Wyh^bXK<s3
z>^lHi6iEDLQTIQ7_RfKdJr;};u|80GG4)YsR7`;<R-f{;?|O~yXPfcpHiFYEDop;L
z5v|AS<Ak&%%R&>5s0cam#A28!mW2dZF_#L$>hak#V|wwg5ju<@5-dnck&TR&BQsz~
zm}l(tC9Gr|vr%0PQDfZ;#F0;NURJ-c$;D1s43xwDX6uCZw*l8*LMH)xickNLyz3<(
zQzI&MY&mU97%47UcgOGONmK&(mGD9T2nVThrJ6jb37eSLpCH2j6<ZHQIJ>@~tr7(n
zylXl)lYXjy at R!gQ*cFtpMuaHAryic)(VsRT1p~=@F{PFND`D*ok(TTIJd~G7SxcVT
zOoUwEK&<*d*OI!6q`rtNCzA|)N9HWxWPsG!7o*`RIU|oet>3{dy~b~ZvF1<av0#gI
zNA&p?jHUI1s(H;<QiMo`3K73NeI?J$(m}`5DUs3|xc_B+u;ZYf$TVK^Q#6mryf8|n
zjX#7;GpXn|<yd+4vkrm41wp@;qxbL2sS?lwQ3ye`FUg*Y$>Cd(4s^X0yWJjAHiRqY
zH!sZ2{`(&7;>^7B7v8}`b|bWcgnT4OK+L_xSD at u?T#%oOEG6JC2>ShSe%}4hhZ94Y
zoJ;sQG-bFly%-F_CDX$x9<x?&7P;j-AQ<W7$=$QGBeX0)^i-SoY+#Lpgq#eji}=H{
z5n8#Hbs$}M`p(Et>HbHMPF3>~y>?oOkGzbLcVZ at 36NW>rL8~Nf%8q9I#=$H9$_f8*
z|5q6#X#1i%qGW6S$SVkkPPGhSYM!JmCS{eOxbNPlB~(<7nX{g9SeoG2&!2D2a&#yW
zN3caTnm}$YwEnHT-A8rIWYNQlTpKc?m~w4$R{Ui>|3x}b^&dc!)BxyJN{+~leWVbn
z at Zc@@ivi`{{PdnZXo`PQ4hW^lfMD`N$8Y?<Vp3IS51VMoKe-gUbS^6POQ><9jFUwz
zl&n}3a5+AOj7p_^m7Tvidyl&R!Pq}-8Wqibv`8q&Alc<4cV?D{A?`rSez-SDl=I3r
z8*tHY|D6%%{|b%)8Avj|lWbkpR?xxA2!}dLI_4xN3zHd|WH=zI`0i8S)WR9B=&||^
zgny{c|D97oQ^BNes)Fd#(CC(vnO`I!Y9<SJfxw at V5T<+=AD`b=I$G*K at 6Prvf(+0X
zqP$v#`(}g)W)or at b7~g+Am!Zq%$_(?)#*&}bV}t9BkfT~1h6d!8b|dE9X=ik*%Y<&
zkJx`TlFjdCACDG48Vw#NaaJ!p at Y8!gA*=cu^F?`Dp`cSTBp^~~1?<#(2{}_+7WxFW
zQgaW>zmsZk8|x-B!jz<LCfD7dqN*~P<qmYQ^S<Qvpv;E_g-=09 at D7aJfGs3jOkov`
z_~%m%i~Q`bKLK??6amGp9dW at w`h>|hBliu92p at iz;>Lmpdn_s+Uw^`PN_#qGt~H;K
zLKK8WVs0qE%|IQvj$*znNv;h at oggrtWK)s;1S{&X`Xup#s3t4_pC3fMDDi`FA}4pA
zKuAZ)wSxwT)fFrS2B<o6at at We`<EG?BF_!?NXF2YfuNddKZd at Tfpj7{sk=WDhzut|
zz>*o#@8+;XgcFl>;-)fP^-sq+UhY1w@;z_thxB-Niu*(tkqS&zntXWouGHvE154D%
z%OeiM2gqh}%;Y!wV{rG#v`$P*-{w9vFgiL)<|m%%*q1mRhJy(BA2DL650d$F8Oh5L
zn+~=Any+NaIYtf&k+_O$@GGWrEjIy5I&0|Dh?I;ObiBm<ow=BcV0Pl#l-=|uS6w9Z
z;L28zp&&C*-|tL at 153Bvgg3gpW*5{3gk`|K`=eC at 2MB_k^SfPIn2^0>!R2-{n{1Rj
zO9uW)x8)Mgg4=VJ=tf|gxuH}4yc#3G3*=|rf;{&K2sSo^ftEQ4Y;xTyF<P|+omB!+
z3}D?iV<1<eC`0un=spw$uT>7>eDdlfgfDv`8ZmbnNHPgTCQeA~B$_*MPxf5w1<QN#
zhHO4INvxcciHv4WY1Dz%#!F!}(GOTVldxb}yX3S-7?sDFg^g~vE=Qsf8ogi)u(Z7K
z`9JMYtumqY%+lDSMr-aY>m&2NgCtsf&_$zri|gcvyutKLu1uBj{3xNR!OVQ?w<{n$
zx-@%3`aRvpGTr?_qKz53{w!rP8Bfk1B7qH=Hcg at K{&Iq2^FB{4n at d%@a=}VRQyIjc
zBokFKPR3TEJhU7s;q1LpH!9m(F&)NDzcCxt5Rlru)^nA`?kN6&SkG5LJlTqLK*K${
z8-(v7qxw(|G7!{AsXO=w4E2z;L48aaQaURLFKmXoxc;opdr4-<t2xzII-&B&oaFb=
zj`YlggR86SI2s`a;}Tl$Jpz2G8re0yy|tcCv$Kg<;J{`gDQfm&Bb^2?)#s{l{+-_;
z$DgTls_0;JL*jMo^*1R&FNUay#?x<ikxA)}2-40 at 1c2e%2<1<P)u)wd-Ezm~;yle-
zxKwH*U{#_YupT{&hL0=Rj85+{L(+yazLlhAasUj8Ga?MvsPh!vLaJzyz?IviW>T^0
zFQaB=5(Cx?d?kZ}NqAV_Pt>QaU`PhHOyuH;GW-$e(9`5kbf0WZEnZTe?0<b=V1SIS
zFF`TblpH0N{wJE0Uu=lSKn6LMqWi+KK4?wLH-9i>BIJdlB4Gg0h&|8f<ogdF%F#KA
z4Wg&|0UX&X?pgcrovNXsfdndOms0BB{vN}bDK-~!GG3V5caW-pCm~}j(FOt8W-6^6
ze^pG)B%8 at FK{6}16%vWYA6rR0UxsP`b3EpcKPu-^c}$kf1T3ZthCjGZd>Ag<nwM5A
zdlH at e_ay3?LEBErQ%r+~q9tdUs64EP{vY<<G_2>fdmsK{hi%#$jR at ONX`&>}<{?8;
znkSmmJWCVXHZ>B821B7VYM#|brBVq^8dWNqXjG}5bCveJ at 8|gaUp&Y2=Ktd7xR0Bi
zeESU7wXU_!b*}R);){C;n`aiPrIz<2z-@!WX6pBrHIr#C8h+ptmNrgK3_Di0Q>>lg
zV>}JHd-lr{I at 5^_#@qV{9EK$0<Am|>_ReB_?E%T?-!1Cl5obJUvR!cRSjsrJE3Y>a
z5I=rZFTs-`zflzfB9}C0HjZ1=;US{&&ls0SX9W~BI%LBhJa|yn7}Zu53SNo8OpaOm
zQD@?lPBRu>Z@=S;l`Hj#xdd(y at oV~r@#zkD7eui_dwTikj~M77pd{|>M{E4P`hUSo
zb3^fWWWYQ2L$?j;gR8+4Q-#TH<gvzCjFSZ)peE3T*^O^#f)0I_oW7SnO1<tqLx}pP
zuE`bcpn29ZnanZ at Q5gQV(X=hu<~o67Qc at X>t9!n+>m$b!H!&Ck+h#Hs^RHznMX`f^
zgr4rza`~2rK4Ik0YBVm|33DN*StVynRA=P;soX6M$`apyMT|LxWc-U^5g%-~#K_(r
zgc~T<f1#vJsga3svNKvUT^Rj#!fTXVQ=dJP>A}rR at qI>-ZFe1<$;ZqtrZ$}AD-~<;
zio}Jk(?$>=Fau@#qc4_o at Lq{>WDW0RCD*#uONk?C6k at M@)J>U*agKAQTt3N1=}kQ5
z>I1WLu)WhdLOo9pA<$(5OCg?!D(1yYB&6Un3^9@)f!V*|R{yK>baE{=Hn%P!%eI^=
zYC1Y=9P6wPtb(xkw(ePs+{R4g1bWbWPmWy*ICwRDdx<$06NS at Cc?P&X!$#Jzbc<9c
z#M<Awa-|xbPF)CbK*lOUU1b(y?Yh-xJ01}5YzE<oN~Lw{rmT4}Ly`xa^F${v=xR#;
zq`N2Ae(!P2skO|f_nP%}HwM)OkfAEjx9w?w^(;Fb*kdJW(#<(;V{bMFXetoL^=ZXS
z`F>^|2>jj%!W2bLYdyM*y`F!OO<R?|ZI3eA>cMtzWv!7mRb(9cjcyEZCZQ!$H<sD<
zGtJ4Zr7SWO1M at mQctwJk3kFe!c(YsdOYZH+p|4JK8r3A0N<=kI at GoRAWM_()hJ0Mr
zGCE~rOa~$%X-BO@>N3$!SR{^ZW(ix$oXTwtm53`Xeuo90*e^yERP|q5Wi*Tm6(W8R
zN at jn{Q3Qc44G9eCuq4OMW^CC&S%?sd&F{b=G&^~FjWP32>j42H(jGkCGY4iC+y?lK
zDF!>W-I=3{1w|5aX`sasxA){hV)y|rwBJcN2{^;6aA2<5vZEG1A!#PEZb*ZUYzuPo
z7<=y+8#uncMB7$}p6CT_&^~DdAR}KH1CvKx+9eyOZ|A^&ZJzN$0)Stw_g%GxO%R67
zxyE2wqC-zl{(VJ7MaDAJ5UDr>rx;ZzyQ#TI)JRjU&zzu$f^Osi82Nq10_^Fcp8>eZ
zy$1J1 at FZXior;X2S_$L?df=&9gRhp46{+1Rfw!)Xw@&8ugj%No!D&GceoqYF;1?WE
zo?r%vp+TxmE9}~<e?A$AmE82rc&`R<$x2<9U_|3 at 7dN~7F$A$rb(PtS`)ovBCXk<)
zeX6jej_Dk*D&NPJmx|*L3}?o<y)#jCGKcCK94tf=O^$^T0Z at KLz%hTwiGR8YlFJm!
z6wd*Tgq(t&9pj&mwOl{2`iVWpDA>`OCT=7=x=(8%H$6Lp=UpK}3Q;pasfm6pO{D^<
zbP)6~@omkd5FIjsLlj$~AnjU5uFiM{WWgQkpBMr_n-~&{*2rWTqT9aq>Q6$(&b<)s
zlO(1?U{*GI{e*C{QxaX~Hk3$?*MS2F?PrP7NDa(pVw_CXAP^5y%6@?)ZWZFslhI7j
zMjd``i*tW~a>VB&-gcW7Tt&l=R|jO4-5aZGZzcm~Jzr^2v~(*P<}&WPI}t=ojb8BB
z_F{QqI9uscJ^bkRf?z}75*>cInWuijQ;SScP7&jalA*C5G0?^kBmRomr<;n+xAlBR
zFeT9cJ+SA8Z%c2`UsnX;Hzw`v-g`W`_s=VK{095Y!}OR#Oza<JY)&#*v~8<-@(V9P
z<MQ7#mw7z)4yo4ld=#-Zp3CGf{^8*RYkusvwXEAP++b_bcUETg at E_06_H}CPOcQT+
zmKk=|k5|=vb`;0$8Gn>|r_q>EPq%plURWfiaRV&kP#t`Ll+2-<JRjfU;AJp;LVqqd
z{F&Jlg|i=Kz<T`bot>PX;G4fdvJ)P=p%5NR)0f2e at B|{|djQ%252m$|n5!H*<Z(D<
zE3^l);oU5#wjJMdO^5j(V*WW at Q=n<kB)E}~m>7~$3YKFeW;?$$=HwuE3&)^pcnp$p
zMxF{ZR!E-{W63e9 at w*}AVf`TkDQq%EKQI3Emza47zH8^M<1>^Q2E*eKW(SjDdIHTg
z-hm7V2fc?FGz8`3!9Kr{lasR?c{<4121Z774IW-z at 6qJDb^Eqzhkc64yZ!O;@qI%>
z4!d{bo9;L9%rMh&EpLIzh at eF^dq)mp*%uhou7;M##ful8oOq%jcZ4YHVqDzZG<1C&
z3f1&@(FJ^x+ZhO1dZ>vsWm(b1&XWJv#fCt6HWH(o7zQe>>c_$K0CF{hFvg&XtgFj5
zYTg9<jlpvpO1As<@8^X~MWZ8M-{4>cq<AWjl(0QQ`oZY&o{f}d`j>n(iCh4*RM@@y
z&ppK$+0}sNR3%)kD<15br^e69#!abLa0_}3v<jealnmoeaRsjT at bt{f&o6?H&Ej7{
zgF09D at 4GL8E)-S6Iu2t3te#Mzdjy$+DEG;U(-_`g`Hr}PvDVP$gOB(o*lLnSf}EUB
zy#ch%VsYrD3t=BKzE1x8BljOU;sxC#Tb6!^QAdDGKJ)%zJ-Kq~#;vk3w+TAg2}ll%
zBF(!M65^_o19eYGrF>7|#wRY?HN(}yV`7E$cSW??R!+zi_(6zZ(;&Q{Pz^z#W}KOs
zS>K9YYVLTfW_l=2d5Ehiz!sqj42_Ml7%{9s$mD^i=!NB2AotTA{A&v=L?o-g5X2)4
z=hEB3sFVsU<-B|l@))=GpFNvFZ~@-XX=I>*V%DL^oS4G&@KEmGp7|WMmC$#>c&oP$
zzAPV&_1B5M0h9^-V5sfoGl#KS0AquwyG14TU*BTgyf-f|kArg#!whSq61a#GX2J0K
z!dmbn#f~B!+=iLNFuk?E$?T`4haVMzEfi9ESK8DLNGg5>LqevyWB$JVW at gdYM3&QE
z=23<#=qbBj>gFikocgwZ|KE}G|5-^hUq83$Un_Rzi(8o1gwfK&t<*sg`4C))_ZLk4
zckUnHH(Uc=V`Ar}OEYMgDGw|cqQAR;@ZhmyDj;on`J8u|2{GFfRryb2T4VZK7*<zM
z`bg}KS0JCPdGl7{3E-Cp=>~+Yzt70>LMr|L`gLyaf7ZavU*&H2*GilD;_cZ?Ju`p)
z=Xb^X|9R0fUp%?sKe1}&YmEO7&t}0-g7rWDmce+u^MANV=KsCOnMd at 0SY`kFBxfGb
z|E|fICxICLf7!;V^!!6_h70ijcc*_9LS-=XOI{Op5}#3xISID3w}%TG6s2uiI{lX?
z1^*qRED|7H2s<R9GK0HLZ5*ypv9vfejj=Fpdj^!#`TXC%uHF7g7E8NUak>J8u$v(v
z-F|}s2<C9CrJRj at 6C_li%fNKj0`nIk!E>iRph}N_DdVK5*Sp#IGe?`4mYrRaw)?m}
zv_OtQ-a at dp6eDON7_|?GS;MH?1X&+6xZZ<ieKR;%vuRK at Mw$CDWnqlmWcI_qFmC_a
zl5|dd=9CHMm66fLsa=lT$jfIoWA!H-y%pdQ9t*=m#;+z(uZ^=AuP<4v=dSwaJn-<x
zJcG at y1&jqJF_^Lcz|?o<#!P+u;{W>iNE9LT_r51E>Jhen`XiP9^N}+#S#A)FyIpXD
z5t5k8I1>y_pp~4{k1<tu<`J|t>Df(v07E{B2DOp<l_RkNrZ2dWi;EW;d-9!G at RLAd
z5_0o*p4$+dxW#k)c?Ubsb95=fAxKqnXX^pvNR?2O?$?~ao3=PKmvQc!7#K14jsNp=
zW=;>Q3=(?*!eskllrl^hjEI at L?sNkny_53v(tA7NK&v+f2lMpXhgZwv<$poaAdNQo
zSrj3h>J5-5g!pfICE&c{&*Rw{jD2hLt}+-~PX)7XnYa1pna*Gs(pp-)Mn)6bD~d?u
z9D3 at Wz{#5REEk>Rbt?;Wr*AuN`OJ}ej at Z~mN;~ZbI*xZYWY^x`i|@#r_dk6j_^yR2
zR5t`))|*NU80VU=&LkeWJ~--wy1}}$ki#00|6#>Hz3}9v{*~rW|8$_c|KuT4U&$jE
zkz`cpQUOmiQe%VO{`|hSJ^wm=o4BBj@)oQ^=bsA-r}HO+pYL(zgX#AT|HJ9S^{<3;
z=6nBd3rGKl5ajYt?lgSp$dMDM4}8|_h=qWwR*st%%wJVda4^GZZvhK$1eCBA%%3k0
ziTC$FGDf~{@%qIUsy<L>3b=Xmrd<_@?qr-DjD+?Qc`CqwSPc&~qaOmZPa%2d?bEw7
zS~&{NBR6l~K2x<GR%Qq)k?P5j$Oa=Z!dpL*4zOo`!G0lF%f_^}wr0xAv6vhmYTtSC
z<jGjF`cewr`)gRs9LBlbMXz4TLy8j@>(=ff3WqJkB<uozNO$!F*EUR~1L2L-$$7 at l
z>RJ9xdUm^3?2Frrq?V2eoXdi_<QE_t5c;?VDU)yzQ6+!#%v%QqtC6uWzO`$2LPzKH
zhomRCqCD$6bJ)Z8Sr?Q~hs~W!QEkLP4bv1`;6u7?I3^4q!Kdak#4`)4&K?R7j6riE
z5 at JCxG!B6t8-)|LM{{i?AtYNFs}+UDoie#p4$JV%Lhe!lGE^)pRzzYXDcPbvaCg-t
zq%<D at p)$rmmU{NtWW<R6!5;_<q>Q&h#Q55ms<__Jn>?k^On-!kavC{5faox&diH1g
zP|1wK5v5W9^cCJyEw};INU1-RrhrzNKyUE_{30RTfw&&hJNU~lzd!(6`SiQT-teV~
zfkspmL|_FEcHI%{wGqtMZ at OA->FI+~@e4{tsLI`jo7rRd1_FRPgqN-i+euRMLfsh!
z{U+RYO1bsNQ%LilpnfvN`9POOKMnCe&i>|R9c}bt6w!OEh|}2t5~QrQwzlA*E;aUW
zripuba4GU$G8IgB9%qG(CAAwzGVk5fc{cB%M<#yWX$V55f4IDO<zuw}S6+J+3@?Qw
zxMG<%WT^pnR5mj+J1=;!@i6Q?L|{`WjYc_eJpXr9y}VF?r{w}=)ce7~t1jP7G%jDq
zDQ2}+Wej5H15l%rlni}=wE``-iu=3f;MxkGu8K`M^<pkG3=cKBjm6;B+Xe;$HYx6h
zP!3+kg#pa89S7)R*WrY5@%PX=s)#tg9;Lsyw2B+dXK=!`#EN?6HGiE5frJLVEHs(b
zpSd`lUvSCXq#<i0WOxwut7DPGaVhiar at LTJ^aimWzCTR^gH;j7_dsg{u5R*BLX?X9
zei|#z(Jh?iVQ#M|JVKb5n4X}=dKv=p%a>1l!OruzdbJ#S=$aiZjc||PLz%~%Cj?QM
zN`&YI;}h+l at UyDGV$n>n2(#jEt8sI#TZ*R)y_c1 at F*{k47>;_-U8NSSES6QP%;eYE
zios)tpnx;qbc62ADTRM!7$iE$>SV#fg^3y`ZsE3Yz<xpBSQ+ip_khX*T7|IJN?+Xe
zO5ft&!9G;`!_(Kd3RVf&@)6J%-5o<-kYC`caKld);XDwYK-j5|pq?!LBMaYm8dQ%j
z4cVFR5^|FfEJQ8pA~2}hi96ywIMPltT`unBmRQJ`$+_geS*K^9%mXK;G(i0o!unS-
z9J;@}x6ho at lGGLeNflr+^%a$&`xc^EUVMMA)s-p12u9io#IR_;9w{I}UOuhXkn-v|
z`<vwsK&OUwA}_ida~dVgKZuyZ95 at +?foLPQiZlxHXe1!<5D9zJk@^RvG?k6xJ&qQx
zmUSa=PQS2CK%k@}wZ<egEGz~h#&(^~XTV-i3qKlUcvM!laBD4^`}S4+KyP~<JLaWe
zqkTFH)Fkggd#q~wb5ckTcov6UnmhqZI_qzl=R%2nR|!Fy%t71x2sD*I+0<Ya=<PP*
zRP_3F(oj!*?Z)0+cos2m46;+N#M`e^N5Bbhk48|nhc32U at trkL#H~bYIo;qM{ECwQ
zh%09iW93^h{r1i59<GCR1%H*B{pf&6m>!2ARCz05cbPsu**E7msgtfye2a$7f#avb
zqM`&G_#>q at xMq4f7aBO*KV}t+v)>TfoWHDFFGnB^atG?TrFRX~NfzIz0x6q8jG`wY
zCZ@<c0sKE6?Ym2AAJn0f0l!~tm|U_(rt7OHjv4o=Z`Y#M;M<Y})e>F~=!r~vTC4ZN
za;jwTS(0)2^A6Rtc|Q+cE1?B-3w=EmCO2>0`Yr<wcAe;SnPj6SUnd$7Tonf3t<rs>
z|6V0FdRXJ?Akrm$(YRh^2WW at J1GSpQ$j4|hyyDHU(Au at RqaYNjVI1)qUn91#x%SJt
z6!V~2y_InbY(BPPV5|}n+-ZZZ$YSFLvCAyZsx%d%@nF`CHT>Y-984_Sx5xD9{u~yE
z^ijtTV0?7l48|R$j&OX6K7d#k;<q&i4fK{2*LWV5G+TaU5&5Pb3FfrP(+K{Tm{TT)
zpf0wt6DNohcNHY?Yy}kY4m*MFEOtp<;L{)b{M3<r+b#azC#x+(TF?Nn8Xc3bo;?gv
z1&Q&6Z}5GoZkX<oJ6qMX0DfUfiW4!Mo2-r<J(}#pu{Hl`nFm(2It1P7zs9nz#=bak
zKGP_{)mLCTQMnDgNo4 at +$_O+Ev8~@>Km>c$*p6RT0XXYj_X#Jo$BISnOjH5e^Y&@7
z8A<PcS_31Pz1Xu#xP at e=e#1S9&`dsxD^doaI!L|fid6Xc1*ML`L?=A6nMED)olpXO
z3^+K=J`<5n9$b_p2tB1*u-$Ee)#DdPbYk;Hu5tfS{*|AwG#rz#S<y3Q)qr1G>)S!e
zPDev1c*knkN-83h7gvU`9h-19-QbhQXx#{f(zxuQKxpnoA<(YiJOJ`QB{V&_5syEE
zaV_dQ3`xwzV_GNVgB at 9x=m~$_+m%{s at VIOo2getTj4A?@g7zM7c&sFn2~hRl0NK5H
z<3`JS`xoM{cxdwPhLj-$FbxBxol`VYjEXU1C<3!3<mkr`nz!;_=G!8-P%OWo<7Wo=
zsumh5?;px857+wo1jbFccIY~9W5St>M5=Fim~d>ky4(y5jJ$c1IYi8QHw5!l&<@+v
z>Fwh~5f%3zhNmX6F={IWOJ8-&7gRx*2wTtm3ZiciAl(8#U-2KSa2((iKZ>d(y?_3q
zMJJGS5zq<QNgmt_C2 at e>Nd*jnO$RQHODth9Pf4*NN;FbLyd|Jf*)zH0SlaJF2<Z at Q
zP$rQ2McKFhenp&rCvYi}?xSO4oyaUG!6UE~QJJvvC9eA+x&H(<f9mjoBYFPY0T<R8
z;-p)FVVq|ZzK3$$SnDRVl(EKtCWL+f+;QJfKiR1D%tZ~7a&Ivr!2;uD$U<MP%F!!W
za`DooFUZ9+k at y5O27D4mLRA3)k=6vPf?-*NMJ0&f;J0F^mBt_yO4rXGehVtso|Mkd
zsFF^WArwYqJM%#<ud!?~o(XliK?#Mpqc-wLMYt&_JwC!Qj%K=J=|W^rgMhM4VWdd6
z_oA~A(y3&OgUwOfHT+lqxmvMa-c{2HQAinoK at x;uS4f?Cx at 5If$J=fkh-8WQ7W~f>
zNKgYT7LL3_DiGlI$0VXR4N8lE`QzeR_yG4zSrW1g7G`F<_G3VnH*Vbcneyf{-$IcY
z!-JOIn^;y4IHbnty#<Pz2Vzn~@mhev3Y6C)Gd0V(LIlg`T(*aJCHUDAPblYv0SH!E
zYj1Dw*ZvsgD9RD><<FQIEk`0`2T$wF;(Ow@`=M2-0-PP3hG(-498%D#q<j;4OP=M&
zHA8{S2W~m_XSq<HIhvDa!6RCgA-{~BJp!iM&_3gV&OR>gbybRujg1{*IxuMyv=r$5
z188<GYbPC7`Y=|0)%z%JgNmz7w|k<1L&N3GgPJWDE?n4VQ71<27cARbdAjNCwrKez
zyHC2|G0D=>Lt1a)s1{WbiEyfk4PCkCH|d*kRp&#wB_%bW3>S%ZdE1*l5*aHGy$BuC
zP-OB^0OUtTUHzfF3+H-D3dyC=p|>FhiHFoZXrP6Gch!ktgFWSc$e;f+1{Ob|Yk3 at w
zm72mY%u%Zj1myh4+ti8ONn%HvrNO+Hn+%4iPbg$eTHo7CpdE8uJwg8}Vf%YhdY{m0
zD at ImC4JEARng^ed3`Rqy{s|g^jtgr0J24>%`<)!<EDvB at s{_>aBHIysQ?<0^mNBPX
zXi%`M{uz&|U>-X at Qs!QXjLJgw5`^PAL42%299gCQ45u>XO;`|-$e5mBCbsX}w{l4F
zB!NQXiW5M>w#}=)9roHMP?1z%F}A|LHag(^Zd!rNFvUY at Ansa^9 at twv1J1h}pCK(c
z+j{)~^U|dcU=jSPs;cTiJ7kDWu&<$Z?~NIamN#0oR|mj!MMa}Eir-sXTAU2xXe}DW
zf5^z09_q6SgiS%FU<Vu$J~{ipZMMLXC~8E~2Dc%5V7YVMFy{CIM9`hM>>q=&45iU~
z+$_}qC=+Z?`-2Bzg1JQMlRy*I*fG6!YhiUzcWFJ6Kq{Qj?9$3QQ~t5W2)y?g at LJkV
z_abElA7YnLf!*yq-Q$RQ?~%F>etvhLp`qcDL17%4e$vnnOSjlJse#0*0s~=Tz(yiq
z=CovSvt-ff<kPgnwp-o>OWdXmUgrM%Pau8UU7xvKr4c0}r{EiVQK;cTQ?RbWFkZE%
zs}T~c at _YCGRZ=&}w_(Fxj9R>T^I*@yZIG0e^FcZqOGL5{@p_l*KT+e3>^yjQB64g0
zG|II3<N at 2DXq*>~wlyfHjS)6hNIFErv8E?!5j0wn!upCp1pKn0Z8!2sB&E#k>>Wvq
zm?+OivlA{bM-aVn#^GrEpzk<>ym$PYuX|FBQM at WzSr2j0e{swi3wh_sN+ykf%H&X%
zC2Ra;ja?d}o&BLlf>$Lrnx=325ZU1p1J>M9X>bkXO77 at T5d%*$d+0~Ilo%TwMwUi)
zFj3iHL7@}u{GigDYn7+dv&Pkqzs#H0iPUH=7q7(Gp{_ffj?MoR4OLLsSAgz!AAjTx
zw{eAcpigas+tW7l5AQ#VLrC{Ac|PV$j$1w}Fu}(g4G%|gST%f- at +v&TmA|aUQp*4t
zC^eqpaM3&R=yNUD^AC^|2&s&LS~>u_TSNZ{Rw8{c6(*Ncs^awykj*E`)Y5+2aeU}m
zOsZ_d(vs3Cp0~#3J_eo2ADF+8#w6z>WJ{fRv4|K7cZ-3G>A*cW{R0f2U8=N-APY;y
zIDiMKDis`{Xv-^tL=k=h0rt=AbB$t-J;4|ujp5j8C}vl12Yo*Q?JQM%q+`)g$a%_F
z4<A-U3$W+3DWVcmOau9KVlTk~!7t57&^4819alrac>jSuF*Gk7voEKv!702|B2WWa
zSAJV(fd1gOZ&SJH=->0!sKUeHOUe-l!X$&ieM8wZPj`DQ%GEmm0wt^@v;JgI8jSWI
z=s$?XQwh#?O})_uHIRU4d!*dm;ocx{2lC#hT``^<jV<BSmN3k|!!1k0=7R!SjG9iU
zcPmhIBl$gv`t#J?8kFn?S{ZgvwsCV8JV{4PjsZmbx?dV1&mr5^uYd8R_M#D-IZ`Vl
zl{)WErlMD`Hx6I27#JJ~mcYr;a2!iG8u9v>(PP9|_2KT?_P0_@*YDgh;S at 2Jzgtt_
zz0%0;NDzPqBOJ;}L7C_oS7K|2>1Dh}dTIV_2rHYNvxHfUb*u06LR-oC<Q1&vij#d&
z2Y={L6|}`MW{M!z<0SVLYz(!{I?uZNk01q0l)+|KMly7{Yz|gIyT2LJ-%bIxLR>9(
z*bnRHY`cN!`)ZeLB%T at Vwk<6!ME%QdZ+{3UO`JUwII2_IBpY#U{ZgBw5b?JGsa?C7
zlZ#yRf+k}jHlCjN8d+cTu3fvFdh~GkRDvL{29fN}glMdzN;d5?e}C!hbS`s!hWe)x
zg>E|kVK*T;Q#Vw)>DtayP0owXO%s1ir-)o^2)r1w9xsiK1m?5?a{G`;iU9aV=OBd5
zLJ93jIRcbybU0 at +24F)32r;4oS3Nuwz$T~_{<{u#gv_vFMxgni^%%R|!_)H}P8`a0
zQd@!6y+OecfvpjV0Bce6IBFv|H<|59*tA}$H$ciil^}pCW&efW+YblEBar<LqizkU
zzf%Qm^GGBE;`W(aa?o?Xc=>X>(@JwZU{YfAKwS?nj2LP^h$!9>HV|>>QUx?}5HazU
z?c9Fg3Q=$pdK?sAT~Kg9$93=)TqsXD-a)~%69 at IJioM$hsW?Eh- at J4K_qc?l9ku><
z at 2(48#ArH1!iUT&SDL2g;8D^|K at 3O<v!bc`8L0FI8Yd at I@afwIdVVj>bqeSg;+k{p
zrJIHbNR0~Aw#Px=uNjN<;sb0F5lP=8^tf1tQz%1XQeTsXp+wHRF{|&kqc{MDrE%9$
z6_Trn<(CKUP5vl&;#f5n14ja5<X(pk9()7JkAHi at yd|sTK^w3s3ACVI$Hjk=v3X?a
zU<cv*5E)l>91(9YR=*9t-$?e^1Bnm;f1ry18_b4w0F*+V6BwlUw;7H$paHS4U8wF#
zRpk#9w|$H&2}h=pCSD&$M;omJY(cxxi@!J~sK*d6f?`PD at eY!cIKl^u7ha<52RHfz
zxuxhB1d`m_?=0VU7zV><hkIh6eP7cfj0)}@W at GOo?)HKxVy`DrSXHHhbU+D at 9CvT(
zn2yEz8OuNkw1t)L>Vr~KQ)R}wwo(Li2)Kg_L-ew5AFAFz3RZLl?7OtmZSoA=k%A9G
zg|T%6Qx{*QfI_^-Yw8{vhD`%FGnYb^LpFae^*`48O6k5DTIks?Sas^i+`CuCD-*LJ
zTY&X_56O4;R3i%+4P_n|Cp6;}!+pqF7g15u6)2cP&P_(y5LVkJ5s?!Jb`Akf$V!vW
z4xR=}t;{@~j#?b*CZMJ}$?g4p<;o}`q&*%Lo}APTX62EZf$XLBB04hz+{*CG#m9~U
z_cI^Tf^$8lNbdwK|J$s=ZOj~b^=rd>cmU79YnAd8uK$e5i?`5U>ee<M{AFl?`a_+~
zhg|y#xt+9E**r$PqTCtupwfx}V8c+lD-;kv8I4kA at oFhmP#_!vIK*up0<4KbXvq{(
zvmpEs2kkaMl$pg{^_j3&_qNgFEvOSzUy1NsZ$M8TZI-$>HN(&XxR10OB|&x9Z@>O}
z9PbOZO!c%yPQxfO$+_JJS-uHM8l3FGL5lS;FyHe)c)){PTyp&PV8?XU>E!Y*HyU^3
zh(Z&GM&%ZXh9yaGWb$6KqoM8g;axDnGeI&0yfN)vC34wu0-=gVPYI$ga~vL1c95J7
z8aF7qc^s8I%z(9C$n1flUL3IM){(qm_^a%P>81Zl#ZSMrB<=h-)3-afd*!y%H?b1U
z6CuFhWFa?aYr5+nFa3d3gSeysB;C<AG7Fq{Jpf?Y at YXc2V-Ba9r`~;`%9nTHzIWY5
zO at dsZDRCS%KVDJ&UFRNg%4IAjG01Zt5*F1V`-<vOsD$CqtxnEuNHC0{=4Nr^QyNy(
zXXM;TwUdA(Oush$4cN?1FH(mvUBtu`$vJMg=Rwdzqi_&e$jxO~U8YYo`wbN%?$gD^
zr7rlDC=7Z9)DrgMpx-Xx at dA}#1N)8h+`2g>0^;Io*aGiBvA)r6b4=>nUlcOIR+E(8
zvvcP;<j-NWuK-?tKtYKv$CrWb+%vGmtHkiA*$}8KC{UFlv9zWxm^T&g8KBbovT;}3
z%?DT-tW;zHU~^7yruleI5!BZT!!azL{@^FS?5m<x1joQ2S9sSDZwnTmy$$k9z94(V
z;ywJX#70>jyS&6!*+|71BX3F%b~6RJ4lM|g7a{K%3OMx>pfD+6B*sc_UBOY<d=iX;
zFKRpO0}slPz6e)XipE_-oAD5U%n&)M-k+FKFh75qS%O5zgeX0l=?S&Mvlw-qP-qja
z)dAZHztY8zHXy@|rGT}+z-oTG)-^mlBi)>FcgX8gmn6lq(ZZ1fS+*+(w4<o{JNqP0
zl4A^tOuNsbC!=BUf;WPr4E>$=U~+BePC&tS*2Bjq#X0LX_8iXS6 at B|A{yZ7XYPD*n
z^=RdROg`DXw$e}sC`Zt{Tw~=ZC3;2mYG+Xwx(;^LyeoOq*ABUqt%Cv<oZFoG^pQsX
z{bmt<?t2I`=_Xnt6)q|)w6<NBwg=g8y}P6AS*SLF+pNExt0)Ija5_jP5^8AQgYe0N
z45{SFs(xS!od}9a8e38jp-_($^xVt%4V=AckAU{1ttIf}g<*2MbG$eL8bp+w8XQ(J
znrd*EBZ@!Lgc#C3kP3y?mS;<2jBo#eH15(&tCiCmIfqU#^a;XoFjQ+j#?z;Cxqh?A
ztWtTP542K&vWZ9>5+tTG)?RnRhyiRw9CAeTxc&_xFoN?NVlI{ii?_6G*zy58G6 at 9A
zAXiLPoJBQR9~^NKGb!7sJlJ2r^OS5IsPZls+5pH^PXnwq`>##AwuhgWB*%+Gva<0t
z!()w;+Gug51TANI4b<TYj?)iahmRb=YfHpVvM!VA_d*6Ouz7QBzy;!Pg4y`!@#75s
z7gQ2>vkUF6si_eiTfc4{1$Tm_44~(e4+EK-B}3 at P-Ep{74gbW(p7e8ShO64M7EXE!
zahwTle%82u- at YeE2r^to66y^INJO<1fz-j`$ff2E0K^o-ynId(s at Rv+UkpJ_&<?uV
zPWb2rv%cCfb3inS3<(~*C+%FBz3XHILU=X?97V^_Q<VC`I)L;mNzys72C}iXk9pU^
zBSaa|!+glRCLyoHr0Fyj)=0g~hw9xY#~sFAf5Cy3JSJ&@H2HBzo|Yeu&_{sq3kwPg
z4BZjPQ93<ARwnLRi|zLY`avpcG0H*X*i^9ZE`}jN`+)fz#_PO>-r0$)sg0GOVg_{s
zt#z>Vs}t*eZb>=MiQwT{I3WT{*;3YD2q1??LV`?cZS;hh4^Re)A8KId<y_QRx*4_O
zD0)^O+xGgPvCqT)pPR-hnp)%5QzyQi`}}p(>v0f`sO}m=v40|L|Kjc3yuo;pXX{=+
z2OBbN)8-DCNxm=~1L{#1{7bB;+mACrTOB|HHi7=u<IRR+F<5k_*gI2)BK(M)6w8_g
z$4A9e&~&@SulCk(64_Xfxamo^Y>Wu3*lrPAKY?D>r#rubF(G37CbzA(oEEo$+x81+
z9egm0Q;EA9bfY!jiOp^LeP=bU7PHzZE-o%Q1_yAcP>dhOc}C<|WRH0z2<UN8eyr+X
zUxF#ED&UvqL9Un-uq$NyzVL#z`hPgQ=iXIkHu>GT^BG&92nE0Zq=l=yIzd7Pm$|uN
zr(6>ZyK%KEIA5Fs-dzE@$`NshDlDureCE2PZ!?}YH3v(cfp}i}J~gxSFjm0;=BKK=
zg23<v0~(Ke#MU`w0R5htuEs<oUs{~dI%7Sn5tr5HQO{Aa!357UP|`8BUhUH?#y;P;
zxVVzt4^fWu2nv>-+w0>5k_IC8#mo<YS5Kx!6lsa|{wd&9n7cf_v8}DQHx93_6Vtfc
zBo=sFrJ#gXsi?%I7ldX|$<qac&vJ;QHn;5^5|UfUyksUsGJ at MMqw)q#1O3D@?Nbrl
z#^@%N44pg2*v_4viiGM;ig6NlooH={xT%PjQSa_h&}<=xuCzVeIu;EJH5mA$e~>=K
z>L`oE;SEZ at 6983%#^?RE`UGIz1yUNJpb>$X5{2{bgH{`XS%?I!pYk^HGI%VI?3<<J
zV8p~it~m{01}B;dC>vDZjWdWD($7$t6_sFZ*J8-;{drU(Y1 at Bbmk<dfnqYopf5EF%
z%o4orVQYctWM`Ym^!<fhp02ML!Cb<^Zw;Lhqyce#Y!fN%N5)rcM(HJ%Q;BYTbx26f
zB4kcxiPF;2^(C at Ryx1gku+(fvcBb at 1A+O|Wa1>H1f&t8iFiX=|VzPj1I%tb79NhRB
zFvOR-^u+p5ac97xB4-DTU7>V{1QnV^gTC%RUfkRoFpHsy6|5~<8z7+Z7(fo5o+eu7
zME0TfDRPqlyz}zwV!gA^t;4YL>bEEZh{+umcAtF&I!jVR3p?;&ut$kUgYIOBi4Ecw
zk5t(YyD7>P6yPLse)M?)WHcMfM&7zw>rFLGv(OUw9Gij{nz>KnX$eT&9rLZ?fk2Uq
zZ~6y71q8&-Std?`a7Kww1q21<K&Ka4dwe3<vQZmlpjK>Ia;@B5sVBf!2{>62vl*=x
zq-|B$30;C)aTF?+y;;bx%I3a%W;ZJT(h7 at YbwYeFu;)1UVV_j6<E)+K%Tc1jEs*3`
z>HR6dWD})WNe4SqB?#!5j`K$W?9>J4_oIb!Y=+jvV1#25=mub$TT!6Ce<AwAtgFG?
zU}#_#ooFZ<WMRAf=1-=DV5pq563*2`v at lE@$B|BL3w+)-nB0kA1VpnNu>#e>jj=f_
z at +iZT(6d5vQq#2qHfIu!J<+(M_Vl|bj6dTaze7!Kp4g}x-+ at vvoaFy^8-eYWvTWla
zW4INIjuFEFCl^&PAYwb%3YR^1Vq-81AZ)$|(0(FTQyj1E_GeT#<x3aDzzhxVUQp{x
z+XjZ_f5_BwKzh`Jx-oloWh&9k9|0<A*Y=u&s5eNvPqFT5+D^bY+EPKT$Qm7NS5(2a
zFrviaSdh~Y5TX+}MUY%sBu=7l_~q>*PXbmFC-HKru&Q5J0DeUv+EtV at ha1o>{ITZ}
zor<DkuoNAnt{<RcP(MOYiUz%Nnp>L5xZi>4w@@@J6*tJ_e01`#IX?!4r(1!6U)n?%
z!T%X5ko(r1+W5h&7k#^+8)?dDsCfG at Zqv%8cBp1I;E at H37jIj8y)((QN)ClXVZ}4h
zDdxOomP3z_1)V*|OXGk#(CV3 at HYA5Xdh{7!e7uH!JBS82C`|yh%atu+eAUEls6!4L
zZIf=nL~t5W&mKlvTJGGN9gbdxV%NkD+B=~i?-<=J$3(Y*-6Cd1to`F?PkQ?tH%1v9
z at 1$vxtj at y5X0&r1qx5A}&UA?Ih(PNN4UA1#`7m*<z}~p!=V#MiR=cAy&3X^&DjE*~
zp^4 at 9->ur)Ykh$UL=f-deZ+ONPh`S$Rvh7hV>vXCURPMet9odj;$zhMtd>5Vn2iR&
zz8>YyjfZZ^1D&#Exeed14%EjBmMjtFQTrP!<uDA6sqtCjUVs^#NL&EH?&Ls(ykOJ1
zb-RIuCZ<0_YIYhmCQU*_fs7|5fAHWH)SVB(8bbG|MoUmeMw<*S8(jL2GR>VEi649x
zT+cxSyC{@Ek;lU>;gqbuU3Vtf(P_za7pp!B#n%1<JB2Dy%sV+bP1L=@Q>Ke~2Kib|
zS4_+v$5k&r$ds!#Q-AQR!-xfJ;3T?h5)YuVm9TF9>qTN6&~YAd at tOw)81jijzEST~
z_e at m@J;UcOFJG2C^Ywno5H&2o#X$L&J0I}K(;DsfhRd^KaKoZT^3eDgOq=Z}8;K_A
zv&ji(YT1Hsls>Acpg`Cb(wN<7EvHB>55)09U`~|EW|ae2&RY(6)>#5 at ev3X`GCp6@
z91r^qcnkNDA4efGK8xA06BzUZlAwq=zH<l%H1{+jT<6m-*snW<M6mKaJ6#!VV)sjU
z{Pwwey=lLmYoB5N=UxC@))^J|>@6BHu_%2q4T8WkqkJ1xi<?R&!ZuZP{)@J(ao)EH
z(5bcUGRA&!_lc~MA!_ji%ND<*+TAQwrK9&({B#ODz|rt}wbDo3M?SGpPpqdOG=V4_
z1q9Lw9{H8Q!;7O4=vNe=>u<5o?GG3j8uDV5p<)sp!=#fEZVB+xPUQJn{YI$0usY?d
zzh7#~D%PAXO_|m{IXK>!IINDoPAkIBe>U!KNwA`&Gm79NL;-J~^|BdG{g37D$(Y+M
zVt=XqU>~+ueef^mj(4#*5T4{{yG)PZo{sq!6 at b7IRVinzz8BZm`L!Rp at c;rrBtSPo
zj63n1CPEl0s19`Q-a|wy8gPo3c|AcxV29X2b3l`60I^?*SYWUUh4;3afO^u`D>V(`
zy~6XR7w4=WaY#EjIR7^3VoB4<#Kg8NLu}<t+OoP8y8mZUEJ7nzhl7(T%`<zqC-!BU
z_^*tx>Y%@~)6!7|An=wnV(harMiFh at WZ;<2f;wO&!r(Cq!NuYrF4hB_wg~hJX^ad#
zhIsHgy57!yO at t$ybrf<oY{L8v4xhKEX)6GWykpI at Z7|^fd70G;s|>Beb2-1dX#bqI
zVVu(g^c;>(3~0xX_dZ}^IKxeQ`@RRcT7HC4AXOt&)JaeUPttXAe3%&u9KoSDA&_+_
zqsYYWGxg@!x*vP^7BHy8sX;eyKEzZoFF*egc==Ju?uKO(V3D|1tXKFak%7_m>-_m!
zB>sF??JR%<1{~Skni(c{ZY#{y9-|j-3Z!DhEf!0bI@^GSRZ+*Q;9Y;}?cEIWBU<AV
zrT6 at Zj)2O)6DS61y7d13$q8vJJtC4Ji3=VV{`e84pLvR+ at vQr4fYUt6mj<`tX#o!|
zv%P~b_5~kJ5h_Sw7Q<r>K6o*Q at Lp8A*EfKzKomqGUV`{TXKp9NEphw?<M>fbb!~mM
z)SFXM8GF4F^_d84+uyzJD0K=Ln?`pRHfduu>(fRZRu_|*EwyH5MQ}O5_X`ERBBGYH
zv6E+BC_*FsSY-6dxD*$cRV!x$47WPd<_|Q%7#HCvohGl8RTCr&w=u+}*||KxP%9u&
z<n41REmZiz7&_VS!9a9=wi<0{lDj>0>{t~br>4htU?x8XQI!r{fUh<xWB4(IkA<MM
zPPA=I<5C}=7#%nlP9P~ezp!cf^5ui!JH};EhP($lOe{mAted;RpvwNaWt*;q+Of$v
z$8F@{dG%ilp6eFY0BA at Zh>F9SDb%$^Nw5vi2WfGplm-k{SXfyfKYjXC(j4hqIT9iQ
z;{z<$w6%10nkJ4TA(*+v<eJs^R@`&CxVN>(bEfyWc3zw`V2L<>7pIC5l+(e{&bZ7i
zsJtEd;HZQ8mCSytyUJd at dV@8<45kLEYhxU)2(tnBe$Iw`&?9l6 at lora&Z)#uHb6Z+
zKRLII11y(kJ36<VU`WmT=bhQ1Fhn3YioQyrZ90AcdPgz}=&c6%)zI$PX4z2J!M^1n
zGUbw?hYvSkv@=b7F=Ksorqy at IsYW{XHdx4A_>;1_(V^}rB8ZQpx#r;60qyX`#Ow%^
za!TM^Kbz6?6vfvQ^lIqThQ!Q{gML5x1^^P(Ap%zpAgwq3?)&#A7PD{JiA=i+<R4AW
zTEWuHx)u!N_HNl!WanO2wrKt$j$d^d>)Za~xw0TMVtzza&r%lVeOl!#Ebr95^0hH(
z`DVsi|IOd_S7=lydoGL6+Njv2%XxU$UTGD1-|IVGsJ5j3<&teLTy<1*G~a7z4Sv3x
z>Kxf{woO1!_{82(fu~#;-(cBg5<fNH_B3mQY$%RMzU;M12tjFG3B}EX67UKh{JUs@
zz`4OaDGM*7l_FrZtg;gHl{Mgcl&IG|t9Pi)1BZt-{O;M)mFA09i16U~td#X@<>O*R
z-$0<;i`Yw({8vea2JjzCm8R`cvy>XcD3>0H53rLn&nyMQwk*C$uR{5ypHp)KNAWm4
zIsY(%NL`dyF-zK>JcK=@P-_jy;^Yh>abij at 3cYU_W6vkCQzYg*Cxu_hJz%=l{rn?x
zGNq;s(WDBLhaB&Yy~7X$N;dBIUCjwbuxG7hj&vzd at 95f5=&h~*H0y&JwvA7a(fZn7
z!-9hl(q<gPq!z}PQfrZUE7l$OWdTq+h5L5Jwhg!3^YtUH3}~D@>b*)_7_$y1y4X9-
zF!Mp0PG06g78xez-!al3Phays83=K9V8vGsp)Vn<jeu$l!qP0ozauv#F%nqPav;=X
z*e{ok?(r5Pl at B&Mprzf6<3?*pOGiOr8A%tB3iYdu61sLEIUHC<g at +9puaXywR<A|1
z!h!?ES`%tE$C1B#b>0dHD1h=$;GhrpNNW~f&d&$?ft01QhCZ0)`NWq3ZcE00S1u at y
zQi@^)<8brtb!!8rCwd;f>UA5=jNTf47n+pc&~yzlxq6~V+4%S!3&(}gbtsoPA3fsJ
zb|BmEX5d|$cCS+|fMPHQ>N4HR-2=cdNYio^QU=Wj-GQdDSMl(KJ5$zRyj~3OJ6~S3
z6(f4bp~Hvuz_R{^08oIE?5=eP5=$;}shG`;$87oYF`E;&I?v~6Df(A;tw+EtMg#Hv
zCaV=|tA1YYO9Fh^rO(>sr=UyC4K!sL67o$}ysFYcW(l(SpJ*`UPS7doa%{C~B=TER
z0RM&Nny7M;X7dl|YItG|7 at GB>Czl052O{Z2*RpRpxsyaJ)oSm#^c9k<CaGC>2D331
zn4ksc15iSI1v(D#u0Z>l?upkssZ6lnc(CrR<$3$-F=AQk3WrwE^!;q^S$)$(8#@n?
zwhTu=6_QHGhRkAncrY0cYd_wavZ at R!2htH)x@=b7weH!?;LR)y{!1wxFRTU1fQ9Od
zst^#*z&axo*=AH-B at m7^(EQcFJcPcPJAEA~9SNV?7cF93Oo5yO`Im%Yeefj-K<eEB
z;-G)FSvTC;@$<=Qxu9-FANv at yWWM@JxX~R66xpN~G}|#^)z2rJ3$~aZ2*(_?fP;S5
zFpJ-JYR=y)Xy$+v203a;pk;RWERRoD*899l`+-gAi9Md2Yx1h??cvSdI6Vx^cQjvF
z-wcH!A28 at E8rnz+51{6;%5{MN{x^~aG_9jbvCRx-Mbsdq9A8#F1k{B^#Iry4#}=+V
z`yMvVPJa`plS9&m at p{qmKu2GaewUXyG>{T|cSdZOxn3yUl4ukkKcV))cx at Md`^EGD
zq}VtDc3>ki$<1aihO!qsf`om33K3|S<o0l(nSM&szCuZ at Hq*Y7m6R*;@0?b7gcdiU
zKY4Rknq7-`1%;*@X(d$7Mpsy_Jm+DGGU*!%<Cnm+PIU2 at cK_%vEBk&x6FuoGgiGI7
z3wHc;SBQgm-8k#3i#YApS!54Z>K3T#Awju{e<Y%(0oKKW;JL5ZrVpx3Um*~ouj%&w
z_yJ-}E)1SqSqg+E(0T-y%L0^=-)aRc`ReDM1%pBeW$x_ok1Dc$FVV*sBO{Q+*muYx
zNGBwbH6qT399Qn*5#X8Z&mTfkng<=y`<ofj+!TeXA(W*@lF?`Zzl3&|M%O`815bgJ
zD^%B;t%Sqfu0*lkBI)VV;u at cdmc0^ui4v=Ylxu-JlN at tdbxI*u&`a1lC|2*>*)UzY
z9XxNw_5k39R?~*3Lk<wFsy0h3QC3C4cXu#!j{FF{l;i3d&7UrlRyDE=&udrUUfO|d
zl~g#?s>HF~TYw at Iib-|{N_0Ja(G0xN8$B}vvq at B$VSq-z0o;k{f5tc%M=QZ3JS3&7
zloJnv95?_<x?jH$69Qio(Uv~AF+8|0{;wBt3+y44h|sSK1=H5HaPqHP7n|1X5do_0
z`Q@`lrboipGU1Wjv<4h+sg0YkK;GqNJ%Z5CLb1+j#ldjm2!WKBNs1!SnTx2lwy~f`
z35$b2^lH%sT!l!6PmF0K*=(Q&z6d(oJ0-{+WYKCVu|tOr*`zcgjUlDaP=HPxwX`|`
ziMqM~%M-8VW_<3$_AVejrRRNEo)5mBvN;(QlTwr>rEy+KM!dJ^=P at 1~QY6Ebm~v?e
zr}`gU8%gkH6?Ud`ehQ~!oe;LZQq$g at xafH}KM$Vo&6$*G>4Wb^Qm$-e3Gp4f<}=qo
z%J7=?P$OOfMZBfUc6|ff#S3sc3p;<$dyLPBBFiyGhmp?h<0!VP5yirQG79Oxx<(d}
z at hxpHabR(R&&S8F14enU!v_<=b!@ND$!>w*i at 6l|W@=TysC4SAUMzO1nZ(muN$ON)
z5SZtv&B5X|Mw#jYj*(N%4n`gtWUXGsd|!rv?DuaKEORLEbFpc-r7<12RHZvxZomGJ
z(du`YoXYqdyrOY7OzF2(4nbr|l-u#qoVU}2iJc4R23q=%C$owbepo52e~>JI at _eo<
zV#SrExnLJF$thTyLB`S=jdmk5XZ(K)7MOt9eY$MlP=tYU)HP`c#8qRSC!>ua{Zx(`
zg`N)Gju28k3Ss^lM#uub;eaY2w?E1(fSkOf>gVChbRxTVK$Rjt1 at T2J7Rk+QZuQC6
zLEAS^DYSq$l at M!7;;$I@=?m0 at ERq*#6^ec^4)f|pnc{;+Lyp3LvrSn%`w26El8CoR
zQ+TcX>b at iLY!%#`Z&p~EX;XZA5zBSAg?y<pzJ<{-8)Taw-jMUalE|z+uKX28_dXOP
zdO*!MYQc_a62tyl5WL{k_MZ{xDYQF{H1C>=K2A!9a!MEy-{aW2T|D9ykkG^{DJpxU
zDwx at o;KgJj>$ex5)dILeaCc-Kz(QlfYp at bmKrw7bC}`T{h}pUY>-LfSJE_$z;t<yN
zz6%h(HxC<}W3qq8<c)Csi|_Dl#sJ{*Q%qyixkxt)kH(#pc9uvFyg36hCmv0`eHDw@
zrK+h^&U*z*ka>z){t$Vbpb5gOB(ysHqv|5waM0yWM9hAD#l7)j8}{Mr>XbZI4QA2T
zlVwgSJ=2HtACh{)QU2YM`dC}#sCLibp)UyL$#nnGvWEVfoKW(Iz{8Lrd9K;vvlsk4
zycg)Nl$RUx5+d^$B=H5XqEqhTak}2!-Un2IRZKSTE#7hTRx7l2{~$e|1(LNRI6&$2
zzKRkrA4;SCrkRKvo;N*`?m#W`2UH)u0g=X3^s~W=iUbHraaCMSS(PB`(XmrlP*c~4
z>V08wWZxKqLd*RNOFV!YOY1p<2v!FJThe7?6{$k>WFrwaSYZh3jX at wa6bU=trzNup
z+vhesoj8E2Y?9AcaKHqN;tU`E=1rTfny1t}o_`e~(r@~#65h&{c$Vne(T(d#z7m{|
zJcNuBO(*y;^>lC*k~lII at ajf6?@6+qEAVkm`aA!aiT_B6^))AuR_yiLz$BM=7KS*N
z#h}Ywd4?<4L;uE6(ZaMJIOtxVl{_)gO|D+3?6B=n&4mG*V3JGfd3 at x~GE{x9&sv9r
zYRDwFR~@1!l5QwO?HfvwN~{LMzIaz?vp5>oVRX3HV&b5kM4+0{2Nkf2tV20wGtgPJ
znX+Y)i#?u5dTC2=8PTcBHwy at Olh+QpA<gC<OQi>f>G8p8XxR#<l))+u6(Tc*r}H<i
zEBoZ#@5?|b!uL8l8zg5T<2U!c%*n#SEUA1yliWZK9^IvXJvwxzSOGWq;&($c9Yn_|
zS!a^n0!?~Ba8INAqJH$QWk6Kn#8N6vlS2=+8I{UaPKW9Txu4JNo*py4HXB4cA7E24
zPhHRnP%}Cy at E9}TH0HxM&L4$6csTzPu?u+J1tC-`dxKrf>SW~**-w%t?`$sh?Uox1
z-oKmS0%Q*=qrrCi(T-t=h=-oLdN7Jg4iYL4HZw)tP0liH`WktCoq73Yjp5*Oc+&|*
zl#M3+P9j-bzdO1;53<9*lbzurP6-i;Txp%LnI3-a=#={+Lha~`{tj@%8$I0oP2s@`
zP5Q;PlxU#q7>{o>G`ol0MaE;_Kr+nEEj+lsKv&+0HVkE_NR9-6eEK3+F)#z{=cdvm
zLKWA_pK<@X(4B3GB)bLJ^>_T3l8jPP#Kn%X+_fVUNtXkOBt}VHN{4MpDDHsi5EJu-
zslo1Z%n>-SfC&oe)nXIf3*_Jp;8$BlSq*&=D^8(H%qbP at f&%1+x8u7ZlqzTyxNR$_
zL}&2wrd|-z1eT32kdAOp)w at H9r4n$pZ1#9x%0CoE#Th1E*C1AxW|UGvGb*#|6zn|K
zi`O at h*e<lB%RY-Pq#2TL02K^F>Id-DbUsJ7n24ZxOA~msR7gPb(+5Gc*#2z4198A4
z%SIXE<a%|lG<&*>KCc`{%WUrAXhe>0xXgUia<}4LQJYvJbIfb;-J#v2|Ik}cD58#v
zaWr!T9lUN4jMI|Q8CzUk32g+bW)=h+?<>u$44GcL%KAqPOE}?bM+M&j?Cr$Zenf$M
zC^)kr-}k05H>cu0Q1VEEniIv!Rb(f&k2)uECWj|OVbJMRJp19#hkf&V+~jDSS1~xa
zZ1i2{-$ffk1vDNDC+|^!_6iiRn;e4wEF7{0UrirNDJj=P*&G4cy1!(5foQGSlwZRt
z$S%gC0?)(Z#u9^unl~yR1GB?^8|d+nxS|Tr??*3?*f+V*V%%Z$kYyf{&w8?e3q$$A
zbmV|KXlF9vwS1d5`+}FaCA^mZ5 at 6E;1PV?72d}DSuzARLQWt}^Pd2 at LrH@3%8X~`Y
z0p})`wn|_S^H0`mv_ui7*mT at R4DyFi_PwN6ia8;>zlCFb;3cyKV#6HZJ?Z2RQDO^K
z*MOqNWM+T7hAh7gSGSgmt)CdJ%3+l}v>)Apo!AiTO~-JAq`cLAy4$89xo5gce=4OX
zY}yV at _@m_feH=`KTd^pY%JNn_cP&N6=0fgr;v<?Ey$}Hqwvs%l0oDi#!EpLktPbdX
zWYMHJIj?M|#m|6z6>#25JiL(jZa6nxp+i8dJO@|^A2?iVfXQipS|m^-7@?w1_LEc9
zWG8T`(}t at i5NpXm=n6eBTK3rQFA`FyOvgXfxv2?M-4jLsx)jL4MR!Vp!AV+u1!yH4
zPdmx?4JYtRs`oU^la=a_0`qC5qDMse5-s-gZ?7BT=lJ5;i?-L&^ry|U5?y1&cKTkm
z97Q%H&-f^7+Mtwf&kol}C&hfquCUu&>kwJ^1fKT-qOYvFZMp_(XtY^ObE2?Or7%uY
zj;j98Ry9Q&rrsb;z1%gA^JaW at R+f|;HWWJ!GsJf;itn9B%t$npPryPjiINaGn88Qi
zq2lyJ$%-#oru7_Ch5bi&jvH#*5jU+!g1Q_B`mNZ24YE>rEajl67}up)uX65+w?_6B
zUCy}zqIJ_YQ&!J^jW6H7av#;VxD$;}f6XIg!V7Qak^8y%Cj_VYF$$r`*vSM$-%JAs
zhh1l-0EQw*{`{l{YqK91*71o+`M^t>+qX(zDS#b(2A-VF09ZDuKHFV`C70OH<BH{5
zPCx-_`-Q<@+%a$HTn?nT8i~S`hYmK$rk1lKS*~4?2s>gRJ${bB2CuZobY6=w-YA(}
z><dz|!gO>wFm{5gP_&%6#Ux5+P8KqXc)ScYo<B^65lPz(GHVRmVy^(ZVkI<!<_<e0
z!0c1+0(xd$ERf1PuH1x|s~v1#sTPlaeE_w&Kc8xeKK{-Nm2L9c8n8RpfU0_h3M)Nl
zjQo at BJ5}3wdm1^cAJ^c-;GniP;dP~Fz4m@;S6x*38(Gep!SDPVcnhopay*k&ST0K`
zT7lqiR1%L<ARn2$*3%uv8d?Z--qWFOB0%VleHAVk6ACV1Qrjn2Vp7eJvi+$W27o{V
zkNBCFDaWVRK!_n_?<4|C*F}aCVK}A;Q35UF0EuX-mE99Ia0Y2lm+n3wVE&0MKVNGr
z<TQ&V&ShDBeBOZ|GSFSSJ&wtp)+;SKJYP?kaxc^clax=(9rxpjB6dfo`E|Yv#4RpI
z`13LcmhXk=mq+IDJexO{Ir~$XIlMWW83F1lHs}F at 4S`@@MaL;-z$tI_k489MwV<^3
z1SW5!WrT$xbTaoGwyFTdI&%H{Qy(l~7rWjDX}Z}o9IeWoLm9AXlp~&9e1)<G%i2F!
z_NCnEuT%n+p)a9c_cO{_=q%ejYMh7cP<2S!5$0#neU8TkOCZEe2(2+R=#Xjf65Mec
z6j$DRRT!azo at v)19hF!TB_)ICXtqCBiWrk+kQaW`=3X_M2Uz^yzyr&N7W)nR5Hk6g
zyJVGW?umz2^@LP+P{xWU?Mq9PKsu)SVempiL3k&JfjqEE0_?Lfp;&-4WDV`ES?^+G
z+O<0KrwgJ<!y{bVMNzMvL7vkLtH;A|%`o!5D+%)BcVJF>C_ui!YbuY*chVW0^7kN!
zN(SrVJ0f9ahcAce`-r8KrbC*UH at QG(=fuqoc|ZD%P+hD3CSuv(lCGiWf9qCE!uJQE
zq|rL%oa=%=m`ZI)=PD{L-dfrL9lcu-NNcr+IF?Qo)4)fjj8Fip??AeDE7f&;3Sk(+
z(*2I}Js~!+JEfMSdf9OR{5WJ}q at ji1t!ce}LxGwPzEy&H*%LG#G$BDt?>GW~-n*AP
z66ix%Dg}_|<IK{pS4PP|YdZy1mRM(WqJq<T(rWa8tVWz&2m<R?^y1hKtg_x~_Vn+$
z;x(3N*SjEd_(rJ!i42omFU*8Zy;I^TSHjv~s9=}Q3vkK{__j^5p^!NqBnGy)0h=rX
zGsffX+q&0P-#}6&cewy*blt})+<Lfz%$AX=vK^R!+-ky<256!e at C~O-9xBZQw^YMS
zF)d|fe`_bYWQ)2pHB9Z8%oH)YQ(RoE2gKDHlp)Ft5?JTZVTfs#wC8<bwMGE>%WtPJ
zM6d<ksI)Fn=6J}lw(&d4m|=mMz7JO}zyYGQY2kWqIL4ELtrx^yZgpadY$efILaD=W
zYKV`I?*O1mTD%nZsF->QI8Auyof$BkX0NTKS3n$->1?;uT8w-ciV-<4A-_Zx*R;KE
zvG&FG2q_ at H*ToEh4;VvJ3dj^jONB8CwS~lS&!9YNp{t2$)B=WuhMIDQ9J*Zu+?E3j
zpwg-N(n^afc<ODuL&B8iE&>Nr28RwThKhJCZ#_$?Y;zW3!@0VY>f%*)Z+4aExKEx~
zwLaQIFTR<Vk58kgzXqoj=r+1bmn*HlyvpWa76xmI1%mJuEZnSvS8dwCXt|2oKsV-I
zBS at hgI992(h#A1lx01Qh-XQ7a0k3K%-y0+maS3lSqoeuJer83$E;8|Pv1&*j at +xd~
zJd&@f>(-Gv(wPeQ?G)+X3L(e(j>DoVvP=#bGtoX+{8jLZj0&Qo-r^>WLD(l`khHx8
zoG1CfKj!;@S10U~N$l}>^qFD?(n)C-k)7Zb#jlcG^p5e6STF}+LeLZ<g1fL>W|oJj
z+}J&^iV~l%F(*!8gyUa&+csd2?$k!dga7Ik17Bd#x(AA`;$MPeu}Q5bS*eXuHkCKS
z!&v19F%^(eq=^M^R1QNlt$=inQ6Gnl=K1P-P}AQ)?!6J^^_0<5E3nXGK)k}Yx$U3{
zPde5wcIRNVh&$zwAFNAua%U at YZ;hBAn6H&XRvv`>VtFCKdmn1=!9A=G50wjyHOIF&
zsvm;jAgiWUBat0|V0#RNmRkjm1|?u}Zx_eHtm?2Q*sPGkWF6A;LNp at o0ERTaHMVK<
z=3^*j{Gi-DuMpt>4J0L8KwkRQvwhKII7G;eKBT#vTrH{KeTYV8Z=(r_J%!{!mRLtm
zvSI6iy;M%>;}{e#4*Bger-Q1Tjx83kAEa>D#tc4{U?urc#3*-Gzz(JKEFFFieuSVD
zqTj4ys)JF4qfqz0PA{(zfx(X|8(ExCe&`8C50)9hG(Z-x(2c5LV}RLABQ7+;G=eB&
z<DZFIf~l|`1ixT|i3$pCr8(|=Z)rcuA{>=A7PwgPD@!4HSM9M!=QgYQI<Gghjn7<k
z+iKnXQn#S!Dwe0w56x9pxw8rp-7 at yydxX=Ti}tw<be}iEsBsr|&P{#5D^VejkPzO1
zl)f-h=vL5aj}UhA5XD1O_9RYgZaU3ZH^$W2PA_kxspb7SHN7_#xO*d?!M$wUyv>C6
zql-d!Sdz_Zgj-C<aG<C-uLN7>FqBBHLzzvWcRUe|<<H=(^&!T6`lh8Ooo}Kt5i!3d
zY0?CUB45 at e911LwtWhWDl9=wR#3G3cV^r24fwPR)V?IJ*1n-V7M4YFp0km(*O)5D=
zg-H;>41t8YRuT9!&NXfT`~lywZ1wtD3&{$^KJa`JvIlZHC~%(~c0T}KoQiRoXy at C&
zFStiamOHaTT&C<kv-(Rl!rJMSz+zraC=WK-K1#~4NkRMeq83PkyUI4x?m!Aox=p#~
zDeZ4J3rZISI+6xlwld=wDEB+Sw_XJ>*#im40fe*`RA?T+>|TO$G1aCC`FO_uroVr_
zEO!VqfCl?r78k|{8zBHAtCxFSC~9_6r2nL^K{Z5v&8xnT6n+pHQr3>CuOzTP7zl=V
zZG)v-e-IVwHYwRj8Hg{`T2wR2Qon_*PT(R$EqH)bvD4)M>ZSvoE`c5n8P||hIkyuM
z*xHW99QR-(?Be&14o%Xyo)q?+Q++|)1kk#D;0xO(#6WmDx?Je>he({WBq@#$zMW_e
z2Mc$v!-DA>jB2CiQ#Os9iqnHrFBu{@OSY!9A2Yc7w<|8C9Owv(|2^=05po<~0!(K^
z)~JmJlU_^;wS4i+HG0?)7U#n7{W+N?g38BDj<V?Q_|VxOQ=p3tzmzJ;iy_$+PE{X-
zxNeLIap+wg32$smX(Uqu!Uo#xf=r%L_CP`#UF=S$ju`Ii1mk3K8<s!2)EO)CiV^SL
z1G-E+vcLUEv6~67 at 4_MwuN}(RBA0pEWKH<^F+;1k+kKK>Xu$Y{dS^@HYqrsCy-4sW
zG1yNqFd$Ivn09oCwr<YT&(ZeEKt^k$zSI9`;Ft>f8e!;iSffW7+s8VT6Nm?X<erRl
zS>Za+;W+RRG)aS>uAt4;y)zOy9hFn0txw32>5m^eV`K15?7JpNn5H!{!2&E1|A1~I
zzqV&N!WUnM3=MbuwOsBB6{Fm2J242x4BVr1SL8q at u7j8jLRL+=bi))Vy)m#n@#8y`
z)C0!Cp1V+v&>ZS1=z(k8hxuad;lZe6fl-Z>>7y<iWfh*5okrLpI6Az5+hp=?;bo73
zKu*tHdGTlw8EHPF!fx+gjOK;`aiUU-<kqXsjLG`(OLF5DHdk&k<s$4x)2 at 6UWoLh~
zMzjU?$0q9?dE9Kay~Jyya+h0B at ea2mH;R6!iE!P}S!tehoXm)=0e$BK>gA-Yi_Yt*
zej}Y4`(2}``amT@$Mh-y)l`W{ap_313?}LZ`xiaj5*9}%-Xm%W^5Bef at cI*BO)nJs
z6is9Gz}S(IG+e=9mv-`^-Q*Jl2TB>f1Gl36%#^;CWht3%v*_<I?YyZdchy&Blm{uD
zLKn|*B(P$rcUmmn$25-Il at jm4Vp*UhpNwJId}K$>0C&C6`CyimBlaYnpl1N<=(WDO
z&a^p!s-;~roj7x>pa06;YUX@#^tGtT+YL+5jrg<6REzp!+-z-V;wMBi%v|3f86-n7
zvSp*>;FGK2K!p+_9eIxFq24C5A2FD)E*O<em%kT>o%s?G;_eM|5Si$uV7DrnU;&!N
z=dp^{8^-&Lc|5{NLfI>uWc~_k{<$nKST)R+0*afoDF(xNH9(z#gh at -FyHoW53JW&M
zmrmz%AYLp-O!p+O8kUT-aTU~*K0<fug#A_7N6mYvI23O*T=CGg&R&b-#wITUmI-8@
z0uYH)f@<g`-V at A4?p`5xbPHsaWOc)iVaX}N2{{Lxp%SwB<<)q25Z#urKP@%zW{)-g
z$>W4H>E~kIktc3itMjIjNZ_j|<OUm;#&;c8R#xshDBcfPkqdG5Fj#kf0CM<;CHP*1
z;nfxbwY^3wst_fU$G8JGqPQ$sQB7q4aoI at i;9a5V_XFpa>CJCg8LFMG&_fe50b&8f
z(YN(8=WAbbU?!Ad;fL*=ko_Z39e}nPeh5hM)t0;DNWnxF at btn_HyBuO&EvF_w?X5A
z8<R_XLmJn-*oD at 8#+j9X4fAOrGa1Jr;nr`_TWduN+gWZahW<9B<7MAK7#5&oP0n2g
zFz-=Hs#bwVT1Z5X;I`6mtRZd?Z9c1Kw-E(~1ITy0&hBzjCMo=tJNO!cY}ozAUzc7-
zZ6zv;n0*7#7C%elLOL+sA{TfFc96Jh2xua*KpPWVaf?UjObs^F2GnAMK^{t*Y!v_{
z2Db at f3?T)V^bqX{Q<vz343M8o9-{An?zfr3HNCjqJBaNC?XY#|E+3=JA}j0i#b(v$
zEfc+t*0_C7&L?ll6<Vc3kJ|VS(ZM4KJ~v)0k>r1ZBknDNT`RJ0wa=qq4;&QC`uaS0
zvQ#7F0O}_{bdI<%y>lo5&wF<Ep1hA)rX?IV3K#2Lz4)jxHWO at 1Za_{4D2omqj<a{d
zP}ABPoGCY`6QBkdsi7e*X$x0>PQv)JNxWZA&Y0Z@>p#Lmeco}&`XR14U#ueWLfryg
zmP39oU1`c=?L9jCF>chIFd1;`7MbLE+`i(`gEY|#4}Mb*vROKp<Wkf?7pumTqv_Lf
z<ZRW3LFSlW94y3X)(j~93bL*Z?f1R`0@#n%vA?tfI(eb5pDXd8*dcikvhbj#K}|wn
z3`L)1rrOPb0kN88tbuUt#}l;8aJ_P6if{xl)EoGqWAeR3z)%IKZ#l7*oLApa;wQI8
zYMK%)1^;7fMoC>ZB7<yx1^J>;qPj$)V{PNF^0UNQi{p?Pz$EJLgh?=lrJ&fR`f~5B
zf<G>=T1KJ+HpTc#TEnCusJW-8)E092{*?+rBF#9}978%Ciafm>;Z=;{Do}lVb%l7Z
zy5w}XqVhn#{)9PvoUVZS7WecA0B3KU#If_Q-WQuHPU77NvBC8VD6CTkXOTAaR;HfT
zV&Fl|fbBeyYw<gy%KMGaRqkiqPPYQOt~YvYFOk`<K$px5)Cd+Hr%$5j8%!0d08WZm
zqYI(^sUL5ZbteD9WKt+_(RjSneRvU-W1fGJ;}<<Is3k1LM71(Tez)O0rKmSPLUY`g
zVku$qg!NM=n}}Zo8}GFFo(iB%h??%;FZ-gAyq4}LItDy{D%JKO2<V|a_XaQ{AX<I$
z!n(&tbKngpK|hEPA5>3yNK^IDb|MR=TQYITeF^9Kw3>=zDqsoJVd0U!X6cjHx97a`
z1do-DG(J*`@FN1giD5x}0Wx#~9;VZ6PI)gaF5pj}5(;3U#0;dUSg+6Hg;Q0a&=id*
zK}Nl?K%Y77Mb0MVGgG9Yop(1`g<k`H#zqtj8ydRc&zxU at YdN(2pw3b{_Nlo at OHUU!
zIprS(hQkyhK^=xXAGMFKQJLYnO}Ul=dd(-+6i{3*JV5 at jRK(~!pI?jB at UQ5!g#OR6
zrIUAA(r^;LdcsRX;QV|J_e9OrkqHa(>03fst9Op7uQ;oQ<AS>W1Lwy+9QM<%X&<X9
zKo%H=dY0x(4SXpn2a3*;5Vx^iE2?Y?<tiT4cU^S@{lm$}x!Jmr>Rnh<3`VOQ-dY$g
zBmVQ_p#P`6FAv8$Z`;48o}Q*<nrWd_T9uMCDP^hAlr|G>h>$5^Y!RUqGt(wf2`xwy
zB1Fg?*=EXCMxG&AOOYhhDA||adEOOf-s5<W-*Nno<9*-b{XPBhJfm>m_vichT%YSY
zuk$=Fah0JxzhJZ06<&WmECkEG5xbC>;0eh=I{L_dLN48lJrA+8Bn~t2=J4W;uHLvN
zeKx~cGIm-s at Ui6L-7<6gy=eOR;ma~MeS9_1O9}*EeKO}3eeLS~Nu at 9Pa+%DB-o(f6
zog(&uzxDCU(?dVWMMZzHX3!@dujtF*pFTM?i at x0SS3l%ypY#->e{|LQuX@=H at x>p!
zxkaz5E9z6A&sNER2~q-D;d(_~$d%>gCc~WuG5ULt7Q?Mu$1~Nd$E+Z>DrU`9NRvO^
zD-h;y+GNE<03Gaf++1mzWr?V>ij;CVzz?mS6Nq3APsEqa>^}U#qMAQ4C4((V2f1B&
zKG0E1b3Xl!EP>4Y{);%f8QWQ0<&Isx at 8B?l{)->1i?i!4xm^kT&@D031wQBdt+wl!
zB<TH&;b4Ju5=o^SdSD8-;p|X9YuOB)zpOxZ6wZbSF9Tn{s&5qrmAPP#!J}>=0h3~j
zi0eazM&EY at _nU!nd4LE(2J5|ezTj>6&Hf83n6kW|k+wiE`>(s~zwB}UH|?_j{AIP~
zI&uT(PKLKaN-=HvUB^JgVM?7~@%+=F71^J-0Qe`FBjCD-s|>LGaDK)VgJ~56reFrg
z!w7=^h5AaT{&W222Ca~czsx)t`Pb7qr2obe1TQb#L9&_a{awIKP9W%rsc>&TSHp$w
zF8ND-G3a_bAl~NdL|CI~J*V?EtuDQNe8ezXATp6Gh~kmDN4%ugdhPh6uEiUF%rZl<
z;bwuaelx at kv*m8TyfO_w{4zoLqF2O=i2k^K{?|8jxZeiGf%=~jF8=ce`M)hV{`=E@
z+MNIUF1~+1+kZb>tib<O3fD9FfYW$G?R{@PYYqJB=w<oON7;Tp$bIbKW%|h$0pG5a
z`TWGt-x~K{7kXa5T&QdrAhW|d;6{k!<?FM4%D%iw|JaFHSFU`1!qs5o59j~!+4KR=
z%D;S)Z>cooM}Pmg(U;7w%jP<_I9F7ZxYs|w`zD!}5dXNUZRne!hxa*hO#j(fYyL5)
zcXA!RdDOQbXVUz){^+c12hr<`{>S10YVS%j)egP*ntec17OOOaTA7YEOT^L^_JnDo
z*t|rrtl``_^^i at 8AEp}cN0;St&@J$@nJ^2zR5#0<Iw^>5g22H^#9SMxWzJC|@t5dz
zHrPYQKN)R-9EX!b1Au?uZxH-Cb7<eZG6w_Hpi$GcegHg}=qV6Lt=T5yqh75{AnL;(
z1<Hf}fS{!nU3@#qYD>USqkt at L)YUy-H%qW=d2!$BUiQq%%R7Z;UX605Dd;#ms~rVT
zE&Dwi;XpuyiJmtuV5Gnc<pF}zU+=?ATAw=3BmD5^VKVuN&?4AN!o-JFFkH$`LilX3
z`ZK|(^bvh;z03_(tk0G2%!J>~hFyaNi-P(_Al?YTwBZGIlH1S164_ui_Q0%p7_x3B
z`O)kGJE)$d4fcPPa{q--cV5-SnRd4e2MbOwaqQb%#hy~zYXGpQ8YW5#*5vem{WAdA
zRzk(@eePV1>|GQD at T6+aDQOohvn%OalkZhx!I8{F)4(_Gy$YNn%0~#a*7W~(sMKQ(
zqrMPG8U20jOX7B9oFJ<zQva4*MBR((YGO85z=hE>94iQ0THpT at V<5ynlI!%0T2w09
zJnd8j8)o;N1J{NPsPr6TW(qbWJ;#Jut*8~BmRxY!5FCF at mmC9^w0rmW!`Gq_Eh;rQ
zjOsiZD6o)L=^e2tusX)>5BWN!`_abSf^`@E<-=&h>{q&IfWRU;84vcp1Cz}Ue`0O0
z5C1?#t&0g39#Js34w?ndF8<=tOJ(eIv%$TG*0n(k-x~z1P$5+lu&{U8XRb0E`#%)m
zzz^LN1g^KI{{6X at 7sL1DrghmO(ksVbp!?%Slw|M(P>@#@Y`E2LyMC|Y8yGkl+|=lp
zwhl}P<&(MaaUwF_^RJFk!NI{g555pQT>AHI`dkOY5jZYdA|MW6CObN_pt^mTELir~
zr0;_W$Wl;{55>c{q0sLf94B+I%H9_uuY;O`%e!*E!y_^1mlwCd<Y&B1a^tF1FD!u8
zVuG?N`djkylLa>p-T0YPjz0Vud8S0NC{M9!I8NI45&gEE>+$0po<3&m*wyHB#MfZj
z#VV1!Yt0~m)%t!LXPKH>J#fF>XlrR7xCED$IS`bWsr7A8R}HWtM$I3LSHA!Ew<)0$
zsXG#6Lr;M3)&=kJN+SK{;?zcu-~TyKARN~3Bz=FDghL?Bw{nYIFgJN4_fEg%78v0m
zc%8NUOz;-lQ>N&n$0<JN8mi1@$;g~Qqu;8~q2K=eV#YwhE9HLs^G^lz;z{JUdGC-l
z(f%Y)!Q6iF&gv=v>N!OML8r^#AE{IhSTaGt;V at DDtxP~gzx`<|FSslh*KgVVh+~6_
z9(}(CZ8Cj?hOk9_XHAeVGkf;6w~5?Yzex#xZJze`P5Qi~-zHVhvjk!eoM_ed?c065
zJ`*_jNcLT4Yv!n`rm3sMwO~vDUMKtWey<~=g%vwvFA#+P$5(*Ww=r?923<fwJHTDp
z2)pKLEx|Iwo&ENwi~?F$>RCKs>-rtA%bU#ncdt5PjA*U5Zh+vS!+%&TeJFd_Y-%lq
z2~8=((lq$GuD*sNnb|K$T5Y@?Pzr+$zQD=Yek-UCVEqdGsXVc*HL^G}oHW}JoAK#A
z`hEK1E8v1FpwV$dqXL{AJ+6RazZD3_36*N-87SDP{`cT{@7AZ_X_WR2c{Qz>i&M|k
ztr0Af+<dz3(*Y6)9*%&G!6`6_<gl54K at 51<e~H5*@dEgVGj-$egFb(`jhD$Af|?bB
z2BSe1u9%&W_r;(E!Nzn{kU%iR9?<4W1hNQ)W4%#D3_c7e0m8k&_&1c{!%!iw#AA<t
zk)5|eyzfm3!o>T1%Kw<d^vfnJPQlS+9H>@N#{79D%JVXiNi6s#y7yJJMf7m=eC$P&
zPqSknB#T+~A~*VsUO#~A`#H1wB0Xj+f8OulAT{`@_t)`t+%ETBK1fTZ&HDF`a#{Yp
zOrll5|NMJPd|HYBmy@&n+un43*(f9lx<V^GB%DRroooRCi7U)57d+HJ0vCfOg7s}7
zZej_|fu|)9^@${3PmRLh^R4))fo`q_n?L1Hu03YBb9Uz{6s3cuD2baaI>v!beKzhq
za=%>m_y)py0$K|@V3QYvE~WJ)X&-fyuf>+Vmj%bs8LY4 at G`)pw9x7~C0l}Vk_nxa%
zZ&~Krvj9Dum&g&ByB2K}Oo1vF`p8xg-Y+4RN;p7~nT75SBGQ_$PJ`acE*Nroe_Y#c
z@@T&zb<Yliv{E-wGR(U-{B#BaPMlga614 at gQUAKn1rpVX|Fm-J_YIphm1cm2eGY-y
zRU@?}<xREnfMu&N!F`&ha&0jFc2wk)qEDf3%4~7~*p8)GndBj+PFUqFmJhI;D=`4;
z=%@iVQX~NKlLO5b8F}99RQX)u+;-U+1B)F+CKGTy-gk1sVmUH})O)r)!Au$G2WPt1
zx*Gg7$(wQk!;*~A*Y``Ehii~bjAL#VfoKn=Bl%7)X++Jj6s@&0KdT8I!hSVLWg2f-
z^zY9HsR;_-LHm($EA{>LTu;#OpUg+<K2d5wcdhHd5y#Q5c4^SXyB;Ghu4DP6)57qJ
zPg at cHFLCAn-@rZQdG8q9W!ms=QHGQ|xt7*1)O52+65v=m8}`?W4q=?4GX4W?Tk$h6
z_^*5ER`bL(4=JKCaBeQQE?UTupd}Y<ftHrN54Lg9lXFM=Z6%z~f>5TtR!~COx#OPK
zj2NUl(TCuzD at 7?GQ)ZCRR>MqoQCAPOX?4YJo40M7gnqjR<nLDP?KLeJa&;Wl(JGwe
zMID?0PtkKxqos(m3(5xpcb-g|*;LY{0dH<Kv_)5-6`+cR;%+qBCsAuUYu1L)$lsw_
z9tSQ%MU#yKEPog<AZ}^ATA|PWENQ{8vl{os_=VXH&$r&S|7=l>+lQI&xYZtkk18=Q
z`OoF+pqZMv?)+Dz!0P1jbx8hcdQ~{bQ?<L5x{@!Xt{*Bdt8c4GnFJj|XM>H4J1H`F
zcegA&p~6=KAC0aSWK}65FPn}8_vom*TQH?%0x9R9>MZ0dAg1X%bWv1J`5-C6=#Xiz
zn0=PE%8kD-$V<nEo<L{m9pu(6T at AiXB^v9eAeQ at v8c|9J`DQ at TuVU++`dTt%&!a61
zy89fmf3IH*CFcqmnMi4Rdc_Dg5XTlFt{AMiW_b(~bh5y3ukzWl%?$`k28?MV4qCG~
zC1nkxZ$vCdQ0osb{;G3A-jUneq4yx261<QvE5Tnq&X3M63||E;o7NYL(<BfTMF}To
zY1Spg|1EXBr=_bq4(s!{=@8I`gAlzbt<$3PcP151xt`Ga)Xs;NW}=jODlElG*C&yx
z5gZC at hqc#f*6)s2RwRoWMBBHHTN28*y|I?@IYDa-dWo<CxBAZT1z4HgI%8Wa_Evd}
zgVLK__ at EZ$X`BY|$1R%*HUon^m1TnLHz##<ym@{6IA$2Ky!MI0e5)1Ive6!gB9KKs
zas^7DjZ(P*CB9iYnS5uI&el_ at 0$rsH=0{&Rzraj0v!(*;OYR;?7Puc;9OK;Ifp1<3
z7t>QPMVLyS2R#@v1EWV8rTkb&YKXhs?OA|p&Na534aZ^ah7>)Mni*2i7A$%LTZ4&k
zknqTnOOk~fSaM-e8jMmJuiG55jH at E8gim|)$hbT9zq~Si;4eX%0VspBV2;1xdZH)f
zmz2!Qd)G&-UpgKa;P45HWZ~rBAY%kPB`X6DpN}k0*H=nJjm0B2QUN(j9H2ts#Vwyo
zW!Isz6Sf5YbfEA$0zMV<umriM`%A1mW*Y5&q-RFKHLW5QQn$%j=e0QEMDPB6ewLN?
zXR`x%f8y}zhS&!lc%7I40#+p?mEn&rY8PT_CP0@)8MUKB=+;3k*hv}ik*UHn4!gFO
z8i-7a=g2noxPIn4P(n at sagw{L8E`RP0rIBF^uvL;;D+Wm16gQMI=uw)!$vUNi`M*-
zGL7#Kw7qn)Jwu(c<UT5?@lb>%@1_^<C_yq)t&^e at Ask!2bgb|JXl0|&yY5+(GIf3c
ze7cpQV60 at 3w*ac8z3`u{gm0}eu02z~8qyP)LMZi2P}*z}{&ZVXci|@x&fx)K0;O~A
z)TrzNPdReTjp@^H#f{@mHD<37bXgv{xY%8b5^s&9ZBl$rgLXU;AF8V=!Sc-Anz(ct
zS-&(UC<fi0q8~l|bGMBto<#u61TjxHsJi)hw6i8tft8p8!;q|STW3)UsGPf@)xdsS
z8oPCe$MIGKkSfHMlW>Ylhc(Crtp6QuPi|y-vQWFq at Loj;B?!2SB1FGA5V(UJK^r_t
zo6MoN);5BREHbi!4HKP0Ze`{)j2sDvm^~!Dk@}YjRfxsG6oa=0#rvsCFUNa#YuEDw
z64?Z0Jaz3Df2A9LzX9i9WGr~7jY$<<aw~?^&FrlWr<hH`Z+nSapDH1xIm+aS&)@U%
zU$h-52O(5%wv)-v2ReK}SJ-J108#B~vVlRSd~kn%Z8Bs#yFssB#T5ZWpp^4%!&@qa
z`91i+Ij?T7U;18)Hv`Dt=L#JbG=SOUK at S>F<yT>Q at mltms_8}X^9bcx5jL^+ylH_G
zmC{^FHxcS|M2=m!MC~N!Oq<3CuL|3%D!j(}byr_uO5AdSQj}JvgM4)6{d<aw!8lw`
zPbHXCTzdcB(yQi<&<`E&sOeU3!Enf2 at 6ui%dd?6ZO9UJMABf7{bWr8On}*CO3;L-y
znG^_Bq4#wMVa&zPQLdbU2kyzd)sfZ_ at Pu*XaU2I(-2R>M(UhU$QHL*lgFs!0v7R1`
zT%@pJch~8deK(+`xvm+6squ67;0Bk&OoDbQ<%QvwF)F!=OV0F==|k5oWCk&qwWHCp
z4_l3VC|yj{@u_j9>>LRHaXOJb06WQgpPtoV1fs7f(;#tMI~7KJUnAO$#m=c{sz3^m
ziD``hGsHxD3Z=a<oFKK^(~l!lP~)S+hKJ2b_bJb#pSS?hTWYGGQ=3)A at X0#hwj3rT
zAYl!p7MH9>)C3az{QUj+ygLw%h<vfYklmK7h&Y+3J?JT!Pn3qMc9i5%V5r{_YX|mo
zDjg(DB9~CXYjZn`X%E$k_|;5lnOW$j?01OV8ZSc<7PKmwKB~`lvgF8~dMup+N6_qY
z*F3V)$G3I9T&;Qn>JFPi2Sil%8bt4L*W>*KMTihVjQC*TTeZJIYM>S35{IEQ`$#Ef
zmH;lE?oF!_JAEUa9ed at p^6+>9>OLRYsQrgCeaOJh0lW;8Vh`wCc$Jghg_CdH*Dcst
z2!C9WqY9#2h<eQ%2s;^=(?L4 at N*byG9iJe$B1$l at 4jDZ&og#DOX^$%vXr}<zg0E at F
zMDlb*vd*Z4TYgDYD&Vv7sh`YSid>N%JU&it74WgC#2MbzR9~`y*A8VeK2c at 3Oer`3
zH*p*jATWH)+>5w)atLzFR;WbXxZ(25^fVR|nwY9X!J}~RE+h!_=i}e7Pk;`Fb>l at q
zYNQ)iLYsApb`Y>O*MF7>OqH}{?ot{m=)YICqezBD88>nG9%qcDI*4q_lb&|u5%W^K
zf~-e-n+*=xeAxGh_?KjYGZ4Gme2wwk#(WT%=kl1b3KXcz_v@<fAaEw;RySkR5P91o
zWm-M>oa8)N6?SQaY~s?0J{V*e^PM|eTX7f7S>l3-O&<ih!&p4_dxl8 at lb7yqVh*KM
z+sT9(tluhh%1$x_LHno`QV0E=INiCxn$JW&n3NIQ^3lrB19 at o{OC*`=XBJ)>c42q=
z$kpjCT}3V#)GoyhhjD;yC(Ilp-%3wF#GFc$@g+_dDbUCwCIV-k4<Qoimm*IWga at s?
zU0}eHOV7k7J1;NqVNTflzv9(vuEK>|7i7$<Z`|G8tKdm_fBThEGYCP<okD1PXABv%
z(i(4l%H$!s(c1d9HI&|bB4NPB)souP(`-$634&a?fB58YmSD)<nYq5M_`GB2L4w|y
z&VdFiTbnr;7IT|#k5omhgHCNC=FT!ISUGkw;YBNLSGzL^j=PaW+QbwS(@yyF&akRG
z!{(jDooipV?bkFtQelyX^VZNs`5>OBiig5WRHRXkTp!z;`)LGzy#c+Hr3ac%(s4@}
zkF$O>4vh)3i>*ob!P=is8Yi-*)u5fm-+71MbZRe at 9YJAXKll~hKg#QYu5&JJIY!vN
z-~d;_=japyilQUX(vv2vygQ+|JV~cVggxQjZc<`tfrGlrM0Ukh!`&HT^r(^vNTTxu
z3Y-a)woXJn!tT;ZQ$3jUigfklG$XPbJlogPdH8f`Y+Wm{4*D$sY}eV3vTYmq^yy4y
zNNe|b@^I4yWLw-u6EMZhlCBIsm-La1<HiZ3$F7k|H|p+?xv8IOZj0)if8-tc{Q&$c
ztKy5cxuaUtZX5kGa<B2Y(%+h9A=P}5fZId3w+kNARR=0Mwn1hbu3iTSWBYEn6s<yk
zOQuVy4F{l#LT at nC<MNB_z(>x)Ww$LP{_Jzq^u_fyL~~}z%0 at m(pZ&3#4_gMh;HHr=
zwGjykibZEE0<hs-8YXqWt3$&w&*5g|0c07Qu&Y;;b~N^+(fHsYR$4bm52~X8<!bNE
zo6xb*|J}Y&drJt4B+G^C9TIO{u>bY5!NIxh5SrO2*Fbl at UQA3(yS;Si(4m`{W4=Op
z6%`W+w~w`52;AxlR>ijNEw>R1uW?4EuDDlKg^SZ_H5s54D1JAgS9}c{QK#L8qvEci
zI0`0+ at rMDrt=IU7DEv?l+=z-N_vP&i3jrH(Ua+wBoe<KYs|et!4^cB)EQE)T<t7^G
zZsx_f<0|fntIX2J=Wdon*o<u2w;xt1A+K>KJwyXJ&et3p=o&oXF6UR6p%Air^j0ei
z2E3;&@`LY*_XJEtK)8nc?a`W}NZzipsJMzjadUDvz=Yu;s;V@{2IRIEn#*yPl2*m;
z`XcYh^8`pt3Q`~7 at AtVELAbZzeXfnOy?cu+ZdV6LYeJyZj4f=V6DI_M*Jb?a9iUlW
zk)a)fWXq;`>;3!p!<R;<)PDq at T*tQ{8OnmK&M4k$M{3AtXUai1itkY2q8amG?Aj&V
zRS5DCP31H?k^`TeAN{qpBN`a<pnuS*jY{R&MB<$h?fgFC<m(6RZ-|1ixTDw%^y!=G
zc>!nzLd$Iy7m!loEDM!2epDPn8RsK46uS`rqANnYlXbTfO9KkCU>jRB)G7IryooyR
zo1i+=`$+0U5-ddWp?UYv_lIlFG*(xX(&OeBp>WY0GE=IN6v-H5oOoWd#b9tJ<n34B
zVeQr>bqP9!OobwYxLO5fP7hF0(&U9!W{rpoJOPu)S$!l=jW4acpbM0~f}+4YPXgYc
z5alXcUJz#B<5W>8hQd{Q?*rP9p#*m$ot>@(<L?2%8H*`-Ct1$3%6XQT#l!-|s#{w0
z$V<Z<GLXMjqGb03R-&{2$&Z645hyvu8w75U$%S>DH7?y|$#72-bH0)XLxPB8{jTO^
zpGrSL*hVrT5ja%PyF5}eeB9Sls3+k%il1G{!G83K$%J-jllg^rI9jJ5O;UBg7oM4t
z8`aYm*yDzKLKy-8t!GMzYSu(qXmcHJKp6<E8RRL>P<OY21mH<!+SpfDwPeHyBj8!%
z6MyOa=g;SvOoL6SaIqS~my^&ZtOj$Vz*7}UBcB()AHfQ$;iS>q_1d5QyqZz{x3rez
zIg7*7_4ggOk0bZZq~j};5}OXb^Q(ybGZ`m(B@%`pXu{oV!(W4<X^shr@^nvN^Pazf
z3Nu1Yn)U&E^4B(Eq9z+!rH!oFb)pO|RBLI+?QN`7gf at E4q0!}x*KBM*>eghVj1Ha5
zEQVJ6qdCuuBU)p<%=P!mJ^X?Zn3e+=*K7Dp35g*!qZtsH(gUh+s|{*~lOOAuMHA}q
zq>k8JEt%BU!BQ|qMMI2<YQ22V8jvSgInYhfVEb;_39M4+FH54f*d==$lNsSZR6j8-
zLRoeNc0-MDMGBRy0CA%d|5dT$m$aD}$frn2iMd1*K88D80^F~yIYECqMMubsXkoRX
zc7l|AE$!ThV_~P<D$zxhHNdT<cW<K@&BoAj-HVCJGD~WhoZ}|Va!P#{AUm_HoL3$9
z9pq`Z?%305h7nhMvvq(7mvncxZ=QI44QkcOv1zR<OJm at S(2DqTwpvY}<nL8 at RC790
zAoBZd(AabgrX(v!Z(Xwwi&<dpRb>_3j-`!w+-jKTMF1h&E_UuagRm|{B at uLk524eZ
zna1zO+S8H2+{Mh=9UVrdesoRr^K^i-2%?LT$<FTE%ll5iNZ at r`?x9XePtfHzM#8fj
z{e_)Mdi#mZ(A5uNJ>L^xY8L3i;<!S$`JT0Ykdm7UA`daL0#A(B$b!{E6|{->?80;3
z!%vApk0Ibl4Q25ppYNP6w$_n*0jJ69y#peNBtuSV3`SXJBFx44&q^T at gz8|!v({72
zO+n*egL_0J->eKN-d9Ya5I}Hh0(&}ZXc#2Ex$q0FGeOLTVtUZZhL*$<d4Rm{q9a2)
zFBKviSI|t!xz`;6nm{AWa5JEB_I5moDIYB8XYM+7Fz-mIHKNxas1NDmBeN8NwIhuM
zn at _h!{B?rAO!0B92y2LpT#(nA9SkU4*SnP22{_z<795YvD5a4rPZ`Je_ at 33?MI#y3
zWGr(WMc%w9G(`xBf4xz8Svg%#3MSd$Jbv;@l9dkEJvKse2MQ9Dyxxw$@RmG4@<$$-
z at 7Xg8S#2<fH><0F?<E1<o5on9JiCjzOHq#Q20d+yqB9blEXe%g&WF9C6|-vFz4bB^
z)1Z+Txvq$hF8qSOr?d)hGrDQ>sMrQrhkBs+xN)bES}|IC$<7SdMMPp|N!{+vD(ar;
zkCJmu=0)O$q+Hxk%u)7Y6Ur<JMG?%zw-v*=466cvdWidm20fO0JWAF3Efw=bq_z2;
z5I4;e*>$~1bMf7*twFgG5Q0D8dU3Ogo)rfn?9a0cciC-omPH^vlGVWCv6nPifMV1G
z1;i at kQ~91W?-mnRDEWrnAf{+97TzVoNL#tm7+OvN42ko9Y2+(sxOKbm_;JLu`4qRy
z&Me)}s73om^DLsyG>Jq;X{w~%AVjj9j=RL)(F#vOPxI^(qDr{rqW`Qhqw@(6LK7wJ
zY7Evk242<(*j%Nd73E05r1c at 26eKJcTpAW%2G8wL)UCo|H2RJ`o#|*~Kp%#ZVXL<G
z_Uo6eA_hqz>d-7a`|-?qn+I6`3>#p=#X-D4vsS}#69f4yd^acFTKn$TfnTaYf at CKd
zw4BMX$Uhrf<z^L~XPG7BTwC)KKPd}FgDlLt#i<Qmnu=<Pu2gaUFN}!b5#=b2p at a(d
zX{W2z%3k2!im)}SM`oM>?M$qHSTl5{TS}|wc53I<#FI7D=`6+otp?UAsi&!>z|JNe
zBJQl8ymkN%lqKZiEDP0DXTJ;!@;rh4zX}tzW6z&F(Z at QFP@r!uyrfHGCU-s^%woz^
z=?|e2DjS;qMA>!%u*=?YF*@Paz1;w=vapxV)s55N1I0=Pu;)NWNVjAmX1^pWJ*|kI
z8frdYvw%bPy+)-O77{y^a<?Fn(SEkT0+s?1O>I7E5XpUiuxdiZ8Wl$bkVhqtFIuXv
zY<Y_e`N6K!3vv5Na6gpB at V3PTKOWG0j$L?o8No52l3{;p*d{(t+;Ctix`hPdblNWx
z6FR at pd=nuW_j_R{dz+f4MINP?zZ5K~f-Aj>H-PVG?L1nzoingoTN;BFjS|W)zj)c#
z)^?wax}Gbq^67dmt?GtnA1axIB-9w;N>5WQiq>6j2RGlP<w!G2qkw8DBMGSK(fPD-
zT!N_Qj1!ZEt?&P{R#_B?bnH6Z%y>ad5C^+kFD~8$`V+b|734Qr>5_6<G{IWzN&Q}^
zM-dJ$9mi at _Pbqw)#J3Au0gzC0akFou0Vy+XNqqM<+QQN2jwTnrXE#dpL7T=RAvI3O
zVwFqC-%zfu$B_ExQ?%dHBkn_>5}nD|%^J2gXRBx>h?7}^4@}<?hRU19Y=c84Iwi*~
z`^f0^OGNTUT*rx?u at _DZy$cv8*UsxWm5V at i0vu_&=Z>P<L}{Zb_4m738A&D~AXFiZ
z&9=Kz8gXS*JyORw|L1k7NGuWn_ZD~tpt(VNHd*OXM<kuQ!MXzjb|&)5%|yh|oQZ!i
z`m}Iyzw^m-+!=;cp^|m5rl9|-o~E}1nMic1Yv7Q|$r$Xl#={IB%@{HG)PlSv3yS6o
zv0VeiX;xPn!+SwbbA=q!!x)>x=BN!yt1v?;&(16C&o3r3WkT3CQ_?W)LT%%T;&_*1
za#X{k<dk+M4b2);(d!dMuZ|zXe?cInOWpGiZ+tzFB?=qqbW%4<t1r{dK2G~G@|<!#
z7jv0m2sTmbzCY7^xC;3>)_>{Jy22y+&6AlT8E;!#e4O0^oXwkA$Q~pK1^O18*1$9P
z17X`BD{KP-b-^S|h0C!Z&yRb*GzJOKVpcAZFYeuB>O=MPO=F-N*>>aQ8*rXA4|IxR
zXN#3r0Oa+JlY1H`Cwe|h+%UKyt*4tl>V$~xC6A~-e2^ymRBWY7ps!b2MQeDP3g(#0
zN8p2qiQmJRm5J!LhW+vWaoNsK{%~0B5 at uw?qf3$S9gxj2e`<u3?i>Kdk&WllI%jYX
z<a*NjAF@#IpVcln;Z4)$eX$5B$bdJ>#h=x7-a)%IKXv0Zv~I+lH>v0IuA)tpLDruJ
zVa9n!Xy!;z6riwWRM3q<eH$en5bZ3M5;u*BoX7cJH3eo7{MaM`*Entd#_JcQTu(fZ
z6pyad*}BgQ9dYumF8v0L9$D!hpYH?9qF|CL1Xd!}u;%6kK&LBlUzF6h;;d8wBFuB1
zB2NU_{1m2c&*3b$>V+3X?#)c<7vR7K)Z9T>oIq7DpGDEeumQcN^l~Xd*lSuAaaAyr
zIf0t|#gvUNs%vVpDA{+6ydwE%!EYbl;48b|x`;~Q!<#96Aw^y)47$E)D0cm9U at Sft
zXOK2DrojzBPjmUzB?yUlO8`o9*2+g9$=QwTq1x&YdaUmZJ`q#MX~gb4(;Fl=Sd00b
zMn;HGroiZ8eo7TxO77P2dIfwN9cc}Z_wDg1Oi_JmGwL7T9-TGh@&KK$#7<;fcD*9D
z^TzP4$Aq(%2UvVprxo=`JTfjtOj*|^W@|#xk1`e!1|}OUGd>g38Z)i(@X(<$3qBh#
zbf{FCs&4z7bM{|PHJkQL-qy&{l!|w$f%QiN655qIv^eC9Mto)SEkJ|W^#{;f$;>%(
z<`B{z<~C(9cJ(lV<&v407&@A_wD_oyJmT$0d5cC=A$sI2A8!$ko9S710D>So&pFGl
zJRA=^`Ozh7qcF*iJAh*+(q>0!yg}p1iBCk2huJvpUcN?N0pcl1?GKz%N2BH8k*C^o
zFsYFk7co*`1?y_xMOwE%65ht{8Qs>F)T8HxlAmcjBb(ECKeTK`r1CX`N*1HiKU{?%
z<Ib6|iW>VHa3=UvGSFBNK5hk2Gl4eR%x7ooy~n_k)lh}f2?)8pF at 6sHobGBD=f*rt
zHam&mv6AX_^0ReyTdP%F8bbkN(HvX^Q6udr>CO+g0>&~V3k*^cF(fq4?#BwaBQH4|
zXnJ;6^O48)My+W8ZQ>+<H0&cJKFmgd{0gs9z8&f83(9b1rPKrYlB}I at H5G4v4Kr}{
zeM8Dhcb)Z&zaBMkgyNKly!9bFXT*~xaChw#Cs}==?6bY-ugLpLEx`K3tvI7FZ3nO!
zCBvO_QT!5;0k%4tHal?jkQp1e82%_24;7gokL%477p_ZNjeF$*uskeAsm}E})V^xb
z`ft{Uuu}rrMgBAw<&v?&d+!hZSh}`1qYXQ=vpNto?4lE+qkE#^+%|3d5S0?;hlk at I
z&y=*(H;jKarhJ}M$5x=BKF_31s~`!zXnPQO^$^v@@13 at wWoEl%Y;#$UC2slo+wUAs
z;N=BqGADZhJoc*4RX)K^Q&J=70oCPsKkv+VL&u7{Yx8ULE82B*hQ4k-Vr{qE=yG!}
zSxjIdrB^$nXz2IX^0AzUdBv=6i;HYnRI6L|suW>1PI9V=*P)(B!=y!AIH at ulmzJao
z6UDWTK0ZDsDtFFZf-TZGOrN09aSWb_RhHZF4~@6ETfG~`l_3{%8s)hd7!Tfuw7!x1
zq3wPKrDI#$d--I14{ZrT-y3HS8P+O3&c|aLCVlMDRfR3K$0TQ{Tx+W{MRHZ*`4umG
z^pdjREEFqga_a_iki%8?o-7oq+}HW-aq0~Xx%y!TyB?<Ig at 0;8%gf+5FA|IBHk|og
z at gqk+gINh<#l=lkmfy!Re*?gNxb%<ZXNGmGlgoBI^B#DlCoBuK5>v)|iIrOx40&DB
zo|1*%D{L8*dda_+TlH{F?A!I$%8l(6Gv?^cP_a&#`EkLZY0(x=4_+4=9fJLScP&_X
z at LTh#fn&;|2av7MXegqq6ptqZ*n>Fz!XaXzdU_!ob*R3<=IVZ{I(-_<xF)l|iIcr@
z- at dkUJ)LiQx*nrJOPC7 at MBuA=3##E07?hlR at K_`4&(nd|pFN^hyV37{ds2{9!?1%X
z{qT}lBtD0$Fc$Nkt=I2s9NQgY9m0lKCTS=mJXjRWjxxHn{-3VlWcZK)ST;XaZi2J|
z5G7?z#b<}f?eK}p%gJ#k`{titPMQd?*8_R4T7a^4#By;k(b`5U0cO|%(L`C-z4-hN
z1SsGNJB~H-Tmp+n=vysxeiJj#s_Gw3v3;Vgurv6!!&ULM>2)sW>g&{nBNVn<-&&hh
zs#8?-%hPT8suJM8m$bMLr-IfQL1O6z=b#)k4`^V`7EW|>GqJrmID0#{-krP(i&k*S
zI`B}l8$4PFnxsucP<BT)JC6e7o2qFt)J?$<-wo3Ttrn+ZWr}Y*SR(!0Ia|-dB;tE(
zqvFg7PqY8ocMq=e@^P`)JhipL<ZY8BR!we9ghj!{ISF??aWah1oF_tHs+e1J7v4^s
zv(X5%m^V$gabsqpr$qEcLfyBV9Tl+dOFUx&&_<GcGDT<O#*vIE3LWj_LA*8S7_f7_
zv#?j=m9%(9y><S^X>r1`=gYsfK?kkG^RzrfQ|lBj4XYbo;#J?#Lt}nhujpe~e&8M1
znmHnye<qrwL;26TRTGXEJ6wefDBISn>E5HF9Y(J8yZdg{>Gw2?9y~JltM$D%N{B!-
z_Cyi!PFyETV5a8RFiRm8r<x7DJBc)mziZAYV73kBM8l=q_KS`_4$|5hOxT#j>0lV?
zD);j>$Mv*5A!FiLV`)>;@~D8PyNq0$?EAm)eN_&|!j9C1)yAF1b(fy*vR)9)<OfN&
zRaRIGrxl>qb{ZFr8}`Fp^^e4<CEvV5M`blIsiOrCcQNY}ITdvhXkY(LTd>^$F$W;+
z&k}w*kXtf#%7I>Sj_df6l3HKv4ZWiU!5nLR&UQ(OdELh?_xc3xD-)IF9vaAvpY6qM
zaz(V|1}0XqGVSb?tb?=gb$66~bB4KDL{G-lj2L8nhwTY4vAs_}G*iXG*AcK98j^+a
zoEgKV*9KZ0n%g`mds4scMBo~lm(uN>0BqezL>T6lZ$>TwEMX4YLm;@e?cIlvVt6KU
zVyep8W(9u$uo9XB5<?Qwu05Ci#05xDBw6FIJx3s6F}AU-NN{LK4O|{3;pT9Myl!}C
zY08W_390~gB{aPz(RAm?u(77qC4YNcgeTDc98zPk0()Hp-ZBU<PUF}hCQYO|FHTsi
zUuM{d93}$*WSpe&IW862aQ?QMze#%aEM>#;=-G$ch!@>yB))}E?Oo>dElPSC?x>tZ
z0^h*~G4AZ^R%72c3_C5^mk at i*nA1Z`8(b8YK-Gq173hr+3KO-HCxN(S^(0xTY<{>k
zN{Yq^qb`|e1^{?apSP|u9r*2tcFY9xvpq=mAW$+hMU93y?Ainz`_T^!fkQX{VyK1I
z52qI0Nwhk5ck?qOI61H0{p}4<M at hF9$xN;mCym6Op7ow`v%Sc+M?VOOJ8W%jAMvys
z7+nUkjEfE93eoXO*b9Zr=m(f8DTU*)*a019)=RdpF?`+<&*d8eznJ0r`s-~7s*3Py
zmY*CZ-qzic7HE6WX<mX&@r|i;5{opwF>je;AMl~@2zAs;g#0^+6Luv`joY68{Hous
z6SyQ^e+~NaT}33)1<eMQeyQ<~wHKG$uHZF|MY2LBwHsOHOn;RAU6mN;ch71{_V#;E
zwBB((7J|(J|ErGs0Mm~0q^;o}5S<PWy=F+R0km$#+dIKiK8b#b>C}xDq#DuY*F@#$
zq0eIbs>L;K$Yy}jn{_qiUfhbIjGg#A>lK|qH&X*jkl%jL(oY`<e~P}(oq51q4u{TM
ztwzsan&b|b{;Ax7rv1*{p7FO)8)w0su1r=cd?^|w-nPl;7)oev>KG#?Hsjz5T^w~z
z%hOw<WzQ1`JjqODm0I!GDHHn6wm0G4dK4i;YMjx5HdWNHfWF9qc-3M1u?Du^mIm5b
z+vnj9P0{x*rSEm?o1X4BhwbTO&YJYDo4he at V$t?S{x^|5J7Lw03AI4iIXvT8IY8-A
z<jEc#T{sEZu%@Cj+NnDg*EZ~dkD2tuKzP5=Pw}p~#cLMI(EphH$G6FOc2z}b-41sW
z>1Ipg$KlfI9yl`6sM^liMgc70w4$44H-w3`z@~n$jSmE8(g5_YwKX8KNrJo}vCdnx
zr+QjX^&Cf|jq)<GFi1lcr4uj%<**M$AS*Q8ivcKYl{F))3lvp1U>tA0-iEselYmke
zYt&x>t3YZZD1TiG{DVzdkXo%?^ODpr-0 at QWNth@gj~b4U7iU8Vjjgg$1s6hk)1lzs
zSB^FGZjyRr)LA(;29){X(%}~XlG6eE{Ee^tAjCwE|ADT!rQZQWlqztVJ<;1TQMo^Y
zIW~g4sg{<Ol>Zxa)MySWq3N?9s)bXi>{h}MunHE3p6sNcmnlp#1+RcSSMpkRfMP>5
z{yYqMeMiNq&}p2cif85M;Yy^n<=V*mhdH9LzD_X}l852aB at PUUWS5qBp4ouBr1RC5
zG<C(r;5O1}`RM3|+r)r at -o{EAs~|ke_D1a~CIkm=J{9%5P;)y*jFvkFu>kJM?-ZR#
z0VN&fq)CjhguaS1Ct^gnanqX$Rp!Tdz^}>JA<-G=r<ZLiP-*&Mn<#3(%EgueKlFUl
zW`P%`UTIF`Opjx#ol`aLg?&K-u9YiS4yi#RCC26*-eb2{L(n}<$2<j8Gl$4$1y|%^
z!>qMzVb%IQV*|i{>7nil%*$OwHzBL6HQ9JzeXOY9ho`5mAf0->VhdZb>z&`89WGs}
zAOg7Ua^?=HVT#0fa&)v_nN>SlOTIV#^}vd)XnWwa1Kl49&3Lk&SK at S&yf&o954kJd
zo{{*OD(YE~e@{MU2As8=YTxrHasSd*dW>|C5Y+VD2KKoMLuxQpc_Jy`j5WA9=ax*m
zSQi*}1F at T&qx?6=3}OM!q=R1TZM%z6jnWcyTIBu1UtPke1zL{ANlu at Q%*nGiwKz at g
zLnA$B-o6`MG>XFtxB+d$U+qJpR!JR4ej6-~mVhUB;WxE1-LiUfY#m}^;}`yL+SVC&
z%x?HArnA8m=^vcNs|1u(?l+b=hl`Lcidr`;XO9+yFcy<!r;wV*wbTVmW$37l6T0fn
zRNe8+rTz6Wl$##4ObpEwwJi>z5Fp}8OZOcxRWm=Ng9h3t&-MO_^KnE9+UpJDfxa`o
zM|7<nSt3HR*^sh*O_+reW9jw3aJ-&~c9I{sJ at F16@h^R6(tsz&DXqgWzm3g%tU=&!
zYT78nBF91M0<WeS&pH9lRKjx>3)7QVYMO_UMiQi3p_-6Nc|j{cQn7$Gory63dFTX@
zEKKPW7Ss{nY6b9c_7|;Md)y+KNC!6CMPsygdY*H0oOii<X^s2hBb*yFq-G0r#6b8x
znR6)W<!Wnbr86l;<8VF at NM6xZj5XvvSm)IPF at 1Pl-|1K*rzJ2&6V|*ACl?n=W%=8I
zq4ybt*)+V9NYnpDw0xI at KGE8M%^B)%r=GulGR-BAj-Fv=<obJGiJ4zX_!sr^yk`bD
zPwc92{lmh-vTb9Z6Xzls4d}^C|2JUVmLnJvfO at vGEKXQre}8spIy$Q3P=<cDKbMUf
zPF|s@`!>wpxM{KvT=lA(1)9W{GeASRQDDh8m&Ld!l)cb|*-1-7S`L7WY>WUjJ4HHv
zHQG^p at PxV#ze5`A#@Y%6t<STaNxM)-QMN#1<{jAdWx0m<#O4Qf5mdp1w;?qoi1 at c%
zh(}nb1vLMX1W&81k{O7Hp6un+b{fIno)25Ip0irEk(*4D`@`=@mmrP&nE^tea?lJD
zB<6jHK>iEh`R)|W)^?(y#D;CjFKf=4gDNDF1b}d2ReE#wGX*k3*{{Jzk at uIIZ|S#`
zOdOHD^1>f(6x506%jj~k0}0+nVz6}4mep8%4ucRGTeAlK5}=S~G?Vcve2-g2=ZnP(
z&W=%FAZXNfA+U`{y#KCt=`};3my)DuBDyVj*2yt#q#*N?nyHt%p|6oevKK2;<V(`Y
zgbd7=me8Hr`A#FNX10`tH9Fb=u1Eu9ugkl>q=a`jXXOO!=|&6hBra3a`1Brh?=!&H
z6JvF8rwz|uL`ZFGOWfiRKX2Lo>L(TZKf-aBABCYfS%-rQp8DCQi)@B-WFHs`66>0K
zu0x^B2?gW8Xw0|79Ws{OL^_>ItP|QlT9m|*Po$1x7T^BRB5fU=Og39+v5Zzj7MSLu
zqAGsq5n!I4$Q>3_e!yk|StYc%K4h|8)H>!NLH~ABwORFTq`6s81f72iH+iLTssF;J
z;OvzA(Lu1zoVdkc_e#>xN%a^WT9$}PErWBp;1~M?&F?}FWFa)<@0V%DJwek<Y&axv
zRBn`BN?Aaj11OR(*{Iv%{5BKz(+$Hz!V_^HWU$|~#~I+Vs7VfX(Sq|9ejwJ0sLXgG
zLu%YloM5|}{KMhW5y~9{f=~6uZ5`|m;`=C$)c5CtgE5H$#52=ZXM!`mz{?VQVK>+n
znRrkWaoeojZwOv1=M|6yX(qMB0g;^c=maJ)sWf6w7rua9Z|iD*>_5(J`2i1!?EwlO
z=;6!O1~q>$pQg3IYSa`#fNlUg8fTxLN{~&&?T$-<j~=nciwE75q)TR}DZ~R7yjgy(
z)C9!o-SDWV- at 4Z}0MdDCD0W1hb1P6Lf39_0h%-lKrpREEi6&sZ+XZ#70{=AuQkH^?
z*NA{4f=K(9#hQFa4i;ud#oRP)bppD0f;2j67;(x<Yp*q+^V5iaZhe!6e&SVxn?`aF
z8a-?dPOnvf8|w+uJ4l5_72R-w++9TsdE!XmMkFB8$ydP|Aqz|qeY=87p;zmNou1TJ
zfR(axK at bwdvaj2pi+ohX6$Op~Xr=orydCxLeCKIC+=Xk;0IZQ1+#|t70Dv;t0mT|>
ze&?%o0~rt-;-K?Xu6JqQ3?uijt<iG<!T|SG5sg at a3wk;7j7FoL_eLZkWN|hZnL{K-
z<Nk{{2nJC30x}Ee^-di at VV9lVw%D_QmK<hmo;WW)k9RH>W}|_Df73;Dml9rHaVPnI
zH!MYGEd51Ul86*?m5nfHCySJIjP`!}%_#5acwJsw<RilY*!he9iPFnV<Tnm7$yWDY
z`A(Rgh^C05Z<zYlB?vh9B9N^ourXKQJKK<K4}3~1Zl+oVJ}7$eVPMr5deUpUcPA0q
z=hk9KW1CuY|6?LR1XoZBhb&of8wJe!w=xm$CVc%dmKe=>UsqHS^?4amU9x4xM~6JX
z3yV|b1NxUrq1<VmEMV}XFKOy+*zgrTtVYg)>C<SF4>0Q_-5q%|6oZSN-yHdhG!TyP
z3=Q4y@(cKL?8S2EAo;Wk&dmhU*@q<g20kk7K1Gx5vZs=<MeAeB&iZvXgx9DrJZyBA
z>{^f$vNes8aL>?^pd7=B%*!@=;Rev;>0&>Uvkn)u*RLzX^=S+|V|Gdn+9Gz{H#;b>
zqr`?@JY<>Gw&=!gvc=stn(QrD?KGZSS%Fe5MD`s%pK*P0Oe5mTTw)71H|U{O0cuk+
zq6!TRPE9x*%~ur_Ja~HvpsHMf3}AMSp%|MK5D15;AJ|68AQsJ?Vq2(pF6IaJKry$L
zw+~f($U#=o)Bf4knP<^`Vdt}o+NS(BXZBDiG130_`SgAXE}Dqx9F6Wqozn<?f?yTd
zxS#?>68f&)BRM&>5<ozBz9mSsl_=LvMnv6~!GBMiM*CTc4eD*JanDjNxAqM>Cu0eW
z5gKH9)EIjZVqQ at u0k|kSS%|bq#PCAu_L#JP3_L>o5Gk)X0}0D%8d at a8&<c`K at 4lId
z4h0{PWK>VM!l~kB^Tjky?raKG)#&hhRX;3g7p#MJ1D(jC$1QH`q^1K8d3oZJso0*3
zjmYL_ at U$0ON^!SvWQRy_gILj1ox0HvUOed_O5J{3jBe-FsyC9o^^jNi^+7Fss_X?e
z4zLh%O0TG-QOP_fBO_DE5|?!7`_bmejQI&M9BSNZNe3+oYTv$d>i+FLs(cUn8Iue|
z=k#P4^lLkB15i^*9wh)Itu}?kUrQeuXbgRAL>!v*0LDM5gFk;KgNrDG^hl;ac5lBJ
zSZfQGE`5qOJEj5mLbiT)i?38%ElV#XuWGnmwg&QH^9&;BhCFvJGO*V$08lzRvFO1<
z^e8Za$b+{}M_l(~Hc?R?i4<P<qiGAnejjfRcJt7xRl^obed~Zm2#r#70fB(6-;%?e
zI(0mfg2y499L7TJr6=xM!~KUeIM>~CX>)OabLna|H6(-ZvU+fw$rc4>WamKVF(ZW)
z2=%`l*35BEM7jYK46cMNOPEe7j)-VvaRu)GTNBpn*hWW at b4ro__=-?vHZ~M#w~vcf
z+gStsDAA}ME)II$?LHOJTzHUnXJCcLFsVXLazi~&36%aSCPC<8z4`iF<kM}2MDmy{
zqq2EWJU09dus;uQEn*&ZC6#~$^c9)ELgV0o-aA}ki~g|J97x9gZ`pkLnOk!FNbl$b
zPi5`?(mx-dbW-c5WTy8Ic3lRjTszv{R>z>6v<T2 at d&4-^iix7P^aB%quy!((!3LnV
zm5a$5h=C-0+A3#fXV%N)UA8`HNgd0Jt0cu~u;?Wr09jYkMP)5#Heplj5eW-PSILfJ
znT+CCWs_Yryt1X1Xe^eD-6-CDhp;Xqilcd+M{#opF#3%^p;ltcK<F at w87bRP0P`|I
z`Zq>SLu|$SIr(&)m_VsT7=n}f>%<7&7i`4tzwI)Oj18bgYE0olf1}_7P*z9mzfu91
zj8BoE!ToNgqB!L_fGo<lf1^F91$vOHO}Wa2q7%$PoY?Y(&eqsBLFkzpb+=W1F$i15
z9hu3lmNz4`9Y_v^;j at 2}cY~H#`2om;fr#()c(Ylo`A9g)S)5laamaKggWBw_u6bKR
zBA#A)9H{y620A^+C at b!%U8ChBr1_kA$>D`e9pmr+fF13D7s^DFW3z847#|!A`4W5a
z{_6{KA1zvpu~Z)<N078KzMLXUmh)=K`lDbv>`_HdWo0Fl!A at jR1BV(5%`8l|%b3%G
zJGpM{>=Z0AiB3Oh)%v&}*sHx$-f2<MOBQdSN2L=aB*+}Enz$W{Ku0Q_w%|I$LS6$%
z(TtIe8MUpIypWFzg79r6^`0bB*D7GoU)PzM8lE~!Xv8Ugz&yPxdV21^XsKtNPd>Ll
zwtJ!6LC{#qVBn3b at PJ7`Yn at Tg#n|;8tuhx3>^qhhHr)4{<~TU1F7LI$nF*>PAJ=Zm
z&lF*0qZR9T@?_g at UpjB78r_s1f{PdAH>Y$|dX at 0md!T+4Q8$AL6Vv|dGT-Z$mD}NL
ziw4HAIA9BoszGun$$KSlo6}sYR55_N3M|=^td&3NP&m(i7B=u0G<c4)%f&93^Yxqt
zBd(MBqwRoNSY(coQjf+8?hM|09sv-yrAA2?ha`GGwlrfdgL@}8JI>1-NwP>_gVyh2
z^3@^(Pj(+6lF!0kG}#8mQ|x8>&%WjI3u*)2rSPww6YF&yTbP9bPQsU>p){)?Z at tjb
zab_KMIyrI2 at oC8JlW!-_DvJ~7k<sVqLgf3-a+guqMa)JpYbdGpZb++2N=jC at p(Qf^
zOd)1z<8);kevvWWq24-gWo9na2vA7ICYpnEJ>)81(^gQm^|vo8LE$l}M{~TyQ)>oi
zF|vvPiQli;EFKPv)OT{a%mbgU{NGA-G-&E@^X8sojm%NWRF##Qb^+}iIo|mk;1h3@
zL?8-D&sZ4ZuUiq@)QTHUjAFTDWbuq!-d*KrR=Hz`({BLi!bpZC at AAbv%A}Vw`xKpG
z6d{}TzjEYwrZf<KDahlSp?ScC*aM+=Kv5UzQ<0s0T@^ZdGH1hacs*JOyhP0^p8IA4
zV)zR60NIi{bp@*(IUk at BeUDS<j&F&0_ziS6oN?e-djaQb_rJa!oPpV5JR3=SPVEVc
zj6BK7AbeHMPA|Q*8FE?DteMh-N32y{<O9btEQwRw1w3I7QIUlCF5k7R5$jlPhlA%%
zNgjD at z?1Gd`Wp(-=*#+S at Wih;X~h^9FTs<BHRfB8dxMAi%F!6k2Id}VS-p7un(#$q
z%kNopvKL!E%mAo++_Y%`*O1%@j&v1et5C`qMV#$S``+3~^S47S>}AtxhNBFk-&%@h
zTH~Zv5zjQ1FE(Xdpo0WwRkQ- at lVA;hKakZQ+CN3-stXaaLOUfc2vNeZeF>V2B-;eu
z<#9*~&|El0O(z!{!zV6#m){bi_pqfBWL9_HvX}?3sj35^bRH*yhXy!qCBQ-8 at F(x2
z#T^6U`^;)2LZ52Nk+yA&LZuPX4cdUR$w06sKs;{P(4kjQZE`XcuYSVCRM3GJmi_(P
zax-hE;HRkvATH?^gEqtyiU3B^9iX5YJrDx|$<Y^_%R at mca-7N3lZY3*b!bNNlm$GA
z;Iun&w2vBNb}Iu?KlyxHx70w%;|`hP^YYsF*P8GfvS>YmtktMn52J%LjhHJjTSZSs
z4aFsSW>n%MfVb>==e8*E@|7#oXgk33#dKmDFkYFi1Iut{9<0-^I6?Lavz?bk(MFt4
zHqgz<sCkg1S#QO;)Bh)x#7NYta6Fv^?g^V@#FNMfV$@=}{=BBfOr>&HU0t$p=<B33
zklb1!t1`y5H!`MSOxZ=>$SIEzF8?&S<^W#InZUpvlkM>d3B}indR`#+_n@<2OX%gx
zPji+ZK;n_?HbaAAb>8CC%^>|oSv0j7nsCC>Bx2wtXtYw|sb^U{wpcPa;_0@~Rneau
z`?I}}7*c;j7nl;yO?A5Zj%H+5q4#2y<!WJ$?avR3w|=%^mQpkb+3a|6=1LqqR!M$`
zJy4uvmF3;kUyJk_4ynxj5amSwn<UnoV)JXezdExi^-(AAkFNfGyeNFROtTN~#FtZ~
z`x=S(^7QE5vxlz)*+Y6C0>6CzS6|)#vX?!qTrz^MFZxr9EBPu*ogJV$U__EQGV8U`
zUC at +`@}!Xoht_TBDB)UTZ;;B#G~(^MfYn0;0+qi0#<J^hgSzq(c#f=IZ1AcU3FI#x
zaRmK{KA^;oZcGsfE(_oKZus=l7S{oYMrBqvYwZJpyvn7!#wC`1dUh9kGh0FYBgE!d
z$?YnMzOb~i^XT_49MdYCZWRjBaS5z;1xgydq%YU4b+jA6_(k+Ak=$o6*<f}aCpiee
zWov-dCx0w~>z>(g5ajd;V3e|`6e!(^jg>cs7&-40N628#crFF>nU{tM1W9uS%@s8J
z3IqcR)~bE0)oZb8kpfZ?3|{Uz!s6%YoabhJo}zebYJc4o)Bh*#ivOm~__vo`-uGy}
zZ;64<jW)1cQ^AxRRJi$eM!iQhe1>7q;6?bCW&P+o{PJ+$Cc&3VS2TOsJ*Sg+yA<Cv
z-z*fFJ0|_u*?BQA?a~$mqzgZR;nDkN!*qq{>|Rn3e(BJ^KEnTz2m5bp`Jace4bsz0
g%~bk~so~+O`Zi!|p0<;A5|?4^N at yCEfB)0}0b?wM{r~^~
literal 65533
zcmd?R2T)b*wk^2TUqvvWqJm)9C`b at cf+PuUMUX66qJSV#B<G-lA|fi1Q2|LJ0xCHh
z012WJ6v;}GoP$W}vGAUIUv=HSeP7k9?yi3OocdMRd+oKpFy|O!j``hIR+QdCy_cFq
zB5gS*b4G<kTHi(@t$RSV7C*UsYOWA}Y%r3OK0{g|{uf)E{E$RCNIG}sl$y(<;dW=;
zuQMwvE58hHKV#$7`>}f$({}olNYkh&cgv_0vp&h1&_j%$K8CVh(4bgcQIJ}n%RZ_w
zZ|ftoHOHU&dgc7m#G;c|(WxItKhg9!EydUTeDurZk-g7J=O-DzR1-B)*W=sqlCO~;
zAnpe*S!N2u- at mP=t^WHLHXr2;tACSR<IDT^N7M&H)~x<b*~hPbJ?Twq{Dn- at bLY;<
zYOaZ;j~2Ai&(JRpNyjB4sNy!0=oKzqx<sK|uU99rRqPjYOK{jkBE4~-G9kUGoE>e~
zNl{@*OeHCQlz%MZ*jeI<i{O?5 at TGw-yq5l4xpIZLY($E3-1T}Ee5<N)yushw`0w2!
z3AaGJeAeO{S6_6JZ0lD45=;7 at d)oiUFQvt%N8I^26I0XCmh7Rf@;etUTxcGP;Wd%X
zx9bggj&&6xNz6*@rTMAP67DmDp$p4O;`6 at 5ltt_a=UGGY2~IrskoC!vC#&O1JUQE%
zCt~j3UR=nW>-07lpeP at 1e6BuJ9m@GRM&ffN at zQ!_<X687AKej96HX#!l)QZTlJD{-
zD)N<%q6^82`x0wTJ-BE%v9i4D(v>UeR+yC7GNZ)Jq#s}B#(%zN5+ug9eEWZA`TWO#
z3hiJd-EU|wbUsa?aO)S*@7c5GzyX^pS4Mk!dWMIGySt}G3&%u+gy=mhLPA1rY~1!l
z$d;Lvm6e;DTTHCIqod>P+qVr3nT|u>wlJPhOHn%;)A-Np*RMZ45o6rDckixUyBHax
zgM*E1Y{t5}x<*GkQdE;$vMr<Yo-{T#K0Kn-k!Rao_3#KjJ3TSM9_XAoUiRUGO>54`
zw=|u((RTOoAE%mMo1|)HjP~{Q4Gc8rSnI^cSUrx4DzI!y$M7u7jeV%72;(v6C@)Xc
zFLo<-n|ZEZTwwbPn}B5}Rv?>vn#MgQ;mI#?rw0ZGc&uYpQcjAAh4UEbXPVZw-5dS>
z%DAJ*b#AQlv!#cqsHlWQ=_}(87OGWA3ekO^W4s6I6N_3RA|nNCIu`Hnl$f>VSYKOb
z(cPABZ{Rg=VrJGq_3QJLg=(61_C)uGd-TVjS~b6>P<eZ=FbZC=!mN2kw$4xeI->N%
zqq|~Dt(dvF`Q+JOpB|^ZctQO_Hc>^uqS0)AvKN1R8JS-^!op(m^POL+Mq0qVd*0?Z
zaLK~LLM3d^FR`agO+|QgJ;#5%eRe(`6BQ8}8rmI~C>K6E+|2jk at q-5sYQnf^sHtTY
z6~DEa8yoYP*C$|LTfcwr*Y?@|SlHflurWo at rsJbma(sNZAI%<qgZ;vGmnOQ(-RDMY
zKYsKWIQaFsI-`g~|4YO7&(%{+UC!OxFBWyex+O}$QbkqOUP1&{%<XWq#M?$kM{j;c
z5R>H>Aia_4d3xj7Gq%TWQc_apQ$v4l9q at 87pHqA+vg>>9*}Hq!huMy{2`edmX4;pQ
zmL?`9HuNpc((nOanN34d?MQ2`qg#^jVOCZIB+(BJ>FMeE`ucYn1=E$|C_xM(BO|$1
z&A}ldhYtnn6*~0_OlFxkWVxQBp`)dZ?NnWu{}qF`*wb~!p1L8};S%pO(qd8_Qnh^l
z)-7o*t%!70tM4z#8Lw|#zy3P+V|BH5j at 1QB=#<6S&!4tq9b!vQQqIdq at v}RtfBN)k
zvJNW}bKj at MVPay^i^VcH7!@C$ot?dZOj}aYXPDdI){h at QuwN}Jj;cRbYcFur$+05d
zR2*2JD7SILhP at Mx{Y at D$v_><7U(Yh_B$4QBUm#xl<>%+GU%!6eNta`X4xOfYW!-wh
zbwaVwX at uW;uYd*r#Wz0TP6jV8Uc*$ICd!+d_Vv|9`_ZbWYFIbFPNaSJ=~KE*XUTjM
zEgc=dT~FoZ&rddyk8*KI2h!KQGM09Bo*Vp{TJz80Lx;MtWt!6Uba3UMeWJd!x3=z^
zoR}bX%$?m_(=OleyCJOGGiQ8h-&Iwam-%nsC*oj+cr?qYtfHdwG(O&Wq$L~c_xtzn
zWo2d9Ope3f&!=y>efMsy<@j;q3N3AIQv>#$`}TQum2D!Q!S~pevACKyK0Cj%yyWPq
z9~l{G{2^#*;=_U7aD^y-25}FUWW~p?4Mv`7q<(%Znu~?z<Ky%D_wVuXaop?5 at 9ul2
zZ*H#hddjU=;4#<kyoXy?IrZ!0lMnX}jCB-?N at qTM_KbY`CX<+(n%6*YuYl9AmVtr6
z<;%Zz9#NE!<YhTYycS1tJGXAz)?~Wnyy5uV9FJZ>mTBV0NWRNGf;VZqmX{W+TXTw?
zMxqw&u!qJ<7Or$x+#PDlurW7h_jUO_{xg(QliQ%A$Zcj2K}Ott)(VevYukZkEG=tm
z>lwDbCIj!8si}vZ#u%*#5l0IQCcj){eSJMXcGC0D^yyn$6B82=z+Tw(R##{XAOXlS
zC#sT3E{^@VDy+BSPT!&?zj*Otw6iordX7scr_x}oWu at 4&Dwri|h23H3+sL1pq4``1
zyB`1W at Ng>|6O(N36)(LzxTWWdZ>&sBXK^dZ2?;%&;#^!@2M->Uj(FN|eQj-x-JfZ5
zz0|MzrlzJJg7)>E!5YTas;RE7PWF_Qt;QG#2sbXyPi=|R+etCks9v0DGKk_bwrEP<
zw_`_ed<~*6|F!nsn(!@=?f#34i#;^-J9nyP=!;#@#{%BQBy?XXV|sd;fzQ+|%pu#X
zt_y)o`_r=v><BG~^LHm<r6BgtJ2V%$+NY=_`qDZ%IlX%IO5|j5(JPe=NMim3l&D~f
z`-m~_`SpIFA$h1yFFnZi>QxyzxrU^r*^$;>4w9wiP}_l)so>DiY?le63zy3Sb{#r&
zC_CdAnSAO>qmj9JzTx`~Bcl2x9?f-iuh?$!8dn59$mF+f;TI9nuF*#V$j!{$NqMIB
z9An!r<{qTX%El&>Ia&VsGmn6PKt>R!#tSx;Q$Cwbs>69YUmBjiu!0D>U&8B!LMP20
zZWkAqN`2KN`8vC^3T%h+^YV0yTwcA=M=*UjlB^J&)O%+B5H at k_KV33bBsT3HVP1+q
z_NIAG^4EGq(d9owJmj*<2Zs>bXso=EvbKr;KFG-_m#DIS!v at pRiyYn@p%(9aH>oBo
z?xGxKVVME&TI!VIU%!|4QYFHlAFagV_~~m+>LyLNt at pRK{mRbI=<- at wn%l*xK}Fsx
zc*SG*`|*+7XsqKj4}FVlH>7~(jDq at m+G$UO?fZVby}`%J`ywrE-MV$&e+H60W<wan
z+@=x4H$Q6Z2kM&!+MpqC*s?dvu2+_;a}J5^rmwHs3$6216WBYWt+`4~u85+T at GlAH
z9<J31LiEKGQv5M(ec5tA6_U$9aIuw<#|*F2GLy+aamA*TZv2<W_hnYrV$VaREOQC#
zmaJr at 7;19gr^l_yN(c0Y8mC3Pmlv_ovj^<(2>D~Tb8`ut;`sQL;rp8+y+W)HqoOzt
zabQC~7IhwsViLI0=7Olo5y~MT;8-2PzF{|?ec#9C%*!-n4)x~_)BSaCZ){`~ioM>}
z)^@2eu^6GaM$EI(Vg``PVNj>UWB$t*<yz{;YaRQ)oT7U0=+UF at el|cNE<hs52Muwj
zH|B>{AXH}?T-&i{&k>~_tVpHVOyfyr=aF5MEXyXv4b%m}LzX?8gbX}qLQf=qdL*ps
zq>H2xH06*rT_=5 at igEtv(y?M>-Rk17U!P-Q7Gw at uI}FrI^(lxt4GXzWCXma|NK4a@
zqxjA3W`{2vIB?+fO_i|7$O{)Q#_nI3L6Tdzu}z$o@(42rP}$<#_S&SzGNU-j(_O*%
zeUl&o8*gLV1Tcll3V1ELkjt_yn<x}Y*6>XCJ&9^dw#B8TY;&Gmp6!&%G`|^RYiqHq
zKP1U#TwH#CP1T&T at j&224BkZEu$lhH&`@e;U~RNuhGxc-yLayv*(LaEWt!flefR$T
z`}-#B7~2O6jT?}+w3Pnl42?wDUF$xa*T5>C at e1F=rG41OOz~a)*&7?SI7CV9e8Y0&
z$WY^UtOw?hH9k+xun_GG0*9p!^<u-GzM}D`FWSb<-QBW5>WP)LrDbcP+ at 5tDyX?+g
zr|rTjozHEw8jrg$@-(If`>@bCqyO;MrVN8{&5X@^`DN^#UhlW~_JaNMp3Y+T+*!^9
zyP?)xo2yr^0&Y+5kMl>KitO-w{OD27 at g9Wd6WXURu@z^5s-+$vKVbv<(Z<Ea*%dY{
zVj;4#vYw?PhkvJ&Nz=G>>lO{!ZFboFhoj_{z5Mt0*fI&*9bO5OzPCSAkpEYAf3jMN
z$}SGIW0(Hv2Ku>QG_kxe#wZlR^s}Sb{pRrb`V`e8wN+orqxyOrmnv;)M4d-3nV2x7
zFyjUex$j!8+d#@lKz1ZD7?8Zd>q}M0$Wt~)bALNJI*xP{7oNC50J}?<sK`0U<OuHT
z<UD_m$I*7-3+4p at aj((71CVZRZhpgXhi<;Cwzjsty?qOlY-agzvHRR0 at RFHH`6I>F
z!lJB&9P3tIUS1><gKP_RV|9SAi)TPYl+UQA>*g!Ph$98)<X&kna-Cw at w{ObAb+V at _
z^YUkE^4WX)(|UK at E-O3ZdPrEfS*z91tm31buI{5_E|K!v=@=O~eXlw=@b|Q^oZG2c
z<*39GdH1dYpy?KdIF&@%$+IddI|x3<7Da at D{-|Sy?+P4;z-M;T(vFw!G3fb<bYMd9
z=QXMRJwI<Q{JQPsS*oACz3QMX at 8v?*_jF3`FSWL at u?ZOn2*S>xAu!CA1G0SnOqqw}
z6cmbGr;^Aue#oguZF+W^0ll-`A@%_`4^IX_=MZ4}nl)<>r`Z9$Mo&18bs$ot(i&k6
zBJF4gS>e)#h7Tem2Y&t}D{bXnvvK1se}5|LoJw~6p2^+$TPr2)>ag_7%ge{>0tylM
z>33A?=3PBSWeCL8({rilDdscq_Fb<vu`<!CfsU26 at 1Df6i}?-2LFCxyYR_%EE6gPT
z+k-DR{IhXmsmsJW`q16-+*)~#LmJxJQRb%nTNq*!l9RE7o8H7RA3BtI at 4~w(H7N;@
z$8c`F9h4%Z3-Fi<PVmP!5yVK!3?U%ZMhW=Q%7t^+E}3a-w<t+09riWrEGbSe{OGhA
z$?o5$-M!m1P?koc)XS4xc4rTd{;P7{l9H0i3e3P}CfOk65)apT?a- at 8$abO at VoX@b
z0RI&KPme_zvxyjJOl(<Z;QWuBod#64^OGjEbv1jjSRS?xS-9?Sa*EoP>b*Rl{MN*x
zw|K7Oq2Q+&37aSeh4&vmNb4WWwCz57y5gLoV%QPGY at 5ywHqk~p=at2&&xpL!{lEL`
z;t|mSOOGA}mbpA!Kn&$gV)_d1iT{z=e>(G0RWQ at Gs)sLuygJkMMD=c2WBS0=d}&J;
zC*=T1k8^NI0$EvETl>*sy?RaeKiGuf<m1Z}_xwXe-nvgDL{zAu1NgO9zp|WD8bA at 0
z2TY1HaA$nU(rhc(*HDY)@b_1Bb#)Xf&^WM6#$pcQ(aA)#!tSs`cHKk4%ys73p0;24
z`TiE<5)NOWM$Htpf~}T at hOaKZT}wV=XJ>~9sH&=ZS97ukQ&+W14C`%ax<P3R0|z(v
zm6j}X at 1>dWun}u3tDY^9ZuITb0}Z`DRdEYVW1*Y3Z8IqG$fteR+FFR6cs4!b3r4A;
zswzbzO&i-hltbO(OYGa*JC6kNzFrLbR9(IIq{~$gkD}RqK<En#W2H1?Y~2|hGiW6j
zd5OKfIdGrox3)IjG>w{u3>Mcyqw)ZR<a(R$>3W4F3!{Y;e_+?@8nJ1ofqE8eabfS-
z=F5{Z!v@|<j>rdpY8|Kh&x3%uPW5 at t_l9dbxsGHv_1wiU4+@$u>+0&VDnuRj%>x7m
zjcT;WR&4L??nanf1hWj4&A$4RBF20|YH_yJ=78t)c?e2<Pe8u2%^UiVfp2buQo!#x
zs75XWnqfR)m4~lcTX+)5tEck8<cGJ_)fNl0Ba;`8LQi2{-P3CX1#<yRsK{&Atvev@
z!RG597}%C=8BY7|^Jk^Z&1bfOJBK81wfX+i5GVjdtRUzrW*QF*HkxHp6Sn?DPIk6l
zwngaXeK)u6d;XzZ9Gi#0M<>0txewOg%*?dUw)pBxiwx2<la+!$EbZ6VVv<bWW#etz
zBo>tyG<iit3h<Bf=g(98GfMt|@@j~LCWip2hjTkuS61FP4EPBqCTP*fMn2==;SnS5
zi4h9 at oZpQ+vw#17yG~0vxf%h>Z~QhLZES?XMYkWS7Tf-w=I at BZp$9}YUuZoD4K*<|
zJnlAacKT*^W at amL+sPMyT5U>a#>ekpxOZX{Jje3e3!t;%wtQ8ppM8Bv3K`hb)w{Tl
zA3r`;G!+yR6BD*jGu%<Ua96M+;+P at D)HEqSfByP<nm==6873)RrPep05U_-2nH at TM
z^aVH;9^In(buWaLNgFGyY4ZkF*A3ssN>@4%u^|%f7Ai;LDK0MVtq)$aZo@}_oSGK8
zJ=?bfF)h~L3d~~~0ELeb_bl-9^P at FFi~zKlo0(YxUt70!ZO{RU{Y*?Jok!cSGaIq+
zJQrr|4lqbde^|G1YyWgHM8sG+nnW5B$*jDoDHj4IV4;4FRWraAwv8tF%;zU!y=!St
zH>Rlm8g9-+ASeWcLe?t4A0?g(pCwk>peSLH=eKqukNuwLjy_>cy=6;nb#<`wR{CS$
zK$0~Kmp?rM;S>gA%hpCD85DD${RonY)kn+;-$G33?q^>KQnz2|>JMPmQip-yqK5Kv
z7O(?uxw;O(FQq3Z8TRilL2$x)_FS52!uAwyxnyd3R$AHsp%$Vjwn0d$rZ4U6>@2j2
z^@``?D1PzM_h$R+y34SIm7Z8(F9XyPbR60Q6IVk+10gp7SzCOgzRSSJI(PPy>p6M(
zlfY at SLpObCqtp*0EYwPDd!3VWrM)1#@375M2uNtgt)7y`vvDdZrk|g*BkhCv`rf*g
zoR|ptha<xWk$V`>F at o>1A_N#3rg^X@;^uCJn+L7a$-5fop$`oX1b#>^#@NnoGRAwE
zeXinL(R!@@@J_Cvpdh^hhdSQae at G<d0k?Kh(m@{lY}2Mq*Z_Xh53E3og+KLfqM_j%
zkIz19VKE3{&TC;rP~j7^?^Qdy=NONrKQmyUJ9q4Wl80~_Y&=E}S&v;cX?nO>wTS_!
z18L_=NC;i67!dN6FR|Ak!}w9}!rP6Ej0i^k{kxXJ4ee|Tg-1fRmG{ZtzI}5$`2lJA
zz=4>Agv0YDn8)X<QlF`z;r73;UAsat&BbzHm>ae-<sm?C+_;hJa#dv|;x;f)Xy3|9
zK!S<MNjoPegari|nLO{6Wn{mYldjAMzzK&j(@TqsS>DWu9>N~KU(Sx$XTE&tfBW`>
zg at yh!Bz2y4aZ}KKPR;a2_wU;eon1s`1DkHXXYU4m?Ap4G1g7#_aH^F{J`Y6$>dK$_
zc>$~M$~6}tjyd&xjP%&+F;y$bXZo?yb0vgbl}Jb)BA8z7($jg^r=>`b*hGwZZ=njY
zDK-K*K8R_JfBKZ#d=X&ivcVoiT;pl>Wk65pF1=dmlPXwo*if4>A(sju$6z~G+uxaN
z!Xks#fHk`J_dnfTU95_aw0>}(1gJo$+D1hsBP&~P^AzE*iY95&(8NT*^kW1 at U2mfS
zmPk>TyaZ-u6py2!5$2_&(EZMjCci1TF-=DhnDD-#iFohu at M66*80FKaPkXe}_K7<A
z`uRyoOAj5d!B(8y)B<el3?>%t)Rt>wfTcM(*x%EWb*XBH*x>opue^48#ctVN?Q2Mq
zwq>#mq+?O<^x2JhZ{NO+ph+f^0r>CTxpU{<JwZW1X9oudq*_~B^KUPjMaPO763*?k
ze$8l&)B#=QJ>CsL$p0Sk%FW3kDCx*bUSXkSkP>eIBr0ULnTorNKmoZnor?1ES-H8+
zxEz-L<Rs!>Vn&9Ic=#`~F+d=oB3um-3sRORkj0G~H;^K*oJAc68xe7+cX7~*-?={8
zmOu4X(*Rm&AFu(w&l(D4AOm04x#r1<`cPh$HJk|ZY}bI>-k9k}DsNDxjoVCsVwR1`
z5d4YPe_6Bn578Z0SbhDU3L>!y5R<U3zWk8 at EV@I>eB#76k#In&TfV+*dOS#=b*sf8
zmXXfV6>RWxD at vHhA_=kZm4(t3nk`$@bF^{YL$8$y1g88{;mOH-D6rT_7TF>zVW5(u
zUsJ=)p95VVTSHV}Vh at Xo7GlA(>48W1tj+U4fe5evtl;#2d-KEx|D!PUhJwo04|P6>
zHDI_Ldh30R`T*W!QPv>I-z9`0E5xeRf0AP9iLzGw{GXu=fUeN=wNh&G@*g37 at 7uRe
zC)*;?fs3sG`z+~i`AW?qTYF$HiR3af(q5PgvJ3591manJHZC12bMb$lBGrGZQ20MN
zZ~s-z at qgi^R?C;9@#phM3Wu1P?b;X^7}!^c?bxOVrmB~wEuc!bkwA>6Q7#Qlhc2R7
zjQ|Ak3Q~!?`@+U;`yof~)<1_yXS=?-a1Vi8#K<NBLIBpwT*5D84-$(!@CEjOP0_^7
z*^!N#>6Kl|iFHy5K16!+dlf^~0LJE;)jd_dgH0 at 1cLt(@&&147)8}`T)b{C(TbayE
zD^`N=J6Y!CT~zp;u!u;GdBfT0u$GJz{P+zg!F7BnaSAO&g)7TkbtfILyALxVfcjAC
zfEPgWes$h7A<DQc3`EHAd-v^I4i at ix?f~xEJb?J-?Zh`r8diCe0};!Bixf2QPEx>L
z;wh-*ka?hB#x%w277|JP9Z~30)`Id^=r}Z6e+vNN&-8$Cmm5B!oItD%W&cU-tqlOS
zP|qUr=<#zpcA{oU_Y at +6h^XkVk{C;3KN7V`NiwgX;26q)L87QlxlQ-S$%x at sY$8Oc
zV$;pvQ(iRJ;f|aXu=;3EZxE06u6JliC;sf+;km0LJMiv*R-a5EQ3ZpiG-VRWYa-%2
z`r_j1g_u__<j@>m0m(ZJ@;&wL)iJuhI!3>M@<H5f>{qXIn0R3MQ>Mr9eUR+a|7~j%
zQQ{39P{1>l6t}riYZDWM2I3}n5Z6Ao9<;)=Hp+JO68!%bCSqS6K71H5z1jeW&&p*0
zIz$~lzHT07Hjd{SX%;A>I_yF%R~O@=Z?d#72Z7l4*XGiHc>!*qb}qRcRm@%>^S|%h
zExQNPmkzlD at P(-DO34@*F?&a13~h<4cp~}kJ7E>E`pK^T{)qecV^=@vp!;nr?iP#h
z|5MfPi*XKEe2}(L1JW;YA=^lJ{^5t7*P*DSq@<t_nrl$x@*p_)=|I=dpFe@*x<uBH
z*hW_~nCvrv&=2M1o5+n8j&^phJGvvHqdQBzJ6#;tkd#%f&SOzXZpsF5#J&~x`2FSn
znX^=N&(%4P963TrSCUnyu=GgEl;+mfTQ_fd0U~mQR^PWJCig`!?&<vBui>`0pUSuY
zh5X#`>67Bvb}UcBw&(ag`S0%w0Pk0@#Q@*krh8jhNTg{(86=T at 4i36O5<rIQZ+Sqh
z^)HOX5+$Jm*3#kz9DVKDwG$^!XgeLpn)r{;`K)w8uvB^^bUsys%X)9>*Fn^iD$2^}
zoYYCAqTtmp9hV?9UQ}zr)+`!+C&zd_*U23P)WmR||L(VjG#>EkZyL@@NJy~iELj3V
zYaTlaJPP6y%8?>-J0Rc>yaPafnVrqh>rt!XR97*4nVn6jcX%WT+paR~>hK)gov6$B
z59dzLJxolC&6i`WJBsFWJH70kods=Eu%QizZT-XhsMgDi7$o6Q2PY at ikOzNeN8Eu;
znVeA~p4vrY;!BIs?d&XtEdkiaePF#TQm5Mjs0x5S;Nv|8zCPSrM)7P5@$DYJuQq7X
z5J0Y1j<|Z!%r~7?Q^<J-M|=y#k6KpKP=v_7&ZD|heYN%y3Bt}PP)e{)z+V*Q<ff*k
zK;?Dy?^t3TI1%?~a?*VkYKSS=Xi2 at _!DOr-X(=g_#mnIOvYKjHA0v(*VrM@$^+zp3
zUvD6QS`TW;)&t_hV`DK(idY4s?S+;lz>RHy!2!ECAvh7Ge_-RREdGa@)FjE{r!n!$
zXSKAxW6G}IxM4r6cb)m&q=c#Iq9yrAsBEIEry56SeQ(6|#Kc}K8Nn-UTIssNu1YBQ
z=;`X(@iU6KImpQP7Z-b)nVF#iUf<B5pwA9p#io^yYe{U~K!(CsNNin*wGhxF!Q83H
zV4pMfgf=03^@q>n$L)ZW0Bzym{w;g4Srk_nOe_~_wcx<0vmA?Aml at 4({@SKfTt}xB
z82hMpR%J*p_Ds=gPM6#WkpuN^>ru<_*HaS{^Oz!ET6`8;Gb=@Q9Vs>fniew5#7uvk
zF~Bl(=L2GHS=wnD1x!d7f4xL>0aAB%tH02iKn)PGfO^61|M(R(z85;98r5;kU7{uG
zTWqVKQSvPm3C0~e?7(~S^74NFcCoj&$8NoR`7$^f7GM*wbU$BGLITrCmvJy)s1&xg
zwus&c)myi2h24dapD~-q#Wo0Wat?vu1NnnvqB6+N&W?A%I0E|sn8S0u!kpVf=M)sg
zAX1~`|Ky}=J<4<Vo_8*SG)j<VF^)j*dr)xx^=Th&1l|-)%_gjw()qq<LPw3NEVI$Y
zT%$$=6oD6{aa}#)Ra{im;XWotL$f at R5KXA_VE2YlVvZl5w>gbay{Sy%DCyvlY;7^r
z)QJ*qa&l?bHQB_;>1kbPsZeC?B?^$AAt$t#dP`(XjDQ#|E>;BXOI2Wj91$hqy$mWf
zX<=+?`VHHar{wojs7dR$KD%rG>k}cf;jsy0PpSg+n2LJ`B#g at ZfrP2asNmSN<-Ky9
zGM(?0do1DY1%)1~@JrjnurO8|htam?>gwlj-l=h at BeP<4>&KtnvhT at fZ-nRF+`4%d
zU!S9b9)5ye!mFsTZ~^;u<CeXbOp~T$>w$>^_X-Rm2IX%f=@&SdkJ?*6gbwG@*-b|m
z^61fv{Dz7O(|Q#7jwt24dR3QA+Ii>hUC09F7cc&Rv&T+C<nkvbfGdm_Y!N9)(l_PR
zzT4<JL9x*R|DWuwnfi0v-qv=0{Qb72r6o at F=LthUu-!3$o&z;tOlcUe`9FX98axqm
zfXBQSf7=EvKqrN^^BO{;-q7(#Tm@*W3x*u%f{eVE{Ofy>1InJQ`SJB at hJggR3>4FG
z5IHxocI@*3uirlt+W`#KE_T8#L8n!LL;wSiy+c+`&g}H`3#_(LiKbkLkysZZVhv0?
zcJ9P#e{3w0FBuDNkIGKv@%ZB6r7$j?;Nak%BR>fv3E%HkBZ>N|k>taFY9tX>S+{N5
zy_YYK=_O-1pVk-HxPHBfO(e?HNc{w!``YpTeK(Xex0AJ$u3x{7_+E8#`qq|d|4UI?
zT3X at l?%lhQV5YF*r>8%@sz;hMfqBSH$@;pWBH<rGC~e*tBKIEBBI=p1f8E483Bl4K
zgxwJ1J$1kvd(gGGd(}<k at uvjUhHu|a#Efn`Al^7LU+v7n!6Dle<c5%cjn)Wv$QnUI
z^6Bym<t5#J7#*#nto#MlQV at B_pgGnL_lyzs&4#4&@n_d<*bINpdYat?nbxR=lt9?a
zsLo at ZVvMNCaD5?jM0;;Jb?Ve1=^&5U;Yiwd_4RgyVMNr)!Pyz`x<FnMTMhD+Bk&Z#
zE5E-wO=a8vg^b;cZ2-3b<=$liYhnLNpE*NCMltp*Br=#G0MSfJ*RtRxBH{+c8-W+A
zP(faP7zzntWN5h$cJEPffX_5AG0|i;loyKr5yeNeM1_|7!^W{9ev8Iuka$GIGLRkN
z*ja`!Iavb{d-DPDBGlP&ou({^5zvewxH?NpN at 9#r=LhceUYwAAy!^ZqTNl7`6!OR5
ziejYe;_nG$7JL3X0Rco=9*Dg+96luM|CyN?M<*w7WMarVMB()Pdm>wok6*RkO&h7D
zq4AB-$$tObIB$a0Eb*s59_mmSr>0^9D>JhZeuQG at JqT^LZx1wQ{=&2a#XoO2!|L9h
zKwRgclK2A&TMQuda0d)VW=55)f&wDW3d$D{)S at CHz9W}DI3x|hO=Tfl7>1d1a&iz%
zgBSgjp@|`P>xipi;{oIJG&FtuNC<g^<i}|O(-ulJO5`&LW;$8mH&S=nBF!H#8&rj-
z?^sKUO;8o0TkG>Kp;I=J2{Jl|@5|S(3%plK_P4`x#q8Z_VNemwBFA5v2!7!Nz_8eQ
zK-jLVrbaF&_x0<RQt#4qDQH#d%lkSYO#;X$ojX at m>Zz>_vy^1eVX3C33scpP#67i}
zu4jitMmEE&Bzz|`a|$9f{DG6^F~PyS_I>gSTLrwAJx-f89afGC<t6GWrsQ*2IItty
zIUq6IW_?-cG5?yJ$#@=1A;x3!_R$RRx%{Ee++18E(KaP at M+c&iOlJ9_e&1a{jl$#u
z>XlsjMM5Y_$5cRjzEYoX+iC at _q||JE_IRSYOGCD at vNAF@c6_dCjH=~pA85z at g4bKJ
zI8FZgIZ%-|y`B$%sgKlMR2_&?VZNP|*K#C8@%`<+gY>8_0&!Tkpq{I at Jks9MBC@ir
zxEa1NbMByLuyJ0xlrX!C_3+_JrO>djFjPgplyt*slWFi?<)71$h_99Gu-5I}w=c~k
z1FWO9xp@;=jf2>K(@(^t*>=*=C0v+CPzjHUiqiZ5CkXv-1xwv1<vw^2 at 6QnF4_UWm
zddrqATre*U17f>zUFPp)bRKMEk7NQrg-eqX%?*JYez!X>uEOP2aFZ9_u~1KJrDrDL
z!+@<sxu0A%lu?>4?Yu?xCNJ_M#UGMd^hItUg*_l)8NBhnywF=l<A#3xxc_<MKsYQN
zMT*xxm98vv=2j`Er~%(KW-He2V#aov&p2ACxZJK!HPN6XF(6{>;*w`--}!WR^*`&^
zS54rZ*k;C${~$A+6X$^~bgd>wuhh=!e>QCR6mk4?M@~-8*3Fw6Z6p&bmCxEg4uTs>
zQGyCLl_(p!gA&56ryZU5CB&u;bh^i>9X`K0bMt!CLWw+oA^D?2);5#In_OWR^6e5I
z&7p|Um~G>fwAsXIv<*(LUyq&TkAb+A-#K-Q4(b26;k$pxXDF0+K%(iYAMjs&DnoPg
zl>Gif-VI3#?ti9JXpMk!VeqQUR#eD<&C{m6Ks}lp5$fT>6Bl=P#9`eg228Eik7c0%
z88D^op;+DscvHf=2NPl3DS{v#DjOOVC1O%dx9(0PbVa}+KU!c~5l|RVj4e#c+wFcG
zJaQx%k+mmN&h`q5x~Owg{IjyMcuE&}S1MS&x=|3=2YJL7<_!g4f~=TIY&evr?@QZW
zHZ>hoOQ1Ev{8IekUqnz-Ob!C>h>`Fvp?wOZAN5s4suO&C)lsNkK#Q4W!pyR1!5)Z2
zd&F0(z#-*NskJT*-M at QcdaFZeta$!qifPh2&k`!Ti=MuJaFE0I_h4#97P}*$@9S>h
z8Gz~i553 at xnY^iZppm8(iLqC|2BQ_u<DZVC&pefcM|%Wlci#vOLqA#=15vYi0a2HH
znthbmzuoaO(g!>bXLQ54Xgyo|#GbF0G5o=U2~^28kukZ&h%y5r=TS)5&83|n?MLy4
zB~Oo=m}nDyY0pwMcxx7&f+h0H%b^+i(ay)rZvnL=#FX`_DQc+7?xE-wI&mF7e5OWU
zV)?hRn_B_xJCwnrXYKZECi}K&Ye|60Lu{v`pyFas>?W{MfdVibJrT4<Z+zCcdFxxi
zBaGq%!Un1riJeq_h6t(@s%_i0oem at 1hSK_xJLu`nE{Y*?5ua<LPWTPsC9I?K5m>@@
z3LGQm+&b>44A>$Y%gM;lQYszg-TJXPb8~aOJbR5I5veRnwOIN1><My(OW#9E8WPMH
zfa_)qb`PpJVQXp>)xZ#ZG&XG8ulveKihO1^{=p<9a57J`3knd~i{Dw5a!>^k7=P{y
zBbsD~kjwbRWv;oA)+07%8ioD80KV{OoFcd1V@=p}6tVl#^PAnDJ+k{3>u1K at 6x11Y
z7IvxR&y2JR3JD1<#MPCnp at b}u%s%iOoCJVoCuO+3P%z^J*5xIV8fL8ar-|ErM$Lhr
zuosRsraYwWLiO-|v+}iX>3Z%9v)1G?Na)i#O-cT-v9XPfYLOirdMFM`Z3PoID+eG&
znV91L<;xeul)^W&z}5k`Z^Pcia$>zo>Q{hEia%o2UYC8!sCnzVj|h;<kPatpTv60^
zCGzoo2084gILi9dXOE==iB>U2i3QHEO6NI`J=sh%-2neiab_U1l)Zem7YbAdeT5tc
zL)xCO3hpemwPTNbA!`#g;x!Z7U=#^oMWqQZ*a=eZH+Pkt?u)-)wf%D$r6Jj-wIs>&
z(;SP8+ez}qV5yy+bM3?`KYHOc*xw>!4VM>KM|M&5L9m=vn=k4``Hh{l2orRawnAr~
z71M3|PtsDpx3<D&&M0L3fH@`)&S1EHubn1pNqnY2Q(MwrM5G#&mXO<fTVZC2g!B2{
za at AWzJyh#^=1Q;C2*M7Os**CTBhx!F(hlYePclHVVOQC09!~}S6IS03u1kVvlm2yJ
zWm(Ce!BnsUBr3Hr7Aa^KEy!n*Ixw`1HY9&WCPpO)p74_>-WF+te@!AjQTzdaEc4GW
zA3uJ+Lq?H!osfMSb$p8O%x%_ZRs9E(Mom~0wyX?4zn$7skR1FG<^=t>$%3_a7#JBB
z>Phc#!|?Q73O2gPY;I_H{*_VrTJLX at yeM_!c2PA2;WfjSautAGH8^?_EGC&gkrCWd
zF6=1O4jsfKjLj-Bpo7lovz1jo;w9iFGT8cm{_&V7-{UF(_jM%gQ;-xdFE8z&7xQ^T
z|4q9QihswBak7u^JKoE9MDXWs3cZ&}BzZk#W#{4Vw!q$Sj7A9A8tF>};ydzT9;P*d
z=cAmZ{Wshh7|%zcp#n$@@FmF&*a0OxB}R24GN4WI%r^kiwQJWV$w#U at S4(NL2A>9g
z(jb>1+=D}AF*QS_diRc*kFVkV`_rQm7HdJ9QK4zEdZ1cVnZ3<!-~DSnEnCRGD3kq+
z-(?AE4Hbd|S-#_tS;vE--N_M?cT*7(gPu>vYot1gG>GIPQ`q6Q?Op}839!!5O?o^-
zxx^x8g1hTVTV5T+UMNto#(U0u)szhf`K?p8N<X*3huH|eREmE at L<FK at cj6X}bX_dD
z6qOWUfaIl at 9HFvavYWSV^_uANgFPprXf3f^(7})tS;yb=YaHI-Lg%r)LTczTnmsO;
zhaQ0Ug*8K-`YmrlY#zZ6s~cwY<6(jOT>3SMm$)}tRP=YDSt*|plHBRhbBoaa_uSbR
z53 at u&Vr4`Gy at 5d|)PvpOiBOE$2w~Wv0YDwkLQM|i){9!GLspFO`g4w|uEf(_PmnV-
z`3=-v6et<u>#tXN>Ogv%2;d5vn3)L`1phStp={@ifXA5kVI-Bz&);}|6lFk)KNv`_
zBSXmTPNDoYFRv|FF#e8`nWRsG?VLwDi)}8x(_;!wv9Die-fxrO_eg)20|66H{-LZ4
zDB1`bG9saR0sMaf{K%wV?qbkNOG|0H at KsSeJp}O9Be{!>lZS_gp^P21A)a$Xc*?F?
z^Agm01#1J7enRu>={fBCJ<m3t+<o}Sks768m}dm5&mJjn$8=4Px?`x<-itjk!Fa^^
zqZk0PgF{w_y*1G0Sjk>-adEp>AMtJWN5h&Cs><)|@uLOr;p*!2h0uVuj-EHy)-}}E
zgT|o=$HLMw)!{r;LPscYv6+M;YxKpd|ICq<ee&^KxPjMgfB$1=6W4<=_$@Z_yUz~8
zDj9k4Y{M}=zM+QXd$a^~&%ePpQu|m`bJR~a at KfOf=)adP^?;fOx|<Q3xyNFUSmj+Q
zh!|MB5J|cOVFx&cEDJEnEmij(R&o?!XNID0n7)z^>g0HxgBr!=eIku)J9h=63IRcc
zkW}%*M$i_5-~m{0>d^tf5ml)E7yp@?t5=)k?d=VXZ|Eh+H_h&&v=odj1W7Rgfv+ws
zrP#Kix^?!*e~`W!@5jNH09|?(Xu`Y`G3{)}{g{}$mJs$P$5VhLhUR2%-nzwOP at +rq
z6QLH7@=%jz1dtZy4vdQn-UnG&mCe5VfDTr%*8{=|Heo|{6TAngbMyG38N^_D&-KX3
zyP27pLnv0#8UZ!f2?QuYXE*$zq~Ju%<d!- at y&nI0+V!%GOeIuHUs_jdPJOyI_!}W^
zAdEr=Bls7<{QN+2%-{qKEzI?@TSyt)^Ujlmt-!MfdoSO;_ehM#)BH?$St$MxM`6!V
z8+(96r8mEj5BtVVHJ87t-r8um!e#8K$B<X2qle&~oqYZf@}*g)T&BPA+w1H9)JB&g
zrl<sU0&Bl`arE(@it_R*&v12)uSmVqoRT}gqoHL$@cMo)$ZBmX86boOAZZ=OeL~Hi
zKujWzrS5ZAfZH!IU?$mK7PEKe!RC>#^|7{AAvz{}*zPbdI9Fqe`xU^Ru+z2hAazW^
zK1 at x99Syw|o0(1u!skIgqox+pacB`?7qs at F`FXIJ%e7JJ^p0yu;}-Dck8^MqDW8Qe
zuJlznyDBTB<1`KE4V5Eu$?}m#l`j!)>{iZ`%X+FF#)!Em4N*afgy6NE0^^cW^en>r
z1MhE6wzk49<FV-tTo+!Sv1k4W?bdNn2PH^y8KX at R(r}9E2XyC^F8|?NIRR|lbXb?L
z-z|q0LF)k^zw{xabXhz3-D^HiwkfD at uoDzb+Z;o`$QO4lhHBub%J1i?j+=g@=jwb7
z&(3Pg0VsQY(w*C#c_9DQ+{hh32VY)?_XQ*a_7xTs>}3gogn_V`mS(M at QV%VsmktI=
zUXPx(&6`Z%h3otE>$0^qmoKp^TXV+{Kkn)sM0s&-+-4um3voAjqxgc+!Iq(s+Izkk
z`vEG-h9IH~%~dO#_9 at Z<?xgW`H&E9C{JUn{G-wQY9Ja65>p(r+7Y`pk%pSn4r6X8Y
z=|gLEJL*z*^eqf%*TeJ_9|_fAJ47-+KIsaILMT#?uAvr~TFZME(^{!6L78JA3rC2D
zRCyiOLw?)pwvDrs6-IvqaFju6)&L`;+2o=32jDex#ROu5XUEi)*|fodcu5)}FIxK+
z86iAdwh;J)iz^MBzk=EXU1coN%UySP0K-`bUlQ-7UOn+?DidBlJ_HnOB+uIU3t)4E
zI7=OW5;a?@Q0=r&LkF&sl-p*;I=$cD+(LN5K-&xhS1K57pimS*Fn~1_12F~_y%Ba2
zIBe*}C$aSakqA%aUvXz;(H<^J?5w^k9;kPKSlGa7&d<+}c8?C>i*L}}MB-ACz_g*Y
zFiOllXEBBXDn-apP>7Mn`h<$L(lkIYW)PnVxSMox&z|tu*n_o$8%Cglmo+sBo;;~b
zH38Q1e`!Yx3<wCGYi(^c0MA9o(Y(_3J$stsrMKm$1o-)t{|{EQT9hvSWks6}-^XVv
zKPx3UFZb7qhMt0;6s%}V@)^iZ0-Qqn)h#UqAdFfUH?w=^&O<zO)oC!SLW8QedxQiq
zf}EY%nst&?+1xA)Yc%R05c-O*{=800^gKdR-VZ5PcOoH9BNcu`!Zli3b!K^a84Uf?
z(Ba{5-de_FhD%8O5-W?Di>Q5+AeE<}&>eL5JhT|ZN(rdXuJ2kPzT|kXEMuGzYgMl#
z*QaXoG!rNr!tGaG`ezTJuwjqn!nO}^MDd4`DgWf;g?qNtJ*(AL+SO{U#>H+#Pr!*$
z#P`r6>hSS`@r*&4ux`t<HEi7QxBB=)UE_P)M*tpsrm-C`S^t){WJmW2-cq_W8_jxo
zJ4HxX7_v0seuI(&zZ`@Y&2-({_wIe}sB3L?heMT!WR4a1D!7#SSy-g(l at O*F`OTn=
z6Lvw=Q2?=Eu0C?&ghoRw1{M8lOc<=9`=_=6`5_5J8T$+&kfY-cz9<@+JN~OLw7(Iq
zKRqJLT>bF|&sixkvxn`_q4yxK`l5%%p#KFxB|&yUkbsr}C5cE9JykpB&7f<6&O9<c
z6uL+_b+Im5azEDsc%n6;^xi}>nr(i=_mDq!0L`cPOE%LbqNMffQ>|_CW|RtH$bb%_
zgJ!6{87rV)ELwzSWQ<t=S(KtIPi%&PaT(3QL}$SV`{QpJ!`lhT0$x`JKPobZX8KWQ
zS#<U}SXm8YY at mxA@uo)xL0TsYhMb(7WZ%suc7d}{<~IKGPyhJ}wBvNTbZ>EO?dTBa
z;CPNz^+zmz(R^n$?06EGOz@*2h-kfHC^Qfi_Lvw05I^d84(xKK@^Ael$)B8!HQ{Io
z0yE3Z*gifnar_UR_sSBXSZ7@@x at cn~fpJ{RQ&MSQWYh(m(mNqIZ`qPHaB~ZzLpx1h
zA`k%#b<gq#Ie7j$>Z0~%`2Wib0C(N}=->T=Kq6zsbNb7wS{E)522adt(_2{8p5=GR
zZ$sFDy)HUEx}~HM?O_<$aN|YXw}tDuD7w9SwITm9-4GHLy=-Iu<IOebeSK325dM7D
ztOM&e{=vu5D9C*aVfQZmapo8ssZd!^?o>z<m&RCl464%+1)(1_6mG7a3cb at reNH?a
z4UZ1yP-D>A^5x_qsA^D>;U#WhlbA%&^#;lT`X+wGDixPd7ded=g_3Siy8qw1y!-oM
z-|Ok>sz+7Uxx+OXijj!k{@{B6!?0!x9X{LxjeKJD1 at wjz!Skg9sAD$iyVtVWo0nBo
zKrqcfj)#T22r$LS=qZfFNFI2FhigLH_w at 9%|FET?0I3q)JU}>zs at U!bv^}7L!^67R
zS%~WBDiF`OYj@`XvXTdQ3f#S}zsC*n^sQOuaFK1czJ5Zit;m({*s*a;0FoJAm?JCz
z^n1HOl|u`YMOisrl1F#&!-r^w0~TY%?t*ZZsfmOFqz9S)7M_6j+Zoq^#*_xEWt2ML
zbIdAQdw!d+M)jGqXVDh82s8)X{$Uf_CbDce_tGcPv1x=G)Rb<nOv8uNwkin|_CLu@
zw#$q2gcwCN(Hm~?DM}!9oHaP^BStI(_!PPZ)}H3n{l|~>kOP3Do6-7EoFNbQPRkcV
zMkFT^9f#}p98e|jhfPT+2?rOQPm*T<4+0A~0eJ?cazq{0h<zl|YGs&i6FS#BP(`3M
zLL^Pf4<1d+?HB|e2VX$R(?R4lBqI9tD|73?pmy|pDgjk_jGS$5x|y1~z7H*oBxRYv
zOqRp=?#&Ybo`k4LMflU-Z<B`KsvPJ6b>&GcD3D9k?Zg*``H1>3iIqY)Dq>$k#<gn8
zL+>EAt*D3yhaNmF$F>uO9g<&dB;OHE&YG4MZF{C2xPeXI`ysi;egUA*0Lw!>LKAlN
zk{JZJMH}>(_KKme2G9pf+W05FH{%#_9UqD_a4G=+TAzKji2NjjwOEQw2aBj`Wg>2+
z{O?c{Al%|s at ZLK-`bA%oilG=Foe*B}!ejW_Rr8k*<?@v)9RQg?!)$s~xGBo&P2qO`
zSGgQxzbN24u at Y9zK$Soeq1?Dj+$7r?1QfhhkK`bcmT$?XX>jVTBhiKR_nR&64P@>@
zX&zW%a(w(^`|f}sm<eENgIN+VZV$YsMb&?c*|0>?QvA{BO7zAdf1p^dK~(cebepWE
zp{3#V|E{NKSz>mSKlXO&*uw8k(NtIbuZwcraeQl(rd1xGel<<oMsi47XGkNrK>Z&&
z<+q6zUp2C_)rU<qbMZH+p^|H&7Uz}EoTsDPwTCL=Bu`(7-4w})ioEm3g6pn#k-{s7
zA6E5*^IcwjPM^)#eygub|2j<M;JVe-haWPmE)4vo^51QY8wl44@#6j0(JA-W5KA1d
z|G!;I8M`GPPMcUrVkXt7v`)6oqjv&s0c4 at Vyu2QR9%948dvNMGVZD1rjELlC$h4wH
zWmM=U5ETV9&F&c_oF%qh(=4!24SO&D@<yj#wvB|@m)KxV;y{|SL=z853<O3S<UY$r
z0?7A&{LK=h(A8LEHY98m*>`XepQ#|4T1iVF!OjTj+2$#p9>gv162?i=Qf5}xFer>=
zbYw)t)loza$$Tk98_C;WOsV7%+JTKO`xxOe7k!D at XWNdLfoi#5?$0*dq|am^uHv(U
zXyoheR+U)?pU^u-ygSxvwR1axPMkIgcZ2%UhSdkCShZ^g!_QU++m+^0xILU<q-tSe
z8Oa7v;#|I#hoTLLa8v#u+>{s9R=@RB#@?+BAP0bB46ANR`dzD^_<|w^df=xP=j at 4l
zC#}Bu0-?!1aYw-b$)8p3IDUR?Kd}}=UYxqIft at a(Z4P~s7qql0)wkhyfveU at mQ)xP
zAV24itv(ouin#vfgU-|tcZjZoYAs^r{@Z)6fM+KqCDo6hKOrh&e4dB{tM{W%Sh5 at k
z54ZObqeGG*?&sJ)?00OPoQQstHo_<UhK<-N7pWkfBENvm1{b0-M53oz{l+*vB4!Fz
zhtf7b;@w(oXbWq at Ss#{YsUZlf-g;%-s;VmRh0sFk*gVjLk-k1wXTnOk9#1KIZFty<
zhK43T6~jR;L$@;s5zF6So7y2KNFBTQhU7;f<44MhkHy?iaC0k;0>`n5;%-A&SLQ!^
zLn`RSQAX7%kdt=cW at Dx0|1H-2Z?NI{@?qwf><7sroN^9@$X}pRli$`!8n`%P=Zp}d
z_~sDVUg%Vbtx%O7Cf-Do2pCynQc_<@CTutWjr^ZR;Tj^yH5>t@&#y&CN24p^)$=n0
zM*!6}k6i&8(8fZL6c)f9#v<#@Z}{*b*_RU8MJRB2Xr7^~zlauFU*3zNhzf~R_QadN
zVrc*fhCUr7+Ny1AGBVthHC{c&PE;YzKdMeap$9$M94o14dpX<D?!WyIZX;wp`#{(E
zfROo-!|3Y7okp1>SV^W-49Jm`z1ZofVeqOQQK@@uy2bU|3-=3bcdEyoh=T(L<lg`g
z3yX@@5Lkn4H<sxAQ>X at _gi3CAa&!#Mr6;+m)sKxrkUlAhOAZjhgZJgDSIuZDY*QzF
zk?3g0kKI4AW90Dquh$P&S?r?%sD_Y%;^X5XqwYOn^&5;F2)pv*(J}oAs0?=jcj3X%
zPQ&+u8OQe(a8!(;M;V|L6cI1k#Mjv8_=p);3lzsGiF%c$$JbyD1dwb;8KW3|;1(9o
zQ&LhMKYk3%j5-j&%iX;KJ>1I9_$l6|AWOUmQVu at D2%45>YYb}<iZuwmkx@}$XObac
zfr%<9Dwh1!+i<J>fYpP8gQ$h<5JRH}eVmGS$YxST at Ph}(VL`(r7kkXB6eME;VaY?!
zIVx;;;VhyCAzofPun^*07dV-YiaQN|N0Z5gG!3~qFbaDJgM=Fkd<6ebGGQRj8-pMY
zJg@)tO-+p at 9<<=(J53a)3B?=Q!VuWxuI~ilMc-&0Y-doI^acy~j%8~vLDA#Udig{B
zo+6bYxY*C1$I-~g!^3m>n}!G04j}yu5W8LJo=G$4sxmS%IAX@$&JISN;gJzSv(gk0
zM;WiQbOqtat`j)97AIwyEu+ou4fw$dSP3jgYc*9sFK{l`C772$|9Sox^RlfgBDT{K
zL@!;~SL{DSph#eZjGpuIrOU`(I%+Af7UJ%~wRR;Vper*sk}gj3chW;yo|S{n#`Af9
z2J|P04`>68a>qy#?(lgdRis4p*Jo?P_#~hpa>y5ihd8(3cGb$0$!3%xaRCzss2E%x
z5{nR<h9(n=DDv`wH*TCBox$lJ at 4tTiipGC5E6r&N!JrA&Y_U6}<mLSD-}Ls*8O&+c
z*otl!qR-+psi~Gvnrfhw;xp)JTp5o6!6y2eO9evi1MWIO^;TMfal`?71uR>d8TwCN
zalqs|H#Zl41?LeITV#X9e=hZdlq9#}3Ha)}X(t|jbVXZBE3cs7gxQyaD^o=lUpbb<
zEsAZ9Y;bV~OQ-Ab3!9#~q!`I7MRgo<P4SB at NG>WHBqMQPQod0+wRwU(dUr4<A+jb&
zTIeF@@r4%At7+i*HQ)X+*>_sc7BzAdNq4f!YXNRx(StP7zWeau2-;UcKPmnQFIyRS
zFJZ>fd!dB`Ab?`B*^O~v4l3R2m&2Apxd;XO-ZodPxfsvc3#O(?t7jTPwm~;)?b6h5
z>=^8`LIfZ at vjo&#C^!(agZ%x!^e9xcJ-$YCv*HI~`yZp57ALPDl+8m9<VPj;xj~9r
z#fJ|N*i4`n!ZLP?)(AI)#Ek7W at FniX$FF+^Q6$A06(KwV at 5;&&aCtlsQ8EFWOHxo&
z#B?}AWF^dk5P;AV0G at vCk0uW0Nv(KExGPZ&i+aF|F_M*$xqqcI-~K~Q4RIP=eGD|w
znb}z{)bqhB(4xTYE2E at TdiCc!R85Gbj|B_f1UxWHY)_a%K!RoaBH6gHvcZ*bc-s^A
z1bK+YxJN%)thd^w;9XC_1d$SsdI5?^uJkDSk$%iLFtR_?c|t00ZCyak!nFm6<lIV{
zYI2anA=K5pSuk{aC|Wu?67I9|xkmi3Df%v-tw!xuhNBSnZ#)#&V!jAYJ!veYH9}E*
z at aZ<a<5!*i8WyOCmTK9|Y>)A`8?gZWav{7(f}<wRLWxFb`>M&p^0u{AXX<R8(}?!Z
zyU>MT--Ixm?n;3gkZ2+e=OG<YEXT=5GF3^mPcf53r|MDEaCX5R#o*rvgbS2meLyEp
z*6fV>wdsY?PiWXvsOPhv>^WDQv6xMdc<<vCdcBiljbv$o(+D((PZ;1|`QBJc^;-s<
z$1r&7H*Wl8ZhYkmwlcS`3(jmIKMbVrz;GlsFyTOwd?=Clhg|$N{qpwqCDck#_}xx<
zp<gU=_;6W7A>T{FQG%n at C{*YM2WSGJ#)eEBmx4(Z=>zl5;j7FM3ezQwf;Y()Tm^)f
zO87Yll@}GgcAN|_K1=QQ6e$N9!K<8{Z)qQ(`(eS95v>)l9J_<#;-7T&C>#@}BrF;W
ztTfs#+zw2dunhpq^$^I32SIKHMIvf>+CeC)ILv7vCpr07>h&9_ at 5l(kfg_hx!R!vp
zF@$#XN}_uRU8pU&HW{@l(0726Ls at rk+OnnCaVX5z>GDOuT|(AHc3`6;?7Slh<h|5>
zM)-Vv87FlA>8UBz73To6_}55h=7U2R&<ony7WrzJ>y=;L%hI{~4 at h{SfW(i^V2GLk
zmgbp+T at mq#>+Y8e$REh2X*y#_%N2m}lEOw776m}Tlyv>0kK2_2Wue6vS#&&vA5zXf
zwgXCn at 8Hqrz&CoOUV2oJcOZ1ijqKrvu^Spp!mAw_1$05f?F?Fyl5gOd at TEm^gD%Q5
z*cFwi7$c5zMogEQG_9hV&+-4-X+D4wZ^#w&ziQs{+Q-CH0%ILBmkP!gYAg-W)v{~|
zkU}y+(b2~)0U`u&3s=H5x-v+3mN!4rOC+kW>)8`0o58pxrB{Ts5H*z(_)>J;LsOh7
z<S^2rZvQHd`9VdKOw$guunW9<%NupH5A`CB`s)Z at j5s3=_9fGLmJx8D7Y3#Jx8~i@
ztbB7b12f at MX@s-=PJs}h)dO%DpL%QLCRE at l{uqFPoSP6e%sy4|=8SH(!pc_(oUA$$
z(_gd$D-rb~8ZvY?C?n5uyQa%pTMGff2`{nt0JFF at uYiCaYKvDg+>sx#QXRFFd!mNV
z?G*q*QVt^^;lOUfa)t^^z3!6q#wb43z%)Emx|JSGgXW4xkI&t}5p&SV8cttuQ-=@@
zPX+l5%%52BNlG!?dWTES>=LJ>!4vI-8Kk2S8m=2B1eiBMtCwfJTaIHxq-`~rYfCMC
z+ZlkRg6`hkMFCyK*;KEDQnC4(b!>`Re9^w|qi at lWfzqRFzC0Ya5PaI(+F)L5LY{%q
z&jV5tVgnHCeb#l~!n at A6P^bo~z{rx&4X7%G`8)eoeiT@!pyuPpBKQ&5{v at QiA}X`d
z1vDx882uRCJPf3bMNah!U<*)Sx4rdhX#wZLh^cA7&aoC_1j9SZDa^iqJu#n_p5dGx
ztQk!CS9m at Uj(3}%{k52&mMC<`runs0iW;HQ(bdjD?i<$zDN+tVUyo|Q2>_Tonfrl(
z at dU_BZ=L}WDTske1JFM3YBKl5sdngj0emS!kp#&AXV$PBJ}eU#P0I|9j&gyxxEIQy
z6n}(FsGP(pBO(rPn5pAVx<a(!$r`AD3bhHmPx1mG+a<!M9Om%;<BPlnfNXo?p-*qn
zX3yOYY>GoEGWEZiTU)1v&xAYz*4zq5Bi!WmF(`Dxq=!=zR6t^(;iI?@|GY0P!N=ix
zhYi9TJMQU|))|Oc0O&Y6tzS36^c$mj0I0eTFVP_=d)$024hF&g!xLv~<Je9Mt9FJ6
zq(~fz1!EBknhEoPHDpfCR6+_Dzc7F`fq<}tf(+`l5J8C}5|BkxQKFO59zk_HU}rVx
z<XHkW8eP7eJSB_i4W!+<v{sUx at U!aZ=#bCgSGM2m;XSivbrQJhydg=MEuqmI8thrE
zC%PD2I5fiV-#=JOV~^e$97gyw{fw--L%d1~QKay7K}VE=f`X$yh`G;p;@q5ig}pw?
zA8(t_!Bg at G_wS&df<h+dyh`tm?W^2e0$<>mDOw}MqNtS1Sy>Rf&3BmW8%CQpiW(Gu
zjMq>Op at YN|)FiPL4mmboAvE*w&)vF$N3<ZW+Gn|f2kuEr at NL7n6U@w%T>B4DxA}3}
z-s+h at LHotD6HMSoU}9o=aXOiBdK@=GC)>x5 at -4HtcJ&T0Ber%}xh-I1)kwwjrnc at S
zVjga%d-&5E<QuU8i%#OaIUM5B)=LGX3SR+=Q#iAs_{CL-zF1b#0+wM{?%*g$^*CiJ
zG7e<YZ8RZ{0 at L#<lz|KDV7WI^GaC0f2D^xz6+}$4AR{BAgoFh73``)a5$iW>??eSY
z3(p1bHxzL{TC8y7q)s3+lcTJ>y!AL?0SEd)JH;-(f>Pi456L~wD7KQzFhA-Xp<C}@
zjp-Dy7ND>@D|b#fNH!7lM(e?b0W8p;5-aofXrCgc6>Q03e+aoIff0M*VJ-pKJ&4^l
z=!aA8aKtgpwE$;QVtl>uP7C3Huj9^_F9Ib3V(q5ju)p&nwr4M6tQzK-Rgtw8fD6I-
z_~)SDCju~_u*0T!P9?z(2oU6H;N@?u)C5LUfS%0Cfj-SIEYOe%n-$^>blDQ82Z4cs
z2yEN-iKr3gWkeJWILr1?b3aUA2=}7}L!8t=EDE?s3|ui5`f7g!S}>aNp%Ep=NEE!m
zVEkw?HI_I-18LZWs73O}OdxHDprIZQ`!t<6n+8u|{q_0R!m*On(`z_FpTC(ngCHg=
z7{GJv*vn_#KBzeC+`XHXXiVWAtP%8HUPPdxCZjO`TJjircPrJuVof)|VnY~*sSE*w
z5cL&~ZN82EH+;VzEn*ATpvgNtVBGt2m!QJ*5YhX>G1yAYwccWJL%WAfa^hVpDkm;P
z;Amq8ltPWy{sH$1D}>gMuy`V7;7}Gi3ZUaNG^G&-O at -BTV3i9A<pDB4o!BFFvR3*K
z&KAVbtzVWixN&H9tg{m<BQH;gs}-PX28W+iR#(5y%0k7cc&ixtA$X4+`+~(!g<h&Y
zRPb`Ji~vFbE^r(`CAKoWp at e1*;)x(~ZmP2J#RWbN4hz)XL>x48a5R!075X}E;~^~b
zD={)4{J;A9f1{)c_x#htsmO&=7g?RrmUkT{a)zBdr{K9lp_`fvw*e?TmoGHYw;K<5
zD8mG at HXJAKhM~y+?FFJXh}Y4V%|y4$=O@<a5W~jCJ at neVM4&{;jp9`umd?opL#3nU
zLFi=g5nF%Sjgh#Eu0&h|ffksI5LR)z3PjYiQFW(@RwH6q(e8#`Enix~YlsAZ6Il{h
za5&}#Re6vVBxFlVOHLbS96E_XM-`3z(%z8iX$Nu{$ODZlE8dPHc(a-8e-01B!nuUo
ze<bS6EiPUHP7FX2Eo`3zZi$RKm0Jq_f}~5FMTxSn*&q|Y*%wg%tO4$OfYGIc2B^b+
zHS}8#GrJig`Ay(Kuy0glw6wH(Y~s~8hy=kR7e;I{syJmfuf>TExa7c>$CS7ThzEck
z_{@GdMv>7`6EEV}ckK9aFh3bw0OSfYeJywAy3)cac+>}=bQv2Pm%`DCb6Q}z#^IbN
zTw74Q#G#tVkV{K*omfXo^70|0xiCQY*;+u16ty57bHko!F<}pt9SP^~7!5`TRIfo<
zLj#{uCb6HqGZ*7e;<W1M<hx$pcY^NSYnnWd1T=@fu`frpfCS;b3WA>&kQaK69Xf80
z&vzaV1_%b|hpC|cIy9T=&asH&#+SyffOGzF+l%a>s-lwR!TQx=1{f5LPjRkPJCM6!
zA0c|{;G)4I1R;D-(b)41ItL!byz{&l^tPkpWE}RDBa}KqSgCO!));a{<x*{1OG^um
z7W(|z21^{r;4#3pot&JEGApb2PRjR|mh=mmNiywsnS at oS3~g*;7Cr$#fGoQAe~AM<
ztX?5OW;&t}g at gWd8gH3aj+{w%cD{nTZvNCMbKg1;U{v}tu||c3h0omxwo6rxdj~sN
za8%Uu)6RSAZ#%-q&i)C>)@K8tu!>}^GOK_<Hn`>bC#>B+eklKN?mHPLk5z!&J1JOG
ztO$GqNF?q$c~~hL>koGJu9yU4LqnVihy#66mevs^J$x;HxLK7_oU)6X+gT~8UVRR4
z*?RmGBT?C*2ZAzsRr)d%YG5+2`N_oD&j~$<jlkM1bQdixiKb{|;a%Bx7I9SPL+_%%
zJ9lb8>H{*h2Lco&mZtv??%q7C$F+_7{TWvhlB5taq^J}j3Q1@%Btt1=s1%tJDn+PR
z#wMvup)5s35+x#2gP}4PkwQgDGDPbATxC7`+3&IUKHg&=@BU~1j^lZbwJg8iec#u8
zUFYyUzvuT1hWdl-GjePrx|HE!))r^@L2Q^<8Gp at U(u9~<s;a7H{dNn0l%Js^t-L;0
zCgpJEkE;8XbYl}z4=#-xs55*xYF*YBE=^fs`!5$@*<%8%bsyA53cS459L~!w50e&>
z0h;>ywxcf^#mtI0cra)FwDM}=8B#JZyMg`tW4Okkw*r$y;DQ)#+8&^+SjS!-mIkXB
z?)6gk59u;Si_Uw*YvXvSRFBDm3a}vPX(Dm(W_!!-xCogJ9mdcV>FMbyV2BM>J>})?
ziQ*Eznp4+a&-Nma=Hu(@%l`|iSM2PZ>(`F~N<zn?A&nq1;rBbcNR9(nxm{GW;MeoW
z8MC+nAs|iqBRDUF1Kb$9s{l{;{P~5IFMqz=@M;Axp31<RT_3}sAlw&Cqs}`K8MK%p
zpnrsAB6a(QsBaW?huk6YSBZc5{6B-Pe6i{Ce^;gR*+eXrj-3x}6s%k+6|kM9;nR6T
zWX+lzuJGldqSzz(d5%9I_*nY;06L9T53=7APQE<9bYI$IoNng*raZt<2?DttZG>uQ
z49CssR+LXI<LT3<+OzouMNRQeBYUF at fLRZ^EX|&`-1bnEi1_@!t~zcBe}UjZXN*;N
z__>mn5)W9 at ne(|P2kBQUD0vVKyEb3rC!z?E@)m0HAie>YrOQZ6JR9m$jE<d6P7b}S
zpqPnCq3wnbF!75EhMnBM(9JhQ`htz-h7J-RR~1c7QH_TC05N&aoH^w1bo&NgRtvdA
zXhMkZXm5{!-Q9B(4)iPr*|l36 at B{fUiuD$6j=+b5yG7Ill?9l|)5Ak~tXG)v$wQ~+
zrPKh0kew!;KMw_}9Nj-8;c>A!^C{{0)C;^tZM<1DouP=|K4&X+F-n5hVPJrs+svxe
zKHCHr3|y=!c>xL_URp`ei5uB}nU*ujb7BjLneqDd-yjmn_3U{lEKJRJ^}2P32}#kx
zd$Df3h$Py}$bj<t$kGnGo*EsFgM9J$3nV9+>%Ngo5lLoepzXj$?P8Sn`F0Pi7p(Bv
zYVxiJ+AcxQ<L#$Un~~2}F~;QyasVn>ur at QBo?|?<6-li+k;3iWLS+uJDBLtPwKAGD
zb%vEJ-kfP3HwUo4AAdw(Ya~T8Ak;q^FjxDjatbzyr>HGyRxIWC$Q#i>vIGiMu<BI8
zmypX^io=mrWHXb_&?6|NB3c2vch9~wh;L65-`+X6v2{FsU<jK9Ue*ff&e<b0Mc|20
zey^;6 at _>Er8gjC-4cM(dRSkGQ%m;i#2(Y$u=X#?A&GVCdyFT@^EXVf~m$d8D>3~+4
zP$z&~0m_yo9 at o%RNC}j^A?AkDC|a<lP1_43dZ+hh@{D=Nx2AkBiusOsB3&cExsCW?
zBPmo_p`#@sa8 at OxrfNknYoQA=!5bzR at c@uT^NY#^J%ISA7we8q at c_JrTn<RQlfOgi
z4aSeaAONXl^KXa}aipfR)C9zgiL!iUsq!*pA)2Zc- at ltmw9EH}7J{RLgK4|hq at 4&v
zy^W{vX*f<8n}h>P6N#ku at wDlvV)Ep!B1#4TBIUV(Q5a=K0V!kv#>OY3G(}_Y<;xqH
z5&(ma-+z(fRp)AAB6S{l1)oGw$Fk6FeoMStbP!aG*;4SQ;4^iV_InY1tezU{Bg!K5
zjHonh{QZ at eNu^_U)3dk<T at y9KS+gFoZb;t`6p`Y1y6h>1O_ at 5Cdxp<}qe6VSmw~&5
z)FONtxFUjrbIw at LX!?nrqDWoc2$$akBnx=LPnOv75Ep%abn^nbol-uutl7D9X9NKS
zm-dw<WCJcPAP#vphq}JHNc?};5x_{x$iNwuGeT0syIF`lZeB_v=OrO(&gqfpsIxVQ
zvQ>PkLl_!LPVhnvoy7yla>(0t>==5|;zDvV%&4^V^vysFrSa`^cj`9g5rd%x=qpS0
zv3<LCiyHc2MCy4Dk at L*W%%t154<`Ocalz|HbwEG>@Eumd!aje02GmoUVvrl&u%VN*
zbOlV#rn8$S^o2uaV$<jWnv3W*m_^ebdVtm?-IN*|<{O?fpcR7a at k;TL-Hc#T)BWM$
z>6zWMm0O6bzkoMZ40%*^j06S}cETL(s-W-$n2;r_Ri!N$p$G;CV9S~|GBmxbNSnAm
z#R^t83b9yMk;Kvka*rzm%k=lHuBj1%4|F7Iau<J_n43e4{LDol@^b|*Zv-k17ouOs
z6(p>>$Un8z_M;+da?h;?GM>{gxcn7fyxJP<aYIec5OO-(`;W*mn&=4GdgU3qlz0Jc
zyBVP<YM`eV*8X8+8p at G}#%&(E)`q`$LcCIkP at A|Sda3E}=f-_y0oTAo-u>BFS{(xJ
zK#?TBk2;->9hgd}i50__H9cOox_}4{!g+JNe~5&ppYJIMvh2}2yOm}(@2OH+h-1Kd
znmYPtP<(kX_LoMVK9QK~=ATd&Kd~GNcxOdLlomIs_{POm@)PtG)A&4*71*6a5(fhh
zM!T9X!Q5>!825iL6RiY>nOH&uhd4%lj1q`5B<iEE10aR4Hrfk- at eoneTl;Re>~ZV^
zN3Mtd`ZJgbu|<4bw{Rx1x7G)T-47pjhmfTzl~6Qpj-X*<jKR~kKF5dpw7`NJmWKkM
zIpy^&cTLBQQTiZaTJh*qAioqn<;aH+PLl at BLm#kyK5|X4%wzJZtMxTGByYT3qhl67
ze*V0FaO8tqw<d}UO^KN`Y0 at OL^Iu%qXeCu#Rn<#g{t<wG(>r$%vt~lZ0zv$ujRD?$
zBfZWlz6TCG#YMdG{GiF-%9bkEOs0$@(lHuMC$oETXH5nyWVqNe5hmkG#4nKP8STI^
z`)%LO+c4$gLt*{?AKP|oEi#fJg6*NEOpLq<-6W0}&QwZ;zB*A!1&k3FyaY@|cMzD7
z!LVV$Ut061n*?*<T+UkOFa#4?w{9(?G!){1aaF!g%^T855D$WS;RF7svqwneCL*j8
z3SGMn2ZU&vO9Y<NTVB2v)ESfqcVf}&ZTdGas<l9N&CfN5=UNygG-G9DNe)}67?UoM
z at r(e~GB+0|GW#-hBtL(DWR->Qvb6=++Vo$0)~q+rsXdxvHBS6F9aFN$0Rssk+Dl2D
zf&k6?{4tJ}LI{qSL(E+Kyt?xb#+G<X<42pOS(!jwCTphYC(1Gg at MJ7f&eyIPl8<qD
zi?hI4w4nDI?Pj8VoI;AcGH+7R58#9H*Yt=<k6yf}M|+>BIiAWGS98AtF&n*?Hw5fk
zQ;uRSXW+Aa?z-Bown~jP|JUQSP}^!?Wx5=wO7sWsR$R1f*`N*1;NR}z4Y-Iniwp?#
zk$aa?NlQy(>zPCU=AI(^HF+M#&6^u3x-d;(<SHb0Khj`fp;oHJJu3ENO#;S)g at akp
z5VNka!TbNbrF?odnV(F^0DyZc#=tZ;GBQL%_J;Y~Lz%ea at eWIuCfHuo($%dcDl^)F
z_qYp(l>nNPZpcR5`0d`vR~qv!X^$B*Kj2DBiO*K?wJj#^hqG~*)5M)MM=l;644;Pv
z1`=`x{?fPw!h at SI6K>3Bh9H?u*nyv-R)JZ;V0G7(l991*YY|zWIp*j^qhr-yzaAdB
z>InUg;*d+i#o^5om;!ze1jYAXzXy&36OC=<bL{Qank&GHbWz}uVMg>94`nz)oFPkU
zT<`COpI>sPqlzz+0buju18u0~vao&rVXqS&G@@U_p-4J=R*?b>LQiB^xV1k4WbG&5
z4SG>=r*t6yF;Y59{F$M^9cn9(^H9ohK=RXY)MQNZPX=SjgR}i^i>6BhyjbKqA2EoB
z1yDReB!ib1Q#PdjFRZDI2sCQ@(QzP3lEz0!NJ-3qND)URP?X%RqQpla2qi+{-!Ss7
z0g1$@MSTIL7P>(Jf*+N%>S$o#Il^|hA$W!6upL^}Hwb?N16xGy0hB=#-icOjp41Fw
zuJ7MBAmannh5bmf%K`(diza!n+|K<pj2pDS;>5nO-L)6`SjKp*D4}g}$h=FrEXk`^
z<7hv~$r+4x3qMAhu4@<r@=QDkj4V<u5K%%&VjE&l(H%fESXbZxnE!;75|`T}a+=_B
z at v5pf!_+5AM)Tt-uLW+&v4Bt_T{_kd6EhNQkleCwX<om`o<!-SaN*;YYD*v(pu|Ky
zG>J?alEwg4RiN>oY*ottONvh{L^Np=H-{gjhVhE;po_C)nv&$lI2<g>{~;@%LdF2{
zA{6x~U~miv{lTG8!$=0D^5DTEx6hm*Kchuut}R05H{~-!Y2u=@LrOH$5<GM9(pBL{
zj#SZba^#5CZ>7$ib(l`H?Flx=?Uo6bvZMVlw?DID1fQKszDI%a#EG1WSnA2pgRmw-
z{)KnNqo7q;c7Wa;T;-dRl5QH-qU_1OA at vfIOd>kzUBrklms3)?Ne!9RUHWV>mVB?s
zw~Ryyv<?GY`g}mavuBj;5zmoQ`7aND_Wb#S at In7XjUL%;ERGl;?M5#yLrxz58)$>v
z2uhc1Us@&e@^tVv8#d0I`H-8u#{_^Qu3Ya4(Ul=|hG-t4&Ha<32pe(Hv}2Q++eys;
zhQKH;22ib=zPzQ69Kt8bG#v645UD`NMt~81e%`DF?bVsDo>9sMtt9^%=5?6EyOAA{
zeHolb3<9GbbgeNWJlxbOnphR+Em)jk$~!j{q$G{+3F-+T1WAzHOR1cFbXw~H6|f6S
zAM_#vXk|s6F^QuYIZuDh8{vdWnWdeVEL%1j3KUWU)a;bbXiL<Ln>_>IvGlkAfa3xH
z){=Mc9M5KOM}ZhSwR9x6ayelyy4WjZzIb7vr4<ii;vXX|NfJC3JlWM{VY~eieIrCi
zKu%^R97r`eP>;w%3~~GPB(89I7bO*P+V!LwEzDX<D(~UpFZ{i`X*g9;Q4uYQZPnW0
zce?hYfIk@|g2q9UDN`OLUWth*=fz`&Y=S1X at JVLsTNy+n%a|k=hUvM|9s!yp7ssA!
z{;odx7e81qkZnhs0Fg?_tno|+!G1LT83%AZ65#}A1FR^M<hBqO93nJg5I)8N>`IL^
zI)*H^$A`F!X2%Cfa*N3Iz*G}%Y(=h(2;PcK^L2svY6tPveiWC>XbA4e!x+WQK_9F9
zN`Hx3EWY)n0x7y7B@@bvUu`L*<)V7(Q$zjoGP{SQ_|b~b!gV<~Aa!n)KD&isApV3p
zn&JCAEzul^Sq_}$O)x!RJJ3r=d+=<E3j)#`v4^=_fSGhl2yQ(s9DLBFr2d&dv87Ka
zn*oE7 at Ya=t2=6&~zu5|f-umlZjE#*=yRps-pf4MyXd^8|8vQo?RYr!0G)XF!BS=s(
zPsUC~BL51Ig36cIm;=Nn%z%8iiV*uQqE9!(&T=IVviL>^EO99i3ouRQ+w`c<L%85f
z5Qc72k^uws^?y;?$+zf!?`#C2M9i#M@@1gg2~{mo1biyp(E){kjI?%=?6%RC;h~{(
za8MxkUAm~|8$H+csIlL$VM8l7!J0U9sAnrTU%6<@7;qIn98>N{b;Br$TOO%|7-j%-
zR^IA*?;F%rmNH0Ui#cvI6})5k6tyqN`@o*{(SeJGE6(=G*wh326T?WL>t_75iGrYn
zKzOSSKhf{_;PtgP8j6%%E2*o8fPMX(VXgLsB0(C=h_-{tkmMh;=Vf|l)2yAut+cI@
zm-I>T_ at a7D#==pX7(smg|HiEUPwPMvh$pc~?1h*q1U~bNziP`%K7AUpYK(R-7bxe3
z3$S8l+ldE+q5|P`!m`&iDSh~`JTu6`hKP)G$NVA{R at GHH+JkPNUBTePl`u+xdcPmW
z3-yLMzh?cNBJ006mCu3dD1bq3q>4G=oln~8TfFb9gsb*+(q0v{YXKVWZyhPa4O)!e
zO#%Qt#7|d|NrRJvC1!`2?f_sg=)qxPiUIQ3^6C2DZjZLUw0aSl#}R#IesxgFuFmNC
zFukz>?Tr16n^1fuu)KBska!B>zk<TT9J*1;=HgCI1JmtHU9#%THgJ6gf at a#b8Zu93
zl%5_x78VhaJzvTv(cj`^NERAojN*9L+C8#fQD?ESnc2?7K4hsOmq&*z{}?`_C(sp@
zBHd>l<9 at t6H}c7N`UL1r8$SIJIjoGG_)#HRN!%l<E5WpaZb}*4(qhu;pO)%tp#wWV
z`pl{vI(+!8)?eDXaQ*8y43d|=Vb#*<?9xd(@QCl-zbDbxz2YX8F=F7oo5smUCwdg`
z%tCvnyT;7d!`ewk_X$yVpgZ=<3-)t7Og5+&0V`>`uJHc-G2A>MsAvScSX#t(Y9(+V
zNW~zpYfox^#s6zGVh69|q8`P<{UT5J527#l7Em5(p<|%Lj1&Gv8 at +IEqQ=Cq&7dGr
zWv1aC at +V@4urRM8y3D>965UOi*{alzVTb_<q!AC{xtW&3G|sQk7HcaW=ioW6eFY$)
z8e0P06FkWoL=Qr#`J2ZY?b;TpegdsRx}OLLSp+`qg(@FKK&EPePR=Cl`@R0VP4sua
z!G$vEr(5faCR;)*>XoFC_(*Xx)WC)g%i*TsrIQT{Ew8vatQ=h78EYT+F98iZ#}_C&
z`1-bvwtNoF3>Gv%Avz#cb-kTq;GSgHHw+p$@IAjkl4%OV8KzE5j59$GWszK1uN)ln
zZcDWG$awXiJEv1-i;$@mTTM3J7IfktudHUo%n}R)H at 7q2rKzoa0;>U1+OkV9 at 1W?-
z&LPr#@c8jMoR!U-8th+cN=nz7YbXpBA=)F at J>@zIeVP8kB5^qV+-xXBQl<ouH`z7i
zkls1&G-BMBT}bw^U{wRJKY238W<O;Zl?St{-ly>`K$@p at YsPG<*HcqF1qH#+AfD-?
z{e}*uK73&GnMSfHQJM$xYj^{|7Lx8wb1sPpM=12Ngy4p(jQVkTy|#IT%Ec_M7e~?!
zKFTrCh|(u7Ci8>I`Qgc~8CO=5Fv}Uq^fI^<_92A{iG%~vUW38BdV!2o-x9zR_)2|F
z>ZMCl4vvTmyRhFks8D0c;>Dzt(q5`i%Zc4BUR&Z-oxsBzCW=L-xC3s#{NY!OxpbqN
z7}Xir%Y4heY2U`IT?vb^o00sFtApF+U;GJM(K$Vn%|@UKAgueqkWKY?*#*lOnRe~Y
zojsd*{xKy(ralb+{s#Qyeq)CU3N%xuPk(w<rj<(%50Dfg2&Go4Ifnp?LMm%I at VjMx
zN8-vmnU at C#T>W;tF3Z))%5~D-p6b45FJ64$y%d{4_^*<FfYMXjzy3n at cGjn_Aurnh
zqgB^0%fRf7PnsbaQRtIoR<UId4N?Kn^fpy1xIwTu8dpz!xp9c1f$U;{gwY8td_Lzc
zRSOOav(BuVzJ!+iHd;jlLr=8|3Avw!cJ9)pgfXs5$FuOXiqeu_pWYdX<2pR}M9(M>
zly0vvOmg~$`~=HYSL+;)tU6{S#SsO?7=x%a=!w*4!t1Nc?ukgtAUc6Kf6&WbVsNgm
z-3Z-VBbPt<cz8q68WggVlkfjdK*lWXo9*&Vf at FR=TO^EYX=a}VK%HQH?#<}})KUA6
z8a4OgWSiqM$x}IEF+?G48h*@d>JPsN|Aa`t^lCagPmGD^=&kg){XYpOvMAVGjWtoZ
zNun%0_ZwT0@`1Yj=f2(>b$#SsYEUqrlQ~m|uF{qVYQBEew2xtg#_WUfl>2Nl&3t7=
zr%C9(H?!?u4ST<+{@7iNQjNhkd_3B?8{OTVs$$r_fbpu4{KFhb+ct4m(MH0coeT#$
zhJhb79kod!b*fXL4vGs4Gc{FJZwos6&uF`H3=wQO*U2;J!y+PjtZ~ZL4C>v2Xy2=a
zJsNW3quzFMU_Rav{bUp^(7 at WnMyLJpi%cVzd%{E4+D^~%8`@Sc=#g4VtD2TqMud1&
zx|gCZS608Uor6!J at zE33TtTo5IDORnRc;EZ&bh5AowhOgcN7qO%WjN8DMr*|4T8eu
z4={g}prlm*4!@JCN()&?1}9p$cM$HI((SNe!~A5i5flO|kniM+bc{`K-hO)4AS8Tf
z@=b)6%-?0IFK!B>PC`t`Hh%kLZ+00l9#vl{A*f24`k0)U?D1VMyPxDUC^C_2tYyF+
zWil}Wkj5Mk7idpSV*wLvMC%>|Lps-EQwFN53u2tn4k7zd7qD?Z&(*P~-q}<8P*PtC
zrq5;$ZE#z=_7^kC#4PfS)qc<^|Na}%%{wqQApAg`c!iW6bzOY#ykC1MoSo-ng5uFN
zSbl`UAPZUQ92yp;2Vl=ZHros@&6D3I%fVxfgPe$t8;nvu$nnA>IM}$sN=eD};BGke
zUUe~Wt$6imSFXS>ArgT;<uLU;wKZlbA*)oz?wU4rDsB7Lq<qmE!oOvgwjar*s0Bel
znO0B-VsaURRem}iY4V=#vojL`LjcJONqC!NY(+AkyyBqjap=LMNDvz)G~5`kw7=GI
z6lF*j83ifl%>#TzO5#>c at 8QhyLX%BUummj&KC|o_92y-30ac&K4<NbF6P)DXM781X
z-Mb%og_H^<AkkNFaKHSt+hf+MH at 7tG<fdqu8H(lwDG+@<{QG;O%L|VG%LRCFw3|_q
z%k!Gk30Es#q at 0%(b8<y<1O5~{R;yH6S*iKEl>Gu1>j^aim75sY?J`PGrW=5zg_IF4
zyC7td&x#34SR5J}!fO?1cA at Ao4+>oLrz=4qFk(0Z3?I5~HZc?(mxb<va_7#+vJUP}
z(Qh at Z{@CFyWEqr at U`AQ~JkJs9y}4efnXTQtnr-L;g$iFdjgBHyQ+OW~14S!HjD4Kq
zM-!$$|5chQ)P)4u=hCH1WD=88Cy(}+Ck1Tz6IE3xY#%O8mPF6qGGoumehxK1N`tA;
zLFV^po4w2#oZiw8^yf<GF44Rnapx;31MKy#MGatdc=XT$TWjkw?V_(Reeze8 at MhV0
zL_Vg)m56qo!^jwH|5z~2a9#XAZ#f+k<K}F{s{mkyj843Gv5C>%s4l9{SebmUkDAtJ
zBlWH<zgpqcc3#i1Ue;fR1qKH{<n?~hsHrWVId$O%3gB;Q<L!ugD8IcgDH#S@!LCLC
z|7o%qwd{6x>8e$m0U-K*-G6lVkV8eA-)!X3{bVVab0QzE=zuvs&<lroxpwyctBNk?
z?`CBw8MvQKiiCFat>29<T^NL|9Nh+LWYk;BgaL<tM83+CmAmmV-0s$o$=Ri$0}Vfa
z`*y!EFQzW;GR4;XJwWsZD`<<sfBMOSD&88`#xlL|Hsrgg#KE&pon`u2#`oKx!H*6F
zQ3O$3m$yA$@zUjta_?0xKPKqk$Q)z&4q!W2dL{MbhECZpC_V}K_IsIqV0C*xKJmTV
z{cDqh{KxgNTCQU`DQ=F?044mgJkLW^q`kkpFL0>gT+6M;?gBeSd0W6c at 3_l6y^zkM
z5 at 3dcq*o|T)o%McI at +PQw{uF&tU>qMwZ~u#$yaIsS;$`+MuUB5NyPv*<AX6qkEJFk
z-5b9arw&^!Y2Gp--TW9G`WW==I at Nex6oR|MTdCpH>nPM(Y5oA8lmFW4g0a%3gO9G`
zc?KxAVhq^1u+u at GX&A|~N8xN%%F4CZ(WB<XTS<Lp*L^tM-&?2J5i6M^)aq at jaie+f
z+-o_A`6_2br*3(Cs!B*+`!W7QiJ&yK$20#b`}b5PO3iH(Z`OUcs;{1B?WvWwoXXY|
z>H!7S%0EU^CMN^*JyuCdfdY3_$jxgnuY_*;emnZjl361oEF7UOSjGS$Jav6{h8;MI
zqOOf7x;`-<<JqV<yfiRM<FC?XnnvOL9jn+`rptygunJewH!gj(Z}ST8wu$>zQzIu3
z+Y<qwmb4iS)i<gA!=bq;*dbl*1;;GJG{uQ=Glw;thjCtT^sv_NP%U3UJ=|Ha#Kq-|
z<H!{*$L^x>s<!Sk^(2LL_t6!<Z at Le;#EJ{!mR{NU?lSbu4-B at CDuf;d&hd1GUt)m6
z!AE=C{HO6wcBb at Fvbz+dr*u_sn*;UEsO{+}N{k7e<(23XnxE<Ad>!?|!RRUl+y>4L
znwBxLsUu+ijKLZ`kL_MiHaH{(7t9#A(-CZe>C4`gm)FInj2k|%FD_0r1Jzy-gSx;Y
zZyQN5!n^ODhK&%kYDY_}L at l*GC>GUu!oH0qmbE&ut<*#E4vl?6I@?!y5Kzn+GOi|t
zvWfxg@;}`<wPjy_hf#g3(zQb7Vhd`20{l%hHkQ9|_9^7+?4Y0yO&Y$Habl`kU(FxP
zVQ!~FckqQn4Qp`%mXm?YpB|frR7(2h&CVV0J&zna-|MNwJchi=8=L6-8|~FLr1n at N
zAYfGS8yd%<Pd!@H0caU{+~2Rab#gmB{>#e+!(N{!(M$Attlsg)s^HP>seE5;mA?Mc
zs$zSuVza&>c`~8l%zzA32+=a6dcAh-!zE)pRZ1LV>b8~=J_ZF at E<A`;GkJeG{NTY4
z)yf|)NIBFR4LP<O7!R{7?X0>d6iKB5%pw2Wp;k~W#m-z_C}u6*|5Zu<>I<tjPgDoc
zLsgJlQglh)dv`^j?~iN%5B*lXZv(SGF6jp?>pSiC^|I4z)!Q_Conic at b!t#8hkr;q
zcaDi7`Nv}avucE4x&!U7%@<zHpmApU&c+M%E|<`0OZrp=rT%_2n({_Jdp$lrvHc1&
z(ZwoD&9ltFydKhL)bFpNUiRB^fOlDMY8!Fsdg(JZBcPIR=C;w*b^1|t at AH}sZUft@
z=8T9rPdsQkeVxwc6~UkV1|Q3rWHRpRTwB}aqoU>|I^OGEuJkO;<NT%%>Z;F2<^ZIb
zJeUF%re;+SQk(<tjN+jhlJTvJKP&4y)brQ at i<7{!ej~rs)`nbl=vs95lu<Y-vHEPZ
zX)mu_o_i=Dda4K<lcEx?ocs9ebWo^%h<e441KlmxI}?<Cd1l{X%%<Jlf0$Utw{rbD
z*eD#d(MhZG>o;#K>kqt}Ek&dlWxw>Lm6|-=b1AZKsP)ir_{24aeGVSkPKCN?)YOgT
zCbOherfQz)K~msslnts*9aW(SHK;lQ52GCzR$z!}3^Fw^U=j at Q;{avP?tfG9S1}f3
z*bY4y$&ite5q07lNou$AM=-*o#u#zrguG7u2xk|w^7aR|>-v|GzVgdYT$#Rk2!yfe
z+Z=7Ht+%=!{&?^$^$6$?eSLTA+Qo{9rj~bhJW(wTg0ze5-~X7Wcup1i at Zi>^=rM;P
zORjR0zvgB;f%qnB at Oi~W8``S=YRFzlT(xe~Zp(T`OzNhb)zQX~ol_3DbL$o}QRk$(
zEyNB`)n~+y<=u5H)jFBgTka5IX^8#H_WfR8=SLS?{wH44#iupa<5TMwK`Tv4TUc?L
z3bJwPv6NHQr|V%M<?q32UD6wK1l9sG1>LV+LOT%KJXK1EknPPp)tRYn&&n>Q at Lkck
zV94CRXpDPCV`!DRQK*9dE7d(_<=(|Lq6LFEc7QM4pV75%-(R37Wi`@uD#jKT0ky*t
zK5P5mb47WJf}^w_6X}mZ-z26n+Chx;oza|t+2lTGV~#u^HBo(lcQ>XJHTN;KXnFg|
z;Vnux8nU%XXmzb-4vO9I%3Hu3MmxyI%o8S-3nw~honf!8UB9CJV{&vkKQ8)}qfK|U
zczwalAmm(PVt1yk$Sx+hV$nQT{37%jBg#W69nN`ZUa(OX)3i~aih&TZ#%#sEjZ6V@
zRYp$t?N*?~zsB>7#j&lr^In;V;z{bU at S#(e=66T9DEfipOTZlS_x-vmWhG91*9~?w
zl*=}4+tLyn#hp+&!r-%45%O4rp{G+Fl5MG&W`M>Q!M(<`z`FhU-Qo==cGrNgZtfg*
zm%Qaz%E^R4?Vx*>QWUD5;dAI8R~;|_7(vT6`3wv=(I^HEj^3i1e8-SU`PRE(zQ`{f
z5K*^bPn`aQp+|o2Z{ZZ*Bd&*YE8$3+I;(Cie%;TsWK<tJMv>Fq(L|N8hPeaO9zII8
z<wA-7GrQeX^J!nCt|!V()FbWOOCVTCsQ^PnzRhfG5(?<O at w;-j$9dm6c!hTCs~~S7
zAK=)cec$6-`;IVH_q1I+>zb2`Y3q-zC+0p2a+2Q`Q5foD`p9Hf>`OJN+tP#lb3>N3
zkk{}@dii~y#}RLL^_(YbL*IV?ed9qY<Bu-nJP&{V;cocMnG>W&fu4~T50JTV=FDzc
z%UQGfyPqfjkTr5!w~j#%1J2Bd&m9?m=FAKDe(g4(=6~ze(v1gGv$A!bTM$=}b(MK<
z?tW#~{P|Nim`HVQ*qQO|?*02KA<RJ91y8X%@7Q7f^<x8w;doV~9cHfn77EtmG<wv0
z{+##d5lo&2oE5YxBy1l(WUfIC_*j1#86QnnDQZcp)Q}_3sBw?#Iqh`t6s7pRi(DTs
z$g%+w9H2h!FBitile~9+F+pcrabVOTnM`OtY?-=7 at 9Nhr4&>~=xQGJwFx4O-t$B$5
ztrFSOs&rx5ftWN`czk%G>3Js at Zlz^r>o3F%<=dE=8gVqV=jNlD>RMW=a!cR7%_WzV
zQsEpONb6VpeXm>5%*z?sI;LO%w0|2<p8Vx#@oK%FKY!kC`hcdzpFYj6zXa<fS2;*u
zmxV>2{nhfe6ddNwd%^3a)$<A)H*`daYf5d+CfXfFrS<i>bt7>u4tbi1$us8b{Qd;m
z91yr=#GWDtf8DZ%n{=h-V_)Z_&y%sbqwTRg!G7}Gx#0^+hKy)vQC;zPu!l*uwn0!x
zaEnp*GU1*;>ZXcphdp2{%H+L0123KqYhk!jNB8_n5^=E(_!{^~mq=AYM?j<;;42cy
z;^VbjKkE;Jbi!R_O^9wGRTO#rIEsd+PY>Q-Q92oYO%>zWvuD at L|GdHI`}6p-u2bZU
zXuxIgYDVvLaPSe at +N*(7VQ*@7Wd*O2(otR$V>e=M#srX)Qst5B-5U>@3|bR<^#>j7
zbQbysP$To4teBGVWYO~=@)BkgGjxo-*+WUGxL|<O<+2XaQYt}q=le_<a(DGQnc$1x
z%+}9h!%kU{S$K3GufJX<6KIYxJ97!*=n{ck{+nVtk57 at TOU+P89~u9kp<pd=b<j`H
zgDQ_#DOXPDp{}73l`aD==x3)S at UDpyqvPZ67ZgNjdEW66T`HxeQs<4Q6&g)9%YE2U
z?)X1uQYugwf<DEqSoAhbLrv}VQhU|uM<ASwK`e93d7hNi)OT;+s;Kv~hWq2?WpG$y
zg4G^p-#aCFJtC<M)I8lEGWbl-P)!6mo)Wv`V^vit15gNdXX}vg at w%Cj^kAin<P9U5
zj&<t)ae{}z0#nn!(`Mh%PFa><ADf!`6W2o>Qf_0X`c{V1v`#H`@2 at _vRSl$)2AWHk
zEnDU*2FH*iilNc?=-Aj;lK+pl+e%inTzf!2->;Qmrc$4F97#*5;r#i^+iy at L>$>S;
z&yL$WPNkMu@!>;sXXg)PU9B-!y!N|~GGz)XX9Ec;D41P34VW?F#Zqw`1P&V!SceX&
z5IC4JsjctifjP29xci9t-ReL%-SY0yTw*i!>9-|s&$<Zo%4yPV#21;CMGFEwWo5jp
zi4*-8)H82h&t2zQ?3g-v^7bR~5ANODZ$FN at VusfQasF!_F3>T|NbjRLZODXRGXuHB
z&Cg6NF?Y9&iWnD*+asd&4WP%ey~is#iPQTq^X%r5jGPg*^upT5ECheCvk}E^<M};y
z#~aw$*c7Y|)C at m<I`Q$-r{|9xJP=RFm;V>PC0Dhx>KF)zT>QePlXSeM;9Gp-3-pPl
zK@$SEbT3r#>~WH6250(m`Dr+k9aL_jjeF<L_VP^M+g>xD&oVTW{O->TNjW(=n3of!
zlz>!lSB$Kwp`46oo;+z%V%J_i{mX2k<g})26!NNPc+%VjIukO+wW$0}UFxm<+`0af
zgK9?gfoEMpx>~j(-Dtvuau2GnEy9*x-yaf!_m)z at -Ic!5-uDS^$cg1={|=n7e#3@;
zIzfKu-*Ki|y{$=6`sSnI-NWIat_GDd%A}Cr|M_$ek5S61z~z~RkMG}I_#@0<?K>H7
z)a6HyQVLZ+LLL8M)=)sbB`30m!a75$!Z*OjN8&N|b at -}5J>GnFXWRb3u(nfyR!J#f
zm3s|i39C3=@Kr8cxIm?N6s3VLom-mhh_Cj>de_%`o!bB<ey(`XkI7b3-h6+(IP?Df
z(Cou`(K|TIFFIzz6S<on{hBDTWvf=t_ex1hyPrsZCFJ)!Uy5NZ-LDvb@)d)DkjVHu
z)s}&5p5~cAitkEGP5R}}(HlLwqO45T2+$7IZ`-!Z?EQm+@~J$vQvt(R9--Hzh|sM(
zf4QrBr|#F?4T=!|08tuPJoSX)Sk-cQJBsQM;^sbmeB|@M9NlHt%XF0{Ot`_)n_aPV
zRu1;vb24aO&RZx5VGC?l0i6i)!-jUWA?4!dpjLkP at B!wE;rnSVlT;vXV-XE{?MrUA
z7>elCYO89UdCE7eT at oS&+&XzFkb2|6`|CU3fXC5JrDw<Y<LKp_wN0+~jee#cy#i=G
z{Yp?yVA#i3D8*m%hB2f#HQVjuv(Ge<5A+3Cq5 at uXv=KbZ>Ex>i52o*)ojrTjtg`1%
znf=TTvzjx<Y)I)lsKj|nV>nC#qp-K4NeoInv__+q3DMCLd*@y?t01m4{ABT(5^m8z
zs_>H%BF{mWVZ2*NNpLh|^NDn9K`^<0KOSSt9RV-Mt+JBo9qiV*3oE8GXPC#gk4o|G
zazZn?{COt8GkqC(1Bs^GftZb83Wu2+?Yz@}(TSKSRCyqVZf0(UQ6_LM1T-wgd&i3(
z*+ewt{{45m135y?^Ze7)?16JH-py475^?~_ at D1Qr{O%v=V(RUE#iXCK|LG-)ww1Hb
zM-|GCyg<$hV{)erb0KV5SbY_HdZAp`#pnh1GgbJjG^30PB<HVuzrWD6e^xh>{@Ap4
z4C?G+1TK8gd$t^~POalPJFm}e8cjt7*n}N3c+jAmMPH~{mFq_gTe`P at XGZ=pAm(D~
za~yr$hS$6H?dz7HHG2M0*`X_6=&9_go}TAL(Eet2K`itsn_C1ry|oSuwtNmVBUP{W
z_8Tdiey6&(sP3{JAN{6sybKAz@}HF!GiPr6QGM*$FZ+*S^}vr#6YJ{g`c~GlGu#3V
zDtMPcH?y*P at 2z<FPbU?72pWm;W$feHF>Twl$y-_$k&R=*Q0K>)E8OY7 at AJvT)YOP^
zQAbd`)ZXJYetZk%3^^k}cU9AXJ)|kVvTsl+yX9>ulXSObZo7J%@!eUIgVW!>efy?s
zBZF<ER3LsRq=g3ugVHi;wA#_l_%m_Eu5L0%llJbRTIyL;1Y06(h{=RKn=G5g7R7e)
zce7pMUwGOv>y$dLea#JJ>VH;IZ`gR4zQ{lTEi<`x1742n$s0*-TgtgOdOZd8D4%<<
z<jZ3td;`GVcXV4c6PM^4K(=VUe7odY-;=>Z`Kw2sp*V8`)Ysi$!L(@|=eL=V;rN!4
zaQzw~D?4^my;?;t*R^ZOLZwvLeO(=Yk%Ep+xO45=YswnO=Ujvm)sW^-hBE)hR>Cz^
z-`$Ej$K&ItMRg}X6!XO at 95Gt;ivs9_s6J}HU_q}do}sd&k_v%~m+z>1^^M3_^Kj~h
zb?drrytrFAxZXUbE_~}89LIJ)zt5`_3~~E1qvrzizvs57jz+KYz^UiQO`OCld47^%
zUqPF%H_|KSmmuVOK|Yfff<2z<oNT<_RO!e^TgMgwA%RDuWcJ<p#afpig9k%LXnPg&
z&(n{IuGGxT9a4t}EV`6B$MoWG$4yR8cYKUk91&9fB(BF89aE_~UYxJX7>@oA&C<<{
zzwAsiUI$n8-dh~l-?o*jide-VBS$`c_AG2=8WZGZ^m9=N8Y<c8>lY=nS>-n`yvE(Y
z^Rx>C2WL#L8A)?u*0 at SEbb2W(YuaDmx^*jMKFWL3BXmtOx7IFOP=O8V<{Ho)Io(zJ
zCrizkGe_a;-9e2Xv$0uz8bKi;Ok2?{5J3Lv$Cco9KfYh<KFT#pd*C9-edVTY`~GZq
zbW&L3idWT(Qz!8XRf~@(>8XCGsGv=BywnU!OGa#Yoz_Rw>*UBbeSA;F#4ye)|Bgwv
zR0%bdldIMO=+tgF!KBUp=j$T|TwW4%=h31%+7+qw<ZCXy8#ZI+%zl;u(b3Tae at T~6
zmOb^}=HP&bQ8KMG*P64^r^QNtsi`^s*S5gG85AX7 at 5#x at sVk%zd)DmPd2Ofu&}et#
zaXZzoPr~Ys%|B7#@JRll!UQ|J^w`+!>({qbttIiscFE7HCX}n6ozHwpRa2P`roTJg
zsWu7P-y)^jRH at g#1Hr*doSaN9zCy9Zr0ekZrb?2DeQTuUgL<$SjAJC2gS(5FDND<x
zDxCXpcM!zNOQaH1voTDR71`5-ELW+LB5{bByHNfON(kVc;A2C<y!qC(JQ!GX4Dt&B
z!?6fxVXb(Xy8ljz at +jB-h-3iolP)8YxM$_o8zrA<VeujxfP?c7x`_ij$jAVU{utQB
zx0Z_ai_~?%p({w~iD%Jya!yTK&O{#s5+_Z%jT?kkjC4l%m(<kM+CyOr*)~_fJ~4Ag
zDdkaY>7c0nnw?>nX#Y3U3{PmDK7E=Zdjq-q=L2hhu|*@aN?!zF>4k1Pe2U^={88<7
z&>Kcd4v4(u at 9%&9{IJG`U5h^u8k!Hui;lT<`>qarbx|gv+Lo9&lma8%YGSb%>fU=s
z3?4FM+=i+b1U0zj%#zPiDj);2VO(NOIEw95gwg{51r25q5vVQb<~`I<ZCpK1YvhO#
z-w=qY?-Zq;nvp{%Ya5NIe~uk1E-k&;``6BUMMXsnKLNFe{kdY at y5TDJFx%?aq$g!o
zh4oJyr-3dcER#BD9sp<g-xoVOXN?=SYQ>7m;$mo-c}cIaR>WWgEt49>+_;Dc8+H$r
z72+TWfRyUnm8o+Wh#_r}I?iv4x9sB!{X$A_8Z*o&;vYJE*tQ^Y0A_lH4M`+si_pA$
zxR1z^H at E56?*wVw at cBQ&$##w(WaY2XU&xkuevhCN7JJn3<BOTjfvUAzEB}3ac);aO
zPSlC?#*NzyB+n4REUKbpXWio>zGEdZj^3cbwN=5y$$R$heYbfyEfu{tX_KaK&gz%z
zK8xMEzv(zkuyol;p1ZN?#i)kkx3F_3Ixzr%re~xvAaHD>Qw&NH_=+e|&9J>w^0@(`
z7zg*r<{KL0#-+n at 9v>Dvx9*0{h at dFN9sy$7*r-t{bau-2E!`us7&aP@`LV3bWR)3h
zibszenKsOV?RI3SgY>v9Z6uYm&c}2QzaLWk*&Uq0MSjxh_v?MF7_f`@*rcgvxnD|Q
zm~T4CKI2hoy|`Lz**yftr2EqD at OsN9zVu>0U>snDvAu-~KZot=)lD}#5bAWKY3EyC
zc at m%wclzQ`)~#7HH_<+;o1GWP;9|6t-L6}KmT)3MLqeqN%=u?7)_re<Xh=3NP~cs9
zeqF{GP#|w6&wR0iKtC4M4U<*IyY0sAp>-l8G<4^Wy5ZZ#%})-*ADCZV>$o?I+U=%g
z<YeBEW_ScTys68sS-bZ9xpU6$Gfl~HiD5SXsNQm?WVk+NYPR?9pX<!m>C|oS at +(<>
zs`}u;7d_=H73;Hb^7H4vBttR3`rxF!=ad?I59{OzJExdq)nC4JnYWt4x904E>V17v
z5D(KCYw2k7?quoalT!%5e5P-Ng+FyyZurm+LLP4F$P>dHx>GK7PU>KL=Qb%)cdZ6`
ziHVUOfV9F)7IKN~uJ at aN>GizNM&jc<e)Q5~fpgv)Yg;JqiqrWrL4U0C at LTta<mcMi
z9ldJ9WMZ-+|9)DWXrS;PzkUs|O}_i^VemM8f7#>5j&%lW_j;_+P^_qEI->uF765df
z=X>vZ9X^zvx2 at x5Q+CuT(r|>CEVn*rD2}_s1Bnb3{fgO4 at 3N<vcF)gGj^z~<^es)#
zIFk#=)2e05vSnYkK7aP?kb#Hgqlte-4ARnCaNcq1>G$u6Rbfo<%1x}QJ5QiNW%KME
zp?DlIDGKI++&a-c?fp<Cq*{0QaQGvt`#*H2VKKMXHw^#sY-a7j#jgb-K!2Q^SNrpn
zIU#Yy7DvW9TTbFYR=@F@(ojrSPWOgGvIntnG+YwFo;teh{0}>6&jr&I6!la+5=Uu_
zBn<y&-f-kj#%pQ at C@Cuo%?!)y5GXhbY0+l5QLI8lgK;;eDHb49c+)y{>*6yGD at _`L
zhtjtXAI#-j0)?{|E~R^dh7w|MGMA^$z2O~u>J+qvci>rjk{5k`hLE1H&^{$wZWIIM
z&&L)oia9wqh~^Z!=={G{Sg+cn)T>}d{<572>)S6{l;<?AK1yaCZUbDWy}Mn{j!Svx
z9v&WjXW#qTd)mo<S(8%MUNifb3t&IGPr{iqj9*{rzH^t{p%9SSEUbd9^a*S-ExcVy
z4);}W6=|Yp&?~{Y74SqL=Q1K<P-JK4F6d!+i)o#x``OzQYaa*+Q5!rMvpJvrcJ11=
zq9W>ypBVrfn0DegnQfy`o`+tAB^T3l2Mi$RqVwZjqae at JUoePz!;vA(M)b-{&^?wu
z;0keUQ3}}q{IisnQz1CjZ?bfl*I>9}X_WoBHaL#hp}1!vn1 at fFV(dli2DRPBrd>jZ
ztehM%%mjOck~@EoF%p+Z0Hq%$?DE~Rq=qmA{01+L{iuyv2`DThBLhtlEuc5AU+20R
zv^dVN)@8_e;+F_pdmKIx+}ClhX@>jEm}<r4;p!;$!%swsU&PinzvK;P&%O{JAD@;s
zuV!$0!QTXVbWGuPNP7*ue})`603$l_+&Peo&H+1Ix;)m|SNCn_xszesoph&8s3_cf
zAU<S-Re2}2|NVCsV|>x_s{0U>G-}G;{^7j?hOHu?63w0@@Oaa#^~?oVZ!<j`<>Z%u
zD%(5sm?Q;bnwAYm{hm&r0_bOQTE+ic^w+CwC+X8Y)iG}G-f5?oM+)XMa>qVVG7=vt
z7{ZFm%2TE0o?GnKa^3}`_4#NRSu%E{wVMOkb|vl9iORGb at kv@?!sVnsfL%en7^qT8
zcj%+Xj~(=THvMO(LUB=9AtK{$a3nPJ36|#hUbxtN3Jm(w`Rp4M9`3>DSEEd9F%^OP
z>yeD(llxAE9+5sF5W3f-%<Ir$5BS@^7gcN7HJPT;fNm2fP82|_scErm%2d0!`1q5J
zqy at Q4VKMXOXpGtR_pqj4>(f?Tt6?$}5)n17a5w06 at 4f}`m=_QzbR~zL-JAZNTA!xB
zxBc|#55y)&|Khy;o-bfi0G3m=NbJ}wz%DOG94={`Fn2CVG-a>{j`~7`ni-ef&gKqj
z`X~Ocy?FTM&%zes3(X%5L)NnS<I_egU-Rdzgh2DpN1+c7-~74OQruGW$2zj_>kAx5
zY{I^C7W|pvEK;?*R-Vi%N4e$Q2Uga|1Y=mJBJp`7WtI(<RlBRWSdtRZ&qDnsL5qpG
zUY56^o5Gxs+1^qzlmRn!BrQzjC9F+e(n6w+*!jp|U73mSPkj8|@Ki~6oD?Kosz({d
znlYExluQEAPD$|~oWP$w at A#K5qo-w)CrBjfudCe+l9w=afr`N<!fkloM2<`Kh30?Y
z)Wf5P<GCS4KxSH~ui#fh#|(5t{F#vnWNP8~A6wZmnR|cbC3Z*~jb`2K8ZD0I*s%*H
zOz5Yr9Z+d4Poy&q4ll$D$gMCuR<A}g`5aSKNSq6g(WWrAdC?4uX!4OY0&(NO-&(IB
zZNj8y9-TB7G=-iw2$#<;t~v^iaPi`IFo>M>ZuDNtG{1>}<uvueO~zy_xVTce at SK_+
zU21fTQ80NxyCGxT**nl~&{w5~;Ha<5ga=;^5ueN<S_gXc>^VhhF5grbz34WuZX=!<
zFa{G0GRN4qy^1<p-z|UEk(sY~e_nXa2TY?k{V~`d_ at K}CMtdWxiS{c3QZOGM=jXG9
zF(it##8IpA_8wE1$Ky)<dE9A_A3bs at N(+~jqrvysgujw+IPatB3;>c005LK#eLE<K
z0QMmfKHWqW70Z%Ow30Y|`Lk0;ePznf7$_ekuR;+=KXiQ at c@47%xoQ4kxUMdU(zoy5
zFD4}sHG!4d>yMWBjQDrKCX4k%981NXpp=NvWqT`8`6E{22Rn4?#MkaVcmR8gIKE at M
zcEr;i#Qi6kHXj2YgP+CQg at Upe8ie+-Z>9C?Mx46G#*Ns0q-Z+z7;z>k$qgP7H5`7G
z-S5KikKEgTme2Jc{wogDH-L9GNPSV}pbgl97cXBDupfjVxG2LH;1$Jw0gV+Fit49B
z(*v{`(`2wR4})i*vxvOg8aA)Xot9gHCjs9_>FDI$yBGK0Zybxeh&S#t;?KDa7=k&X
z9 at 5_z$?4!qYeO}(YS_12u(qZKTe5S{9yEjhnVzWJUE(uuLbDMl&4I at Z%#F4mal*5`
zZH%>fcJxLe4$#Vn7l?}LPh%LTgg^ZG(^I^!fXRQ>t0yfBkQgm2EejGI+83Vl(fgm?
zcFpVSt%zuGv}m<Gdh#SuSy|%aHU7`FO+YgUImwr}@4M?Y`ivbj<_cslTq=nRmhB66
zomd;P9O)4umsspRL;h?Qk2S2Spkc<w!gM~b+}>n7J{!mwic<Gpy;c$;960d))2CI7
z7n9u7yt~&!-21}b&6cpw5VR>lb20nqO5hZtCe5FJxM&cQSqh#!NsfxL|Ib at yUB!j3
zss7pJTJz}4#FId!6#cmR3ISt at AxJUVq4Oz}kSP5**WjqMEKHizR_wB~t(uSZ!ruGt
zw3n9d>wCuLLiV+5K9#Et{mFp>*ePLQw5id_Ep*{%LAiAK@~bNw4^-w#Bw_x|=lbj?
z+KbYd7eo}m)KPrywbso>fhG-9zy}P7rj#R)_<_$k*gm8F82B7K350rMsprse`R=oh
ze}xT$*UL*q2=2e$^u9$m{0{?f-6=UI-ql^<2Ki|GLYW*HEv$6<k2mcx(+WblfDDet
zYqaR_3S<s6tB$z$6bIb&U70`Mb at _>zqL3q{LVEk;(Ib2Po(uOJIkJF?*QQMkgsK~f
zrb0s*L4nFuXGT5Eotq`>;Lt69o|(GanaId%Xm(RAskHX-=9HkHOHFz%J>!0U6IZT`
z2d$wcf}fl_S4ph4iBj`>z81lKZHA!e8-Op5Id$r+a>vZ}q9DBLllWse7iSX_2dS$w
zh=P<!81Wf1Iye17hkt(oia`9OOG2X$b|HQvKp!gzpHlceH at 8|EZpiD?(d!{{=Vw{a
zrc?6AbNVQ=JJ`QXVC8DPp2;^_jJj348mmCBE?EhRtfYG&(L|=3n|D#u@)`fx=j-V+
zdrLfpD}x-%<(*pfR92=<0j%drS{mC1ZZQLL`9m^~?Db9($zl;M at v#m#co39$QOE6&
z;HD)n*^=zb4yO<K=~JtjGl!|GJ3~{}wFBXKwzs3iQ1{PfX%7-WseTLvP_%i at Dz{G>
z0~Ev~fbl@?B8*>aX&JPA`yB#wv=u<-o4#)S=j(_-=F_4((!t>^lsED9MU=h&W5j8r
zyaSTt?d7GRp at C~S9UCjY9=Yz{uT#cJnOB8^$WQ#-dX3z7<!B4m)lrxKnBMq10qE_&
z-#0ZW at wTM4Hg6W~3Q%s|BOyK2h{gH}7CpH?QsS)p_d9m#)LVO@;hHs{LCG0JfM14e
zb6 at PWdw=YqVpmz&YbBqBq5v5`+kE1Q*w~87%EO_d3d+i3Xo6)s!GeAO+)`LbyX~&Z
zGKr-7pKphC>D_xX^g`;}@wONDVuTm1(d)@O1?HmJnsyo-WKR+^@(i3dKebet|Hf^9
z?wz_XGxh>y6KO1<?8Z*HHF?$k!??`1Z`m@<@40#7G at WkQW{c#b19nAdQBG+wJ$+o^
zIYWITz7`%{j_^TzJUW4ZNrqpB1B!FEk at Nq(TMJv;rWm0eVlt>Q6&4#_rqh>|LxYX~
zAn>s!>(9V>f4u#lbDcEv&x`6Jv~~|4X4X}jeU==%>zlcq-8dSl0gEur6c~si;BTC3
zcGj`6i+Nb54S%+EIPbln$yd{Q$1B2DS02V?aR8CA5?0}R)$fnbhr!Tg-X&fE#s$a9
zXMO8G(NPK;LcVKP=yDGZj@(yiO?<t*qcZQ5*5-^R0ZY4i^T at ay;oXBDL0378MN4Ym
zeD^*s`wtutZdo=FdMAt(7W+pdzQhw}Pmyc#<b8 at dZ-{h(LdEP}?D+ciBiLy^TmLMd
z{c_w5v=Ul?Fx2{m=Ont*o5MTmNzLIMuqx~cw#z4?^rHqI8Em!4vws#q$@BA at iPqMN
zD)w|DQAn>`EwLH at UvC@z*)dexBNBw0w=n#3+fjrkU#WpP+7+aEtmTN2mhlpl_DUPN
z)XsShodX1j<>Uy^dvUz3d#`<W#8vh5oMuYoACSh7%f2kj!faqgWfZmh^zR?#90&vs
z+vM=yuL<fq- at 17dRY8hjC;>B_=3V{!^NESbfAF(auhLg7S#o2suVgW-)weJmlR#8S
zwL2TN?bM5*2eB09fDX<QWF$c~k*Gy-Nl26CKPu_fq%%0?#EE{F1Gvn&N?tPE!^l(&
zzd$koEh`UqC_5D8FzV<+h)Y!E3UykVM8VC&SZHYMKJpU*Zt5yj`(ph4+Y)RW_P{mz
zwDhDC1a;)<LL%c281;bpOo at xEh5;zry&E>`yOmL_{8Ujf8iF{>M!NV<ajlY1^6BHp
zg&I7Wv6h-zAK$VM9|W%S>Qy=}&1E|j2$5^;%z{1);@sJ_L}YviM@&8WnQq<1J(vv&
zgn42hc?iW9_Lx^$uF9O_Edv5U3hDjARt_68=CCZ-<oSiyx1xvz*Q;r9bgav|8S2o|
zZkwsO&dm*8h{nT(EK9M2y}hnC{Z65>G<OP~Zfff2+uK?ObY=bUE+F8{K-;+S7mE(o
zAjZSd<V3PAOo<a^iWU}Aph|Uf%|YDijSb!)z?kS6o|Sn5af>TJ2`CSYjN3g|SoFt{
zVTf>qVwMD)3P4GeL*NKsf#q`atc;|xXVc@;nu`0&a1osj*`pPaTXVTLE!a8r9vhqB
z4Vc8atx?N`a#v=5gOnpMk$F{+7I-7hSN#cK42uW`BG39}B`Yc_>gnqblO;`2JBzDS
zx#&f-!_SPPVjq6H)ir4VKEe|231LC2sZ%vaj9AY^KwZ0j`905p9;zH{mAi?6JMyfU
zwMU%levnu_>hTI3Uh6K7CuQu&3n6&fE3}v7 at FZlFbR(fY#ugyRDlIM^|3z$}IE4pU
zS*V1;4>e~TZmYbOk`H3_tg$OSVJW^|vAU9ueUmD}hpw(UEDMrziamPd==PF4;hdqo
z!`UG86lHfJE&^4m2zW`5H+hR{c#jDQ37g3VVCftz%9D}EcUt*(hsaD6MUp5_hc4iK
z-n)PQ-D<rl{v^gbmm)n$E*ZBHga*6z7^MxCG at xmkBzP1228y2TRB)vjOk0|S9)8LI
zb|QMMn|qKSWuzp2C$!k7g^y_%%aaLjikU`F@=vpqCr%<D=uh1Tz}oiZU2;&O?#xU>
z{U|i3-oK~j)TLLiBC;~j%M~apXJ)GP>GPV3YKMz2;K<(a(51 at 9sl4L)R=Px`m1M2<
z%(jNtJ>1>VAJP3~X=4+?bcq|{Ol$>`2q*A;y+V}iX*=d<IPx5}R8O?DRs!Xbxu^&d
z*&^tiG?$dWy!@TgI2tj$x5869Qd2$c?W6EOJwCVexx473jL+8P&X2>$A^P<r77bdy
zZvQKIkmx}1?}no8hqi2b^9W6L at WhF?=)WVsqM?eE^Pr=>lnQp3$Zf~oy^dpTBnu_%
zXzBYDK5T6-mw&N-gO*>E(P~Ra95?oEre#K0m)DJyDCzF~$RJuPs|{>WvenQL at i8&s
zs9#~?!gk9_!nSmjGrZ0#V;OWkgKiX49T|A$Cif_PGCFE^Vq%Rjj|5)+B`usL(9faN
zwJSx^^4G8XxaVLV*tMnX`@5~%N_LYH8GasqSRO^#g^L$wOwz!3IYms(Ci at gr#FkYO
zDTx<F6>^cdm6P7*)KeRg at ooL*i$X!ZqGE(s+o#M=^hwf%@_`u|G)Q{p&=$UK5Vu~u
zn71hTOhN*^(+yOL9eQ?_X#a&Dz4cFQEW+3_4Vz(splp`4SXfPMszU at uMb+Wd3g^MA
z0E>0;Yn_{1?Vd&~JnctiGiOD%b7vJyxsOPnliGLq=QcgSGp0}9cT3o at MU<rgV;VLS
zwuJ`-XrmdbFrlTBE#{K=(0Gs~l`SN_1XW~2XVkGcdQRPFI(<mr%umHX50bV%2K&Z*
z0u($Qb$a=Xn4EU&thl(Q4Wt&Gm^-Z`GPvW&`J|x7pMG1uY#FG3qH;%Ui_|7d$IJi~
zV4a~OM=l-N%P09QU8$mFK0yPv2=FgwHoAwLL>u(L=iAn40pX+9#qQnP5l7B0W*Ad{
zUzof<VWZ_geY#Y?r_YF!XU at 2=XN8Ec-s**%?1`H9- at 1}b;e5u=z1dcB_qA at CjG{!|
z7D^#xVIA+EZpp2{;MxcVH&s2+vC5<e^7`C&kmJT}Zb&<Is*J8TI`oEUXuxW97(f0x
zhnka4cod;Y&_{%9b;kPo>Lf{@u7g~FL+{ST_d&BPoFVS>^=EgQ9Kgd#;`!Z3DWWvA
z6(A`cb+pqYBjjCD>l+n;Z<3dnPos(9?Ag_*#*qRc2W_vnP!iD7F+1}F>{YbkwpXeF
ziXzNGxk)YggoQPU#}G|T2YqRYWKncfRQ0MMee{u7P@);-%yQ=mm*&L>$vrtKk?k<7
za{t0G^?v(+U9=n8`izK5OFL94D?iuSS$%XHiPHoUP^DAwB|EO at Co$O({>@CgzeDK(
z>e)n@&-S*I7zR*sVX~D^rCNa>VW$8CPcRJB9uG*AwJ32CVIY5H*xY^+wYKjHPlxtV
z?<c at s499cveOVDPPjDInFqEe*@j0}lp at sw3HEEBePuseb7t<HK!9g^AoUHzYVEo(v
zCS+7#*MC0$`(fArPk%fzV?8&%^AmM%0Lj{O$m>Bwyo at QA*yi@*AWz_QO9}o7Vd`KF
z4HxHaqyu+Rjm`>)jKe<BnWf-uu<)8>{kARNWGbx>T0r~cT?GYYymjp{mZR_!zm(Xu
zt4Vv$))p>hPLb-h%eN8^^f?2ex(1E6mLm`~@AXqr60p?iPJu65&#_Tju&UZ7Ncz0b
z%`==?_O$hlh at p~<h at lQUuU;K1w*HPzTuR$MGXRQ1qH-IFkKUiZh&?d020irTG)-L#
zAVqdrkU)NoCdU^mHHmEGn4~4r)q7}`26&hOQ~CEp^p(yjcTO50UES4ZMBErR-9Cf3
z$Ksj+k~~s^5#AVg?cVJq`wt!RY9gnhu<7U5hJ>j{<g?1K46lB(W;HAgz&_kv**`Z~
z?XH!iK=)Ralc7P`QyY<(`rPHjBKDAf$MWbE^f{lDwJ_Z1zp8cSsPJ!6t?e+{$!$ei
z6aE2-M`*y}0VThhm*0A3Q!dXR{4c at v8nuO0XsU@8N5CLTQ&CaIl$9vG+SySCE=KkD
zBXhRpKOl|l!Kf>kkklFZNU0Fch%(r_cUTl5?6G)$#;G%B(wM`*pTb8c1weLQ>*e?M
zZx+>rwU#Jk+5XdKK1tMN3fKG;jh|@IQ76N;TweEK1lbF0OXiiwylS5e3j_Z}6A<PO
zoC4~9 at Rlv(aruP%v>)|-nX0(0SBp|(QYiM?m!=Oe*`UFLF=wQu%eXZ at OP2Key7A}G
zC;n>dXKGk|n$}{IC#ejniYf#NjH&3yEGXbgAhh%dAA->KD7}sJ^MrPOf7NV{&l*Sg
zuU-|L^Y(~=hb#V}WyiKG6D3Mgles}cT6Z1PNx`&ec!#_la($p}bJA?^hgId}&i3|?
zPSdKCd9v_*X(=j~j5kPGB!f*y;tgXHlx7!;!}1N_2TU&=CHX6S{(QJM`U79dN||$@
zFt47Wr{&;94-<(N34a2$N5lk|>v*t??YgMy{xYSN=ri|oFBHHQI*$FrzLXlU=R>r#
z6i!xfZT!|q+u;`$UT-<$)wB~AM^G8^*T)b>_dWmtz{j)B^LrHv=Z|m!W^!$hY7`81
z^4(iZ&CtPSS5m>bN%k+*GjEI(J>3L!L}y*A+mdU8xC%hxVPEn`5|?+4R%eOi^A8h>
z<}J<6$q}$0WP;FGk at GNz`q`%)9%Y?xs&=y5;veRma0>j<Xa|K1w+#pJ_H@@0-nN*$
zgcm%Wr~rg<{(N%DWE2`qmxZkBk+Ec%S5fSUg1qX|PycN9UHR%N5Y~&bJ)oDmFT|K9
zf;y`i&TBeOW?_iq*bld)45$4Zu39+wI$W&DmW_dH`A?kw5i7#lcI at fo?EJhoM=S;j
z>EAYD+yun<S1t<aOpc)T3*puRSKWOqkm`31!H&;+ry&)TKXOFhzQ>D0iB5HOXF-LD
zt|V!xySL?8)Z;sdA9vEcWh(U<0)$2K)vF7r0T_N}C%3y1+;?v8U|wJ6>KQbMUwCc_
z5-o30L9CxKYYY;dE%a4<FQufkYn&8;jIey#W))@hii5O&1cWRy>@hW4`=R>TUwhn%
zIq6gDUNsrYFs~M2Zn!Xe{7ag+82kY>LN#^u&PGH{zA at 2xuZJU}#`D#C$DTfIYh#1<
zO+jYnsp5a)Vq%n-!*=`N;$EJuO*3u($%O<73LVBSKQSFj0iaxv>eKG`+JkmVOG!oU
zyY<UC+ptGQ>5sJ8E0RtWXT6%<sU2b}$<7POFlrxD1}4bX{W%N7N~|s$|5OM>1jV at R
zhiaGC1czLIYrb<x- at c2<CrNnv`(h`x;JZ+^;F*TeiqOH6njn_M(^JGyp74H*GQk3{
zAe-LZRbnNJ2al%KAQ-kwR;+l{p$tLLJ`z*o at v|yHBRB<l)V>})64Qd}?~R3sPQWFa
zwUC7cP=#v6-C(>F%BK>4e=NB0feZnJYwQ<F>FlCO2bnFYWqtNFQD1F3q#Y`diZJM)
z>tL!VSqqplKcAfGAamk>gh&ljKtFKyY<Lo$WV1#lfLHuSb2~<s*b3%DBDpd;4Wo%?
zDZsT;p&mhf&Q})Dmxlp_KRI9D7Fq at s2=H7e;?NL`kAAMMCV*+B615qITDKu9lOIux
zCTGL6NvS~jxwPr`Xz!wj57(0YG5#fEmN<t5#cwf_Q|$z!(ZeG}Tfg&bL=r4#&%Sr}
zZt1w-qerK|dWTrakAWs_dO##cePGa{{*tXaY^oo7plTqKL~^U*TUK7KIXCep`A<>N
z)#3-qU<PmBzrS<yrmw&MRcewXc<kFl5Tp*|4Df}2WcJ8xA5%2w(y)2)`0?;QeXix@
z1tuTz4IsS41FS at p749NN0|zUFJz$g=$N8C-b?)ywZM+R;f)$E5bZCl5%Y<+#O3zHn
z>#@lnmq3uqTr6mfs~`q)Jh8w=cEU?@j3>qhhL7;g`aJ53;>Hcq-yYt8n+`$^zS{7e
zYH6)re_x?s4O|V$ur?i at JV&^vf%|Hj1j_B>p~_O(L{p|3C<j;HK*fR9cQMQqmQnk$
zV_wMJ`tbDT_4RY4B2;b-d%!y^Zj6JMgZ8S5`!B-E!h(YQO7^;OME^q(5n@<SWMri1
zh-L?-{w6qbUK^8;U}tTu<~8x&n@*E|lvf~M)3EL!?vl{jWmYK{f*;rJ<!kJ7&?Bv{
zH`B>sRgBHe8NzM#rcy;$H{|LCSZ>Y}2Xvj%E0_hL!gRucEYtVsThw8eJ33Bkzv=tS
z4H-|>6c2|Fsq at I2)VE(h=Tp>nL#vMXZ3!PL;{>njS%rL9-6UGb!}gA)o#QGjPhM-g
zqN at Pa0P=e_sq`M at Y8;mOW2roJbn^#F>_&Q3+o`#-t+}d^31;wS)nrAVUgImqwA@!Y
z?O5ggkZ`><eSg1DopvY;Ql<M6s>jO8FA*+mXdxn=z}O{cIxO1YRkS0+P1hiKv!_Y7
zdsE57(n%-iUeh%q-XoikQkxA;i~4+nJ*?(C1qC)L%R_=UP2J>}O|ZT%>TAFEB)qyg
zrv%w?z7wqdw|2%4xr+1rB`?m920c9A0{0_V6+0tGv2*9^)5nPu!pn``N`_<9aaWrF
z&)#dPvUN{$Uw$3jC@(iRKz69hGi_(T{$20(4hGf%r5mNmT=pF>UgqpV+A=RI9PSbO
zB;)DhLH!*J4OZx?_iG#DCN1OD4?)-RJJGSRgGwDV9`OPN3Ygz%(1LB(2RkfW7(gS)
zGWAW%#%gO@{E!Ow?KNJZdA;_iI$$52N=iO{oHu*+0DCcWI8WWm_-2&MjTJjiMd^)Q
zWxQx~_g;nL#zgH>bwGNa`<VDDgDvTIcOGJm*Jv6GwP74n!0>F-bO21LzWaNRLKrdW
z=<C&boFTajdW~{G+qSd<nD*bAm$SBeoW_8*n{pI;^@2V->8JIC3ERR4S2*O|F&R4d
z9a<r^UC;^+T5KY>_(NE!YYNMl^pT=JP1tQ*>Pxe_qz+97k)V30u`EDD-*249!6DZj
z-KOo;&Pm>?zNp-qJW2%3AbjfkJ93$xJ62<=xp|jFEfmj;Oo;v&RHe4;P@;dY7N$yB
zraJ0h(00i01ig59->%e{kGGj<maYB5f5&*6k}s3wPo5|~_xs_5)b8_dmA`#E!1D9)
z<9$aj-+iMPYQ}=FzOMNRS<@{i{q3_A|9IxqsXo3g#0nIBk1M=Ckh-~XZ2F0yHa{PO
ze084RZlWs;e^Es7g)oDHbq~zH<#Ww1Teod%GQ=n`$;B*$8-%TBM|vXDx#su=$Fu9E
zxau9s&9xZ4bu;kr`SWYdpDv`N0e|fZ4g9lbe-&M|XBTccHNK^fZ&Z=G$$TTDmh&fH
zyMKT0xJn~;s1^0)AC42MK13nv$I_v;Z!0Ryq|}EDc|W9QpK-bUeC8E5UVCSEStSZa
zV(wpV{)yVwE)#qQHcma)Kk8SN{JVeta&U3!2{X|$P^ABe4Ef6T+BbP~y43W*pTkZ2
zsGkTc^K|zOpf&091J%EMZxjP-JygF;q4eGFPsit2E?v0LPzu9C4!%FTBSBEp)1|QA
zXq$;noIXdU$B5lWOhyrE)ALu|hRI#!+hyhD`=9<F?VWj4jeGz1Hx4J^*vL>EWNgqV
zQ^~L;8l?e6N at -ApM8<O1k%~+yLn#tT84 at aqOsRxODajNfB~pge^SbJsXWjQ&zxAx&
z{rvuV)_V3 at _gd$iyLNkD*Z2B<KcDyXd2Vp~hgK?wCmftuf`Ys1^=o{PkK8wds;@&#
zgboovU%<ipOzbY2<ZW3a7rSG0V%^0J$rl^l3*8QHFdQIrNq<^0n-Ii`N at IQF_P$AN
zRlD-NFTZ%}BpCQCC!@B*QwKO4^CH9fH|Mimx<xgPxw(61b-Go=;r>!F#Wmi1t;Zi2
zMe-QTv7;jJAIYuVu0&_md3Kjr8fr~7G%RS7!?Awz*)}kJ`|f<%kATOPoy_Zr6xhqa
z!A9jysZ;mdrNYjdv5!`&R3MISl$3B%S88`QH~75F6csy!!a*_Px{+h=4G+KVU&%t@
zm>8j<QB+V6v~AmRU*Fz((?u4JplImQq&orfb};wpawH+ebstM-o0tSgCH8!_u}wRJ
zk|_Tg%lM}i(}IMrE9{Q;2}1`C+~^;!zTmz|={tjt3(k~o*%+dfHzO3ZC3u6ygI-}`
ziQ8QnqXj=kbyO7Yto~qt{UMjv2E>i;sMwf(_f95|-w-Oe7fU{sBtf(zND31R17H<b
zd>1m!;1*;QIdtS|>ViYE?`WmMr_jVK8%x5$A;wh at U)e(<gxS7-|Kr8=-w7b3q##fb
zy;?T9;&<(u_IuQlQGDjaiRo<&KfRnBD*9}QoB%b9bSK3Q7xlD#dOZi!xf3!=0$<LI
zJ=`A;q*HhyQ at ymb6s3)TgO;66lvym$6YZRU7XfFN%zhHQr4JQ;hb#id0`12!E2MN~
z^)_X9VPG>R2wsQ<b903ZEizfzEQq>_J$<^o*`L9&hP!1BqFz*KezsV4AlF)5eTVtJ
z7}c9H77h+Gj^C;KP_z`YR>*Hka%;v8`%VgV(y?PHsIrm0Gfs!1G07qG3KTT|fCH3V
z<~>8ki`;t!M{e>dyR>}sgy-dpCF5Dlb&sPyir4<Oa|V}19ZDaq1B3?1IUWcXclWW5
zSGlzv_;dG|$P7e`Kjzt`X^X2aD9S#R8xx%9dwlvteWZIsl at VUw=VvZo9<Ls5vNY*;
ziRI3AG74+IyrHJ;qA0+&<OJ_qwiMz}x-%|(?nTBE!A+>u#ZBBk|0GJlb%UkC^tP<4
zB^_x@!MF%>V0f`VgqP2*Py0|5?@n5q!cLy*A^Svs*uj7ExmS*zKVwD>rv(v^yER9P
z+zqbj22f at E<F`kbl_&`nd8;zV at 6H`%ka`Gh=}xQzytYh>r&xpkBg37UCP1o#Z%xjc
z)%S>_+48|bzi=WHd{)2PYvPJGl%aPybcMW##1kd$hPcQHvga0W`yzX<+vUea6k8<o
zk)GM;Hn!gm&J^DE>{&s0gY5?Tt^u-Lke<1^_L7sEK6G>dZeEJ81(fPSYT}}iTs^mE
z%tilH(|+LaV%=fwBlOp;BGZu?z0#ivikoZ4Z1hoHc-&&%Jkuc)ZkFZ8OcSkngY|*P
zL2GLt>=S4R$ymcccECtciiF4&NWslbaA1kGfhqAAfqu(m`oAd^2P_WyF88xci)EQW
zYrDHDhN7_U8k_0Pz1=$Q)|L%?rW7T1f~Z at tKrw8?D)Qz&bznP!8+#F&M6ur&Zi at JP
z<evM2&=GUHnxR^?Gb%2$Z4CoAMt{pd1o8<9J~&u50u8Oe?sf0eN9n~=yLjh{2)Qb1
zFyw{Ln|<L&>D-~TyWegvk}7!}pH%bmsij`$tVukU_aGEXOAq=leMKdKp+ZPLU`OVK
z!=`UFIio_5ElI052_^G`Z!hb6<b;{lvErH?YiK+GbU+WBYW~XX-ot)$U+LD^khTo8
zx0yMU%`y4Hg(fCC_c?JkI(lRIFuL4vN=ojik`nh3-MV7s%DcI_Q<96Z8}6hW)wSJ{
zr0`HC^!8EJ=7TuSdr#OqfJ$nUaIEt`shHA^QkZ5CVVW0A08J0_4cNwwqi6i37trc^
zM?)|DIH^RlPUij_I&nr7oOsa~kHH6l`5{7jIQvypau~;pj1t<V&|d4w7NuoYrgFc^
z&Q@^2b`Nnu9^b;|@EP~axA?fJU!rcCf~*(I-jx(_gQ)B}Ke|L;QZmes8Dt>lz2nS&
z+jSq?!cOc at uDyrj1MZih_znT1+ScIhTK=Z8XRzYwHeEP#hEVW%#22zfGIoB>%$YCV
zyy?}u_ieA$BH2lQ>9t>5ufa2V@?_A*IVCD}GSMQWaDMn$SafL}rqOyQzs)<~bgs+H
z=W!8AKhm8$-8~t&HMfEdsk?- at nqf;<)K?%Y3%XNS7$z3DutSGNd`J`8o1(kSc_<Om
zs6M<eNrc;xWYarRu9wvn5{S7)?8MyHSFf)7EX)E?lN-nZ<F}i#gVU*QZIOUVWvoqs
z-lfClD#D8m3GUYR{K}v*<vP?>VmOr0JKDQhPeGF%9GW at qaBWF<@?3rnkLtGZ>}Z3t
z2c2&E`Hlz*4nErHY_QO~0SXM1B3LjPbz&8D+|3)!+63(1NlT&;y#G7&+ at 1uzCZ!0@
zi2u^eP3yPnrDvBtw-+X(o};}ZTWYQ(kiAAA3p;oIcAANI_L+W2?@wR2unG|YAeh_G
z>7w at 0#gSRSBbA%E0?B=i4pK(GHfF3L2o9a~4W)z at CUTk#yBGiNv2xw567fy1pq at X=
z&c36lkBRq~nE}fO0V5St2&_pjpMG%T<~ds9^z;~X5H9wnG~|x$fBcmoJ4qlNKMny?
z)wWFw_rvJwtdBC^qot$6I*9S{d|kU5m at b1G0cJV$X-~e6)jV}y;#TN0q+-~0j+#*!
zsozK$0a04u?mh>)3IZRSlUBbW8=Wkw%&$FoFmu|pt>SZdme>PfogT&(Do0NfrGDlV
z6()F6v%c(kSZ7i9t=BnP at wg>=<<04Pq}c4NQ)c=sqvh+LJt9J9+R~01yLr6s7oHXx
zNiQ$;uP5aCvz&~GIf!be+GMj^>*8|E^ur*jyQgRH*}Zot6g1yjtfpf*Zgqukk4oS0
zun-uF?o>vRO`LR!aHo|*$SIH at QS0cG>5qx%9GIsZy-#zE>1fN at vxT{~ASm4>1R`!=
zx8l$qlkNgwk6seo910&anyox{&d%NU3kr^OeW(AYsQBjE;{zWql|o>mHByXiWs`PS
zon#W0rY2)ZXBx-cIV7jozD`Cvz<jcGo$(Pqt#|4?tsuf6aEwX<IYAQoj(oi3%rm*%
zy-t~W*JAZ1EDe0qD|KGd#fulG_qgr%>+5XYqi3jcUz(k7!@0EY`0=-FgdG*>?c*Na
zxv>xD$Mb{ZX#6DE+(Ez;gOVj^(oijEy7k<s!FVFEAnxYgx0JtlDezZ~xEUlo*34x>
z#k;o|6!Ql$YzQ)j)K8Gt8`k$^E4_>VN=6Z>U9{?0+2Uu99_eUl?MfQY)J<c>qL0qK
z?Ok??z3D+$4Q?~g`@VAakG^Mtzt`%OQfo)j+FXvLxON84;RK9MOl#b;_BfsPs{6`;
zL2=eRh?TbLGix=DEnl^&m+Ly$67l1MPWvsZe1~rwaqI1R=t~Y<=}s^{_IQMtX@!F@
zk~l#5g@^Z6G%z#!NbLbaw|iQ_9~7C{08&$@b?2}Uin5g}Q%<bQ&dnw7icm9o{k1+O
zrJvq*!BR0NyUaWFDP&$~-!bNwbA3xka%nh%=&f1l4{W*v6(q#OC??unn&-thJn(jR
zXSLB7On?<su+g9)=q8CXk5oVaG0|UXl3;S`-W_bGqhjma^UWtFYa=Ah<e8H0<c<fe
zRox>Xv06qwCy5^GwYT*jO!9Qo&+_JikwG|BE|Y+Jq8lKzFQ5*NPU%j1(|M0x=Ixm&
zTrWee*Ah~+j^vjzd#3=<OhyqMFb8Uu+=93+3o?}VDYLVw?JE0rXsO`U3D+1dg$c-`
z&q5bcr|J2ao{i5}Sr|z<#FNm;zE0uBwRYdp=*^J9I2-ahJtr?Ow&B at eDV}}+yiT at f
zqN5%0v^3V{0Iu1UoJ&gbA_T9ciJ?xqm<Hy*uxVUBkZpea$2aQ!tSbp`u&EdPLLWE%
z+<;n`*R5i0rjT`b{{sa`r5<Ujg3MFVfc@~u5lN8Er-^xSf_eFSzRLzvOYSYXek00O
zQ>O8 at gKpZ|*@4%X1poZ`b4BXBT|r|!At|I{RJM0~3uXMH9{sCXT2~2jW?!+5$=Qre
z`|h{b_y^<HTJuh>&o at IsieIiNEO~tTS&xttIWJv0!vr^lKZyfbdv#ZT8mK0OIpx)_
zZ*Kajp|%=6Y?tilLFwjg^f!%I`&<8n$hIRt_MBRi>B+YA!tY)AChuj-zR@)Yj93kb
zOED}7+_J?GQ_J+QoU|^xw#Hpjp8DQBqPbErJuc!x9~LT*Y;Fa(;a~pt5pi+CxHaa>
zt>y7RIRZ?JD3_8rIPOtAOQHPI at +q+jwlzgc0?Kc2rE}MkUY$AxgUTSe60-jF^h)V)
zZ{DmRz=Gr-M^^1Yuft(s0+a^mCk#ky?Bq%Jk=y)6=h*+91Naa9;a{*dv*-fEM at S&7
zsxm!T;+g at C$))e&R^3hVZOzk(&5eMQCRg2X9x at PmJi`Xtl<J_bL2Ni+{OW<vjh$N!
z!icViM9&97xnq at 0tA!(r(xn+mN9CHE;DVi2q|I2}Hg1J5tt=~Y<T6vio<^HY$?fxI
z73-R@)0N)YQZYp<0~%e2_oAH|rlJD&>Q<M at X^+x|(ukcB1=vLrI3QB>e-)ql_U#*2
zO?IrB(b9eU!8o6f#oWGP*)p-Wtd21GVi^ZLN-_?{*yG2SGMc8cfSiJrWJt)%%hO|_
zmC3(*_t-tkeAzYLT}#x5m1 at 1w3y5P?{q}#fi?`4ESG)Mb@|{v~yLOuc17+6!GEe5&
zL`4ff;92loT at 788{*uG3bF~jHNuY%!%;??w)W#j3+2iWEAV at 5`etk+rn1;e`dtpxi
zeVcrI;9rOX$jt<GSdT=I@|wNM>>}4;95cyTMAS;AGDK|=myy+VgtF~L#k?^$WuHFK
zY<zfhsP><Szbqenh$Knml^d>YY7gK=NrTvIO!MAlgDE_C&<RVP%l>9pmOSsPr}x&3
z_2To>- at 8R&xhH`9(TQzERMFnvBx66J{t;%P(N}-DH>>u^lP6#qvQ|?~O*>E2h)znH
z;C_E#3-MY`N<M55R#KhIHpwkUwC2+pdZEE-=8a>U<o_6VquuhcrfpotTWIaPKW|hI
zlgptu^gJ%k`f}mv*WyQcIe(P;Y<TUOuxnasrR%fU=nuP$j}7wZAHQ+nAKvk+V+Q6m
zHhp_s)i`#`IL9j^Kdo&V<@a{QhRl$WUpCx(`{h?t1>KfiMzr<e<m4|P*{UCMLzWJA
z0R at 8#=)0y4KaN_J`E7<5 at pxtXb-C~F2AYQ%E~;Y5z6Z3fvc3zb`wI*FwqF^R&^S63
z;y_l_*f&MT5k5I=rQMU;VKB*-ruwlMi+;S-<eA>i+%nSc5U0|STC3Q64}L+LcKLIT
zDq6(2`eUK{wP!hg*BJNMe?an^t&)IKUnV-yJ{N4a_Mz=YzAI252pCZg2&9EeuVRMe
zV3B=KUAkp1bxH7xi8s<~uFPF<6X>l^QZcMTj~%aSJnE+WHRHGIdEX4~=QPAPhK_WJ
zwH1aQglykl=zooIw1U7*=t&sB3-Lz9T!h{z%=p;hmwYf`o^w at _XSKe8)7^_N?HVUL
zS6Fpz=kYFaj(=PTKEFG(ya?|x%j7f^vx)Noqx5|9zs+C#afO+u$w(I&m&G%?M7{>$
zoS>_lmKPo+%e!tz+W%+`S!?^T;}qN|$|3#B9lYa5O>#wfFXaF8SHEcAZpCI{1N&T_
z7xMPa8`5<&U%l<0Q1~7NR-YA5JJYqnA1+(8DBfsViZ)Nso&#Zi&he{&id7EVTwL_<
zR(55I;mMey*K8ig%Jo%no*t*7x1K{_dnAQum<`gUo3kA@*w`MYT4j!C`q86DmuqY_
zW*4eSeH$g1FywEK95bfjwEr*9u!nK at 3D`oe06_t~?tfq+FBNWCcn8~Ow@=l_Sjc~9
z47~)+jl!B?h7J`E2!dmtf)y~N)?L3(*M6_4d3fp}=XTDUAjq(bRLNmBgm2<zN|jGv
z6wtN(gl;*>uX{{ZeYkZKDZ~XI7en5XsU92 at gb{B+-c92$;|d0SFZ|xsc~o8hBhD%R
zc1td0Sr{It=48U&fn%5O+jE{!%Itp-oVX!r(GumoGu>0{k{uSDP=xG}*L1u(^4 at r1
z@{7mPM!*spES#?pAvr|F=jN{P at gegSP#K6rK#QQ;-Q7<-SsD*g$-gphkewl at t`v3p
zVe;lzul@#*#1oP<!0!5D5IRAQhx`bGOm5>XOM74e%1uGn3OWLXJD$1D>@~O6FVeIz
z%N+KB2Jw)feF5QN{}Bx1q?3{&L-mW!oD4FI76>R at zik;jEdD`*>U6 at dv75oV>*wc(
z{hD%3w|THoIl&dP(F1jGzVjkX4iq%rk5f^vtY??1y(=fkeKR<*YF3lQnKwTRS*?i4
z2+DtPbFeF^cGr-!#`-40a8Wn4_`S+W>+<(+Mx{*0kM+a))yvugeqDF{O1xxPSe>DI
zbl9^XAtr-pT3lVA7Vi~~+n<T7nJv}65V)sbAA${rly&;VpyB!F-FH2`J~{H%&#<1w
z`QaTznx|F~@f;~p8vL_C)z3{-73vd^Me{r>_2r*PTSSh at 3`x@?0c<}ljI3hZjKj~U
zqEok`rWA=ZnGx#f7OVPm?dsLSP-^c`oTmKF1d06BC?2*Zc7h%f(@5RI++36D7sCH1
z%3}yk at gDYFmH`fo%*G0he}1hSzvhLBi`9Eq5(xIr$b-NC(is{4(il|ZM;^E{LxBQT
ztzk~f`|TrAd2yg!qVVMK@|?;uI#8;F$g*?iy%%VxL9<3`Xw0boOZdoVSQPyrem7Uk
z4IVvumJBKDR!vod!9D>%s%sznnR|B?U2PV|$qXB&pnkMv+50q)hwk8HNAY5HeTwit
zjsn8wOY+_4(yueLh5!<KGO~rNQJY&fzRY_ZE%3 at 5`j~^%)zn7CT|Ro$nNk$(rCC=&
zkv2(96Mh%HFkpp8irw|0HYzsQR#zI at gbTlY1EV3pkT9-&-9Ua^<e^BdPXm;rFWcC)
z=x_h<&NdA86kZ!UbCX(L|LHXMWxLmjPCP=KLrJ6Bpd`8~3|-CEm!=7GMo^%8hqe`U
zPUXl6TbGyb9vjt7BpNVZ&;sPY=`>O_a!&KFliDmYf?EXBx$x7DJ<#4LH;6 at 7-#jI(
zP9slLr4SRMCfl*2kS_STe|u3MAn6&^ijQ1j{#TQg_4KGn<UDFg$s^f}^X?BeY2;}R
z)Y1}^=Tr)0M6fz8<m%SU-lBZoF7c^z%h!x9Y5dA|NM!%BHE$!qk8<>TT@|ah+JZ#`
z+cER0<t5L=yOvk>M#ex2uSp#kXw~x4{@+8e{^ytR|GyQN^uKx8g(cVWia3g!lZ^${
zh|7g$I5<fldki+1j65rr9%To^=VmDkaul~N^Q-DiPymSi$f=d(Cdd at 1ezg07C7TUu
zS9%RmAg_%X3P at m$DunsZQwF!mi at xuX;vI_Cm)8m;^Y?DweoL)#ORk>m>E*AsU@|ZZ
zmDTJ%vh at L~KS>NWdxXxpPjp1n7dl$~{ba4m`_|JmE@@?34~1MNGV at vmIhtKmbP)&S
zGA)cucqZsRKZM9?cKG|vR^^fF$I)if3vE{CZJif)`TL7pkxy3NmSS>d@(72v!dn%O
z*>3odu?YzIa%8FFN%5E(V=-ri^`tNy1Hw<7SxQeq^U*<;_~9sn4x<BG*Rx|o=hNm2
zxFQM-+x7{qFcE%sV at WiJIwfDlMFPzT7|r?ds?Et8rY+CJq$Mc6Psm<evCW}aNL>+L
z9-HB1m{fBm&oDr;9BiNC#&*kZeQy2pD`J4x?%ge2ojL!E7PcG-!tbRRd=E1|Wxq+y
z`8$RT1nT=PVUQyUt$KXXojZ)tV#Y?Uo=UWKUh9VSs5|3Ig%FNk$^5Y)+Gku^pT&(O
zQ~WaufP5DA>u51_A7f~Fd4%Ft!7722f=!$bpW`=Me^9jLKX2Bb$t8e=l0abUJ=s at p
zv2V8gUe87Cdw7OB{+x5ACD!1C4JQMxxkETvU%ni~sWGMXmRfJ7r9camtuOn042uZ=
z<5spJKca98pr$^Tc5GP^*6kQ)c=)h}usQZ(9tm=az2(&lf5ixY>_lSQcI_e$jm;Hp
zEQgqIAkY4s+nRLY4_hq3`ynS54-|fJmLP=G(K&z4E%j&1rTQOi+5hkDHP44M2p3EA
zycx6SGh84*(yFRr42|UC+*O>siXDJz4jJZScby-l6vm~|liQ^l+WbyPGkK|lIlld!
z;ku!MREu_Up0pf$rP_!o=@=E1H2oS^OZKO^a)|Y8dO$RbM9J9<1eGws)%&*(HVhfK
zSF3C5V_Uorrjg=|yI#Bxpp9(D)M;(BD7)x6a`l5sHn%)j8<(shF$hymu&O{JHM|=b
zO6diB##_!=JM<J2X{x&w&SWO;C1lpkLlZjv{q}>HWcaynPuYO4)7qB4cwJXI?iBU>
z<-zf}a<T!{nZuihs{Q>WibVhE>2ztRFvU;Q7;1Qwp4xzd16UHCmx>d^F}V<>DV}3c
z9E2IW6qR*UL}){JDq|du%u2w-$5G0F`#xf^7}x#N75AR}OpK#9z$Fz%b_L`WDO)FI
z4ko{h<^Y+{?;SeKnyo<#fjErpK46E|f}CEVzP1*5VJ^sdIoWpa-xHD-CdhNSJ|~%^
zW~U~#h_|M>Q3+ESG$`xdz0+&cO-xP4^O?Z}cr9Ok7GHQ~ra#X#u(r>|A*T&zO^Ddi
zvsW*Atxzaja;N>c;XsU*uiD)gHpz`QW39p&D53E27=*4Qklwz?;1w*PEkY3n04!@;
z$WtqHGyC?H*!cnk2{P1!&HgY4KU_$JA~4#q-P=MnyYq7>Ga#==l&2rKz+kgQd3 at v&
zOA8B4mmE1t(wzG0{ccetA|DwV>7jD~CKF4U!nZx+5F=DQS%Dg+SG6M-B;3J|Slrdu
zZFiFkL%W6K*m;33gHkwOU}HPf=NA?6`BDLlf271V?`9oprlcR35W#<dulU-~uylSt
zC16fCsXmcf&V~qRzW)Bay7~$fJ9K`8mMD^jr;{RmdcZwqp7J`;p}v2P&>&M#H?Pmj
z%}t=g66{RI$4<h<H(6mGg(5f~U+sD?%D(B)V`d$%g=rH~!ej#^%}>Ax0;Ez>y29fT
z&7|@5P3rSybEMjEc>sP7KW^eg#G$>mzN)gO=5%He<^y<(F{f{%3={_NPMn2foWwrm
z0V at Gj&}A2f>_Bo-j;dMPe*{Il8O;nLgV&Xn at tOAV)_%-Ke)BQhtA<>My3)nWWh4xM
z29JLwtKoQQbwvf^8b;es{UVW9?U%>Z4x6}fH**8ug+FrFp+saZNy4f1JlZRt9F}k0
zx*v`G*~JCv%y<O7WgX|ZyT1bh%steGy9EWB`StPKv~6nY>gx2JDUsEP6q+8-UAq03
zJ+l_R>F=GHP>3o#tv`qXy}~jo5OUz+tJz5e3!u|Y*<W8?Q+nIvHU=vk8IXg2Pj_tN
zs*FdVHIQ_3{JnOaA2?K7+fwB at u=B0FV0JSs1jcG(_4H<tWW(PbHOi(4I`#ot(Tj_p
z2s*ejE&5nu+_h3p0|30YBlD>b0#R@(0q=sf_~j&U^E|x5^KewiJ2Cxe@)^4LeZBcH
zOErfp<JHv6GOr^2=AiEX=bwqeLG#yr9JQ$Yu8hm66`DNA%}ouN0*laa*ooA!iYfbX
z4%IVwp~!@`7*GVn!rH<@+`D(tS?6hs)&Vrq(TCL74`|s<H!8Rtk1+*Gp at EM5qD~u0
z2$qMALc0o{qI3qamj%q8K>A{7l^48#Wp6Mw;H0pV>=Jm7%O at p*CjtGvd!sBU!FV`_
zRYmozl<cQ#GBNrK^UAz=hyGG2_xqWM6+xVZu4VY}+uyDTni9Q51Go>c0-eJr`n<Cs
zI>P!2>nhH55^JizmeUO+NTj8l>XhGEPywL5h at IHLMK^nIl29moD}|H6!MOy6bZ+>@
zmh_=lKQp3DJ=ZEZS8R?K)EX|5{Xk3a)a8#_#sjM5TBp*SAs{%`mL5!tsN$B&XjH!W
zl>Njo8oAA5%eduW;=+?&@S|IRWaf*n$_s1EWnCCyD#Yi+-xf02sU;)Qz<CPH#1VSF
zNxL?m*S1$0T>JH_nYnq=xyRhv*w1jual8KHLYW=d!bC>9rq~Q^h3&3S&be4R at FA5)
z*2b26e3CrPxY{)@Vu9sNq6>|3p6 at lTKxrKkFU(FwG&en6Q0MQF$gk<@y5GVT at +Hm1
z79LEA_>EJ-v=_kw at I|+<b%!|9c3o!|p$CrKt^fV?9>Wg3bh(W6pFW8t)KRm)duD!3
z=e;7yC)|@}l~BmX*yR)r;2dFHq+2&dp27EUO7gZd?Gl8NjKavqcI?QJR%us4B{9W>
zal~&vG-hd(PL?n{+Um%NhN|Ry#tRPD+OX3-JZYn<XaEXkcAx`%`^mYZhq~zAl4_qD
zU}~?F3{uYunI1|A>D?=NJ9l;7s{Kbx`TIU9D@#(TLuu~D*>CxJ!R6tH*L$-YGJA`y
zi#NXTIPwbU2MJ>btdH3yyTUuCiY45AyYtzxX|o>FDl?t6Od757wWgfW?G_fx5JIVR
z%4EnhLlVT2%kU_4)7mQ+r`drWm2YT>j4w1B6krCD0Not5%jOxw1Y1VU at TdsF(De>f
z+(N*#PiFn at -Q5R!KFPl(h!yy;;Zl+p_0ZFpXk;uj^6Uiy!Paci``4=h%>*)am#k;3
zP({t8g(1S-D>_(A$%EFw-Kwk-py3qzG#azGRb#wgXOluXQ)W4U6kCZ^!rZ$Y2fDu1
zi`TEQUr=^=TMkmCS}2uX5<vww#_akK*#IXlZ^7YpP~vupk3$SYUVr$YDpgWbgJ&2M
zx1J0Qv;+ZSekgdyj?pRUR5kwCUvGt9jNiQGW63B*19nS*1Ws0`ReFV+TB at B%_RO=@
zRWx9eRr?;fp3KOC&)a#zO09i$;j)V|Q$vh=+{y}0$(KI5vSHnxoDbd4ZrarL`p{#!
z4Kj-J*HrZUa%-4$8CWP88seAakO&O-laJQvY^uh!+jZP-bVmHSEih2?+?m8bg+ZK6
zSU6^kuayqnZr!Q%`CFOK77$yg3K*M~u6!_t5lon!#1f_?m0q3EFss_!0RZi8b$)57
z9>QOl<(NB@`<`_G%IhuBSzK)4Yd`nP^d38;;^tp9{s{}_6dD+J1XZhkX6V`nT5;FV
zCGQ<EX6UM`o2R*iRsDUGj1vYZ_V28qlbsb8+v|}>%3q#)=cMXw*muY~xV-mI5F2+L
z1(TAqdK~P0F$ry<A(Vk_fi<S&W7k(>=(YL)+U!N&L_^_^2<GsbH~VR!Nd7}6d7dMd
z2bE-zr9fmHd7=Hrd6TBP$8MkNf$6i0wGLK$XKs0teeDtE)#&OgHRqDUmJ3Jy#zH_>
zMJd1$weg6>#=hHZQ|!v(%=*rKXMWhIXm0$O9|T&kn-T(XV9Zi4Bdhuf{sWY)B#<2k
z0oc8)$M|>D{QTwnC}Z$q)Ewh8r+rtRiO$k;vm_9e(a2k0*a*RVWE4v-Eb%m48Hp}N
zNiIlb_>wz*noF2*FMJYR;IL^jG1e+-wx&bCXLt2S at mM<DSC=-OVZP^L^(Ic7Sb2?`
z{oYz>1!BBPioeNWvkz;fm|aH~IToWRt^NB8N^-KCEIi4);B3G*pCXDu-yqaUgdn)O
z#>Ef5lbyYDw_I87o$;V&Y)|ptnG459TnKGls*zv5)jBImDa|X)DiwB>oDZn>!IsPD
zQl~uWfgBnw!?n>&`t!Qcf7GG^gSBG(^E}cXi-i5hW}i^80n at 3cuC9OLCWIuyeUX4X
zYt~SxTzclwqaT0kJGFPuo<?0qINWs3OR!7Yyr}m-Yo*|~zp!lQ9^CDEEwH at CXmO{q
zN=lu*Lu2wd)um!~46tg~F-}773YH8wjj&0{zDJQPZk3hWOgY?psn7eibz);ojvYS=
z at qaHnTXVwRT}kC5M);X|q?GWRD#3TWH9xlR{iD6Gt-PJS&5&Ax$5CyuickcY2 at 7EF
z$%tu38A7+gPNw#e)eI7~50vfDw^Wj|^zPQX_iWheNb}*Q5fm!eqB(>^wYG(<Q5e1W
z9g=S;PLzwWk(70PS1emNE~5VLT_Eyd;@mNn*PxM?F0iuf#GRG><Btows_R%&Mn!W*
zT}KkcVXq<W!`R3*YQ>`}^9^7o$yAy3t{Q%$z-ArclJ!JUJofP|KpU))j_1sAp^@qU
zQ#}c@$AJj)g+S2r{oR0g_no(5vQFe<!>Lo{FJ0Oami|xxRLO(h|DZ?!f;N1$QIyh@
zAePK?zxJ&1$O($uIWaAJN>{2j=kM)f5{CRT!_i9R at 49L*a at vvSV#B(|{i)cxBfn+4
z4N(|nEVCS58&oHvEFbc}neemPpUO$weP-W+m_~o&;o(4`9d2I46^pivH%&~Mkx&?S
z>{#UZH3boRhEI0DFPZp;>>vl*%q+38IyPVto*>}KQDx!cL3kRG_$3tLfl7aqLX-ta
zfZM_a|MI2P4=}jWr(HPmql`0W?uYbZ#Sd2-$$r>p^x_D!mBVK$$w_3k8-6J;(U4y;
zc~&IGtREPQx=WP8jK2&kd3S2=MPb`hQc`N|rzrZ_tCM3VCoqHg$GfAUQZXh4w(2o8
zr(G?5B{D?AjjRqtr)gs~dpwc5f}C3BESf;!oLR?2CS>3HYAX`gYkmY-7oPDnuq<C>
z{*pi_K0=WU6ABMl>x1h;NN|Z*S<Fj0E9YNq?%SQX6Tyk8m^4451hRs$Oc!!gs9)E8
zOeqo^abosDZpJ~M4 at zH7A#9%E|HI19?}}G0Kr``8ph%vp4nEdF%ZpQCzD#YdM&|V3
z)Vx&~VXmhZTg}iPDrJ~ReqNqVd<E(qf*-$91IGPP34?)TVF6_-GJCU}DybM|;=52R
zpLDvrdC|1LpVOHFvXkGPP=Ozxb2WIF<!yyy at t%IeA)mJg_z+}d=XOZnvmQE(wx*Zl
zbwvfMU4 at LftM)s4bnnhndkOK7u+4m7^MFzETJPZEu5&<kxD|KTWach=p%n5ldrH4@
zH&U<YTjl|hCxtY}>seX!PK%-=yb24 at qlPTDJ^G;W%i(6kvN{?u?u91>1^=+^XDC5$
zX{b|8G;rn*llGag{t_K=t-jqy$C4gu+!4{7Q&gjpz<=*~XV2aYP3TpW6zStFfFI~<
zX4_V<s>72?RHc2!cpX}@YRrPH-xQ^^?XwaJ-F3JYMQTALPp^ZPci<MGv#M%M)|pQZ
zHve=i*=3t$yr54vN}u%%m#?Z`S0R%<VEbvi6k`wL#90TeYgxNtDwuZ_Y%3_KjgMKL
zJZ2dW)W2xqO%&VA-pnm4vp>mU?9eX2#Mn5>@5drV>E_MX*<VjC9<QZ!ma5V+mxb{G
zoULvw1xxk|qgdOS5*e5+EL%)wk(KqSfZA;O^kPb7=4%exkg9y$-;>WJ9ZN&Yq?wX5
zH1=msg7rz+!#3__heowT&{imi<&Z7KMdHN$Vt3zNhj*C3o@{tD{!|_YJUa`E`&85P
z<g;h-oTk9)-I`IGefRE$7XiIvJ4Hgb|N4H<KWgl9r#W-x?04d91bDDR*i~(u0jDt+
zUNnBT=&ZRfmW6rAuG_h;UO%SbRUFX#?Y2-VC%t?A{1e;;Hp^HZi(wyUuc14F7wkEq
zr<~m0-MgJUHuG1 at a5cd42Z*UZ3(BrJ`2YIap^F0N?)gO{X?rS{%kv1MP1~8IaS*(*
zy{;fK|0CTpzMuBOz!ybJSYAxZj7|1bG{7!W-c)}Pp|Ie?&=6(-fOa)8c7~+A`xy~T
zYP$$O42`EyJ#@r~D!3|+($iOdyq~)?gL$#ZpMRcX3*pl+vfkwQ7j8C%@=}u3)y=k{
zj6FcCrZ|gWODKNJ`_7X%eh^Tte7FKZqCVzYVt}+wUgMl at qSDf^J!hcX#D at Khdr$k%
ztjm?$=I76!lZO<)(9!WZPX+i?=PFmT0eNs at 93c+=WrxIr;Iyepx=A|Ic0-nS*s+Zn
z*0h@|ea~II{|_r#NYS4&(WLeCP?*y{hafYAu{OEF_(#B|+TK%`Qx=8VAhYSKM%niV
zJ!XvW*1vx>VWwOzmIk0YJ6A2;dqFb0HnhSX*P{{FWXr<3x=6+F3FuxCIK2Y(^4b1@
zLU=811llWsC0z5<=GmSZ6Kr2pI152gYKOFps6i1sdPQG_+e}A!`dPp$2~f3c*Aumm
zeTDs5su6}(oCOO1C1}Z+Lcy!}$&+yuNql99Etg(Bm<OB3HABX>r8Jxp7n=V;!OCT%
zQd5VO(#%pJ(R<-zh%bE4D$@sdRH>@2W_;CaHZWkhW_sOliTnmON|syCEq}UzR3JOF
zxfpeV7O5a$KN1G+5eg8b=E@&0Nn#@K`mj|voSv_*D3#0EyJ$&4tWjFLY0s0Do6#4o
zVXIeZC=uc9AbPjmgWa{XXsr~5MVAo{S7K)+ at I_xfcdQK1potS4C)645ML-y3ryV9<
z-;QQuDa#p}#<eDHW!giBE7tSDmEgy9+AN at 4rc&VYC9mG9vJCUqXRF!#Fg1Xqq33}0
zpZ==TPO#wAP at U_Y!n&iBojvP8X{iurX1L=;tM=;FWn)$n{&9zjP0^pJslaeLJLIMU
z*O2>|lb`>%P-Va-%JYm*S)CNN-^%vGsEFRhpzKHVXF1uaF#7d1<)<A??5 at O~21Z0d
zF)Hr%0lf&}Z1dW+S00fIPmOD1%*c>dGR5Oi#YmUM#CIDqxdWF0{{ZyIo#Qci&jj>-
z{l;UKCK`iAtJKf8Xa3$@z+$(U3eGAK=5-)yU_Kaz=SgXLmwu&@dk1d2etjd&4zfU|
zmavS`xgan=z`)gkWA34#;9-;%v3Kuz04(?h<odke%UM9cvtUPH*gmMRo;*oaXqbK+
zbtL_skTpnoVq!u{>2hqqjlX_z7R^Vm19I(A^Fa1 at tNDN5%vT;}N>+Ns=1T1zE#ERl
ze%<y1!g(VSnA-mlq3qc3N58Q=?Y|e5lVdEa$m*MyOV0R?(9rO8mqpT6>SCjvBghJ3
zHl-hthDUc@=pFWj9+wcWY&|<s_u;9n(c)(wQOcv`Vyq{aa+h%Hcx(8t$MQWz*IQ5d
ztJTys*wJTJ&lG7g+`RQG{HFx?f5E04dfi`muZ<-_#Qh(CG{P!pDnsIb8qr!Qd90v)
zOWg_s*vb`58a3VAe01YxP0=G;9>$(tv$<8OU4`PE*Qxpz8cOuvB<mXoMBFl|_g#ML
Qr0~l|Q_T&MB#xW at 7l9Ket^fc4
diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
index 8f0cf7d5beeed..9ddab6f27d4e2 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
@@ -3747,9 +3747,10 @@ void VPlanTransforms::expandBranchOnTwoConds(VPlan &Plan) {
// Expand BranchOnTwoConds instructions into explicit CFG with
// single-condition branches, by introducing a new branch in VPBB that jumps
- // to a new intermediate block if either condition is true and to the
- // third successor otherwise. The intermediate block jumps to the first or
- // second successor, depending on the first condition.
+ // to the first successor if the first condition is true, and a new
+ // intermediate block otherwise. The intermediate block jumps to the second
+ // successor if the second condition is true, otherwise to the third
+ // successor.
for (VPInstruction *Br : WorkList) {
assert(Br->getNumOperands() == 2 &&
"BranchOnTwoConds must have exactly 2 conditions");
@@ -3768,20 +3769,18 @@ void VPlanTransforms::expandBranchOnTwoConds(VPlan &Plan) {
VPBlockBase *LateExitBB = Successors[1];
VPBlockBase *Header = Successors[2];
- VPBasicBlock *MiddleSplit = Plan.createVPBasicBlock("middle.split");
- MiddleSplit->setParent(LateExitBB->getParent());
+ VPBasicBlock *Cond0BB = Plan.createVPBasicBlock("cond.0");
+ Cond0BB->setParent(LateExitBB->getParent());
- VPBuilder Builder(Latch);
- VPValue *AnyExitTaken = Builder.createNaryOp(
- Instruction::Or, {EarlyExitingCond, LateExitingCond}, DL);
- Builder.createNaryOp(VPInstruction::BranchOnCond, {AnyExitTaken}, DL);
- VPBlockUtils::connectBlocks(Latch, MiddleSplit);
- VPBlockUtils::connectBlocks(Latch, Header);
+ VPBuilder(Latch).createNaryOp(VPInstruction::BranchOnCond,
+ {EarlyExitingCond}, DL);
+ VPBlockUtils::connectBlocks(Latch, EarlyExitBB);
+ VPBlockUtils::connectBlocks(Latch, Cond0BB);
- VPBuilder(MiddleSplit)
- .createNaryOp(VPInstruction::BranchOnCond, {EarlyExitingCond}, DL);
- VPBlockUtils::connectBlocks(MiddleSplit, EarlyExitBB);
- VPBlockUtils::connectBlocks(MiddleSplit, LateExitBB);
+ VPBuilder(Cond0BB).createNaryOp(VPInstruction::BranchOnCond,
+ {LateExitingCond}, DL);
+ VPBlockUtils::connectBlocks(Cond0BB, LateExitBB);
+ VPBlockUtils::connectBlocks(Cond0BB, Header);
Br->eraseFromParent();
}
diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll b/llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
index 37d39c35de934..d604d68795505 100644
--- a/llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
+++ b/llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
@@ -25,7 +25,7 @@ define i64 @same_exit_block_pre_inc_use1() #1 {
; CHECK-NEXT: [[TMP6:%.*]] = add i64 3, [[N_VEC]]
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP11:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <vscale x 16 x i8>, ptr [[TMP11]], align 1
@@ -36,10 +36,9 @@ define i64 @same_exit_block_pre_inc_use1() #1 {
; CHECK-NEXT: [[TMP8:%.*]] = freeze <vscale x 16 x i1> [[TMP16]]
; CHECK-NEXT: [[TMP17:%.*]] = call i1 @llvm.vector.reduce.or.nxv16i1(<vscale x 16 x i1> [[TMP8]])
; CHECK-NEXT: [[TMP18:%.*]] = icmp eq i64 [[INDEX_NEXT3]], [[N_VEC]]
-; CHECK-NEXT: [[TMP19:%.*]] = or i1 [[TMP17]], [[TMP18]]
-; CHECK-NEXT: br i1 [[TMP19]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP17]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP17]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP18]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 64, [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[LOOP_END:%.*]], label [[SCALAR_PH]]
@@ -107,8 +106,8 @@ define i64 @same_exit_block_pre_inc_use4() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
-; CHECK-NEXT: [[VEC_IND:%.*]] = phi <2 x i64> [ <i64 3, i64 4>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[COND_0:%.*]] ]
+; CHECK-NEXT: [[VEC_IND:%.*]] = phi <2 x i64> [ <i64 3, i64 4>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[COND_0]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i64>, ptr [[TMP1]], align 1
@@ -118,10 +117,9 @@ define i64 @same_exit_block_pre_inc_use4() {
; CHECK-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v2i1(<2 x i1> [[TMP2]])
; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT2]], 64
; CHECK-NEXT: [[VEC_IND_NEXT]] = add <2 x i64> [[VEC_IND]], splat (i64 2)
-; CHECK-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -170,7 +168,7 @@ define i64 @loop_contains_safe_call() #1 {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds float, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x float>, ptr [[TMP1]], align 1
@@ -180,10 +178,9 @@ define i64 @loop_contains_safe_call() #1 {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP5]]
; CHECK-NEXT: [[TMP6:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP7:%.*]] = icmp eq i64 [[INDEX_NEXT2]], 64
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
-; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -238,7 +235,7 @@ define i64 @loop_contains_safe_div() #1 {
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX1:%.*]] = add i64 3, [[INDEX2]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[OFFSET_IDX1]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <vscale x 4 x i32>, ptr [[TMP1]], align 1
@@ -248,10 +245,9 @@ define i64 @loop_contains_safe_div() #1 {
; CHECK-NEXT: [[TMP9:%.*]] = freeze <vscale x 4 x i1> [[TMP15]]
; CHECK-NEXT: [[TMP6:%.*]] = call i1 @llvm.vector.reduce.or.nxv4i1(<vscale x 4 x i1> [[TMP9]])
; CHECK-NEXT: [[TMP7:%.*]] = icmp eq i64 [[INDEX_NEXT2]], [[INDEX1]]
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
-; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 64, [[INDEX1]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[LOOP_END:%.*]], label [[SCALAR_PH:%.*]]
@@ -317,7 +313,7 @@ define i64 @loop_contains_load_after_early_exit(ptr dereferenceable(1024) align(
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP1]], align 1
@@ -328,10 +324,9 @@ define i64 @loop_contains_load_after_early_exit(ptr dereferenceable(1024) align(
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[TMP10:%.*]] = extractelement <4 x i64> [[WIDE_LOAD2]], i32 3
; CHECK-NEXT: br label [[LOOP_END:%.*]]
@@ -403,7 +398,7 @@ define i32 @diff_exit_block_needs_scev_check(i32 %end) {
; CHECK-NEXT: [[TMP8:%.*]] = trunc i64 [[N_VEC]] to i8
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[TMP10:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP10]], align 4
; CHECK-NEXT: [[TMP12:%.*]] = getelementptr inbounds i32, ptr [[P2]], i64 [[INDEX]]
@@ -413,10 +408,9 @@ define i32 @diff_exit_block_needs_scev_check(i32 %end) {
; CHECK-NEXT: [[TMP13:%.*]] = freeze <4 x i1> [[TMP14]]
; CHECK-NEXT: [[TMP15:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP13]])
; CHECK-NEXT: [[TMP16:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP17:%.*]] = or i1 [[TMP15]], [[TMP16]]
-; CHECK-NEXT: br i1 [[TMP17]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP15]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP15]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP16]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[UMAX1]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT:%.*]], label [[SCALAR_PH]]
diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/single-early-exit-interleave.ll b/llvm/test/Transforms/LoopVectorize/AArch64/single-early-exit-interleave.ll
index cc03ef8af8b00..a7db313a38fe7 100644
--- a/llvm/test/Transforms/LoopVectorize/AArch64/single-early-exit-interleave.ll
+++ b/llvm/test/Transforms/LoopVectorize/AArch64/single-early-exit-interleave.ll
@@ -24,9 +24,9 @@ define i64 @same_exit_block_pre_inc_use1() #0 {
; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 510, [[TMP3]]
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 510, [[N_MOD_VF]]
; CHECK-NEXT: [[INDEX_NEXT:%.*]] = add i64 3, [[N_VEC]]
-; CHECK-NEXT: br label [[LOOP:%.*]]
+; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[LOOP]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[TMP27:%.*]] = mul nuw nsw i64 [[TMP4]], 2
@@ -60,10 +60,9 @@ define i64 @same_exit_block_pre_inc_use1() #0 {
; CHECK-NEXT: [[TMP33:%.*]] = or <vscale x 16 x i1> [[TMP62]], [[TMP34]]
; CHECK-NEXT: [[TMP12:%.*]] = call i1 @llvm.vector.reduce.or.nxv16i1(<vscale x 16 x i1> [[TMP33]])
; CHECK-NEXT: [[TMP35:%.*]] = icmp eq i64 [[INDEX_NEXT3]], [[N_VEC]]
-; CHECK-NEXT: [[TMP36:%.*]] = or i1 [[TMP12]], [[TMP35]]
-; CHECK-NEXT: br i1 [[TMP36]], label [[MIDDLE_SPLIT:%.*]], label [[LOOP]], !llvm.loop [[LOOP0:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP12]], label [[VECTOR_EARLY_EXIT:%.*]], label [[LOOP_INC:%.*]]
+; CHECK-NEXT: br i1 [[TMP12]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP35]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 510, [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[LOOP_END:%.*]], label [[SCALAR_PH]]
@@ -92,22 +91,22 @@ define i64 @same_exit_block_pre_inc_use1() #0 {
; CHECK-NEXT: [[TMP17:%.*]] = add i64 3, [[TMP16]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: scalar.ph:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ [[INDEX_NEXT]], [[LOOP_INC]] ], [ 3, [[ENTRY:%.*]] ]
-; CHECK-NEXT: br label [[LOOP1:%.*]]
+; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[INDEX_NEXT]], [[MIDDLE_BLOCK]] ], [ 3, [[ENTRY:%.*]] ]
+; CHECK-NEXT: br label [[LOOP:%.*]]
; CHECK: loop:
-; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ [[INDEX_NEXT1:%.*]], [[LOOP_INC1:%.*]] ], [ [[INDEX]], [[SCALAR_PH]] ]
+; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ [[INDEX_NEXT1:%.*]], [[LOOP_INC:%.*]] ], [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ]
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[INDEX2]]
; CHECK-NEXT: [[LD1:%.*]] = load i8, ptr [[ARRAYIDX]], align 1
; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i8, ptr [[P2]], i64 [[INDEX2]]
; CHECK-NEXT: [[LD2:%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
; CHECK-NEXT: [[CMP3:%.*]] = icmp eq i8 [[LD1]], [[LD2]]
-; CHECK-NEXT: br i1 [[CMP3]], label [[LOOP_INC1]], label [[LOOP_END]]
+; CHECK-NEXT: br i1 [[CMP3]], label [[LOOP_INC]], label [[LOOP_END]]
; CHECK: loop.inc:
; CHECK-NEXT: [[INDEX_NEXT1]] = add i64 [[INDEX2]], 1
; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i64 [[INDEX_NEXT1]], 513
-; CHECK-NEXT: br i1 [[EXITCOND]], label [[LOOP1]], label [[LOOP_END]], !llvm.loop [[LOOP3:![0-9]+]]
+; CHECK-NEXT: br i1 [[EXITCOND]], label [[LOOP]], label [[LOOP_END]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ [[INDEX2]], [[LOOP1]] ], [ 67, [[LOOP_INC1]] ], [ 67, [[LOOP_INC]] ], [ [[TMP17]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ [[INDEX2]], [[LOOP]] ], [ 67, [[LOOP_INC]] ], [ 67, [[MIDDLE_BLOCK]] ], [ [[TMP17]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
diff --git a/llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll b/llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
index 0bc2748b6252d..4d530ebaca907 100644
--- a/llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
+++ b/llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
@@ -11,7 +11,7 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_with_constant_si
; CHECK: [[VECTOR_PH]]:
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[INDEX1]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP0]], align 1
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[P2]], i64 [[INDEX1]]
@@ -21,10 +21,9 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_with_constant_si
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP4]]
; CHECK-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 1024
-; CHECK-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; CHECK-NEXT: br i1 [[TMP7]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: br label %[[LOOP_END:.*]]
; CHECK: [[VECTOR_EARLY_EXIT]]:
@@ -122,7 +121,7 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_n_not_zero(ptr n
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[N]], [[N_MOD_VF]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[INDEX1]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP0]], align 1
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P2]], i64 [[INDEX1]]
@@ -132,10 +131,9 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_n_not_zero(ptr n
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP2]]
; CHECK-NEXT: [[TMP4:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP5:%.*]] = icmp eq i64 [[INDEX_NEXT3]], [[N_VEC]]
-; CHECK-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[TMP5]]
-; CHECK-NEXT: br i1 [[TMP6]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP5]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[N]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[LOOP_END_LOOPEXIT:.*]], label %[[SCALAR_PH]]
@@ -319,7 +317,7 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_n_not_zero_i16_p
; CHECK-NEXT: [[IV_NEXT1:%.*]] = getelementptr i8, ptr [[A]], i64 [[TMP3]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = mul i64 [[INDEX]], 2
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[A]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i16>, ptr [[NEXT_GEP]], align 2
@@ -328,10 +326,9 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_n_not_zero_i16_p
; CHECK-NEXT: [[TMP6:%.*]] = freeze <4 x i1> [[TMP5]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP6]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP7]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP7]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP8]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP2]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT_LOOPEXIT:.*]], label %[[SCALAR_PH]]
@@ -414,7 +411,7 @@ define ptr @find_deref_pointer_distance_align_attribute_argument(ptr align 2 %fi
; CHECK-NEXT: [[TMP5:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[TMP4]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = mul i64 [[INDEX]], 2
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i16>, ptr [[NEXT_GEP]], align 2
@@ -423,10 +420,9 @@ define ptr @find_deref_pointer_distance_align_attribute_argument(ptr align 2 %fi
; CHECK-NEXT: [[TMP7:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP8:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP7]])
; CHECK-NEXT: [[TMP9:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP10:%.*]] = or i1 [[TMP8]], [[TMP9]]
-; CHECK-NEXT: br i1 [[TMP10]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP9]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT_LOOPEXIT:.*]], label %[[SCALAR_PH]]
@@ -508,7 +504,7 @@ define ptr @find_deref_pointer_distance_align_assumption(ptr %first, ptr %last)
; CHECK-NEXT: [[TMP5:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[TMP4]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = mul i64 [[INDEX]], 2
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i16>, ptr [[NEXT_GEP]], align 2
@@ -517,10 +513,9 @@ define ptr @find_deref_pointer_distance_align_assumption(ptr %first, ptr %last)
; CHECK-NEXT: [[TMP7:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP8:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP7]])
; CHECK-NEXT: [[TMP9:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP10:%.*]] = or i1 [[TMP8]], [[TMP9]]
-; CHECK-NEXT: br i1 [[TMP10]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP9]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT_LOOPEXIT:.*]], label %[[SCALAR_PH]]
@@ -585,7 +580,7 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_with_constant_si
; CHECK: [[VECTOR_PH]]:
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[INDEX1]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[ARRAYIDX2]], align 1
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P2]], i64 [[INDEX1]]
@@ -595,10 +590,9 @@ define i64 @early_exit_alignment_and_deref_known_via_assumption_with_constant_si
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP2]]
; CHECK-NEXT: [[TMP4:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP5:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 1024
-; CHECK-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[TMP5]]
-; CHECK-NEXT: br i1 [[TMP6]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP5]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: br label %[[LOOP_END:.*]]
; CHECK: [[VECTOR_EARLY_EXIT]]:
@@ -723,7 +717,7 @@ define i64 @find_if_pointer_distance_deref_via_assumption(ptr %vec) nofree nosyn
; CHECK-NEXT: [[TMP5:%.*]] = getelementptr i8, ptr [[BEGIN]], i64 [[TMP4]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = mul i64 [[INDEX]], 2
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[BEGIN]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i16>, ptr [[NEXT_GEP]], align 2
@@ -732,10 +726,9 @@ define i64 @find_if_pointer_distance_deref_via_assumption(ptr %vec) nofree nosyn
; CHECK-NEXT: [[TMP7:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP8:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP7]])
; CHECK-NEXT: [[TMP9:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP10:%.*]] = or i1 [[TMP8]], [[TMP9]]
-; CHECK-NEXT: br i1 [[TMP10]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP8]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP9]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT_LOOPEXIT:.*]], label %[[SCALAR_PH]]
diff --git a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-hint.ll b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-hint.ll
index 4caf292b1ce92..d89bbc352d097 100644
--- a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-hint.ll
+++ b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-hint.ll
@@ -12,7 +12,7 @@ define i64 @multi_exiting_to_different_exits_live_in_exit_values() {
; VF4IC4: [[VECTOR_PH]]:
; VF4IC4-NEXT: br label %[[VECTOR_BODY:.*]]
; VF4IC4: [[VECTOR_BODY]]:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i32, ptr [[SRC]], i64 [[INDEX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[TMP0]], i64 4
; VF4IC4-NEXT: [[TMP12:%.*]] = getelementptr inbounds i32, ptr [[TMP0]], i64 8
@@ -35,10 +35,9 @@ define i64 @multi_exiting_to_different_exits_live_in_exit_values() {
; VF4IC4-NEXT: [[TMP11:%.*]] = or <4 x i1> [[TMP16]], [[TMP17]]
; VF4IC4-NEXT: [[TMP3:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP11]])
; VF4IC4-NEXT: [[TMP4:%.*]] = icmp eq i64 [[INDEX_NEXT]], 128
-; VF4IC4-NEXT: [[TMP18:%.*]] = or i1 [[TMP3]], [[TMP4]]
-; VF4IC4-NEXT: br i1 [[TMP18]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
+; VF4IC4-NEXT: br i1 [[TMP3]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF4IC4: [[MIDDLE_SPLIT]]:
-; VF4IC4-NEXT: br i1 [[TMP3]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF4IC4-NEXT: br i1 [[TMP4]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; VF4IC4: [[MIDDLE_BLOCK]]:
; VF4IC4-NEXT: br label %[[E2:.*]]
; VF4IC4: [[VECTOR_EARLY_EXIT]]:
diff --git a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-only.ll b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-only.ll
index a50ce969da7f4..384a2ac91b7cb 100644
--- a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-only.ll
+++ b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-only.ll
@@ -12,7 +12,7 @@ define i8 @iv_used_in_exit_with_math(i8 noundef %g) {
; CHECK: [[VECTOR_PH]]:
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = trunc i32 [[INDEX]] to i8
; CHECK-NEXT: [[TMP0:%.*]] = add i8 [[OFFSET_IDX]], 1
; CHECK-NEXT: [[TMP1:%.*]] = shl nuw i8 1, [[OFFSET_IDX]]
@@ -26,10 +26,9 @@ define i8 @iv_used_in_exit_with_math(i8 noundef %g) {
; CHECK-NEXT: [[TMP13:%.*]] = freeze i1 [[TMP8]]
; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP12]], [[TMP13]]
; CHECK-NEXT: [[TMP10:%.*]] = icmp eq i32 [[INDEX_NEXT]], 4
-; CHECK-NEXT: [[TMP11:%.*]] = or i1 [[TMP9]], [[TMP10]]
-; CHECK-NEXT: br i1 [[TMP11]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP10]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: br label %[[RETURN:.*]]
; CHECK: [[VECTOR_EARLY_EXIT]]:
@@ -82,7 +81,7 @@ define i32 @iv_used_in_exit_with_loads(ptr align 4 dereferenceable(128) %src) {
; CHECK: [[VECTOR_PH]]:
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[INDEX]], 1
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[SRC]], i32 [[INDEX]]
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i32, ptr [[SRC]], i32 [[TMP0]]
@@ -95,10 +94,9 @@ define i32 @iv_used_in_exit_with_loads(ptr align 4 dereferenceable(128) %src) {
; CHECK-NEXT: [[TMP13:%.*]] = freeze i1 [[TMP8]]
; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP12]], [[TMP13]]
; CHECK-NEXT: [[TMP10:%.*]] = icmp eq i32 [[INDEX_NEXT]], 32
-; CHECK-NEXT: [[TMP11:%.*]] = or i1 [[TMP9]], [[TMP10]]
-; CHECK-NEXT: br i1 [[TMP11]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
+; CHECK-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[TMP10]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: br label %[[RETURN:.*]]
; CHECK: [[VECTOR_EARLY_EXIT]]:
diff --git a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll
index f08b6e69e3e1c..b525a2920a7b1 100644
--- a/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll
+++ b/llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll
@@ -12,7 +12,7 @@ define i64 @multi_exiting_to_different_exits_live_in_exit_values() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i32, ptr [[SRC]], i64 [[INDEX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[TMP0]], i64 4
; VF4IC4-NEXT: [[TMP2:%.*]] = getelementptr inbounds i32, ptr [[TMP0]], i64 8
@@ -35,10 +35,9 @@ define i64 @multi_exiting_to_different_exits_live_in_exit_values() {
; VF4IC4-NEXT: [[TMP11:%.*]] = or <4 x i1> [[TMP15]], [[TMP16]]
; VF4IC4-NEXT: [[TMP3:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP11]])
; VF4IC4-NEXT: [[TMP4:%.*]] = icmp eq i64 [[INDEX_NEXT]], 128
-; VF4IC4-NEXT: [[TMP5:%.*]] = or i1 [[TMP3]], [[TMP4]]
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP3]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP3]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP4]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[E2:%.*]]
; VF4IC4: vector.early.exit:
@@ -85,7 +84,7 @@ define i64 @same_exit_block_pre_inc_use1() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 4
@@ -117,10 +116,9 @@ define i64 @same_exit_block_pre_inc_use1() {
; VF4IC4-NEXT: [[TMP16:%.*]] = or <4 x i1> [[TMP15]], [[TMP36]]
; VF4IC4-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP16]])
; VF4IC4-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
-; VF4IC4-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -142,7 +140,7 @@ define i64 @same_exit_block_pre_inc_use1() {
; VF4IC4-NEXT: [[TMP10:%.*]] = add i64 3, [[TMP9]]
; VF4IC4-NEXT: br label [[LOOP_END]]
; VF4IC4: loop.end:
-; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
+; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
; VF4IC4-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -181,7 +179,7 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[P1]], i64 [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr i8, ptr [[NEXT_GEP]], i64 4
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr i8, ptr [[NEXT_GEP]], i64 8
@@ -204,10 +202,9 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; VF4IC4-NEXT: [[TMP9:%.*]] = or <4 x i1> [[TMP33]], [[TMP34]]
; VF4IC4-NEXT: [[TMP10:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP9]])
; VF4IC4-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1024
-; VF4IC4-NEXT: [[TMP12:%.*]] = or i1 [[TMP10]], [[TMP11]]
-; VF4IC4-NEXT: br i1 [[TMP12]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP10]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP10]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP11]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -229,7 +226,7 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; VF4IC4-NEXT: [[TMP8:%.*]] = getelementptr i8, ptr [[P1]], i64 [[TMP7]]
; VF4IC4-NEXT: br label [[LOOP_END]]
; VF4IC4: loop.end:
-; VF4IC4-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK]] ], [ [[TMP8]], [[VECTOR_EARLY_EXIT]] ]
+; VF4IC4-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK1]] ], [ [[TMP8]], [[VECTOR_EARLY_EXIT]] ]
; VF4IC4-NEXT: ret ptr [[RETVAL]]
;
entry:
@@ -265,7 +262,7 @@ define i64 @same_exit_block_post_inc_use() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 4
@@ -297,10 +294,9 @@ define i64 @same_exit_block_post_inc_use() {
; VF4IC4-NEXT: [[TMP16:%.*]] = or <4 x i1> [[TMP15]], [[TMP36]]
; VF4IC4-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP16]])
; VF4IC4-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
-; VF4IC4-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -322,7 +318,7 @@ define i64 @same_exit_block_post_inc_use() {
; VF4IC4-NEXT: [[TMP10:%.*]] = add i64 3, [[TMP9]]
; VF4IC4-NEXT: br label [[LOOP_END]]
; VF4IC4: loop.end:
-; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
+; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
; VF4IC4-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -362,7 +358,7 @@ define i64 @diff_exit_block_pre_inc_use1() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 4
@@ -394,10 +390,9 @@ define i64 @diff_exit_block_pre_inc_use1() {
; VF4IC4-NEXT: [[TMP16:%.*]] = or <4 x i1> [[TMP15]], [[TMP36]]
; VF4IC4-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP16]])
; VF4IC4-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
-; VF4IC4-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -464,7 +459,7 @@ define i64 @diff_exit_block_post_inc_use1() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 4
@@ -496,10 +491,9 @@ define i64 @diff_exit_block_post_inc_use1() {
; VF4IC4-NEXT: [[TMP16:%.*]] = or <4 x i1> [[TMP15]], [[TMP36]]
; VF4IC4-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP16]])
; VF4IC4-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
-; VF4IC4-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -566,7 +560,7 @@ define i64 @same_exit_block_pre_inc_use1_reverse() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = sub i64 1023, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 0
@@ -616,10 +610,9 @@ define i64 @same_exit_block_pre_inc_use1_reverse() {
; VF4IC4-NEXT: [[TMP24:%.*]] = or <4 x i1> [[TMP45]], [[TMP47]]
; VF4IC4-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP24]])
; VF4IC4-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1008
-; VF4IC4-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; VF4IC4-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[SCALAR_PH:%.*]]
; VF4IC4: vector.early.exit:
@@ -696,7 +689,7 @@ define i8 @same_exit_block_use_loaded_value() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[INDEX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 4
; VF4IC4-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 8
@@ -727,10 +720,9 @@ define i8 @same_exit_block_use_loaded_value() {
; VF4IC4-NEXT: [[TMP16:%.*]] = or <4 x i1> [[TMP19]], [[TMP30]]
; VF4IC4-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP16]])
; VF4IC4-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1024
-; VF4IC4-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF4IC4-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[LOOP_END:%.*]]
; VF4IC4: vector.early.exit:
@@ -763,7 +755,7 @@ define i8 @same_exit_block_use_loaded_value() {
; VF4IC4-NEXT: [[TMP42:%.*]] = select i1 [[TMP41]], i8 [[TMP40]], i8 [[TMP38]]
; VF4IC4-NEXT: br label [[LOOP_END]]
; VF4IC4: loop.end:
-; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i8 [ -1, [[MIDDLE_BLOCK]] ], [ [[TMP42]], [[VECTOR_EARLY_EXIT]] ]
+; VF4IC4-NEXT: [[RETVAL:%.*]] = phi i8 [ -1, [[MIDDLE_BLOCK1]] ], [ [[TMP42]], [[VECTOR_EARLY_EXIT]] ]
; VF4IC4-NEXT: ret i8 [[RETVAL]]
;
entry:
@@ -804,7 +796,7 @@ define i8 @same_exit_block_reverse_use_loaded_value() {
; VF4IC4: vector.ph:
; VF4IC4-NEXT: br label [[VECTOR_BODY:%.*]]
; VF4IC4: vector.body:
-; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; VF4IC4-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; VF4IC4-NEXT: [[OFFSET_IDX:%.*]] = sub i64 1023, [[INDEX]]
; VF4IC4-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; VF4IC4-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[TMP0]], i64 0
@@ -854,10 +846,9 @@ define i8 @same_exit_block_reverse_use_loaded_value() {
; VF4IC4-NEXT: [[TMP24:%.*]] = or <4 x i1> [[TMP52]], [[TMP53]]
; VF4IC4-NEXT: [[TMP25:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP24]])
; VF4IC4-NEXT: [[TMP26:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1008
-; VF4IC4-NEXT: [[TMP27:%.*]] = or i1 [[TMP25]], [[TMP26]]
-; VF4IC4-NEXT: br i1 [[TMP27]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
-; VF4IC4: middle.split:
-; VF4IC4-NEXT: br i1 [[TMP25]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; VF4IC4-NEXT: br i1 [[TMP25]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; VF4IC4: cond.0:
+; VF4IC4-NEXT: br i1 [[TMP26]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
; VF4IC4: middle.block:
; VF4IC4-NEXT: br label [[SCALAR_PH:%.*]]
; VF4IC4: vector.early.exit:
diff --git a/llvm/test/Transforms/LoopVectorize/single_early_exit.ll b/llvm/test/Transforms/LoopVectorize/single_early_exit.ll
index ae03f2426a800..a977da79575d6 100644
--- a/llvm/test/Transforms/LoopVectorize/single_early_exit.ll
+++ b/llvm/test/Transforms/LoopVectorize/single_early_exit.ll
@@ -15,7 +15,7 @@ define i64 @same_exit_block_phi_of_consts() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -26,10 +26,9 @@ define i64 @same_exit_block_phi_of_consts() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -76,7 +75,7 @@ define i64 @diff_exit_block_phi_of_consts() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -87,14 +86,13 @@ define i64 @diff_exit_block_phi_of_consts() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
-; CHECK-NEXT: br label [[LOOP:%.*]]
+; CHECK-NEXT: br label [[LOOP_EARLY_EXIT:%.*]]
; CHECK: loop.early.exit:
; CHECK-NEXT: ret i64 0
; CHECK: loop.end:
@@ -159,7 +157,7 @@ define i32 @diff_exit_block_needs_scev_check(i32 %end) {
; CHECK-NEXT: [[TMP8:%.*]] = trunc i64 [[N_VEC]] to i8
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[TMP10:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP10]], align 4
; CHECK-NEXT: [[TMP12:%.*]] = getelementptr inbounds i32, ptr [[P2]], i64 [[INDEX]]
@@ -169,10 +167,9 @@ define i32 @diff_exit_block_needs_scev_check(i32 %end) {
; CHECK-NEXT: [[TMP13:%.*]] = freeze <4 x i1> [[TMP14]]
; CHECK-NEXT: [[TMP15:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP13]])
; CHECK-NEXT: [[TMP16:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP17:%.*]] = or i1 [[TMP15]], [[TMP16]]
-; CHECK-NEXT: br i1 [[TMP17]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP15]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP15]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP16]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[UMAX1]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT:%.*]], label [[SCALAR_PH]]
@@ -254,17 +251,16 @@ define i32 @diff_blocks_invariant_early_exit_cond(ptr %s) {
; CHECK-NEXT: [[TMP1:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[INDEX_NEXT]], 276
-; CHECK-NEXT: [[TMP3:%.*]] = or i1 [[TMP1]], [[TMP2]]
-; CHECK-NEXT: br i1 [[TMP3]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP1]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP1]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP2]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[FOR_END:%.*]]
; CHECK: vector.early.exit:
-; CHECK-NEXT: br label [[FOR_BODY:%.*]]
+; CHECK-NEXT: br label [[EARLY_EXIT:%.*]]
; CHECK: early.exit:
; CHECK-NEXT: tail call void @abort()
; CHECK-NEXT: unreachable
@@ -311,7 +307,7 @@ define void @inner_loop_trip_count_depends_on_outer_iv(ptr align 8 dereferenceab
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[OUTER_IV]], [[N_MOD_VF]]
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[TMP0:%.*]] = getelementptr ptr, ptr [[GEP_SRC]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x ptr>, ptr [[TMP0]], align 8
; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <4 x ptr> [[WIDE_LOAD]], zeroinitializer
@@ -319,10 +315,9 @@ define void @inner_loop_trip_count_depends_on_outer_iv(ptr align 8 dereferenceab
; CHECK-NEXT: [[TMP2:%.*]] = freeze <4 x i1> [[TMP1]]
; CHECK-NEXT: [[TMP3:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP2]])
; CHECK-NEXT: [[TMP4:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP5:%.*]] = or i1 [[TMP3]], [[TMP4]]
-; CHECK-NEXT: br i1 [[TMP5]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP3]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP3]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP4]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[OUTER_IV]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[OUTER_LATCH_LOOPEXIT:%.*]], label [[SCALAR_PH]]
@@ -408,7 +403,7 @@ define i64 @loop_guard_needed_to_prove_dereferenceable(i32 %x, i1 %cmp2) {
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[TMP0]], [[N_MOD_VF]]
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr [32 x i32], ptr [[A]], i64 0, i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP1]], align 4
; CHECK-NEXT: [[TMP2:%.*]] = icmp eq <4 x i32> [[WIDE_LOAD]], zeroinitializer
@@ -416,10 +411,9 @@ define i64 @loop_guard_needed_to_prove_dereferenceable(i32 %x, i1 %cmp2) {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP2]]
; CHECK-NEXT: [[TMP4:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP5:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
-; CHECK-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[TMP5]]
-; CHECK-NEXT: br i1 [[TMP6]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP4]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP4]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP5]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP0]], [[N_VEC]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT_LOOPEXIT:%.*]], label [[SCALAR_PH]]
@@ -554,9 +548,9 @@ define i64 @loop_guards_needed_to_prove_deref_multiple(i32 %x, i1 %c, ptr derefe
; CHECK: vector.ph:
; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 [[TMP2]], 4
; CHECK-NEXT: [[IV_NEXT:%.*]] = sub i64 [[TMP2]], [[N_MOD_VF]]
-; CHECK-NEXT: br label [[LOOP_HEADER:%.*]]
+; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[LOOP_HEADER]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[COND_0:%.*]] ]
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr i8, ptr [[SRC]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP3]], align 1
; CHECK-NEXT: [[TMP4:%.*]] = icmp eq <4 x i8> [[WIDE_LOAD]], zeroinitializer
@@ -564,10 +558,9 @@ define i64 @loop_guards_needed_to_prove_deref_multiple(i32 %x, i1 %c, ptr derefe
; CHECK-NEXT: [[TMP5:%.*]] = freeze <4 x i1> [[TMP4]]
; CHECK-NEXT: [[TMP6:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP5]])
; CHECK-NEXT: [[TMP7:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[IV_NEXT]]
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
-; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_SPLIT:%.*]], label [[LOOP_HEADER]], !llvm.loop [[LOOP11:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[LOOP_LATCH:%.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[COND_0]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP2]], [[IV_NEXT]]
; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT_LOOPEXIT:%.*]], label [[SCALAR_PH]]
@@ -576,20 +569,20 @@ define i64 @loop_guards_needed_to_prove_deref_multiple(i32 %x, i1 %c, ptr derefe
; CHECK-NEXT: [[TMP10:%.*]] = add i64 [[INDEX]], [[TMP9]]
; CHECK-NEXT: br label [[EXIT_LOOPEXIT]]
; CHECK: scalar.ph:
-; CHECK-NEXT: [[IV:%.*]] = phi i64 [ [[IV_NEXT]], [[LOOP_LATCH]] ], [ 0, [[PH]] ]
-; CHECK-NEXT: br label [[LOOP_HEADER1:%.*]]
+; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[IV_NEXT]], [[MIDDLE_BLOCK]] ], [ 0, [[PH]] ]
+; CHECK-NEXT: br label [[LOOP_HEADER:%.*]]
; CHECK: loop.header:
-; CHECK-NEXT: [[IV1:%.*]] = phi i64 [ [[IV_NEXT1:%.*]], [[LOOP_LATCH1:%.*]] ], [ [[IV]], [[SCALAR_PH]] ]
+; CHECK-NEXT: [[IV1:%.*]] = phi i64 [ [[IV_NEXT1:%.*]], [[LOOP_LATCH:%.*]] ], [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ]
; CHECK-NEXT: [[GEP_SRC_I:%.*]] = getelementptr i8, ptr [[SRC]], i64 [[IV1]]
; CHECK-NEXT: [[L:%.*]] = load i8, ptr [[GEP_SRC_I]], align 1
; CHECK-NEXT: [[C_1:%.*]] = icmp eq i8 [[L]], 0
-; CHECK-NEXT: br i1 [[C_1]], label [[EXIT_LOOPEXIT]], label [[LOOP_LATCH1]]
+; CHECK-NEXT: br i1 [[C_1]], label [[EXIT_LOOPEXIT]], label [[LOOP_LATCH]]
; CHECK: loop.latch:
; CHECK-NEXT: [[IV_NEXT1]] = add i64 [[IV1]], 1
; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV1]], [[N_EXT]]
-; CHECK-NEXT: br i1 [[EC]], label [[EXIT_LOOPEXIT]], label [[LOOP_HEADER1]], !llvm.loop [[LOOP12:![0-9]+]]
+; CHECK-NEXT: br i1 [[EC]], label [[EXIT_LOOPEXIT]], label [[LOOP_HEADER]], !llvm.loop [[LOOP12:![0-9]+]]
; CHECK: exit.loopexit:
-; CHECK-NEXT: [[RES_PH:%.*]] = phi i64 [ [[IV1]], [[LOOP_HEADER1]] ], [ 0, [[LOOP_LATCH1]] ], [ 0, [[LOOP_LATCH]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RES_PH:%.*]] = phi i64 [ [[IV1]], [[LOOP_HEADER]] ], [ 0, [[LOOP_LATCH]] ], [ 0, [[MIDDLE_BLOCK]] ], [ [[TMP10]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: [[RES:%.*]] = phi i64 [ -1, [[ENTRY:%.*]] ], [ -2, [[THEN]] ], [ [[RES_PH]], [[EXIT_LOOPEXIT]] ]
diff --git a/llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll b/llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
index e631a645e527f..110546146e752 100644
--- a/llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
+++ b/llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
@@ -14,7 +14,7 @@ define i64 @same_exit_block_pre_inc_use1() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -25,10 +25,9 @@ define i64 @same_exit_block_pre_inc_use1() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -37,7 +36,7 @@ define i64 @same_exit_block_pre_inc_use1() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -78,7 +77,7 @@ define i32 @same_exit_block_pre_inc_use1_iv64_endi32_step2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -89,10 +88,9 @@ define i32 @same_exit_block_pre_inc_use1_iv64_endi32_step2() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -103,7 +101,7 @@ define i32 @same_exit_block_pre_inc_use1_iv64_endi32_step2() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i32 9, [[TMP11]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i32 [[RETVAL]]
;
entry:
@@ -144,7 +142,7 @@ define i32 @same_exit_block_pre_inc_use1_iv128_endi32_step2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i128 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i128 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = trunc i128 [[INDEX1]] to i64
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[NEXT_GEP]], align 1
@@ -153,10 +151,9 @@ define i32 @same_exit_block_pre_inc_use1_iv128_endi32_step2() {
; CHECK-NEXT: [[TMP1:%.*]] = freeze <4 x i1> [[TMP4]]
; CHECK-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP1]])
; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i128 [[INDEX_NEXT2]], 64
-; CHECK-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -168,7 +165,7 @@ define i32 @same_exit_block_pre_inc_use1_iv128_endi32_step2() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i32 9, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i32 [[RETVAL]]
;
entry:
@@ -208,7 +205,7 @@ define float @same_exit_block_pre_inc_use1_iv64_endf32() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -219,10 +216,9 @@ define float @same_exit_block_pre_inc_use1_iv64_endf32() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -233,7 +229,7 @@ define float @same_exit_block_pre_inc_use1_iv64_endf32() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = fadd fast float 9.000000e+00, [[TMP11]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi float [ 1.230000e+02, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi float [ 1.230000e+02, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret float [[RETVAL]]
;
entry:
@@ -276,7 +272,7 @@ define ptr @same_exit_block_pre_inc_use1_iv64_endptr() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT7:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT7:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP10:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP10]], align 1
@@ -287,10 +283,9 @@ define ptr @same_exit_block_pre_inc_use1_iv64_endptr() {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP15]]
; CHECK-NEXT: [[TMP16:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT7]], 64
-; CHECK-NEXT: [[TMP18:%.*]] = or i1 [[TMP16]], [[TMP17]]
-; CHECK-NEXT: br i1 [[TMP18]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP16]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP16]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP17]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -300,7 +295,7 @@ define ptr @same_exit_block_pre_inc_use1_iv64_endptr() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = getelementptr i8, ptr [[P2]], i64 [[TMP20]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[P1]], [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[P1]], [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret ptr [[RETVAL]]
;
entry:
@@ -342,7 +337,7 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[P1]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[NEXT_GEP]], align 1
; CHECK-NEXT: [[TMP11:%.*]] = icmp ne <4 x i8> [[WIDE_LOAD]], splat (i8 72)
@@ -350,10 +345,9 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; CHECK-NEXT: [[TMP1:%.*]] = freeze <4 x i1> [[TMP11]]
; CHECK-NEXT: [[TMP12:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP1]])
; CHECK-NEXT: [[TMP13:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1024
-; CHECK-NEXT: [[TMP14:%.*]] = or i1 [[TMP12]], [[TMP13]]
-; CHECK-NEXT: br i1 [[TMP14]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP12]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP12]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP13]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -362,7 +356,7 @@ define ptr @same_exit_block_pre_inc_use1_ivptr() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = getelementptr i8, ptr [[P1]], i64 [[TMP8]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret ptr [[RETVAL]]
;
entry:
@@ -400,7 +394,7 @@ define i64 @same_exit_block_pre_inc1_use_inv_cond(i1 %cond) {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -413,10 +407,9 @@ define i64 @same_exit_block_pre_inc1_use_inv_cond(i1 %cond) {
; CHECK-NEXT: [[TMP12:%.*]] = freeze <4 x i1> [[TMP7]]
; CHECK-NEXT: [[TMP8:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP12]])
; CHECK-NEXT: [[TMP9:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP10:%.*]] = or i1 [[TMP8]], [[TMP9]]
-; CHECK-NEXT: br i1 [[TMP10]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP8]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP8]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -425,7 +418,7 @@ define i64 @same_exit_block_pre_inc1_use_inv_cond(i1 %cond) {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP11]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -467,7 +460,7 @@ define i64 @same_exit_block_pre_inc_use1_gep_two_indices() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds [1024 x i8], ptr [[P1]], i64 0, i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -478,10 +471,9 @@ define i64 @same_exit_block_pre_inc_use1_gep_two_indices() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -490,7 +482,7 @@ define i64 @same_exit_block_pre_inc_use1_gep_two_indices() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -531,7 +523,7 @@ define i64 @same_exit_block_pre_inc_use1_alloca_diff_type() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -542,10 +534,9 @@ define i64 @same_exit_block_pre_inc_use1_alloca_diff_type() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -554,7 +545,7 @@ define i64 @same_exit_block_pre_inc_use1_alloca_diff_type() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -595,7 +586,7 @@ define i64 @same_exit_block_pre_inc_use2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -606,16 +597,15 @@ define i64 @same_exit_block_pre_inc_use2() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK]] ], [ 67, [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK1]] ], [ 67, [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -656,7 +646,7 @@ define i64 @same_exit_block_pre_inc_use3() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -667,10 +657,9 @@ define i64 @same_exit_block_pre_inc_use3() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -679,7 +668,7 @@ define i64 @same_exit_block_pre_inc_use3() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[INDEX_LCSSA:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[INDEX_LCSSA:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[INDEX_LCSSA]]
;
entry:
@@ -721,8 +710,8 @@ define i64 @same_exit_block_pre_inc_use4() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
-; CHECK-NEXT: [[VEC_IND:%.*]] = phi <4 x i64> [ <i64 3, i64 4, i64 5, i64 6>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[MIDDLE_BLOCK:%.*]] ]
+; CHECK-NEXT: [[VEC_IND:%.*]] = phi <4 x i64> [ <i64 3, i64 4, i64 5, i64 6>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[MIDDLE_BLOCK]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i64>, ptr [[TMP1]], align 1
@@ -732,10 +721,9 @@ define i64 @same_exit_block_pre_inc_use4() {
; CHECK-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP2]])
; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT2]], 64
; CHECK-NEXT: [[VEC_IND_NEXT]] = add <4 x i64> [[VEC_IND]], splat (i64 4)
-; CHECK-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP13:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP5]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP6]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP13:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -744,7 +732,7 @@ define i64 @same_exit_block_pre_inc_use4() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP8]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -783,7 +771,7 @@ define i64 @same_exit_block_post_inc_use() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
@@ -794,10 +782,9 @@ define i64 @same_exit_block_post_inc_use() {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP13]]
; CHECK-NEXT: [[TMP14:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP15:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP16:%.*]] = or i1 [[TMP14]], [[TMP15]]
-; CHECK-NEXT: br i1 [[TMP16]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP14:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP14]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP14]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP15]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP14:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -806,7 +793,7 @@ define i64 @same_exit_block_post_inc_use() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -846,7 +833,7 @@ define ptr @same_exit_block_post_inc_use1_ivptr() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[P1]], i64 [[INDEX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[NEXT_GEP]], align 1
; CHECK-NEXT: [[TMP15:%.*]] = icmp ne <4 x i8> [[WIDE_LOAD]], splat (i8 72)
@@ -854,10 +841,9 @@ define ptr @same_exit_block_post_inc_use1_ivptr() {
; CHECK-NEXT: [[TMP1:%.*]] = freeze <4 x i1> [[TMP15]]
; CHECK-NEXT: [[TMP16:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP1]])
; CHECK-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT]], 1024
-; CHECK-NEXT: [[TMP18:%.*]] = or i1 [[TMP16]], [[TMP17]]
-; CHECK-NEXT: br i1 [[TMP18]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP15:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP16]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP16]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP17]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP15:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -867,7 +853,7 @@ define ptr @same_exit_block_post_inc_use1_ivptr() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = getelementptr i8, ptr [[P1]], i64 [[TMP9]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi ptr [ [[PTREND]], [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret ptr [[RETVAL]]
;
entry:
@@ -904,7 +890,7 @@ define i64 @same_exit_block_post_inc_use2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
@@ -915,10 +901,9 @@ define i64 @same_exit_block_post_inc_use2() {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP17]]
; CHECK-NEXT: [[TMP18:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP20:%.*]] = or i1 [[TMP18]], [[TMP19]]
-; CHECK-NEXT: br i1 [[TMP20]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP16:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP18]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP18]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP19]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP16:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -928,7 +913,7 @@ define i64 @same_exit_block_post_inc_use2() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP11]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 66, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -969,7 +954,7 @@ define i64 @diff_exit_block_pre_inc_use1() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -980,10 +965,9 @@ define i64 @diff_exit_block_pre_inc_use1() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP17:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP17:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1038,7 +1022,7 @@ define i64 @diff_exit_block_pre_inc_use2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -1049,10 +1033,9 @@ define i64 @diff_exit_block_pre_inc_use2() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP18:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP18:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1104,7 +1087,7 @@ define i64 @diff_exit_block_pre_inc_use3() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX2:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX2]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -1115,10 +1098,9 @@ define i64 @diff_exit_block_pre_inc_use3() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT4]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP19:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP19:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1171,7 +1153,7 @@ define i64 @diff_exit_block_post_inc_use1() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
@@ -1182,10 +1164,9 @@ define i64 @diff_exit_block_post_inc_use1() {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP13]]
; CHECK-NEXT: [[TMP14:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP15:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP16:%.*]] = or i1 [[TMP14]], [[TMP15]]
-; CHECK-NEXT: br i1 [[TMP16]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP20:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP14]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP14]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP15]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP20:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1240,7 +1221,7 @@ define i64 @diff_exit_block_post_inc_use2() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP12:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP12]], align 1
@@ -1251,10 +1232,9 @@ define i64 @diff_exit_block_post_inc_use2() {
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP17]]
; CHECK-NEXT: [[TMP18:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP20:%.*]] = or i1 [[TMP18]], [[TMP19]]
-; CHECK-NEXT: br i1 [[TMP20]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP21:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP18]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP18]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP19]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP21:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1311,7 +1291,7 @@ define i64 @diff_exit_block_post_inc_use3(i64 %start) {
; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[START]], 64
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP14:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP14]], align 1
@@ -1322,10 +1302,9 @@ define i64 @diff_exit_block_post_inc_use3(i64 %start) {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP19]]
; CHECK-NEXT: [[TMP20:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP21:%.*]] = icmp eq i64 [[INDEX_NEXT4]], 64
-; CHECK-NEXT: [[TMP22:%.*]] = or i1 [[TMP20]], [[TMP21]]
-; CHECK-NEXT: br i1 [[TMP22]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP22:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP20]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP20]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP21]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP22:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[IND_ESCAPE:%.*]] = sub i64 [[TMP0]], 1
; CHECK-NEXT: br label [[LOOP_END:%.*]]
@@ -1384,7 +1363,7 @@ define i64 @loop_contains_safe_call() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds float, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x float>, ptr [[TMP1]], align 1
@@ -1394,10 +1373,9 @@ define i64 @loop_contains_safe_call() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP5]]
; CHECK-NEXT: [[TMP6:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP7:%.*]] = icmp eq i64 [[INDEX_NEXT2]], 64
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
-; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP23:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP23:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1406,7 +1384,7 @@ define i64 @loop_contains_safe_call() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP9]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -1446,7 +1424,7 @@ define i64 @loop_contains_safe_div() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT2:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP1]], align 1
@@ -1456,10 +1434,9 @@ define i64 @loop_contains_safe_div() {
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP5]]
; CHECK-NEXT: [[TMP6:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP7:%.*]] = icmp eq i64 [[INDEX_NEXT2]], 64
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
-; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP6]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP7]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1468,7 +1445,7 @@ define i64 @loop_contains_safe_div() {
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP9]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -1507,7 +1484,7 @@ define i64 @loop_contains_load_after_early_exit(ptr dereferenceable(1024) align(
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i32, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[TMP1]], align 1
@@ -1518,10 +1495,9 @@ define i64 @loop_contains_load_after_early_exit(ptr dereferenceable(1024) align(
; CHECK-NEXT: [[TMP3:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP3]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP25:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP25:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: [[TMP10:%.*]] = extractelement <4 x i64> [[WIDE_LOAD2]], i32 3
; CHECK-NEXT: br label [[LOOP_END:%.*]]
@@ -1531,7 +1507,7 @@ define i64 @loop_contains_load_after_early_exit(ptr dereferenceable(1024) align(
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP11]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ [[TMP10]], [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ [[TMP10]], [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
@@ -1570,7 +1546,7 @@ define i64 @same_exit_block_pre_inc_use1_reverse() {
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT4:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = sub i64 1023, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[TMP1]], i64 0
@@ -1587,10 +1563,9 @@ define i64 @same_exit_block_pre_inc_use1_reverse() {
; CHECK-NEXT: [[TMP7:%.*]] = freeze <4 x i1> [[TMP8]]
; CHECK-NEXT: [[TMP9:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP7]])
; CHECK-NEXT: [[TMP10:%.*]] = icmp eq i64 [[INDEX_NEXT4]], 1020
-; CHECK-NEXT: [[TMP11:%.*]] = or i1 [[TMP9]], [[TMP10]]
-; CHECK-NEXT: br i1 [[TMP11]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP26:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP9]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP9]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP10]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP26:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[SCALAR_PH:%.*]]
; CHECK: vector.early.exit:
@@ -1701,7 +1676,7 @@ define i64 @same_exit_block_pre_inc_use1_deref_ptrs(ptr dereferenceable(1024) %p
; CHECK: vector.ph:
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
; CHECK: vector.body:
-; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[MIDDLE_BLOCK:%.*]] ]
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1
@@ -1712,10 +1687,9 @@ define i64 @same_exit_block_pre_inc_use1_deref_ptrs(ptr dereferenceable(1024) %p
; CHECK-NEXT: [[TMP4:%.*]] = freeze <4 x i1> [[TMP6]]
; CHECK-NEXT: [[TMP7:%.*]] = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> [[TMP4]])
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT3]], 64
-; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP7]], [[TMP8]]
-; CHECK-NEXT: br i1 [[TMP9]], label [[MIDDLE_SPLIT:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
-; CHECK: middle.split:
-; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK:%.*]]
+; CHECK-NEXT: br i1 [[TMP7]], label [[VECTOR_EARLY_EXIT:%.*]], label [[MIDDLE_BLOCK]]
+; CHECK: cond.0:
+; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK1:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
; CHECK: middle.block:
; CHECK-NEXT: br label [[LOOP_END:%.*]]
; CHECK: vector.early.exit:
@@ -1724,7 +1698,7 @@ define i64 @same_exit_block_pre_inc_use1_deref_ptrs(ptr dereferenceable(1024) %p
; CHECK-NEXT: [[EARLY_EXIT_VALUE:%.*]] = add i64 3, [[TMP10]]
; CHECK-NEXT: br label [[LOOP_END]]
; CHECK: loop.end:
-; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
+; CHECK-NEXT: [[RETVAL:%.*]] = phi i64 [ 67, [[MIDDLE_BLOCK1]] ], [ [[EARLY_EXIT_VALUE]], [[VECTOR_EARLY_EXIT]] ]
; CHECK-NEXT: ret i64 [[RETVAL]]
;
entry:
diff --git a/llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll b/llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll
index 89eef094e0c8a..24a7bee89e5b3 100644
--- a/llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll
+++ b/llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll
@@ -6,7 +6,8 @@ declare void @init_mem(ptr, i64);
; uncountable early exits is correctly adding to the outer loop at depth 1.
define void @early_exit_in_outer_loop1() {
; CHECK-LABEL: Loop info for function 'early_exit_in_outer_loop1':
-; CHECK: Loop at depth 1 containing: %loop.outer<header>,%loop.inner.found,%loop.inner.end<latch>,%loop.inner.end.loopexit,%vector.ph,%vector.body,%middle.split,%middle.block,%vector.early.exit
+; CHECK: Loop at depth 1 containing: %loop.outer<header>,%loop.inner.found,%loop.inner.end<latch>,%loop.inner.end.loopexit,%vector.ph,%vector.body,%cond.0,%middle.block,%vector.early.exit
+; CHECK: Loop at depth 2 containing: %vector.body<header><exiting>,%cond.0<latch><exiting>
entry:
%p1 = alloca [1024 x i8]
%p2 = alloca [1024 x i8]
@@ -45,8 +46,9 @@ loop.inner.end:
; loops at depths 1 and 2, respectively.
define void @early_exit_in_outer_loop2() {
; CHECK-LABEL: Loop info for function 'early_exit_in_outer_loop2':
-; CHECK: Loop at depth 1 containing: %loop.outer<header>,%loop.middle,%loop.inner.found,%loop.inner.end,%loop.middle.end,%loop.outer.latch<latch>,%vector.ph,%vector.body,%middle.split,%middle.block,%vector.early.exit
-; CHECK: Loop at depth 2 containing: %loop.middle<header>,%loop.inner.end<latch><exiting>,%vector.ph,%vector.body,%middle.split<exiting>,%middle.block
+; CHECK: Loop at depth 1 containing: %loop.outer<header>,%loop.middle,%loop.inner.found,%loop.inner.end,%loop.middle.end,%loop.outer.latch<latch>,%vector.ph,%vector.body,%cond.0,%middle.block,%vector.early.exit
+; CHECK: Loop at depth 2 containing: %loop.middle<header>,%loop.inner.end<latch><exiting>,%vector.ph,%vector.body<exiting>,%cond.0,%middle.block
+; CHECK: Loop at depth 3 containing: %vector.body<header><exiting>,%cond.0<latch><exiting>
entry:
%p1 = alloca [1024 x i8]
%p2 = alloca [1024 x i8]
@@ -92,8 +94,8 @@ loop.outer.latch:
define i32 @early_exit_branch_to_outer_header() {
; CHECK-LABEL: Loop info for function 'early_exit_branch_to_outer_header':
-; CHECK-NEXT: Loop at depth 1 containing: %outer.header<header>,%outer.header.loopexit<latch>,%vector.ph,%vector.body,%middle.split<exiting>,%vector.early.exit
-; CHECK-NEXT: Loop at depth 2 containing: %vector.body<header><latch><exiting>
+; CHECK-NEXT: Loop at depth 1 containing: %outer.header<header>,%outer.header.loopexit<latch>,%vector.ph,%vector.body,%cond.0<exiting>,%vector.early.exit
+; CHECK-NEXT: Loop at depth 2 containing: %vector.body<header><exiting>,%cond.0<latch><exiting>
entry:
%src = alloca [1024 x i8]
call void @init_mem(ptr %src, i64 1024)
diff --git a/llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll b/llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll
index a5e2b6ca53bf6..7417333fbcf7b 100644
--- a/llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll
+++ b/llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll
@@ -15,7 +15,7 @@ define i8 @test_early_exit_max_tc_less_than_16(ptr dereferenceable(16) %A) nosyn
; VF8UF1: [[VECTOR_PH]]:
; VF8UF1-NEXT: br label %[[VECTOR_BODY:.*]]
; VF8UF1: [[VECTOR_BODY]]:
-; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; VF8UF1-NEXT: [[P_SRC:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[INDEX]]
; VF8UF1-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i8>, ptr [[P_SRC]], align 1
; VF8UF1-NEXT: [[TMP3:%.*]] = icmp eq <8 x i8> [[WIDE_LOAD]], zeroinitializer
@@ -23,10 +23,9 @@ define i8 @test_early_exit_max_tc_less_than_16(ptr dereferenceable(16) %A) nosyn
; VF8UF1-NEXT: [[TMP2:%.*]] = freeze <8 x i1> [[TMP3]]
; VF8UF1-NEXT: [[TMP4:%.*]] = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> [[TMP2]])
; VF8UF1-NEXT: [[TMP5:%.*]] = icmp eq i64 [[INDEX_NEXT]], 16
-; VF8UF1-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[TMP5]]
-; VF8UF1-NEXT: br i1 [[TMP6]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
+; VF8UF1-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF8UF1: [[MIDDLE_SPLIT]]:
-; VF8UF1-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF8UF1-NEXT: br i1 [[TMP5]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; VF8UF1: [[MIDDLE_BLOCK]]:
; VF8UF1-NEXT: br label %[[EXIT:.*]]
; VF8UF1: [[VECTOR_EARLY_EXIT]]:
@@ -108,7 +107,7 @@ define i64 @test_early_exit_max_tc_less_than_16_with_iv_used_outside(ptr derefer
; VF8UF1: [[VECTOR_PH]]:
; VF8UF1-NEXT: br label %[[VECTOR_BODY:.*]]
; VF8UF1: [[VECTOR_BODY]]:
-; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; VF8UF1-NEXT: [[P_SRC:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[INDEX]]
; VF8UF1-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i8>, ptr [[P_SRC]], align 1
; VF8UF1-NEXT: [[TMP3:%.*]] = icmp eq <8 x i8> [[WIDE_LOAD]], zeroinitializer
@@ -116,10 +115,9 @@ define i64 @test_early_exit_max_tc_less_than_16_with_iv_used_outside(ptr derefer
; VF8UF1-NEXT: [[TMP2:%.*]] = freeze <8 x i1> [[TMP3]]
; VF8UF1-NEXT: [[TMP4:%.*]] = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> [[TMP2]])
; VF8UF1-NEXT: [[TMP5:%.*]] = icmp eq i64 [[INDEX_NEXT]], 16
-; VF8UF1-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[TMP5]]
-; VF8UF1-NEXT: br i1 [[TMP6]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
+; VF8UF1-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF8UF1: [[MIDDLE_SPLIT]]:
-; VF8UF1-NEXT: br i1 [[TMP4]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF8UF1-NEXT: br i1 [[TMP5]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; VF8UF1: [[MIDDLE_BLOCK]]:
; VF8UF1-NEXT: br label %[[EXIT:.*]]
; VF8UF1: [[VECTOR_EARLY_EXIT]]:
@@ -210,7 +208,7 @@ define i8 @test_early_exit_max_vector_tc_eq_16(ptr dereferenceable(17) %A) nosyn
; VF8UF1: [[VECTOR_PH]]:
; VF8UF1-NEXT: br label %[[VECTOR_BODY:.*]]
; VF8UF1: [[VECTOR_BODY]]:
-; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
; VF8UF1-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[INDEX]]
; VF8UF1-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i8>, ptr [[TMP0]], align 1
; VF8UF1-NEXT: [[TMP1:%.*]] = icmp eq <8 x i8> [[WIDE_LOAD]], zeroinitializer
@@ -218,10 +216,9 @@ define i8 @test_early_exit_max_vector_tc_eq_16(ptr dereferenceable(17) %A) nosyn
; VF8UF1-NEXT: [[TMP5:%.*]] = freeze <8 x i1> [[TMP1]]
; VF8UF1-NEXT: [[TMP2:%.*]] = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> [[TMP5]])
; VF8UF1-NEXT: [[TMP3:%.*]] = icmp eq i64 [[INDEX_NEXT]], 16
-; VF8UF1-NEXT: [[TMP4:%.*]] = or i1 [[TMP2]], [[TMP3]]
-; VF8UF1-NEXT: br i1 [[TMP4]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
+; VF8UF1-NEXT: br i1 [[TMP2]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF8UF1: [[MIDDLE_SPLIT]]:
-; VF8UF1-NEXT: br i1 [[TMP2]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF8UF1-NEXT: br i1 [[TMP3]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
; VF8UF1: [[MIDDLE_BLOCK]]:
; VF8UF1-NEXT: br label %[[SCALAR_PH:.*]]
; VF8UF1: [[VECTOR_EARLY_EXIT]]:
@@ -339,8 +336,8 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF8UF1: [[VECTOR_PH]]:
; VF8UF1-NEXT: br label %[[VECTOR_BODY:.*]]
; VF8UF1: [[VECTOR_BODY]]:
-; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
-; VF8UF1-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF8UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
+; VF8UF1-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[MIDDLE_SPLIT]] ]
; VF8UF1-NEXT: [[OFFSET_IDX:%.*]] = add i64 2, [[INDEX]]
; VF8UF1-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[OFFSET_IDX]]
; VF8UF1-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i8>, ptr [[TMP0]], align 1
@@ -352,10 +349,9 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF8UF1-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> [[TMP4]])
; VF8UF1-NEXT: [[TMP6:%.*]] = icmp eq i64 [[INDEX_NEXT]], 16
; VF8UF1-NEXT: [[VEC_IND_NEXT]] = add nsw <8 x i64> [[VEC_IND]], splat (i64 8)
-; VF8UF1-NEXT: [[TMP7:%.*]] = or i1 [[TMP5]], [[TMP6]]
-; VF8UF1-NEXT: br i1 [[TMP7]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
+; VF8UF1-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF8UF1: [[MIDDLE_SPLIT]]:
-; VF8UF1-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF8UF1-NEXT: br i1 [[TMP6]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; VF8UF1: [[MIDDLE_BLOCK]]:
; VF8UF1-NEXT: [[TMP8:%.*]] = extractelement <8 x i1> [[TMP2]], i32 7
; VF8UF1-NEXT: br label %[[EXIT:.*]]
@@ -372,8 +368,8 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF8UF2: [[VECTOR_PH]]:
; VF8UF2-NEXT: br label %[[VECTOR_BODY:.*]]
; VF8UF2: [[VECTOR_BODY]]:
-; VF8UF2-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
-; VF8UF2-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF8UF2-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
+; VF8UF2-NEXT: [[VEC_IND:%.*]] = phi <8 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[MIDDLE_SPLIT]] ]
; VF8UF2-NEXT: [[STEP_ADD:%.*]] = add <8 x i64> [[VEC_IND]], splat (i64 8)
; VF8UF2-NEXT: [[OFFSET_IDX:%.*]] = add i64 2, [[INDEX]]
; VF8UF2-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[OFFSET_IDX]]
@@ -390,9 +386,9 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF8UF2-NEXT: [[TMP8:%.*]] = or <8 x i1> [[TMP6]], [[TMP7]]
; VF8UF2-NEXT: [[TMP9:%.*]] = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> [[TMP8]])
; VF8UF2-NEXT: [[VEC_IND_NEXT]] = add nsw <8 x i64> [[STEP_ADD]], splat (i64 8)
-; VF8UF2-NEXT: br i1 true, label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
+; VF8UF2-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF8UF2: [[MIDDLE_SPLIT]]:
-; VF8UF2-NEXT: br i1 [[TMP9]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF8UF2-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; VF8UF2: [[MIDDLE_BLOCK]]:
; VF8UF2-NEXT: [[TMP12:%.*]] = extractelement <8 x i1> [[TMP3]], i32 7
; VF8UF2-NEXT: br label %[[EXIT:.*]]
@@ -409,8 +405,8 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF16UF1: [[VECTOR_PH]]:
; VF16UF1-NEXT: br label %[[VECTOR_BODY:.*]]
; VF16UF1: [[VECTOR_BODY]]:
-; VF16UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
-; VF16UF1-NEXT: [[VEC_IND:%.*]] = phi <16 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9, i64 10, i64 11, i64 12, i64 13, i64 14, i64 15, i64 16, i64 17>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; VF16UF1-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[MIDDLE_SPLIT:.*]] ]
+; VF16UF1-NEXT: [[VEC_IND:%.*]] = phi <16 x i64> [ <i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9, i64 10, i64 11, i64 12, i64 13, i64 14, i64 15, i64 16, i64 17>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[MIDDLE_SPLIT]] ]
; VF16UF1-NEXT: [[OFFSET_IDX:%.*]] = add i64 2, [[INDEX]]
; VF16UF1-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[OFFSET_IDX]]
; VF16UF1-NEXT: [[WIDE_LOAD:%.*]] = load <16 x i8>, ptr [[TMP0]], align 1
@@ -421,9 +417,9 @@ define i1 @test_early_exit_max_tc_less_than_16_non_canonical_iv(ptr dereferencea
; VF16UF1-NEXT: [[TMP4:%.*]] = freeze <16 x i1> [[TMP3]]
; VF16UF1-NEXT: [[TMP5:%.*]] = call i1 @llvm.vector.reduce.or.v16i1(<16 x i1> [[TMP4]])
; VF16UF1-NEXT: [[VEC_IND_NEXT]] = add nsw <16 x i64> [[VEC_IND]], splat (i64 16)
-; VF16UF1-NEXT: br i1 true, label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
+; VF16UF1-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_SPLIT]]
; VF16UF1: [[MIDDLE_SPLIT]]:
-; VF16UF1-NEXT: br i1 [[TMP5]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; VF16UF1-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
; VF16UF1: [[MIDDLE_BLOCK]]:
; VF16UF1-NEXT: [[TMP8:%.*]] = extractelement <16 x i1> [[TMP2]], i32 15
; VF16UF1-NEXT: br label %[[EXIT:.*]]
diff --git a/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll b/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
index a5578e544a364..16d68251165db 100644
--- a/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
+++ b/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
@@ -11,30 +11,142 @@ define i64 @std_find_i16_constant_offset_with_assumptions(ptr %first.coerce, i16
; CHECK-NEXT: [[COERCE_VAL_IP:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 256
; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <8 x i16> poison, i16 [[S]], i64 0
; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <8 x i16> [[BROADCAST_SPLATINSERT]], <8 x i16> poison, <8 x i32> zeroinitializer
-; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
-; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
-; CHECK-NEXT: [[OFFSET_IDX:%.*]] = shl i64 [[INDEX]], 1
-; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 [[OFFSET_IDX]]
+; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <8 x i16>, ptr [[FIRST_COERCE]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR1:%.*]] = freeze <8 x i16> [[WIDE_LOAD1]]
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR1]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP3:%.*]] = bitcast <8 x i1> [[TMP2]] to i8
+; CHECK-NEXT: [[DOTNOT:%.*]] = icmp eq i8 [[TMP3]], 0
+; CHECK-NEXT: br i1 [[DOTNOT]], label %[[COND_0:.*]], label %[[VECTOR_EARLY_EXIT:.*]]
+; CHECK: [[COND_0]]:
+; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 16
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i16>, ptr [[NEXT_GEP]], align 2
; CHECK-NEXT: [[WIDE_LOAD_FR:%.*]] = freeze <8 x i16> [[WIDE_LOAD]]
; CHECK-NEXT: [[TMP0:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR]], [[BROADCAST_SPLAT]]
-; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
; CHECK-NEXT: [[TMP1:%.*]] = bitcast <8 x i1> [[TMP0]] to i8
-; CHECK-NEXT: [[TMP2:%.*]] = icmp ne i8 [[TMP1]], 0
-; CHECK-NEXT: [[TMP3:%.*]] = icmp eq i64 [[INDEX_NEXT]], 128
-; CHECK-NEXT: [[TMP4:%.*]] = or i1 [[TMP2]], [[TMP3]]
-; CHECK-NEXT: br i1 [[TMP4]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
-; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP2]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[RETURN:.*]]
+; CHECK-NEXT: [[DOTNOT_1:%.*]] = icmp eq i8 [[TMP1]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_1]], label %[[COND_0_1:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_1]]:
+; CHECK-NEXT: [[NEXT_GEP_2:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 32
+; CHECK-NEXT: [[WIDE_LOAD_2:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_2]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_2:%.*]] = freeze <8 x i16> [[WIDE_LOAD_2]]
+; CHECK-NEXT: [[TMP4:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_2]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP32:%.*]] = bitcast <8 x i1> [[TMP4]] to i8
+; CHECK-NEXT: [[DOTNOT_2:%.*]] = icmp eq i8 [[TMP32]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_2]], label %[[COND_0_2:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_2]]:
+; CHECK-NEXT: [[NEXT_GEP_3:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 48
+; CHECK-NEXT: [[WIDE_LOAD_3:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_3]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_3:%.*]] = freeze <8 x i16> [[WIDE_LOAD_3]]
+; CHECK-NEXT: [[TMP33:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_3]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP34:%.*]] = bitcast <8 x i1> [[TMP33]] to i8
+; CHECK-NEXT: [[DOTNOT_3:%.*]] = icmp eq i8 [[TMP34]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_3]], label %[[COND_0_3:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_3]]:
+; CHECK-NEXT: [[NEXT_GEP_4:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 64
+; CHECK-NEXT: [[WIDE_LOAD_4:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_4]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_4:%.*]] = freeze <8 x i16> [[WIDE_LOAD_4]]
+; CHECK-NEXT: [[TMP35:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_4]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP9:%.*]] = bitcast <8 x i1> [[TMP35]] to i8
+; CHECK-NEXT: [[DOTNOT_4:%.*]] = icmp eq i8 [[TMP9]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_4]], label %[[COND_0_4:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_4]]:
+; CHECK-NEXT: [[NEXT_GEP_5:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 80
+; CHECK-NEXT: [[WIDE_LOAD_5:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_5]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_5:%.*]] = freeze <8 x i16> [[WIDE_LOAD_5]]
+; CHECK-NEXT: [[TMP10:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_5]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP11:%.*]] = bitcast <8 x i1> [[TMP10]] to i8
+; CHECK-NEXT: [[DOTNOT_5:%.*]] = icmp eq i8 [[TMP11]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_5]], label %[[COND_0_5:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_5]]:
+; CHECK-NEXT: [[NEXT_GEP_6:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 96
+; CHECK-NEXT: [[WIDE_LOAD_6:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_6]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_6:%.*]] = freeze <8 x i16> [[WIDE_LOAD_6]]
+; CHECK-NEXT: [[TMP12:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_6]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP13:%.*]] = bitcast <8 x i1> [[TMP12]] to i8
+; CHECK-NEXT: [[DOTNOT_6:%.*]] = icmp eq i8 [[TMP13]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_6]], label %[[COND_0_6:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_6]]:
+; CHECK-NEXT: [[NEXT_GEP_7:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 112
+; CHECK-NEXT: [[WIDE_LOAD_7:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_7]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_7:%.*]] = freeze <8 x i16> [[WIDE_LOAD_7]]
+; CHECK-NEXT: [[TMP14:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_7]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP15:%.*]] = bitcast <8 x i1> [[TMP14]] to i8
+; CHECK-NEXT: [[DOTNOT_7:%.*]] = icmp eq i8 [[TMP15]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_7]], label %[[COND_0_7:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_7]]:
+; CHECK-NEXT: [[NEXT_GEP_8:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 128
+; CHECK-NEXT: [[WIDE_LOAD_8:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_8]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_8:%.*]] = freeze <8 x i16> [[WIDE_LOAD_8]]
+; CHECK-NEXT: [[TMP16:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_8]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP17:%.*]] = bitcast <8 x i1> [[TMP16]] to i8
+; CHECK-NEXT: [[DOTNOT_8:%.*]] = icmp eq i8 [[TMP17]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_8]], label %[[COND_0_8:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_8]]:
+; CHECK-NEXT: [[NEXT_GEP_9:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 144
+; CHECK-NEXT: [[WIDE_LOAD_9:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_9]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_9:%.*]] = freeze <8 x i16> [[WIDE_LOAD_9]]
+; CHECK-NEXT: [[TMP18:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_9]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP19:%.*]] = bitcast <8 x i1> [[TMP18]] to i8
+; CHECK-NEXT: [[DOTNOT_9:%.*]] = icmp eq i8 [[TMP19]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_9]], label %[[COND_0_9:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_9]]:
+; CHECK-NEXT: [[NEXT_GEP_10:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 160
+; CHECK-NEXT: [[WIDE_LOAD_10:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_10]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_10:%.*]] = freeze <8 x i16> [[WIDE_LOAD_10]]
+; CHECK-NEXT: [[TMP20:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_10]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP21:%.*]] = bitcast <8 x i1> [[TMP20]] to i8
+; CHECK-NEXT: [[DOTNOT_10:%.*]] = icmp eq i8 [[TMP21]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_10]], label %[[COND_0_10:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_10]]:
+; CHECK-NEXT: [[NEXT_GEP_11:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 176
+; CHECK-NEXT: [[WIDE_LOAD_11:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_11]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_11:%.*]] = freeze <8 x i16> [[WIDE_LOAD_11]]
+; CHECK-NEXT: [[TMP22:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_11]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP23:%.*]] = bitcast <8 x i1> [[TMP22]] to i8
+; CHECK-NEXT: [[DOTNOT_11:%.*]] = icmp eq i8 [[TMP23]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_11]], label %[[COND_0_11:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_11]]:
+; CHECK-NEXT: [[NEXT_GEP_12:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 192
+; CHECK-NEXT: [[WIDE_LOAD_12:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_12]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_12:%.*]] = freeze <8 x i16> [[WIDE_LOAD_12]]
+; CHECK-NEXT: [[TMP24:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_12]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP25:%.*]] = bitcast <8 x i1> [[TMP24]] to i8
+; CHECK-NEXT: [[DOTNOT_12:%.*]] = icmp eq i8 [[TMP25]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_12]], label %[[COND_0_12:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_12]]:
+; CHECK-NEXT: [[NEXT_GEP_13:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 208
+; CHECK-NEXT: [[WIDE_LOAD_13:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_13]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_13:%.*]] = freeze <8 x i16> [[WIDE_LOAD_13]]
+; CHECK-NEXT: [[TMP26:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_13]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP27:%.*]] = bitcast <8 x i1> [[TMP26]] to i8
+; CHECK-NEXT: [[DOTNOT_13:%.*]] = icmp eq i8 [[TMP27]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_13]], label %[[COND_0_13:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_13]]:
+; CHECK-NEXT: [[NEXT_GEP_14:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 224
+; CHECK-NEXT: [[WIDE_LOAD_14:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_14]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_14:%.*]] = freeze <8 x i16> [[WIDE_LOAD_14]]
+; CHECK-NEXT: [[TMP28:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_14]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP29:%.*]] = bitcast <8 x i1> [[TMP28]] to i8
+; CHECK-NEXT: [[DOTNOT_14:%.*]] = icmp eq i8 [[TMP29]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_14]], label %[[COND_0_14:.*]], label %[[VECTOR_EARLY_EXIT]]
+; CHECK: [[COND_0_14]]:
+; CHECK-NEXT: [[NEXT_GEP_15:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 240
+; CHECK-NEXT: [[WIDE_LOAD_15:%.*]] = load <8 x i16>, ptr [[NEXT_GEP_15]], align 2
+; CHECK-NEXT: [[WIDE_LOAD_FR_15:%.*]] = freeze <8 x i16> [[WIDE_LOAD_15]]
+; CHECK-NEXT: [[TMP30:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR_15]], [[BROADCAST_SPLAT]]
+; CHECK-NEXT: [[TMP31:%.*]] = bitcast <8 x i1> [[TMP30]] to i8
+; CHECK-NEXT: [[DOTNOT_15:%.*]] = icmp eq i8 [[TMP31]], 0
+; CHECK-NEXT: br i1 [[DOTNOT_15]], label %[[RETURN:.*]], label %[[VECTOR_EARLY_EXIT]]
; CHECK: [[VECTOR_EARLY_EXIT]]:
-; CHECK-NEXT: [[TMP5:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[TMP0]], i1 false)
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ 8, %[[COND_0]] ], [ 16, %[[COND_0_1]] ], [ 24, %[[COND_0_2]] ], [ 32, %[[COND_0_3]] ], [ 40, %[[COND_0_4]] ], [ 48, %[[COND_0_5]] ], [ 56, %[[COND_0_6]] ], [ 64, %[[COND_0_7]] ], [ 72, %[[COND_0_8]] ], [ 80, %[[COND_0_9]] ], [ 88, %[[COND_0_10]] ], [ 96, %[[COND_0_11]] ], [ 104, %[[COND_0_12]] ], [ 112, %[[COND_0_13]] ], [ 120, %[[COND_0_14]] ]
+; CHECK-NEXT: [[DOTLCSSA:%.*]] = phi <8 x i1> [ [[TMP2]], %[[ENTRY]] ], [ [[TMP0]], %[[COND_0]] ], [ [[TMP4]], %[[COND_0_1]] ], [ [[TMP33]], %[[COND_0_2]] ], [ [[TMP35]], %[[COND_0_3]] ], [ [[TMP10]], %[[COND_0_4]] ], [ [[TMP12]], %[[COND_0_5]] ], [ [[TMP14]], %[[COND_0_6]] ], [ [[TMP16]], %[[COND_0_7]] ], [ [[TMP18]], %[[COND_0_8]] ], [ [[TMP20]], %[[COND_0_9]] ], [ [[TMP22]], %[[COND_0_10]] ], [ [[TMP24]], %[[COND_0_11]] ], [ [[TMP26]], %[[COND_0_12]] ], [ [[TMP28]], %[[COND_0_13]] ], [ [[TMP30]], %[[COND_0_14]] ]
+; CHECK-NEXT: [[TMP5:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[DOTLCSSA]], i1 false)
; CHECK-NEXT: [[TMP6:%.*]] = add i64 [[INDEX]], [[TMP5]]
; CHECK-NEXT: [[TMP7:%.*]] = shl i64 [[TMP6]], 1
; CHECK-NEXT: [[TMP8:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 [[TMP7]]
; CHECK-NEXT: br label %[[RETURN]]
; CHECK: [[RETURN]]:
-; CHECK-NEXT: [[__FIRST_ADDR_0_LCSSA_I_I_PH:%.*]] = phi ptr [ [[TMP8]], %[[VECTOR_EARLY_EXIT]] ], [ [[COERCE_VAL_IP]], %[[MIDDLE_SPLIT]] ]
+; CHECK-NEXT: [[__FIRST_ADDR_0_LCSSA_I_I_PH:%.*]] = phi ptr [ [[TMP8]], %[[VECTOR_EARLY_EXIT]] ], [ [[COERCE_VAL_IP]], %[[COND_0_14]] ]
; CHECK-NEXT: [[DOTPRE:%.*]] = ptrtoint ptr [[__FIRST_ADDR_0_LCSSA_I_I_PH]] to i64
; CHECK-NEXT: ret i64 [[DOTPRE]]
;
@@ -153,20 +265,19 @@ define ptr @std_find_caller(ptr noundef %first, ptr noundef %last) {
; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX]]
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
; CHECK: [[VECTOR_BODY]]:
-; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[PROL_ITER_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[PROL_ITER_NEXT:%.*]], %[[COND_0:.*]] ]
; CHECK-NEXT: [[OFFSET_IDX1:%.*]] = shl i64 [[INDEX]], 1
; CHECK-NEXT: [[NEXT_GEP1:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX1]]
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i16>, ptr [[NEXT_GEP1]], align 2
; CHECK-NEXT: [[WIDE_LOAD_FR:%.*]] = freeze <8 x i16> [[WIDE_LOAD]]
; CHECK-NEXT: [[TMP4:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR]], splat (i16 1)
-; CHECK-NEXT: [[PROL_ITER_NEXT]] = add nuw i64 [[INDEX]], 8
; CHECK-NEXT: [[TMP5:%.*]] = bitcast <8 x i1> [[TMP4]] to i8
-; CHECK-NEXT: [[TMP6:%.*]] = icmp ne i8 [[TMP5]], 0
+; CHECK-NEXT: [[DOTNOT:%.*]] = icmp eq i8 [[TMP5]], 0
+; CHECK-NEXT: br i1 [[DOTNOT]], label %[[COND_0]], label %[[VECTOR_EARLY_EXIT:.*]]
+; CHECK: [[COND_0]]:
+; CHECK-NEXT: [[PROL_ITER_NEXT]] = add nuw i64 [[INDEX]], 8
; CHECK-NEXT: [[PROL_ITER_CMP_NOT:%.*]] = icmp eq i64 [[PROL_ITER_NEXT]], [[XTRAITER]]
-; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[PROL_ITER_CMP_NOT]]
-; CHECK-NEXT: br i1 [[TMP8]], label %[[MIDDLE_SPLIT:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
-; CHECK: [[MIDDLE_SPLIT]]:
-; CHECK-NEXT: br i1 [[TMP6]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[MIDDLE_BLOCK:.*]]
+; CHECK-NEXT: br i1 [[PROL_ITER_CMP_NOT]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK: [[MIDDLE_BLOCK]]:
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[XTRAITER]]
; CHECK-NEXT: br i1 [[CMP_N]], label %[[STD_FIND_GENERIC_IMPL_EXIT]], label %[[LOOP_HEADER_I_PREHEADER2]]
@@ -187,7 +298,7 @@ define ptr @std_find_caller(ptr noundef %first, ptr noundef %last) {
; CHECK: [[LOOP_LATCH_I]]:
; CHECK-NEXT: [[PTR_IV_NEXT_I]] = getelementptr inbounds nuw i8, ptr [[PTR_IV_I]], i64 2
; CHECK-NEXT: [[EC_I:%.*]] = icmp eq ptr [[PTR_IV_NEXT_I]], [[LAST]]
-; CHECK-NEXT: br i1 [[EC_I]], label %[[STD_FIND_GENERIC_IMPL_EXIT]], label %[[LOOP_HEADER_I]], !llvm.loop [[LOOP4:![0-9]+]]
+; CHECK-NEXT: br i1 [[EC_I]], label %[[STD_FIND_GENERIC_IMPL_EXIT]], label %[[LOOP_HEADER_I]], !llvm.loop [[LOOP3:![0-9]+]]
; CHECK: [[STD_FIND_GENERIC_IMPL_EXIT]]:
; CHECK-NEXT: [[RES_I:%.*]] = phi ptr [ [[FIRST]], %[[ENTRY]] ], [ [[SCEVGEP]], %[[MIDDLE_BLOCK]] ], [ [[TMP14]], %[[VECTOR_EARLY_EXIT]] ], [ [[SCEVGEP]], %[[LOOP_LATCH_I]] ], [ [[PTR_IV_I]], %[[LOOP_HEADER_I]] ]
; CHECK-NEXT: ret ptr [[RES_I]]
@@ -229,6 +340,5 @@ declare void @llvm.assume(i1 noundef)
; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
; CHECK: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
; CHECK: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
-; CHECK: [[LOOP3]] = distinct !{[[LOOP3]], [[META1]], [[META2]]}
-; CHECK: [[LOOP4]] = distinct !{[[LOOP4]], [[META2]], [[META1]]}
+; CHECK: [[LOOP3]] = distinct !{[[LOOP3]], [[META2]], [[META1]]}
;.
More information about the llvm-commits
mailing list