From 673b72d9ba1d50418b91fc8192eee863a9b75088 Mon Sep 17 00:00:00 2001 From: Mollusk Date: Mon, 1 Jun 2026 00:47:38 -0400 Subject: [PATCH] feat: notification chimes for room join / peer join / peer leave (phase 1) Adds audible notifications for the basic membership events: a bright ascending triad when you join a room, a soft two-note rise when another participant joins, and a two-note fall when one leaves. Hooked into the app's UiEvent handling (RoomJoined / PeerJoined / PeerLeft) so each is played locally by whoever observes the event. The chimes are short mono 16-bit WAVs generated by a committed stdlib-only Python script (assets/sounds/generate_chimes.py) and embedded in the binary with include_bytes!, so a deployed single binary is self-contained. The new notify module materializes each to a temp file once, then plays it fire-and-forget via pw-play (PipeWire-native; falls back to paplay/aplay) on a detached thread that waits on the child -- never blocks the UI, never leaves a zombie, and silently no-ops if no player is available. Phase 1 of a larger plan; always-on for now. Later phases: reconnect-attempt / reconnected sounds, a settings enable/disable toggle, per-event custom sounds, and extra events (self-leave, mute/unmute, connection-lost). Co-Authored-By: Claude Opus 4.8 --- assets/sounds/generate_chimes.py | 79 +++++++++++++++++++++++++++ assets/sounds/peer-join.wav | Bin 0 -> 39404 bytes assets/sounds/peer-leave.wav | Bin 0 -> 39404 bytes assets/sounds/self-join.wav | Bin 0 -> 49964 bytes src/app/mod.rs | 4 ++ src/lib.rs | 1 + src/notify.rs | 91 +++++++++++++++++++++++++++++++ 7 files changed, 175 insertions(+) create mode 100644 assets/sounds/generate_chimes.py create mode 100644 assets/sounds/peer-join.wav create mode 100644 assets/sounds/peer-leave.wav create mode 100644 assets/sounds/self-join.wav create mode 100644 src/notify.rs diff --git a/assets/sounds/generate_chimes.py b/assets/sounds/generate_chimes.py new file mode 100644 index 0000000..ee38c70 --- /dev/null +++ b/assets/sounds/generate_chimes.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +"""Generate PeerSpeak's default notification chimes as small mono 16-bit WAVs. + +Stdlib only (wave/struct/math) so there's no build-time dependency. Re-run to +regenerate the committed assets: + + python3 assets/sounds/generate_chimes.py + +Each chime is a short sequence of sine notes with a soft attack (no click) and +an exponential decay (a gentle bell-like tail), plus a quiet second harmonic so +it reads as a "chime" rather than a flat beep. Distinct melodic shapes make the +events recognizable without looking: ascending = arrival, descending = leaving. +""" +import math +import os +import struct +import wave + +RATE = 48000 # match PeerSpeak's audio graph +AMPLITUDE = 0.38 # clearly audible, not harsh (fraction of full scale) +ATTACK_S = 0.006 # short fade-in to kill the start click +DECAY = 7.0 # exponential decay rate (higher = shorter tail) + +# Note frequencies (Hz) +G4, C5, E5, G5 = 392.00, 523.25, 659.25, 783.99 + + +def note(freq, dur): + """One enveloped note: fundamental + soft 2nd harmonic, attack + decay.""" + n = int(RATE * dur) + out = [] + for i in range(n): + t = i / RATE + env = math.exp(-DECAY * t) + if t < ATTACK_S: + env *= t / ATTACK_S + sample = math.sin(2 * math.pi * freq * t) + 0.3 * math.sin(2 * math.pi * 2 * freq * t) + out.append(AMPLITUDE * env * sample / 1.3) + return out + + +def chime(notes): + """Concatenate (freq, dur) notes into one sample buffer.""" + buf = [] + for freq, dur in notes: + buf.extend(note(freq, dur)) + return buf + + +def write_wav(path, samples): + with wave.open(path, "w") as w: + w.setnchannels(1) + w.setsampwidth(2) + w.setframerate(RATE) + frames = b"".join( + struct.pack("DU^rZQHhO+qTVF+qU`E);PB9q~BMmt(vLYANl6$+;h+A)44+j z^I-@Y*m^+w3Df7P*boH4;Irxp_+cRoArKoHH+tUam*D?E;5RBHf~rDopb^kY=q&UF zibMJE0C*Gp1opu>$N*#$@(8gZTwF8UXxv)dDclp>51bz7#)WVZ@Xw7i;C|ws@Kzu8;Ip% z-t67%f^6NaJ98q_BNI&@PB%<{ON~l-lJk@C#DYX1J~^(7^^3iaHjCbhREeAq7lf~e znuUG`=LOZllE8_;yuhG9w?N;()WCtjpFn8jZo*gXhAdgD&veS{{YmE>oXAXQ3l%;?1I$g0mq(Gqk!rz-a@H=nnL_nsHwG5BnL zn)ioyh}VVZp?DJ?^mC+(`@4vs15<m$`|#_~ zo#4^H3ja`FT`$F>b=`CBbj-33vURm~vkWyaH{CJ9#)$@pezU%lzLLJGzOVkIo@=;f zm}wkjnq)pn-uVeS4$07^E?Lvg$BmWp5>^3MjFyai?b(6I9 zD@5hIvTCJcN*)*2FaB3_qG(Ui&7xG%ykcodpd?aSseDrfU-wmi-T1(4vDSB-bJglF`T4E#dgQjrQE05Hqsq1lt!%b5E8ZkRg-7_6dCxh6QH*t+Ihj$L zPM}#Sf5|^dB}5N_PN} z72Ff(;P-iVdMde}I6FIvY~!pE^Hx(8<6r#_-5_m)imK&J$|jWFE>V`;DxO^2rMO@5 zmST7DvXaK7xn<4E*H%Qed-X$%oy^0md+ko=2#?3NJJ>nGjvJDXGy9=gxb{R25>_;&We^oKI>@97tG&zlC!lRgqcn zBM1le#14W;D>8%9TT}Ove-e&(Fy@VFBd@}TLSusJz+c}=uiEp>)z4|SFSVi8E9P#d znBj(gfv%UfRYj-rDP>nm>7_eM8kP`Cvc;;BX(g7Dt)(N%MwD-}W52XVne$fV@OmLUiiyK6bu)DLU z%%AjgwDr_El&R!7q;xksPtHlKk8h1_ zh|Z1l4_66=0=NAWd>rq6cYjyFvDKb$duy3w=9#`2_UI?+`fB@C%qTxsmMooBN-6zN za;@ZPNw{QSskQWU+2-%*!+X;u+)!zHU-y`IU9E%T339`k|VO&2V zk#d#RiusaViMxP*PIy;*QaV9SP%c%yQ`h(658UI z;hrM|q&IvL3Sw=sJy~rgH#0tcJoP;pNuUXJJU^z0QX`Jgv*3n6dwciZ(J}K-Vtk?QQLGyY@MoIE=RK))tnS>8WvtVYYsvZl3mVMM-(X z^7~~2%A{q4GGSStvioK2$}{DL3ZJ$>zsZ1_UYhq=x7bfQ|F|{2jR82kEt;Enmztgx zz|U}_hzas~8pNE)e#r6ih(b*CPqInIS1eZEQ@vN;&`it0awg@T&wZAAHFtilB==Yj zrfH{{u3oNM2y(lgJSBZ7nI;yC-Uz1g1-v($`Dk^vm-&FPjXsq&fZCnXi#(FFgm{AR z9Z$x0!R+q1e%walFK?UX&qPc};QiVuqoi}s2%4hupKkl%BBRlQpG zc2^Up&3?ev#Y(VzG9584HO$b@)9ulItdLjiEZ3A5m)!=RlCsL>r_0+{aI|DyW&Lb} z(YV-L&&su<&KmBC-iLlg=s-jszme>ev0$qa3E?WKF7+~<%^Hm!;@;!m5$+aulNx1x z6i1YgRkzeDG^(7!9A^%i%gJ@;oXKgBb6JC_8>$DYMuHwzUrv^NmuwTa5rqV&`F(ge z?n87gy8#Pk{-fWcounS193r15y(C%)JVJN;4qOqEk1TkOVfi> zJCctRrEz~O8I4C=;a{N}!PSATeunRZXQjK2%i=g}?`30Jf1A&m)*5FU=IXcT9&7R1 zDHVb8L*--2dzVivKT}Sw*k932TTNGAKf& z^K4I8hnqxnkcZJ;GFa?RoJqW?f}SE&a!XoOzDjXbc}ulT-9qz0Q#ogJ&fJ`lIr%xC zH9a+V)oE1~RcmD%MQu4tW{_MEPY@}EfB9Q@t+)yF0ecy%GgHCH(i~JRMNjsSh@{HI zL4;lSpEwC_3i1LL!SkSBSPg7*R-dVxS(W}Tg{0~yM<$lXcgGG#_eVB{r-wQRWdWP- zig&Un$6fB+@91quZN-*L<_)Gf##x5d`b#>ewxjk{#n1|2MYKFwo?9`$!dtOZJ6P9M zKi+WO$TSyPy4WNRs!Ql;;aeW~9;zEX8&{=HX9}RJNDaaTl7PB^{+5|#E4lf6mas&$ zN2Ra_}oR#g>Y2_T1M14dZRu^dMY2+G{ zdZU`Io~L@L3@O+O5r}hC@>6_TG*wtr;OE`q&gC>h5%w?UWl+%zXw#_ED2vEDNjHfV zAiMkFkK#N?TjT_sg+@Vdv3zVp)|6?Q*`6*=Nx{ropST?VFZL%|68QxX=!M|Az+iuY z&+obKUgB!uBszZD&RJJmrkF>AS8p&p)FYsuIka1}-Ly5e4Ygyn_p~*1-*o%*YYYdB zKTI_&H?95bB4@%C_0au|gNwo+Kp)$hie<(_e~=c0lcYGMHGMJjDEk8EFmHw+PxM$^ zUAkO$0la#XvZd;~s*!q$`jC3JdZJpUzNM<9TC04k@XGOWqAVfNi64o!3I_-jd^7h7 zXCB&`&0~2PKj=?sw*UfvO8!L(5f#LKgnjsOTs7QUfX7Y$TNjxCHXiOda;4s{IX22#Gy-b0=-?rN@>JHt<6xiCVCDS%@B<)JoOU+AOPW+3D8G{*>yN<-cNwP6QW^~qtb`6 z8}ikP>dL!HzN(LEs%o^VzRICosf;TID2~cM%WTqs#4RorJrf=l%;dM>ak&=s5qmdl zCbJ)-HN7FNA+X$dZ=$}2pZlSUz#e+a_cG^;yCLZ>u&C?>2Db98(tZG7*8cTWcFc3xH^6= z@djB(#prYv0kv?h^7;!5!fxUNl4sJFvJ>(_3Xfuh@{;nGvPk(vxk8zvysQu^rphnK zzDq3;>D6t1&Ki-UMiaUg) z;j!>Hs3~+A6Jo2gj!f6g#dJ2+Ewv~4EdeJg$2-P`M#o3Shlho_2I~g+{*d>Z=c0S9 zYm~E%qncf5lUu7;I+_=no*0G3Z3emFlm38yt$w%um7Z_dZm4W@7{8hRnPF=W+f#dI zXBf<@L%tn>L!mp7iWn!^Grc?e7ZTwH5Vn&ZQvT6QjB?fsbThXR|C6A(XqWhv6W)9-q3I3?`~3hQwFK3Zqvdcfxls$v?~2-`m)ua1&i2hs|!b zd8~MARm(W@Efe3g$5`1|4p@WZhU*5sp}z5|v4aU`Hkqv!s;#H}j-$Tow|kp+n7>W1 zS-5?4czk8@Qo1NhgzMu*5LS^6QcltiGgh#Apakw|UXEac@RP_R_DQ};x5#qjg>tW4 zsi>t;DFX7d@}}~KGP!K3^ql0Y*dp=?y#f>e7w;+e3}-Vsi#?dtk=cY%kKTaRirSYl zi+qsufruk^1ijmV>wvqA@Q^id7@7p>u)f%PfW6OVXqjp0_bG8|O!5rCWTbeNSi5Nd z$nfy+(12j4KtsRANApJ9de?X7e~#DoPd1$uu{N-*FqfKon97W6jh&2DjMa=ijeCr7 z<0?}Xa}2yWYAvuYbXc6T+uVllrhqj!$i*k+pn}j1ZC$1uV#cS{@aYm#Y@&v8{CYBWJ8#HWX z)}I-cd6UjfFHe01=(}HHbNpVcDC& zSvy-!m}%ynrfMdO@rm(<@wG8(>}q;t8f@lTd=|HrVsGy_=@hyzd;0rC0bj5<{4-h< zwbanC=ynFnEg0;hvC>rM_mFb$<)=*z$G=4I15_u@KC7r|k$y$t3xvO|(e37uB zsDYR-`7N0xbxAwOR>_XY4#?)o>dQ){6QyO6CX)5yXCkW*5uySSU&v!~iJTPM&$2O% z3Y}yH?Ak{5mFgB4h!Jj5ChtR5kaKGnemyQ=?3Y2DQB_~ z=wuJ$&KNgVH`+BaG(0vmAvi8D!ava0!`so*&fVVC-8sUs#D3ORVJ)z(w`zQ z>4oXO>5BW%vw&k;Vg}Ix#p}D1by!o=3ZP{;WV#Taxo83-vc5o{Nm7$W6R!|5_<{IGxE!!clR+QD0KX1Ft1%cvI+2+HHjd8et0_`yNb+pL5?91~ z#O6o$MXrROhTaFi1%CQ}`F?xF5$;!>=DzR#g&@1rk-xD=iSwz$nO)d=cnNL_p*N`pB};uy zpUxz)x1v!_C*Df_A;Es(Tu~kIPjPP$?XW~Bl}m}zKa!0Swd9oj%2iC zx8#iEuwIGW`y7>G1MtNs?*1C_oUOD}as*d^g@3v;P=hpsUW`D6Owk? zd7Q;TXK-$F%XoHvvEYhulqe>eCH^EPN%AF?By502c8RNsZ;3Rb)xvKA26*#$-dgTq z&Smr=`z`A`vx4EF!*mI)F?AGW2l*|SS6zsOgdn~z{t2!M?gS!14uk8?X{a)E8*7X` z&$i0G$TZ4aO-s_NQo3Y=!%?mFMQq5yRt^Kk>mgH6MZ$hp|G zMDr9soz9?QT zZVhnf5>Zq*O88I!f!v5aB0_-UzmJ#Uw}1_636g|Y0M2_CB!ezt^{{8zw%K=?cA2N?8tKES zOmcAYY9bzQ8ebT@5-pBo!^&_ofXb!^*7=Y6?tA}u;_h7c5Z4i>!_m=k&)&fP#kSDa z*v7L_Y$97*+ZLPGHp5PL{O368-0muLzw}_ovb`^?ViN1zz1u{v;=AD=<7(h8fhm0* zZUDcAdO})kDi+JG&XTiRGUUw4v_CaC^)x9+PDNW23tx55r}lWKa;S9q8tt z?Az?U0XjI_-P2X*3_FH9itQ8Z6#Hx29@{e8O4~8pKU+2XF?&_VU&j&WGS?#a4$o6B z;vXLP8tfT1L{`VDCrrtc=`q<{$PQlwh)hU&Nghsh(Izo|Gb^(vp}RRJx%+uD`85PT z1%rgIg{Y{lXsBqAsF{c)dLkSmGz*3bUhzfzF}xGp-y96hMccE-0{nTD@t9slgK1T% zLn(X6KS%=7SmGmskgyEk?%{w39f*{}i1NWWB;1V16i~LP}qrE#kuicQlGuW;1V7rDLNA2D0Tzk;wu%&DT z_L=sd_FfK`}e*lLN z$*#>Zv->jq%h^6CMPn)``Fyzum|7weZgI+;B%- zon4om66aAzEfDPk_9^y(_Tlzr_6H!dmpMqz>&{uOZtgaoUfu=1JAQm{a!3~*7mdaC zgFfa=AItWFaL8TUNCHASLaszTPvbFWF(0y=0F_a=A?_RAB0g8JM-UaX6iyee7A_Nx z5LOme2$l;df^~c^uQRCUG7g{937yA2%6iSTGH9TS4W(_OJ^?ejHhCfGEm2IIPbk5+ z$3Mi?#@#|10M?{CK;E+;JaibV1|r=RT&IU-%F+YUpHdA$Crc)JCr-v~u}ZNq(Swn9 z;b2G_Y7?9s*zJGnb9t5CVV+a&psT0riL;^etz*1H;;`C3*k9ZK*>R4pj%$u8&ezU) zuGa1XPrkRgZ;JnF00~VA8zYlqsrbQUle8(b6KeunkgfPC#8;$ll+V;A^g|32Q_OAx zs=6MR&illh!H@CB3myrA0#qmz;)SJxLP0x08Gj`IH?I-s+oc>Cr$4%heUGJQl9{y` zL+Bf5_oxnvhBBIb0q}vHh-V2T!W_Vv49ArtqY)Rp7^cF3~Jf(-&={rh|$y##L;&tZ4SHPrRXIoKI; zoOFzJGzD|JuA`r0r^D>%>nwM!ay57JJa{k7R~c0F*yF8NDGL+2=xdj@N9rgNVsi? z067c#*k@=AV954hl|ZC>f?Mr`j4M4kZAkS^Jxi*<&haBI2b|9F zpW}!4l>}`C9R+p3i{JC-@@f1%JPL0P_ZxWg1oRwR$KtZuGv_nT(f`q?fIC3)!B{n{P8^ZKKK3gV}a(O?O}IhaO`({K+>3+n;~PzpgPD~Tra|3Vo&mO zii$Ryev6@H##kw~4SmX4%$4&l@WlMt{2Tngd=tNf|A@bq-IJYz*CH<`{UlZ+ZYRX>6Y*NyFrdAejKtwBuo`eh{UATK z70UyW?wd7d<^XiEES*TrNL3`;C(kFacpt!tTB8NgagpQUzad(vb#QUujz8e5?_1^l z>#65C;TE}1x*EI8&NI#h&XLX$&iT%>PPenW>z!+`8}E7VIqlu&JL-QFa0IJ{mq)bG zZt=H?_NlMwAz3@N07h_I@HFB&QjpvibTT_#%xu7F!LE(cIX^hdxNP1Qo|{*XKc2sw zzk)xB-wdd1F7ev(zH&Qq?{awH%@5dVRx{Qj=1qp3uA~p5?Vf@0y~xrdW;Rg0@*EDCD<*SXWpheq+g}#r_LlP$;pY=aejPs z>|)dvsSH@r6QPnIH`p_<)BoG2@Xhgl_cZieb=P#iaZPk7Tn^_4=X2*Lr`K88wcO=! z&2ZB^uRJ@vvwc(jivvf4KSF}Yl<1dOIm9i`UA!X=6|ef?3HL^P6cN&x18IEw~Tj@_l)<1cb2yZ z^lU444VTH?#z~{2(Wh({dkE_!U`sTNQS{?9EmcLGK)FfIlKPUa6IsNC1PgvBz6duM zuwyg9Ar!iU^#PIIp3TcX&U69S+M(&vRG-w_WUb`BL@?eZehlD~I?+Xu z$Kh0{DVWtSK`-m$Kj*`|W4%8;-97)@GeM63cAa*u2NB-ty6JMcTDmX0t9jme7I|Cw z6n-=y3f2h?4<7=(yK%fQK}an~domL+9W)5}ifc|dN5qi_QjSso(2{f(lg-Mq{;?0D zZ8-lpeYg*}cwQ6UAl_(RUtVoqihG+oi0k3Z<+#y7=wmjQJ)U)w8DlhMET_K!SgZqe zJEfRh2~>0uu@TTvF$rt&7;ZJl?gIdWzJ!Ou3Ft6j`nA|9OpUz+Dzb29b4CPaR(|>{ zxZ-U~#u7sSXT*+=iQSAQBdsGF!kuwh#8({Q7_=NDnuSERMd7NfJwwrd03D>ui1K0xZISwf^?NX{w{Sml16&*r;@P-QxJ$WJxF0wJImKu<^d6hf zp3ZvCq%!+54%4-?9MHw?fa_H+@;MSr8bka@Xb8|)KDg%8#63lNB35`ctb|`eV<8fB z73&Eiy(?QS`!+K$V@=OY2U9asmSq3r^Mo2)cZywe8k@(S!}`dSFefo?)04Eev~AQPN*-k)`75b1X$vtx z7zwU+-SOXW{XurmLukl(pcS-1TcDcIKWr(c1RUAuY&x?qQ;@j}E|M0Z9?!+C%~c?uB9h`8;C*pqTKJMP>-tWHYHn=N$ zHh7Yr_1-*RneT#sLtt@mMQC66F~Hq5<4Y6YlhxAOGr{aY=ozfSt;81*@=4Rk=O{m^ zUXb4rMmh5)KqzALDq4lJn`7k2z*~E9yK-xD@!bD7^8xZak5)lXv)SzVte*gtEMa`4 z^Xa2$*T8nwg>npBa(a<&0|dH(ki^f!hjB{*GC7RYL_Wh)Kp(pa_+Jb=4;bJ;c5k*0 z*f_=kHR#$jHN7Q8NG(p<5!vR+o4|N24wL8!uaL&*0FZad0E4^Ir zea~c1br0fkx$W+RTjd$%x$Y5o_klS7^6m1E4Rj8+4s{KWkL-xPi4hXLl4nxs^x*6x zux~6te&F&5bBPZ~0kVSHjMkOjnNgp~Wc_BXWh>A#CACObZh&z{KC&%8_b0hjrKsh`Pq$y*6=Vrjf2RwuRzutwD* z%fsJ8>d?aA&p_?KK|j&I(uer=cx!npJcZ!hT>wUF?-}FS>nZg#^j-q>{LQ!0-yxt3 z(n6H5Fj6l%GPXbdFQH1!PQS}2v4zkNxB#~Z|CT@^wIolcY^NTlouKbzOlLM^dBC`2=p;1FUdzTbgxXyM2TF{nwfPQcWWFgQ4--7#rK6VP~3PrJ#SZ5IF1Ay%>%FND?G6&P@^!Ze7 z>R6Hmkf<5t_t{uBIsja?uyEh-#Sj)85_}v`1-AR~K$C&`E_?fUDWH#E_Us3le!=t2 zL-h{xzV^28efQ1x*9fEo<-xCjJupPzSoQe0#Mz`f)i|>ytHo-;Ye1w$gu%q!q!(m8 zB}9$Uob)e@Bg}y;jJ1c&Mwg)908VMZ>Bi~KY043D4CoQGJ*sEVWCvMO!JFGK&oCgy zV1T*tw87LH6cS|&`4uS_-0TvBX<%NB1Do_*uvHc!^#J3&0Pth~K{LTk=L0qulVks7 zr)25i#?dZQoSq1{?|G>pnABy7PKg_FPJDLkOEfRKJn|=8HM|b&9jyQw<${YI(ZAD| z=X>v6>}}$u12k^+_&f}6OYeHG!Q0#S&o|324`>6ogNH&p!uukZqMu^1c#Y)r)a`US z(;3?j8R2TU+4!3T8<9t@Pw7nUMe9JX#(L^S+NNG68zwI%c!^~|-`z5HG#ZQa z231WAj|=@5tQtHRpawR8x<2k}?sIt0dS`mOftNS+_Vh0F-tppmlYK_;W=`OJU?b0v$$ zUc!UN#1L#HY*^kabo1hW)Np=hN57q$IFJ=ek9fp{(lwLxsPuoRxQ94o1lS$-h zq`$;A#CwDqgsb>kfG6sV(;|xyA@Ud=1@_AOU}ABgSJ*5N>G#=LSzh*DrVr4aEK5_; zyHXsWC&MS_116zM{CbQ9P}!$QL1cZ{9O@9d78C`y1_*)8poib~4e_yjf4rByyS$r0 z_qy#hd#m`?`$8bM>4AHJ*}+yJWtbUZM8&b%@&1X`$@@UxUNbujy9EW|TDZyhqlEWF zJ1I*hQ*ksO?KAxVqX#q0+{hxZXR+V0DQH8q4>|8fxMv;nFQS+N7) zsuRi{&vwW4 zt9OHW{n@wF*ThHh*}Wy+GH<{u_VxFj^HKb({ItNOz>uIU`HhkAWM(EHHOpLWiI^pgZM2DeMP!25`I0F&wx^t_1T)msyul14Va-^w(6+ z)aPW|l z)4wuoY#?+Vjv*cKdkMuv4!JpH5J1g6=(!9%V-*u&O=MkV{b6ZYpIJv)eOV#qGG>r5 zh;ak#eJyB9sdp(JashcP=^W6UHwTyU5N;^$GtwG)4(ja<)EUf@KG+Yy*WJ%ZGxO3f zQt4#XWS7Ly`0!ZoXw!%!91Ok-9QMxynzlMXe_q?w$GOYlwa>Q8?O|KeR@;8W-o(Ll z3S52NZ#-jtwE~qw?IY`A+Ce51{Jp$--0$c_Hq1K3=t9p@Us86FXOTt`M-rytHv%nQ zDa?S|0wvy+>_0H?$!TgT2~tpss(F_oX}Gtl=1MJ8SWqdKF zb1Qn3-zw{0*1T*+nX~Lp`Im~iI=kLstY>*^+vhyt(fT`ui(;!&%`q7FmbikN!@P{r z`7K0ErAhe$)g{fY+=Bcr1)@s(D!r(5v{KDVD+;#fkI5tCF4KHh;glMAZD~VsQ(;?v zU+ygQI7`oHM880-N%=}zL+nPVgy-St2pvWtAtugpGEiEdyq1_4r^XIMsNqS$8-A0Q z=#jb#9JOpsEZt1g4QF)Gis|LdGDC^GxIyuoqQgZ`ifR-Giz%gZ%W76M)$KLZGmCAF zox42z!1M6B`0#WKNQsY-?$d^_{&8{zO~hQ;1w~Nh*BsAH<{j(L}*Q-fqq#c97YMafYU#-UNCQG0_bapKp*?@O$V7R-7%% z{7b(Dd-2RfLHuL1U*tn5FF4JA%KP4}cLwZ`jbo`{8frMM!z$L7H!72tHZ3_++@v_S zcxbVq_+g2mbXa+TwzdA8v8SbpeWdGww@FYJIi8rFX#;Z!#pDfi9(ytOn&7f{qD-$~ zse_tzx$pAs<@YT(U2vvgNWquvh7qXa9yTYS4XQ+%LgRq2zm4ize02g5znMC%~OYIlimNGKJ( zlU$f>fxyH&lAzN}shAQ*aZq2ydZFyt!o%xyqcEP=TQGT<$O1VbOY;~zJ zUolL!T5?o$SMZ(Z=P1x2tji20eG^qec}-eH>_cdPuY#+B)P-9^y|EG5ahZ|n?x`xt zNc?iFbMzN*znls&sT_b&*e@mHxOSUsGTxRFX{&Op!dE(m8zVzMU6y1?ntBDY%} zEq_`5iTow`to*TgOLB+hur!BMSw$E5D(OY>M^Kv-UOmoK_8lgJv7ClbkCS_oM8q&& zk1GTEZy#`t@vxk18AT1xkKr z?sD`w3uP{#`>CrbmB?l=jSu6u<8~rP;Oju)S^~6i{hg{=|uT_@V)P7v^mdmd*toS+m+Wb?`du% zCkk8^Q&lcS5BXu~Z!u0(Q!tdbgY%g!V9jNiXp^aU%01Fj;s8P$d~;j}WFR~P=+2L4 zZ-5DNCv_sZIMFH|jBW=i&GkW(zqW6-=e+BmgJ^GRU1I)htZR6zo1kr8(Y}0r8C>?f z^i?Un>~z`s^1Br^brC(z)Zb#a-E-deSo}@GS7LQi|7C|D4#H&0Pr8`hh?_6aiH1n` z$v1&K*{eC9GdPuaD7Oe`JLWRWfcwWv z*$Qqa0%8*H#rcse%!g}1-LUc5g+MpH6jWu)1R;J8xC8zHMeTWi)Z552$92)6wMnhx z&996N44-uyw9_j#0zbgSvW8{d$}X4n0e*mWTBhD;NSOv&{r1#L*!1pPWmy{ z2KSm+o4TIyko}T-P|#3(So%o557gy!&7>T0?uy)_x$|;qx#M!yY38Wws=g^Y$uCMH z;s&Cbf(tw&P!ld-{bh8df1ysK2+8FjOHSdB;m!l3_7~jfIau{0NoDbL;T67vTaB|AD7l+49@08dJ>Y_|0I2o5;(OpmAPeDx z&?Brg8_iHNoHRWZO?-{-inWLq0fp!HKrR0|?^ie5)yHwrW(8{22gVMDnC_>xq=H|u zrM!80o$_hrp7MtkU$j;9-wjVp4oiP~%K6t*<|l=F$8IH+*`06(Kb(A#_K&GWAMr*D ze~2NOSAI|#SFtn|nlU*ia}MS7%=w@pX}D^?@|>cf{JNAW86~iU;_k=Pd>5W_`}hSi~cftatmx6o~L zR&gw}eYZ3M-@C7Yt50kB+A$UO@@wUH%b|+B6*IJZbXomP;{~(U+Q*S`m3Z|5YNS{E zVv3H!}<^Gsw$`xHa)vFb0U2qbuzgz zF)S{ReFVtW8XOXM;S+f$yB|0Sjv=#u@79tLpk`Z&!4wP**grI9Sm{o2MJ3 z|7F;1+H3i3>+a0B%Y23)CE7Vrm=0mxa7T&d6of%$TR409bWvAHR~cEcT6tS_RNYc@ zL~}>8S)uh$!bxtpfZ0E_X}FU-oYd=w$Tcxf60ePGeMU0#Sh2L zL-xZ@0V9lJjj{tWQ`2)(QH>!rI9qKxoM!<)&NnNT+C|!!X@}V+|WQh0$(2C9E{l`(E>sVpN zJm8+Z47TPPBqk9e-~gVgjSPTSLpQN0gHM{~ib65Jk-u|9PE`@W89kFc%4nBwRli|0X3VdCB zT~NyajsS|@4P2SaO_eP?TVvp7%Jb^{FGJ6xe-g=bKGX-dfVi2mjy{sbQ_TPw@=_^Mwo){g^JJeTlf-`EWI+k9J@*!x z!#>8$VLYG>2P$qI=^5btuH#?eDi9*l2u%2kz*&Z7n*qK0OyD3KpXd>{9>o7V zcr>y%ek^q-`w6bVn@L5~>x?mMFQ*HCu5g@KB;781Ex)Ijp!};OsG`bi%IeA`io^1q zve8n$5bT4JuB(p5z@fSo`0Kly z#v3mil!g!b%lZ%cT*C`Pq4B;6wOp~Tv~P2MaX0n-3G50_iVaBi$@GH;;Cd1pQ7H7M z%r59vu8v%f$Z*{U6Z+%{sOMGS}^0U0H0FrNLgq>kQmtJ zqkFfw>8|~bs$kpMW0`55VcKuB8>SiZ3_?RY!wth=V;j>{^DoN+TVKaS*Hw?w|1dZ= z(kWg$m6w&nTs%fBrW~R-X5B#%o>D*-JpkW(q-=nku2`pdu6U|g4IE}O@pll|OBlRKnCX5EE^~=CzC549rt&lOR$o2!;sAH*X zU>`mbUj+2|S-{=45B~Fy^qD=A+m@LJ?a+si7+Kg(+? zhA28KV8uFlkqnZ-QiJ%MsJGC=U&h08x1cEd1hYP)n6{bPl_Do2q&NY?^YKk^Q;~D9 z1*!tg!tMZ_eSW4lsLB<9d!7>S5JRJ%!wW*Z;6;CZ-*Zn#_dn-MhtU4Vdf9T){MeK> zPB*fQHbdOd&iKW+$8^wKZ0T>KI}%Q@XQEFVSQM@qODBrcPp}inGD24}fp&(WWX}bD zx9x(iq90<3v_KY-ZIqYE!}34!mGYRZHK@qpl1AdB@VuZc{||Q*$HiU@JRw&A=4Mk% z$@fX8f%p6d{wvU#)p8e5-zlS!m=(ydZGlih$yo)^1&$tWPY@%x0j8ziS+C>~5T9d~Y0Ks%>s#*=ZHp|2aOp{GQhS$HBf4Qv7@J zY-R;C5Lbz4C-0#tnVZ-jIc2;jf^nk1VyYA;dm(EfUnActA1+VHCd)2M-vFP(Zt&O6 z@Q(lt_!8~KHZxZ;^64eiBa|8cv-FiwZd^^%Gm?hHu)M~YnK5Q&W@cuNnVA`4j45Vj zX2;Bo%e&Hwhcu&k>wC_3bR7T7xt`OvZ+CT7HQRw{O1Gv40O`2|mVZ@pHt`sBcem&k zu*vv{D^fttE3sk^-a6dSzgZ|6(Ror+ifNOq?zTjsCy=V{+k9nf1wf8Y3h?sv-X zRw@3J*HGs)&G-nV^bYs^+(iHSU`hUqxGOR;T8lIqp3!r-MDr$Vjy=H@ANxCQYQo#Z zaMBlKlt7*$&?}_nnF{8=rn8PI_7z zk=7vfWJ=4Fq?G(Ay;9z!EJ~f2_IJ9Lu`O$O&IstJa{a?XQU0hjOew2{$cu*2jNQ21 zY_K(R3~;rIHN-DUc$WAj=>!x9`|>=k)7j;7EVCD} zJ%FC1s3{99m_1;%ZNrQ6O0Uz`(Jg>BEDteC0}_rtXEL<LDY*%jQ?a)^iuY9Qw<)X~$Blq#;Zc_wE}cCD=ZnRzp6 zrq4)AOP!h8AhlNNsMI%zk(TMbGY%mGe$Kh>dFC|)`i9=~gCw1DG}?uXqF*S%?J^0L z()Jq8q?jkMP2*Q5>`a`PWKW(1oyNB0KFPtPUP(KllD&w$JuJ3J%m?Q@a9v;FPF6OD zjd!?R>@sE%9BPgl-sw$nH`ofsdL3eumW4^&eE3*|!6v9A*ODru)8WH+z+J8yNb{}r z*38Xv@68#4bC=All+g>BuwdGQ)a|MJQh%g&g1#mV3fL}L-?O*5=jU$ny$F;D?-EML zca(veLATdXkvYx9oBLW9*k?Oi#bm{Hj9-$lAhB7}+oa;jO_D1lXMuhHHqnw;I3ZuW z7W*`2xvLH`;1*jGt7N`lnhkweRkkEkhOUQPvR?mO7poftj+31j4sC%w+FjkMJc;<> zrel*B(aS#$Zwhq@S^_tHW4!rt-?-Q3^v$jdf0>pU^U}Yj^-FW6g;I@aozvbU|IN)f zoJnPG%IV^1dq9z#ycg{BTr^)aN=9JUAeTcK%iIXJYPgQ6sZ)wi@N(G)s{VN z6wLW-`JwXI9TOkd6Uvr`iD}SyEJ<3H)FVkroS1kQiaa&W7yCSB2P*Cu$767Vt6L<~ zJ>zz64%|*A(@UtsVBWa&J#zn@i`DAT|WJuO|t6l*g-E?fs{%bWgb zzVhB2=r?BM^vG_V)gyCJ#+&q}>FH@_(@v%ROlzF}GyQbNrOZ&)fE=CYMeYON??Arr z6d^_Gr=&$klYae3`W;)`)YmfEHpo%Jbt|SQc+FiB@+O{0G$vI{Dh5^X!o)yA&4m8( zBjb9;R*#`vj~ol^wQYjsBADy#jAgkbHkQdxSEu?JHi5}pNH-0R4&{LxdoYvQs{T^) zDQzPY(Z{b8=R=Xu82H+kz;=IEXpG)^cDX0vdv}B5(!mS@kx~XaI!Ah&^jqmeGa6-f z&f1>sa9{K+^Dgx73w{q*7I(?9>ITgLMx#V`=C+$|TOQck7tHiE9*}KjD5twZzHLNc2uL<7M~8myB-;?RnK0r|XyFuzjShj5TP!VcKAv z$o0isVGuo&`p57QI=&&$E+&wF5#JEqyPK7dih zNfuEjE^3OGcdxJAU;u_Gi=t=b6YZo3qND znET3m%6}&KI&2nu$QP7kZ7%s+|0lhGy#NQU`_`@YhR!=KXKaPIeDNRS`zD-Cc$e@f zVO2u$gdOoY&{~y;rY^x1c09CiwDqx;v_#;>a~_@9F6Iz@6a0ciLl2;sD%pd)K@=ud zVY=QidR)~oo16!J&a-9JaUi(atZf zq}UR1RQ$>KVhN)Y<|hnKD3owMzCiqlxJ|JKWA=g7H{4OjZnb^295*j84M5FZk8OZn zVLY`9QIbzT4t$@|WRojkuWb)c4|NO{g|_vvcW>@| z&p7wkoJDXa&}U7Ae&SKa*^H+dahYo~YiA{Am&zIG{^%L+t>}*rCWrqN#!HtXT(l2y zMn_QfnX%kr_-k~v866v(K3BfjJaL(E3*z0-#gv9d;!=G5_ycj7v9{QJ_}V(>Py0pN za%*o(C9~ZW;!@e4P%jd6QQ#%p^l9+3+YTeW;lw*sCWoR%%yZ78udEX3FVB(Ii0i@6 znF!CPazIYLV0yn6RqSZ@l$=f3FS3e5mD@Pek;!J3$(*0bX5Gp3D1Wu!A5aK3l*UC4tLa)HT`$8j`T%>(xCQEN zi+znF!|9B%$9|8U3H?-w_&*WXU*pEd{f1gd zp?y>`TvoQ}vvrMi|B^0pKBfzU;W$zo(@F_S&sAWh=1N8>QOqO6@cM9e@G10QYkgC} zza8wE=-!g^CcAX@!K_AET$YgO%<7T#I%`^Xo16~rg<#VU^|=DSf=|P*gd8bGX%d}@ z=>BQYF;30|UiCq1UHfT=jNtf0X2 z-tZ5o_f7;h_^11Zdi&%Kg!=kmjytSNxOkH6Re{0@M9NeBHfWaqjuZT%N2o%zOHHO;gn+cw)X9S)Z@=3C6{ zSbuD_xb|`Npm#qQTR3)p%sp^?^-k77+WpqAmIvn3rhUe3+%|SUbB+E%*{L>oadLHS zppGp3Jke<%klxh6Z3X?4L$6 z)PZfFvrrxJU?ty==@xq(ni@k~7StAXpeV7#v~Z1gE^;ilFSJdu4zhGGHvl$OnfsG% z#f*Tn%oBsn&=;EZe0V7pVj{dZ24M=-63nIqb)0eyO!EqIclcN?#6*4(viGQ9&p>N` zLtjJa)kk=?yHj$SRuigPFqBH2pFUw?4O-9fh2B*DKes znAb7R*kZ9Uv0q~5#E>yVT&J9=4ud1ko@`5m|BwkY90RJU1hzcWiC#$EHW-mhuER%d z3uz^np?+Niz58F_f_1`MX;QjGHpvgAT#*x#gg^K~;ryYbU~C}PpVwE;+dg-Z=Y_kH z`+QEO$Tn%FOz_Imv%)hZ zV7}1|T^lZz&k-dnpqv>E4%lFHXM?m~(eBYF;NotAgJ)%6_4}nKV!9ymByR}oLu8Ny z66^AnhRe!&Pnx@f`+LsvobJ%Uje>6C5BGKV0?&lp<=#iWQh}4f4q>bCTYM;AR?bFG z5=V8r4NK{MY$4+_Q+LZftJz)_>JZVn%aw%K*nr>Ym_jiZU1eNLo&Px`d%V2_+@2~z z$yX7mLmjRSGWSaQ8gPgDhK>55uBYxP{B>``!}p%nNV^lQ89fHnWHL}HSERi>Upg$_ z6W;T`!s(&RV0IuEDor!a-79ymM|DqfbI{sv!|zs(-MzwH&ZBsOxlUha|MftlP$m@C zQ>7k}W@>G%B3V@LpuF@ocB0W{UTtw(i`r{Aia0Zzb6s9n<(T#{O=IF??z=j=?m83U zXtUV7Qtx=qlXG z&dR@F!4t@yD;%kZ~s7T+cceOL*PW>FJ0~5pDFt#z@wAgHa+Uq&;Io~+@x^BB7 zE=!DrzlXYVo!y;B9huN&l(#jswt=5RPt!o-SZ+RQ?z?o5Do0H*JVunP(UD*xiNthp z)fd9IV-Ym|W7QAv?N|oBwiWz`!RRbE^ZUamLKlL!0?+)veL8f-<8tqNDtWHEhq%kT z^SLX!$GBg)`*>X7IP%^C{xN}X!Qo-M@J!qxPg8nF8xv)8c0(q0nis+^74_!xG!(FUv85rnw9MkOkY&Wg1EkDdz@Eg%MJ2)}TnMw2!bd)s= z>+~UAKTNYbz>l{Z+;j$OnbDz`=d?#(8K(@7oR&ROKB*CuBUAY$;f>Hm9S_{}fA$f; zzGp!*(%zHm-U7|UK=(ZN19v6QW6zS@QQoP(Lw-3hG9-uh3caNg5uN%wdXG2&9ex|y z%wFJ{nXbcqpt-HPy`h74?sdkv`a<|E@41>JciTRXfr6U}o?;GT2m z;HE3m#pyvnr&KT-@8~M&j-gvPMN}hhX-(nx)B=@YB{0B*NQ=l?`KhFeg~bL!cYb7e zMre6(2fSh4_%v@V?~2@jXS~Pi`OkeAik{c*f}Sm&D!FoQhFA2J2`mgsp=Eq|F-JNd zS*{M&>XC{1Y{N-<081Jdo4n@g)_%5uh!fti(3$Nl>1ybz=3-nIoz0y$9eEvtp{~6T zy^?6=%!#Iw#=2Y&=yv|a`(6N?#(Vmrz#|hWPDRLdf8co$Mk<0ZRC^K^&mG>=E9!q!YMB6ZXb;obVAmLd0RK@6w4~}Ueh__e_RSwlcktm^j7LSc+9I1C4+U}$v)80jUq&Cfo9g$ z0b5(Dib@~lO2mY0vQoM(rU|rAfUg#A6&e6d)h_>k;N!RTp3E(pd&x5tYRTfzAWZdq z^z_TMdQ-gLe6qiKaC6AU?-iO!ntWGTi|(w9j@O@uVoc91H}a+?|5M40L>_$NsPA0s zyyCnG1xy|sNUzP86=wiGefGIhW^xr{x*e4(9mN9bF5eK&9#tLx5#!F!u% zMSMnA>5Wc?I%*VD%=MMOBW}5(JX+c%J`}Qe3ixr=P`lvRz-IqrALr}ky_efC_q%7a zXRK$0XQ}6@r)utl+?n2PzOMf1fos9M;jMg0@ujpl(nPgtABbJLzJ?h33ey_i8YRpl zEvv1oZ6oXj9H$-0&c4n$&gsxcSe*YlN;uZr({06UJ*^8Y|3KgM(HP)tTt&7Qvzq=7 zo^=BZH&DH9(phz@$ry4sQ3ft4&CxG(kA76!VH#gZnH_m9yWkr=7ij%cK08c@{|MC! z4hpQrx$V9Y-p^2T(YX&j|9Xyl-g*AW-IQC#o9%t(d+nD3^+NxI^9yIhuCh^is4ml5 zk!Jlp!#Lc^4V=!@)x65`k9D(cu-)d^2&R7-X9H(tC+)oCXybTnFKeG;y9LH^vZc1U zhiNKYy)Ure7&Fs|UIYiWVuq!7afa#A$YEpvYD+7zTPveoLZ5R@tqd(1t@H!_5R%FR z^Kk+5{W9on~xdm-_bv!dr`qI zQnDfqBJ1S$@Mmcxjzjjo3{909EEH@XScZF9*tg1S@gB_WnOiQm5HtuAb6@9n@+x@U zFZdq@gkYoaQNDzDRq7ovsyCvOiBh_+`UO-TW*_S^jxrrK-?!Ycg3E1Bvv+j-?YQl@ z=Q!XP>M%RDApZ@=D;cyDwX`!&Hf@DY|0in%b7~TpY9!SaD*Zp8|8t?9Du^6dAK1fC zjgQWcGSS7V0_FD8ND;U?UY0^)aj}yy6AI=BA$Kr7*dnmh|JGODx7S+&o|emU2P0bM z=ibXL<-On?P3>*lXF3+8A30>l(c79#f2|CY)iG0m1aprRWLN9Ya3D0)0R? zLYEDFsz$5@LUkFcuCI7=JnBebu&tF-5jN6Q-XVPu&0BDKlf7Z&fI@;pXA0t_Ym)U<~!)$6SxxehZ^$7h0@YBxx1pNN3_nQs@r9#L|0gM=b{!cn+uIfxVyom#ww!pw(+BZRu-X35S61(Ct(~HMI{@ zobuFSLppRyccB`;2XB|}&;c;SPOSnes@A{++d-985#C&G_(05&uEGzvfY6Gc65fOA zL=Wxsa({}ijqinbs5cR6l@GaTIQ4MvPw#YJRX>Ej!HS{L;oE#^@rYC-@_&$R8mkBP$xxOpw&g;7v&!SkQX zon}**B&IubqJB7)oYLplZ-M?~7hcL6(0#iR-SOZfRgPX(tExxw#!rJwcV2k_)C%te zMySH~53hyOYa~!7u-c#N>jwvmrQU|#WUmwPGQfM?Tg&&&x5vLQurzoilo75i{3{ld z&qZ3QS^?5T=rHHCn5-YI3!tVMZ$D>$XMbP5E5X;6m@7x%%f&&bybPr&@o7pNQ9;b)=mDd2nQ{Tore(tFOU zdWZSKzWx4*fdRp>P#S;cD~h|Mq{u#{QuLA5oAm1bGKkbLsH@G!KcN$8WJ$8Vv<|j? zw3UE1YZ(5NL}bslQSjvYXeo(V@Cj3zF$tdD^VzG6MAw0L<}X7%!@tyqEo|$9J9ZV}QpA_L#GMYIFC0z^ZfPn)G z$)g*k3z75TmUjXQmkd-UdBNCd48C1Q^#$JeBM~D|*pm`3Ruw0J;gb^16Yd_`70d}V z4xE6}{gSV*FTXG14SCJJM!ucCc>ihts6f+T-B8EyeEy+OP+BQd%2FtEb`XVihxLC@ zYiSQtl^bT9XPRa1jdNeO*0Sxu7w2su+dJEKTNB$SYd7nC=%gl?FX6qZ1i$42>@WCk z45Kf=wR5E5EgURw=^DX-q8}*`>xi<%Gi`)s&~|`Ba1q|i=aphmgL&m9@+Rpk{NH-w z)p-@RhTFnRCnwMnO2=BLWas&s`^xyrBD1Xa<@(0@?SWT;Q^Dh*`{6KOOWZ6Gk*Nx= z&d>;QfsQatpgzEPU^ur9D$cb~xg}XoS_|9$vK_bGv0b*Ux3#wk)+JV*b+qM?Ili+NvN@*^>sh{05(1EyySqOrJ@f2e;eR%J@$ zom^U;A>9>ev9U0pzXdHiUBQmhQo9XYX?#jjv3{&7&-4>ndxmwVbU3 zw1ahQCTQJzqD$yzxq+`e)O6AqAAVmrJ5)WiCKwD1hLgi=e<{Du_rmwY zm*PwEkN2meaxEK-26IBeuuEtzu9tG)7j{dntQ{fp>sISShSu~J<~f_o3C1+jMO3k* zb(-~sm9hO{%V*Q953G}{X6rhO0m%GqlLL-PySd+NQK%j-(kxV4H&F#{)jRbYfd-z! zoHCVINEC&W&M5em9*Wk9zEHcVpP*pA6Dfh2&QH{WGsL?BE3}5c;m=SdoLdZx3&{Sh z*x8fd*L*tvAO8OS8~&Psw}Dl`fuT;}zWhAll1R$kBiEG@(QTTMoTmGwuZvsx3VOyE zqszpbZkUHzf|h>P6V~rmpEb>T%R1Lu5_m&h%PF(VJj!&f+ zR&JO+9Z@1ddtDs-z~S)TJfn4n*VDRaG58bK1N)&S@CSQjEO4qsbn+*JFkhQr8vY31 zjCDaGI6GiPhdIXIz+c|~r+z>;EVYF%kPi>z|gI>%bm`ol5~*ky0Tc7kabJP{POF}wx8 z(q%D!&oHz#+|t+3UqzI>2R>yakHL$KM|9T#mvjc$quRiTvYYRkyIWpCH#^k2*t*O*&RWMBvTU*xwCuzyISPz{ zIO9O>1f24kFk7HZYyl2Zl3|VB3~!eFx^t+fa*+e8!M$Q3yoVk`=^lYT)CtU+Lv8Xy zt}Abqa>SbOMts8;#2oEOs5J7RGq^KQGvM)G@NdIrr<49Pe~rMAK#gE(@K|Vdcsc*K za932MMv*N_NbRg$BocI!^bZXdx-m0?oz6`(b}}X6d$+M%w^*(9k*_=9T~{n8EG;Z= z&8^`ton)G5ywADd`*s3%vLm>+vO41!{ihP!i$pQ2ZZm2%Ho|b6}%G|4etyp!28KSiNL79 zvp@@c?d_ov;ZE?y7%6U)p2|*TfO;tk<_&pMXEC&=meMDf+i*78Zyaa(!+gnH!LrKo z%;K|%mUNtYnxz1GvKmmzC&C}~4Ofi&3yjzN|KFc#Cp6=Wu`_H99DFXq8$cj-5={s{ zqPrn5s%6o_aCT{?K1auJH&QXO4Oy@gvbQF55DxKLxED4HRX|-;Blsb(G|)CsHc&KB zJuozII*<_D5v&;shaQJ7pbC5?%2GwVl=swlZ6t9Mel?v9>#19C^vGbpp!S|&Dr7!s z&TpA$IbwN$-*L-KOBKr}^GI|z{Z0QFOBok&U)XY(tA3^{V;UkGh8Vs8clZjoC57BV zRwKV62bLwiz=fwQy7);^8@#G3s+WKY9)n-re7H>2m9~f;p&?wl!{M&*p|65EwmB-R z1A&QwZh@|W@qvQ@AuuTD4z3He3m4}TguG%^sjs{x@<}Niov7U<9J(I*9fp?_Pa9bi z$8(R3^GyZK`^_dx7t12cHp>RfBugDjz`WjE5cp1vX{PZTR~=g0bfz}$WSHs(e7>UL zDEueRVi&|`avF3Cw}JE|5ci=~PXv#uA8zFuRNni*UE35fKsWMCDv8?rt58{3&3nQf z@xA{H-3|5#8iIENTLKFM%W)sm1GR&vf^|X}p(EkN{4`;%xJ|k%OOcxD{OB{dYV_Cb z*MBn@>EcXfwlrroet?HcUh@`n*j(Mx*D?x!Y9g{vm|LQA?`(Q#EN@%~jdK%rH)_`| z^hMO%D+~k_pafjZ@`H=n13l$obU7rnBE2*Uy5W|1E2qOjVkNT49PEwjEMJo1r19cY zp{THsPY<_4d^bR!HaeI$_&aa|@o^)N8YmiE7*v95Lv_LwpUQs}ej%3>iS$smso&wa zIFdY}%hBhh8qnRCo@@)QkTJ!$+!SYCV*X}MuvE9yMx{+yZX!k~^JCRk$E9?xgG`e5|TwAb^hJdNDovaP6@miub;rX8*fW>Mbvd zTt*#OP5X=ir`bcMErDu=Vfm-(H- zW^pe%_|!~kSF=_G)(H{zzyYSp70OWWq zZsosfE%l+&Qh5}q4TgFgxZdBzy5b%|4=&ipaNF?9P+#Ca$Aja7&G60Z2KxrL;cf2~ zN)0Uz*XNyrB!omlPL4ECCaC`cf6YsF)-BebG(4d`(eL5TxsmH&6pRb7e4w>?1!DTL z`6wc$wVA+;tZ2GmEC-C6;YP8~nR3i}T7X;KOG6XG9rOyXbORA3JIMy5o7fHq0#!Sy z_0=reML0bv>L&RAoIy4@8z~;yD(k>1eJYj{HwY3xh<^{)j1QqvAsgHjRwKp-;`Ez? zAA%J^2SOFYAH!StkwPc29in7fWS8<(CA6xD?wxQd%Qg@+%|w{5>|w5#Q8LanrJJgn zN12zJSDODaw>3M=w@iIZ9^+Vi?XKJ{)PT!@@pPoGQpKqqh8RqrlEMA2hbWmt7Q<{| z0p{>oi0)Q!#N8ilj=pl9>QZ;1Hra())I!-Sb&;-#1@X%J_`dwRa3|D*e}xK#z6VbP zHw4!N_XS@BV?&cexuLn?QoI}PQzyk^(q;KgL_`kktSu%klBqh*P?)MnmuK>_VfGR? z*eDt&n%*I!v^4iO_cb>$$D7}p=9-dChm9qSdoT%^j=roZbDWN)=K(Dl3Kz&>K&KX> z$GHyQ2MfA|(U?KK)0V=$I0KbnRj`i7fJ?PZv0$d7$>YGzY%CoUUE)k3lkb6ZcMoTU zmWHZ@B%Jq3@LKSFkVU*-4pj?356{A#Ocptbkz*odly>U$=ppSLLF$U@o8VUVr@Jz> zSTpyK8)4*)!%TM&;U)1pmNz@$h_%&J4@mJqV+z-U`;V=P$rH_tf#*guxV}}v`(7JP z5B>1s>_*icg5O0~!VJFgWUUzboH@9achnx>9Zy!o$mB?l+zZb6m8G5N(Z&nE_^ybP zzUX(hhFXVWL%!heV0O?LY8cuWiiYNe^YG94&B8>nztj(oF^iQ$>hq|m6(pPKhU@1U zR#U6!nM^mf0QZI)WAqz)nvNq4Nf-&w8n_; zRp{cc7;aG)>0QhOwj%eH8*9uqwl-}sJu>|^rJ7!u4x2{7$L5x?6MEpD+$**Ldy2`! zEX6xHg!*FWYZ-OmD+cW+d$d&rigOdN+BO%m}&TMka9Ke{{G3=VKc9-?guZEJHmQ#k~Bmf z0tczZ>YnHg?F%82Hhn%rAu5^HGhdk9Y+Ejq8)O)9a$o^>BXGbujGrDzzo%MK_YDmVkMte%DY_ZDL`2Cja9^JQ53EUq5#2+yJlI1t z6W)Z6@Ww}!<%&z$9EpjnlJ)WwxVQC!`+aNS1>X&I)hc+!D4}OK`O(mo(2r1Zcx?D{ zxECMh_Xz{VYEm8xjC0hHj~Tg<(E5if+PK**ok2&dv2TUNsUxhZ~t1 z!yl9b-n!6O68m%71HJ6XK4t1N=P*~@NySm?k-2y1O8|H121oC`=*=|ZJaS+$B1PMY zZrB9J(2;O0x&YUrOl7JY9tg)x^~#5uXm*lV>4Zu8Ti#2Eqvvp?|p@zAww!v>%)P{H1nd zn{W(p;}u{&$kF4tl{!@3^}v!DtmH<ZDK7E%|KZv~p3s8-1<)B63MyC+IzfkJMRuHdBrL3ZJwL zuBCCC@ukscj36JrG5%xhZ?qfFa80>4Y*+a2wq+gycfCMWfMTlxwm>w6qs9~<^f%yi zmj^xN3UoO-;wBvaDr?!%zwuW3)eUM{YKYdrFW}_wj1O??v51im+!W5pZDJFlA$NgULeX=uyJD6>kDZA5;iB6K zyqJAtd(r?^`4plOy0a5NG7E$MwK7^AEP{FH7)~qoz&B}w9W^cF`{;G9h}FU5Z6Lhn zNAoWJQFukTAHH*ga0mPgPKR~;a6XNniVo+UxLcYg_ltB;+Mo{Xru8L;k|T7(^t}yD zslv3MKF)Myb8+r3Tm|De<96do;|ctCB7Ek8+)nOK?m63y{mS$Ne%S%&d<*J7LmOo7 zLD0x;0CV6oxfoO7Tx^{lNEF1z>0Me6%?0#fMzlEk;c?Kj?typxrARHfAODG0rxNtf z<)Pee0KUv*I6r?1@55Ifj^8ZA4CWyGVZOLCE1aPT5&}tQ6cG5}o7Tn2g z*ll$bJGS5G#({}>9UHR?0Dav+v;#x%g|dJi)+IL*cJHN2bof+ z0m}g6DNCI()P&l$o8GHi3HQm58%AlY5lTwlRprM^>p=nhN(8^}erH+LK_rp;IoHI&Ji#+~Fw;BCLmc3^)q zqnH3aiRP(kP$SLofNx!epTOVeOACjDD&l)_snkMF zitv%I%75y0AXG<)J>)vwOno0i6=ahu^dLrM7P36B!Cj~bgB$^u;-B0FZWdRC`^C;f zCi$1C1Z1i*gpSUTZ8GD89J94n2dZ- zXCj-NS6YB4GZ?eh2{JFukaSS%B;(v|!M{7kkLBy}fADd99=szO-zCKOc?S+ zA7X-LQV%FKl*f_I$linH9BI5Hi%Y~r@eFp?lfqSgKHmDee09DdKY-uJf8nbN2ZUnc zRk5EGCx1qiEKx?PU80S(Du`~UPS$o6h~iT}G52<(6~Z zxkT<6I~hIjzf27{`?rGMW_RkhVHEaLuL8T|j&6|70!7XkvMB1Qy~u$@i5x`t1g#<% zGKVquvtSa{3$@86rG#=h(j@Xy?k4|`hDkwj0et$-3q1w1@E^a4ACK3*2S0*ejTo^D zV})PHfU0;v>LnM91S8Lt)9Uu<5^W;Uk8G|ht)~qi;62!pmf@}$%PwKl*z(*^oOe67 zgH%7fe#apPN6vNWL?8c{a~OxyMc83P`!2`?c_6JHPId%s;_Vh z9SDc(pSYE6PfnuL~@2Hh8aZ5hZm{bzdQ7f~`Sg z=C>XdRjl?Jx3X?DSKSKy;R`x6BQ{f(z>f5K*a_54$`ofIPOb|h;nJPM-{KGO+xflx zRX!81%?#nU&{Iqo=SyYe4EcCuw$e?l5zVI=h#cYtc@mXicSAnvJvEn3X7)3A*tzU$ z*1^@{I-!SbgHu!76Lujcs_&Tb=q9(&h3Qk&pVT8@Q;qO~ivY2#flVwd_lf-*`7g@s#n*mC4}eqhY|4apvJ~7jy6MBZExNioH#*@iq!abj zCgi|^z#dMa8?K>A(F@Tr;P$)(Dwr4hX}Z7(Y<9#7y<$mlWm-ZVH4_up$HE+;zF-Hh z;45yUo44T|S}9}-oyE6si#5n+<*|_}3ax%uuSR!hGl-sKb)8lJP5+Of7sb&B>B`J$ zCYhbYUS{3s=#!AKb=-IM7&{8vu%0lZ85Xa5Ir;|Gn)-@6Nr2H^QU4k)xCM2uP?yvt zRpKTPlNLazK5P5Hd?=;m;8ym-E{Z$q2-OPrho->S#zjc*91B2c*%+L`nc^SfD`ADu z9{UOypg$@wsT#sW;U;2xjp&g6ks8Zk`E+EO(oD@4m7^cD^TaxGxb9CqWw>wni^@-5 zpzAQ_5Z@!&qwGi2C<@jHer3RE0Z_%GZuRsBz zA48UaO5_;0F*Q-YKGim&qROXz$F1xTrJ`q%O*CZ}++ANp21dg2A~_z_Nj-E8voIt1 zBy17-H$R$^lWon;jHO)b|iTmU>-4Il;Y4FLc zMBhiRbAgFr`?EXPyEyqb_7!`cU5*&BqL&=XFktair=L*0sa(T6LmWKvTR@GoMpr|Z z1yrpoSa$D;9oT+R65ZJiZL!uGdo*97f^CF1e!top&OK|ClGqf`1q!1X;PL(=)xw6! zIbvxj>GtCbw-x>rs-nW`C#)4-3q{2h=oFSq1?2nk)JSDTRvxK;1Ep_4{6Pxj1Kk>Z z8-t!Yidyg$-3sTnv7K?&W9)VOjgpD9D&n4&;(#Rc%k~s1cu?KVEN?^x4ftzh#?8?rH{u><>O@<%&U*JF7M;0WZ9H|g_ zB=?m?X`@sH@x5GZ06y<);kd9_SdBP8C43g*#DU^%vAlFrsx5z#=OLE_lnd(IXj?5W z;UTV&^L35%QT+)+2P&JIK)dPA%n6_nrQnA@kR1X4snzPo-?s zLA;Zn^i%Z-&{+&aNBM+YK-MR9m}aj*FI)u7#v9r)Fg6mwxBDCWAS_U8k5XgcD%cfM zhSfk$ZeU6rkk$bk{4TB)TZ#_xH@^5u;h1nqc#kfjk+@L=t|DckGmDMfh)ht*sR87` zCBPmEkXht$-AH`_!xO`BDniYs1333#CYwoOYqHG|E!9!|d5~eo!wvf-D%TjiH_cI% z%z)#{8K5O$-A+`25%M&8oYL@^ynt?@1rZNq?KJv@CP2Jjf&tb7juoddv7|BCZlPpE z=Ht~lFSi3veKpSgOWZ7WMg|WFAB4xkf5I0*5z30=#rtAOX_r(GnY%rDoRg@h%0|P{ zo7z&MJsAfV;I;aC$R@KXBfXU7>5h0?zA+qIm@Uhez_$)E_n2i&BPfUV(oN_zYCe?* zT7~uokA9`Tto|+D_cCzB+=dq?9`n8f@bj*Pz2YCW1DKxG)Ck+m3<1sJm zO!*8e4aL#n428eLSs=y^-9uon_0hpUAvS{jS{BoVC)!r1T;M!{3U+d|Jm%V)u_rtS zS+KnFJTelSDfh$SI2AdrD$uF};z+TUm?Tn|y|U{ zU+UiIAarLQ;v{C;h4pXs(+#oIKj`E)(-QLFYUVccn+f6USjZ(kaK4 zeri(mV|2ULlgLYcAvfuo>4W->hLY4-svNxo=WfC*z)Sxe$mS>JF=~~$Obdo%ZqZ}0 z$>2KG2Uy7tXe>Tqn?V6&?#ZYEzhWlb8ED`S;$L(N4G9;JwKM1!TERWxE2ioQZBJuG2An>qn=ZBaq~iSHD&}NWgpJG6Q>@4PEw@L zqb5n9Z&8CO7LF9n4LSPN`pR%sTaG=We)1?#wbEn||Hoy}w-m>Qt0$O34F|h18od`? zj6H>_dPW_9n(Cs`8+hivNTW!)ybOC{zTjRq!p!xVxEF8cSe$vHxKcbPy2VO}Ag?q) zPL;<;jLI>ktI9@iM5k#LQJL%~yXq+YQGGMRXG1^g6Y%4`w3jY}xyKAD_K3Yk5 zs9%as2j=Zl52&5NDLtyRhg;It$e-ZKER@UO+^fL{GfSVu)8Zz)nv2Bsi1p86tkhS! zjH+a_oESMAsjsAf(NiZHj2_hn5Q%U_pQS6Nf28kc$Tf_mQmE!QcNYBz(+c&|1oXar znFdTElSUsxy&X&6!Rzh-Pq!QT$vr?Y{kmPccBlexlCuycGX29r zz49d~US1%p^8APkxul&csfVK7H4|}z7)R#S-A4th0Tsj~j0#X~kWW6-My4bf8TGJJ zv;a0)y`Zo_O^u-vz^xk$4drRy~6&CuILz^s&mx}>UU)+viFC`ENszuCjTWDm%pK|>J1JDiC*oE_(J?7`o#pP z4f1xH)I>fnmq!)YO!=)WQp-d?N0)0g(N%6E8|pH23-s}Zy@mqRdP=~#x1f$y=me%H zeu)eL9?TJXJYAm7z}Id$p zNu2UzIb9wQ$&Sp#MC7vCFKX7VXv2tD@)kKn$LM$K%NfoY%2GQ}owTOc(GO@3O))my zMuq-CU!)gfR>s0ZV;uUMM}~2R1hDHy=;QSF(V3OjrIY(H?JG@&i95u4ASTra6Y)zs zkJ)f{Oj(1`tEjx|VIF@@9i}FNNiYGm_x;EiY?8YtPr|uVr2Wzusex1gSQ~-75(7-R zzqC`zkm}0&<@m^^NIvD1(o%J+8!*es(l!!x$#im=u897!z7aaKn$$i@rCQR<>8tcN z;NK$td_!b!r2ErF=wH+p%z}Bt9zzRo8F%WN>3Q8jT@UP4c@9QndqhbpaRxnQ7orsE z*Z0~HR8(!imClTw0w<|5vdLk!H?rV0Wtif`^lvD(QQQK?Rsy?qj!M&TGb=y`7>_@d zq|VY}>AvKUN6ByGrg-1mA(zZTPkApoN{dD3I+Qf&j_4ZbUju)5XJ||v1~S+b*x3pC zDNg)@en;P=cOph=VJF`eeC>kR8!;X8$rt+RP*HvWOQSA$m>0l8s)Hzbi)r>0A#Q( zuhI|kyG-w)XVPu(+I*rmqH>iDhtZc2hGRe-76=d*{Qb(yNw!U-$ zR=8byDaFb|11 z(}(HP^l^Oad2~#!!X82wZ>+_*K75UtOQ6+kwu^1TW9!WLrc@8s>dVh+aem zg2hzi0;XquvE?-yeS{5L9g$6*tBb)<_b5BTlo2BbBb_2tB zG(lP`U6Xk9H|ykp+&A(O?5Q+m8qn8M(e_$M+e}m^Kak^f2K`#S%dpB2G4!U+;9ge6 z1a$!_ksb5~dM@6Ynz)fKsMUyV)o{Yl$6&_9Y#4ax|Dootstb^3$jM|aM9DkiAYRJ0 zz%irRJMEY@57=4}+{zo+;Moj&dGD$-&{?J^8?dL=7uk(19XdGPO+l*~-L(MgYr)*~EES}R z&@J$lN7JMJuc31bi7E=C@R>P#kAfLmIz>{Eja2-D* z)n+S9r;+^77;a!(Ax(4As767y_}wKcO@)ELyEut;!H2Pat=R1s^<_&>k*!Hyhorn)XLLzl5tTf z_RsX4m#Qf!Y$!)U~s$>k*eHnjXf+o4^+y4u@&)J6DC6by5SDbvFF><5u7XP;TACRD0XZ+NMz6?}J_-4DxgoI6^g ztA~Bg6dsu$`f<_8t~F0K$!QsZb32WMpcFRlVcacyi*~u2+HMhf?D>ZEYx;H=PA&N~ z(J02Z@v6mBB|YdfX)AtT*iCDkQ50i092@E~=fJM4oAPs7au z+$P$|gkNw5V8fSCAL8)TccXb9#z!z>1@QOSW;0n=t562Z(R`HZP*>seeiW;D)W1pg zsk-v1W3b7uppu*L_d;_Hmz`||>{#C7L2XJaafP_6++Mw!9YdiQ#Bq`*pP+sJlS}E> zUb@I{IVc~?vocv4qLt71#JFAwpZw=;!mAsH%JbA!;7SI)e$rlOWhf?FP^e~{Zur7E zkYEfNY#SNhdto}gsf6V9RNi&MQP8oY*r8-pwTarZFCk~x&F(}nq@>DNS+ivo} zI}E>h5A^!L+Gw}i`A5Kp8 z+54wGphwrP#v%wB+F?kSDYFVyYzTs2@LBU1{9`c;ArKpyG`?{B3-Es+2nR7C71RP6 z3N44uK|dfEZVXR_i{Y;@2G>J|BWsYe$P45jVnqT-6bU14M2CDu?juFWQe+6y0HGjS z_&&S?o&dLiS+E6q0Ud$nL%pCZD1m*)&SLYiwiph3lU|)}l-8s+q%u+ul3kNu5`7b& z;+^6TVzpx@qrB*@2s3gxTr2!vXlbZrh!F|}gF$+zO=xq-8JZa;MV>^qMd!w5#aAXy zC4Z*a*ih&K96`F__Y=y99CBOAFzOguK0TYEWvpQ$tf{PPtlum(>l5o3YalDYT*34+ zhB0o^6SQ`;<Kl{oDCfV?0al(>pZL68nnbM4XsD5 zt!zxYz%kJI+BMPBz*i&CCA1-;j`dA`Pmh3YxI$uxJeBr}0kP#AF0Y!uSf~-961w!8 zbhzxQ?5*sIY?MqRZ7Q88nJpeJswK4W_w$-?zoApvFzYml>1*Zl6`5JrIxL-J9_IkF-mUAYrp}+o% zc7~>bI=ec*>UQPe%C?oWEA5pfRiCRHYphzEzKQ9L<$(R9OYQ9*{1;i9Xp6zPH^f!c zEanxI&Tl7bEse_;sV-;k$r=jv))9LXYT$V|Izoq0NQjBkoD`JQ#;?bwMyZiQA!=}% z|EAaACc31KJX-@xD^qX7EZtd6xO!F?ENfQw`d`t%$N%b;`O7F33o7eZx7O^} zH8F}UE$w?;eBZO+hUn;IJ4lHSk?zw*u>Nwg1+Bzf*+qq4<;^^i9nV4XO7rA38rMkX ztJc`Y}8x^dXSrpXojAe(%)UeOAcAG1W7S)Sb{^)f=l?RLUz_ zmmeu>RhC^gvP@T2TCS@YRh6gipgpheYiea3>v-U9<=2Ex#Ac;B!dyZbc@v$-Udp{L zxFVh^(<)dQ{>%;8?{e!F zlGweN=jdEoF{L@#K`bHc#;?FFLYBhop*>h}`edp&xg{|r-Y8~`Yz=cm8v}Y@ZSQ#Z zR_6u#Q|m9Y+sHHY)*aK()n}@vRF1CLRgRV2ExS{eDmzrZrs8pB*J_oftL~m*s(F}g zt+U)SB9I7|#22UAAuzFo(ueVu&E?e-vLz)lRGE|E%$$_HBWGf+JvTFtop&!+l-nk! zMz%h4UPgs7S20SqR&q>qSMZJJuZ63HG=@7s{jo9W zNvW~PK8afKQ1nWqNBC#3bKtbk?#XiJJLlMUSTCEu7*qQ8;J#(**HworPgj`Ar z?_7SSJinr6<)NyEYO%JL{*7^!r4Uqi)VnB%MqehDVNGym;$|wHIU7C4yC|F^iO5Irgxl86|@YjKr`4)%bq%fqtLHB&iBPQnu_jn0fv!~25xz_-57U0@PRAoR$G6_)b;;M3x>i<}$$)gqpBs(c|hcS)u?>uGj= z&i>j1$!tjO6X&d}0e&3m694bSj>5kF=aPgwPS+ z7S|OS3eSc%V<*x#!GtMEoQyAxwU7G4J43wSM!&(^&@<0JXI{vfm2J%y=iqX#WV5r|W;Mx7s*Wl}ie<8Q5}dfXa2o#@ z_aCZYFJM;EhtSNF?c{DG0WpquIaC*`%ITy}7Eaa%yGs%HEY%DhE_`sotPwYW2E=VW`<_ zedT!P4*9x_O@2MS^w ztZuq}sz=BDOD}N}xb~_+G4b>LQed-%s*V8#4Q%?Rk)Jv-rF8 zpS(!P$>@-oll3AC&6Z^wvSwu6&-|QmTUDTh6-#9mlA7XK!mE56w+?41`zNyvqmLOnxEg}vh^up)k#vqH~!_Y&lA{|aqQ=B9{5srO{?uoPu{|k-^eDgK%Zg78bvK<3# zhb?APXX68XS6xK&LtS3YuijSGwyIIp%qmw^Y4vAyE$uhmV}s2!*qX5aaaDRr!Tyok zab;(M5rS*MPem{lRL&yhyJ{`#@PtZcXA6)A$$;hZ7^s;Stap>}>i)>UXj#@i+cF zb|5+=f(suDW&{rSBA!0(VyE6-%eL6^&C~*%d!UZ1O{)3o3DwrB>s5EFpz8hAv(@`F zY3(ijMWfn0z?O29yR|-Qs9*F_f{x8Yz7tfG;q(Qp$(&mJM?zFmQ-;ZRE6Y@68GAC} ztlC+etcRJ|nZq(hs2V7>@;Nf2q^r1CXy(`Ft>AoP*JTwmg!D_)-V_4)7x6CPBK`{Q z5%L#~0d(0No0Z<4I+?tfI2GR<8x@sDK8D5z&HfR-=N^%Jy7PgZU>jk1VyX}7WRk9t zwzg)F`c8Gv>Wu1^)rYHFsdF^Lv_Exw4f{>MEPd=LXQfByr-XaNijx7XH|`j*ih?l6 zY!hccpDyYp=_Mm8)++C)j%EBW^Jr#C=GM&2%rzO8RcDm*6f*f`sY0?=R3@m&U&8&2 z=COA%35*@IJnA3v5z-t`B?IxJafQf1_z7geP^?9INU9*YAW;zSAIpv!!@EOy!E62u z-xiO_)ylckZm_nuTs74M?{bN5uy(ZOu$rj83C{eox`EoL)@W3^OZxf7Rpxiru8z2? z+^Y%TB5mWFQokV;egbJP^&I06do(x1A1YcUnIfYrW+^wTMrGJC8fCV~#4@&IRH$M~ zhvKe$q|784A$~3t3+C|Na#ZLBR*+FhC(y1?CXnlqm_&$x19++-G6Y@=-NLHUxO7&k zMe=`%rg3S^6}cK75^@I${dVs_Pl=1+oML}%t!X)K$^(6Hk8Xu_zouF}S}jte>fY*4 z>fM@RtxdPmFwiv3Qfh1G47z{&%7W2Ioy5%aP1ucBk=xP!$CRO8x%~viqAQYRGKylL za;Qp>u_xnQ#^a3n8E#b*RZnFTMMQQ~nk^|7LBg^8M_d7TlP2aEhLyIS+K>_;eIVW@ zT*cqReL+011nv&->!tK}Fmnh=S^|!nqW2>U!ivznKpX#EugbIDrFV3&pSSWX`%N{# z+_|bdul=IQ(>zeGSMO3+sHbb%YKQ1bz`SW4!jg^_I&#FclLo!-t7*qpPyOhO>mGU;SYRMFFm9UH85|7L+ zK>xCOGQZHr(FoKhmBFnuEREcr807XK2v6!Cwo-)2QD+f8-Aoc~YvOH0)jYWNzznxUDlp=h02u70JVrio{1X*=Y| zacjIU0?)#~WAS7zGyu1VxRtVjK9~}>W9jxDg~#$ue2x} z@(;50(hSLEQHF3AKg1o$dCP9jy31%!ucB_J^d_rFWFkzU;xoadTmWBysz7yjOwUa1 zOrA=dj~B(3M|(zy;hVv3f$zRv-ly)Gu6>TQZN4>N-ehVFaFtVs*Y(uC(JazT)a=$I zG*`68bwBmpjhHE5QQ6l!`JV5-TVPT?j+dtrkQCp5)R-z`7+D)QVO~>VYcWx}PgW&2 zDlRK)t7fWZg9>?}6e-&)+RAydPm*b3uW-7coY#eW8_i-LXJ#=T&_+}F6bU); z8uh~IWra$JNR-$8;3-Lbl9}De|9#52{|AVXXM$$j( z4aNkvo70oOKsZS(lJ1nflHXHIQT|a9RAJ?HWnJYmMUi~BY`l~&xh-lbyvMJ}E9TJA zjVu!LAiXh7PdQ6oOd3rbOc;Y-geyiq!fC*-3$g2IZHktvootur0FXB)stFf|It8o! z(|k71c=umtFUMP34{J5J?_S3GhF1DHx{*SS15CoMT#o9 zU#6Gdl8hH8g_{I;{tB)iEnqvC3mJ5J3AKRIl#G%f&`VH!ecW(lCtx{vs3W#AeLGc^ zOe7cyRve0{K{uHkVg)bzoB1Aknz?T}YdNmjT3Y{_x0^;9`xqwcujrJz585l*587pQc5YfwrlRYc8d?)W0CqJ=!plla|9=JVq>| z9HF;lm7oYuDIkj;fOC(P4Uy9o8x+qJPZVnvY{hK(3E2hdc1eFRCM*`@@vj0@a)aH3 z^_nr7PNY4jY$Z=34IuU>jK{CWT|qRk6dnzo!t`lHdQfV0@_6Dp;KN6wOCp`a>ENY6 z7yn=HSdY;)&FQtTwW+K>&BslfjQb4l^)>ZRbQ^V>bgy-7^&!2}kYPGt?qJQccW`cZ zL%!m`z;JeqlnkVG@F)Bw(tK(L<0ebM>CYQ3s3UqO&XIPJ)sTOZH&l#J^iaTx4f207 zNCr!F;`5^ZLKlAp56|6(qU@8*ri?P$R%$PboQ#m71Psr|x55=5=V2363!00Sq`j%! zRDbX)SH)MvW<l0^enwa7u9vv zf7b6a95$Aj23zR1m|g6e>QVca1nWnVv9jc2>?E>+(2GovUZA`yT#gbXc_KCjn-m#XTn`lBs!7c%lZ-tlcDR$L#KDUpvajfO$ z$EK%7qoJwcu70wdaqF)kf4f*O1mf)8Ew_^t}x}!%w5f)Xh?6J!L=YeCrnb z_62H%E2Ae81?e_075{~}nj)qjWIEU)u8^-6EEfG1ha{DtqxfYxa+Ta9TP&-Pa-}&E zq1Y+BA{fdKb9ZsF&{EbwW|)4CHkMiopgShErR$^%Qm2yt zB}{RD%oQz*l!RA?S_CcrZN5D3bN5hJz;VRh6P(*&Hklw(N8?RHFN4IOG>kI*GHf(1 zFdZ{vmLl79#|+mIkJ~pbm=0f!O-t6pg75?UEE1bqOvkgjqZ7Ej`FP<*(HC*0jUL@)+BnnD+gSlRGD?5kvjxm>>OS4g)kWY~g5R1UX`GG@l z?U42GS4alU#2%(0z;hNRPb5m?Z(`4)mm}-LeL|GrL;qMG<~a&DTBT#Ny^{^K#>{C` zu4$3cYdC6HV%To@XBcIangr&amIu}m_J+>p?&;o_{#K!{k;UO8iu^5>!e**(6yfnMYb6eIhZ5oua>>wkPsAy!)KNXn=J9FdR4S zDs?es0J$Bh6|oy(B4F@u5CW19ABQ|xdu(U=Pl})FnVg^45kC~$6I~V=2ryM;V28h{ zugtU5EpxqfEVH)*?~(%eWna@ZV^gEcP;N*V1{ux964OI-)H25=aYUUsPYd7P05yCx z`oDxHbp{%YgNR4TD%uvtHImXq|c;rDJ1(LohLO)>PY&E`-_@` z+kVYkz?E>Gvd6Q?%m?&2w5C)F#YxfAa5mYB<=y|^$(7Q>w_GD zZBRStAZAOq1T*JlGL(=e8pqqjngFH~4!sJl4K(wcyn8&Y+&1TF#}shxTGqyvQJ@oM znBEzSjc1G+;~*1cHklFY5S!Xw6ue89EWE8Gn_Wh~bgb_(r7L6d`>qb3J<% zr#H{WA1K@`S}*P{`7Nm-?J8|3wMhykzr_r3wn!nw_@8;(xa~j(Jk09KjM4AYR#691 znvrXf>Jr<7Ua}AO72zY3;D^8qn2tS9v(v*;E({r|J*y< zqj3Ln?sJT_|IgOk+RL)mTxA+(;+TR)s%fz4FX(@3ESIbV`$5MLS7*;i-{F8aG%0G2 zuT1fw8_53%uSrd)+vqQuzu8YXOL#cJ2;p+kWU)wcKvFKTN#02oNP^;C;#HzO0FzAN zH{$s?7t!HtD(fj@3B5IqO0|%GlD-hj2!6a2-ygRhOv*;^Hpqni4?C2$q#C5=Bu^*a z#j9e5Xhq~z_*iIquuj12JL=8%;N8!in;awUU2NT~Q!SUxZ1Wk@cvF8g zS^L=T+Iu^>ZlYJ^9~Hb8&WT-2G)}(;xVwzdmwcNVp(|KQG|V~46ADHO3q+m7CUJks zX318`2uV`BK>S+d5vBxQ{#V{nfVg?+N7ia)3r39ghFVNnO`cC$NZd@gg#U-*;zl4> zK@S`aJ;DUo?DX>#In_0}BylW$JN6)YBXTG_H`FeO1fKhrcpG>euItX_juG}gwh`8i zmS5&>X0xfpbjzeQbunwrw=JdCplyN!aeZ^Y^XmPI(4vSTHZEyO&w_op0^%QX4cb`7 zLe?a-Ciev|S1?RCL?jpA5K|?MBzY32c!St4Y9$&kED((3x8M=DAJFyewyX%_0euy% zAGIDuLgtf{#1@2c_=C8ANEWgL{s}bzy0I(WHGL$dODd9m6AJ*3-w|CGnGx;+^tDQV zv2UoC>-p_E;VcCAJR|4L87RD(Ea!ir$Kv zix-O5ibsp-V6uCJwS?USJ^0Od9Ig(%#4cdfWd`WaX#1%PC}V-IFp0Q=a28*N6XT{J zk6{tK6siW*eKH+O^-AqeeoJ6+RlISmd9+T1ANB>`1a|oc0j{HUUw3VE7C0u^7un8Q zy_N}W?qVWrN%~hRCp9y9De*5JiBV#VC=zjmJ_e5mX84=< zQl5|QBGdn@LNPJE(0bDWysF*2u1pExjhIV59^uYA>6b8J>wTYYY zZ!vAu5GfD83Y`uv20ARyr}x}-?{XD7XF8VHkK44?F4k|Bb(V3KS(d97vGuWax9y<) zv!k)=oqL^kl7CuoOZY{UmKdLUj!BV1{0m|d%*vV!l=YiEi&M#!@M{VP!kfZ8(JawA z(R5Lk=$=p|oFO>KzrZ`g-NBiTwqr9{RgCNO^|T29bGIjV1YBVr;RL7>1#T|#39bY0 zhf>%S>~p$adP}MznUNfs*b=`8y2+!+Ex;_71qTLl{Sog+&uRBM*Iefu$42`-8_u@C zO0j;hlvqAn1lB#)wl=A~wxhsV=9=eeWE09Qeg+-d4ZMB;w!*yBOERJ0c#s`G@~({O$$AmCG z15oTN=OV{J`!`z++c|LKsFiH3Yh7n0+g{i%*tQ zqB3>#r?ivQZIm_S^`!kkovOwQff{%Nc-%9A+T8)ViAk~bX>+Q5YH#vyf|Y0$9|j!D z8Ikb-3pNNc0v6v3?{Uu>_Z)EURgQ~xr>&pupLK(Eq;)K~YoB$Ut+TzEW2p0@E5q}~ zyTiXIxIA1G{TL^vdSQFupEw$^F}WMH1L!7ySX0q&92!r|5A)9oRKi)p?ZV~YuGNB} zf*X7bkHlkhDV!kt590ZmFGLSI{U3c7y<0sC+|ylioLe1F>@@pQ8{PKSddd30 z8nlkHC2b$wY>qI%O1#T%tRS}S{d~{6O48&Ph%KPSl5(F&c=3!=8{P z_%U$9zu&jaJJmDBJ<+wydBNed_p|@8t+M6Yy4&X1UV$13*?&89PN{p9hvF;sZwVHL zmqd5R?HO@- zb)2xbv`1|ko7Yy?e#lJzE z86%(dh@C=(Ts-eBZy5h6Kf=cgZ2a^5cKo|M2CpY~9%m!EjlF@jh&hQdfZh>kQ%xwX z$-PN4hzAIt@GSgT+(SeGCS?*@06DQqz=i6SzLyfE<|dycQt^iI;jzN#2H?nV1l@aP zV5Gl~uamcvC*M88RqQl4x;j4EXM>a1ws*7dvLlYOj=9bmu3hdbPd}f58~JT(^dzFF4xqYeqq}^wqD?&FTM`C*u2U91p%kVASb;427B1$Wojy|3F zl|@IhIBf0@?lj&{9*3XD=kY6ft9dYQ3ilSrh~iNJTgnnMxeOZcaPR<4iO3B|gNPdl zFY#2+OP(UR$YGcXZw2^uBL-tj)ArOLFe_=vA&Gr5|ue5_j>nEZPO8i2LOiX!M||SI!{EYjk7$E;P01)?dH~nS;}E%zxE*yZo|Jc(8|Jj-%tm*zPq5B2&ofTb zkJFA(Pg1UspOLDGBw|~_8vIvKCEJlGJPTyNCIfah3Dc#Ar$42drVb|Ui6%g+KNtHH zHAkXhIE)YBf^Yx^N-Wn~$1~Wy&t-BBaH<{K9K#)b9Wxzw9GT9i&h@VO?rokA-rD|~ zfdL_AL?3-0f0!&u--NCrC-GZ|t~fZgx*MZI)z?osa3u9UOTNpU`R6oJnR2iv*b zS>Kg(1>79(VBb@J=b$xoKC(DABGEn77Hb6O;!uKz_=LQG%A)ULIGMTZmS_&g!db)h zaGUV@^Sbebytmwe+}9j2XE?fveU^2P`Hb<3{+9NU`h%h&he$k9J7OW>J{}Kn$qS?| zat4+IrAGyw!*YN(EKBbMuX1qma>5_4A0HRn96cMk4>0V1!Eb@z{%W7oOZ3+DOm^RK z30;Ss&72WOrNiV9IOjTp&eN{N?uDKruin=u@GrPB+$u_o+Y`T2udzGuaolRc01}V# zjG9k>&S0@xv)iKz&M(eb?n`ch%izVp-&476&T!6E)XL_v8?ZVt^BIHbBWV+&PLAJ&L7S(F0R|>4trF-+5YOl^bkApC3-Zz zBsn_W1*(g%@m9iZ(o_n8wuSCs)MNE#cSd=fC!E&Yz1$bv_uMPo>0B~*E60PjLzl46 zu%0u2GBk7>EkMO6Y>T-LTBpY8Ljgf1BE!={d zLocvy*njDs00}k*39v|_XJSwMb1W6jj&_U;4;O@%2e$=|`tSIDc`;8L&vv)pHP6L# z{pY;oyyE=n%y1ocHFd|`7Ejb$*S{eU3vLZJh&p2T65CRfvG%YSXUE?pP9Ve7O*9X^ z1#=v0BB+xvx`AWo)Z%vHHs_MK4>&zI&rvx#nSG4)mZ@h%=@hz{R*U*S$_VmG(q%B; zRUp&&2A2zT9x}24Cc!%)0dyLx3EZ=~>GR-Ku1Jg-=v{W4)qpjOxrnio zewucd`X9wW#*u52MiGw?)c6KKdkrF!5j8vpHb66>D7GG>V|#(Nwj~u!j!8aB&_FlY z5qlanMTikqxOu2|a6({(|Ag;9FW%eNbJLycE_F?HHFMQ)wRJ6amAS^bnI40u+8g(^ z2pkHs!lxtMV_5ukat~l1=OHnag?PHrXNAXO4M#DRp9_%Lo5$TYS2jC0C(`BiCz>UvJu1b83bL083H9)QZ9JYsuq0C_Wz$E`3 zaBjADhNr?k!A*3(cU^W}cl~i?x(~YRdhDJr-k-jhzkTp*NEx{k9U7-5->0@>yKk#|@EnwnILrm~A*bl7+>FbkNU91%FoF}O!sWVApavabfg0Tib z_1+P=9sUvW1ew8xff4>4zE57Ucey9vUhi(;j=M~*fGgX*)E#sm@C^5M@b&R83A_sC zh0jNt$13C7lbzEL^b}r%%OQLq4k!Piw4|-2UuE279%YSTC)o?p4`>v{b6n^HbOP#U z&tQLINm#>~+Zp%hWwa<&L~RMQsqLia!~~%uVL!;K4Fb+W8{{dNl;5FokRMwIJl13B z%=Br1U^gahiH?cA@xL(+=z?=W_kI|v2&MvAf&Tuj;9X{WcX}9}3+|Eb`tB@uEB6BT zPxl~C5={5|zW4q}pmXSIxMuWmY;=N}dX`=Y)kdmt>j^T_88VkTlXi*zmhp-SvfOMF zdmwrYeTlw7&!baOI(iuNzv*B~1{k@Fe)NU3Bh<$fEtv|EQ-vU@1`~$jO92x;gm3|# z$^bpE1JE9(V&U|G&LGt2@VLjH%ZCd?#R z$@$b`+9!Gy<1@JLF6__j`sgflE4mIHg$mL8>^AJHED~z~b2pgoE*g*4iaHLw$x@Pw zSerPX@CvWMugCe38HgR84`a|Cpin);dV^fg)U+#A05sS>$y*6>Vrcwm>|c}~Z55dq z-X6LWtPaqDPrSuf>HVMgfv20t=Pq?0cb|2Catk~gJwopn?*-o}|D%8}*eQHHQYZE# zK0Jw~u3&@V6mkOJm{>}xMcGJwOS98Gj9;L>o3d}Q$!HrCB=ArU`i?!0tz-3JU0`|` zbr@smJ81W)Y6=OY2BraL)ktVS*n~IZ`hi~39(e=j!)mYxK!T2A4FRI+12n;Ysdvdn z$pfI9v;un1xe_;Kt+D<4)rq z`v&?7e209$eYyS}eq!K2pjprnED7xlFO4jWu89@JpC`P@+UeQYJqSVi<4)r}gjS^0 zr{1On$*n=cse;%DxLYCoSo}9!7l1R{Aur%A@F%E0RE~`X z`I}L|RqUQB0mx@w;w5m5Isx8V1f1O0q4&X8ffD~Q-zx7&Ph&U5rFPu2?*?wbFiS6U zZ;%gJX(-Xd`l&jbcB{6#wuZL0cA)l@maDt2o1-6Qm}Wd_N}5+%Gwn9VH`gzZ-&ZTR zIQ%!-CGjHF0s4saC;TG~1?q28)=u<0H_2y;5XnF3Hn~W-R`oigD)Up;-t4+LCvwa= z#N1TQmz*UzP|nos8(HOjq;#kh@2+7CmAM=2=@!>^S^TEa;WHa)+nZsp{A99 zPQ8)5j;#JnEm{9(xtZCWbe<%O#`*-VK;$LBz zwA@!7s;E)5rJAq#qP?MiU^JPV+Ri%~xc_)}2S$dQ#01H7+6;fjUnQ-kc4mZGdpRh7 zq40tDuk^e8w6a^qYmoD9n3I)j$z73W0J{veYcOkk$QzmWF_)j)J|{oBW0oS*tU9Lb zq)^M|Nz>vjB2;)3WR;!)Zh^6GFsCyb0`_U9`~iru9PGl-2~F`+ai@U4mIXB0+gLQ+ zCcOe=sqG0tqB)qO!=u9@J;U`wq~K5gK3`X_$GscuzdW}0u>G@4GKY-Y4Yl-tw7WFJ z)Xl1ESGB5~QgNqTS$?~0dRfo1L1o*@oMkJ@TUKOOwyj!U9aitxjsWSgQRe+tyM2ty z<=N}+5n@Mm@kgnH&|F*>B8T#WwuUK2k8)u_chM}#Y*`OQLb)EK@>$s^_=R`o67vS; z73R&zYo1q~J0|x@PAprLEz2ThR;x}a2P)#S!_vBvXQDpBYW`f1;=73EvoYo)#yXG& zX-3VaD9O2`mLSQu27eo*hH4{offtH{`eKK{FRe%oOKwlxi~o+h{&$t7cSQt)N%zE^l5=EKirI%4e3F z%C}dHsT@Fdy*=TvOaaUedPx{J0>Auf{PV)Q;#1Noa)NTX>RpB-bz(dtx{1-@cD8!G2!vrDTL2fIKnOzL@P8A~n z9G~ZuQu0&MSE3yt#!g@d<{8LF^oLIY^wJ62msY2;Qg0rS#MDu zubW_`C|@F%y_0uSo>G0w_?dY%Ygl##c-v!hCgya=iDqxlPG#k1thT z*#`%Afb7}3#H_Rceu^7MjFC6eAm&tdDaXwt3Ng`Nkiq3EmMZV5-e=s*oSB7XP0PNJ z{WSYp_QGsQ_VFw%vvcOGjFqazpthUH6Vg)2OtDz>8ffwY-fPZ6v@YAte8AX2FQ5&f z_M!A6k0mW5o+Nz3lkq(Pf7HQEKu$o1wE!s?O{z|6e)3Mj8t2Db0JU;dWE9x2Xc-g) zY@oj9duqGY&Yg}{c8m3prKg!-`pI~So z;Hb%(n%a3fy?!Z39CNLxy`FQbyVR=)916*!H{;z?CTuMtAzTAF*ei54Ydm^{dyiit z+$-)a)yoDbjw&CiZfC5@RAm)s*}*mgC)=5IHmh0I6_ERGo-tH47WA;DahbMN$AH^yF-in8#AxH3M;HG~q$oMimA6%=QjT|Ohk+q+NY5rwAXIQVFr(2-i zrg@~st7laEs*Y4msOn!ewd!mYx%yyrZ*?6_Q|%PpbA3Cb&UDGL2jrC>xAUNBhf?wo170zqG}-*{VETfRndO?g|jBcomBhs>H;^KM2`RZG=D*-_C@&XVaQ7sXRVN|5#3#%s@wp%2(ASUs2uMw(^=h*L{; zk%*+4|LC9)ncp%$XP(O(k?GEunDJN@RmzpM6?t-0=9WAcZxVGA z;swun%ec)sG4>1AF6LxLS9$|lE;WzRnB0pri+Ggq6Sz&Iz|JRvjDjCQ5|ElNPd5d+ zpC(xwWG}DAt7CZ3$r?pkgd2ylf)tQreCXW>c2ya!&yMZ(UN)xnpZPLKj?OjA&@a** z(f-h6YYwP0)ZeO4R`096T5YS&S66}^fCB9tU6I~q7;B1{Z(Fz9*EtWkpLx^%exX|t zd3Gd*@wHh4X7`qaE8~GhB5B&rP^rC-*Z@4$l z<8|G4E_1ZA6Ky{%=gn(PGmPWGx89^H)gqvu+0@&>zC(R=bM-{^J#{_JSIq(KI^7}t zcSAkXE%P9&$R2ZqU370t|B~Pb(8snXBB{yHZ=@aJ6e&vSKwru{#=Z#hsIvt*qDSJo z(v`A{;9GA|{!jHy)gohA#*vJ@8B;T4U^}UXYQ6G}!Yv14yDTQrfMnTr;Shm>Z{%L( z6rvs2JeHgBo&JP&8zAr}Ang<&Du{!?W^xs-4sJcbW9{K{fN#tJ>PFM_zLY)LCb=o` zK90ref=)IaD2~fQ3xeZ8N+H{q09^HmYl5?mBVv1JJ!)BE9%mY290@A?gifn%qb<>N z*Cf?H)F0Fab(UtUhNpd}J*hjce`%nY3PJkpmTiS&l52`*weMQM5o!)xM|W}nb`KWd z=M&$MDYXAFCa~t9lelg9alv5`S29z2T6RZ%Ofg=GDHp5$Q$I2;ep5*$pDb*=;H0b~?LSg(0*ldn~ZE29ifO(7)e%PXX_`vy1CAfP}+N zYk_5;xtpnnag<@5{+SNdtv0^i)_Rn8WYL<8n>tL-tn=(WElPu4nszPK9&RThT=e7{tABSBdJibck*b$5YLDYj;)TKjNA=B z54{LJ2wd>*^v&{i_bA;#=Lg40;MNbfcC<7#Hw7DOlfmRN>w4)vYA0)z+NdU|K>^1q z)ppYPb?@~r4An+C$m=1tbM}eOw(k1g=Kg`f)#1`;BHlH10Mo;D@e7DI$r>s~r?UvC ziF1uNSfCU379Wy4mA;Ujln+z56l0W^l|PmLl#i9Glv&Cv3ZbGveo^*KYLYm_2GMun zUBNzn0k0!h%<-|mu&y%?0Mxydwv@V_a+rLNq$Z-oe8NGz5!V`b1WCdZLB_T*a6k<9h?{udYkZ^^S4&jJYUZemy8pC?wClBdwJ)`N-A-Liy-oks@Ye{N^DR%TJ?ud+ua0zylry^!R3Adk6yiEVmQsct?<(zaIS^@rIEwEkpx} zK)kDj>x+c?=|y_eq~is>C*tO{fuk=9d6>a0y_P zZP=M0Ymd<*Ks!Xh=1yafYuiD54_M_0{4E>bFK5pIeb zLs&yPOgTj>Vyt52qXh05UY1~!@IR4D?2&wxZj)uni{);)Qqe%6QuyTOx4^*v$$P>*3zYS_?BT3#%vK;3+>F*9tdV9KG(^2 z|MFb&?FnoP?E`7Q*9miq1~oti;^z?8k~dRVgM>~qwin&U74z2%z6lc|lEg20BpoL+ z%DTumf^U09zE<8zZj~*NnWXKdo4{T|mB=fM2_k$KPtE<0b00m;-UTwQg&;3KpSF^^ zhjN|#i-aS!C9WZS!DoU^7Cq7%WEks#i6#9%j;;YnvMh`K%AHp^9MeB{TT*sbV@o!*U@cy-^uIQN|MFmIUk+0cdbQ12>*l$nud=)OBh zOT`Pqhp;z9gt#CVAi+_~^n7sNcU{Oi3}(hoFug9Ne*kZ^S?cZ-bIR&JrT(P;zV`dn z?>oQ4zgzsd{ikb6bgCycCymc&l({D>KIfRLqbI@V@qY}y3V#sOWlc%cD;nC618DGX z`C;ZZ)`IpQjs?iyb7SAenG*6P#w2AVZOc_M_qN>WxnrPbu;uxldu{IGxsT*>(~hZe>P#qgD@5kWk0b`lk^#a(U`8i`7XlZtV>{~Ig;{F>7(nB*$7fB; zT#<1Mr;bS*koqvCLCS|e3lZ;1f2#lK{b&ClK4o=E74XBe(t_!EG6!Tm%5Dly(>iY# zf4N{%*eS-y`IKa>9?{;|mm10p;kujZSfXsN>{Fel=s7W8ViV%4Bvej}O?s0wCRaAp z5OZ>G&%G)4gxr;&;uxIkOH%cug^4#3(&CNr&bWlwcyP;@sEEUBPsfJtmn9whP!@Pac{Q;Mdf{<-z%;-9B~3@M#c zo~HCmO-%EqWu$8v<+B!K`*J3`jNWErCUhNBCXXGnX@WQf@l;+gyut709(O$(qzZ@o>VIcmkT* zqTq^_i7pXU2patadmPZfyp~etdZwQIeC`Ywj3uyhe}LP)5WJ&a#y5smhDSsb;=bNU zzpd4PI<6r4P+z1~WFHu6<)q=_cHwULPe=}$f-!+af1)oQ+-Qf}?uyFEm0dauEU%1% z=~-#@(@v(AOMQ|uE2U*hm6SRu15=KrI8ryJR!`H@QqnUr_^hVc`*Y&m2R%)FMBs7o zKzO-0L!PLN*Txa!j3cT3Olz);iLm?&6SD6&;uqc1c}BZtv{vt@YAbkj1@ z#yXaRncp;KcI=k8jq&3X$|t@8H~(x>FeyG)o?J|>x8Ug)NIIApoj5Y#V!Q{O;2N=i z$MlXK5;YQ;d%S(JZI*SZWvltL={XzZ>9%={)nZ@oAfviPZ;81Qdo%7({OE+F#Dj@ZNqv*n zChbq!3I#|-M0r?ZN<#C5UGcx-;^OMW_Jr&cTQTbTb`TKOcXR)T`*rg zXX2Pa^erkswG_Izk=S<(28(eN*q2jv6|PO1Iz`PQ4XPo&;YRa4ui-B0V1 z&S!kcxSRPj%a>iwwbU(p=J;|29tIbLTZsi^E%H9rG8hoM>`~59 zQD>vS#AL*Nj5{9RCqYOUllVB1O)8R9EXjdxWKCkp#4`y66XwQ0kF(;;17qe#Z;d+U zyzIDVe_{J(by*CSBy%-v*;aA)P_LRZ+n^_DPhBHRkh_gZ#;w@y>?4X3XZ33OO|35U z8CBI2N|G`s@socm&#ldgwc+ zC4}Sq#9xjhaJPrWtd9OC>Ynq1Bf~D*cv~*;om!bknl|uvIf<>p&SIX?h3N&z-QCC+ z#^%Py*wMYi)+_@aU9vU@o&j@JSs4j_MQ!L(d{S*`9?-!+I6v<9AZVDjfNy&XUv;`$ zbLDc?f%0HqR%&Jyphwn>jp^mn)6&kRZN<;UG;jhLFT1;8KP1fKb( zgsg-Di8b+4FwvE;H=%aI{rKwfJL5cH6b}b~@kZ1aXApbfy!P_8rq;etvFtHDPN=i|)5BF{e;Yx9sg%nVC&8FJx5Cc$z*ry;^!qI-j19-XMKh zx;uST26)q%JF-@0Z_D}DrMo+LZ~1BmUIa&nbBph!O_82zaXm=fG%lnXF$#N_Z)ARB zX>Ge`=bR0q21bvH=^k4e+~XPXB5K#Rgxd+v5^g1IPUw`N$FGZb#?OlT99s-5>Rsr> z+)gVrY4z>hpnzG8zT}lj=8N-vz_m)j_HGHCMzy4_l4Z!FsM06FfxJVsA-?Ow!33YH zaoRHIk7g_0NY}`9IZhrTofShuS!|KlhAs!c1Z01lznrh7cc^En`xG*`Bd1OFwya=g z&&-b*gPOJ(fLD4F>#b9>f|>?t{`T=0GI_VhjTw+a3V%@s;Z zf8;$%KdlgvVK{=0ES~+B>uJh155a!9xMPTOZPcFVjWMHR%f!8cPU%j(Goe93_k=D9 zHK8rI7T+yCC9Zqi?bw9aelfeF-$d!oLe55x{^&n6gUZ)?5$K-8YP|R^#sEk<5H?B^812|J_!77;$ z`GURsI_bAqLL4p}1X9L@$_KlkYVG#j^=5b+p4#qlu2VVT>}J`=vXZiPWR^v=H)RaV z=$z3rV+ND}mdqKMY}U!FG1)D1>bu&yCwb0!DgV&GkKll?AZ$b)%Tjh~Z3)tNp6pE< z+3j30(;;(=b&Tz@JqukKA03Fk8#5&~I&NKDIIa#f4RhmX#P^CX9{(+FW*i^4Al4nz z4BzvYsMx5c&Iw?M-La)v&B$Wi%}c=R2yo@#t8kA=WG2#|s77FRlq1g=D+4uYh0c2n zyb8AJr4Z>B*iLr`bEy;fn^lm>Wa)2dkC-kL6Z(ZWgWcf|=L`CAU-bW8=3$ZOUuSjA3S{od?4MZ!b-O}lhs@QPDVgoF zzGltIu9XwxqTFUraeUDSz>FUf`W+r3ieNpLQ{QS+h}^~-WEVPznaBnBe&#zChpoAN zv}2ZYQdGz2Trm%0y2ZYZEgLr>Zdcr?xWjQv;@ZWraYtjTfGuAzW?uCBsC-eqom;>= zir9()7n^H2W&UZ3HMQYabMM%K@N9ZbR|G%JfzE^_R~X}r2av~}5dDCVt<#Gk(rvJ- z9R!{5P~}&oedGpIaxy+jX5$H#_p_n zS;ew`XP(L2oVg+MXy(Vvd|7j|l&rPcb#pjZ2Bs^oC)U^6zbzmH`-i^?{UoovNXf6= z(7PIfh;%MyKbwzVZSnvSooPD+UBG4MuBZ{w1!Atp)P^D;5L+y+L0pr#@;LE>*zvLE z*mW^{%(&?1IP)OqLB|h!w7n60Hx63fn@zwDW}xdPxwhc0>vUge1!_{~$@1hyFln9} z`WnK-DxxTHNAC`m+F~tHI}Fw9Ii(yFb_tQW@*k;|v{w8s6aoW(Z|D=)V)X*!{fEE; ziuShkY;gYsqi}N$1I)~seLAaOR`Dzv>IY+1p{zbx=d%iCAI)x-L%QC&Zn|%J-g$Lj zt-#7)PN=K!M(ia2j*M41eJ4@gc#mvLzhl~PH~IYLv6eH|?>506ailx1M@@~+6LT0! zrLnQ6V&BF7iTxCNC3b#nwb-vQBVt_9y`t|#<%$~SJnit3wD*JwR*Br|Az_kzDxgFjszD$3~;LOnXa7*!?)F|>y>854qlMF_38D(Y`uzs#R zGFgTt(N@`B+fmMGiFz3|Bia$OEG8$WV(h@!nX$8Chs4$d%jRfIgP3R0O`^|7#o)}B z9E!cBeTwb0HN%q6(#5Z@!w4aEgk>QES=`)0fzmTsL9cC^uU-)F}|3X*nF|k zpk-Z;85a{5b2PeC^xh~_)L`c|2Mf-@O50;AgKhK-;3X1Yi(kaOWs9-%!4hjpU#H4b zCy~3a8k+(W90w%yD5mLjeWCsrdhgCa24||gx>|9753b5Xp~WmMErL@-VPRzWbjTM> zhBoG?Kf_ntH_Cg}V}btbnX8WLW=_kT?CfpXJ+muj=g%&fT|IjkbOcd3OLG!&<~i<; zo_gN;zE1v`fr~*c)LytC7L+$doa!3QPOLH5$R$(+Y})_01USjAw_LJ5wEbuQ$1&Sk zE$Um;(CDwxRbytv9ErIRb1mjT%oOD8G%&GkP_rq{zRv3oyQ7~LHpjNMyYe~G z4obJO@&?H-HWzoIKPexc61p0U1ZtpG|BGDK&U?_KyZgIexmvm2=ZwZ3f0Mm0dm$pc zJo|KZc6J@GwM)6~yQaA7dh&Xmz65{yK+oV78PYA7n_b zGr!aH)+}4>HiuoazjthQ){lB0)h_xHlup%Sy2SL2X&+NACK7!%x(l>fp+&*R0b8Iw(BKSj4b-hLIGCSZ zyRn%FJecRt=+*V5VA)7Hjb+7WUb#;G5mUN4J&6zz*9V~Cja=xfo_ zqf10TjOrZq(b>{@!4c~iX}@VR+1f(|_}%;$ve-FnuiA14Sp(aTc|=!1H&z7OoMiI4 zv5hg!FxQaJ@GsFHJjfGz8$@~y{7>$woz*mDwBnD9h6_qZ`KD9=+noF-K$O?MabWP9#< zPy0^$ZwFF>ap8`_UQv)bMXo7@wY9oR3^BeS%hM~EZ|q-uPt#)aKJb9|+7{T`In2(J z&gxO8qioTgqL)PPk3Jf`EqZcvJ#Yl~L{*8p?X2be#}VTgXMbc%vJJ7GwaDfM<`t$7 zd||i~K4Xis%NQTs8(X_p(EoJA?VeyX8xMgim`*Gsl8N{FbUhz1vc8(4ZcvLtS6EZI z8L19_b6$B7xK)kCU4lPcAFg_zgN1>hTt|n}%XbMq_#CjD$GRh~4X&E5P|m+OyK+|N zY|J^G^DC#gYmrNKEp!+5eDNIiF7i$F&kAe^UPa%XEKZkR$fcB(s$c62=5u~>HuZrn z!j9k$@~=#8-0zU}tL-#8ltkwVXNjn_QNN>d?g^|+3^c)9o#SilJLt7~XL>~U zYmG?&! zrK@%Y^Ts6OOYptNGnZH&m)BI&+``h#TFGX!zp>AEQ6_-z;S;GtEy;xlAMZJ6saF?oUiz_^=hAx524p4>+{c zCiuPu0+ao(eC2$bp-7tTF?!a4(f-Y~4d-r-9<7n9pKHDAv#W~xD8A?Cp4r~UzI=Xj zfDgupDu#Ot8^!lh{>WJ6zM4;;OuRG{C8tpLXqK(RjpU($G4HmlwvMz_vAZyB<#MhA zL%$AUyE$rq)Q+gR&=Sn0$4@C+^cFJ~i zqA9rF2LvtL30o~a*d7X6-QUfB)tBG55_*q?9;fG+yPcay9zW*Vh?{=c_1tB0_i*2F z*Y>>dO!SuVDZa1%XFv~rg$zPzae#C{&WTi0mucVivW9txbOPO#SvmgbyKZ0Sa5$$qpQBHy9Mv+aRaA|r_^4mb?aoHdpN`QEzkN8)T;I0eN?5z1=cdeE zO{c))?#JC`3t?v`(IZf=24IpNkEwE-u_6%fNx;YcBSvGV^H3kJ=h6SuhG`b;I2x)S zmBGNiCqQvFRQ@70l}?FK;#lY{3d7gwZLnl;0p^an=tiTl(PO-;J%v3FpjoKywxAnN zb9r1=cOCaa_b>O~p7)+H-aNkVzO()2xNBtHd`mwKX@kl(G`G+qThm-m%J|JGwddI^R0|P6aXl;5_CW;mqs2<=;qy$iH$G`G^z)hvXkZ9brdU2>p$(nh6dF{O2#}-|RE_ z7U8?z<*5Zm`vLc8cT1eShP#b>viqEy1iSq=&K%`?;9HG3xdug3kE6EZrM;8=wXL!3oHY^p*iYt4<~62lzA1l*W4RIRJElGq5@qNU&@Ejhn~~p* zQ;hNO>FR^I@**l$6nvP*Akq)CFmcG@w|G<1D~dE!d54s?Sj`$mbwg%b~m7M{v7EW`6c(1-$)I? zm`o672|vU2!h5j6>>K}{}&7V8q4ZICL3_S{e5PaC&)s2i-j;X0yexiqAqwxu;P=%SsY!7ZQKfu)9T;5`^ z-n0(Gn+A*RlD)HIuj7M5c9@(T5YHEmt&WZkBXoABITfKEG6%gqM@P66xx8{9~Yh)`WmbkJQ|1%EcWZZ**@O41HD)J=srJ@3>W?AdC{OmG z7So5B8|*{w0e=~~nUR)c>krJ;ynU`c&0fVZ5%>ABJ|w1sA^8Is zLPH=Y`?QwmLpQ6H)tAZuB^a3%A+fPlq;c?*YAaq73ZiPcL+#Ol7YeQk7z5M%qHm7R z;XC2&;N=kQou1jAah}PZmCyzGF=OoaCiwRFs{7OZ2Lj`QZ9_G~m4%vOD`~L2G;&7y z4h>vwVw7R0@geELY?+@e#g*donJDvT^B&AvqIIc_vrn);wMRJ`ItDn#IYv3UIx09c z`&Ii;yBR28GQQ_z>j6s)^q!ffwx)}G9%L~O+ns%i8hwSXOkbhuL$}e7l#N@A)$uyV zGD8*gV_U(dGJsDt43U1OO~b_T1Uo#7dQhnbK0@2bTe&^lYa2-C#e#T^LkRZ?KMa+F ze*zzz9`O6e_(Q%0zTEIP8RISEl|An~w>>vJPdz!9F#3D1d5ie=`^x*@`WFY92lIq< zbYoe9UnJ$+ky=VWb%l0G|4mqo706E1IC?R&j$O|!=0}^Fnw^#>mho1TZIz9%_ra?j z=@>x@If^=xFgd@lueUd|`)zA%e<5#|!S+3mWtCYr4MgUy!tdp*+;ldF>C1ekyU?Gh zew3G-2R7&>+-}Wq1PUMq2*OCBAT%qh!1fMlhkzoe>VCD6`dgW%Si!9ND{@FKEbo?L zp_C2_{e|b@YET_JLvw%;4h^LFhxx<46~0owkKVQ3F5c4KC@+g_UdY?ZyVU!^Th({W zm+Zgq9~CGX^aLM-PK0*}JH!Lh1^Ia-N3m-a^=`y$!+zsk@*Cx)Bf$Ip+!y|mX@R+( z#cf$;jj^q;`E8AHmoK6}`(giNziZ!VA7U?Je{Y*+i?JQBmb4zX6vBqmWS(M5;oAZu zD$Z?X&Fox8rl-&mYCf>BePlKAJvx&-#`}f|hC;|=D~JYod*zHi1d)D$y-sPo3Nl^I ztzK5zD!+lAgypH2w8lyqVt4V0P+d42jt$Qb1%iWv-viwO@T2udd|Q3>d?D{e?;`I2 zZ#!>WZ*SzUb6&yQ+IPuU&VR$-9lh8C)aWtcE<#JOh15YF5SgxQRxfHFbb*LRq+3uu z>A}npwinloFKQA@m(4>hChJyff^C8AyRC@52fpnM_DwkbP+%m4{gSP}jkIlrj_-G^9DwB55A?4?nk+TvE1w_DJUY_c`A zd92H=d96n*r7XuVPi`@pO*45n*BdO*ChSe78grSh0X<+FyeKi5j3UqBb{nwI>1~KY z9-Bi{!=CmZ=ymhxuYmzqLU*zhJL;#(AZR&OMB*d6z#ZHzB>^8~;Qi&KGUYa{8|uIY823ejbvH! zrEwzopid0b4axAD-H911ig>Osfy<7hoy2VE(5|WdRYpCa)Pe_hKdA1;L(efm@`ywJ zuey5_t`oi(N(S?$47fK9fS65z>h2wscKv;|eMQla7srW5_zwGmzQ6sq{B;7)1EY|| zK8Fs4X9@kpwo+5MX{5E%RUN8L)0Y!F4JV8j$?McL`Yf}Xoy&FM3!1*0mYa)PE?O#D z_gEEcW7}-o5!)@>1KUm8VcT3=E1SjkuXTu(MXf4nIcu&6rf*5pem)8B_%Pfo^d%FR zAiijwT0!NZ&OwFfGOoq#PB&~ul{SFqJrNFkF8wH6HS+53wB_I;WUHHi4gNq+77M?J zs*yW#Gu-dy(tWY6cm=z>BjEz!?V&_u@B+{pHVFLiFZ5UT`+Zk^t9|2r1AT*iQ+(Te zPkj#m0RJO@?ZCZ2x1bKS;lyx5A+JbD0Vx|>ERQ0plXIok`<})bTKBD71@{E z4!*m|Vm=83<*ucYb(1ySTGZCbHo-Oz=N)7F+g8YyZ9Qmh4~74FOHs=?b2aldROs`3 zY4o3Y;k6<^p5pBb|pnM%AERq8l^8X{!^^v9pFjaJ6_(tVP8#!Ea_EA|27rLHnAh zJ;0n5k4)B4aYg1tY>};UKJ+IA@rG2AxB;x-rO>C(57D6&!Gz%PK%+pWf0Ms8?)Y!t zzrN$XL%!3#$B1&Wf13Zjzkc8rrs%Zb+EBBwP522M-3;9 zr^w^f9(pA+mTkc$@SpirrV8fA=D#hEEM={WtWT{*TT#r9^=(yc`E9cGfpxL9rZwHN z#F8Izu4TS!Y6u2s9sVj;i95}fW=}AsnX`0tu!*{WWwIDP2akIdWtM=ih*yq

