From d08cd9dbee72c1e78d814232b9d53d5fb54d8cf8 Mon Sep 17 00:00:00 2001 From: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Date: Sat, 28 Mar 2026 04:42:49 -0400 Subject: [PATCH] Replaces the Space Suit stat panel entry (#95463) ## About The Pull Request When you put on a space suit, it gives you stat panel entries for whether the thermal regulator is on, and the charge in the cell. This replaces it with the already-existing HUD element, and improves upon it. 1. Re-uses mod's "very low" icon for the HUD, now "max" charge is 100-60%, "mid" is 60-40%, "low" is 40-20% and under that is "very low" 2. The icon now displays "OFF" when the thermal regulator isn't running 3. You can click on the HUD element to turn the thermal regulator on 4. You can hover over the HUD element to see the exact percentage your space suit is at https://github.com/user-attachments/assets/3a6cc33d-25d1-479d-99d5-f8160316c230 Maybe in the future we could remove the action button as well if the HUD element is preferable, as we already seem to have an excess amount of action buttons. Alternatively we can remove the HUD element entirely and move the behaviour to the action button, like what we did with the internals HUD. I'll leave that up to future discussion though I lean more on it being a HUD element. ## Why It's Good For The Game Helps me kill the stat panel as part of https://hackmd.io/443_dE5lRWeEAp9bjGcKYw?view Space suits is one of the larger parts of this issue as people are typically expected to wear a space suit, so I think it's pretty important we get this one done sooner rather than later. Same as my other recent PRs, this one is also a complement of https://github.com/tgstation/tgstation/pull/95383 ## Changelog :cl: qol: The stat panel entry for space suits has been replaced with the HUD element. You can now hover over it to see exact cell percentage, and click it to turn the regulator on, while it'll also display when it's off. /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- code/__DEFINES/clothing.dm | 9 +++ code/_onclick/hud/hud.dm | 4 +- code/_onclick/hud/human.dm | 4 +- code/_onclick/hud/screen_objects.dm | 57 ++++++++++++++++ .../clothing/spacesuits/_spacesuits.dm | 62 ++++++++---------- code/modules/mob/living/carbon/carbon.dm | 3 - code/modules/mod/mod_control.dm | 8 +-- code/modules/mod/mod_core.dm | 38 +++++------ icons/hud/screen_gen.dmi | Bin 114129 -> 114408 bytes 9 files changed, 122 insertions(+), 63 deletions(-) diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm index 805d3eccb38..264f07c92fd 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/clothing.dm @@ -68,3 +68,12 @@ #define GMESSENGER "Grey Messenger Bag" /// Backpack type: Leather satchel #define LSATCHEL "Leather Satchel" + +//Defines for space suits. The respective define is also an icon. +#define SPACESUIT_NO_ICON "none" +#define SPACESUIT_CELL_MISSING "missing" +#define SPACESUIT_CELL_EMPTY "empty" +#define SPACESUIT_CELL_HIGH "high" +#define SPACESUIT_CELL_MID "mid" +#define SPACESUIT_CELL_LOW "low" +#define SPACESUIT_CELL_VERY_LOW "very_low" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 6af2635972b..0f722a1bc11 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/healths var/atom/movable/screen/stamina var/atom/movable/screen/healthdoll/healthdoll - var/atom/movable/screen/spacesuit + var/atom/movable/screen/spacesuit/spacesuit_hud var/atom/movable/screen/hunger/hunger /// Subtypes can override this to force a specific UI style @@ -245,7 +245,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( healths = null stamina = null healthdoll = null - spacesuit = null + spacesuit_hud = null hunger = null alien_plasma_display = null alien_queen_finder = null diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index a4a69508a85..4e6ef6f0e2b 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -291,8 +291,8 @@ sleep_icon.icon = ui_style sleep_icon.screen_loc = ui_above_throw - spacesuit = new /atom/movable/screen/spacesuit(null, src) - infodisplay += spacesuit + spacesuit_hud = new /atom/movable/screen/spacesuit(null, src) + infodisplay += spacesuit_hud healths = new /atom/movable/screen/healths(null, src) infodisplay += healths diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 250219e8740..2514376f911 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -407,6 +407,63 @@ name = "Space suit cell status" icon_state = "spacesuit_0" screen_loc = ui_spacesuit + mouse_over_pointer = MOUSE_HAND_POINTER + ///The overlay added on top of the HUD when the thermal regulator is off. + var/static/mutable_appearance/off_overlay = mutable_appearance('icons/hud/screen_gen.dmi', "off") + ///Boolean on whether a mouse is being hovered over us right now. + var/hovering = FALSE + ///Boolean on whether or not the space suit's thermal mode is on. Start at TRUE so we auto-update when we are first equipped. + var/cached_thermal_on = TRUE + +/atom/movable/screen/spacesuit/Click(location, control, params) + if(usr != get_mob()) + return + . = ..() + var/mob/living/carbon/human/wearer = hud?.mymob + astype(wearer.wear_suit, /obj/item/clothing/suit/space)?.toggle_spacesuit(wearer, manual_toggle = TRUE) + +/atom/movable/screen/spacesuit/MouseEntered(location,control,params) + if(usr != get_mob()) + return + . = ..() + hovering = TRUE + var/mob/living/carbon/human/wearer = hud?.mymob + astype(wearer.wear_suit, /obj/item/clothing/suit/space)?.update_hud_icon(usr) + +/atom/movable/screen/spacesuit/MouseExited(location, control, params) + if(usr != get_mob()) + return + . = ..() + hovering = FALSE + var/mob/living/carbon/human/wearer = hud?.mymob + astype(wearer.wear_suit, /obj/item/clothing/suit/space)?.update_hud_icon(usr) + +/atom/movable/screen/spacesuit/proc/update_spacesuit_hud_icon(cell_state, cell_percent, thermal_on = TRUE) + if(cell_state) + switch(cell_state) + if(SPACESUIT_NO_ICON) + icon_state = null + maptext = null + cached_thermal_on = TRUE //for next use + update_appearance(UPDATE_ICON) + return + if(SPACESUIT_CELL_MISSING, SPACESUIT_CELL_EMPTY) + icon_state = "spacesuit_[cell_state]" + maptext = null + else + icon_state = "spacesuit_[cell_state]" + if(cell_percent && hovering) + maptext = MAPTEXT("
0Orvc`@>9syPg!Em`*&;63C3$b9Te>Tn;$2==HV=v{0}v$#S-C$W18`== zG&9hcu*1?|aj~O)=+s+0yq@NaqN#mYSblx`^L+T11Lz%%rQ-XQW0?zbqp9#ZQlagb zw^@mfaN`(hA~}!!6uO4ctZdxU&R3Z0%G0OGgWf6_w3-^8W2972@X*Sn4UJL%c%O!? zQ0P=XC?buw%8N8ex7k3F#KfH1!ebHingMv4S1HeRfHWPYCu84rW_h&A0HSWBTyg9> zORr;zlOd9xzeHl^KU#%$gNaP<)m196VjgZr%gM;h^I&%ZRd%O2lsCK76(`>c$=I}> zsM{Ja 4zMx?1U`37_(ZNzUf;k#CMal~ zHs`w)*IR_jeYYGbYhlp4q(4^|K1UfM5JlD1ipn(dhT>MALAh-^x4GYPIUVm+b|&_- za!Cn$d--~phX8Cj%N{fj#?v=YV0HzvYI prH6yKY%`D{cff%oU%DsLXxNKc0vP%<~1@;Rwo88j}}|K z*~VjwK Q!rZgpN2QM-MN%7^E;47 zZ>G*(sZ1r|^FWpH@*r#Q6;p^t!fFQ}HIF(`gX+W;p$mcAe)>vmuZ-n^N&*KGzyD_t zhn0uay}}3dif{p7ST#r`de+fH2GC-OshQapsNI~tJ!7P+2-n)R8ybSgm4S|lmvM-s z?li+4=Q^OI>gh=BGAGPMK8U=g_;})3%tiCua|W6Agq1OF`Nyfl!^5653c=~eD;9AH ziT)8Jx?p|XT`Sn={CNQMpjggGOB19sQbtBbF~68rF~QQnAnGWe;)%R{mHxZ#d;o#O zFI?z5!1*9mY2~Xr9VzqC &U!xxkiM*8|`G27xAdkO?V)Pfj% zS1W(tSUJWb4^&(hAjpEuO$Lsbfim|CeSmaY7&yG$X8`Ff)NXY27B} sQOuvqtc%vH&OTS9HvF~Lx{GnE(|Onj%xAr!@4dn- zp*7rzPpPk{!RC86Gq!rtHr5nX!_6LGXl_$&< uM#0JNYv Q zI=?Fbyv%`=H2w1Md24GcBm-&}${#kU3q&wbOPS0t|2tOAp ZG`;V3b^0s15Y*$@D@yf}zb%vnYG@d|(i z4pU^TuKtoPS1C(&@ZK+v8a(MS5~Zio9R!IbpRSpo8S}vwfJf=o20hoE2ZJ4clj*X6 z&T63gybro$ 5eY&>>f*foeB+ER(EpB3l0w6gf>!WSG^w@oE!dFPot8yfNr!W z@2n|;QmGuGq4>P|?$QOmWl*rggSe*HDn#v*Vo*R+Od3|{I88@-wU-BT0JqbfUg0{H zTRHBl4KO8ScT6N~WO%r*t1A_V%@#M_I)Hj~pL(@l!OVj>>yD8yGlYzdvjAgigQxPw z0|@5yxdusKgsl(o0{7yIsEbAPwFq 1EXwhaO=%=nR)T#b)Xz<${zprn7pv`^+tKA85=A z1e+gWr9UeLl}jgQCGVv!kX5<#VbQUAz4iRodYdGjcj&3^1^(rwrmE_JHI60j8~A!s zA-xn};SjY4ii(b;G7rBoY~e6^^a{x));tsRczL)S@cm{aT|*TcG}eI2%^eSwLen`R zg#TSSIxHK5Vh2URA#gQVitEzpn>|3qWC3_H0#NGie0B)T-qx^F(ZaA(djCsMBp=HY z^&u@+;s9)8=mn|UR8wO;M30a7cy0i}aM=&}+1c5>2c&c|q&;G&fFd02?YjUxT=Cts zuiKqXpo8rW^cN|x-I{!Si%d6zMb+ZSSXw==%T hVA-Lx?4 z9a^aW5cJGY7)MzXVQgJ0VCzzvA1T6fCs1$xT;ZA+h`EP)#lXOD#_&WY;y@}v+P {$}7{&NgtUO zxMk)C;nn7%Tn;XEx;=& kw?OBW%9&mxgw1f4Eds+=@i2FYR^mb*;pUhuoA$ zPGqrjEN6EOPhE1}T*mmk=L((GMFl2r+8~t8Dg%y@YKn{3oTuJh7v%KPLWv8zIHDb* zKCg(WnMbBDjVxi1=QNHnK)_R;CkBt6;keCy%m<4L(nh(4)v&d@9pXkurFf3KJ0)f! z>|mf7X&D)_{mH5ORTGazWQudhg%h{G_$@NQQRF{c$Zp#_>O%GRTr}3sI}GgtVOjrd zb6#YvM0bW!*5+o8$@_GM74WC>Ut*pM{p#0ZMcgtQR*`XWB;C0Jm5ZqcvzjODHfRKk zN^*EnKW?zQHam5OT|dsm(4vPb(5O&ncy?7xlH*K{(88CiOSq$6o8Op1wRZZdIL~hT z6oxjQj|k=p;)g9bS4(nI$6NF7Qvgv3X54y_CcIL&7D@gc-;dasJy5nEIFFIzTqPgl z=D~GY#zleY3%i%0uaT*`m!}1HF9&sI%5*YE96HH&e=`^{;<%e;^BFO+o=` jKlgLp(i>hFm+0&0=&_g zN56jeKFx6NF}I%{+XIVJYR^U|MRwibm0G{v{M!94YDE4fEFHw}1CO0APVN}>!{3u( zxrI3W{ocCA6DV3xwv!160vK9?c6AI^JjBtbs5(HA^-FUmu^Eb6mL9t{;uSo&6jZzn z-}HdUn+(tG^hMyAggIZk-T*eHkK|Xc?b$z )D|Dc!I_E*%^^cf|&Wb!5`E5 z@gYw{SDk85c2_2%iOo-Y(?sRC&O`kzrU){F>I(G4tKW7+VDnHtj}qenhTTIf$E;s# zp?XBLs?K!Zsr2WeifTziPYjkSsEx7uVrp8EFo%c%^p1Y)vQ03TtNtamjz31Xo~-qq zdGmRq8QF_0RI+MA1}Y7$r{qg2h=zJx5u8Iwk2+MlKAv5mCX(78XQ5JlIq)4*rXmt9 z3C=;(dLBjc+H@ KQq9x4u;@yJQFFmAH&*z|cKm1rBj`H~<$A<~QEDwC08CVrs zDyh4D>HS4X_+vHlp-Fl-xhb*~i@8K5=nwop!hO8=%>Y?+VYTPmKR=M%V-*w&?k9EK z;HHIHf3j&vJ~88A >~leMj5a0u`os zv4^g-t@ss<$kbLldc;cSRBh^+om39lHP_MM)(oc##oWx;UoWgx{lJK2>d-KRym?Bq zki2qw)Ge{b@%lsRkLvjV^3Vf9@g?P>YDCtc$xGCy)$kIVe%rYRUbPodq^YU1e5)dL zS!`A)pZ#rYkXkej&lH^@IMdC7*WW~S+YywwkG+H6=gn*uP+>XT3WL2_YZeoj-TIhC zlHP7cW7&-eijU1#$U(`{%KT8V@MkIF*Qd(2)!u@3(u}CPtS<1djq|S&-O1UWXos=2 z1pcrc;cvD4q6#T;XBOpBx((3|sGX5Q+>%^M?~d>VBi %tnNe5 tZ~pm>k*{%*hcgS@QV{RO<$`)Rs@IHPzVIB}VBoTPrg1li}cYO5X8^)WW;b z&O5O@7#0p}QFK4VhjtpOl&{?xOSwxR_@v3-e3oi9coSt>Z_lML+kzR9d}VsVhi?EQ z=5y7RDl6=pZ-+S4ud}%?OU|J&`1>u3#p pDFUoz6k9`IMfV|^Z1n;l?@?f`4 zc($$|zY JM8;e7Ly;8HfI4<6-nJ*>T1lr8TkGresn}q{J z7}dIy>*an@51BE=t-2uT&MmU*^}?3=_-@uD^P2hu`P=M}CMfHs*z#yK@wrd)mbO%G zjt6RN+d}B}@z~^v&N4!V*iJy+zPan0^&H(Klna~hQK2LqLY%i(E>rW>IUl^ &vy5_P z^X0caoA}`>OYY->gwk)m0v1uQhEYE~WD2wqRVeoMaQZ#~T-Iazr*ENBW2JkBJX01} zZ+S|0j=Z~!U2t8u`ZC7B1nvlzyu^H{npI2p((kxZ<2YgXK}lsbkJ$_QXq4JAo!nJB zn=2Jm8Nw9`3NYsqrkf`+#Lh0#Z66X7R%LK=9@|#at&Afo!pEavFJpzzE<$v(hhRsZ z@3+qabiK5`z7D_jU0AK@IBoE=R!y0u#%Ndhktmq@k3WwKU3BBiwDsUg-50?_4AWPD z$;gAOirZoObHXi1ZXTXa+2kjHTyqER XMv(@b=O3bb5 z3+XQOK20mti$SWo*YTRXN%I76Mt6-gi}(j!=U5!|3}@Thyb~5nbii%TE^$OejU9~q z@V!1s_|W?EdJ3^HLeck`dm|_feJg~4Pz<3`@k)fIe3Q#2QKHN1{jv55dT`1+Q!~>7 zi
~`G=taJC6;5;jG~MsjbNEpa=6SP>IwvBIR>u3dY{j62K<87{GUq=?j0TD zzWHqL;EYT-1Kqg{s`h6X=^bZy)}^|SiJ?oURTN_;0eiU@^=ng|2gORwQWO>9s6{Y2 z5N&3gP-h`JwKW;NH0-Ns z(C5w~<6fB%>Xj|WYI(nZtuy>}ThGMIZG&*ThSjNNtTfpyM$Tl*t~4}-YT6GDN`O(< zt759QUv>VnnMXR2a~jMNgVuF5Lk;$VULW iV@ihhvAgm=%Os;HW(6_8-@P%oc?* z`5^c=0XN&PX5X0<-WZE)GhY$zxa}W0Mkvy&0(R@#X@ir+_b9esqa h(Z#z}1U=lU&wVjt>h4|0<*v&LnbT*hxyVW- z{W(#x&|oOu8+tnD^@2OnM7C<&ft&pux~uJ0W_NVqbFZ&=7tbp&i*v}`k!s9C0Qum8 z8QRElOr2~_iKT9TZq|MgC9c+bB5L!A)?VRK|N zK|xHXzlwmrf7MvTz_wL;t5ns3w*5KX!6NCRzRRN5%hgJ`>N-Qj;XeE);{Bq{N;zV$ z5!@_W#BsQ$D;^Pyx;Ik^-Arn&z~ni+rBSa*z8CLJ4Mx6-n^A`w|4e%FF*)_-gM#&( z{jTA{0mcSf eA^FKGB&yWHU(Zl25&Kix>l>@->J%w} z08}$U=`OE}xt{3GY#0`M-Hq2*@ClSF@4ldS;!W>IKS<2`>1w5z%$ipCeQ&Jx7>>pL z>W {u22EcAhbYQq#tF_|NcpVWwq}=EV<76&2CWC`+Ua{N7n$?B z-09C1b>LMamR}c_5RVo%$`OCWt43n|HQ5r4<$I|ViqvE2Lf(5%a`l9Tlp6#d#LEf4 zwOalV=ji+8V%o2*j+hzNZtDwYp$EJf8X4klyE^RC3FzEBX_e5D1->HMkEdSZ1_76- z!fqeheRgMe$waaBW~j0I7rdYW=BHc&_JcN z^9GiorJGFW+aN&I=_OjTIB8 z^iDT-QV4#_&;Mz~7GU}+&{ES>SIaT{C!c0K{~0+8Umt%6&j@;NxzZ+zQL S!1ci4$36pigLJ0s48W{0A6>G5f5>rhcc^Z6*g${ zc9GV)4?7y)43CgrDNZC!B_HlXE4P ;`C0+(^2c$)gR_>zXL3KhkNvoj`-D+ zYB%3tHJGcl!_`p$7gCyF6XB4Yq^Dhr*|Cobf`Fcz!{9!Bxi_3hY~|H7+t3Fl6x&c! z6wzbUr4j71y4KCursMtv+vb!cxS%Gz83u+=&j9DqKYQ47rmw85LO#>eUfU@o%2|Qx zhQ28O=06Z!kiv9`;hHwMG)48>`A`Mjs(APBH9Q{*k^7Ai2xJXPu;7a1A5Yxk_fSb& zxHxtK=o9*QJ@8q~hxS^!wjc1uGfnbU(yM =S}>tN0&P%#dAl& z&Rh(>5^OAF0Zz!u$bcFzLkZ1Ou^bezeMg7dsZL4gdgxvo4A&UdC-#p1{}_mV@sq$5 z(^-tjD)1;!ft{ (7DMf*f6@Hm17 zto*{@rTnST4J?`727_|)9xJV;{LcGUkYn82=rxdgJldsl2@hbSj&2900?lMgx!Bv6 z++#gN_m#`8T&H>7acRktO4{MJe3D$BsXrxPU7GnUk3aXDzw=b}-DBVM%x$Z1J0W_{ zU}!#cth9?-GV9MhXCa~c;}82&+7(emCnKx=lwXQFN>k?;rCu{z5=L+wMbeTV1-NV{ zkxMFZkZCBH;+G9i6?mRZQC~INVwMs92l`5}o%C2j8QyR8TAjkXP?>F2?EClhA6m{s z??NbUPPd~9NILGz8-gy$HL?V1u@0Zxg?Ickk37wpaX3`bfVD|_u#3^4lxvh%ZNz&2 zC7!V%?@zI?+fklRa_UcAXSYUe))~V85oB3gLY6JX?u+B>mw*_w7^tp0`|X*g@O4zH z4suu-?&FQv*hRhnF7j+Ueg!V}U1s_NA!qrMu2x>R$W1x0POKE;<8e%oxd!D}9r}qK zpWoIGkhp_>vuIb>gBbqYIxFRJR%aQJEi$&v>AQRPKiIv(-d8-ceGuxcRgBgNOOC6x zUmMV+A@bsNhunP@rm;M8NaU)VPM*OKIUDU@(X3Kc+IM^E=7OBE6(=UgS*NZ{G@eOo zQA)GrXU~|tKCwLx`XjK6sv-wom|9&z;^T1oqROa3!>5|O7OnTaN8rM1YkFTFMBT%; zqvf8%qcL4u)~H!3Rg0W6dFTgP?$?^$iDnK)qQO&EesNRctlo(b3ADhPeT=SQsCaLn zS-jv1``4A39qHb&b5S)mPt}L MbA2igfBqN6+o4mL|Nd z%Tm3c+vm+#?ctU76bIh>cv}3l8`C0|pJ1IPPt5AKL(_65TVBJB0GUn&1WkUaqE&5+ z1vkc^`Sg@kD`hl(2h5n;gx=S!aD{w2zL~>)+ Sk}FDuz&V z`6uYu1Qk-Ew`?v$HUV6J(eM+xB4ePM{x!aaEyyQ-_#U{FdSZ`XrjHR$#NJ*NVH8h5 z6d5*1y=bb2-rLZ&!$~BN>ev|U@8e)$3?M~S`n@Xy1nlpKHa#e2?2c@p#a~n=p?Dy5 z*dB1gsm_$+3VX#p!=VGe|AXXr&S*NQ9nC8txgM6gCTmMvD$p0XYJzN?`r#*_XRr zJ;Usz<1P*^Zh?AndDd-ee>L#(4p0m~Za%t;PJ2tzls`$Q6yGmXZ-&BJ)%S=F8wvvj z?>h(xx;^~6re4W$X2cG*hf?r5I5-)1jg78NfI10u6;WL&4U^41_TSnbe<=hu%;o9$ zE+HWix;t`}ADuXlcSineKLs!*;G4rE690Riq+31%{cp5QxZ6I%r^a#p>nwYgU})A{ zG2=atQLk>>ePA#eH=1=mJz~AAnY~^pWvA}YLaCv58yku4E`g$yp{?nE>~P~c1Kf b&raeojM-(Y;y z7xbySM}8keNm$x#U*!Sh_@)=`w}vq?*rO8Loj4s@wgYu{fwA?~jgh|!?W4VOag_ho z4XL7im4&zO9Tt#@{pBdIZ-n|>`5V$hP! e;DFbU3o^d=?z1U#+SAo(oU# zB5%g#Hs!*jynN%a2K%P#SK0%6M2%!)HB!#vYdhY?aUNI~0%u=)(N;u_j$Y8N)pfZ9 zsY_iY?dOjCC`Wx3$mF{XNCl`J99`}3a3>hvPyPw(3YRB%L9)({`ZgNukgEFRD28vS z+9xV-yXYoe@t{cUUUtsA?T^LGsKbpTR&IT|aWNifF4rr-S6BR6n-WQyIwL1Stadl& z*I>rV;&aryy xVhsG*4KVt9lx3~3*hQq8u$t(?nm(nVMyu;w5kape z)M4{!j>^gFLJWW-GrPf(<7{G|VOFTXA!vDW*;L- K4N7oBxzz=IAOqvesG0m){2m=8JJYV9r3SLm8SI!7L?CNHzD zu$JrejLs8 k~y-VK_`~(VaTWp?d@m}0gr}EDE z2UHz5DwDE0AS6D8k0>bV6Xkpv`Mb_>9~KLOJ2`G`<- 8h%2j6}r2QyQJ( zF}b%gau?Y3x=`vR^6oP}%@d*N-mPWd$o*d3q)%>GofWIgV4}ZK0 gsk>DRy^a*$w n{-}NgkH@97faTH= zWMsH*QM0wpQWzG~10+#6^~d#wbCW}lwGDobg8Fjy W5lxf>FfeKTrMz56}u z23o`9rM7rV-lx}~2wYw5rU_oWTqKMas)J7UB}23_H>Oo8eliScU5I-tbO)-HyUPph z?_H!|A%gqG|F}+;?CMNXKK2>Pe#4(S!{!?Nk+k^h 2WU&~HxjLPT>T=sct&{S-I!kTscbMANtE?|Y^~@Tc12#1L{X*& zC9Z|d48v#-!ci_zn1?IAI+$}$B}s~HnArrxrH{EgnmH!55~aivTx^z*;pt-~IOLak zgyj%IOjG*;2?r$V$7w3w*gW zp%ASPCCi>Z5@l1*-orTt;S~1N*4H+-u0R(A?DI*O*P~eHA^0%>Ed%747|Ka+AbkFz z6X2U)h+J+Q2|3$hvyHv)tv+ F8b?XJG%Y z#VY!_PtSq)p?~(&3;o~~bddcF{ea;R>;J;w|I4x${qFybrT;R-C8pXRb)FZ#|1bOQ ztP%Wa1)Lw~ iZ=yTIkbWGRjb-) zdVa&{{TaF_A~bX!+v9xDPheiXjdFy()dL9Z$sS|aRa|O7ua0au9olnRFS;hooYw5J zO}5=(p`V$nNfCJb^k!)t0kAGu$g_xY+gIlA`#Kkz8%lUPbO~?(po*fL@b+s=6_jCD zEZ_ S{e*ozkwY53U}ebRd_fg`KS`TIjQ4l!Le0yzS~Hz z@Ug8V)%PLTGx|}1P?yzs0|}dmWrLj_iW;ldZ%*ir`o22iOK$d8FlZ1ga*eF0B*?7Z zu>|J MJAYWv-8bgzORD{xsuiL@(SnrYqKf=t}`rkN{^5$G3$<*UZ zfl!}}AGP4UHzo1~&>^hQnfI#X9rY!-{|^!5-~*Dq`FiKq^aIYly>Sdhezcu%18qd> z^Qv~~HZj6{4i$io(ImZb9SO{f6&hB(g(K$Bqg+^Y&-V4Ar#i1=;9t+NQ!L*XqUiux zPEgFQBUo*Jc+U+u+l=5V*}E{~d(9QC^&)at#Np56F1N9As~oz*XD4B58!Ph_bhu~f zTz9{nB(+*N$MA~7)O;bf*1~pZ8KF{_7KIHL4|RqpLB0p`=DcdDGaBXRrdkGISZPdc zrZUT|FD@J*N=MOT?w)Sx(+E)&Bi`~- 4@b8 z _{ZVUNjk_dY##EjIvW0doKsHL7vUR;y@A)( zTOXOHEWCPM+6hns&js{H9o*G (>4NS^p#=*r8g|Y{rAy_ zI ZTo}OGCf<6b04r<1^|m ze-{C}0{#*~|CPfp-!_+GPwmNr8ROR@2w85l4($&Iy^C SG)f}ja{0Muilz2zzGa62n@*P61XLikItj -8J6AKA zdp^46v5%8d1AkT(k=%hFiH)7DB3k`ZH)ckmT_Zl~j+grk !VuA|MUR`W?V6^Zl^CaABZw zNMj9S2l3i_bW-zsWwesuF#E-_lLnSksY{gfSu)}bDAW Na~jJwVi#xf4t4`-g})T z&y8uRN_h418Hlpx_LU;a5_GZcGVAzl${Hzt{t77JyFGLyeQL)eN3c}iuf7L$+>XG> z2P?6)h^SqWg$l7)&qco91Bfr_4cP1(C%=+2zXyQfRC_pjQcU8ud*aL7JTXXa0YEi! z%2DR6KeOHnnL%mEYJ{MFd?ans{uLZ``GZi !0)~k!8epl$_c?v4I2si){4o_8`#- zdW6piyVd%mfEh>IX2&;=cxBz*9yRVQlJ+nuZYsobx)~=1BXp|+K#V&wFCeJbU*_iN zL(B&jiyUbe^K-Q5FKURi>)&;7@cfkfU%N19gCm9VwjI^Nmmu>Rc)cDb-~zXWpZq20 z({6Xn=gioe!qv~iJbsJzn{hMOJ!L-BMYM3yObRJ$od*^$q4IN~g?UfbB%um59}A19 za`@c~t~96s>|&I-csCavcI1sZG7R3fNcFnKqnV0Q50>AzR)e5< W%J_tO}D-P4+@ zDD_Es_c@=&iD03dkai8E9c!l;s_`WSF19gJfW6?8d*fFQx5(T8GDd00`8 c 7(O>Y}=5tH^Jf!obXZMS_PRQyvTa! zfK48bj(z}wAkdcBsJp@@Gx%F&$AzhtzR^P8rWi A|CQ0l*Jv rv$ z Iyn^(ecD#mDwmOmsvxZviWeABGx8TLAcX27BBBc! 1?V_&`I zIF&rG<95sWuTIh;MZ75&S2>jc)TNly?qf{0Qb=iIQ;1jCTqw_mRtk(&&eGm%&?*>3 zI^Lyko8V4<3xgZLJ)WidOx(KZq4reQh3<+8&N1C*zlTs}^rEA*@a`7J;R2$|BVQiK znHX|y1sjabrQN5`N98oIhE^B}g+a(wyRrR!9PE)_cFj(C3nLzl(w@Ls&anuf{7@sT z*XX-%Vgf(H;L=jM&uovLk7*A?4pLZ)lrJQ(;w7wt3rH@q7R1M}a2gV2`Xtf&fMSu&zMP!g;r?F1z3w`SjG#<8|KRk+^UQU!K7>Q)A%QmWz(HD0&kO_kQ?f0V5n?w(1ZsN;Q*X^^eR~1ltKfqXT>!H zE4z#qu`O3`ge2WXayC!efArGopv*22>3(Z)Vw)R9c3ey$O{%zXaVS&!jnds$B;9wd zgmb=~`hXT0Pnnd;=nVnFaPM6L8hIVLH5sOT^W`csz%3=vbdYAJyfek|;taXdbev{~ zfJU?2=n;{kj$RnsZ4V)NYJ^f&q#C3{hto;hu}`RQP->I_h4kj93{f-5>;0zp-0sm| z?1E7jcGm=Wx4etF1DCbs=Y%;?QJ#sQR}1;0B%O4n?!?#!M2>a^t(armqF|37w2p|q zf%3oRXc3Z1Ui->Xk~VCbLotDN7UbZ>1+wcv60)$}GYCn&ZnY96V$CP!!e22 LsfqTM3`Vx)W2ZSt67iZj~<^(88&_UmZL}<2@qs)fVT< zAFWQYwIWVqv)>^nPDaP%s FFGJ}5sVkcpbf9~Aefxn32@V+ z!TOI_VKvll-UI4&b<@_9Nr*@Oa~B_+t%{*+f+eEHWh7MhVzap!yj| R~_HItWj-n<6j# zBk>cTT3L1B7(YB?mIOS>yENj*n2N7jg@h*)_YUX-s0Qqi( 4w`c?CHAwJ`-I-~mA0x)vEYWb)kkQGYwd^2Uw_QdbQ0m_ z0 Qb<3ZQjzQrm-_}1dG7d@*~>hCz`x#)HeZJZ8J!) zJ#PoOJ^XjK tkzT+__w|0Pc{v@(D6fsO*iGFBXi!p)`5toiVq; zP3@jLZ7504X6)D}cMIQVx 6OkQVNjoP?*4ON2H=}-v2}A3k`z||xSD$zu zJQ_lZ7J&DSHYh4S>O=Fsjepnb>3H9Xw3_EYk>iL$?tj}k_Rq(?7J>fxpU~9*k)`g~ zD={463{4!&@DU2W{-5%lAzXW&@kQdJda@aMGeftHjxzKPF|?c%Rt-1!9gD64e?xmT zykGUA0JygY-@v9c_V+gO4~F>(|9DOdlJuO8s{xE)f}1U%vBuR>69 JApn# {vb3xJnKLAdZd&QYcr z89R(TgKP%KB7RH!& tJ>{Uj;Ms24GtJ@*1T<54qQJX~H(l%>}5vSON^3RV(G_Qlw zwxCsb#VYEeGtLNPAkO1S4w6qZ{;25+w XJ^wyXFUd&B(w;&}9Ny|IM !*kSfY>pgMsOMk{jWcE-n5y@>ooddxW6#i4^#2|YW6QfGp L61SxW+8mQXQvrP*`=}ELC^k|ag z+g)sNiL`hvW PR)*4K|5^m&9eBAP>evWk98yR4?; zcS8V2zJsO5Ehj;xjL q+y^in-4Mj+|}PQ>a2_b^0?criLUr?C35)X{b{z8) &Q&_h2v!1~x@~X>1ntRyz>^&CRQ`NNWgs0ohe?6uN8L!v= z|0>r=Cr~^A)TzONkm39nNa3%>!%vgqB5l_Z0WZWof8c8tq=s%Hpi3j8Zf~zx r{^<+SENP3)=RBIDvuaK`mx7Z#a>fQ@o(qJzBza ( zXxXSUFmHpy+)mViOKl;c?S5t)Y}<)=dT!tAvS5wUV5H4v%Sn(4qv4@f7Ffk_0eW}Z zR$ a0w501q7<0H3a ;jVfFH^VUvY{3Q_W5J?$tODVkKcVS5`0%xn%lnPGWpl8>_h21eKmr7>TG2D*A D8T?*CMQ|8McX|C )FW)X>THvBlBC)-q4m zPrELaHD%ZH4XBhGT}~4YVW(1vUzqySyGl{Fp91=AZ^7Nh`s+`mC{c1C+_*o9Jp=wP zhb5BL1}vQEBh=Y&!T2V;zWd81o=<(_C${?DEUQx3{p_RQV~f4y(;1=GE&cmH8GD+h z|8C>Utqsjj_kgNP{;xq!p!%|v@9RG2KtI^z*e{BT|I<*kV?rY{y#3}v%xQS9_tmAi zic_hkPgf{5BBQ`VmO `oaSVAs4DY@3|L@1e z_IJlD6Mfs24W4npP=PUo{!1u_ze6g-I9+#kB@p`l#=Qc z2^i52MA1=Fi$*%^Z{Y=OpPL)3 sGC6#3l_) zF? r32(&n;`u13Y(c=mM*C!Inmog$>*Ds&wW!_1 z#3-apd+hZOY7361x*f3sBy#i0zd=H#(m*8g$~!qmCy$+iFs@07Ml{sa9;d>Za*T;E ze`appiIAH&5OFje#oEpP8Ol&$?I)St)&NyhP3^JgLB%t(%L*uYrb4DJWpkHcf1}o7 z&aV(uQd)h5Z75LF_{tn(2rHCUynO$$EnzS-uAK8({}dJBmtEo`0smDW55D{@>ij$Z z{ e`+?!K$mVu1SXnDTrcilbM&tXii8mSC-A?s zCC=PK{?X^OjRw&EK(dGxFYNx?-p;s&T;_5N=f0@!nx@ecCpzLpE4yrbNQjqW|9w>d zXvPjJ#EEprr@jBz4*`d#Iz(A@td#$;Z|BG!1mj~?{ljol|5PIVdj{mblLkxq 9%KTX8(ZC;yi;u%@7IP#`&-vftlLPWt;`2}}AX z^Dd+FriUB9;&Q>)?+;mX9!AFTfT&pCBi2rbZ?3G1i;Ho&pk<8F+qPq>hNztC>gw>@ zNlpogiF~e0+!yLl4_Wa&lC-t82bcY$+L~looOmYOZZ0TS_de^4{hkpHR$B!` +g7Zg&rR<*SOgOp8EJT0^|nnD;&T!e7eC$lPu4RsGI9p>jez-BCJ~;#|BP7l zzpKXrgcucx|L*)o`u`_?5B;xFfd7-A{+}1X;P3Z;WYnM(?7| uL z<>~1iBlBEvpk{B%VUypCj<774asM!Dc_{DPb19@xAA(lw?yRkcf&+)A?BByCdsBGL z-iVW~Tr)Wd18o>qZr0sbiOt|qZS @GIPDo`L#< z7IK0Z=N;b0akG3P)}sP;Ea}{fv!I`?=XdZIh#dDX4o !? zs=jf0>E|n%pUZ+paB-P4>XpSV3Qux+LVkD2(++=8dE#1D@Hpo@H#zqS!9DPsOdj)d z8WoyuY9?@APc`%N8D9DBFd-sHFM%r~j)PD|Yn#__Cnz&a xP{KsR({0EnJZxVdx-TJ*;S~oNJ)S=1ZZuW4!IS;wN z9bk`BcTpQ$6kpH9yiT?&Dm1^}FC$o*RIoe>U~zvF-1oybhm7zU9w-jtbl+W=5%V?q zt#>Y=Oo8KZ0E*sVWtEsjEkZ^{JK%@%SSEFGivz{={rz) 3YRjQhkAW_v{xG(poUCDYa(d-cz~Wy|>>= z{;L3plSSEAI!3dt8`^d1qusaLwUIEC?KAYBxkuyT=Kt{~=`6p(k6+}KpIHM_6( YxZJom!8ds^*K$z@dN4fmG=4LUO|Fi(DL@@r z$EIM*{wynW!s}IKdey>mZKiw0DjQVC*u5Opp`x$m{N&7%n1eE0?ehzr4YrqI4~Q1S zIA$0R$FTc0NVl0Z+_V-)z%yF8M$kX_bf^F$d3bWWL(r}>UUf-E&Jzl9GR5}9ZQ*;=`g?Pgb{3=GY8Gb99UUH*;cu9jKMuB*+u{<@!Yj4^BTDq~Yk zuY !Hr)o(Cj~Z z!CTxPyI|!PcDy?VYv5@ v%;CPe)rcfIm@d>WktnhZMyx>r(J#I zGO%iz=}=kmn&fj=R6m9$?!kB7;^o#+!_3y_*!L>|B%wS@?#R>UYs??f4|%$sYih)6 zUpBgH>5QEnNA2G+IEZ}tP70CMOj6REcTe3t@DUkTAdMm!m$oSjC-?y0mF+VLxc}}8 z{7u6AKkkJ7d#~wbJKFF!UDPAg&vw$9-ya1IpWD0eniU6$LT5rw!`shZ?44Z+q|ud- zvK;%hY-aG0q~xQ+cHJ9HG&vQ`+aHY!X8raqloIS>>NMTw_bvp=oWi<%3C&VP6;!W} zbGTfnFdZVgsHlvlTu*-P(zQKO!F>HoQxnv525H`lR;Qz<&i@*#EYaJ4+&PH)1%G#u zOL2{%;N-HLM|;0)rU-WepT=H}eGA7ui~FH8ilK z5N7S*P##Ja`)2?aYap Cly(&d5B}@fu-RaMY8T2pfL=?2&&1et`O1m^@kH}%A2mX4;}*pxXBqa zUWqu4B{njz>;)WL_$j&lTjEo-F5IiHj~oMOUii1}`^(r47w+Of&%0Yj -u==B1BBGrewcQ+t8#exiJyIp-qS_(@y3Lbxx6NC#o}8Z&&_a_ z%-k_Q7ozu-<#$MoxZfV7KH=*so<&>VgJz$=7}H?z!^^#;-iK yeTz zdd&1Fh+~RFNcSak{0OW`xr#Y6W9Lp##tv^_via`sZl=4=zbm4Xu09GlJahvsm@LP; zdgy}`ye ;5bss zd?IH1+k0&-NDh`WPP5d@1t;2*mb3*YCy?1}LLdz-TPaDQotvl<{7I?H_0->q;59## z7rp;kS>Eue%P`-0Vs^3=cTPK^`-Fq`JSI1axu%ty8#fiT<9BOcMZHfJbevPVMDdI! z&YfcDyqi{;lbL6WMiq_!i0Lmf>oxN`25!TOWE*7f{xTa)97{Dzrs%{*uHo}2h$cPv zrzL;ynsXqH-xFil^<+eKIbJ(yNYv$(*Xh)MVW(`4sHOv3dTafi!XaY7EkUuGqH_ z3V};7AcKQitknnIq$HCbtOa~PtllBB>~N_NW-3*guvc2HB>SllEpP6@Z&*%TIUf!7 z--xvquWAp@`z)?GVW0n@Hi!m_OPiT7*2aL|Z5r#lOa>a?WWqxZO(!~-r&fbFp1 G2s@k>?l~S>?;hd1Q>6zI J4{4;(!Ee#MaavZ)b$EPuHW!S3hjm!YDn#vxp`-LHhKeg8`^Hu#YM(ShHH zWBGUIO)juk`L>Pg`1dGNl^ZcnLP|Ht5^3UGd88tU2iJvbjqAdHv$zEo$2z}Vt1?ac z`htKB3cR7snfr`;!oRdiKJ?33jm^|zIr&dwsu+^3 4N zdBAi;Tqjz%LiwN3bW_<8f)|aK&fQd^^8ZNbn5nN~|9rihvy<65qMeUA>T7o4IUxTD zgzR6Du3=*jvDa}~dqcQBn>h4mCkN_-y`p|@vcFgO=d`|%{!G##EH-^;Fce0-y56Z8 zjy@T&A_}FUP1$~0k#vay<~xth-jNmhNYW!~{)0)n(o1{;Q|siTNLHi-nq++@fQi{p zC9kzv-|?9aoMvBJR?2ulL&g;=pe8ha1ofteFLrQ)ZrTw*%KensO;I=B1Ttac?i|rs z6THo~f~kuyFeZ8bXgh5bg>-qpH|Mf8T*NZ$NbWOD1phl;G8!%((V$gguQ#7US@< y~=k7@vIn8tJlpZpbV(l*o`Ov8ez< >6ZTJhENvKDmda1BK|go?HZC-v%&Emf^GO=U_|ysUcEN zKEkv_?%R4y;3);k4op*-ej_TH`%7~(ydDX(w8`=n`uOZE=u$l&*Wj`Pk*LQAhMM}D zxV|=BS{oT}@)E~3<>c6ff_Fa5etNhmH7T>Pd{k~k?|Rp1iR&Z?j=$s8G9e><4WaRH z{j&C5!>S68(d*9|oOxv}+LTXOypZq%(f#p$=*}H8bXEV0CX1}DN(1sJ8b#ZfnVIGX zweYsej}L+r%`R(+h}ez?E%zH=vIH0JrtNs)^mEn(<~uA_ub%t%V7$%&^{eB>j$LLo zCcpOiE23|&f5Do%{w*4~BOq?0A5eU>d4-3v q=lbdsK+O3tiuJ8SZ>m1ler;l4W+sZi z|1N39`c`N1E%WcFDo411@%1ocT*lgpaxak&%75j+ >|f-JVeEOd%|wlGV^{B;U0<*8oA?`Bp)n73;%eXbPD zjH0C?^#OJ;9YKFB&Dg(+RFT2Q@kvXnoP+TjkBPJ5oSbJTeTKx_`fO|u_e-1>Oi3GP z#~?k*dsaNk2VTSp*--u`=If`EZZ^8j@v*4nVIk0;9Fmv^Jp`LxuD#_~DgQ2(&-{<4*Do 0#aXgy5FL5eel~sLuV3oku= iMnZ@{@V>iqjrAIb_2VE&W)tr3zl+4~RwsV0BqCk52Om31vD3vabUs>R<@ ziFu_Cg{MRjY4O`HSKN7d)TgMSJw&_uy^@CpdkpR;3M3yv-<-MnAkyNL2mz9TyP5-N ziIA%Si!~Q)zzcU`dA3PX$UgaFST~hVQQ6yHXLb;w^@O?=an%t#YI-q(=@BvE67%gq z`?6}&y1Kdrz>3GOTkDd-+29aQ8E)-p#-)|K5gR}J27AJYXxvFDfOh83_rEQ@m!(DK zolMQb8+OlNFHdh+AxkUtrOseyzd_I)KO5{5r$0uF4}nnSAzJf0{wtD!ewk_V>OuMK zUt!17nfkT6IcPI`d=z!z$Fru-XV3N9uUxg|P|5vD@a`uE+f_%MhZmS0`CVxznyhnx z^inddKFn}7NkSj$uh4x~ +vQ^qmI8)`y}-&Lzq zv}HO AucGa_7uQGg`ChxZ=adwY_ct_Wm`xf4JTEH0N0U)$ z=7Tb_5xPNd`Z?fP=IivcWs)B3Yj^R_bZZc}L+P~w#*L0^`eE=MD= g^qPPCY3it 0FD$J4y_^LWFOtO cnc*yXl!7?B3VuBM64_YFxeDK=oNZQgg|0NkZ z!5E`K7!!P=!mSY5#z2C=+ N?;-R -Icc<@R>s<+=C!>0ntqL|>-K^~Q83^uFOI@_YGY*4m;<|&%vluM zrbUGc7W%e+&(ydsm9k|;xLXSJI~6k`{@Gh-l|gKpPmx`vKK@S8Qd7_GW5GI71lG6W z>uFtj_;ow2^A-Dp$Aq)(+XRvk ?kp9Zot+_i7m1LqgbHmXdj7h4v&A(nSLrGI zP9-Q2$aoW$OiscT<3yAL+aYdv5_S<7&$-wJ=(9n44u3`j-nbgMrav#(hQ`mPN&WIp zr2A{8B7cvCsfOd7FoxutroMelw@JLTiqAYAYDRl_$)$Uw#7QuGJL@#@z;0L+Q+)^M z9M^P^BphEEi$Yx9%`BQVOY3f@4F#u&7Zco8H^Lke)ezX)*?D{5ElAkxcuq7WR3kfr z#yR225vYF$1$ygd`5s(*GK-(*y@~|1aO9TsGOM@gf$cueN3?!qM+f&-s`TZ(<=(b= zhHHO{9*+d?eFIbfbjw~E*n=qoZ%j1n)m7;C81k?5aS}fKZA!t4x3^z#rJO4moKY+I zs#4?b>=vk|Orro@^~)uqqWKy2GUO9XXI;1g_y{zL^UgInsDhI42Mc4}N^aX_D`dw% z@;?==Kqx`ikhu-AUp!9&ETp6qHHJ3uvo4!A+|@>kN =tyamU;V#s1{cqH$h%7G>n_7JM?9Gqry2~Joq5aBjD sti)tqm0upuJ3vFIsc!u5_Vmhrx??yQfp 0% z9}m~;ti5ompwe1B)eA-wIvca}Gu_U&qkL`5f^=wka@8R`yu%rt+P#i+nH+X!n;iGh zT3B0Ja 1mvnlz!fC_*!hs%_szp2;v0fucE8qa$xv_F z2U8O#U=_#jJJeJ_v`bMrrJO35zASox#J;t?R%W#{R&EligR}8wtv?v{$$T~41NYr! zK9_?aQEniVGI`-q4tkg8R{V{+73m=?TRxmKrF-;HAcFk8@FzG}^;EiAp2kS`iT^yG zHU5I?>b*ZL2dlTP_|EAu#oZJo%Nv=Jwhu62AX`fv=_kr3RJf%+mam@bd-wfV5Ezbt zEb )cmSQdNwrmclE $ax8-t_qC4k8Gz)DtK)-sE9q8V@d)Db=#*>IYQEW}5R^3Dd zynA%Kw6*3+<(H-_33Pt?R J!cvMl4mIrgHx*ks}`6GJ%D >sR@71%c^{iQu*Ewn9zNkkIvED7%F$%r_nr8dwiQlN1j^)%PrcJnTP^5`DTfMg6 z1ln%vMG3zoo9gV6nF_`BI->`X$ZFZktvzRUk185LpXyvo1U-NiS=k=@%`UnJT4z6C zE+g!xmzbtT*`}; |zNiKQZw< z1vgAvg%ESga0_ps2j*mcD&~&LcG@89n;Qm$u0N} D$*S5*`tS#(XsW{v+_gwD*}kB;7Y>GZh%TI{A+A zQ301o_IB&>p>78H?x6lsSO4*2O3fCct9x@|vJ`i`=URh`k~1sNb+d_&_wyjg#z!Ze z=O+he>cz}l-p@IYZO@18=Q0r6!hG=_B;GCk0vs^GOX1;opTmq}S#1lq9`xeVO2hNG zNtWE_ `4Rx2+CCeyp6D+Wn=& zivDdm4L}4xfO7RiT<=Di?5u-qTA|JBwJ%AV>`Ql^6*TW}3zcdX#}A*u^2lP|Y8rr$ ztz7e+(XNIFVOF r@NG-*DJLbZ#87*6bv&MFtA8X3G++ zWFlaeYi5vg+fT&h-=Wr$`5ym}zAy`K3=ewkWl_WGLsC4x-2{|;w7nGqy}mDX#w~5A zG ~=pfpIk%&Oasr;(ZNAl&kvv}7TjUZ`@n}=9yTE2q=-fnF#STT>B^C! zwX@|Y(zP=MesTo$3B*9v{}Al# 6>KD0;r<|ZJHkj|p-f{@DhELPSr*#*; z{^2G=w5<~$zdIP;zx61Phqvt44tMxP&dlLu4PD*aph5b%5t||oLPCtSt! %GXGs?Mj|j(vtIp-A zCSmVc (ZW&X7# >K)%|a8CzDUq3q !YP@XKylw-;-_)m)By}2rAeQ0@$xZ zQwzKK+s4#u>kc76WKp6>G1XM^cNXYeKUeP$8H5-~;06cu^DTSd-#G?|fJ88lt%l`+ z$;oi4UKTqG$Id&^RhWDN>%i8y5x^dllnFY^52M*vFO%!E4Zn7Btljz5>~jqOOfXAC zUZ7 I+8d;1z;?12+-P3f&I(&MsBdI}X$g(KO`Kmp2h~&)IxlB@ zsY4llY;VB$evsb(xJt+ykQY&?i@KYJ9v;iuw#O}aSD4g0&Q(~4?m=Io+~m!cN-gUL z1s`QPZjnycL(l;WDF$o%jJYdA1>@Aa@SUU!ZkIMB5dT}ew-1}1sQ)^YlD`D*>zhS3 zuwK610WhQfpx3XJo11j6hB*@a z#h8fw^(Q&_&D1k)LIH(p&t@pNU;4ES|DagNax7pids VA)Y66ICP-qr#_V z7rqnR)p`goA8il%SqrxtugIDw(G{Q ufdEcHss#4tmkp6AfZL;o96Mh( +!yHhJ3ysqMuLR2Zb#tTHQK#wQ`1pO#bfooaWQWp=pwDG8&CkG5W9DpBH|$ zAsTK&3cA7#pP2IS^?1~5I&Gh?+3Yh@&|7JRW+yV7E@h>Y(?wTAOWEr*+FH}WStbV! zh0^WDg&zx<1NIvS@?V(lnE?IwhvdH70iLXAH2S*@js1e&rwbSMhU(y6w&)KNWpltY zb1mYqz(=^{dKWbF+$2pZeBheEIis2&zRDRo@(sH zS5rla_SMQDY@A0r$4K4o*1hikAP!yesqCA7b?IqeaPCn4J6nBv3SxuAAlLO#fMG?o zIA>2-Z!^Sqz1h-fBfRpd$()^gZbX#+Z~hxT9iLs-&qcE1?V)2d{+;D kwXe=BxHr63N@@JPCBKq z`$ojvX{VJFpH~Mzb^>_6Tb4hVB3R#$J&cmheb&;pe%p39Yf-cG4*=ar0@zg;Fy`-_ zU3aJMYU+4`s+=wv2%t#CF8?grKFUwQTbk&4Du8k{h>|Nh8E`u5xMOCR|KSI<77N_> zaVp0Mw(HjgJX+<$N!aSwPy**f>st8JgErl&`f$1W^K^xquFzvSC6$A8z0Ik%M$w@N zdBa3KL{)|R_EQf~rgV;KAn`{33xFLsUh_(S)*0?01xX+Mne%$Hl4E|F<}jDW$NmSg zUOe-a*XMM7)V)Bou-LJ9Ej7LwKB+rKdWL# eOFdU )ydT;CS z!In)x;poL;Be!HXnLekH{BT>)Yp2a2Ey;dj)x8#O4gkg~;9u+z{^LOS^Ql<_dBOh} zE@0JGdxP?>jGXR5S|`!gBh5YytrCdMOHwO6>$6G~Oi@#l8gKbwQ4Q2U>ghXO(OB55 zd&=?0f%@emIqM10gC@zz*B5#Mni*}@O5B)6iW_?~ 4ZIqv>Hg?2qDT%D^PA~LZmI8(+UgcgDYlrv z`F+Ou{*0!Lpd@3b)J$iFdVD ~WYNE9q z9q>eS3REhedrTy-768?dX(bwX_r7?ws;;^TKwL}#7UUx74J+&&Ey-E{Vi}AFH+^%u zKHQ~V0T5htK(V6-ba+_y-Q);983iDLo_@jNUB=DL&BYLTs|U4;SwMsAZGOp+6+YuK z!0^2p$N)_~*ga+m8UaKT%(snNPTC#KcO)mg4=YAz?<%Ip=MSRP=sJJr8V2<`{OYsT zV&=QPa)xSf;fKw>e^o{>%YjjOAs@FkmU>d8UkP&GP*;?31P3aNP0F)GlQN+o($-%@ zn^@y=0w*DjnBbgvsfd(4VRkj -E`lAki*f9D_%`heeuncz6C|w-Y{1&d3O YfFia6mf)z?x%NUh z-K~3 e4)s4%2obf)=qRVoXC-A}(7W3vts-lNVmE=u}- zmh3?=Z{-h=otB1Avz;CqrmbuBCa>~DajAx#9_x0=XK8&^7oQFUk<~eXuh^MzRkvEt zShcu3g1T1|9#ca$fS35{$>X*B#j#F8S2n6sLSYwaiAP9)z_Kc-#Sv)P;|M{gq@K$d zmBvc)@oF30UqnUFHsCgx7UIvj;D|x|HOm8}80@i)nu%R`Hi$H|s)La&DO~QL$Rrw# zpw0}drb@m|K}6}WUgbEaSQ?3I+JCpI#rMr7Fl~t+j^Vs?^I5Xde)smV?%3I@vWEOA z?6t^3)jK|}CRzi>!