From 148825785d9109fd2dac61139708c92fc47eb76a Mon Sep 17 00:00:00 2001
From: Chet Ramey
rl_event_hook
variable.
rl_read_key()
@@ -3899,7 +3913,7 @@ is called. This sets rl_pending_input.
rl_read_key()
.
rl_read_key()
, Readline will
@@ -3938,7 +3952,7 @@ Returns the old timeout value.
readline()
@@ -3948,7 +3962,7 @@ read eight-bit input.
rl_prep_terminal()
, leaving the terminal in
@@ -3957,7 +3971,7 @@ the state in which it was before the most recent call to
rl_tty_set_default_bindings
so
@@ -3975,7 +3989,18 @@ The bindings are performed in kmap.
malloc
.
rl_line_buffer
with text.
@@ -4042,7 +4067,7 @@ current line is cleared.
rl_line_buffer
has enough space to hold len
@@ -4050,7 +4075,7 @@ characters, possibly reallocating it if necessary.
bell-style
.
chardefs.h
.
Applications should refrain from using them.
rl_generic_bind()
instead.
inputrc
file and re-read.
inputrc
file and re-read.
blink-matching-paren
has been enabled.
/* Standard include files. stdio.h is required. */ #include <stdlib.h> +#include <string.h> #include <unistd.h> +#include <locale.h> /* Used for select(2) */ #include <sys/types.h> #include <sys/select.h> +#include <signal.h> + #include <stdio.h> /* Standard readline include files. */ @@ -4436,10 +4465,20 @@ It understands the EOF character or "exit" to exit the program. #include <readline/history.h> static void cb_linehandler (char *); +static void sighandler (int); int running; +int sigwinch_received; const char *prompt = "rltest$ "; +/* Handle SIGWINCH and window size changes when readline is not active and + reading a character. */ +static void +sighandler (int sig) +{ + sigwinch_received = 1; +} + /* Callback function called for each line when accept-line executed, EOF seen, or EOF character read. This sets a flag and returns; it could also call exit(3). */ @@ -4474,6 +4513,13 @@ main (int c, char **v) fd_set fds; int r; + /* Set the default locale values according to environment variables. */ + setlocale (LC_ALL, ""); + + /* Handle window size changes when readline is not active and reading + characters. */ + signal (SIGWINCH, sighandler); + /* Install the line handler. */ rl_callback_handler_install (prompt, cb_linehandler); @@ -4488,12 +4534,19 @@ main (int c, char **v) FD_SET (fileno (rl_instream), &fds); r = select (FD_SETSIZE, &fds, NULL, NULL, NULL); - if (r < 0) + if (r < 0 && errno != EINTR) { perror ("rltest: select"); rl_callback_handler_remove (); break; } + if (sigwinch_received) + { + rl_resize_terminal (); + sigwinch_received = 0; + } + if (r < 0) + continue; if (FD_ISSET (fileno (rl_instream), &fds)) rl_callback_read_char (); @@ -4570,6 +4623,23 @@ state if they wish to handle the signal before the line handler completes and restores the terminal state.
|
Dy!`YiJZQ$kBG(FH0iZ^IE6>uGUJqQGZt|iAPoi=!tgMt 6q1cv2V@e<)aDF{p^71pqX7=nA;7q0`Hge#C( zCWp O>r{s> zX~y+D)ZlRV9N9iKRg`QU7MM(;%NBpb*kl16&2EIIoK#x3O`Wv{y6+Z@>v}sr8{T0f z$2WoGywA}mfLOvFxTU0SMPKHe5ZYc~Xa3Z(N73Kjf&(l2;61H{3n-MgDf#oO{AP9> zi+ N25IKK523Uo>D>*%`3CXEXTk8WLx@f+MvsTLB# zh3nIEG >Q51t3Fpy zaJ0#sHl_EtgUVgAOOm9|hG46dl5@`tQtjO2K$^da;Rjv^nQf+rlzQvi;I0wciY(Qe zwksh*GJ@QjR1-N9lF&-Gz5$HDM6M!q&UBxV@9Z=*vTuB+pEK1nsmjO()V^>N3{Wq% zI2&ZFp3vg3lR5+h@QXSM^C+#gg)5C@9_N>qCyqfRGD%ZWZTT9cdKDI2;qXH70>h9B z8MmP$o#Y|`gAC)&M_OY;-TBisA&|~`Q^MuZFRSNE)Qu*lZ?!d^a;q5;H(@laLK18Z z>`ev=8s8Z+L%RR;O02(*#4K6B2|=B4g9T`8RPYu7!Oj7KZ%u@fH)9K(^$Q5NEj?W+ zxG?NfLUq01mgj9=u0cU4YGd%~=;6*vEtLrv3egkWKx6h}cJ{bE>AI= !zeZiH4R zeCJ0Pt*!u&9+C6CUz7i(`9~1&(-viE^z@)h9 SLPtdLAl0%)I?f=Mh@ zL*#@o#tSF@lV&GqqVfkBKD1nWkkDjUy5olhxejLI{3cYY3%wL%s9xJ~HorL3Yim_8 zkF1-0&+RZJG~oC{u%iaHJN=Ft80~*_7bwerN{m?tm>Td`do%u!1I0i8-`(bfP)TG_ z#iW1*leS%5A4n#|3oZUbX}3{4nkK;^F(p-)u8!WkpZW5Qr?bdkwQ(9`%xChH$}V z+C%+XceS$N8>QYD=?(sywuei>9qMyTkx{3W$MOhI!5_ORg<)mvbemVFEX8N1t#6Dj z!Oh9N4u3#JGs4pDt8rG=p1 `%glI;f}voMjEH| zgA9NDsUiCGNpuxkLW90WN#X+a V5Sz>T^{4f zVQ*s2#5(wQ0xU+nk!<1t&8=kKzOgw{McJlI008&|E}K-pt8N^PR)E3ueo!Z$bmufk zSe-UQUGPea?$)d7hWRoktm;D`xcE!;b1Fa`Y(45^<3uD)+^JSGgzDHR2O=m1&HALr zzgFck3Po3~epmk&Kju?cuubQKZ3e%-Oo*J3MFnd@+BhX~U~bw&KPH;LJ||V|*s-e) zh6JF(X+ZPggh7SBJ#J79EVuxqDYjoG?SgM?&o+MEWSz{XBF?f-wvk08CWhX=6DEyk zo~dnA (k)R zNo5ch)!z$%oNTs+d=qA(m2LlufNhKML8v$<+6YhEDWIH*?V30cmaZaDF7H^ zP=X!7r&`plfLyxaqChZb^hR0d2{+Re^C{D+0os885h4HLZ`}X v4iT2Uj0z5 zEeR|ut5`T5OXG(mN|EaXrCjl&;4_Ggf}23ZUMkpYCKn2gRP-BoMhLazLj;@nWBW+d zOBZj^DSb6je&MfUMYQy&IRvUFA_EqmxMfUmd{_KvVtO&@$$4_;RYv@S!XjEa!_sG- zYd^0BWG}P#)tM3LrF$foz*6V2Tj{mMI=om}(NPJ}imSeykt_;Za;{X1gBYChM0=M` zRn|kMnB^(#_M>{les@h#5f2;-sf$Ij$vqHPYh4ea^pB{{HsiN7Ew1=C@Bn2hbS(?+ zByl?{@#5&W`$mu>6l^ZgbherBT0GY|62w%TRE4ghr`wh!MWm?9$%Hf6g$m-{+VPO^ zWxrROwuJGMb{S=C%Gz?I8xE*d)@ZxJYi*2!trnq5sg%i ~ z;D5EYiN-N+1Ru%@S8u}!((6LVpNXS8`!V>ZJf_vxc&&K&cjUsDr2sT4;f*F;BS$>4 zP#$`X#h}3QkO?=8J^7SW3~)zU^oao&dss>5d+!8p7xz?Zn$^jg!F3KjT*N-9r053v zPkXAkm8FfT8Bl>VT%e%z25ZP#r2&Pb@X<-FD^+~K?96*w|20U2mzi**(TNLhXID1O+qzChigfJ)@YC200YAWAxob~L9 zc2066_6Iwc6U 1tkF9^$o=LHO_J2=F4=wYAQLEXfe240vuI#+s2Xn5Gs z(*5FnSDvjLL` NzX!|V$FIdJ)OoY}!ZL+_rv!XqIHhDGPqul_6%R%;j#$omL|62JKJMwSV+ z`?9b2^5P0zfn+vv>ypPKc4DDv5uprni1n;|0w?6&joFuO T@4mWw&LHgiu72wQeR!ovqC0al!~z&GAyN zJo;%bZ$C2XAkplAz%Tq)^P{@HO&;I&SZC^eGunNmK)^N~EOo=)Ya3zBVE{>du~aKn z$09w0)IV%o9p+TIT2|i>q*e?k{`4PAir~pHPw$kz7%}6tuf6O^_X5r+PQ4u>#pE~Y zbWW;P)gLw%@%xiW+^tlLbjFOF{pjZVsK|?IT((FnUcF(x0JPmv*S+A0LKlrZQaOxa z>jo#$89*u%SAuQMd$z^^jJf*8mM;V2?SeFqXI(adBiPdl%HV79b$pJV5wE$ol0f2Q z!eYQ7F-S7DI{-3BFE&jC+Xo5e1d-%z33#mR2!~f5Q|W5#NP!wre#tf8-XJU{M0&Ed zADP1*ZEnGR>V*04icNdtdNqX^*nnaRE}Y)I3LvS~V)m@uq^->CLcUcl^M`CPUp(yG zK_hC9iKUn_9AX?MaLM{PR1{akiKtR%C%1ew5W+D;cb3Cx!Db=J0A4ZGf6GmkRq!^^ zkgib%V5@bnJN=+a>v;DC6ytwF_KfFUqO5W J#EOpLNXjg-}wu zRZP#nf(NRpM?qDEEJ{_r-o*ZiPH7#}$cm4z%b<>YX`D%-Tc 56~Zr`xPNU%b|kS4~E&vXw=}F;)Vcj2m^o7#Wr)PN`Y2Bo#a=g@kox2}giRyO7gN ziL(`L83_%$YSIY4YFcq@=75|CR2g|HAjvujGaP#WISu !72S#KfQnW3Ucxlo!t=OoQ% zkDU@5v~?W9n2aXNM<|*I7Vb|ePy=`aTOIn3^Le0YP>s|ih&FZ-a0A5+-Jj+_z#zid zM$stny4atf_pLsv{Xjb;v>?J(m@(!*^h)3rhX^@I;9Egp!a*)**wJcm8{}a$;j}1^ z#PLg}RDnyT%Kd2eV_s-d3e3t_2WYX8G<_s3WaV{S(Tw*9aMEVdOvK=3XeWtiAoM_M zPNCAmh<-=Flvoi~E(;#;{z-gAfM{|_sBpgEUzGz$S1c~@(mP})EOHZe8iW-oVL>fA z<4BYoV%w6FJveG2c9B77l~FQCa#0u ?fKr!{8A-m{g z+B0<{AoP$e^prIeboob;7<6pd0JJb=lz5K0g+I(}gupr|5<1kD`gd2@fb6NYBXwux zx^eE$YsKHYQmKh|Kw|U`xwW=hZ{z7~Nc~UHO=peFw@KnrkCr;wTZ0xuvfqyIRCKB1 zl4mqLlHi9~&)9>+weJcQrt9v&H5RUsA63jHi#9{!S61jv!$ 5(wAq>|8fXHT8Th*bJH073B?yhl!uWJhG``+%=_U!uGjMLCafPMBl zNA}!4W%IUO %V<=EMxtr zjHcyPD6Fq#QM{9PYk8Iv|AQ-x5&6Mv{>I$f VXU#nycWPI0rBxKrV~Dq!B`OUxD~;C_H8arp+diUv%EjPACyX$ z_rA9O-Y#Ps&Ai(>pqfK27Bm?2>4qyetp|F^JF(U(k-Qsluu1pqy*%wya|eaWh3at0 z(SP#OQ*Ko4dCNU-pTe)It0gH7BA77;Jw-uSmkoxhr8F1>qbV6uK0RvmFt0gWCFj4a z$CF*_xyG8@c#x;R@Hpxe6cN@21Eeg1`MRQUC7y>V)M0niab{iHp=JQibT>K`r^l4} zw`WQI(>@IVfTge$=YBQk6?YT&C}HnZqd+JfOl8w3RA*jn)2fz=XcH1W0pDz8*get~ zy=J>aIWnWY>-ZBN!Bb|L1s_%fSpem3rpR%Sqrb2jc$WF~J=^OQ%^U;k)}upLn@44u z0%f{&jyNuDFB;{!O3d9QBpR|hP1;V4Qts>*J=qDcJudf>*r>HR({6B>`z*&C2ot=i z_QHsC2USi}UhKm|-3nODgnXA;ex%Nx8}H1O-sGlRCW`1ER6M$afL0-(2#}Sa4$EPJ zJibdoyf5Jip3@()NBX9 >A_41`FhC}?T{9h3l!g=!e?88e);pi0q zL=PZuOI2FUM5rh_AbKbcUTs8in=4F-*k2-PjgH+yZ6yrZ|8b8(EjZyu*U2Jp9(!R& z?c*=(wz_`pLdV8VADSTEB|Y|EB-?$23F+biE&+-a+{pvwHNZ8FvJaMl_XUo!ji6)1 z*BAQFkSO44{HLw_z0p}K=OTf?;aexC n$>$7I0dCML31KEUsA^5+B@c(UWu(SN%#>RNkQ44bStmc#bT0F5B676yF-#_>s zZ)DHYE?QS4RWSq% zNZL2PeT|1j+6W5w#zTLX9$;5F *8!;p{x zzdy`rD&m4o?zx=c@ITddc+CNH6NPpL1cz!?lcb+-`Q?C~&wJ|~gVOUjpM!~i=*za^ z?QC*_R #rfLXiQSC;0i2`TidHf=FVo&LV zrc=csyom3v&ts&RvFkc{PGwhiv+mX6BTX}9?(zn_Y)cnZw;tfM&_5cBKANWy0g84u znHY~RgfC>;7Ab2`(VxIqQ=KM?Me lbjeU?XEaU7)nOv za}J_9;q|9lT#sW=J4~;7eRuG&rCp~2i?nQO`KUiL3uE6LX--B0{50st%PwlhHdda* z6WUqpn|#HpLSJ}|hA635(kXO+R8DbuV2}k_(1$9=`e9N;3#U3|I$*%x_9B42j^l 9$PXRXU#)Y4GSA-nPz}P(E)-m-V;-Hu**_& zl!L~w)nbr`DhV%P>oA$yFyMnfcf8uM#2exg6IAq+MDn`EB7MekP@O3Ny9}+06=f1I zFtko6rX=l7qgmbMRH1ic&IE9m5D+9Ym&@?4^iWvOJ~j%lizC)BM@50Bcdv2f&ItM! zZRQi9l|S-jdJCPq2Zc5Iya<}C=MvfZ#GnTP5hzPZ873;G)UIU|G12vt5hzNR5#=ee z-LvNE^HsAIHU l(m??QhE$>39JLiGI1GInQEakuE!SAh*Fzm_=y zE9xoviLZ7nximOVoeL;*B lE`)9ZwbLxq)ym5+Tku!{lq?hM&p6yq?c=KuGWx9!u7P zjn K?<6we(8=t~od;t`LRzUlcIr9Y z77U+ctmL}Dr9uwpJiT~(f}Q7k;W6i9Ma+0`J7L>wzORn}M2hY~tikzvO8)sDyFt@q zjVq1X+rbV%vL(8ecUBN3p2sXHEpcyWtvJhppMg6u;YI3Nv3-rcCV|r&UEWV!`Ne@) z;=`WUZdPt&cOsKs_&A ^YQcD+vlzE>V^-83tLTUXj09g#iyqC$BR$~4^&N|M1V zK2IZ8i4G&;!|f0i79%xux8d)4-NuLFPi-$(qBgPmMUH!vC9$x8mYJl7* z`TVl$6AP2v>3+_m^wM$iIZ|+(RRon|&cW}eLpLhOW%9ekzSbb(#OC=M@<}(?L2NWX zan~OT0uIjsj7AX>j~!4tf9?P~tx6;ULlA!?d`fexXncfclUC*=ZbWE~jpoIB6oRZ9 zrU(HTLI32yt&iW3=eU)On@n-8^elo KLcty{Ls -!#&yMMb`8*5 zK6!Obu&`F_CbwBGeY?8~)DmGkl=u`8HiEeP>V(7yfF%7QAzP=S7!~5(-}MI>{?h|Q z#Vv8}sn_1y45<)fG|BE^Z&{_%J3$CmCQAHso4gCMrIqvMN-%uvTM1ZMkwlp&c0(O) zCN%*i|4y56A}g0HU@aa_o3X-35E2YV0Sf;O62lRv%yf!*cC2j>^w>Pidu2e`rOzZi zyqt7zBhXWfbR=1#Nqcw_2sMxnEeHoFG|G}8M5y}F#0;?C*Vo*bE~!n(Lx-o9DwJ vaC&8J6;+7DAc3)&jVdCA7iQX*#zC zf;Lj8+gIX84_ng)g2&g)hZMwoGtPum$?)*vSM!?l=w)`lesh7rY^N4}54{#VgPSvX z8a>?!Gm -w(NSO15i#DH@5WoQB*9(20*1RE`(``PYF$0$zZnumoTjB!n=kcu+q% zmPE`XE3B#diX(~X$Pqx_lY5&2F7{R=<#xC2@H}x!DJK!|)Bj-cHyALl6+Ak{j=lSM z(g#8+CWaN9pYQAK|3!Qj2KG!2^g&DRV?+aGVf~-40~&y~ f0EdSU*wv$hRz| zMIxu2qL0)R_P Ad_sZmH{GNwF+6l QI%o7uhei5!W| zThUTAq5!}~gbrmtqyAz>i`j9no~`yrvs Z&nyUGHIkrZ*&)kz3@@cWlLg3<>0VhOvDGw?Eeu zhkd4dpcYr^*jK~7dgN)R3c9XtPK0w)NHXGjT4@<|ot{RJPcP|@(%Xd(@fEu*wmFBm zu$B0o6fCy2YeGathD1!o^_qJm_+jm44FF`3IR!kGF{;s#k|%x6$y%y8wb1Dn-X+Ql z-O&Qq)d3^p3HKHJFoF24#>+y5tFLzcx?fved^{g|rBps7<}{Qm)yGL9qk9K15}2pa zV}oJb!+}iF0So6NSVg@{p-nE`567X)#$j`t{QYHf`?iv8aW5kId;Af*Lxc8gmI+WA zj3)v)TU{!j;6o`hk~Tuq@btI-Bt&ARIfF-1oc*Y02{2mUk7c|rX{BSb8ILduEnOs} z$>+0pka$HsTY?X }rZse<)J06RWcSDvYfU*YMTGFj?bC;pS(hBk<%9xfYy>oi{<7M6 zktqnd0G%vUK?MXHD-iHo5dxp)B0}W98Mz@8l8Xgv0oP@M$Wsoxxj3+;v;v56ext*} zwMfWQ`Kbbd;lg0YQVeBZuO?W-U@F$osg~<9`w<16gy!i)m6i>_((N)BdN|r%-^2Hb z$WKhlh}hy*RL#!K%_?6>X(5?ErHrB+!O~*IQ%Z(;>cXph3+r4)=hzZ%&bM*}wTR!q z$ooUtS4gQ&&``?);u*a?tsw!s&SZ`0=MNLf9c!<$g? V-R-;0>krI3BL6(3@JV_=_T98ZDys3upXr!c!P~{7qe>}*6jOxO4 zE9E0CK|EvW_}F6aJmjoFgErM)!7zLRKL#WaI8g2|Xn*t<*A_D8RR9jc;;@8qztKB= zhGQ#=VkB&*O WtfT-X4# z3mhx2V4jH`wiu%o%%YbHqKe|IxK6AlH=Y*D3fE*SIT|Xs-ILQ|Y#JO&Rw(e*wvDGY z8$aW}CgQ|A6ATp)q5vg+Cum>09@GyIm xV#;My8;n$;PwEJ}7hoKd9I$(^tb zBnA+KwJy*C@rZ5g1I-sz@mVBEw0^0I$dwP&B*F)gYU|mNp^nv&p&S_Q+ulb%;k9J{ zI3e@p2pt-di^Wn5-U(m^dk@GgjQU2avF|@GHUj-8YQOm!xBz`&bDpe^SMa)TFr4K( zCL3Qclh9jLPjaFMTF%}HEUdC4Q$;DgU;Po8+I7s#upUnE7{IU|#K%JnYuRlC0g3t? z(}V7?b3iERCw@nQNRDQyB!3HK}9s>#UKKI|Qs+}qQJCB$*Vd4W&?=iwuA-T9`ks)z&s zUu?ZYlrBKFG+MT8+qP|;s#CUY<15>?PuaF@+qTWuxBvBKJ&!?7atCt7PSVm^ApSNc zp*|v)h3x!C4x$pP1yOS> K% zGH|{g>3tNhyt b@UAwZAW7%%KIQO0;1ww9>@g{WL@4;ak%mRp z8COiJ6J5pmfGCPs-l#s#zl)3I(D?o|vRKfz9JqX 3tXk;P|sz|gEnOIW22s-1sgD@25gpJDorZWl1i2I}{N9T7c8 z4V~q0e(@Su&VC+sz(J?VjjY9)srC@-up%)7CpM0X)7Lxg2D)PF_L$2Q^9W06)VXD% zt7JY{Dp%{dOU~O_&^;<$bPx0H2*(s40ZVq&dE_b92!C1eUe!K;DI-9eKv?Hw#94yE z+k!f%pi?f!p6<_0j4!!+26y{ZmvXtQ>-2K!Y0G(FapRuD4P;66e|W}+{IIZuFV6~6 z&T`(KXEt#6 64H82~C{ 5I+4QNGR0r&R#7;(>b1T6{rv=dZ&7mv}#iTj5MIL?J)^hcpMVzyE zdjI2+G4kzRs9s*co62C2TJIGF8dWZdL=T;2%Ek?~S9ld3u*zi_5i)% etd$j zfUN?Wv*c5AW||GTDA*(qvr7rTU2y}HRt*Y 1wjL4 s 5(ui0K1atg80&omh{FVU8pZ;j_E@=Ni1 zalO37hk$}PTQq3Utvnhlll~?Ciclk{QN@GwOssDCq$F1E%tA-p`F)OH@)2PAV4X?J zq6B!7AIk&_6Py?|x93J}Bv ;Muv}VS4!K^29-H&X7CJ3nKMScd-b$?4;ut2a z$}+Q>35Q8gbD>s$*S@aDkIne>CFV)d#b-V XMyzpi_pUTw?2 z{mzsy=k~V5B0hbPAw?cqrfV+x1F4>;C~&m3G@rvdG$b?JwInAN|7q^rx@w{Wf@&1y z+CVy474=(l%m(UMgF4P2S&j7j%en=Od0bNBHUht^vJ8%2#N9>WWcDmx!vaR#dAIM* zS`PI2xdrcEto1$Uqf^wa^dz0{TGtSk>9vf{&?JqRKw3H4xYk=u)XG8A>~K{DB7)sJ zQ_IztBw2?W@6-VT{$x)YC?N)bFG^>I8uYKhVpPSNiV`r~T*Fjxy `~-x{!LINgO`gvyDu3gq$CKv~lz8JV!lr?W3 j#PWBoT=qYtHbpK(fPT69O38%rg&){3Fc&CAkr_cMzV=OHiC>i2!;s1?Bak4 zpp+08u^NfK>dYTpAoZ_XqMA(N8X39+nxHnJ3?y}Vp>Yd;G!PwtD@5A_2*XuvG~ZqR zO=yK}`WMiV-)K1P58K#3mT$qMpN#lVe$tw^9%4+G&tBkmU+{KV2W`0T!?_oBl03HO zD9{J-#7=nWL?YQ>HF%xRXH}n2BWhKuoQpLx@Fbb-CQ g%hGP;C?Y_G z$6OtY>~McP_SOkN!a#`Hp1j!B&y0s~4$T|YRKhXZM)x^;Ov-HER z)3x_FSFn$(5wT+f=QI)P(?{FVz(F@nN4mm%8k+ACQU4r5R 2rW5uy#DmIro@>KYvbTfn0kuad8n=${rN<_)HgH;BW0f zZC%DMOK%5+R~p)3A86hHw??d95g@YGcASW}+%(M?-DVVJVCCI~1WfC0W+XH0>z!AC zx|2&0v6uUgW%SwlyWH4ptz}MHT<8&nrFiE54&=jC$QKBa;=EAIN+_l`O#d5{e(L+@ z9OF&3t e_}Fw_#n?XDlSNR@?O-_#DkFXez>VyftOm8_Uf8-W>E9+%T- zuPkd6K1l^I+dN*^89z|m6E{^vFNM9gRBw(XhD#grD}2X`0#fOWD;wGRljoaE5Qamc z7H}WB8eu)W5BDMkC^V$$e_tS98u9F30}jJQZQWwS gGjaY@Gds&1oV;57DB*Q%rb#pRDidsBzLb}8($Pko=A0uveW4k zF*N%oYCKBrzat(iH1RXn4k}yz1MLwZtJzL@CNDkwl_!4Ku%yosX>XfoA8)sQ!Nsg6 zJumdANnYk!CS8WlV9j2xf44TPz)u%!zAzWpdN$uM&f}+1e~FR<(2O^m7+Z8NZ4dyD zL~4x^DqswjZ@vhb5bak8(W%LW2=mftLf-bKg6`vL!VuHF`)vXoE=li*(5lMuL&naF z?O=hMhipCO&oEZ7Pcy01uk7FbLFa37_s)#?$Vj6Q8o{1-uruJq=EG1)J55Qh)zhDi z{0Ln!GDuKq)9_E>yd9s;x63@Ta{>UP`8?Pw+g#pGH(+`1OnTVkLfg9Ohqzf_L(+5n ztP2c1Iq_@E?P _ug(@{;Zpu8_AI}*1c30= zKG)Zt6YU$x*v)DSlrd-=6Udoiy#2f5v^-Be7J$!q-m>XS4)ONnT-RlvkPzU3IL?$g zngTXEnU!KGSq=BFKV(+UOF#oxctkh71>Clp66S~$+q}oY7?d`rQ6=~(sN3UsLeE8< z4Ess+JY8*hB?_`G32IHK&|{;I1DOzwLA^JVRGV>XF0+35wl#wVLRLf_X}33Uf#ytG zfPx`$fM+|jd$WcGVupoawgw 53|T2N4GA0QayN3iSD2k0*HZAq`ZD0eU6HH7JJ#Z3EM-iAv&@63FS% zDSKqZWM;2FZ1&HCwzw?x(y#hP^8&gch<&W3!Dl4mIIss~(zm!an*tuzQFF!ir>6%& zIz{nZyf$~(mV23qxOz9$n%#&N3J%r#F#<;!<%N<0dVneKyKX@mJjd@Qp4?pZ)IjXw zeP}8ntr#Og$`=}G^k60enQ*xo1a-KE!##ru(2C5A^tw7-0)fG7K6YMRLw348&Vf5g zo=roDU=M}LO;LKfzW~qEm#qrZWOb(VnBpbEJnWRWjGPM7dn0j&_9&0{-`b^>s`(_( z@QF;i0zF^HMSp6^ypuhP4h6dgOCMpAJ@=n5T?}N*;?!>kJ0<^N2u{!=<*_G3{n&`Y z^!O0*n?(nF>wf`&YNiQw{zuD-lO;*H3KfKt`~N*JrfA4IZ*n00M~qqcFtei;g1x;k z6O^7`F0?I*E@TLikkuDRp%)wRhJC%<81<*YNxpdSf%FXv2wcJLMFIW1ksxANVm0th zU|fES8~lBC6Alst^z5b1K#BlF-d}DGO5Gj1_JAjYvKenU{`_?xJ}7c;ObSyt|3?^F zFj|`i@IxEkk#F3c?8qP9oz$8?YoY3F*kSNReu(zYX8djcd_H)wizkG=7ZFc*C@&dT z{X_7NPLoV?$O9{(A&m;@?15T$N+khAUG(0RnnjVn XC{}*Of&s?$O(KV-V^@j-HIcztYJj| z#+7${US`wM0l!kZ;3AX{+PtAeU+vR`1JRkQbZBE*T2 ; zFwVa)SLV_4T_WC6( ;Q+flos2>M)is)>R?j7*3#;vXAb}k zLdHwS(*_YE%eA5ZAu&`QGxsxBU>imS=sFFgcxRPVOwI3VpY2TsZ4uIhz%}-1<9A{g zX2+6*6lr{H(FUYcoeko=UlpfXPe{}SGpsH6m0$ba;bPusRcG1i`uzcS9_}8~fWSo= zq5nRn9HZv^xko|KqcghINYf`)Fgcd(=D$(nPh;795)$m#txTy+q5EoJ;062v{GIrh zzg{We^wYiT_C8aBkogmO8VY(NC;MX|5|28mZ(xpd6ikmG$5bN9RFbPpI1~J(IQ4}X z$3u94P2|W!RE#cQ65i1K(9+PvqcJX7g)LEPR-(;uB)xk6=8qE9mQH#ikoafXBfehg zDbp9`U~iXHEQIhMcSj>(0A{Kiz%Q;3E{dHV2i_6*PtZ-P)|fvbq 9da~()b2K?JN^_o60Ev)2lKVAGp#cKAsd}lbfuKc2n1{ub%qD(hKx}ND)D 9Zy^|LhD-TPE^A)R(BND=odJ-$NtvLA9HH6P33@kgSC5w zK 08|!SaPaNv|R9h+D3 WF4$%NW35-@v&a`qgPkme zG2MESuV!ZemGC~0xJ}BwL$m 6+qSq^TAt-@tyKU7up_-=4iX^oFnuk+>gu$GoqnAQs9=g ze5Vd*XbH|?j|8gbuE1XUj?R@^vQ(OII=nprS3f5Jk+#cG=V`LTA8SN~aR93s+0ZEO zcuK|)r+;I~QNrh^BIYd6Vw{X@xRFh61LLOd+nlMWU_XC_h??Nm#VoXzNFuzCVBo&V zz#q+lASg6pRdCX<4 7w0NZg}90>ncG9CjjgB;^ZHPLoM z^tFuNdUjx3z0vj-YHl$b#RSNGC2W7+#-UMfvR;leL=x4BSyDxk0KPOFQTqiQlO#E{ z%9-LCvkE;?xvc;I(IEZbdx^Uqew(dYw;!L+lfhH6c4Xyr$@aE({wmGwRL)*V!nhN* z4Zl`^x(xWi=(a#?(w^}uTM2!{+igWN+lT63 ;(7nKM(Fp--d@6TG!JiF6JRBC-{ zsv93+7352%Zs|rYG#Uy+!io+EXf+I Y`-#Vn(z z;tFzz!}*2$^=om1$R6VkU%cHxCV2yEWyODhPNtf#h*ogo#pZaH*+DL42WrYa?Hy;g z1hOTTM_xZ7Glfp7Sqk;JsOY7KBwD%WF4C=QR~+y>cTGGO{+r(QN-Q=?p;eI(l7g6* zdA8Dx0dUhADM*&2{({O&1lMPwS=i#v3VP2%jaw 7qH?N&T;{i8t Z`J6*6?tF^Fpsp?O8shT>(dj*;y@Vr z;(C|+0E M^N0T=VW6(tq&ieRS(b*@}${4hbrs)RKOi@*ixrnUS9+`x!r z^D9B@hfCT5J-l35v1{qz5!Y+fDG-GBML~b;6}!F5^XmrZo|`@#s(_$e9E!^U_bmc* zwPX2t7EX{IWRs_Aq5W)cEwYJyPbuw{?@Rr$hYiTL;Y+;k0`}bV#ey!r# ;_{c!^vK*hs R1{$4;mIT*mN3T(#;WNT zd2t9@766+#WO|X-E^15BHgQB1KE#QO2xc{m{jS~b*PjQ0wRtU%Beq#UwvnN9r-fM7 z90uMnt9a2`9pPJmt*oDQgEYXKNP}?6eDQ(y><3V4xH+Ge9a==`%*KCvd%X%>RcXTU zm1K3+7vU+(-ZL_jSR?zlOH=PrB{HtW6iaN*F`=?tqL0J{UCoOgLf{_<1o&d zMz*@=lmG(yj}<`8AR_>*A`kQD <_!$Q}9N9wVexiNR&wY4@mU+lax;i!mzp`+>h?|MPT+5 PuZ3L8!kb33CG3Nu81#2zHwF%IXvgMwm ze66M|7vYkSoVFXU #rcUk|0or9ayQJ`^(cU8IuHmV z+G;Zb$5k{mN^T!!{5zkdKW8<_nXwD5x0#F~Dwmq2H`R}RKExPQ4OV7>?JGc4J@wZF z-C9v(t3Y_tRe=Ra;=j#kf z&ob~)fxY^5^@$v^;T^NU%@a$f=OOn=^gPHGD@xikaYM -Bl*vZxI z5|2=4H0A;f9MbEU29>RGO4{pMcACf-xQc?^y8WEW Krz**^TP3IhaXdLUNgn(>JEW8AO0B zu5wyP3vgLgSPk1N+-~b#;gT)t{ic~Oz)g0Hy@de+gX87fn9~$HqsmzH1t0vx=K(Op zVgH#v98lOybPgWiu+H6qA_~hyaXCqA*5Pd&G2j@FQI(@c3Y&UHFgx)!=rAlLE+D 6usu1B>I}{f=~<<2aLw_{)e2735&mviLBb+-=n~Hk|=Y zmaxX5Wn>px6c<}LJktdWbWMYXSUPIT)jPm5ap1TEh!8m=x4VCUAwrrkN(80XO8f@f zWsjB%Ht}h;qGc6%8-?PssXDw9T^`rMP;!leEV?wwD(2w`jLwX;v!jL
&kWBRSoCCAl#nq#54S* zA=OP_{#eFLqQ`^RMZt=Pm5>11)C?Yt%^EeD@4+$HZ^moQ)`-9xi;S3cxnMQ4FljRV znm>(Fj7%3pTM~XL(%ISO{kJy!T^fLr$2|DZXWjZ?C1!Ak+MJ>@aa1E(N+}j9z@hq< zoK9`uX{tEfM)NS6mi_jRLtdj(QH*g(`Gujjpo(y`)RAdxH0VsF9Qn$J%7TU{&BV0p zj$!yk)~1w5a0UH89lJ>(Z@J0GAHRnj?Ov4y6-38yY|Nh=j;(-~$@IIwU^;+Wko`G# z_!uZJhod9S{ca2dI%s{Patq*U99#ptz+ h#L{yBnweu^|I{kdE8^3W9ZRo>O;39-X{Th`bN>*9qQFgXeF1 z#Wn55%dbndL55^9)Nw*1=of$`er^bzt*I@+04gC&W>)V7-?yADx`?}-?9UKZEeYYF za$-j=kvQp+$N=7w!vH?g>uV_ ^-te*|WH%%S$Pk%l3YR zpDlst@9X$4sIQ1?@c+_)-2eYZzqE=QU>HzlHm3hB^8>J|G69K*g3E$}I~yDG%c8=D z9O*EC)>$ZbfCM8S&6q-|mBOl)MHMel2g~kGFRAv=3C%9_EhrI_!LOIaqlH+&pGFS_ zCN7c4>lzyy!;8|&>!PCmfj|A)+8XLY3(r?H)1wJK&P>!y%t)w>Gh{Ff22)sKUlQ z7(T`UX(ifS8iVQ;1=if7-}@iO=3-5Aqy<4uI?f#eE^VyHlLx^fife58U&tipVALd% z!bw2V@NTD|U9Ot|ph4${XpZ7RyVzZ~7^`;h`O2;v#<7dVU>989^^?@ @H+Ro@cfo+TM2a2!?v29A0skf`dAR!ua~6b{r1!V6N=cO^6vVmSsfvA{;X zXh%|Bm>tvKzWmVS7$=5d42%J7Q3 6DJ+sw-RKM_078R^Ly~Rclxl`3<)3? z>>J-g%gN};6d;^c@vxQicA>LQu)rQ-nb%fFA54MK0>Pp%_i4Rq>}IFsbnceA>TRCL zk$~s?V(=3{2$}y|{%>=#i~ow>kP&GE&A2aTY?|~=q}Be%KI)|(F|lRgTKa=zas=x7 zQvKR@dM-IV!7-k?yaX*jH8gk?M*{%kL?vf!p92AiGnTE8ZM;r5cr90}skPRE-Jgx* zrKwSIg<}mkZiWPT(X%n$BWhz9p_u$I%EDRX4E5LXUt9%cbR7oR17ol?57tmD+ss;X zKx=cYfv^ZGjL`&ShER(6JcRv7fsyaLXU9NoRH5rtLe@+XdVj1B_KGvMo&Y>=Mno8o zz6@PDd$sqi*BKEdY04=ZdXvYul!JOYj-)KsRS3r!gmp14^oSTHU3IX{1=q(_ptUr` zVHeP>k%DMXc047xi!f>=popsDO7@ihF2mppA@>HXCL}Z*QBs0PlFx$!DGoYw=9g2~ ze8Bh$pB=bu>wm}?=VV>6ECQ-45zQ5LdHNVrOd@M^t7W q7 zk*|VtFVvuzi=pEkg;af~{}6_4lCb@c%ftQOKsAZ6WD=OA@w0><9GfYxRquZR+5ZF7 zLrAdH4wuJHPG aHRNJUG-7mG8{7-CxFG4xGK`pYdiAs$=ec#gnntLp_Ky zm{rDDTQ%o?@9SPi8q+>+#TAaB?#_I3DRfnSI8ZHRhV-h+I9)DwSkX4;d>WFa4xp}o z)h^Fs=KcNtkjBbAr?L`wVdKAN(;W#2H+oSW@6`sVv)fh^uH^}0jvq__)bEhb#x2XF zF^XCB#R8<(23+|O({}KG3d4 P$Y*wy z^^_LnBF6OXQnF|IxVR%1IQ7hg3B<2XVz&Ou1PJ%;@FBcy{N6 7WSx0;QV(c5 g(y^1q4PwHg~rZMW@6E%T*ha<^O1uDD!Le+kmFe( vimoC-y_0=B}7zOB0Xk^oS)3MZ=0;49mq%b?~P0!=LcTx0r zcQlQ_VQd8ik3k~=BpiEa5RwCGfrOSPT1)z(f43;wU*c}fla8Q+l32OM93jHRbO$Ao ztnNqUPyAuw*z8F1dw~(H`7<}0IyhHdMoBHMXxq*D;b+(h3T|sgDOPn!*%K%r7ScQT zwJ^>NSN-cn4Q&Vd3M?`>LKBX@2fq;}D!sXekLX+!5zNT}`ZBGjFTc;4X)zk_^a zks+Q(R{#`TuYIZhL}{=6wkTE_yLjyxu_)f=0Bt!s)w-d91WtK6)_IiiJ1e4vb@dhG zh{U5{G3hI!Y_d?^2xnb(=PM>;{|yewwGnI7nS&4*-DHO(OAk0kK8HuEh`%n-piQ5{ z6hI_@ouvx_m+9rmWLU~L;3qXHqa`*S6Ovl(HR(G3o-q0&U&`=NlHiyA4>iozZTW{H z*O;(r5vyB$!tB!Av1Fuw`^*i%UDDD0NQ}IB0_XgugU?0aKt+*ENbUu2Dy<=8lq?xK z`1v_iy4C{EM{(O+cCBA5ZY=0yOK;FJeTaSc^Si$JtbP>mJ0{0P-LZK__ZJA7i11P1 zRg9P~GYy0B0!fndWvTjKlZTsV^f$GS`umJJ*M7r??GuL%1kD`XlalHv0fX Cfkn`j5r4Iag6bVSy-ipb=hs^ixOKzUVUOd$doG3NtPY?tcxu|2El@ z4(k~KTW#?Fmzr^-m0^afO*YWC+e>??AI;?pb@cH+MXs KV@E351tmIaW!{f`f5`nIh~21Fj|+aJ oh}>{1n;IKl|}58E^0G zj+7@#NGxpqoZg(O3+_x`o?3q7M3S6xvZZ8T49gp`5UWW{#8NH|m7OhYGP-iYbIBBa zS24(aXC6U6{+mCvtthGyWHR1HndR$EE?RMNtCPoH_x_zW=Fe?&&%!~A> u(W%tX z86^u1k~e8g^3hhJlTa6*3dJb@RMq3+f8NOPn?qg+kqYNVBNU6eZ!t}U4)BjIB$IGP zwlY{Uw-8(js7pW1y2WuYsBmz&0RDa=*dofMrRs0vyCe;Hq