*pl_)tAdh ziXo2`){5#Sh|-2+V;Qn2m5b(>9Ogc|iR;QcOjk@D%s=V^;hsi5AQ$gSNxp<{|2fD?*_Yt zi14}ac%il!D}|(Q^3%v2=G?olIZ&Uhrt?&3$Kk!PT}uG-u;! z0tkN*>R+-KX&{dPGckfwG{R8C@SE5}^oDQCZ+)NMPtOl!_ak6q?>|3CgE=+Fis=Ck~J{BNL@ z9u#;Gs2aQ!Y#jOx{cuBp72k>{q?Pi-$N;6Y+D2=t*C%QkDj7?VNfb?I()XB+Y){

bGwE*@Q2Q8h!rP*t)VSaAvVM^tP^B!(2 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/self-join.wav b/assets/sounds/self-join.wav new file mode 100644 index 0000000000000000000000000000000000000000..0865062b1893f67a50da7e3e54b6b1ec1a0045c5 GIT binary patch literal 49964 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 literal 0 HcmV?d00001 diff --git a/src/app/mod.rs b/src/app/mod.rs index a933648..33bb4fb 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -1,5 +1,6 @@ use crate::core::{CoreController, messages::{CoreCommand, UiEvent}}; use crate::network::PeerState; +use crate::notify::{self, Sound}; use crate::audio::pw_cli::{AudioDevice, enumerate_audio_devices}; use crate::config::{AppConfig, NetworkMode}; @@ -208,6 +209,7 @@ fn update(state: &mut AppState, message: AppMessage) -> Task { state.self_id = self_id; state.status_message = "Connected".to_string(); state.current_screen = Screen::Room; + notify::play(Sound::SelfJoin); } UiEvent::RoomLeft => { state.ticket = "".to_string(); @@ -220,12 +222,14 @@ fn update(state: &mut AppState, message: AppMessage) -> Task { } UiEvent::PeerJoined { id, state: peer_state } => { state.peers.insert(id, peer_state); + notify::play(Sound::PeerJoin); } UiEvent::PeerLeft { id } => { state.peers.remove(&id); state.audio_levels.remove(&id); state.connecting.remove(&id); state.ever_connected.remove(&id); + notify::play(Sound::PeerLeave); } UiEvent::PeerUpdated { id, state: peer_state } => { state.peers.insert(id, peer_state); diff --git a/src/lib.rs b/src/lib.rs index 5007d6c..11671f2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,6 +4,7 @@ pub mod network; pub mod core; pub mod app; pub mod config; +pub mod notify; use std::path::PathBuf; use std::sync::OnceLock; diff --git a/src/notify.rs b/src/notify.rs new file mode 100644 index 0000000..644ed2b --- /dev/null +++ b/src/notify.rs @@ -0,0 +1,91 @@ +//! Notification chimes for room events (join / peer-join / peer-leave, with more +//! events in later phases). +//! +//! The WAVs are embedded in the binary (`include_bytes!`) so a deployed single +//! binary is self-contained — no asset directory to ship alongside it. On first +//! use each sound is written once to a temp file, then played fire-and-forget +//! via `pw-play` (PipeWire-native; falls back to `paplay`/`aplay`). Playback runs +//! on a detached thread that waits on the child, so it never blocks the UI and +//! never leaves a zombie. Any failure (no player, no audio) is silent by design — +//! a missing chime should never disrupt a call. + +use std::collections::HashMap; +use std::path::{Path, PathBuf}; +use std::process::{Command, Stdio}; +use std::sync::{Mutex, OnceLock}; + +/// A notification event with a distinct chime. +#[derive(Clone, Copy, PartialEq, Eq, Hash)] +pub enum Sound { + /// You joined a room. + SelfJoin, + /// Another participant joined. + PeerJoin, + /// A participant left. + PeerLeave, +} + +impl Sound { + /// Embedded WAV bytes for this sound. + fn bytes(self) -> &'static [u8] { + match self { + Sound::SelfJoin => include_bytes!("../assets/sounds/self-join.wav"), + Sound::PeerJoin => include_bytes!("../assets/sounds/peer-join.wav"), + Sound::PeerLeave => include_bytes!("../assets/sounds/peer-leave.wav"), + } + } + + /// Stable file stem for the cached temp file. + fn name(self) -> &'static str { + match self { + Sound::SelfJoin => "self-join", + Sound::PeerJoin => "peer-join", + Sound::PeerLeave => "peer-leave", + } + } +} + +/// Play a notification chime, fire-and-forget. Never blocks; never errors out. +pub fn play(sound: Sound) { + let Some(path) = cached_path(sound) else { + return; + }; + std::thread::spawn(move || spawn_player(&path)); +} + +/// Materialize the embedded WAV to a temp file the first time it's needed and +/// cache the path. Returns `None` only if the file can't be written. +fn cached_path(sound: Sound) -> Option { + static CACHE: OnceLock>> = OnceLock::new(); + let cache = CACHE.get_or_init(|| Mutex::new(HashMap::new())); + + let mut guard = cache.lock().unwrap(); + if let Some(path) = guard.get(sound.name()) { + return Some(path.clone()); + } + let path = std::env::temp_dir().join(format!("peerspeak-{}.wav", sound.name())); + if std::fs::write(&path, sound.bytes()).is_err() { + return None; + } + guard.insert(sound.name(), path.clone()); + Some(path) +} + +/// Try each available player in turn, waiting on the first that starts (which +/// reaps the child). Runs on a detached thread, so the wait is harmless. +fn spawn_player(path: &Path) { + for player in ["pw-play", "paplay", "aplay"] { + let started = Command::new(player) + .arg(path) + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .status(); + // `status()` errors only if the player binary isn't present; on a real + // playback error it still returns (non-zero), so a started player ends + // the loop either way — we don't want to double-play through fallbacks. + if started.is_ok() { + return; + } + } +}