[libc] [llvm] [libc][math] Added missing floating point exception for atanpif16 (PR #186597)

via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 15 03:40:26 PDT 2026


https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/186597

>From 0174c55f047cb20bd12c9a747c48861e19bff09c Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 14 Mar 2026 18:49:20 +0530
Subject: [PATCH 1/5] fix: fp exception for underflow

fix: fp exception for underflow

fix: fp exception for underflow

final
---
 .gitignore                           |   4 ++++
 libc/src/math/generic/atanpif16.cpp  |  13 ++++++++++++-
 libc/src/math/generic/libatanpif16.a | Bin 0 -> 114088 bytes
 3 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 libc/src/math/generic/libatanpif16.a

diff --git a/.gitignore b/.gitignore
index fa133b2d09834..9294f96ad0adf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -87,3 +87,7 @@ pythonenv*
 /clang/utils/analyzer/projects/*/RefScanBuildResults
 # automodapi puts generated documentation files here.
 /lldb/docs/python_api/
+
+/libc/src/math/generic/wrapper.cpp
+/libc/src/math/generic/atanpif16.o 
+/libc/src/math/generic/wrapper.o 
\ No newline at end of file
diff --git a/libc/src/math/generic/atanpif16.cpp b/libc/src/math/generic/atanpif16.cpp
index c54087c7165fe..6682b886fa7a7 100644
--- a/libc/src/math/generic/atanpif16.cpp
+++ b/libc/src/math/generic/atanpif16.cpp
@@ -120,7 +120,18 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
   // Case 1: |x| <= 0.5 - Direct polynomial evaluation
   if (LIBC_LIKELY(x_abs <= 0.5)) {
     double result = atanpi_eval(x_abs);
-    return signed_result(result);
+    float16 s_result = signed_result(result);
+    // clear the underflow raised by casting
+    fputil::clear_except_if_required(FE_UNDERFLOW);
+    int rounding = fputil::quick_get_round();
+    // values checked through exhaustive testing which rounded up/down and caused spurious or missing underflow
+    bool except_value = (rounding == FE_UPWARD && xbits.uintval() == 0x0a48) ||
+                        (rounding == FE_DOWNWARD && xbits.uintval() == 0x8a48);
+
+    if (result != 0.0 && result < 0x1p-14 && !except_value)
+      fputil::raise_except_if_required(FE_UNDERFLOW);
+
+    return s_result;
   }
 
   // case 2: 0.5 < |x| <= 1 - use double-angle reduction
diff --git a/libc/src/math/generic/libatanpif16.a b/libc/src/math/generic/libatanpif16.a
new file mode 100644
index 0000000000000000000000000000000000000000..9ed17bd932e5928927ec005fa26d170c465af316
GIT binary patch
literal 114088
zcmeFa3w%|@wLiXdj*s|iqE%~s)DRy<Ma&5SLPd?j#zX@~9*T;dggoGAUgm+=LJbCN
zLZs5Ft+rTcZy(&&w)D1EYEgq#K(DQ-wUt)d#@1 at +rIsp1^iuhM*UXxI*4cY@&N+bI
z|NVXLe8`zO-<etKJ8RZF_f8lwv8Jtd{)LC1SCATt#8;h`p9KZ6lH#HgRi^rI$8o;v
zIOF^O at 8|z)@c(Nc$a!RrBYxu7PK(9j at y5mlP4ULW+}a5>9W~9ZiH6uXck-0jxVYml
zFs`Asvm?<sZc5c9iH`OPRmh!G%n5g<s&RRWOs-OzXzr+QYp!XWFr{jGeQQNiYhy*_
zv>8Ql$eMX;YrR|K@;4#bb;l*z<IVN++yzACKnjkHf#gJUL%gLe-dxkH6{HX!UsvBz
zlW1%&F0NnLT3_4I9-rIN(ipF8X|79jBwCs)=DP0OneiFL88o_7HF`#UQ^svJl!k9}
zR&rxx%=W}QbV8zeUP!C`-IbMw2{(5p>N}L=X*1#_GoZ`u2<^F4FB(4&H5b%0X42JJ
zks6Oyf3m)<B@@BfIp>&~x$PFmVH1|r*0gt2)afw-=Z=r5ZEc-U-&`}du|A$?sF+<-
z)80my8=C-%4UH`|9n>$aEf^~C1r;;n?(q3Vao3$u5_d~FX#C6=n}Hu@*S_(cVB&R2
z%HZ(3Np^xK6=&EPGdfz at YUb7ZM~z!TZfujGd at hSgBP&l*-IQofbky5aTTBv0KSomu
z4aN9eOrzm0Bqz-<S*7m6)|Te_=8iF#&Gt`JtmKkJO?!Qvk%(@Z1_$#rxMAx-COl&?
znhp{TiQ1axx{~C8Oy^c%?H*U(T-#DtuNeA?Yfvgw)DPrbT8tr^obA-|w685mvCNpJ
z_PP7ni?ZF5DvDJX(h^%&(cDqd;ktTC9+quO8%!9BV^oKkKZUfJe1?@djId;1@}fbU
zGwf8G&eW9!`xCTU?@er_^+c`a={gtf{$M8R6eeog8dG(}jPye+WX7VQsy0(<`-FD5
zw#B$9?P6T#X0s4yH|@uYX^n5HY3 at k0x7TDchlVsZe6N_<92g=tXhSupdRv*W=`R+W
zd}~czqIL=`;T4rl<4Rm_Q#`ZT;!wk{>sZzkyr@?uiqMlY^iJG5ec5yu*R)sERnCpM
z3&`!m=cd+{##`&LzE{*;R;L4$S?D&_w|C5pS2mTV>^Dl{7^IV1XBLGX6W~eB^=*mT
z*jUVzwKv77_uE=Jo9i-|;6l2{-t%TZkus*TSdXps^_ZOIUYfz$G0fanN=yCzFZ0PM
z(lRrKj_OPn=2CBMxY3P`?P!U&>rGc&Z7ajQM;z$F771_X5Lkv1 at U+AMqMdMS7bG%p
zso^?F*Z|IOW7tT~&YlU(0=kv^>X<3LF4y(_^hvL|9S6M2g=n;1o&IdCH%oLK&6HTK
zGPybknG=H3wmJap*9kf(Gwk$iot34ZSZ_Nl^0QtX!~D6}4L=|GC&jExx?hW{edgY;
z1-9;gYH?M2#S9i$F-2zR1!g5m>s8h%7d?N#j+T(+P2c- at v?N;Z+tHGQ%b9V1kCu>^
zGVA(?V}FDNSSrk5D$aP6#nK)tFG<X!W1QM#R?aPQn`r(_sEuAm%V~ywSRA9x8n!Nt
ziQ0rps5^%J*s}*`JfDu#b3y8wVQqDj*Xq>5`i|PRF`m%e($<9A&rc3_fn%!}E8?we
z99wH|^jkN}>2LKKJKEdK@`tTGjoB&FFP=2B;)-eUN_Uz*KTw9g*h{|y%h<il>|(Q*
zT(ZI at m;J3j?7-URJ(qvP1_tN8HrJc~4)pdFjFY?W{oTH%2)mKCocq3gg{+jhEzs~L
z?AyaH5i;?iWWz&`8~eQYC1p1q(0y%+iT86?pCXH9Z*9+g_0g2>3cEZEPM_oI7k1R+
zAl@`LFzo1&#Mqj)wwhZjnkt)OIHxV#&n}ORovZGZX+6n!85w4G>)%Y&E=awmKA@{q
z>f at t*?Iv$3IRM)ePu7I?&bfL;%i#1|e>1i&;a9pTZi&-5-#P7fd&e{-tPg7T`5>aU
zNWO;e`-GAD48|uXIBbS-1{yZ8SS_x%IvUmU#tPh|jSGrUS8PRb`5;g=X)c}y;k=+9
z{CO9E(=X at edZ`@|6x%q%GLH}^Z%&R)XzpyH>o`2>Z^C1zc!Hk6H_<W19n(~^(BeZ`
z)X%J!hZ)od;+~9_FW-JWu!7x)4p0kZYG(&#y|Hua=h+(-C_08_(%?32LQ`jBN8*;2
zwz^cm(6g$Wn0`6mweoB`Gd>%ash}5_l9Q6gw$D#AVEa#({Szi9+VEZiUPZvm6Y4CW
zrfYM9Yox{?wwT0XNL!ZfKx at o&pW<;;%GV0o{igbHJ3r2*S1UT3=@D&xozI_VjG^0N
z|7$0nq4u|V?zGEiH8#0L@!Cc;9Nuq5Mo;Q%G?;2t-`YmMHb83m4Cg}o4T at e+;7R&*
z3-X;*&t~biV~sw6bv9d<=al~6FN(1uOfPX>sfJ<dJ-lyi;fLbBmRP2}cI)0GSg<MK
zUV-H=Ftl(>m{ngj*QYI?mULUDq-z(<jMKBr;N0Tx4@|7qlfB(%V#T#>^)(&!^uA4J
zJxv(ec{)O`YrRz at YzD`3s(ss+WFjzRd9oP6dU6G~lx=cs3_XvD*EBZ9u^qL(e-U&b
zY}EY|Hc#XMpR$bmSTVLN at s<VkZFtY;7D%%BqNScWai{eu>#S`NXf2m^eTnV+`eNZw
z+|fc_&8wf>2_-L2^y_&Y_4C?l8uc2|jB68GhFp3Lr at f{L-dlmq5#GYXXU2CW!?;`K
zTZfdXF=@QmSnA|k5*_pLs$g4N%Psl<rB~&d@#)-PUYPOXAg}l2S0(WZ1;nfy0E=X+
z{f1eAvGABT#m2<(1^=eo79-IdT>G{**3{PH at nv&MYem(RCWPrtuJU_sRZ%?Hu(4>E
zY6mr}6b&OlZ9xJ<C3Rd>;Cg{xsf>Y|nya&2zccpJ{oN>JtH{1l at K0cAUb~^~ZOY}A
z^=zQ8KhsXw5SF}-JFu_asAqcU%1oZ=Ww&tou8gy}PYAgrwJ(r9Jy~B(cX(IRzKJ{h
zZhCwJUKge7W#5|{Rsm^ymzKN(dFw**d?zdWtxL+(==bkoCSPy!km&_Un)?jek9d!w
z_wzo3WVz-o%l*60u)EuVyVD at 5sdpN~c1Xye2tKQ^oHB+L95$?jlEe0*O_sB&WiO$&
z$e3%?7CG%$vF?$BoKjzW_DKzH4QW3E3LofxCh+c-x>pLky11{eZk77wzrW(&SLyGk
z at b^*n`zG4zslzx5Hf_Fr7|-j&yx-@>76$fuW8Jp4=9ZcncqPjFJ)=OOSP}gqQoNpu
z1~0;5CCS`)%iJ4XCn;)li~1G5u;1GoSE7GgZ$fE|Q`Lvx=2lLL<mBMj_jJf{E_9OL
z4C*)qhb7T61(!L$MZH<&y?-fRvVA3>hP<cyorYd_Pea~Q?jEOn#o~8|sHB%TJ*UTg
zXSw?h#k)N;@5j5lU(bo{Qf1fV<SjcGb++9tD|+Y+R<s1 at 6GU(5 at u=f$bpPq({dn;|
zSt1DSf-WuIP<(IO?I@{vCb4E<D7yR2ynN!|4Be#)J*`^x-nJ`rwr-T2^|7esmwJM%
z1~#uj#cQgu>f_D4qun8BR3Ar?+J?N*8}jby&-?O*g3Wd{r=nB}(bpnW%@F-2zAaZR
z=yCsI8Uv~BP~P4BTH at o%T%^sj?V*4a4 at myY&`!u8YFh}}Ldu4g2qnLHA|G{!Za~|H
zZpBBhJFsN&fRpPudCLlrg9>b?M>em`S at KRfenGTn*=>9G?#)|zKJsJzRQw<UKTY7W
z6H_boUr at drvhL~E`O8%)EnvA4Lq7Dp;+A*yGs<Gij(~_f)$VN{M^ZL?OWqySHM`vB
z;a~K-s+#^?Xfk!zZ-ns at +6>Bk+Ge+RYiZO&*YuN7 at R6@RRDS_k(TYaAnKygG&?05G
z{ChQUw7ZUqQvXgxYWA~l=H0M?B&;QPt+MoTrEs<qyoTU4%Gw`R+)S7LN;C*ENaE4%
zYAQ`1Nw>M<X66d`8p=D`U5Ns!HPG*_9C}%)JKF6 at sf@g-Ks327%IZ?&{swV*BR3~S
z<R1sb8G4wd+_$aJC{*Pi^Ov8antLBfyic`@df#(ZGX8r``I4t-{<!{Ud8g|6q<edQ
z at 8Ugui}wsY06pd1Pvuiy7s{CYg7RJ(r$@Ux%KO~iyPTZ7rDr0S)a+;|&--+L`A?`c
zLRWcgGmz$fDm}D~I$xDiUnw=Dh9Q&`T>rC%m1;ig-d^O%=fc;xJG>eyHK^+1gMC07
z2H#I1t%%Ry_*{<1a(sb`C!0>0oOkp=rz;BD&MpLBvjKF9Z1(uM%^s>Ym7c8aLquVm
zeEPVuAFXO=7 at c?OQqrsJ$N5K3rH0IcE2)zCv+y;4D!yLxB)KvPEYtRet;x)JkD!kr
z%rCDz*<aLn%yIALJ%aIHgfFpv(|t+()VJ=Q?!k-l9?|T4{77Cy?{3I>Z)g-`^pa}#
zJybZt-Hk7On2b&bt|bTg<bCgYQsCK7>mw=Oo3&fFAjKZk*VI0EBY9!4eVkw3H+=g$
z_mr<ty=y!QZmax>>%+W8K&t+v{eJ)6-o2jv3eZMn$g7bshE&Z>?N4d1JrH2*wPWvT
zp1pPg53?8Q7qGpRop)cPC&{6Upm!UMD~#O1p^FtA^uvz5d5>&H$yY~g2G>_rCauAc
zU%(EM(!Q7fL|u{We`D|8!o{V1ev8@=gRp}%BMfrv^sBE<K7SuDco~mZH6NI1Wmh>o
z1WI^hdy9YX2K4e!LvOAoszh at Ae9Z}tMQD%vHX8M|N}ryS_ha^9%A)dRJv+*J-syTJ
zr)TP3T8G|S?jlAp(6`Df(b?MmBqbRnf1<5)VqEm{ywvON=<D18Hak_0`hd~j=v%xq
z?~%?o`1=O5EANqKCTz}ou-_2Y#`Meg%+j+V*1u~5*uTv?t`C6}7-*xF>_x_M_w7_+
zC}HF^^pXvFrv8h(b-DX5?Ccbm5Wd^dg1>^W-V`+Sx!dy|!JzK^tJfgx3;Q~EVt11F
z$SmC~RCzD&ksZ23pZlKZwSfIn`%f6!+8?lQ_iox<nC4-ivPdpp?fDWdQM+gW=nn7_
z-oEKhvYW~F(D6X^o|FWe-Pr4~{@#t)oW8CaRgO+ZO>J>CDR29x6vl%~EADY$q9LcM
zzhtV@#%zoFqN~r7)jcjWhk6Wq+)W^`$w=6YjLkv<ty<-q+;udby{50xrB^K030^<2
zYQWIdp6O7-^AG9|TAFuY%{XK4ZA!ntGnLVmy_4(98GHBAoJS)`2W$VO>tBDqncp`-
zrYBj*7hIh#$06TXO8eXL6>8%|{j|;hovPDxvK+I;UQ7TiSGH%lV`c>^tOK`4%~z at 8
zeY-NUZ~S1GE4ZN-LmXp<hWNdn+hT}IePnBAk==e+1JToalrY$L!{Fhjs4x~NdiF-)
z$EnS#23AupX88AFv17Bb8*AA#gY<6f-k7KAp%OT9(^Vw-_NDZ+F6HS*pY?X`Bokp;
zFv61K)W|gQR9S2drta*`l^RVxt?#sao9~&FH@<7}N354SU{ad=V4Gfdr|Bq^?RB?f
zf_oQvZ({X+Q*rnD?=UQ!w44~Tc<sexXHKkouG4Kb`Mf@(58qP)A?1v{QPtNe9cbD|
z?N$3VV<?W3@^;XY2a;;F#8j+L$SJ~5hsvX^$+Flc^-bM{MO0gv<yrh$PisDZW at Ch}
zUk^y<X8p9kp at u*1;BciScqTIX8+r%ydeqyg8?|Ebzf at 6g7CZ;iU=$ES at 1Oz10n-z&
zp|IysH1>hNx9wx5=nxlu4PK3+`q)lIXrCl{5#>1u`!@8x)6hFr`G_2Pa29;!g^-3d
z7V>8fqj}giK_=TL`ate(Xh)+vWH>(6G-uQP9tS3~;&=(qL|;ZDf+#Ho$)#+g`xm-i
z`HOK at d7)tz&G)v^m?uf_o3*MNFp$?`qSykz+)}<_=xj=>j2`#bu<RCy{I%}dUiUYs
z`5XPkyVGd1Qlk at wN4UrRC8Ye)NO=JnFZiUWm2i{0nVMvbu?`%0f$QUh*A70PidD|^
z2Mq{iQ<|ahMSD9`>itT&-fNbp>@}g(%&)2A1;!XuOl_lurdP}^<$ay3Lx~<N$4c-;
z-(a!G_o(g9eow8RQ+JoI!z~9wo>P8WPU?DxwSMZ3@^#cggf8Tl at 6Rf##n7j;H<?<Q
zX<zM?-0+#{*T~N=>)GAo{!49S^+HB-I at TY$_#z(Kkuaq%clY#l?$-NMJ-4HbZRAod
zkAIQhUj}$fc<81}52AAA-J5cGNEyfUTuLW;==3tsGxhc5Q(y1Ng;EVGZy4y_R?=I3
zkO!9cZbVuSFj#Fsjk?}TbG7x<-2y2^F!L4hOWIf6xE#2AB^$d%+JE_WU`oHwzxLkd
z^Do at T(Eg>jbB9`NxA!g9n<bh=&@{}9?jXqPF{FpymU2v~vY|?~XfN$==mJuiB-{PX
zl8v<X8f$va1Rb6|;W)I}*JZHo at WN{H<$kPu!(fTIui9~2`3NFzb~>iK>L25b<v;NT
zVoG77pY1L8J1`Ua7aJh9gNda4|FQiRt?$Gc9ZWumsg7sSq#aWDdS$6in0L%(#Izsx
z8L9rfkMrx at q4O*4M|PJ#u36=>CnS5>u=V_*jQFs9ksOHadNdb>w0CTBhYIked+|;u
zZxvMbxUb^~wuOY0cQ4+Olh-}lWb1o!HKIGWEO%e01IB=ovQ6E<P);p27`^UhSkX)X
zQ#Zpzo7|mBA}zq({W&ytwmkqpg0qz+-Gco=%~z@~Kvv1e(u6j1zd#M<M}>Qv2f9Dt
zlG|}sq50F at nY_jr>~jZkS%i&LU+1f#HMjP;TlEIX+w&JC$w342qy8mdLErN{=<zrP
zrI5q3C+@<wsb>ow!WYB&4$TnARwKjPkh6T%U!Ff&I;@PebT8iF<bB at SW7m55!*m&4
z34<z4&uB=n%isk&Py}T}pM5!{&xAeD5*kC;bYU&=EUdOXXuJoKZK!jm?(DntptCmj
zUV2b at EfzXc2f9$!e?F<|8GvLpLdie>u8h{}_Aht;j^{8+85*EHW%;b<F)9akJ(*LU
z=WYOuxmmRjey6;dZp6W&AMhZu*GW%ZM_VS at +|9bVRjK<8#YB;y at xS4fXnD?NRYKWg
zQ$Nj*-uGC4(uLSw`Nn at V^$kNMYQ at w`e{wbO{Ef at wGOlRJ8#MQ0ECdUqT|&O<4=q3J
zwn>zSJYN5$dL<8Q1x_`9&&QdL_b{eKo<3U7a`x=qs}v?hq~u3J@~LP0Xn#k}hTGTR
z`b+IM^H=)wxMlw3%}VNRra3g5-7>bc{w<o~@A0E<wd_Cj^BT+t%FTwz!;MSA_mW?>
zD33ee-IBLd4?S{Cha4B4Ie<%_!_fMT?p{Yt8QaJfsz!HzF1hix$Dkb9Ip)3><0N%<
z68)(-oBe8X9pnBeGNVcPu-e8D571Fd;2_hdE#H>%-l=F3e$-*Yr!Z+B7mqerztT-x
zj{cOp5NZ$WFChJ9MZo%_n%cd12y4w1s at 02kt4GA;=X7E=cq2y_=qpt*P2=vXQJUR%
zb}xRlEN>}YlWjYmK9nFeg{UQFXxleoGb{vVO7Zx1FUBp~GJ1Hnt_&X#wJi^^vPa%y
zxFXqc5zSKWPUGpwMDXgXy#lZQ{_($Ldl!nTA>IrAo7}-N`i?bK#b_s8{@S0d6C;q=
zf!^4?jh=~bbYJrBZ*elk=@j!GVk&_}7PIAsp+k_yG)6P$;6+HUrR{-ljb8)7v}9nR
z>i)J;(z&KQ+PMxz`?Yy{-PP!S4R&wLks0@?409~*#m15}m})B_b}g)_?kM}FLW;W*
z-m*<kv?O)v+VWowf>;l-?)ym at sXvD>a;%>6!^qE64P;R3*YFNu&9=+YeWp`)<3Vi~
z3dkN|e=72fZKnFZQcyOd{#Ce%lea?Ic9XjsGMsI6b_bl3cV`OxQNUn;p}H^^Ugqtf
zX?W~L25qFp81VVSj@}LH&}YtBo4be95mn_c*-r1YD2j^SvJ=p%P40Fz38=xntN;j1
zI>>WydEa9i>C{8f+g+#|hdw2MZhn7{8;9SkZosY3A0Xfl`ipmO at ic}8gpop(gQ1Sb
zb@%6W?>;r}&d-6?6Z8aK<vlUdq;$~@y(^AIy=DD*OUEHcbwl4Wg3hIrOWx8hKblJ@
zy(^%~DifC{$^JUsCCdqltk<}-*C|6_Asgpei5jxe{W)C}{am#L*7*gj^9%jOv(C35
zV59pCHnEGJG3A~`xo3UlZW~_F(<I<&BY=j6K6iQdINL5%iZ&3T4W`_aDEFjK(eWtP
zu*t>79-r%p+)wfID1LqdXWjC;_F*77KytP{gZ at +Svc;;!KczvtI{9*q`bN(xl^S^P
z8X)(j<OAuvPiJd4QPT%@W5Cy%YAaE#$GGN-#rWFUqw;7o_UN_?Kx31u)-<qrGjGL5
z6q}#qta}sAa*n$t>Mredm#UW^wD+Mu9xq?<7`>&EWYgy^#i%K-#YSJ{q_SGJ5QS-*
zSia(6N;0=)^9f$@ST!P#;bR(nm_U!`Pf at B0KvE$9C3MBZg!|OZ2E^(pY1EYyyyCGk
zL`iiTe3(EfMOjD5sO?;81e9t46e$R%SkE(@_WY^q>Cx_r at hE^HzAT0qH<XX#x#ar1
zA3sK4x!$s3q``$E1C^L`FGg=ZzR>86p*wi=62zl-h9AwP(Yu7uethh5e~PzS&Z5*Z
z;=*q(?Sk*+Eu}+FL*Fve)_}uYL$6A1TLHLS%r at SDq=)!QpnCghSQ!-uK!(~6Ku$pC
zXMk;5HVU*0kb>>bMl$b_hdr|~q|E8Dr~CNiG}))>cW=(^Rf%mQk-H0{F>fiY9l>(>
zTn?E|-(#d(NoTE4I1*5K?_;?p2Nv|w-W0-D!AqW^r6jom2G&1pHb at ax<UuU-Rg|P-
zY9B8odcTR)4JR at WQ+Ie<%Fjm=4nqa&4wMe;gWJ9Vj>GOina}%spK11&wPgokqi|8u
z8s7f$1JS?S;TJ0efk1!Ig0J at YusQaEedbn_HrsTEv%>2b|JH)KQSO(q;UfV?9yTNR
z>g~ex&ZIz4k at fRwzwO;8nENfudm#b-o`O`znhEI^$HG-Yz_AACHeMYuI#rXE_ha9O
zgGDZyGst_r!EIlqap2ow1^9UF-!FS=dzkxt{YW&QY{&ZWe089q_a9|F at Ak~XD<)Iv
zY3gouJO4K3;&)+ozKL3~_zeJhCye)1VA<?mAu;+?{|G+Gi>vJ3zp<WQ_4CU;kN?BW
zFd^r2IsmEOvF5+`xOeG{$CC8;5f)3~Z|+ZV2b6O7po0nBlk^>?&yd1PxxU>$wF>3O
z<|A0X69ZuuwhaC^-*gQwU+wvS?<{p7qg*<WsaRhN^%JC$`bzDkUG7Ufsk2vaVb`Uz
zz`AYpzAxU2qok73ha;Fik_{s6SDs8eE<OEnT{YDLn}E@~8N_jtn>x6602S7z7NjFn
zZ?2-C&sCVval{Iobd#5<WA*UCcoHwgaQn+r+TS~M&}%#2cbBi2r5Wm1lIThTQ<a`#
zd^w;!b)ftRT<WU(vs^?V!I!v7pP6gO)_t?kKQw3I0^zJDaa&p5d$f2hC8a;XCB<)&
z*A`@86;jF at e>3x0M*c!~O=<4;|L^>6JHO)sC~$rsM8Ez&b$$<7KMTzKjB&Grt~tcB
zHF{?Qi-7wE+)vDGL4VEo`BwM#GW9(8ZCdfMs^Ec)nt6KNt$m$avH0jq0X-Y(dwbdm
z^z-zz7$dWjzhEHaF%5Ql7>EN{nz)X*zR?SA88<v-e3|t~j4N+^qndg at 33t(0K0UK>
z{Q}Kjan~>Q;H{*-PI?VfFPw(^;Bt2th9lSw4#O^KRwJMK!|aXC`?iA{4|Rf%v%R+n
z`H7BsRZ>0A9_*R=*7B)uspr``Uro at 1-P;b=&$GQsc>ji%d_3sIjE2#We4ZWPm%6|3
z+t2G?n!sq1G%x#lCl0#i!K_JdH!D at RwONd$d7_s5<pTW-iQgDP`4_qT=Dx*9c5XIy
zrb(Etu1r5`?@aD at U{6p{8%l1b-k|bDHaXB?0jEK;Wq)}4ORWFwioEb+qsL=|%NKd$
z>3{e0Jq-Q#wjBp!Vztz5RxfhVEsp&yEpC5V$~$eeH4i?MrD+D!$}W0%V}C455BW at q
zVIK31(fkIesNSI%Kk8FYW^vWDi&_x+kPr1uVE*La7_>Z?F*G*3cR0K__(&?XJUzea
zek0FXQfu(aABg8sbo-<nF|eQY=5v*eKEw2+lD;>f%o8H-{Yn2LBE^@_qoMQRlI^WH
zv>TJ*sDGdOZ3uo!YJU!(pPMeDl62AgI&Ka_-`XCh?@g&JPHE~^nYXrmWd|KhcaNAD
zmMnhpy+h$I4~9H==tT$Mveqbk;&CdCW$sC6enJmt_27Y*8G89l{9cy%l`{IZFTh8;
zYv?tiHR$Qpx~@rhQ=IxWIPdORm8N>Tx6M~~r4Qmp at jlvOcQ1a?$@@wO>61}lqx)cv
zx^zFseX+M6r^zFF-TOAVFVbnH&wa6bXe at 3Od)<5R<N+^*mF3+|0}I5=h2}PW<?nS0
z%9&e#wc#-)S#}F;uxl~J_AXmV9S9M+ZG8``@4ZioH`GQvS>F9D?t34jT5LXjg{dzc
z6+{j0f<7V$=0xtpik!N@<om^KqcudAnaR6LQ;VL&sLM~IV?MF8+;nO@<)%})Vec|=
z(@BMlAiB+jAbF`t73k8SXW12$sV`&Y?P!s%Ly;1r3txn<%T*P%^Z(`G@)ZQ(nltam
z&*W^@_ha3Q?+NecV=#WWkMHSSb~4GMlMt>)4 at J69AqT7H;<Y=p&pt*OrYUrthNe)Y
zAlQ8w-Gmw;e at DC4QT20_BwRtW5Xvw@cBnpoj3N!`!9ucj1EagzKO*jP?}_ at P5NxCj
zA`L1Oc~lBO1p`1m1bQ>?>=krJi0`wyFq-Zqo?P-8rAUvGOK3*%hU>EDNo;NBJ<OZF
z8jS;5BSq;odL{Z%e7XBzY!`Kz-Zpwem$n~jAkd3rz0202DAA`XXxbX1C?$Q4Du&W)
zsg!uquK`-*mX(s+J_d#`VX9=ex--Sq^s&fJUa#t3p#@|f`aY~AuXt>=(C?+S(dbE^
zVX6>(!M140Q#3!TJuI(3 at Av+-D7nAK1`wNI?D79dTQ~J!mG25@)3t(Me_HPT5xc)M
zn|M5z^wv+cCYeXH$%C|9ujpQ~d(iym2w5^^KZq?OHYPallmUldnRf}%FSM=0PxyJK
z>P`HDshiI>PX4Cn(bo?GtH(2<qnifs(MfB?;(pZ)Na<f!#*5AQ^n0NBvrstydKAvD
zN8$V?6wdFY!i)2jpYm_4t^+cQcdgw|Re5I-(Vi+24!H-GNd_diKgu%FuYM1ff4w{0
z2vRE<BiVFp?laZLs>q`1cXb2ymRhJ(iWai04y><enD((M>cN02sf7w8wZNB2!|?K1
zG<k>=Eu~UkKq`|@$}b4;XVHU6(NZeGNvSvo8HvPK%EB)^aAp^NhoOs}#nOwCWwQKR
z{JYq1k&h<7%vN7$%5vVyn==(Tvo}zYohX7|+PL}|`a2EF=t*4O at +0xN34ingTc>UG
z+q$X<K2&W>Ih5aao-U`>QOHheTj%6rz?1m0yf1IeyXVQWrElU*I{ak~?4y%SMfG6l
z-TX{bQT)Y=j`;B-uitytPoH at 1kn<luvvTc4xvO5AJ-+-~Pee~Y!~MxgU%TkD8z=ta
z(XT%6#G8#{p8UZv_g~a{!#mUe at aVnj_dM_d{}^Z1T>Kg5&Vt&;n&x>0_ at j;O_#?Xo
zvC`48(PIim#yVAQ>@0`Y1PVEyobKc-%+ERL$U}2iVlt<VA^lL83adC5e<=Ts$fTnV
ziIyLPA}Vj9%5 at z2lK@`+0?O5O=Wsr4#l8G_$^1o}f2z#CHkrSQ^J$ao)xSQOzn=52
zm-&&|s=&#>wsQVuDfzCKzlZZ_|LVz~nUsGr>_A}&eVFz~7J2n2a{fs&|EgsDIh=ok
z%#U2-)nCN<XUY7!Wc^i~UqZ3bA3ZOJN>KaOb3W~Fz5GP7{#MSXr^;S_q{q|0hx0?*
zAEAnlL#GI@{*<KriJTu+e-7s>A2a-~NY<ynwLu}wKUQ&mn0?oC{?R1F$gfPw-<qcW
z9?qvDgI9lAvi`}~&{DXZK8*Z`HUQawBIncng_mEItUrhIt7LxUa#eupFXH?#`>o>q
zk+ObmQvQ0*4;w#QIiDs>k6%l&{vOT`Z9k2Bgc0;%+CL{*e<J78i-TVNmC5`$oKNRP
zFJCub`R}4M^;dCzn0?lBepvr(<@{5memy-X{d+h+Z2X<9rgp~(^RJ1VPcLV9?W+;(
z=X~mGFaPRf{vyr~o4;0Zeu1oiU9$dq&JXjCt(;FwoTq<kvi=^<FP8aD$^4TKp$x}S
zi=gTM@?`!*&JXjSIh?<QgqZqb{#?ZQSES@$rWBCPR&hSPe&f||OzK~sM*mjMzl`QN
zqd)3;^XDGUr{DGW^4pT~PsRlf1-d5m@*}f6eiJ!AY<-!-`C;?dBF?`uMZTWERQuED
zU(fm1q}1077}ej(`S+*f-{bM$!}($SPNsz%AuN9)=ZB4tIce%I;{34rb5)x9>pA}t
zB5C?}akBrma(>wSxQFvY`~NT!>^NcdCvyHdRLJOWNa~-%`6Fe%n7<cse%SoDiu1$l
zyPosI=I5=PA2vVlNu&Q{x?)5Kt3Q$RPoqMn{WpmAbAH(Ty@>O}#@8y&KSRo|PRd`;
z`D<i;<lj^Q<^P<2Z%Y13FMki`&q>MG6ExL7S#5kA=b at DRZ+Z16a{hHG`FaCL_2+PY
zUrPQRUj0R!AGSWN;{34rcRlATH#YX4q{OTBZ7b)WEA`J$=I`PBvt at pLGXG?pawvS9
zK8*ai$^40&Pi^(`#rigf^G}rddivDsKj(*yuT^RC*K>Z@{Ir$x!^X!R&YvpzMf3uv
z`d=A-nE8+MyHo0aS{X?7f13J>IDfLNe_PVNt2m#2GtaYcMKXUq=ZCHDTRH#JvVP=N
zkKZ2758EG}tQ0#=n14>>{DzeEwZ>at=WzbQ6#ea<{zaTmuZMc=)5jx+=FC-`KbzKR
z<A2ffA`r0g$U|@(jh^nEMK^QVWl~n8%hNT)`C)5iF1@>j5H{D1<op6EWVndESUKm1
z$)C^p^k%nLf4ZWl#zGJ0Pm=lCl~n#3&JWwGZRY&2u{^~2%ccCtGS5D_Y7ugrF#RJr
z-_}>;>*btZmm)vz$)C^pVSC*k&JUXl)}+bb%=raUzv!PK&ZjGK&;HsKm3?#7BI`I|
zYuQN753_GM=f5N6M|LLL&-qO$`Fb)Y`}J`CD48$rO4e|Gq0AR|A)7frjQ>!Y{9HAO
z;IVtiSRTpwVPm<R^HpTVhd67@=lo*HUz|01I6rKzUc>pHlJz6{vWe`sne)Tef+5Zi
z+l%C?LyY5ujo*=+e}9Vp<X*a*^TYJd=lt%J`pLDThx5y1{-=`j!y3*XE%U`)&t}e7
z&9vBmi1WktLb-eqNSB}9_=xBUitIa*^M8<%|B&b3<(z-6%olr&`J5lNm+0Yq(&gzF
zdx<riAGVj+%=uyS#}MaNN%`U~CRZIo94E{_Msogl>C9~G8(niS8GtyKbAFir%;)^-
z6#aUFqWV3YALc)6IA29Zzqo7K%=yJqz8GIaoFBG6=BkCyaXu;QM>@U!9m)BvDfu^f
z`Q at D7kdm)2L#Tc8Ie$({esZtf!}-%w^7RBl_1AEIc}l+C>{9+_&JVNC5a-8aeQ}qN
zs}^R*3A5iw&JW{P&iP?`@%fyumLb!B;x4RbnEV28Uc>o6l>8&#Q}!o_rfu3L(UG3g
zbhJC1)3nVcjJ80u4WKkF2gh)lh6dS<a8h#ur)jK_KN3!RKwA4LU4WkvoTl~WbWWei
zG40*X;`BL)X-%VgG<Q*4gdge$N{``qEaGvTrZt-KK7pU}Ieh`*3prhe_+m~^;@Cwz
zh129CRR1!LD><IVG0g#2a(V{hnVh}~@ztEBaZEC<!w>l^rElQ48gUJ$YZ23)hw{ny
z=W#lL_(o1QBBphp%Cz8z#t^03 at YBxePQ(j1O>69}oc<KYixGdC(_M&{aGKVWrJTM4
z at n<;Qi+DMw??k+U({~|W$?4B?d=JN8K>S5c-;el9oL+_a0Zu=Ncr~ZLhWOt&{SCz5
z<n$Vjzs>POh`-C}?{oYEj>(_N77yd+$DCfr at uP@;%IU`tKhEiX#2YyMGsI7EdL!aZ
zoPGxJvz&eo at y|K^JmLXPzrgW}9RG&nEr@^1>6a02<@6sA|B=(LApR4lU*-5U#IJLD
z8{)rmdOOE&ApSe2|AF{TPVeM+7vi@${SM-HIlTw*zc{^@WBQZ-WVa|j4&wA79OrU;
zIN~EXeH7vkaXO!4dMSwhOga8J$Km66PM?7Iqntj8<5LiSjMD`i7a~55(`O()lhY#+
zpT+5O5Rc;YXvF7nI)=EI)AW36ET_jKF6Hzm5TDO!`W4v=IbDYMVopy&Jeku|5MRpa
z3dD5pi+ at ffKBjW|3dB{Mp3d=1#IrbkHR9Qvz83LyoW36M4V<n<T*K*Fj_VOOaC$ys
z`ZM(S=iG#kMou>)ZsGLJ9JeFx;Pe8-w{ZGa#GmB!BE*Y1eH-E~PT!8Wo72k>-@)k~
z#J!yELwqNvKZ}_DWIp~m^qcFS=kz^@@8$FtIldq9mpHu&@dKQGkmIi+{u-yhj`$m#
z{ubgjoc=cA?{NCN9Dg72T2B85;vaJQVZ=Y?G`*<y6HfmW at p?|v%X{>I8~>aQ_;`}j
zPa%Gq)0;Sc7V&>_n*QiI{y762zd&C?!c*8l9_0LkhFKs)>F-zi!hcO7;2<CBIL|Sz
z_5&h!9pm`|qvY2aKf#BuWW2zK|K{Tk*hHKvR{c at VKjv(Ww=zy^7KOi at rSSpAX+5Cu
zRhCnIu>Nl3T#1bU$?syEuL_+Tv4|7ClJR48HRtsrjjv^V6yp>{)y_l!NS<1v%MWt-
zqeXU9?Op`H$*6N=5CjrcJDXruR6n^3WJJBU9+FuL*$##(?O{xas$G%!mW-p$iODaV
zS{2jn>OVvS9~LE|`X)^vIvI5e0vG{NeH)RIH|-PT%fHAm{!_-eM=}4hLp1;zUWhtp
zdTE)6s#`XR=ycSfU0X0j)eg>vqw_5xs&;q5jHpAqy<mtsr9lu#RP6+VSyAVLAgIch
zh2Uy11 at fYf8^8#NI<%7vhN#+E+VILC2qfyz&NCRIPE`;D5_M=-8VphAsvrm?s&6d<
zc~P}{4ZtXGW`)$es8gK^@VBT_8^Fi0zZJ2cAHyXYKBoP at it%E`AHa7tZ!mro<F#jK
zd^O{#<E0^>mw>2~2*Dde at Rks~Er4G(M)MhDKB at B(?b3rG>MRU`K%x%q-h(0PEDnM|
zqE1%`-W`J95rX%I;CF`LcZJ}e55eyV!M_lK-yee0$s!n{&VxY^NYtSdM=(U4Zv;Ug
zQHM?<!4P%mWD*Qf{iH9D5p}*FzzB#sKM28p7=qI&Cm5p6x*!N7>d*-&7@`iHhJqpL
z^anv8QRinN_{I?YnGpQB5d8TN{Dlzw#SolMV8IY|wgf>SQHM at v!4P%mq!tWO=anD`
zB<j2xg1;7mZwtY<hv0Pb3x=rkk01yn>g)``>4X>zQHM^8!4P%m<QNQ5$GW|R-W==B
zII2#WHaUlcl+O*p=|ma~QHM^a!4P%mq#6uS=a>L~1U786zNiZ at R4EYEqUv-j08U07
zI_U;O)S**vFkt@{f)|9~bV3e>sB=aLJ~9M9Cj_SxbudI7I$Z}t)S;7hFhm_Xbq53X
zT_N}dA$VB`PN(!>h&ps)4~D2ir}tops*}78r&E0}M4jm&IGy-|A?ncSKNzA8-2?<f
z)VV$cuMWZKwjdayPJIYIKLo!i1g9H@)X<3y7>$bpJ{KG#vZD^&LIgw9p<9Vyh&psb
z5e!j>ZYzQz>d?(aFhm`?#R!I|b9)HBEClZf!TUmRx&aA>sJacY;dC<+3{i(}NrEBj
z(5*=@L>;<82?p$Q0{Gx0DtD0eWEOSk)+HFC4&A^6L)4+$m|(#ECj_Tknqa{GCj_S(
zoM4DLbej_l*yn`cbjuSAQHO4Pf+4DIe{4A21O-FXp<AKUa3r5ox_De*n5Zy;@qWgq
zGyXN)Q>by2s{xLj!igF$V!)is7c*Yw!+)*%cXNQx2FCe%hPC3}oN=SiWZcjAkp>WP
z)S=t2V2I-0z>mIgE}jELlJ{EbcRf((HCzD{Mh@|cpU<f(9Eb`dhk5uYPTc__g^>?=
zcp;}gGmh{iOI)w1aGENgJY8MS_#7Mz3nRz!H~kEUzI+A!QW(Ld6o(}oKMs|Jk>owh
zNsQlw{ws`}Vv4KhQS{|fG^sFhnum|()Pv^%cM3e*tdt{^{4+h=+>d?bWRf$|!;Ri=
z98P%hKIC#PafY%R4woE`<G3CN-oi-oKE&Jz+zm%4j7&4d^>b-_dkzzLVdMf2H}-rQ
z9aI=8^Y9W*ZGqzyMrL at pvB+W+EsPj#{5uXPbuBLX3M18CdDAaPpFnu6hZk__NDwHD
zT<77&Qg_1yg^`4ZU%{!KiwJM<aMO>Il)p84c#KnrtA1(m at XK;^@;@%dGsp<t?CM|=
z7sK%iBgysgQ=ET?>c`~zX!`5h=+MGQave1N`(b70<i5z*;i3zvd~$ufhUH(4aa0&d
zu8;RKelOy}NOFBNdOtay at Z|itjLUxvE?yW(j$d<<yjb}gjKsmnxd0tn7%^Uq=Q*7J
zYh at q0@z%j4-i%WDQUiN_^$zY83nTd8U_5&}hGJnvO*SgW$bSX}3L~y5?u_8nFY^h%
z%){|jg$;0w!bqiuAJ3^pXAxc=z-NMgVdN?gM==#Pf<R%!Se<`2135P<KfHlUC4YDA
z2g<M7JRD|M;VI?kogRKIr`}Za(n1e6Eh&d%6h at 3U@jIa?b(I?Li at ow!a_UEFymxuH
zk^eR2KiwW~TJq~rB>xT%H~zB~NMWSc!%e at xjznSP&H!Gf=8by-_yXn6Mk>G4j#Ag3
zPjXgy<&Aw7t9j!=4~KbGIJAt)e}TU_&Ly1MsqFBmhnw~uq3qx9;cGbcGdN^n<YyjE
z<AlOZYM$Aszu<EYr+#%dm4C*=AL3M@@`vX<{5np}IF8CE&xz_CQsjMB+3hZ`Jie;%
zwi;ib_i$8K;oeV>oUeJf8G&z=5&jJi$8b=g7Ky@$VaLBag`CA|T>OAbIgS|@Eoxl+
z(8JBR_}b|t=V1>&jZ at 3jcr;c_${DHfZ+qq8ekz=;#@F{f+{i!l43fXj!{Od4Jfh~G
z$2=UxR5%#xui at -vB5|4Om*+jGk5iw*gisiH!NW04sqj{W at GTyWX;X#cP9*$g4~JM4
zj!^6PA3XfyoO)j2uXs4RPladmNX}~>Zv6IRqX>W1!=X-vF^3Vp&BIOkch!3F4-cQp
zsn^u_+UeoOe|~ug$=T)MW`w_|)`fRG+>~!o{kzA*Cv$3{8W%5m_)(nto#Oc$56|V)
z*Q2C&yN4V3UsC=1hKHj&R46!{%J21XG*g9c)$hssA50f2{22qhFcJkT9X`$R4+{uC
z+{5YFH-&FOQDG$4!%e?;j3qpIUsR%tJO2&GE{r7af6UB#tiqG`KX5-4URH9B^W-mM
zeEtO_CwZT94dY)^{+7JYG5$ZG$|vu0O!?anCOOIb9GFFgqY4Qx^z=?*+`)ud7)jpe
z6f=JOIKq?nHp>~mQsE;#ImXX_JA%rO_HZMg{wIsVNb)|%*x_y%wlHFLsrnrxQgNo5
zXOj0e#-CrFi17<s_`?O5uWb0o!36tEkB^b_CuN`HJx>7(ECpfg6TI at JjE`6LN#66I
zTUEFYj#?N=-owDWDpZajJb4de%70Yh$$J=sPc5MG$$J>%hq>tJ!btL7#q`UeYQCNC
z at q}0vIxeB|$$KZ$FHz-h$@`@yF8|*bQ+ax`L<cj%H>>_l-aBF1QQ<QnjD59N-uU at 9
zm0u<Ah0M4sDWdYpdy+DibJ#_MC+}6d8DFH<+1ow&W=A*%eO?$z-k;pd<$req;XPjY
zs~P_?8eSMl-k+Eis{;9jk>ve at dJh)Zv?$@pdlgJ~D%__0_H&+mGjE at XiK{S at yjL;v
z_AP3DPTs4S`MFokd&zqh<A>F1o=@JZRI%O?<)6uWm5(xhkQ(pFdlEC=e-D9$k>ou|
zHJ2|`{`qZ>znNE`#)MoLN#2tj$K~%<{+7HaG5+?N^8e(0$S1k{l^7sce?9rFjQ>>O
z$@`E7#!sI><&*aza~Qu<;Tt?T(;0tD;mP}ua>grSBqw<vV)$b@#d+!lPY#wj6^y;<
z`*Zlg|3IVyrVSMc|2cjPexZid8!^8S_~inp-GV7!Bk%!%-y-l|3j6_qzaa2$3;b6C
z- at -VCf#PKJniZV*(`svQvjP$>d77D=@L!AarED?6rCu|068;-e-pnM#2SdlxYi1<B
z-X$!b%2OX1o?jC9vjYEyz)6-V|Crz at +jTMtMxe4U;m4G}G6eq$;}l`b<CXudz-7Dk
zhTtt!2!XO?`8xzI`F~5`vi#3N at V^QiQ-a5n&c75$uatixeL?W!Pccr>>-aJDiIPwR
zDo^%5lD;4u;lq#Bu=8ObZsxs{eE8{H{xlzM){%33xY<XI@!?qRRha0*Co_I2<J7Jl
z_%ZETCUDyQ8vJN-J_Kqn-N6|Ac*aT2<pMYR6vAl?n(`k<ngZb@%lwUkqX|SH{I~cq
z<+06Cf$-nq$KbO3%OUtyfg5|1oZk!FoaYGtgTRZBra<@~@niIsAx(ksLHrop%%g<M
zd29^6Qy}~m{Fw6l!{<*z&c#SmAo+jBkCA^Rfe3`ZiXVf|BM^b`zu?E<?F1qa{u+J^
zF6~VHW&Y-Z#KY_?*NZbymjcO`_Bmgn8viBIMz2}Ns66Sdqy)lj9Vu)GX;Xea<5Y}J
za|Z7e_+JIyBk=zc_`L#`e)uhcOZh(%xRk$1;M<Wle8~4G5Kk$eWKtmfZ}>6gcM*s{
zxRn19j5P{`(<#rCHzyau|1NQ)DG(mkzi%SX$dUc~mcR>;ra*nN6F;WB883v(evxwi
zDavQ-|8g9WO^n`rq$yCl-o}r?k0B6&@ZI<^xYYZOz|TgS0+oLkKc at Ug2t*+Kzwu*m
zDM#{=Jokw5c}P<rIdYtu^?~qz;m0QbJ%LMmZWXxXlkNQWCn2W{X$r(=5I=^Gw5Q~M
z3d&HR@^XHjtk9sGmJr<Rul;tA{UYrXHt$J0$aP2d<6dwu?J5v_9E>T0j}tiU2 at O6~
z;BsD?Bk&iHHsuon|CPX(3Opj at KOk_rbun_jD{v|QQGrYOG?!8!dmbd at ysl7<OZjgJ
z{9sX at Y(jzLNcrXlgK)alF+9yp1>uJZ{6u`GKzOdePgAJI$)4tK_DDZJOq7>$==RCz
zJxj<rLg3~cOnQ$LxICxO?URus*Kz3&V}$$<iSlPMPTb{uX#9upu=((Rs$Ft^I9;?$
z?ti2`<^Ja)QC{vJ<oQmnFJ at f(?QouulPBzXfxzWBog#4Qx7Q1tZVOF6wh8=bfqz=y
z^mM?Kzf0gB7P$1oV?%JdjWlv(`QrutQ6Zn!Zc|?R=LrIr^X*3kF6Xxs1%9rOPq&>$
zzT|VVz~#Dmioj+0j|p7PpQj33wu|;2HoXVR&qoOPVdGcwl<hrL*oSU$4bOUkpC<6z
z1b(`}<@|7lz(<JkX9`^Q%f|&S#}Un?hR+Nk=PZHG6ZqKzzg6ILM`7gj30(S#<UdN3
zm*=2!1un;<#0!LcX-~Nim-f6}l$Z9D{zJFlhQAya=LuY{zeNH!^Dxcxv<4YDa-Jy`
zxLlVdAL;*NM0wd>x^*}5PZ8~s<5bF#{+}08K5V>);nL5;#=GP%*G=hHa-Ns#W=!yu
z^OfwcvBD10{^JBL?J!>8BZYjrLo at a)75D^!mkIn60xuEx^GF*x@|^fA at PF~W<=vvZ
z^xH=Se!h at TXH^R1R}z0kp&Fkk%F|hl0+pA3RX`vD;j(<KLWAYyenYO0lSFyCV>IoR
z^Vo#~m+RoKP}h{dQ^>hUlwTuoTC>gHNc;~UZqDP<Zd88J!MY%=trV!eaz9CH2L-|<
zpGyQ at Cis~9Qh)h`D1Wgi-z{({XQjZU-tP!p at -#Q|e!b>~obcb_$JlebkR$cJBXFtr
zSTYs@$&q?T2wax`q`;*=^az}6X!v|d;IjO;1U^ZWe?s7s1^x?xOF1tK+!f_VMpd&^
zyJYzb1TJ}ACvd5^Rp3%ix4@;|`voq`KO}J3-e(0a_5M-dQjWPdrv8$8k01bnB6`Yc
z?Ef)=Un=mc1YR!iguq{dEF-5=;AC<$zTOqM^ur5z{86?X7Y_+s?$6f=T;5YXFL2Up
z=7G0E at Z%3bAq3J(<<0zHem{_Ksdu6%Fa3NJ%2A;5Ve`Ml<$k6@*z<HHMay|V&NWgm
zJq0%Xm5JV|qP*M({so+koUrqhlrPuKv7)`xgnU{43W3XYT&^RsT~(sIlz*kbD}-K&
z*9m;OC@=ZU5V({t`OEzSy)9tuBloMb1TOave-`$<Oz at F*zDnTIKc(KSLXJFt{a)ab
zkMuWlFM1Hl{!x at KLz)8NgZMG+lKZ{gS>m$21*l7b<jZ}I?DwmL-Q+p_YJnG!5CoDl
zTi{nHRO50y_6c0>e|{8#%k$ASLjI+qyu?oscv!n6AK6~XC)0f+{x2LA?her__dnMP
z{&L?a at mGYL>qPlX_KmW9t&k(zCC?+$4j&Qa-$mN^o3xL-Pm}v|c`lIs6?Pt%=WaQV
z%@OUb5qz!}c$2_y5V#zVw7#5ts4ghyE6M+KAxH9;=N)+;DCc3xNAj0^<oQ(Y6XbdM
zIdCv`o+9}CR^ZnQJTBTR_wCgJm-kmS0>4Yh3A?|VE6U6Bpxi%PEab?0(VIhXX at 7ZN
zR4B?zyjbAUPoy8p`(Y`+R`4Go<kSgV`sa%%W9%>cw_cQ=A>_#YgS>B{cgl>MTSfVK
z0+;jNJ3_DIKVOtTN64YGjFB(>N8+c6@^ap55%_6BPOre_{2<5CKT*c$EfD49dMf=y
zu19&Iyu`!SuQ0uGJ(c#C_L1x97@=1_cRN+!@*YX<C!a?d)81*K{EfnH*9rWuqWl8_
zmvS}>{3api*8-Pv{=_)VVL!l+;d2n`QlNEqFMbS8V~_&jRL0=crxXY$S!RDudo2ot
zOP&u3T+UZN5x6|R3<|svX`}a0QieeCWqVH)xNPr50+)Jch2S>{{1TzJTi{a87X&WP
zcRv#NWFcphz@?uI30#){Z-LA5pNJ|m1ng|ivs7&eKgMpiiSp8JpBK2a+iJ%Ba-I_9
zrJR=pF6A6f9fjcUuTumr%U>#R(rwO-iv%w9-X(A;=LZ6payAQG`sZ$eOaDJeoHv_9
zKVBtpl5hOq{2eP2N4PnME)?bEI=)oklE0j{&k}l1hfE42{|JE}sC~u9m2 at p%-ZRVn
zs$4hazC!L>rVBZ;y>cFI7W_{U<>kIHA at CMa{!;>%{d<GJTSfU+fy?qU1%9(A-ym>V
z{xX5LiSly<F3Xn*yj_%+_L1eyb6e`)4pF{b$dTpc`qC-NUl>w8mvNG at K$JKBM)*ej
zn0cd6lz&>_)dJrn at NR+A+GOOc48aQoPP$Df;{;)O21H!VX~K;!5!6K=2!xwG0DWIg
z9|(khSf%twKc@*lmeUjsa++{s69vIm6bPpu^LOtG1a8haRF3XoDNtE+W~A at 5m!@Fk
zn7@<PC2+Inp>nGQZqCSr_Y2(YVF(`-IO#BdZ%--2cca(LQw0PFyo=|fGJ%`D4V9}F
zI3>;B;p_6@=I`*W7I*;(;LtB{N)EE#L4l7jg(>Fsg|Z6;ULf$(1YRa^GiOqEwZP91
z<+}uarodMV+{}%X-7oNwqWqx1&77>VX+R?o|Fcy}e-sGZ>^Ui?OyFjW6J9NFbJifd
zOW@{gNcd`jpGN?Peu0}iBFY*Rc+3>0nEQwL7Yn>V;AU at 3*<}JZYX{-g0v}5Nhc1De
zIgqke3w*pOjJRLm#7Vsjj%d(_oBLmrPi5)H{C&8BL+}N`;4ArinGavh->U^aQCC%;
zT>>{}D9SMPNWPhq3GWx>DbIW#6!=9{(1b&Eg36W|3~_<LFA;c|z$Xd3THuof-X(BX
z;Hw2bMd1Aczf|CZ0yk at x%I1ZK_*aPX1p+r~D`lI%TS4XN$JnJ>l)sz`a_ACxr2!GI
z7Wh<w_Y2&d#VC7F;8%$9=1+nWmnwl59Hzezex<<61a8)P%B~i;Ir|gdC2+GRA$+yK
zXA!`mU*P5rnX(22ezhq~@!|Rl at tm!b>XUvSlLFz_sFeOF6Zo|PuNJsDt5SBCz|CHW
z at YMppo&XO00yld$${G}S+!Utx2>pe4R_mntED(5&z{><aSK!qGuN8Qg!0QCQTHy5p
z?-zK3zy}3BPvGVkG>HFvffpR9zYv}fc$vU&6nM43ZxVQyz#9d=THxkxld}5--Ym)w
z3cN+&`afaReq#30lwEL?E=2rq)=BkQCh#_aR|~vd;9Uam5cq0=cM7~;;0pvkDDYbZ
zZvI3s at mwhIf)D90gqyoHLdpdGNnJ#JRtwymK`5h3;EP20)dF8E at aF`6o4~gVyi4Fm
z at +O#gE)n=Bfm5Et^KYfVZx`ho1>P<2I|aT};13CWnZTbD_#Fb at F7VF?{K$O$g*f&I
ze3Za at 1zsue<pOUMc%Q)U6!@J2e at Ngf1pb`BKP&L<0>4Y(NAh8V_^%ZBD1m=Y;FSXZ
zyucd;ez(By6!<*?e at Ni>3j8^Ne?j2e1^z{WA9;-aLj3O&_$YzjFYro%e at Wnt0{^nW
z?-ckdfj=bh2L%3{z`r8!?E+sd at FPF0zYzbg3Vf8nzb5cXf&ZJp8wLJ#f!`_cZwUM$
zfqzrr&k3A374W#*F7R)O@<$%4zfjpV0v{#te;0VAz`rf<MuC4v;CBlAA%Q<6 at b3!z
zIe~vq;M)cMeSsf&oc==m*9v@;!2d(wl>+~vz#9erBZ1#3 at P`HdkidT|@aF{nh`_fC
ze4W6LJYIhx{y!1;D1kpJ at JfOIRN##QUoY at G1^$@89}@WE0)I~6PY8Uwz=>-a`_+*j
z(S-=3pDxBn`S5<mD}8tY?`s=<xcR$rclz)$F8`3gpV1W5=g)JV&-q2pK+Z37a$m^#
zRnB2A=KLn-*ExqDapX%mM|~*&w>iJdc{%5wIlFRxpYwLkJ2_i(26O(HvnS_YIj`jW
zDd+go37<IsFFCK~eDw94uE>(e?UC-t(#W#NXCfE(Mpi_YNA8S#F>+tzfyh at PUy6J-
z^3}-7$mb$=NB%AH^~et*{}K5{<eQOiMb<>V9r^djcOpNGJQVqE<a?3tN7hCjj{G?C
zNaWGTPa^9gKaH%9+!J{$@_6Kl$fx at w8zN6eeinH;@>FDFWK(2wWP8ptk^hW57x{VQ
z`N(e~TOuz-ejE8^<b}wuBEO5g9C<OaE$6Q}|CRH%oWJM%KC(6PV9p;SgONW+UXA=E
z@>=Be$WUZk<WG^mM*b_ZJ at U868<8D3e~;{l{3G&a<gLig$Uh?=>(AMc^JLD?a-Pch
zN6t{r&YWi>r|gP2qw8uqYDUMey>?nG7LPYJE at +B3Cg#?TYiRB4NHmV0SKnOUmZ*)5
zy}2_{dsBQ~eMh{lrL(!tUEszRI-}d_8*4^))GzFSglU)CB*bEqZ>_0I)J|z^sp+Vw
zY#LYMy5k#a+B at Pk?G<&Eb7PR?&WtbES6RgePR!&fv2pQGMz+S4CYn3y+nQ?{CrqiD
z(b3XYGq1j)a at vfd__!%mGjDCJcZ*!N)Lq!x(p=x%F{Y_zp^J7JbEOCzQ`_3=NsCQr
z?rb8nqbr&c9qsW%Q)^>I6H#-Gl=PPO#DU!O`qm1PkwUK6WvZ7zM at 60My2UZ-;QEEF
zjfvWXN+{;U`T*!FO3|mRJ-kk1sf-;<^Y3h)o2Y58ucL<SBY$gW7Q1e2?E51ceqt3p
ztOaBThY>D?4dQdrztZ!p_Dm~{eEGmhBV!hmxc0=n14r;civ-Kk14=LhX(clf^P0yc
z+T*P))N7bnQ)UXDna3<F9bZ{oRNGiz(-ub>&R$#J+L35!R$ZMkTy6C;>F!vJs3aN^
zwKdIku`%RE at tVfQI0jWvNm{3}&O!D$VNA{3;hNswUSBzZW~!!zwe4-`W~WOM^D3Ho
z>8YGs<TknEVcbvFx3#3Jsn<ZyQl)Ahol)PEZW=wX^6e%H)v-^VO at 8k3Y*}J8%|3~h
z%ijSMOLK>G%>yW!CgS%=w6yV<rbKhV`}W(!MygpgQUqqP!_eG}l+=MuV#e0Awbk5;
z4M`I=BxC2+&$BcpwH8lW-cSnLFTqA7m~Vr&**9_M&3zG<@j#CiV<y4Q7*kPmO}3;%
zwAhFH`=Keg|D#pseQwCUsR-M`h8SxM+L35(h_|#IxaI_{6{EJ0x7IW!n&%xjO(Bi4
zYO at bg%W$)<zQHz)@5GU2K}{n~PWva at -U=x{WshPV;5bI{*#rmCjyUtmyq-Q|WLMXl
zqe8}K&}M3Ews+2LZfR at MmP^ktoff<G(r8MV?=3zMdPp!!|Ag>X?2~M{{-?^$*tbGC
z)A_oNHg*ZOc0nR5f3?aau9?d8w&>0E^8(Ab)swyc&Tb}Cvt`ygGWJ{&k9ji7CWMH$
zyKI<>ee$Q2EtHM;K1r2cIwn)8wtKA!dIm^*vi|+F=md0HL!vp+p|tGZKuU4?4%|U>
zw8Y!>MOM6nF0is$2CT!1y389^P4Byg8{ZENDOL*6kbcUyc}%Q`FIed|)VqIlaZwhh
zjrN54=9;;U_3=bQ#q64z_BO)Ym~sHRPNiK(YYP_a_=1X=aksIfz0ItcGseZ~f at R9|
zizm&jxMEto(w(O7UMZu*bnS4YgU9CLj+Tm!G~D#gtD}BiTTP>8)eKgOH_>jdX{rZ2
zV{Ck`>*8~Ns5E^bRBSWKFt_4i*EN-v8}zUpR^W&=rk*a`eRr at nVse!U8;vQ)+c8b;
za}SJUjFI$`hhG{))|KFf%XdxPRMXs%Xm76xG-RLD*_W|lRAxK_XSfBA6|1W)(Ww2?
zU~f=R%W#u{?<Q=R<9n>+5_S1*wv at FCrp+jcdzVXYmYo!)iQH{JH3cWQ+66P?G{gCa
zn$M3yDq=qJS4<tF!FrR5(^T=<J>wCQt>Ca-X>jaiD>;O+-6^vb9!7gO>1Hsc_KnZb
zVQz=rjOMssQsBJ4mS#D(TW1n`qhrOjZS^%BSaoX}JL_p<p$;!@M~5 at Iwxy{F4<?<a
z`lj~!j<BU`3|+TFjC#_bpE9`Nh3T<G#)Y-ywwgqHJwLyI<kUxv!*)|v&NU%<QJ1tr
zHrm3R!oT!Qswh at -p11AAltS&=U!O_tqdUldAaNd^#kV?mfZyDjXo!s)jqPEU4YGPt
zaMXu+QB%`!`X)4WHg+U#X=$q)+de<hfM+oDz<I*tL|c6=J*jeIu6iJ&?vc%&moJxR
z#^SSQ7Go3ZV#m6FT8a*YmT|$^JF(F96HB{N=sH$U2yFXO%chDBDLmX79&A8cd-e at z
z4A$9~AsTcs+wg>W*;KxVpa;&g+-aB3YHV`jwT)zpebkn*hox$hz4d-Ku!vi at KRUB*
zrcI~sVRq0d8)pQZa##loo0YLtryNKEvoiK;qRV}}GT#p*XXPfEmElCqEgkivFP%2)
z-1d%|+M9-7R%5rc;Ub40WZyX4WSYf&u7777X!?z4`T<d9*@lNHv(9;0G%9K58_CX~
zzh4r;JRmXTRSW-qCK1-9-toJ#xRlOt=>Lw+cD?h8H?*}hnN3cp1gJ{c4TTphE|D8D
z+z`dv>aoFTtFLp1t0bjoS}BIjVZ6Srt+^#ljj=8js+j=>S#08l8NlALG2m1Qc<=$y
zLVjS*s$p98%h6IUKojJ;;JsfGQ(V_bRBvw9)YY}&fh1eMem<NI7jAG@|LWpx8D0H|
zY}(~xPLId12G(U-7;he- at NnH6oZ83XMNzuSYMSeeZtrO8sG<1QCKb1}(2J;93Y=72
z(V<=+&AwjKKGsX5ucy}za}%o#OibxL*I|jKR;+`sRA7<Hz7k&L%&L+{Q72U8j6Agd
zX6)Ky@!>|WcL>6W#ZEp$*H0tZHv+U^xwEmZ=C%uXn7D3cv*o&-FReo_+ua1;T~{W+
zX8#x{vmYoH{zYtpZ>$gJfpn^f#cJ__cSoaoL#_grv7CI+V0Drck0;cl>A859(|a7@
zS!nv at xakjDGb>BlZ*J?TsDsa1dZ7j(T~7?3Uxeo(_3a(FgTx0OI3U3tN2G?Ezw~G<
zsl~hM`q4}n#o-CW-Qn{=a34w4 at o=@;ZFr^c2Ptp&)6$l1R*1=0?C3dA1|5;9c#OuN
zc>kc_eJ8eC>WZSZ at zyxjPI?F4VodU%neob|(v*%WiNlrfFU^eB+R}JyJ?`GJmmL@}
zG&(Cw at fL18>62Jg{3DUZOifMw%|seMMRDy4#q=b;qb;!@fme8Mjo0Eu;f}UW+{54j
zW5tXy at WQd`ijYgke5G4&r6-YD6vQ}Vi7rXk&m1uoz+(R1 at HMPXJ=w!Wk(gfo*Egz3
z`PTnqjq31bp#N<R8)o8<jm29~@mmrd^W$?{+S*!fp-q@&TF?W<jnO0T&SrWK5WjMw
z9>fcWhwJNq(-DPC6~R^4G606rW_BV<L-;NTd#dS|qaC*OJWW-++q$n+o9ok5wQe-W
z*VT8_BpTa`=~qN>S=^4UXlbNLt1dw|#}#;eVD8NLjN&kx#)_#ETNc!}H8koTq~fvo
zbo}@ho79U{i*=e3?iImmsh3j0!%iv#7$KbqzH&+~7?;)Qpmtk<_d$kPl_s}h*7vnC
zm2Q}>4^Gtwrs;!H^a1JlVASlR7F;xBe$#+$TGbVm*Tg4X;ZB({BNKPU(PG%&w!~G-
zxccVWmb!Y(*ClcPHK=<abYOe=zU!c?Yv0QaxHd|CkKzEeCA}X1W{tPb`uERD=$ey$
z`;4wS>*ICx?X_)*R=hyyPN!|Dw`Y%)&MqB4gUU=!776SFQ$&x`H{*8USjV!K9xI|>
zY}OZ<S-C>UQ|90!Ed6^(SYq`f_H4Q+M2G#E{s*NeR)k+!j`M5n2eMf~)2a7v52Oma
z<@R08Fn3(Z`G7m#I{7Ft<=mT%e}t(|nT|eq_338Z51`SOdH(&;>Tm1&+m~pTUxB(I
zr$4livX at hH&6uhyX3(5AT#;$+rNd5p$!F>~(loa=*3{PH7qgpNS}UriG$BlHa at BAA
z>9;ko!<-q%B(L_R{LTh0a%SVb4Qw9hv``wS_k8&!j^TV=C=MRINE>Sms4Iqax;|6t
zN}!Gar9VS;DOa8P*BRY}I_c1v%)E(Wv<xTIa%{ko?H9!=ypF1E?<kdDN}SP^ld39;
z;+%+;md3{zj1z<v8;lc##SF#?!iqE&8|Nj9fbDNsc((VaPg6vVdRl+oIVlBpa#FuK
zx1ZuD><}Mb#^0;>@4T37{_|JntFsvO55l)H57CKg{-a-|l!>qfis|pt7;z^k6n|qF
z{D>3(StmyEH?+8*-$JIoi61*P_3!)|0lEA~2Kmp`DgDnOlj(Tz;5poWA}2yWD>z?Z
zl=Qd%Wz<(Pef96-KT2l!Q~SxrhPP>d82 at 7}{C|%6e*Tx??|G5^4)N)C4g-iVN=M$O
zpTCRxHvXF}{7Gb{{0o at BDNpTx9`*hFmyEOXFJk`a-jv|yA7;Oi7W at 6eqM!aQqRoC)
ztiLctd$9jMh59!8?PmL#ex~-*pYAjEFnAdM5)1zU3;$C>_;)e?>(lT*A%uTE|M9$q
zT%Y*UpN`9vf0>2<FD?A9!rx=G+28z~(#z8DzY_Ir_U~c-a{SSsF3XgErG at _s7XJ5r
z%+9~)a7}zk8vb{qzK#Dn=D&vPll|#WZDq=TwuS$%P~SiP*1;)l_BVfj^`tcXe~9`v
z{?&KtipI~0|A|@fue0!f(ZatTf6vUu-~64}v(oUdMtvLqg%<u;>N2)}tA+n>Ed1|3
z&(1&p2u+;+j|Cb0^WQzFZ{xp``QOL&$^Hcpl&SwLvhe>k>ihlYVk~N;!oU7hVP2sy
zT1VcepFjOSi#GlvKdY-q|2Yj%ru=)DzbQ}ce+l*d{7(w;e_9tPd{jr?r=Ne={Jqj*
zzb%mB*MHy1cKfYn{prTv-KcM~Uzx>zBcb2e!`L;9|0)arH!b|n58>aRA^&k9{AXME
zpOXduHO$|%m-_!L3;*$E|Lfa74KjcJbDgNEL#F+|)?&ZkLWIBnAH+Ig8$S-#H42yO
z$our`{}Srk`oER!SHv}`{ggKLNZ0 at CE%y5z>ihYh8nXYaV*dQ+HbeP``QK9(`@L+@
zA4dn-?AOZrt31s*;kVzlsBg31YPMfB*C+dpMLJXa4Or~=Pt^C at Z+q0v-~9dReVu={
zSnRjUqW`T=*!7#glRc8#Zz8|_-avhu{hYgW4dZ8IKNQW_ey>{i{~q=I_S=Yqqpkn*
zKcw}iJ3nkdeH;H1Ec`FXg8vQ+|36sxKY;_LjeimIFVW5LKK=H86!mTVi<o~A*ChLw
zA)TrJ?y>mq+o<oi|7+M(+xWLK|9zc554v6x=V at 4--*;Q|{|pXl)4!7SkI-VgPrv;h
zM}3?9sxAHRLQ1Cg%V++kJlX%hE&LZ?gKFd7&;0q%{f6=nn?Fym=zqte|36_6oBl!8
z at 3)u#dzk(Li~e^l`hR++UH^{#Z2w4${;d}ME71A2_UGqmlke;NTg3XM{|;L8-%@7R
zU&Q*;t^aMPZ}Z=UmhoQ&{l*{7yd2hl6D|DzXyN|?1lsJ^#r#h}9U1)o^K;a<@n6II
z4Nn?BGax8a{^b__dr)8L67jT)?fh3W|8(ca3e>mp at 3-*3DhvKInZIc-wf|p&w`oUz
z$o^-5`O}?^41W8E_5U1;{r(I=Mz4tv!2%0vf%D%E){o(x68!peP~T?1Ef)J-2T8^r
z#xKJ7&$rm`J=8b6O?*=b{{kj at atiz4{a={=R*U^!vFM+PbH2 at fWvrjYcr5((y8`uX
z_S?bsTgWxZf2xtr)P9RB{Qrdd#%?A)0v%!FznX~_ppFcF{)eExjsN_Wx|Zo@;$I6W
zQ~o^`{(nJz!`sBSUu5Us&qS9<@<{vnFGhVE|1RcV&h?3Z1JarDzsJJ=Rn#}UO}wJW
z&cBKW{uQj>M1KA~sBh!H*}^}O1^?9+{;yg1UvQ3{|7zwRGsHRe^Djkx8~^;z=?c<+
z8UbZ$|A#F6Uq^jocP~EA&VP{kUq*vN1V8`1qwV}hGXE~FPyW*aIhpcbXW_pW^*!Fq
z={q6zFXD~+c)^{Le*WJKvHzOS>xxBOpZK>SohkpPEc|Jr@$-ND2)q4Tng6w{-$Z`?
zKS6yZ(|7-~h50WO{5!MYKVadXW8uFY8$`f?^>cvvr+fbKI_lf_SKY0NOZ!t>GPVC!
z=5NYV|3xhPFTn=c#=n3bwji9OBk$91|FHG*Rg3+i7X4Kr_h)6S|4L7 at PWbg-9&&%y
zWwGC4h%ojr^GX>19TxrvS@?es^MuWQtC at c~|NVE=xAp&8<}dxXD+~U6Ec_3)@LzSI
zoxl0daj(&4_dfmh|03$!_>a6tSCRa?v*4e5gRU>nUx!%uKR?ROzxp^`|9%~LpML(&
zqP~s)YUbb1HEI0Zfpn(+bF78`p%(u1ObKvc{&4u>Al>-;CF<JvSKo^a1mow#zZc&#
z<zHaopKIa&3JBWx7i7qPE9%?$FSPK#GYkHsEc}nN at b3xXUzQ>N?hyVfE&ORqpQ-&z
znZGGd{dc^D|37fRvDv?x`SUP<W*z+gA2$D$S at a)f(f<i_o=tyOhV~27UvBBYqb&M!
z%Ix}Av;Ip=!$aD?CuIM>hWoFG>yiDxfVAlkGp at q;&$RGA+`_*V_t!T2?O^_=rs01R
z>f6T87K{JUT$m~UY774(Ec~xN-_AduUUoo8xBr}u`ZoSMEcRaod71KWwD3RD!v7Ws
zwAsIk`KPmg8|vHm7m%|c7(XHZc at W<-<-gFv|05Rucj2Lojejfi$M!xY_{aZp)VJ|3
zwebI17W|i5_ at 7|m|F<$b|JBTYWD5J>`DF<8ZTzb&{OSLF%+&rXnZGGd{dbCm|5EJp
zZ1x{u{(gJ=zlY5q_gVCR%%Z<AME at Y`$M!NMWU7C)rT;!^(SJQU$ku-2_#;xZ2m5a}
z>f8EnzNP;jf-KV?W?Y5Y?;(r*PPOnqJ>>aK5i2-84gWCxKeFgQ(W3trbcoG<Rjl9N
zU;gi5`qx|ZpJdUWzy+^OfAxO0|0#?AoNUp*>U6vQF4liq8vB0{^=<ysW$~Yfv+$n*
zi~R~L{BzE*^IyySalB3mnfBini~T-i(f>xs`FVi#r#pXc3pqdE$M##u>}mdc6zNRI
z->Vk>BP{%XfO!gV;QUj>hJ$%ig5Q4h|CieOKmUum8k<2qe|`*5ru=tU_~%*pAB+Xo
z#=n~RuSsDaoc|ouxA7mz{L8sM*}p#v{(CI^^DX=z17_o&f1*~*+c0Jk<iF0y^xeO;
zGJoPsf%yLnai;dqjjL+TkvdZKk2bo1DVrg#M+e*ZuVwyoxW0+}{zLPe&HhFA=^E1h
z8v$j?|5ywEV=VlCezu)|KF*aCXw8$s&wn%O+xRcE at P7t^GUZ=j;s0R^|C4dgX|sPn
z^S at 4#N7~Q-BdBlV-*4gnTo(LCS@@r3;XgUV{ssKturCe&i$d(5ONT84=|9iod#3g;
zW&Wl-ji1vk{5wb3?Z1}!pQ2bKKm7I&+dq_9^v5jv+koL;VE!Ip{rnoAM<7%E<re+L
z7X2?CX4gN+`i=bzflT#RS^Vb=i~hf1-m|rT2kSrADCXF&e+cz${$IuZQ^fVC|F<A*
z+H(TqVf{D9!v9PQ|2)i-HvR?dIB at Tj;OBoh>f88tF at M98_`eKEnev}+;s0?9|ARw*
zf1rx_e>{bKaQ<;Zet+OT3;#c4!N0 at 8f24)~Ga>xDm_NIb*9yP=p9<l>*24dlEckaZ
zf74&oe`j0xpD at bqKdYHPFT<hy!~D0$V!yL2`k%_P>+fg%r+S)o!f(GPP~Yain=STx
zEereIW8r^}h5xx>^H+xaN20!s|Dc8cwk-Isw)FoP3;(Y~?e=#*rtQt!0R07 at e*1^@
z{~C+^=yz#UTOr59_k^6k3RwRLPqR+=_1}g1Hv8?i*zXO9Fyq0 at YhnC<WZ^%`!ha{;
zlLQ=CKdYGk)HMA6j`}wK`Crl%tGPan-+v&TDgS;;|DS8&KM3VE{;T)1|2JFgH`=2A
zKM%3%?`Qqp+<p`J`+p<q+w9lM_A3(h+m(g=UbOH(&%%E<HV8KRRh_C8ryD<Sp}vj(
zYUXeJl=}ajEcg#v_!n9DCr-EXZ)N_I*?uPS+rJL=ZT#0+`0vSr|90kY{GHlA*24e9
z!|nY0nLmbCO7Qa!8~-~k`o~%HFUI`^;K2AFVEuT!lM*u3zlZh9^YeI%{@-6>*S~}H
ze>z2baQ at zc`nLWXu#6vi|HJf$@yjs#<yLFOrablECoKG%$J+U~7U=pVI`Td<wO at X<
zt|IkMu;~Bl2)q8Z1-d>j<N6CeGu3}WwXP!juhgRdy9IXr1HdUXppFcF{c8&B{pWmH
z*IL7s$^P{G(%2(i|D9f~D at y+7TloJI7raE#|NEz9g}VMi9eJOA{yR|L=6`FLe-YOt
z{`CAfQ~pKOx}qsh^(W#-=|Yx?KNP~hpZW7L#4IxJ|5Da3?RTt2|J38`_8VmVv$4L(
z;J05n>f7wMh3&VS8%ph``zvFQbp1cs!v6vb|6hlU-?Fnb>t&KW(tiE}sBhyxuv%A?
z{ZH?IWXiv)TGyBMztF;e?ge)H4>130v>5Nx&;NSVxAAwrs;e0PC;Oj}1^+qKy1r>I
z)xQWo+?`&$Dq`nf#0UR<eg0L)`lbEKEc%}fv0oMIPiMcUL+rQkt3mtG^IKz&bpG3F
zvERiO{)-N_+ixxN$MT*M{QV!c{w-wv(tej%^dE|G4mdD>4zT`7DcXbMCxZGm|J(6Z
zT~UsoLMY1AeoHO<Ct3KvJI>C(0MA7z6zj<Q^xN;BsBhz6 at HJh<^fUQC-QQ)(e`U3<
zFYWJI_+K8vznb}TH-z$^62iaK!k_MsGUdO@!hf=be|`x6mCS#+$6P1;_CF$oe--m*
z8tVBC-G5}te~pFz6bt`fjR^6dQJQZ$|NjN*+x%xO^Oycl=g&;}|H#7sQVah-pJ?ab
z%KX#qAO3*)HvWSa|DpT)O!@a)_?KJwuQ<ide<ky;)7{{G`u(Q|^=<rjTl|Oae=_C&
zoQ3~(uu!^0d{oH$cMf0NU+*#32|xebkoWIq|C=r^*Kaz1Wy*g`wXT1pj at 0<6u-Lx<
zga8NT|7zyX$2gV}oc~WkeVhFUn7^Dq>HL)`|5vNEO3A;{!k^v=u<`H8kiYj%NyKZS
zN(@=})BZD4{yQxEr&{=L4O#zJGyj5AT7muROQ>(Nzw>onQQDvOPnq)HW8pu|!oPTu
z-TwW|zcda1b5Y;M{{#zvTK_ZUpIf69OaHmT!ap|N&fomuqSMmwABFlh{zVr4wEkqu
z|5ywEt1SGRFR}A48m)<^+dm{w-^Rb3`4 at 5fY5zm>N2dG>Ec|C%`2X`_JO66tPj`+o
z_~*|ZsBh!HkolK$W#UisN2dHo)#!@Sf38M-r3+am{ueHY00-yK^K|_t9eJOA{<~4%
z#=oEWOZ$`mX3D>m`J3|8{%i1Kc$@gikp0^L^B?6g*9kxWu=7V5>zDScvgn_6lHGpl
zj}<{>VH*8asBg314z{11|7JqJv4_FK_*Yu^Uuoe#WrUr75qDg=`Qu{LxAD*YhHkjw
zN&QFumnr|*HM+jE|8&$h{chq9kFfKv&XE6yP~XPCz{3Ap=+BgYT}_bx4AeKgO?+vA
zo&QSapYHzh64bZxFJ=B~G!3<Xx;_j3trq^&e#6_uOW+`Y1M`PDxGrS<Ci0KJMW}D%
zKgj&q42pks7W@}6f74&&f7jv1 at HX*k3{b!U{#|_V#`ZQP`1yy8zoo2S`Y(-Nqu0cd
z<L&xavwn^|4u1Xr3c0_`|E8`Y$6r148+#Z$jQ>gt|5+CPIcM7W4>Iu)9&?@W^WSrZ
zz5hpA_|MOR|0)ZAdj4<hZsPMp`age+=KHBM{Kuibk`+lUSjPP2_`4|!{%b7!|7zji
zg$HyH8}Q$i%pc23O7PqNQ>bs_KV-3ga~Ax6#QcrF(fIo>Ffn#F at z+0U=f9TuBReJd
z`G@)Mde$$;-`_0yCtPUPKfwCa-M^NgzRiBlw=``t|55wf at nh_fZv1Vw@PEU?|4N)w
zAU4qdMf~9Jeoe#s^xLlz^=<qYGJom63$oz<qJ{t8E&T5SX5&A={L}d_-Ot(h7cg;S
zXR`mTS at 0jU@Tc|D_^pYf7uosmVE)~n<#obu|Mx=tr<D1ZbA95!C=34EE&S(L_>V5K
z^Y6lQB?@KgGx_1?e-`T7?B8YKe_Iy(cU$=1VBx<2_q2cm{@>61`55Lkz|a3?)VJ~9
zZ1JDlv*3TwT&+^hKXD8HbFpsN`0rr;_j=5A!q0ys>f87aGXH+APyVwk3;y{Q{?!)#
zFJge%_^-sdjKbAA@;?3ipGSQg|JDDlt4ROv$%6mM7XCFB{`ca7!Nz|F^Z$XzTqpee
zSE9a+|B!`$Ul#mFTKLym_?JiR{MX`MhXSVel;Gz-3H5FKi at vR^6>)9ypU-B&zr at 17
z&cgrJko*5Z=Kt{&_QCtxj*$ERYUVHJ|IcN?zs$m)_Rq>z;AG;0T)X}AOEvLy?=PQ(
z`ZoJ7wD7+t3;vbNAL3P@{-d*`;ceoZN7?xoF at KmhCHVa(Z2vXWV!wG7{oRMz^;fa}
zbock4Mtz(8R$A<Le-`$uw(zI(hq0T9ug$abZ)N^fDb@@6?<~}}@n6IItGPb)->NM5
zH(L5XVc|deU_1YQ=D)A|?+%Oo=34YmLi+#**6%^q|6TBt!S8?AK3VOT`yE}YiaUzz
z_f`Cu at o)kQ4fEeF3;!D}{NI~s=f9GOA*4G$yo36-{-6DQU4NmD)cwcTv*3THg+HA?
zjo+I1|10hMU)-pI0KS(yuBEnKT2FeS=%OM~a82~?Xh9 at ryVrnK!j%Jmu;h|7si#Rc
zCY!1S>B(trDB}I#5B>pyPy~;b!hvEVJ)tPdA@~LA5B?(L2Za>+!y!k{nSC?4^<|c2
z at xj}9Z{EzC&(3?B?CzE3SGd4HJ&^w%@h?z(7JB}F0)L5rgZSAW^Z!`{{!aw{iopK>
zJRnH?S-3C9688LX5DX;#<f`)LeS-X#BJh7o{Jh`LzY3M}&hpwmnZHi__bQD3QO|$S
z{{39YA3ncxT$UdOynkAu_+js#E`Yx`SFDfdH8Mi}zKD>&HG#heGcz|!7w!{a+JXJM
zLHzIk7i-|}j}G`t{0qdNB!67L%Mtk31%3zonVTiv=SchuX%+Zv2>;Ch{uP1$Y6Sib
zfxj;BzW|@p68|5>Uk~A*1%E039f5x>0{`y<{~H4T)d2qNi~=u*@UI5&_XPegBk*?x
z{)WK+;9)uc9pZl_g#SM9m-27YgHMwDasPiEf&aF^kMF;D-?Ka)z;8aU0?&o;zZ<}x
z75Kl2!0-KMy%5{~{O$_;e+Td{5q~CxzZ<~6B=E0C;NM$Rf&Je<ErI_?O5Q&k#2 at zk
zvkW(IFzvwaA9l$<uAM)xJIkQ&uW{n{=l>SW#eOU&4$Axn-dIApqD23w^V|de-dwT1
ziPu=A{I8H2_y2bh@^1?H at 4{Tn&GOQW;*V+ZuMj`x)?f7gg(t}0Zv^cQ`DZn~e*QuE
zPYC?CVJ_xo`9lDI{HO}7^XmPe_(>r?zJKPpEO9=p!&?5vDL&gNnjL at cZ_&TsOR|FG
z1o<a4J at d0X0e`>Zw%;^O{(c>{b=#Ydd%C)YZ?OLj*q{Ew*E8#W0e?KlG%HA^FRRAd
zekF1L{tT7<C&=yw_zxf7cA&dNDo<=)SG`FBMt>|MR0obru>W*+96Utpmv}^(qTlyW
z_4sc#^7VSDVL4BkUP&t9Yb(w4<fNxdO-((mOcwT>vyaclhIWXCjOPaUFnV?vkE*0S
zkv8rE%lS<E&&={)@%B4g7wxUKz1hXVi!W}rcSAq3ydFP!y<9F^V-LOOd9i(Y?Awk}
zZrgXtW9#-E!}C(sU^ZW9)!dd at tmJE_%`>G&bJ3}psY6!Edd5toTHa_1k`86uJ3>y+
z&KW~*#fR?SyKDCfoDRM-!iwclJj~o3KOZ}?Z!`x6(8aN5Q4i%|Jn;BQHI6E&;Jcg=
z<JPt`HY}{-F)%#f(|atSdkm`nIf8TcprSorOCB5OK7uOQuY!KRw|k)hWkd<%N06xJ
zKCkcr8b>|Wt!-5 at KK-aqZ;~GOr+<&8H9hl=jQW0+*|3UEwOXpVhE- at b4c@2lQ_e;%
zS86nBPOjn<^DZo}VbvVBWF32H{>i4BFTQT*KdU`uqkaB_y=YjK%9&~|f9e!$jMEgZ
z^lGl$$X82-)pQ$fz5w#=DoTBx!+AGft1p&Q)ArHX)O2pZAeF2v7K#eb9vq$A8O=F`
z*KDIdA7$kKiF4rYyVUxV%~A6I>1$Mj*Ok?{cBn(?FKOz8-3y{G?hCdjH={>^c%Apa
z03zYFgoQr~@m>dY`Z;`zMo_d at QT_d?M%BF{hT=G^Xa58%ND@~6GYcN&`fb1ISN at K#
z&Hk)vK?8IH-z6O~c$p1J^7*s64h<=PCaoWz7v^slRQBim6+kC_mt at JGgn|B8bp8)O
U$2Oh;9VW=|H|k>-*GP~5FGLtLcmMzZ

literal 0
HcmV?d00001


>From d11c90c0f4371678d2f6b90a6ccb04c592981842 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 14 Mar 2026 19:54:34 +0530
Subject: [PATCH 2/5] nit

---
 .gitignore                           |   4 ----
 libc/src/math/generic/libatanpif16.a | Bin 114088 -> 0 bytes
 2 files changed, 4 deletions(-)
 delete mode 100644 libc/src/math/generic/libatanpif16.a

diff --git a/.gitignore b/.gitignore
index 9294f96ad0adf..fa133b2d09834 100644
--- a/.gitignore
+++ b/.gitignore
@@ -87,7 +87,3 @@ pythonenv*
 /clang/utils/analyzer/projects/*/RefScanBuildResults
 # automodapi puts generated documentation files here.
 /lldb/docs/python_api/
-
-/libc/src/math/generic/wrapper.cpp
-/libc/src/math/generic/atanpif16.o 
-/libc/src/math/generic/wrapper.o 
\ No newline at end of file
diff --git a/libc/src/math/generic/libatanpif16.a b/libc/src/math/generic/libatanpif16.a
deleted file mode 100644
index 9ed17bd932e5928927ec005fa26d170c465af316..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 114088
zcmeFa3w%|@wLiXdj*s|iqE%~s)DRy<Ma&5SLPd?j#zX@~9*T;dggoGAUgm+=LJbCN
zLZs5Ft+rTcZy(&&w)D1EYEgq#K(DQ-wUt)d#@1 at +rIsp1^iuhM*UXxI*4cY@&N+bI
z|NVXLe8`zO-<etKJ8RZF_f8lwv8Jtd{)LC1SCATt#8;h`p9KZ6lH#HgRi^rI$8o;v
zIOF^O at 8|z)@c(Nc$a!RrBYxu7PK(9j at y5mlP4ULW+}a5>9W~9ZiH6uXck-0jxVYml
zFs`Asvm?<sZc5c9iH`OPRmh!G%n5g<s&RRWOs-OzXzr+QYp!XWFr{jGeQQNiYhy*_
zv>8Ql$eMX;YrR|K@;4#bb;l*z<IVN++yzACKnjkHf#gJUL%gLe-dxkH6{HX!UsvBz
zlW1%&F0NnLT3_4I9-rIN(ipF8X|79jBwCs)=DP0OneiFL88o_7HF`#UQ^svJl!k9}
zR&rxx%=W}QbV8zeUP!C`-IbMw2{(5p>N}L=X*1#_GoZ`u2<^F4FB(4&H5b%0X42JJ
zks6Oyf3m)<B@@BfIp>&~x$PFmVH1|r*0gt2)afw-=Z=r5ZEc-U-&`}du|A$?sF+<-
z)80my8=C-%4UH`|9n>$aEf^~C1r;;n?(q3Vao3$u5_d~FX#C6=n}Hu@*S_(cVB&R2
z%HZ(3Np^xK6=&EPGdfz at YUb7ZM~z!TZfujGd at hSgBP&l*-IQofbky5aTTBv0KSomu
z4aN9eOrzm0Bqz-<S*7m6)|Te_=8iF#&Gt`JtmKkJO?!Qvk%(@Z1_$#rxMAx-COl&?
znhp{TiQ1axx{~C8Oy^c%?H*U(T-#DtuNeA?Yfvgw)DPrbT8tr^obA-|w685mvCNpJ
z_PP7ni?ZF5DvDJX(h^%&(cDqd;ktTC9+quO8%!9BV^oKkKZUfJe1?@djId;1@}fbU
zGwf8G&eW9!`xCTU?@er_^+c`a={gtf{$M8R6eeog8dG(}jPye+WX7VQsy0(<`-FD5
zw#B$9?P6T#X0s4yH|@uYX^n5HY3 at k0x7TDchlVsZe6N_<92g=tXhSupdRv*W=`R+W
zd}~czqIL=`;T4rl<4Rm_Q#`ZT;!wk{>sZzkyr@?uiqMlY^iJG5ec5yu*R)sERnCpM
z3&`!m=cd+{##`&LzE{*;R;L4$S?D&_w|C5pS2mTV>^Dl{7^IV1XBLGX6W~eB^=*mT
z*jUVzwKv77_uE=Jo9i-|;6l2{-t%TZkus*TSdXps^_ZOIUYfz$G0fanN=yCzFZ0PM
z(lRrKj_OPn=2CBMxY3P`?P!U&>rGc&Z7ajQM;z$F771_X5Lkv1 at U+AMqMdMS7bG%p
zso^?F*Z|IOW7tT~&YlU(0=kv^>X<3LF4y(_^hvL|9S6M2g=n;1o&IdCH%oLK&6HTK
zGPybknG=H3wmJap*9kf(Gwk$iot34ZSZ_Nl^0QtX!~D6}4L=|GC&jExx?hW{edgY;
z1-9;gYH?M2#S9i$F-2zR1!g5m>s8h%7d?N#j+T(+P2c- at v?N;Z+tHGQ%b9V1kCu>^
zGVA(?V}FDNSSrk5D$aP6#nK)tFG<X!W1QM#R?aPQn`r(_sEuAm%V~ywSRA9x8n!Nt
ziQ0rps5^%J*s}*`JfDu#b3y8wVQqDj*Xq>5`i|PRF`m%e($<9A&rc3_fn%!}E8?we
z99wH|^jkN}>2LKKJKEdK@`tTGjoB&FFP=2B;)-eUN_Uz*KTw9g*h{|y%h<il>|(Q*
zT(ZI at m;J3j?7-URJ(qvP1_tN8HrJc~4)pdFjFY?W{oTH%2)mKCocq3gg{+jhEzs~L
z?AyaH5i;?iWWz&`8~eQYC1p1q(0y%+iT86?pCXH9Z*9+g_0g2>3cEZEPM_oI7k1R+
zAl@`LFzo1&#Mqj)wwhZjnkt)OIHxV#&n}ORovZGZX+6n!85w4G>)%Y&E=awmKA@{q
z>f at t*?Iv$3IRM)ePu7I?&bfL;%i#1|e>1i&;a9pTZi&-5-#P7fd&e{-tPg7T`5>aU
zNWO;e`-GAD48|uXIBbS-1{yZ8SS_x%IvUmU#tPh|jSGrUS8PRb`5;g=X)c}y;k=+9
z{CO9E(=X at edZ`@|6x%q%GLH}^Z%&R)XzpyH>o`2>Z^C1zc!Hk6H_<W19n(~^(BeZ`
z)X%J!hZ)od;+~9_FW-JWu!7x)4p0kZYG(&#y|Hua=h+(-C_08_(%?32LQ`jBN8*;2
zwz^cm(6g$Wn0`6mweoB`Gd>%ash}5_l9Q6gw$D#AVEa#({Szi9+VEZiUPZvm6Y4CW
zrfYM9Yox{?wwT0XNL!ZfKx at o&pW<;;%GV0o{igbHJ3r2*S1UT3=@D&xozI_VjG^0N
z|7$0nq4u|V?zGEiH8#0L@!Cc;9Nuq5Mo;Q%G?;2t-`YmMHb83m4Cg}o4T at e+;7R&*
z3-X;*&t~biV~sw6bv9d<=al~6FN(1uOfPX>sfJ<dJ-lyi;fLbBmRP2}cI)0GSg<MK
zUV-H=Ftl(>m{ngj*QYI?mULUDq-z(<jMKBr;N0Tx4@|7qlfB(%V#T#>^)(&!^uA4J
zJxv(ec{)O`YrRz at YzD`3s(ss+WFjzRd9oP6dU6G~lx=cs3_XvD*EBZ9u^qL(e-U&b
zY}EY|Hc#XMpR$bmSTVLN at s<VkZFtY;7D%%BqNScWai{eu>#S`NXf2m^eTnV+`eNZw
z+|fc_&8wf>2_-L2^y_&Y_4C?l8uc2|jB68GhFp3Lr at f{L-dlmq5#GYXXU2CW!?;`K
zTZfdXF=@QmSnA|k5*_pLs$g4N%Psl<rB~&d@#)-PUYPOXAg}l2S0(WZ1;nfy0E=X+
z{f1eAvGABT#m2<(1^=eo79-IdT>G{**3{PH at nv&MYem(RCWPrtuJU_sRZ%?Hu(4>E
zY6mr}6b&OlZ9xJ<C3Rd>;Cg{xsf>Y|nya&2zccpJ{oN>JtH{1l at K0cAUb~^~ZOY}A
z^=zQ8KhsXw5SF}-JFu_asAqcU%1oZ=Ww&tou8gy}PYAgrwJ(r9Jy~B(cX(IRzKJ{h
zZhCwJUKge7W#5|{Rsm^ymzKN(dFw**d?zdWtxL+(==bkoCSPy!km&_Un)?jek9d!w
z_wzo3WVz-o%l*60u)EuVyVD at 5sdpN~c1Xye2tKQ^oHB+L95$?jlEe0*O_sB&WiO$&
z$e3%?7CG%$vF?$BoKjzW_DKzH4QW3E3LofxCh+c-x>pLky11{eZk77wzrW(&SLyGk
z at b^*n`zG4zslzx5Hf_Fr7|-j&yx-@>76$fuW8Jp4=9ZcncqPjFJ)=OOSP}gqQoNpu
z1~0;5CCS`)%iJ4XCn;)li~1G5u;1GoSE7GgZ$fE|Q`Lvx=2lLL<mBMj_jJf{E_9OL
z4C*)qhb7T61(!L$MZH<&y?-fRvVA3>hP<cyorYd_Pea~Q?jEOn#o~8|sHB%TJ*UTg
zXSw?h#k)N;@5j5lU(bo{Qf1fV<SjcGb++9tD|+Y+R<s1 at 6GU(5 at u=f$bpPq({dn;|
zSt1DSf-WuIP<(IO?I@{vCb4E<D7yR2ynN!|4Be#)J*`^x-nJ`rwr-T2^|7esmwJM%
z1~#uj#cQgu>f_D4qun8BR3Ar?+J?N*8}jby&-?O*g3Wd{r=nB}(bpnW%@F-2zAaZR
z=yCsI8Uv~BP~P4BTH at o%T%^sj?V*4a4 at myY&`!u8YFh}}Ldu4g2qnLHA|G{!Za~|H
zZpBBhJFsN&fRpPudCLlrg9>b?M>em`S at KRfenGTn*=>9G?#)|zKJsJzRQw<UKTY7W
z6H_boUr at drvhL~E`O8%)EnvA4Lq7Dp;+A*yGs<Gij(~_f)$VN{M^ZL?OWqySHM`vB
z;a~K-s+#^?Xfk!zZ-ns at +6>Bk+Ge+RYiZO&*YuN7 at R6@RRDS_k(TYaAnKygG&?05G
z{ChQUw7ZUqQvXgxYWA~l=H0M?B&;QPt+MoTrEs<qyoTU4%Gw`R+)S7LN;C*ENaE4%
zYAQ`1Nw>M<X66d`8p=D`U5Ns!HPG*_9C}%)JKF6 at sf@g-Ks327%IZ?&{swV*BR3~S
z<R1sb8G4wd+_$aJC{*Pi^Ov8antLBfyic`@df#(ZGX8r``I4t-{<!{Ud8g|6q<edQ
z at 8Ugui}wsY06pd1Pvuiy7s{CYg7RJ(r$@Ux%KO~iyPTZ7rDr0S)a+;|&--+L`A?`c
zLRWcgGmz$fDm}D~I$xDiUnw=Dh9Q&`T>rC%m1;ig-d^O%=fc;xJG>eyHK^+1gMC07
z2H#I1t%%Ry_*{<1a(sb`C!0>0oOkp=rz;BD&MpLBvjKF9Z1(uM%^s>Ym7c8aLquVm
zeEPVuAFXO=7 at c?OQqrsJ$N5K3rH0IcE2)zCv+y;4D!yLxB)KvPEYtRet;x)JkD!kr
z%rCDz*<aLn%yIALJ%aIHgfFpv(|t+()VJ=Q?!k-l9?|T4{77Cy?{3I>Z)g-`^pa}#
zJybZt-Hk7On2b&bt|bTg<bCgYQsCK7>mw=Oo3&fFAjKZk*VI0EBY9!4eVkw3H+=g$
z_mr<ty=y!QZmax>>%+W8K&t+v{eJ)6-o2jv3eZMn$g7bshE&Z>?N4d1JrH2*wPWvT
zp1pPg53?8Q7qGpRop)cPC&{6Upm!UMD~#O1p^FtA^uvz5d5>&H$yY~g2G>_rCauAc
zU%(EM(!Q7fL|u{We`D|8!o{V1ev8@=gRp}%BMfrv^sBE<K7SuDco~mZH6NI1Wmh>o
z1WI^hdy9YX2K4e!LvOAoszh at Ae9Z}tMQD%vHX8M|N}ryS_ha^9%A)dRJv+*J-syTJ
zr)TP3T8G|S?jlAp(6`Df(b?MmBqbRnf1<5)VqEm{ywvON=<D18Hak_0`hd~j=v%xq
z?~%?o`1=O5EANqKCTz}ou-_2Y#`Meg%+j+V*1u~5*uTv?t`C6}7-*xF>_x_M_w7_+
zC}HF^^pXvFrv8h(b-DX5?Ccbm5Wd^dg1>^W-V`+Sx!dy|!JzK^tJfgx3;Q~EVt11F
z$SmC~RCzD&ksZ23pZlKZwSfIn`%f6!+8?lQ_iox<nC4-ivPdpp?fDWdQM+gW=nn7_
z-oEKhvYW~F(D6X^o|FWe-Pr4~{@#t)oW8CaRgO+ZO>J>CDR29x6vl%~EADY$q9LcM
zzhtV@#%zoFqN~r7)jcjWhk6Wq+)W^`$w=6YjLkv<ty<-q+;udby{50xrB^K030^<2
zYQWIdp6O7-^AG9|TAFuY%{XK4ZA!ntGnLVmy_4(98GHBAoJS)`2W$VO>tBDqncp`-
zrYBj*7hIh#$06TXO8eXL6>8%|{j|;hovPDxvK+I;UQ7TiSGH%lV`c>^tOK`4%~z at 8
zeY-NUZ~S1GE4ZN-LmXp<hWNdn+hT}IePnBAk==e+1JToalrY$L!{Fhjs4x~NdiF-)
z$EnS#23AupX88AFv17Bb8*AA#gY<6f-k7KAp%OT9(^Vw-_NDZ+F6HS*pY?X`Bokp;
zFv61K)W|gQR9S2drta*`l^RVxt?#sao9~&FH@<7}N354SU{ad=V4Gfdr|Bq^?RB?f
zf_oQvZ({X+Q*rnD?=UQ!w44~Tc<sexXHKkouG4Kb`Mf@(58qP)A?1v{QPtNe9cbD|
z?N$3VV<?W3@^;XY2a;;F#8j+L$SJ~5hsvX^$+Flc^-bM{MO0gv<yrh$PisDZW at Ch}
zUk^y<X8p9kp at u*1;BciScqTIX8+r%ydeqyg8?|Ebzf at 6g7CZ;iU=$ES at 1Oz10n-z&
zp|IysH1>hNx9wx5=nxlu4PK3+`q)lIXrCl{5#>1u`!@8x)6hFr`G_2Pa29;!g^-3d
z7V>8fqj}giK_=TL`ate(Xh)+vWH>(6G-uQP9tS3~;&=(qL|;ZDf+#Ho$)#+g`xm-i
z`HOK at d7)tz&G)v^m?uf_o3*MNFp$?`qSykz+)}<_=xj=>j2`#bu<RCy{I%}dUiUYs
z`5XPkyVGd1Qlk at wN4UrRC8Ye)NO=JnFZiUWm2i{0nVMvbu?`%0f$QUh*A70PidD|^
z2Mq{iQ<|ahMSD9`>itT&-fNbp>@}g(%&)2A1;!XuOl_lurdP}^<$ay3Lx~<N$4c-;
z-(a!G_o(g9eow8RQ+JoI!z~9wo>P8WPU?DxwSMZ3@^#cggf8Tl at 6Rf##n7j;H<?<Q
zX<zM?-0+#{*T~N=>)GAo{!49S^+HB-I at TY$_#z(Kkuaq%clY#l?$-NMJ-4HbZRAod
zkAIQhUj}$fc<81}52AAA-J5cGNEyfUTuLW;==3tsGxhc5Q(y1Ng;EVGZy4y_R?=I3
zkO!9cZbVuSFj#Fsjk?}TbG7x<-2y2^F!L4hOWIf6xE#2AB^$d%+JE_WU`oHwzxLkd
z^Do at T(Eg>jbB9`NxA!g9n<bh=&@{}9?jXqPF{FpymU2v~vY|?~XfN$==mJuiB-{PX
zl8v<X8f$va1Rb6|;W)I}*JZHo at WN{H<$kPu!(fTIui9~2`3NFzb~>iK>L25b<v;NT
zVoG77pY1L8J1`Ua7aJh9gNda4|FQiRt?$Gc9ZWumsg7sSq#aWDdS$6in0L%(#Izsx
z8L9rfkMrx at q4O*4M|PJ#u36=>CnS5>u=V_*jQFs9ksOHadNdb>w0CTBhYIked+|;u
zZxvMbxUb^~wuOY0cQ4+Olh-}lWb1o!HKIGWEO%e01IB=ovQ6E<P);p27`^UhSkX)X
zQ#Zpzo7|mBA}zq({W&ytwmkqpg0qz+-Gco=%~z@~Kvv1e(u6j1zd#M<M}>Qv2f9Dt
zlG|}sq50F at nY_jr>~jZkS%i&LU+1f#HMjP;TlEIX+w&JC$w342qy8mdLErN{=<zrP
zrI5q3C+@<wsb>ow!WYB&4$TnARwKjPkh6T%U!Ff&I;@PebT8iF<bB at SW7m55!*m&4
z34<z4&uB=n%isk&Py}T}pM5!{&xAeD5*kC;bYU&=EUdOXXuJoKZK!jm?(DntptCmj
zUV2b at EfzXc2f9$!e?F<|8GvLpLdie>u8h{}_Aht;j^{8+85*EHW%;b<F)9akJ(*LU
z=WYOuxmmRjey6;dZp6W&AMhZu*GW%ZM_VS at +|9bVRjK<8#YB;y at xS4fXnD?NRYKWg
zQ$Nj*-uGC4(uLSw`Nn at V^$kNMYQ at w`e{wbO{Ef at wGOlRJ8#MQ0ECdUqT|&O<4=q3J
zwn>zSJYN5$dL<8Q1x_`9&&QdL_b{eKo<3U7a`x=qs}v?hq~u3J@~LP0Xn#k}hTGTR
z`b+IM^H=)wxMlw3%}VNRra3g5-7>bc{w<o~@A0E<wd_Cj^BT+t%FTwz!;MSA_mW?>
zD33ee-IBLd4?S{Cha4B4Ie<%_!_fMT?p{Yt8QaJfsz!HzF1hix$Dkb9Ip)3><0N%<
z68)(-oBe8X9pnBeGNVcPu-e8D571Fd;2_hdE#H>%-l=F3e$-*Yr!Z+B7mqerztT-x
zj{cOp5NZ$WFChJ9MZo%_n%cd12y4w1s at 02kt4GA;=X7E=cq2y_=qpt*P2=vXQJUR%
zb}xRlEN>}YlWjYmK9nFeg{UQFXxleoGb{vVO7Zx1FUBp~GJ1Hnt_&X#wJi^^vPa%y
zxFXqc5zSKWPUGpwMDXgXy#lZQ{_($Ldl!nTA>IrAo7}-N`i?bK#b_s8{@S0d6C;q=
zf!^4?jh=~bbYJrBZ*elk=@j!GVk&_}7PIAsp+k_yG)6P$;6+HUrR{-ljb8)7v}9nR
z>i)J;(z&KQ+PMxz`?Yy{-PP!S4R&wLks0@?409~*#m15}m})B_b}g)_?kM}FLW;W*
z-m*<kv?O)v+VWowf>;l-?)ym at sXvD>a;%>6!^qE64P;R3*YFNu&9=+YeWp`)<3Vi~
z3dkN|e=72fZKnFZQcyOd{#Ce%lea?Ic9XjsGMsI6b_bl3cV`OxQNUn;p}H^^Ugqtf
zX?W~L25qFp81VVSj@}LH&}YtBo4be95mn_c*-r1YD2j^SvJ=p%P40Fz38=xntN;j1
zI>>WydEa9i>C{8f+g+#|hdw2MZhn7{8;9SkZosY3A0Xfl`ipmO at ic}8gpop(gQ1Sb
zb@%6W?>;r}&d-6?6Z8aK<vlUdq;$~@y(^AIy=DD*OUEHcbwl4Wg3hIrOWx8hKblJ@
zy(^%~DifC{$^JUsCCdqltk<}-*C|6_Asgpei5jxe{W)C}{am#L*7*gj^9%jOv(C35
zV59pCHnEGJG3A~`xo3UlZW~_F(<I<&BY=j6K6iQdINL5%iZ&3T4W`_aDEFjK(eWtP
zu*t>79-r%p+)wfID1LqdXWjC;_F*77KytP{gZ at +Svc;;!KczvtI{9*q`bN(xl^S^P
z8X)(j<OAuvPiJd4QPT%@W5Cy%YAaE#$GGN-#rWFUqw;7o_UN_?Kx31u)-<qrGjGL5
z6q}#qta}sAa*n$t>Mredm#UW^wD+Mu9xq?<7`>&EWYgy^#i%K-#YSJ{q_SGJ5QS-*
zSia(6N;0=)^9f$@ST!P#;bR(nm_U!`Pf at B0KvE$9C3MBZg!|OZ2E^(pY1EYyyyCGk
zL`iiTe3(EfMOjD5sO?;81e9t46e$R%SkE(@_WY^q>Cx_r at hE^HzAT0qH<XX#x#ar1
zA3sK4x!$s3q``$E1C^L`FGg=ZzR>86p*wi=62zl-h9AwP(Yu7uethh5e~PzS&Z5*Z
z;=*q(?Sk*+Eu}+FL*Fve)_}uYL$6A1TLHLS%r at SDq=)!QpnCghSQ!-uK!(~6Ku$pC
zXMk;5HVU*0kb>>bMl$b_hdr|~q|E8Dr~CNiG}))>cW=(^Rf%mQk-H0{F>fiY9l>(>
zTn?E|-(#d(NoTE4I1*5K?_;?p2Nv|w-W0-D!AqW^r6jom2G&1pHb at ax<UuU-Rg|P-
zY9B8odcTR)4JR at WQ+Ie<%Fjm=4nqa&4wMe;gWJ9Vj>GOina}%spK11&wPgokqi|8u
z8s7f$1JS?S;TJ0efk1!Ig0J at YusQaEedbn_HrsTEv%>2b|JH)KQSO(q;UfV?9yTNR
z>g~ex&ZIz4k at fRwzwO;8nENfudm#b-o`O`znhEI^$HG-Yz_AACHeMYuI#rXE_ha9O
zgGDZyGst_r!EIlqap2ow1^9UF-!FS=dzkxt{YW&QY{&ZWe089q_a9|F at Ak~XD<)Iv
zY3gouJO4K3;&)+ozKL3~_zeJhCye)1VA<?mAu;+?{|G+Gi>vJ3zp<WQ_4CU;kN?BW
zFd^r2IsmEOvF5+`xOeG{$CC8;5f)3~Z|+ZV2b6O7po0nBlk^>?&yd1PxxU>$wF>3O
z<|A0X69ZuuwhaC^-*gQwU+wvS?<{p7qg*<WsaRhN^%JC$`bzDkUG7Ufsk2vaVb`Uz
zz`AYpzAxU2qok73ha;Fik_{s6SDs8eE<OEnT{YDLn}E@~8N_jtn>x6602S7z7NjFn
zZ?2-C&sCVval{Iobd#5<WA*UCcoHwgaQn+r+TS~M&}%#2cbBi2r5Wm1lIThTQ<a`#
zd^w;!b)ftRT<WU(vs^?V!I!v7pP6gO)_t?kKQw3I0^zJDaa&p5d$f2hC8a;XCB<)&
z*A`@86;jF at e>3x0M*c!~O=<4;|L^>6JHO)sC~$rsM8Ez&b$$<7KMTzKjB&Grt~tcB
zHF{?Qi-7wE+)vDGL4VEo`BwM#GW9(8ZCdfMs^Ec)nt6KNt$m$avH0jq0X-Y(dwbdm
z^z-zz7$dWjzhEHaF%5Ql7>EN{nz)X*zR?SA88<v-e3|t~j4N+^qndg at 33t(0K0UK>
z{Q}Kjan~>Q;H{*-PI?VfFPw(^;Bt2th9lSw4#O^KRwJMK!|aXC`?iA{4|Rf%v%R+n
z`H7BsRZ>0A9_*R=*7B)uspr``Uro at 1-P;b=&$GQsc>ji%d_3sIjE2#We4ZWPm%6|3
z+t2G?n!sq1G%x#lCl0#i!K_JdH!D at RwONd$d7_s5<pTW-iQgDP`4_qT=Dx*9c5XIy
zrb(Etu1r5`?@aD at U{6p{8%l1b-k|bDHaXB?0jEK;Wq)}4ORWFwioEb+qsL=|%NKd$
z>3{e0Jq-Q#wjBp!Vztz5RxfhVEsp&yEpC5V$~$eeH4i?MrD+D!$}W0%V}C455BW at q
zVIK31(fkIesNSI%Kk8FYW^vWDi&_x+kPr1uVE*La7_>Z?F*G*3cR0K__(&?XJUzea
zek0FXQfu(aABg8sbo-<nF|eQY=5v*eKEw2+lD;>f%o8H-{Yn2LBE^@_qoMQRlI^WH
zv>TJ*sDGdOZ3uo!YJU!(pPMeDl62AgI&Ka_-`XCh?@g&JPHE~^nYXrmWd|KhcaNAD
zmMnhpy+h$I4~9H==tT$Mveqbk;&CdCW$sC6enJmt_27Y*8G89l{9cy%l`{IZFTh8;
zYv?tiHR$Qpx~@rhQ=IxWIPdORm8N>Tx6M~~r4Qmp at jlvOcQ1a?$@@wO>61}lqx)cv
zx^zFseX+M6r^zFF-TOAVFVbnH&wa6bXe at 3Od)<5R<N+^*mF3+|0}I5=h2}PW<?nS0
z%9&e#wc#-)S#}F;uxl~J_AXmV9S9M+ZG8``@4ZioH`GQvS>F9D?t34jT5LXjg{dzc
z6+{j0f<7V$=0xtpik!N@<om^KqcudAnaR6LQ;VL&sLM~IV?MF8+;nO@<)%})Vec|=
z(@BMlAiB+jAbF`t73k8SXW12$sV`&Y?P!s%Ly;1r3txn<%T*P%^Z(`G@)ZQ(nltam
z&*W^@_ha3Q?+NecV=#WWkMHSSb~4GMlMt>)4 at J69AqT7H;<Y=p&pt*OrYUrthNe)Y
zAlQ8w-Gmw;e at DC4QT20_BwRtW5Xvw@cBnpoj3N!`!9ucj1EagzKO*jP?}_ at P5NxCj
zA`L1Oc~lBO1p`1m1bQ>?>=krJi0`wyFq-Zqo?P-8rAUvGOK3*%hU>EDNo;NBJ<OZF
z8jS;5BSq;odL{Z%e7XBzY!`Kz-Zpwem$n~jAkd3rz0202DAA`XXxbX1C?$Q4Du&W)
zsg!uquK`-*mX(s+J_d#`VX9=ex--Sq^s&fJUa#t3p#@|f`aY~AuXt>=(C?+S(dbE^
zVX6>(!M140Q#3!TJuI(3 at Av+-D7nAK1`wNI?D79dTQ~J!mG25@)3t(Me_HPT5xc)M
zn|M5z^wv+cCYeXH$%C|9ujpQ~d(iym2w5^^KZq?OHYPallmUldnRf}%FSM=0PxyJK
z>P`HDshiI>PX4Cn(bo?GtH(2<qnifs(MfB?;(pZ)Na<f!#*5AQ^n0NBvrstydKAvD
zN8$V?6wdFY!i)2jpYm_4t^+cQcdgw|Re5I-(Vi+24!H-GNd_diKgu%FuYM1ff4w{0
z2vRE<BiVFp?laZLs>q`1cXb2ymRhJ(iWai04y><enD((M>cN02sf7w8wZNB2!|?K1
zG<k>=Eu~UkKq`|@$}b4;XVHU6(NZeGNvSvo8HvPK%EB)^aAp^NhoOs}#nOwCWwQKR
z{JYq1k&h<7%vN7$%5vVyn==(Tvo}zYohX7|+PL}|`a2EF=t*4O at +0xN34ingTc>UG
z+q$X<K2&W>Ih5aao-U`>QOHheTj%6rz?1m0yf1IeyXVQWrElU*I{ak~?4y%SMfG6l
z-TX{bQT)Y=j`;B-uitytPoH at 1kn<luvvTc4xvO5AJ-+-~Pee~Y!~MxgU%TkD8z=ta
z(XT%6#G8#{p8UZv_g~a{!#mUe at aVnj_dM_d{}^Z1T>Kg5&Vt&;n&x>0_ at j;O_#?Xo
zvC`48(PIim#yVAQ>@0`Y1PVEyobKc-%+ERL$U}2iVlt<VA^lL83adC5e<=Ts$fTnV
ziIyLPA}Vj9%5 at z2lK@`+0?O5O=Wsr4#l8G_$^1o}f2z#CHkrSQ^J$ao)xSQOzn=52
zm-&&|s=&#>wsQVuDfzCKzlZZ_|LVz~nUsGr>_A}&eVFz~7J2n2a{fs&|EgsDIh=ok
z%#U2-)nCN<XUY7!Wc^i~UqZ3bA3ZOJN>KaOb3W~Fz5GP7{#MSXr^;S_q{q|0hx0?*
zAEAnlL#GI@{*<KriJTu+e-7s>A2a-~NY<ynwLu}wKUQ&mn0?oC{?R1F$gfPw-<qcW
z9?qvDgI9lAvi`}~&{DXZK8*Z`HUQawBIncng_mEItUrhIt7LxUa#eupFXH?#`>o>q
zk+ObmQvQ0*4;w#QIiDs>k6%l&{vOT`Z9k2Bgc0;%+CL{*e<J78i-TVNmC5`$oKNRP
zFJCub`R}4M^;dCzn0?lBepvr(<@{5memy-X{d+h+Z2X<9rgp~(^RJ1VPcLV9?W+;(
z=X~mGFaPRf{vyr~o4;0Zeu1oiU9$dq&JXjCt(;FwoTq<kvi=^<FP8aD$^4TKp$x}S
zi=gTM@?`!*&JXjSIh?<QgqZqb{#?ZQSES@$rWBCPR&hSPe&f||OzK~sM*mjMzl`QN
zqd)3;^XDGUr{DGW^4pT~PsRlf1-d5m@*}f6eiJ!AY<-!-`C;?dBF?`uMZTWERQuED
zU(fm1q}1077}ej(`S+*f-{bM$!}($SPNsz%AuN9)=ZB4tIce%I;{34rb5)x9>pA}t
zB5C?}akBrma(>wSxQFvY`~NT!>^NcdCvyHdRLJOWNa~-%`6Fe%n7<cse%SoDiu1$l
zyPosI=I5=PA2vVlNu&Q{x?)5Kt3Q$RPoqMn{WpmAbAH(Ty@>O}#@8y&KSRo|PRd`;
z`D<i;<lj^Q<^P<2Z%Y13FMki`&q>MG6ExL7S#5kA=b at DRZ+Z16a{hHG`FaCL_2+PY
zUrPQRUj0R!AGSWN;{34rcRlATH#YX4q{OTBZ7b)WEA`J$=I`PBvt at pLGXG?pawvS9
zK8*ai$^40&Pi^(`#rigf^G}rddivDsKj(*yuT^RC*K>Z@{Ir$x!^X!R&YvpzMf3uv
z`d=A-nE8+MyHo0aS{X?7f13J>IDfLNe_PVNt2m#2GtaYcMKXUq=ZCHDTRH#JvVP=N
zkKZ2758EG}tQ0#=n14>>{DzeEwZ>at=WzbQ6#ea<{zaTmuZMc=)5jx+=FC-`KbzKR
z<A2ffA`r0g$U|@(jh^nEMK^QVWl~n8%hNT)`C)5iF1@>j5H{D1<op6EWVndESUKm1
z$)C^p^k%nLf4ZWl#zGJ0Pm=lCl~n#3&JWwGZRY&2u{^~2%ccCtGS5D_Y7ugrF#RJr
z-_}>;>*btZmm)vz$)C^pVSC*k&JUXl)}+bb%=raUzv!PK&ZjGK&;HsKm3?#7BI`I|
zYuQN753_GM=f5N6M|LLL&-qO$`Fb)Y`}J`CD48$rO4e|Gq0AR|A)7frjQ>!Y{9HAO
z;IVtiSRTpwVPm<R^HpTVhd67@=lo*HUz|01I6rKzUc>pHlJz6{vWe`sne)Tef+5Zi
z+l%C?LyY5ujo*=+e}9Vp<X*a*^TYJd=lt%J`pLDThx5y1{-=`j!y3*XE%U`)&t}e7
z&9vBmi1WktLb-eqNSB}9_=xBUitIa*^M8<%|B&b3<(z-6%olr&`J5lNm+0Yq(&gzF
zdx<riAGVj+%=uyS#}MaNN%`U~CRZIo94E{_Msogl>C9~G8(niS8GtyKbAFir%;)^-
z6#aUFqWV3YALc)6IA29Zzqo7K%=yJqz8GIaoFBG6=BkCyaXu;QM>@U!9m)BvDfu^f
z`Q at D7kdm)2L#Tc8Ie$({esZtf!}-%w^7RBl_1AEIc}l+C>{9+_&JVNC5a-8aeQ}qN
zs}^R*3A5iw&JW{P&iP?`@%fyumLb!B;x4RbnEV28Uc>o6l>8&#Q}!o_rfu3L(UG3g
zbhJC1)3nVcjJ80u4WKkF2gh)lh6dS<a8h#ur)jK_KN3!RKwA4LU4WkvoTl~WbWWei
zG40*X;`BL)X-%VgG<Q*4gdge$N{``qEaGvTrZt-KK7pU}Ieh`*3prhe_+m~^;@Cwz
zh129CRR1!LD><IVG0g#2a(V{hnVh}~@ztEBaZEC<!w>l^rElQ48gUJ$YZ23)hw{ny
z=W#lL_(o1QBBphp%Cz8z#t^03 at YBxePQ(j1O>69}oc<KYixGdC(_M&{aGKVWrJTM4
z at n<;Qi+DMw??k+U({~|W$?4B?d=JN8K>S5c-;el9oL+_a0Zu=Ncr~ZLhWOt&{SCz5
z<n$Vjzs>POh`-C}?{oYEj>(_N77yd+$DCfr at uP@;%IU`tKhEiX#2YyMGsI7EdL!aZ
zoPGxJvz&eo at y|K^JmLXPzrgW}9RG&nEr@^1>6a02<@6sA|B=(LApR4lU*-5U#IJLD
z8{)rmdOOE&ApSe2|AF{TPVeM+7vi@${SM-HIlTw*zc{^@WBQZ-WVa|j4&wA79OrU;
zIN~EXeH7vkaXO!4dMSwhOga8J$Km66PM?7Iqntj8<5LiSjMD`i7a~55(`O()lhY#+
zpT+5O5Rc;YXvF7nI)=EI)AW36ET_jKF6Hzm5TDO!`W4v=IbDYMVopy&Jeku|5MRpa
z3dD5pi+ at ffKBjW|3dB{Mp3d=1#IrbkHR9Qvz83LyoW36M4V<n<T*K*Fj_VOOaC$ys
z`ZM(S=iG#kMou>)ZsGLJ9JeFx;Pe8-w{ZGa#GmB!BE*Y1eH-E~PT!8Wo72k>-@)k~
z#J!yELwqNvKZ}_DWIp~m^qcFS=kz^@@8$FtIldq9mpHu&@dKQGkmIi+{u-yhj`$m#
z{ubgjoc=cA?{NCN9Dg72T2B85;vaJQVZ=Y?G`*<y6HfmW at p?|v%X{>I8~>aQ_;`}j
zPa%Gq)0;Sc7V&>_n*QiI{y762zd&C?!c*8l9_0LkhFKs)>F-zi!hcO7;2<CBIL|Sz
z_5&h!9pm`|qvY2aKf#BuWW2zK|K{Tk*hHKvR{c at VKjv(Ww=zy^7KOi at rSSpAX+5Cu
zRhCnIu>Nl3T#1bU$?syEuL_+Tv4|7ClJR48HRtsrjjv^V6yp>{)y_l!NS<1v%MWt-
zqeXU9?Op`H$*6N=5CjrcJDXruR6n^3WJJBU9+FuL*$##(?O{xas$G%!mW-p$iODaV
zS{2jn>OVvS9~LE|`X)^vIvI5e0vG{NeH)RIH|-PT%fHAm{!_-eM=}4hLp1;zUWhtp
zdTE)6s#`XR=ycSfU0X0j)eg>vqw_5xs&;q5jHpAqy<mtsr9lu#RP6+VSyAVLAgIch
zh2Uy11 at fYf8^8#NI<%7vhN#+E+VILC2qfyz&NCRIPE`;D5_M=-8VphAsvrm?s&6d<
zc~P}{4ZtXGW`)$es8gK^@VBT_8^Fi0zZJ2cAHyXYKBoP at it%E`AHa7tZ!mro<F#jK
zd^O{#<E0^>mw>2~2*Dde at Rks~Er4G(M)MhDKB at B(?b3rG>MRU`K%x%q-h(0PEDnM|
zqE1%`-W`J95rX%I;CF`LcZJ}e55eyV!M_lK-yee0$s!n{&VxY^NYtSdM=(U4Zv;Ug
zQHM?<!4P%mWD*Qf{iH9D5p}*FzzB#sKM28p7=qI&Cm5p6x*!N7>d*-&7@`iHhJqpL
z^anv8QRinN_{I?YnGpQB5d8TN{Dlzw#SolMV8IY|wgf>SQHM at v!4P%mq!tWO=anD`
zB<j2xg1;7mZwtY<hv0Pb3x=rkk01yn>g)``>4X>zQHM^8!4P%m<QNQ5$GW|R-W==B
zII2#WHaUlcl+O*p=|ma~QHM^a!4P%mq#6uS=a>L~1U786zNiZ at R4EYEqUv-j08U07
zI_U;O)S**vFkt@{f)|9~bV3e>sB=aLJ~9M9Cj_SxbudI7I$Z}t)S;7hFhm_Xbq53X
zT_N}dA$VB`PN(!>h&ps)4~D2ir}tops*}78r&E0}M4jm&IGy-|A?ncSKNzA8-2?<f
z)VV$cuMWZKwjdayPJIYIKLo!i1g9H@)X<3y7>$bpJ{KG#vZD^&LIgw9p<9Vyh&psb
z5e!j>ZYzQz>d?(aFhm`?#R!I|b9)HBEClZf!TUmRx&aA>sJacY;dC<+3{i(}NrEBj
z(5*=@L>;<82?p$Q0{Gx0DtD0eWEOSk)+HFC4&A^6L)4+$m|(#ECj_Tknqa{GCj_S(
zoM4DLbej_l*yn`cbjuSAQHO4Pf+4DIe{4A21O-FXp<AKUa3r5ox_De*n5Zy;@qWgq
zGyXN)Q>by2s{xLj!igF$V!)is7c*Yw!+)*%cXNQx2FCe%hPC3}oN=SiWZcjAkp>WP
z)S=t2V2I-0z>mIgE}jELlJ{EbcRf((HCzD{Mh@|cpU<f(9Eb`dhk5uYPTc__g^>?=
zcp;}gGmh{iOI)w1aGENgJY8MS_#7Mz3nRz!H~kEUzI+A!QW(Ld6o(}oKMs|Jk>owh
zNsQlw{ws`}Vv4KhQS{|fG^sFhnum|()Pv^%cM3e*tdt{^{4+h=+>d?bWRf$|!;Ri=
z98P%hKIC#PafY%R4woE`<G3CN-oi-oKE&Jz+zm%4j7&4d^>b-_dkzzLVdMf2H}-rQ
z9aI=8^Y9W*ZGqzyMrL at pvB+W+EsPj#{5uXPbuBLX3M18CdDAaPpFnu6hZk__NDwHD
zT<77&Qg_1yg^`4ZU%{!KiwJM<aMO>Il)p84c#KnrtA1(m at XK;^@;@%dGsp<t?CM|=
z7sK%iBgysgQ=ET?>c`~zX!`5h=+MGQave1N`(b70<i5z*;i3zvd~$ufhUH(4aa0&d
zu8;RKelOy}NOFBNdOtay at Z|itjLUxvE?yW(j$d<<yjb}gjKsmnxd0tn7%^Uq=Q*7J
zYh at q0@z%j4-i%WDQUiN_^$zY83nTd8U_5&}hGJnvO*SgW$bSX}3L~y5?u_8nFY^h%
z%){|jg$;0w!bqiuAJ3^pXAxc=z-NMgVdN?gM==#Pf<R%!Se<`2135P<KfHlUC4YDA
z2g<M7JRD|M;VI?kogRKIr`}Za(n1e6Eh&d%6h at 3U@jIa?b(I?Li at ow!a_UEFymxuH
zk^eR2KiwW~TJq~rB>xT%H~zB~NMWSc!%e at xjznSP&H!Gf=8by-_yXn6Mk>G4j#Ag3
zPjXgy<&Aw7t9j!=4~KbGIJAt)e}TU_&Ly1MsqFBmhnw~uq3qx9;cGbcGdN^n<YyjE
z<AlOZYM$Aszu<EYr+#%dm4C*=AL3M@@`vX<{5np}IF8CE&xz_CQsjMB+3hZ`Jie;%
zwi;ib_i$8K;oeV>oUeJf8G&z=5&jJi$8b=g7Ky@$VaLBag`CA|T>OAbIgS|@Eoxl+
z(8JBR_}b|t=V1>&jZ at 3jcr;c_${DHfZ+qq8ekz=;#@F{f+{i!l43fXj!{Od4Jfh~G
z$2=UxR5%#xui at -vB5|4Om*+jGk5iw*gisiH!NW04sqj{W at GTyWX;X#cP9*$g4~JM4
zj!^6PA3XfyoO)j2uXs4RPladmNX}~>Zv6IRqX>W1!=X-vF^3Vp&BIOkch!3F4-cQp
zsn^u_+UeoOe|~ug$=T)MW`w_|)`fRG+>~!o{kzA*Cv$3{8W%5m_)(nto#Oc$56|V)
z*Q2C&yN4V3UsC=1hKHj&R46!{%J21XG*g9c)$hssA50f2{22qhFcJkT9X`$R4+{uC
z+{5YFH-&FOQDG$4!%e?;j3qpIUsR%tJO2&GE{r7af6UB#tiqG`KX5-4URH9B^W-mM
zeEtO_CwZT94dY)^{+7JYG5$ZG$|vu0O!?anCOOIb9GFFgqY4Qx^z=?*+`)ud7)jpe
z6f=JOIKq?nHp>~mQsE;#ImXX_JA%rO_HZMg{wIsVNb)|%*x_y%wlHFLsrnrxQgNo5
zXOj0e#-CrFi17<s_`?O5uWb0o!36tEkB^b_CuN`HJx>7(ECpfg6TI at JjE`6LN#66I
zTUEFYj#?N=-owDWDpZajJb4de%70Yh$$J=sPc5MG$$J>%hq>tJ!btL7#q`UeYQCNC
z at q}0vIxeB|$$KZ$FHz-h$@`@yF8|*bQ+ax`L<cj%H>>_l-aBF1QQ<QnjD59N-uU at 9
zm0u<Ah0M4sDWdYpdy+DibJ#_MC+}6d8DFH<+1ow&W=A*%eO?$z-k;pd<$req;XPjY
zs~P_?8eSMl-k+Eis{;9jk>ve at dJh)Zv?$@pdlgJ~D%__0_H&+mGjE at XiK{S at yjL;v
z_AP3DPTs4S`MFokd&zqh<A>F1o=@JZRI%O?<)6uWm5(xhkQ(pFdlEC=e-D9$k>ou|
zHJ2|`{`qZ>znNE`#)MoLN#2tj$K~%<{+7HaG5+?N^8e(0$S1k{l^7sce?9rFjQ>>O
z$@`E7#!sI><&*aza~Qu<;Tt?T(;0tD;mP}ua>grSBqw<vV)$b@#d+!lPY#wj6^y;<
z`*Zlg|3IVyrVSMc|2cjPexZid8!^8S_~inp-GV7!Bk%!%-y-l|3j6_qzaa2$3;b6C
z- at -VCf#PKJniZV*(`svQvjP$>d77D=@L!AarED?6rCu|068;-e-pnM#2SdlxYi1<B
z-X$!b%2OX1o?jC9vjYEyz)6-V|Crz at +jTMtMxe4U;m4G}G6eq$;}l`b<CXudz-7Dk
zhTtt!2!XO?`8xzI`F~5`vi#3N at V^QiQ-a5n&c75$uatixeL?W!Pccr>>-aJDiIPwR
zDo^%5lD;4u;lq#Bu=8ObZsxs{eE8{H{xlzM){%33xY<XI@!?qRRha0*Co_I2<J7Jl
z_%ZETCUDyQ8vJN-J_Kqn-N6|Ac*aT2<pMYR6vAl?n(`k<ngZb@%lwUkqX|SH{I~cq
z<+06Cf$-nq$KbO3%OUtyfg5|1oZk!FoaYGtgTRZBra<@~@niIsAx(ksLHrop%%g<M
zd29^6Qy}~m{Fw6l!{<*z&c#SmAo+jBkCA^Rfe3`ZiXVf|BM^b`zu?E<?F1qa{u+J^
zF6~VHW&Y-Z#KY_?*NZbymjcO`_Bmgn8viBIMz2}Ns66Sdqy)lj9Vu)GX;Xea<5Y}J
za|Z7e_+JIyBk=zc_`L#`e)uhcOZh(%xRk$1;M<Wle8~4G5Kk$eWKtmfZ}>6gcM*s{
zxRn19j5P{`(<#rCHzyau|1NQ)DG(mkzi%SX$dUc~mcR>;ra*nN6F;WB883v(evxwi
zDavQ-|8g9WO^n`rq$yCl-o}r?k0B6&@ZI<^xYYZOz|TgS0+oLkKc at Ug2t*+Kzwu*m
zDM#{=Jokw5c}P<rIdYtu^?~qz;m0QbJ%LMmZWXxXlkNQWCn2W{X$r(=5I=^Gw5Q~M
z3d&HR@^XHjtk9sGmJr<Rul;tA{UYrXHt$J0$aP2d<6dwu?J5v_9E>T0j}tiU2 at O6~
z;BsD?Bk&iHHsuon|CPX(3Opj at KOk_rbun_jD{v|QQGrYOG?!8!dmbd at ysl7<OZjgJ
z{9sX at Y(jzLNcrXlgK)alF+9yp1>uJZ{6u`GKzOdePgAJI$)4tK_DDZJOq7>$==RCz
zJxj<rLg3~cOnQ$LxICxO?URus*Kz3&V}$$<iSlPMPTb{uX#9upu=((Rs$Ft^I9;?$
z?ti2`<^Ja)QC{vJ<oQmnFJ at f(?QouulPBzXfxzWBog#4Qx7Q1tZVOF6wh8=bfqz=y
z^mM?Kzf0gB7P$1oV?%JdjWlv(`QrutQ6Zn!Zc|?R=LrIr^X*3kF6Xxs1%9rOPq&>$
zzT|VVz~#Dmioj+0j|p7PpQj33wu|;2HoXVR&qoOPVdGcwl<hrL*oSU$4bOUkpC<6z
z1b(`}<@|7lz(<JkX9`^Q%f|&S#}Un?hR+Nk=PZHG6ZqKzzg6ILM`7gj30(S#<UdN3
zm*=2!1un;<#0!LcX-~Nim-f6}l$Z9D{zJFlhQAya=LuY{zeNH!^Dxcxv<4YDa-Jy`
zxLlVdAL;*NM0wd>x^*}5PZ8~s<5bF#{+}08K5V>);nL5;#=GP%*G=hHa-Ns#W=!yu
z^OfwcvBD10{^JBL?J!>8BZYjrLo at a)75D^!mkIn60xuEx^GF*x@|^fA at PF~W<=vvZ
z^xH=Se!h at TXH^R1R}z0kp&Fkk%F|hl0+pA3RX`vD;j(<KLWAYyenYO0lSFyCV>IoR
z^Vo#~m+RoKP}h{dQ^>hUlwTuoTC>gHNc;~UZqDP<Zd88J!MY%=trV!eaz9CH2L-|<
zpGyQ at Cis~9Qh)h`D1Wgi-z{({XQjZU-tP!p at -#Q|e!b>~obcb_$JlebkR$cJBXFtr
zSTYs@$&q?T2wax`q`;*=^az}6X!v|d;IjO;1U^ZWe?s7s1^x?xOF1tK+!f_VMpd&^
zyJYzb1TJ}ACvd5^Rp3%ix4@;|`voq`KO}J3-e(0a_5M-dQjWPdrv8$8k01bnB6`Yc
z?Ef)=Un=mc1YR!iguq{dEF-5=;AC<$zTOqM^ur5z{86?X7Y_+s?$6f=T;5YXFL2Up
z=7G0E at Z%3bAq3J(<<0zHem{_Ksdu6%Fa3NJ%2A;5Ve`Ml<$k6@*z<HHMay|V&NWgm
zJq0%Xm5JV|qP*M({so+koUrqhlrPuKv7)`xgnU{43W3XYT&^RsT~(sIlz*kbD}-K&
z*9m;OC@=ZU5V({t`OEzSy)9tuBloMb1TOave-`$<Oz at F*zDnTIKc(KSLXJFt{a)ab
zkMuWlFM1Hl{!x at KLz)8NgZMG+lKZ{gS>m$21*l7b<jZ}I?DwmL-Q+p_YJnG!5CoDl
zTi{nHRO50y_6c0>e|{8#%k$ASLjI+qyu?oscv!n6AK6~XC)0f+{x2LA?her__dnMP
z{&L?a at mGYL>qPlX_KmW9t&k(zCC?+$4j&Qa-$mN^o3xL-Pm}v|c`lIs6?Pt%=WaQV
z%@OUb5qz!}c$2_y5V#zVw7#5ts4ghyE6M+KAxH9;=N)+;DCc3xNAj0^<oQ(Y6XbdM
zIdCv`o+9}CR^ZnQJTBTR_wCgJm-kmS0>4Yh3A?|VE6U6Bpxi%PEab?0(VIhXX at 7ZN
zR4B?zyjbAUPoy8p`(Y`+R`4Go<kSgV`sa%%W9%>cw_cQ=A>_#YgS>B{cgl>MTSfVK
z0+;jNJ3_DIKVOtTN64YGjFB(>N8+c6@^ap55%_6BPOre_{2<5CKT*c$EfD49dMf=y
zu19&Iyu`!SuQ0uGJ(c#C_L1x97@=1_cRN+!@*YX<C!a?d)81*K{EfnH*9rWuqWl8_
zmvS}>{3api*8-Pv{=_)VVL!l+;d2n`QlNEqFMbS8V~_&jRL0=crxXY$S!RDudo2ot
zOP&u3T+UZN5x6|R3<|svX`}a0QieeCWqVH)xNPr50+)Jch2S>{{1TzJTi{a87X&WP
zcRv#NWFcphz@?uI30#){Z-LA5pNJ|m1ng|ivs7&eKgMpiiSp8JpBK2a+iJ%Ba-I_9
zrJR=pF6A6f9fjcUuTumr%U>#R(rwO-iv%w9-X(A;=LZ6payAQG`sZ$eOaDJeoHv_9
zKVBtpl5hOq{2eP2N4PnME)?bEI=)oklE0j{&k}l1hfE42{|JE}sC~u9m2 at p%-ZRVn
zs$4hazC!L>rVBZ;y>cFI7W_{U<>kIHA at CMa{!;>%{d<GJTSfU+fy?qU1%9(A-ym>V
z{xX5LiSly<F3Xn*yj_%+_L1eyb6e`)4pF{b$dTpc`qC-NUl>w8mvNG at K$JKBM)*ej
zn0cd6lz&>_)dJrn at NR+A+GOOc48aQoPP$Df;{;)O21H!VX~K;!5!6K=2!xwG0DWIg
z9|(khSf%twKc@*lmeUjsa++{s69vIm6bPpu^LOtG1a8haRF3XoDNtE+W~A at 5m!@Fk
zn7@<PC2+Inp>nGQZqCSr_Y2(YVF(`-IO#BdZ%--2cca(LQw0PFyo=|fGJ%`D4V9}F
zI3>;B;p_6@=I`*W7I*;(;LtB{N)EE#L4l7jg(>Fsg|Z6;ULf$(1YRa^GiOqEwZP91
z<+}uarodMV+{}%X-7oNwqWqx1&77>VX+R?o|Fcy}e-sGZ>^Ui?OyFjW6J9NFbJifd
zOW@{gNcd`jpGN?Peu0}iBFY*Rc+3>0nEQwL7Yn>V;AU at 3*<}JZYX{-g0v}5Nhc1De
zIgqke3w*pOjJRLm#7Vsjj%d(_oBLmrPi5)H{C&8BL+}N`;4ArinGavh->U^aQCC%;
zT>>{}D9SMPNWPhq3GWx>DbIW#6!=9{(1b&Eg36W|3~_<LFA;c|z$Xd3THuof-X(BX
z;Hw2bMd1Aczf|CZ0yk at x%I1ZK_*aPX1p+r~D`lI%TS4XN$JnJ>l)sz`a_ACxr2!GI
z7Wh<w_Y2&d#VC7F;8%$9=1+nWmnwl59Hzezex<<61a8)P%B~i;Ir|gdC2+GRA$+yK
zXA!`mU*P5rnX(22ezhq~@!|Rl at tm!b>XUvSlLFz_sFeOF6Zo|PuNJsDt5SBCz|CHW
z at YMppo&XO00yld$${G}S+!Utx2>pe4R_mntED(5&z{><aSK!qGuN8Qg!0QCQTHy5p
z?-zK3zy}3BPvGVkG>HFvffpR9zYv}fc$vU&6nM43ZxVQyz#9d=THxkxld}5--Ym)w
z3cN+&`afaReq#30lwEL?E=2rq)=BkQCh#_aR|~vd;9Uam5cq0=cM7~;;0pvkDDYbZ
zZvI3s at mwhIf)D90gqyoHLdpdGNnJ#JRtwymK`5h3;EP20)dF8E at aF`6o4~gVyi4Fm
z at +O#gE)n=Bfm5Et^KYfVZx`ho1>P<2I|aT};13CWnZTbD_#Fb at F7VF?{K$O$g*f&I
ze3Za at 1zsue<pOUMc%Q)U6!@J2e at Ngf1pb`BKP&L<0>4Y(NAh8V_^%ZBD1m=Y;FSXZ
zyucd;ez(By6!<*?e at Ni>3j8^Ne?j2e1^z{WA9;-aLj3O&_$YzjFYro%e at Wnt0{^nW
z?-ckdfj=bh2L%3{z`r8!?E+sd at FPF0zYzbg3Vf8nzb5cXf&ZJp8wLJ#f!`_cZwUM$
zfqzrr&k3A374W#*F7R)O@<$%4zfjpV0v{#te;0VAz`rf<MuC4v;CBlAA%Q<6 at b3!z
zIe~vq;M)cMeSsf&oc==m*9v@;!2d(wl>+~vz#9erBZ1#3 at P`HdkidT|@aF{nh`_fC
ze4W6LJYIhx{y!1;D1kpJ at JfOIRN##QUoY at G1^$@89}@WE0)I~6PY8Uwz=>-a`_+*j
z(S-=3pDxBn`S5<mD}8tY?`s=<xcR$rclz)$F8`3gpV1W5=g)JV&-q2pK+Z37a$m^#
zRnB2A=KLn-*ExqDapX%mM|~*&w>iJdc{%5wIlFRxpYwLkJ2_i(26O(HvnS_YIj`jW
zDd+go37<IsFFCK~eDw94uE>(e?UC-t(#W#NXCfE(Mpi_YNA8S#F>+tzfyh at PUy6J-
z^3}-7$mb$=NB%AH^~et*{}K5{<eQOiMb<>V9r^djcOpNGJQVqE<a?3tN7hCjj{G?C
zNaWGTPa^9gKaH%9+!J{$@_6Kl$fx at w8zN6eeinH;@>FDFWK(2wWP8ptk^hW57x{VQ
z`N(e~TOuz-ejE8^<b}wuBEO5g9C<OaE$6Q}|CRH%oWJM%KC(6PV9p;SgONW+UXA=E
z@>=Be$WUZk<WG^mM*b_ZJ at U868<8D3e~;{l{3G&a<gLig$Uh?=>(AMc^JLD?a-Pch
zN6t{r&YWi>r|gP2qw8uqYDUMey>?nG7LPYJE at +B3Cg#?TYiRB4NHmV0SKnOUmZ*)5
zy}2_{dsBQ~eMh{lrL(!tUEszRI-}d_8*4^))GzFSglU)CB*bEqZ>_0I)J|z^sp+Vw
zY#LYMy5k#a+B at Pk?G<&Eb7PR?&WtbES6RgePR!&fv2pQGMz+S4CYn3y+nQ?{CrqiD
z(b3XYGq1j)a at vfd__!%mGjDCJcZ*!N)Lq!x(p=x%F{Y_zp^J7JbEOCzQ`_3=NsCQr
z?rb8nqbr&c9qsW%Q)^>I6H#-Gl=PPO#DU!O`qm1PkwUK6WvZ7zM at 60My2UZ-;QEEF
zjfvWXN+{;U`T*!FO3|mRJ-kk1sf-;<^Y3h)o2Y58ucL<SBY$gW7Q1e2?E51ceqt3p
ztOaBThY>D?4dQdrztZ!p_Dm~{eEGmhBV!hmxc0=n14r;civ-Kk14=LhX(clf^P0yc
z+T*P))N7bnQ)UXDna3<F9bZ{oRNGiz(-ub>&R$#J+L35!R$ZMkTy6C;>F!vJs3aN^
zwKdIku`%RE at tVfQI0jWvNm{3}&O!D$VNA{3;hNswUSBzZW~!!zwe4-`W~WOM^D3Ho
z>8YGs<TknEVcbvFx3#3Jsn<ZyQl)Ahol)PEZW=wX^6e%H)v-^VO at 8k3Y*}J8%|3~h
z%ijSMOLK>G%>yW!CgS%=w6yV<rbKhV`}W(!MygpgQUqqP!_eG}l+=MuV#e0Awbk5;
z4M`I=BxC2+&$BcpwH8lW-cSnLFTqA7m~Vr&**9_M&3zG<@j#CiV<y4Q7*kPmO}3;%
zwAhFH`=Keg|D#pseQwCUsR-M`h8SxM+L35(h_|#IxaI_{6{EJ0x7IW!n&%xjO(Bi4
zYO at bg%W$)<zQHz)@5GU2K}{n~PWva at -U=x{WshPV;5bI{*#rmCjyUtmyq-Q|WLMXl
zqe8}K&}M3Ews+2LZfR at MmP^ktoff<G(r8MV?=3zMdPp!!|Ag>X?2~M{{-?^$*tbGC
z)A_oNHg*ZOc0nR5f3?aau9?d8w&>0E^8(Ab)swyc&Tb}Cvt`ygGWJ{&k9ji7CWMH$
zyKI<>ee$Q2EtHM;K1r2cIwn)8wtKA!dIm^*vi|+F=md0HL!vp+p|tGZKuU4?4%|U>
zw8Y!>MOM6nF0is$2CT!1y389^P4Byg8{ZENDOL*6kbcUyc}%Q`FIed|)VqIlaZwhh
zjrN54=9;;U_3=bQ#q64z_BO)Ym~sHRPNiK(YYP_a_=1X=aksIfz0ItcGseZ~f at R9|
zizm&jxMEto(w(O7UMZu*bnS4YgU9CLj+Tm!G~D#gtD}BiTTP>8)eKgOH_>jdX{rZ2
zV{Ck`>*8~Ns5E^bRBSWKFt_4i*EN-v8}zUpR^W&=rk*a`eRr at nVse!U8;vQ)+c8b;
za}SJUjFI$`hhG{))|KFf%XdxPRMXs%Xm76xG-RLD*_W|lRAxK_XSfBA6|1W)(Ww2?
zU~f=R%W#u{?<Q=R<9n>+5_S1*wv at FCrp+jcdzVXYmYo!)iQH{JH3cWQ+66P?G{gCa
zn$M3yDq=qJS4<tF!FrR5(^T=<J>wCQt>Ca-X>jaiD>;O+-6^vb9!7gO>1Hsc_KnZb
zVQz=rjOMssQsBJ4mS#D(TW1n`qhrOjZS^%BSaoX}JL_p<p$;!@M~5 at Iwxy{F4<?<a
z`lj~!j<BU`3|+TFjC#_bpE9`Nh3T<G#)Y-ywwgqHJwLyI<kUxv!*)|v&NU%<QJ1tr
zHrm3R!oT!Qswh at -p11AAltS&=U!O_tqdUldAaNd^#kV?mfZyDjXo!s)jqPEU4YGPt
zaMXu+QB%`!`X)4WHg+U#X=$q)+de<hfM+oDz<I*tL|c6=J*jeIu6iJ&?vc%&moJxR
z#^SSQ7Go3ZV#m6FT8a*YmT|$^JF(F96HB{N=sH$U2yFXO%chDBDLmX79&A8cd-e at z
z4A$9~AsTcs+wg>W*;KxVpa;&g+-aB3YHV`jwT)zpebkn*hox$hz4d-Ku!vi at KRUB*
zrcI~sVRq0d8)pQZa##loo0YLtryNKEvoiK;qRV}}GT#p*XXPfEmElCqEgkivFP%2)
z-1d%|+M9-7R%5rc;Ub40WZyX4WSYf&u7777X!?z4`T<d9*@lNHv(9;0G%9K58_CX~
zzh4r;JRmXTRSW-qCK1-9-toJ#xRlOt=>Lw+cD?h8H?*}hnN3cp1gJ{c4TTphE|D8D
z+z`dv>aoFTtFLp1t0bjoS}BIjVZ6Srt+^#ljj=8js+j=>S#08l8NlALG2m1Qc<=$y
zLVjS*s$p98%h6IUKojJ;;JsfGQ(V_bRBvw9)YY}&fh1eMem<NI7jAG@|LWpx8D0H|
zY}(~xPLId12G(U-7;he- at NnH6oZ83XMNzuSYMSeeZtrO8sG<1QCKb1}(2J;93Y=72
z(V<=+&AwjKKGsX5ucy}za}%o#OibxL*I|jKR;+`sRA7<Hz7k&L%&L+{Q72U8j6Agd
zX6)Ky@!>|WcL>6W#ZEp$*H0tZHv+U^xwEmZ=C%uXn7D3cv*o&-FReo_+ua1;T~{W+
zX8#x{vmYoH{zYtpZ>$gJfpn^f#cJ__cSoaoL#_grv7CI+V0Drck0;cl>A859(|a7@
zS!nv at xakjDGb>BlZ*J?TsDsa1dZ7j(T~7?3Uxeo(_3a(FgTx0OI3U3tN2G?Ezw~G<
zsl~hM`q4}n#o-CW-Qn{=a34w4 at o=@;ZFr^c2Ptp&)6$l1R*1=0?C3dA1|5;9c#OuN
zc>kc_eJ8eC>WZSZ at zyxjPI?F4VodU%neob|(v*%WiNlrfFU^eB+R}JyJ?`GJmmL@}
zG&(Cw at fL18>62Jg{3DUZOifMw%|seMMRDy4#q=b;qb;!@fme8Mjo0Eu;f}UW+{54j
zW5tXy at WQd`ijYgke5G4&r6-YD6vQ}Vi7rXk&m1uoz+(R1 at HMPXJ=w!Wk(gfo*Egz3
z`PTnqjq31bp#N<R8)o8<jm29~@mmrd^W$?{+S*!fp-q@&TF?W<jnO0T&SrWK5WjMw
z9>fcWhwJNq(-DPC6~R^4G606rW_BV<L-;NTd#dS|qaC*OJWW-++q$n+o9ok5wQe-W
z*VT8_BpTa`=~qN>S=^4UXlbNLt1dw|#}#;eVD8NLjN&kx#)_#ETNc!}H8koTq~fvo
zbo}@ho79U{i*=e3?iImmsh3j0!%iv#7$KbqzH&+~7?;)Qpmtk<_d$kPl_s}h*7vnC
zm2Q}>4^Gtwrs;!H^a1JlVASlR7F;xBe$#+$TGbVm*Tg4X;ZB({BNKPU(PG%&w!~G-
zxccVWmb!Y(*ClcPHK=<abYOe=zU!c?Yv0QaxHd|CkKzEeCA}X1W{tPb`uERD=$ey$
z`;4wS>*ICx?X_)*R=hyyPN!|Dw`Y%)&MqB4gUU=!776SFQ$&x`H{*8USjV!K9xI|>
zY}OZ<S-C>UQ|90!Ed6^(SYq`f_H4Q+M2G#E{s*NeR)k+!j`M5n2eMf~)2a7v52Oma
z<@R08Fn3(Z`G7m#I{7Ft<=mT%e}t(|nT|eq_338Z51`SOdH(&;>Tm1&+m~pTUxB(I
zr$4livX at hH&6uhyX3(5AT#;$+rNd5p$!F>~(loa=*3{PH7qgpNS}UriG$BlHa at BAA
z>9;ko!<-q%B(L_R{LTh0a%SVb4Qw9hv``wS_k8&!j^TV=C=MRINE>Sms4Iqax;|6t
zN}!Gar9VS;DOa8P*BRY}I_c1v%)E(Wv<xTIa%{ko?H9!=ypF1E?<kdDN}SP^ld39;
z;+%+;md3{zj1z<v8;lc##SF#?!iqE&8|Nj9fbDNsc((VaPg6vVdRl+oIVlBpa#FuK
zx1ZuD><}Mb#^0;>@4T37{_|JntFsvO55l)H57CKg{-a-|l!>qfis|pt7;z^k6n|qF
z{D>3(StmyEH?+8*-$JIoi61*P_3!)|0lEA~2Kmp`DgDnOlj(Tz;5poWA}2yWD>z?Z
zl=Qd%Wz<(Pef96-KT2l!Q~SxrhPP>d82 at 7}{C|%6e*Tx??|G5^4)N)C4g-iVN=M$O
zpTCRxHvXF}{7Gb{{0o at BDNpTx9`*hFmyEOXFJk`a-jv|yA7;Oi7W at 6eqM!aQqRoC)
ztiLctd$9jMh59!8?PmL#ex~-*pYAjEFnAdM5)1zU3;$C>_;)e?>(lT*A%uTE|M9$q
zT%Y*UpN`9vf0>2<FD?A9!rx=G+28z~(#z8DzY_Ir_U~c-a{SSsF3XgErG at _s7XJ5r
z%+9~)a7}zk8vb{qzK#Dn=D&vPll|#WZDq=TwuS$%P~SiP*1;)l_BVfj^`tcXe~9`v
z{?&KtipI~0|A|@fue0!f(ZatTf6vUu-~64}v(oUdMtvLqg%<u;>N2)}tA+n>Ed1|3
z&(1&p2u+;+j|Cb0^WQzFZ{xp``QOL&$^Hcpl&SwLvhe>k>ihlYVk~N;!oU7hVP2sy
zT1VcepFjOSi#GlvKdY-q|2Yj%ru=)DzbQ}ce+l*d{7(w;e_9tPd{jr?r=Ne={Jqj*
zzb%mB*MHy1cKfYn{prTv-KcM~Uzx>zBcb2e!`L;9|0)arH!b|n58>aRA^&k9{AXME
zpOXduHO$|%m-_!L3;*$E|Lfa74KjcJbDgNEL#F+|)?&ZkLWIBnAH+Ig8$S-#H42yO
z$our`{}Srk`oER!SHv}`{ggKLNZ0 at CE%y5z>ihYh8nXYaV*dQ+HbeP``QK9(`@L+@
zA4dn-?AOZrt31s*;kVzlsBg31YPMfB*C+dpMLJXa4Or~=Pt^C at Z+q0v-~9dReVu={
zSnRjUqW`T=*!7#glRc8#Zz8|_-avhu{hYgW4dZ8IKNQW_ey>{i{~q=I_S=Yqqpkn*
zKcw}iJ3nkdeH;H1Ec`FXg8vQ+|36sxKY;_LjeimIFVW5LKK=H86!mTVi<o~A*ChLw
zA)TrJ?y>mq+o<oi|7+M(+xWLK|9zc554v6x=V at 4--*;Q|{|pXl)4!7SkI-VgPrv;h
zM}3?9sxAHRLQ1Cg%V++kJlX%hE&LZ?gKFd7&;0q%{f6=nn?Fym=zqte|36_6oBl!8
z at 3)u#dzk(Li~e^l`hR++UH^{#Z2w4${;d}ME71A2_UGqmlke;NTg3XM{|;L8-%@7R
zU&Q*;t^aMPZ}Z=UmhoQ&{l*{7yd2hl6D|DzXyN|?1lsJ^#r#h}9U1)o^K;a<@n6II
z4Nn?BGax8a{^b__dr)8L67jT)?fh3W|8(ca3e>mp at 3-*3DhvKInZIc-wf|p&w`oUz
z$o^-5`O}?^41W8E_5U1;{r(I=Mz4tv!2%0vf%D%E){o(x68!peP~T?1Ef)J-2T8^r
z#xKJ7&$rm`J=8b6O?*=b{{kj at atiz4{a={=R*U^!vFM+PbH2 at fWvrjYcr5((y8`uX
z_S?bsTgWxZf2xtr)P9RB{Qrdd#%?A)0v%!FznX~_ppFcF{)eExjsN_Wx|Zo@;$I6W
zQ~o^`{(nJz!`sBSUu5Us&qS9<@<{vnFGhVE|1RcV&h?3Z1JarDzsJJ=Rn#}UO}wJW
z&cBKW{uQj>M1KA~sBh!H*}^}O1^?9+{;yg1UvQ3{|7zwRGsHRe^Djkx8~^;z=?c<+
z8UbZ$|A#F6Uq^jocP~EA&VP{kUq*vN1V8`1qwV}hGXE~FPyW*aIhpcbXW_pW^*!Fq
z={q6zFXD~+c)^{Le*WJKvHzOS>xxBOpZK>SohkpPEc|Jr@$-ND2)q4Tng6w{-$Z`?
zKS6yZ(|7-~h50WO{5!MYKVadXW8uFY8$`f?^>cvvr+fbKI_lf_SKY0NOZ!t>GPVC!
z=5NYV|3xhPFTn=c#=n3bwji9OBk$91|FHG*Rg3+i7X4Kr_h)6S|4L7 at PWbg-9&&%y
zWwGC4h%ojr^GX>19TxrvS@?es^MuWQtC at c~|NVE=xAp&8<}dxXD+~U6Ec_3)@LzSI
zoxl0daj(&4_dfmh|03$!_>a6tSCRa?v*4e5gRU>nUx!%uKR?ROzxp^`|9%~LpML(&
zqP~s)YUbb1HEI0Zfpn(+bF78`p%(u1ObKvc{&4u>Al>-;CF<JvSKo^a1mow#zZc&#
z<zHaopKIa&3JBWx7i7qPE9%?$FSPK#GYkHsEc}nN at b3xXUzQ>N?hyVfE&ORqpQ-&z
znZGGd{dc^D|37fRvDv?x`SUP<W*z+gA2$D$S at a)f(f<i_o=tyOhV~27UvBBYqb&M!
z%Ix}Av;Ip=!$aD?CuIM>hWoFG>yiDxfVAlkGp at q;&$RGA+`_*V_t!T2?O^_=rs01R
z>f6T87K{JUT$m~UY774(Ec~xN-_AduUUoo8xBr}u`ZoSMEcRaod71KWwD3RD!v7Ws
zwAsIk`KPmg8|vHm7m%|c7(XHZc at W<-<-gFv|05Rucj2Lojejfi$M!xY_{aZp)VJ|3
zwebI17W|i5_ at 7|m|F<$b|JBTYWD5J>`DF<8ZTzb&{OSLF%+&rXnZGGd{dbCm|5EJp
zZ1x{u{(gJ=zlY5q_gVCR%%Z<AME at Y`$M!NMWU7C)rT;!^(SJQU$ku-2_#;xZ2m5a}
z>f8EnzNP;jf-KV?W?Y5Y?;(r*PPOnqJ>>aK5i2-84gWCxKeFgQ(W3trbcoG<Rjl9N
zU;gi5`qx|ZpJdUWzy+^OfAxO0|0#?AoNUp*>U6vQF4liq8vB0{^=<ysW$~Yfv+$n*
zi~R~L{BzE*^IyySalB3mnfBini~T-i(f>xs`FVi#r#pXc3pqdE$M##u>}mdc6zNRI
z->Vk>BP{%XfO!gV;QUj>hJ$%ig5Q4h|CieOKmUum8k<2qe|`*5ru=tU_~%*pAB+Xo
z#=n~RuSsDaoc|ouxA7mz{L8sM*}p#v{(CI^^DX=z17_o&f1*~*+c0Jk<iF0y^xeO;
zGJoPsf%yLnai;dqjjL+TkvdZKk2bo1DVrg#M+e*ZuVwyoxW0+}{zLPe&HhFA=^E1h
z8v$j?|5ywEV=VlCezu)|KF*aCXw8$s&wn%O+xRcE at P7t^GUZ=j;s0R^|C4dgX|sPn
z^S at 4#N7~Q-BdBlV-*4gnTo(LCS@@r3;XgUV{ssKturCe&i$d(5ONT84=|9iod#3g;
zW&Wl-ji1vk{5wb3?Z1}!pQ2bKKm7I&+dq_9^v5jv+koL;VE!Ip{rnoAM<7%E<re+L
z7X2?CX4gN+`i=bzflT#RS^Vb=i~hf1-m|rT2kSrADCXF&e+cz${$IuZQ^fVC|F<A*
z+H(TqVf{D9!v9PQ|2)i-HvR?dIB at Tj;OBoh>f88tF at M98_`eKEnev}+;s0?9|ARw*
zf1rx_e>{bKaQ<;Zet+OT3;#c4!N0 at 8f24)~Ga>xDm_NIb*9yP=p9<l>*24dlEckaZ
zf74&oe`j0xpD at bqKdYHPFT<hy!~D0$V!yL2`k%_P>+fg%r+S)o!f(GPP~Yain=STx
zEereIW8r^}h5xx>^H+xaN20!s|Dc8cwk-Isw)FoP3;(Y~?e=#*rtQt!0R07 at e*1^@
z{~C+^=yz#UTOr59_k^6k3RwRLPqR+=_1}g1Hv8?i*zXO9Fyq0 at YhnC<WZ^%`!ha{;
zlLQ=CKdYGk)HMA6j`}wK`Crl%tGPan-+v&TDgS;;|DS8&KM3VE{;T)1|2JFgH`=2A
zKM%3%?`Qqp+<p`J`+p<q+w9lM_A3(h+m(g=UbOH(&%%E<HV8KRRh_C8ryD<Sp}vj(
zYUXeJl=}ajEcg#v_!n9DCr-EXZ)N_I*?uPS+rJL=ZT#0+`0vSr|90kY{GHlA*24e9
z!|nY0nLmbCO7Qa!8~-~k`o~%HFUI`^;K2AFVEuT!lM*u3zlZh9^YeI%{@-6>*S~}H
ze>z2baQ at zc`nLWXu#6vi|HJf$@yjs#<yLFOrablECoKG%$J+U~7U=pVI`Td<wO at X<
zt|IkMu;~Bl2)q8Z1-d>j<N6CeGu3}WwXP!juhgRdy9IXr1HdUXppFcF{c8&B{pWmH
z*IL7s$^P{G(%2(i|D9f~D at y+7TloJI7raE#|NEz9g}VMi9eJOA{yR|L=6`FLe-YOt
z{`CAfQ~pKOx}qsh^(W#-=|Yx?KNP~hpZW7L#4IxJ|5Da3?RTt2|J38`_8VmVv$4L(
z;J05n>f7wMh3&VS8%ph``zvFQbp1cs!v6vb|6hlU-?Fnb>t&KW(tiE}sBhyxuv%A?
z{ZH?IWXiv)TGyBMztF;e?ge)H4>130v>5Nx&;NSVxAAwrs;e0PC;Oj}1^+qKy1r>I
z)xQWo+?`&$Dq`nf#0UR<eg0L)`lbEKEc%}fv0oMIPiMcUL+rQkt3mtG^IKz&bpG3F
zvERiO{)-N_+ixxN$MT*M{QV!c{w-wv(tej%^dE|G4mdD>4zT`7DcXbMCxZGm|J(6Z
zT~UsoLMY1AeoHO<Ct3KvJI>C(0MA7z6zj<Q^xN;BsBhz6 at HJh<^fUQC-QQ)(e`U3<
zFYWJI_+K8vznb}TH-z$^62iaK!k_MsGUdO@!hf=be|`x6mCS#+$6P1;_CF$oe--m*
z8tVBC-G5}te~pFz6bt`fjR^6dQJQZ$|NjN*+x%xO^Oycl=g&;}|H#7sQVah-pJ?ab
z%KX#qAO3*)HvWSa|DpT)O!@a)_?KJwuQ<ide<ky;)7{{G`u(Q|^=<rjTl|Oae=_C&
zoQ3~(uu!^0d{oH$cMf0NU+*#32|xebkoWIq|C=r^*Kaz1Wy*g`wXT1pj at 0<6u-Lx<
zga8NT|7zyX$2gV}oc~WkeVhFUn7^Dq>HL)`|5vNEO3A;{!k^v=u<`H8kiYj%NyKZS
zN(@=})BZD4{yQxEr&{=L4O#zJGyj5AT7muROQ>(Nzw>onQQDvOPnq)HW8pu|!oPTu
z-TwW|zcda1b5Y;M{{#zvTK_ZUpIf69OaHmT!ap|N&fomuqSMmwABFlh{zVr4wEkqu
z|5ywEt1SGRFR}A48m)<^+dm{w-^Rb3`4 at 5fY5zm>N2dG>Ec|C%`2X`_JO66tPj`+o
z_~*|ZsBh!HkolK$W#UisN2dHo)#!@Sf38M-r3+am{ueHY00-yK^K|_t9eJOA{<~4%
z#=oEWOZ$`mX3D>m`J3|8{%i1Kc$@gikp0^L^B?6g*9kxWu=7V5>zDScvgn_6lHGpl
zj}<{>VH*8asBg314z{11|7JqJv4_FK_*Yu^Uuoe#WrUr75qDg=`Qu{LxAD*YhHkjw
zN&QFumnr|*HM+jE|8&$h{chq9kFfKv&XE6yP~XPCz{3Ap=+BgYT}_bx4AeKgO?+vA
zo&QSapYHzh64bZxFJ=B~G!3<Xx;_j3trq^&e#6_uOW+`Y1M`PDxGrS<Ci0KJMW}D%
zKgj&q42pks7W@}6f74&&f7jv1 at HX*k3{b!U{#|_V#`ZQP`1yy8zoo2S`Y(-Nqu0cd
z<L&xavwn^|4u1Xr3c0_`|E8`Y$6r148+#Z$jQ>gt|5+CPIcM7W4>Iu)9&?@W^WSrZ
zz5hpA_|MOR|0)ZAdj4<hZsPMp`age+=KHBM{Kuibk`+lUSjPP2_`4|!{%b7!|7zji
zg$HyH8}Q$i%pc23O7PqNQ>bs_KV-3ga~Ax6#QcrF(fIo>Ffn#F at z+0U=f9TuBReJd
z`G@)Mde$$;-`_0yCtPUPKfwCa-M^NgzRiBlw=``t|55wf at nh_fZv1Vw@PEU?|4N)w
zAU4qdMf~9Jeoe#s^xLlz^=<qYGJom63$oz<qJ{t8E&T5SX5&A={L}d_-Ot(h7cg;S
zXR`mTS at 0jU@Tc|D_^pYf7uosmVE)~n<#obu|Mx=tr<D1ZbA95!C=34EE&S(L_>V5K
z^Y6lQB?@KgGx_1?e-`T7?B8YKe_Iy(cU$=1VBx<2_q2cm{@>61`55Lkz|a3?)VJ~9
zZ1JDlv*3TwT&+^hKXD8HbFpsN`0rr;_j=5A!q0ys>f87aGXH+APyVwk3;y{Q{?!)#
zFJge%_^-sdjKbAA@;?3ipGSQg|JDDlt4ROv$%6mM7XCFB{`ca7!Nz|F^Z$XzTqpee
zSE9a+|B!`$Ul#mFTKLym_?JiR{MX`MhXSVel;Gz-3H5FKi at vR^6>)9ypU-B&zr at 17
z&cgrJko*5Z=Kt{&_QCtxj*$ERYUVHJ|IcN?zs$m)_Rq>z;AG;0T)X}AOEvLy?=PQ(
z`ZoJ7wD7+t3;vbNAL3P@{-d*`;ceoZN7?xoF at KmhCHVa(Z2vXWV!wG7{oRMz^;fa}
zbock4Mtz(8R$A<Le-`$uw(zI(hq0T9ug$abZ)N^fDb@@6?<~}}@n6IItGPb)->NM5
zH(L5XVc|deU_1YQ=D)A|?+%Oo=34YmLi+#**6%^q|6TBt!S8?AK3VOT`yE}YiaUzz
z_f`Cu at o)kQ4fEeF3;!D}{NI~s=f9GOA*4G$yo36-{-6DQU4NmD)cwcTv*3THg+HA?
zjo+I1|10hMU)-pI0KS(yuBEnKT2FeS=%OM~a82~?Xh9 at ryVrnK!j%Jmu;h|7si#Rc
zCY!1S>B(trDB}I#5B>pyPy~;b!hvEVJ)tPdA@~LA5B?(L2Za>+!y!k{nSC?4^<|c2
z at xj}9Z{EzC&(3?B?CzE3SGd4HJ&^w%@h?z(7JB}F0)L5rgZSAW^Z!`{{!aw{iopK>
zJRnH?S-3C9688LX5DX;#<f`)LeS-X#BJh7o{Jh`LzY3M}&hpwmnZHi__bQD3QO|$S
z{{39YA3ncxT$UdOynkAu_+js#E`Yx`SFDfdH8Mi}zKD>&HG#heGcz|!7w!{a+JXJM
zLHzIk7i-|}j}G`t{0qdNB!67L%Mtk31%3zonVTiv=SchuX%+Zv2>;Ch{uP1$Y6Sib
zfxj;BzW|@p68|5>Uk~A*1%E039f5x>0{`y<{~H4T)d2qNi~=u*@UI5&_XPegBk*?x
z{)WK+;9)uc9pZl_g#SM9m-27YgHMwDasPiEf&aF^kMF;D-?Ka)z;8aU0?&o;zZ<}x
z75Kl2!0-KMy%5{~{O$_;e+Td{5q~CxzZ<~6B=E0C;NM$Rf&Je<ErI_?O5Q&k#2 at zk
zvkW(IFzvwaA9l$<uAM)xJIkQ&uW{n{=l>SW#eOU&4$Axn-dIApqD23w^V|de-dwT1
ziPu=A{I8H2_y2bh@^1?H at 4{Tn&GOQW;*V+ZuMj`x)?f7gg(t}0Zv^cQ`DZn~e*QuE
zPYC?CVJ_xo`9lDI{HO}7^XmPe_(>r?zJKPpEO9=p!&?5vDL&gNnjL at cZ_&TsOR|FG
z1o<a4J at d0X0e`>Zw%;^O{(c>{b=#Ydd%C)YZ?OLj*q{Ew*E8#W0e?KlG%HA^FRRAd
zekF1L{tT7<C&=yw_zxf7cA&dNDo<=)SG`FBMt>|MR0obru>W*+96Utpmv}^(qTlyW
z_4sc#^7VSDVL4BkUP&t9Yb(w4<fNxdO-((mOcwT>vyaclhIWXCjOPaUFnV?vkE*0S
zkv8rE%lS<E&&={)@%B4g7wxUKz1hXVi!W}rcSAq3ydFP!y<9F^V-LOOd9i(Y?Awk}
zZrgXtW9#-E!}C(sU^ZW9)!dd at tmJE_%`>G&bJ3}psY6!Edd5toTHa_1k`86uJ3>y+
z&KW~*#fR?SyKDCfoDRM-!iwclJj~o3KOZ}?Z!`x6(8aN5Q4i%|Jn;BQHI6E&;Jcg=
z<JPt`HY}{-F)%#f(|atSdkm`nIf8TcprSorOCB5OK7uOQuY!KRw|k)hWkd<%N06xJ
zKCkcr8b>|Wt!-5 at KK-aqZ;~GOr+<&8H9hl=jQW0+*|3UEwOXpVhE- at b4c@2lQ_e;%
zS86nBPOjn<^DZo}VbvVBWF32H{>i4BFTQT*KdU`uqkaB_y=YjK%9&~|f9e!$jMEgZ
z^lGl$$X82-)pQ$fz5w#=DoTBx!+AGft1p&Q)ArHX)O2pZAeF2v7K#eb9vq$A8O=F`
z*KDIdA7$kKiF4rYyVUxV%~A6I>1$Mj*Ok?{cBn(?FKOz8-3y{G?hCdjH={>^c%Apa
z03zYFgoQr~@m>dY`Z;`zMo_d at QT_d?M%BF{hT=G^Xa58%ND@~6GYcN&`fb1ISN at K#
z&Hk)vK?8IH-z6O~c$p1J^7*s64h<=PCaoWz7v^slRQBim6+kC_mt at JGgn|B8bp8)O
U$2Oh;9VW=|H|k>-*GP~5FGLtLcmMzZ


>From 0adb7b7009b7d42e77efcdfb6e5af1f8d370485d Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sat, 14 Mar 2026 20:00:30 +0530
Subject: [PATCH 3/5] nit

---
 libc/src/math/generic/atanpif16.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libc/src/math/generic/atanpif16.cpp b/libc/src/math/generic/atanpif16.cpp
index 6682b886fa7a7..c60c0c2d75317 100644
--- a/libc/src/math/generic/atanpif16.cpp
+++ b/libc/src/math/generic/atanpif16.cpp
@@ -124,7 +124,8 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
     // clear the underflow raised by casting
     fputil::clear_except_if_required(FE_UNDERFLOW);
     int rounding = fputil::quick_get_round();
-    // values checked through exhaustive testing which rounded up/down and caused spurious or missing underflow
+    // values checked through exhaustive testing which rounded up/down and
+    // caused spurious or missing underflow
     bool except_value = (rounding == FE_UPWARD && xbits.uintval() == 0x0a48) ||
                         (rounding == FE_DOWNWARD && xbits.uintval() == 0x8a48);
 

>From 8ee18a6bbef2be6b554eb9cb6c3e44b91e6db71f Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 15 Mar 2026 16:04:15 +0530
Subject: [PATCH 4/5] chore: removed clear_Except and reflecting requested
 changes

chore: removed clear_Except and reflecting requested changes

subnormal

nit
---
 libc/src/math/generic/atanpif16.cpp | 40 +++++++++++++++--------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/libc/src/math/generic/atanpif16.cpp b/libc/src/math/generic/atanpif16.cpp
index c60c0c2d75317..dfc58d3d8521c 100644
--- a/libc/src/math/generic/atanpif16.cpp
+++ b/libc/src/math/generic/atanpif16.cpp
@@ -89,14 +89,8 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
     return signed_result(0.5);
   }
 
-  if (LIBC_UNLIKELY(xbits.is_zero()))
-    return x;
-
   double x_abs = fputil::cast<double>(xbits.abs().get_val());
 
-  if (LIBC_UNLIKELY(x_abs == 1.0))
-    return signed_result(0.25);
-
   // evaluate atan(x)/pi using polynomial approximation, valid for |x| <= 0.5
   constexpr auto atanpi_eval = [](double x) -> double {
     // polynomial coefficients for atan(x)/pi taylor series
@@ -117,28 +111,36 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
                                 POLY_COEFFS[5], POLY_COEFFS[6], POLY_COEFFS[7]);
   };
 
-  // Case 1: |x| <= 0.5 - Direct polynomial evaluation
+ // Case 1: |x| <= 0.5 - Direct polynomial evaluation
   if (LIBC_LIKELY(x_abs <= 0.5)) {
+
+    if (LIBC_UNLIKELY(xbits.is_zero()))
+      return x;
+
+    if (LIBC_UNLIKELY(xbits.uintval() == 0x0a48 || xbits.uintval() == 0x8a48)) {
+      int rounding = fputil::quick_get_round();
+
+      if (rounding == FE_UPWARD && xbits.uintval() == 0x0a48)
+        return fputil::FPBits<float16>(uint16_t(0x0400)).get_val();
+
+      if (rounding == FE_DOWNWARD && xbits.uintval() == 0x8a48)
+        return fputil::FPBits<float16>(uint16_t(0x8400)).get_val();
+    }
+
     double result = atanpi_eval(x_abs);
     float16 s_result = signed_result(result);
-    // clear the underflow raised by casting
-    fputil::clear_except_if_required(FE_UNDERFLOW);
-    int rounding = fputil::quick_get_round();
-    // values checked through exhaustive testing which rounded up/down and
-    // caused spurious or missing underflow
-    bool except_value = (rounding == FE_UPWARD && xbits.uintval() == 0x0a48) ||
-                        (rounding == FE_DOWNWARD && xbits.uintval() == 0x8a48);
-
-    if (result != 0.0 && result < 0x1p-14 && !except_value)
+    if (FPBits(s_result).is_subnormal())
       fputil::raise_except_if_required(FE_UNDERFLOW);
-
     return s_result;
   }
 
-  // case 2: 0.5 < |x| <= 1 - use double-angle reduction
+  if (LIBC_UNLIKELY(x_abs == 1.0))
+    return signed_result(0.25);
+
+  // case 2: 0.5 < |x| < 1 - use double-angle reduction
   // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))
   // so atanpi(x) = 2 * atanpi(x') where x' = x / (1 + sqrt(1 + x^2))
-  if (x_abs <= 1.0) {
+  if (x_abs < 1.0) {
     double x_abs_sq = x_abs * x_abs;
     double sqrt_term = fputil::sqrt<double>(1.0 + x_abs_sq);
     double x_prime = x_abs / (1.0 + sqrt_term);

>From 3598ee762cd09a55d8a84410b275a1b9719a0749 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Sun, 15 Mar 2026 16:09:57 +0530
Subject: [PATCH 5/5] nit

---
 libc/src/math/generic/atanpif16.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libc/src/math/generic/atanpif16.cpp b/libc/src/math/generic/atanpif16.cpp
index dfc58d3d8521c..6d254df064004 100644
--- a/libc/src/math/generic/atanpif16.cpp
+++ b/libc/src/math/generic/atanpif16.cpp
@@ -111,7 +111,7 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
                                 POLY_COEFFS[5], POLY_COEFFS[6], POLY_COEFFS[7]);
   };
 
- // Case 1: |x| <= 0.5 - Direct polynomial evaluation
+  // Case 1: |x| <= 0.5 - Direct polynomial evaluation
   if (LIBC_LIKELY(x_abs <= 0.5)) {
 
     if (LIBC_UNLIKELY(xbits.is_zero()))



More information about the llvm-commits mailing list