From b64dd778da438307d040f0d3816245acf20d46fb Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Tue, 16 Oct 2018 21:29:23 +0100 Subject: [PATCH] Better Server INfo Gui --- modules/ExpGamingCore/Gui/control.lua | 18 ++++++++++++++++++ modules/ExpGamingCore/Gui/order_config.lua | 1 + modules/ExpGamingCore/Sync/control.lua | 2 +- modules/ExpGamingCore/Sync/src/gui.lua | 21 +++++++++++++-------- modules/ExpGamingCore/Sync/src/logo.png | Bin 0 -> 15942 bytes 5 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 modules/ExpGamingCore/Sync/src/logo.png diff --git a/modules/ExpGamingCore/Gui/control.lua b/modules/ExpGamingCore/Gui/control.lua index c62f200c..28fff4b1 100644 --- a/modules/ExpGamingCore/Gui/control.lua +++ b/modules/ExpGamingCore/Gui/control.lua @@ -61,6 +61,24 @@ function Gui.bar(frame,width) return line end +--- Adds a lable that is centered +-- @usage Gui.centered_label(frane, 'Hello, world!') +-- @tparam LuaGuiElement frame the parent frame to add the label to +-- @tparam string string the string that the lable will have +function Gui.centered_label(frane, string) + local flow = frame.add {frame = 'flow'} + local flow_style = flow.style + flow_style.align = 'center' + flow_style.horizontally_stretchable = true + + local label = flow.add {type = 'label', caption = string} + local label_style = label.style + label_style.align = 'center' + label_style.single_line = false + + return label +end + --- Used to set the index of a drop down to a certian item -- @usage Gui.set_dropdown_index(dropdown,player.name) -- will select the index with the players name as the value -- @param dropdown the dropdown that is to be effected diff --git a/modules/ExpGamingCore/Gui/order_config.lua b/modules/ExpGamingCore/Gui/order_config.lua index 3514de34..7f19658f 100644 --- a/modules/ExpGamingCore/Gui/order_config.lua +++ b/modules/ExpGamingCore/Gui/order_config.lua @@ -1,4 +1,5 @@ return { + 'server-info', 'readme', 'science', 'rockets', diff --git a/modules/ExpGamingCore/Sync/control.lua b/modules/ExpGamingCore/Sync/control.lua index 92939063..482459fb 100644 --- a/modules/ExpGamingCore/Sync/control.lua +++ b/modules/ExpGamingCore/Sync/control.lua @@ -309,7 +309,7 @@ script.on_event('on_pre_player_left_game',Sync.emit_update) script.on_event('on_rocket_launched',Sync.emit_update) function Sync:on_init() - if loaded_modules['ExpGamingCore.Gui'] then verbose('ExpGamingCore.Gui is installed; Loading gui src') require(module_path..'/src/gui',{Sync=Sync}) end + if loaded_modules['ExpGamingCore.Gui'] then verbose('ExpGamingCore.Gui is installed; Loading gui src') require(module_path..'/src/gui',{Sync=Sync,module_path=module_path}) end if loaded_modules['ExpGamingCore.Role'] then verbose('ExpGamingCore.Role is installed; Loading role src') require(module_path..'/src/ranking',{Sync=Sync}) end if loaded_modules['ExpGamingCore.Server'] then require('ExpGamingCore.Server').add_module_to_interface('Sync','ExpGamingCore.Sync') end end diff --git a/modules/ExpGamingCore/Sync/src/gui.lua b/modules/ExpGamingCore/Sync/src/gui.lua index ff89e991..a7c8408d 100644 --- a/modules/ExpGamingCore/Sync/src/gui.lua +++ b/modules/ExpGamingCore/Sync/src/gui.lua @@ -12,6 +12,7 @@ local Gui = require('ExpGamingCore.Gui@^4.0.0') local Sync = Sync -- this is to force sync to remain in the ENV local Sync_gui_functions = {} +local logo_sprite_path = 'file'..string.sub(module_path,2)..'/src/logo.png' --- Adds a emeltent to the sever info gui -- @usage Sync.add_to_gui('string') -- return true @@ -43,24 +44,28 @@ end -- @gui server-info Sync.info_gui = Gui.center{ name='server-info', - caption='Server Info', + caption=logo_sprite_path, tooltip='Basic info about the current server', draw=function(self,frame) frame.caption = '' local info = Sync.info local frame = frame.add{type='flow',direction='vertical'} - local _flow = frame.add{type='flow'} - Gui.bar(_flow,200) + local h_flow = frame.add{type='flow'} + h_flow.add{type='sprite',sprite=logo_sprite_path} + local v_flow = h_flow.add{type='flow',direction='vertical'} + h_flow.add{type='sprite',sprite=logo_sprite_path} + local _flow = v_flow.add{type='flow'} + label_format(v_flow.add{ + type='label', + caption=info.server_description,style='description_label' + },412) + Gui.bar(_flow,110) label_format(_flow.add{ type='label', caption='Welcome To '..info.server_name, style='caption_label' },180) - Gui.bar(_flow,200) - label_format(frame.add{ - type='label', - caption=info.server_description,style='description_label' - },600) + Gui.bar(_flow,110) Gui.bar(frame,600) local _frame = frame local frame = frame.add{ diff --git a/modules/ExpGamingCore/Sync/src/logo.png b/modules/ExpGamingCore/Sync/src/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cef59c4d1f82ada58092f1d64480c7e8df6ced72 GIT binary patch literal 15942 zcmV-MKDoh(P)i7DS&CHzo@BKCK|6%z%c8o#7+#iOy z8-VR#ViJ6Gz%-iWb|zxgx9xL%&j;?*Rhc+M!6;i<{=x8w`B6KIU&-V^uzA1?m9!KH$TL=e-FZe+1mQ#@lO`{wHAfZzI6p zwev8T*10hKLj~vxa+S{(0le!2bBAr*GvMOAf&zLqz+oClCX%SFO~VY3V3;G;hqAp#Fcp@I&*Y^~Gd%lNau_RnVWN<|hLS$^4vdrV_O#if&xKV+M(GVdQ zATo>>;JG&$@2sBp?;zq|Mu5M|*e}B}W(lFK*kEanD3{6@9v%u15Fm#LF%1!4 zTygj~q0zw4+7f=N6}j2^I6^S&y$RR9$ar_n-~JUud|?ELe2<$q!!o}g0=}B+BNSis zfXjMHxPQQf&6kWPkV@Af9$%#a|arltm|nwky1 zr{g*p9?r@!M4}mR3D58A>q9&im+$$RTtW`sGj&j2oP}-Gv@#pvk6r1-QH&#H}=`k6d#MlP+#8w(=tW0@UNzDg@6)5mR1E3pdsINmR&!yy zg#V^kBO>zo97?5T2bghzPrEV{j-FDsLj9(*kZDm%vwQ zBgR`45n4&>o4Vd*#@nl}-V~9vNeJ+FANzZl*7S{u94gpftX1O1v*Ms^_dH+z@&)Va z>QIwT%Vl!eJc^}){F~GsT?CHfdIBsi4M2X+>k$E3IY-ay>+csz*2mLS^cJF(hmh z0sd~C4{wURUsQDcA9mTsr>-IPcp|Q-Wq5d4fS*X#2P+i zk90aMmK4QaA(spLqeQjO6JTPS~UpA8&LNb{Y;G2|MrXdIz7$gGJA_8iXBg!?303xrg ztu>V61Z?zN0jBQ@lBpl!am7spb8k;ih=4>QDfiKf&(_=97mB#rR1NCt>jg1fxm;F| zkV>UdlT65Qbnvp-EMS*$S$o|7No#xrewrJqk+2a?ST6!9WPY`M9|8VF-6h;L;CeCB zGUEhveZ7bPEmH>u2Zgd~>uST7&t!(h+R&@1sS&A~lu#HcpQ0vWNh$;cfZZ5NM<9&e zzJ54?n4vVI%qM3yH8l%25dm5mQ%p8BH;bqu5-6UiQ|jyLkVqy(K@$nZViEaV7LMn7 zKWMbf+d7j3y@JU4kgx%rFe(B9Yv&oc=z4%pd4Jr>B3{akDB7A-4eIOb#q=WrJl944 z0AHdW>9q1>34AIx0z+iIgzn-rm*@>kA-2J6gRx6hXEilSDy- zAd!g4^N^Fe*RGZCEh`pSLN*$knnX-iBS4$2e8!=nVR?4G#~vvYPfe^@S1(j^g5w=A znsu}e0>sX*iM=nT=6Zln+y3YkMZ8%EfX|l`r-`<`zN8^alnRi4wL<1+ZAumj1)+Fy z0G%%thfwEd1_n_q73JTQ&y5X@@T)xR%-|r(WgG2d+Sg%>VzGe1fdTnG7E1_{#o?pv zFVw0KAVgDFC*Cyu1g)1un+D=YE)wVtkZ?R#i~)^=ty30WnmCGbu0+CG6rCNb{e*Q9 zpq1_hfPeUkBHoVxKM_xaVrRr=SJn-wi;I*);ByfHl=-AG%5%{HsdQj1nK0-i83y|M z`%o?^QAH#)G&ae^(7ECZDsNL$5h<&#wicyw34?=~00F+}gk(x7-BO__ z76vU8nu!FIUb*aWU`17$k2)lw<@Y+|ANhg=&=&X&+KeUj4-I8dwjIz15Fk4)hBAX> z}G+S0<% zT%ge)UU8vNL~S}P=a$P3T-TA11ZhKm=I=uJrLqtKsak(FEdwnrtpTNaa-HF9R=jQ! z2tU{O4z@PSc)4G38$}e2f@w(?pOh^8G@Zv&Lmn187MdCwMJdx~pch?@1nPu&o7X7C zJesrSd2bqTt=>!1NQi(?@m2@b0^*~!!w9B$wxa-_7t|&ul@vupT{LKHE9qS;yLniXeua$Bi2&@6*%UBY&y1 zg{o=kL=>?&S0n;DYq2=mYLl2=U&IbE4;QT{V?{X#e<$K-PFOgjp@ew_3$w-m`+e*n zl}-yWL_;W}A>pVx)4z8@je_lHNQfxp5d`c$;W=3TSC#k)z7Bv-JO9j8wwRg(K5hJ# z=H`&{Lu>{LRNMJP0A)8hgD+pq=LKK~Bum&Y4O}-=hnQuE2r3l|s7a}ifL^IoQXDkx z_0p-MVio|KCW?i;a2It0^@2vg*p3dku6lFokZdj|Ar8lO=|^UE_Jwg+`7b z%kqJ>9X-x+@W{k6PX8!}+L{>N8!Tfjj54lkFJaGy1eWK@`1{%tp3b;<#g2<5Mg(0` zpU0ss3V3aC6MHTypxa1EQfRb5B99aAIh(Dpj-K6o6pvZQja+*wlR5zcIxj)Y{AEQV z#e`7B?o0Cmpkz&rC`nQ`sZuMiFx(qtqJ;GwXGGi>hQ#YNwLCnbjNMWuy2>7kWfwQ~ zs8GT9q=C9b3|1tr-(?&4C=VspBI>bXAtxahBAu2~n^(qLQ_{*us1`+zcPRsQ3IThKpATTiYSDAX>JlE$ zni5_}CTUVy0$3ei;ki^~%tYzfx`;j33t~M$%yrP2G_XzD!j~HjoYJWjreZ!OM5^+X zBSuhoSa-IJ4>Jz#?Q`*2-o@Sx77iJc#H6^7Z!Ib#<0}7yqAF@3kz%PZQ*iN%<}8kB zNdmmS!Z}cKPzVB?2}ha8RuIF2qaZd^vhil#!$0#LJ}(1r`E|&-%B!YT#c+lA2tnqK z;cp>ATZJtSNH}WqWXKS17UI zd-z9hS%AQG$yPy3$8$mCT)oD}yj)VOATFI9qos3ni;r0oEu={G)k`Bne;;+c^mhRw z^hdYs;L(hW-)3T1JX8|G7AI6<9j4?mNDMS8dab{f%0;>@V0dZLA}T9QRnm z-(&o*U>Uzql&K!&s-6;V=_BE>7!Aq9Z*L z-*VtGuE<~+IC!mN(qd9)~U{cDMU|Al27r4hj7`F4v7%IaB9j3*I~qq(_BtPBR+ zqS)Rh=3w7u#zj0VD)?B2B!1lJ;0NQi?5Chra(H2`gunHaQH;mYTlCOpyLcn(B2&|- z{0(}>hRP9eiLc<4uw?IA#A;OjK$h)e`o~2)x3+}in|;jOrWP@)GReck9M{I7uV>I$ zn?#%Gq3HUkH-RfACDBov7|{(pn5JdPMw)r+;Qp0ZS1CM-$-`Cv9~TWV0O;d{%lF`t zIO%tIF5aAy@+Za_Ak&=aKW&HtHjEuL^;7Xal3`X!Wwdxf>Hz+qwl;x4Ylv15#Skf* zNKl&JmPnyxnPAL>oUu(BcwsA=nE`tR&$n=>gu@q<;h0J`i_0I>0;OwfK_pY`>CiTj z!ThjMF06|H08g&SA!QmkJc?+$vi9n(&oa1lg$l;$_!Yg~7j{UBJ)n@Opz~5s5vO$- zi1`lot23~b;o-E-1RAKbqRaPj$;vY33{dVn;&?_Cv<}=cD!Yz@=KJp({+{EhfIEnQ zYU*cY25n=>WCZ|>CNcQbwPI-`1p&1GDWbS^NcfgXi4p1#fZv@fUj zAdeRG=iwL@hyaanBA66N2TZQ*dw6u)1P&M*;iz>;v+9eIgJ&}?&Rvuji%FT3N#Wd? zV+%N@y-HNs9=`T|7VqRdpMF)MOd_FIw zFq#V(Zh37|QWb&`&z|3H_+Oe(f(hYgP5p^v3Uw@svSMOU=u8%mi6TJP+|UZ5nHuGQ zwp0RpCCj*V%NnKZqRQ3)s93dDn^#eRSt-?6p{V(v%iNfKIP60zga5wjGHE7xLL^E+~fx-~}dqk_X}mG&D4d zZBMI*)TbQ|CR22bK8%+Wknsds(+M0~U&2>wfw2~_S;7J|wNzU=k%(sn&^#9lGbJo6 z0euA!IMfdA^Cjc&y8Mky&?E=@Z=L!nqiQ?v4bYdjl& z-@1%cdUPZd`V07A*u~F!l34AvK=A5m^rZ5`PR zX}EYf=VI1s2TNo16$S$%w6V<{|Wj3?sh<*V> z6dz6%9i|YlsOTDde_rzAR@`iEX%VdDa)l81JW>}l>DW8v91%dwQu%IS58?jJ-Q-$z()+r%m9wofDYSy#DgU zce@KXVtx^Z6+>%lON9v4M3e37!ArZRF{M6GzST&GB0zxeVJKI|yqu5cGcNu#;ER}M zQb~(w#>glY$N|ypA4N4eka-h{kqr)_ST1>wPfVC!sf{TFT-04M8SAIx)z;D~?8*Zf zLDbZ*iA@L9m_)CuSE;-)ehItz!>F+=EOBF))#+oirif)>us*1S|Lz7}9x_lct*pNh(^sWn z)n`5n6+f#)%B2Fn-)Mmq6@q~67w64xpVa{tS{drKEU~%Csygx*jnk9eSU1BsJ{=}z zsTd2Vr9ZVHiC4Cc0r8PAM4{~9#x*YH45*jZz-K;}rWw6RMh|I2vvN+Coy!Z6^@sZL z)b3F#MqbzRga>XL4wR{{>YYWi7)MQ11Z4n=V91!Rs5(*a$f#(No{Grdm zDlZ|XE9;#c*OwG4a~;%^bVgYi(A3mWnZ&0g^Sz(~uqfO}WlX}R&(i?cU%F-5HWu#M z=~4VJ*+K-gwYLibbW*#uwN(|;nkvH;t%vc{E!B&ZKU%!W@o?t+ zERJZ8;j8Vj5ujI}pR<7^-^dgrfPuZ&@;;uM$B z8%7BjEv5b{C+2KIy_oG^nB^TvUJ>HE+DXeGy+(y#znQq zU99cx5sFPF64*CwW6tEt=q8=6`qVw?YWdVG=4gSPt#SR#On)eaOli~(uUKqcJQ*DtKdy8XK+ z7I8pRM7Bm9E;>7rN|jAI27KE#43; zgMl}ek5jRd%_xG%Mv~JN8DCQ2)<#uDOm?DDVeJkbG0OhGP6=eGJbCbX(cskj5U`GD zaTSo(BVK4~p19P&`;HQ6-)XUN#ndiQCn+km`kSTJ1{UH-Y?-s7}3C> zq@Z)g&*Tmo6;j2`3|~`Ai%a>>ie}wWLM2P=>hkR<_E=4zLjt^Dd%j;XR40#5V4Ldj zZ`9+h20rr>0p;7KfvjQTtpNug5860wQWB|#z|@QawP>SIc5&`91Ft(HA?bSG#viw_ z*WrRp!NFHPFp(*_NShvB*wH|HDuzP73>00Y8WeXO@KFMTz9p4(tZ`~?QC!bOh1s*V zN0e+`Jr%7IUD@HRz=#NtSQxFf%%H@7B<)*e4Y9sec;0nUEEFVYX}h*32%!B>*+%6@ zyOx;b!zeR!gmrk)rZ{jyi-E5;$FWTksAqJrD$*J7>dFnl~Q0L<=h5P8korN*X4aYpr`6zEyoEwEux zuSNjH2&*tCrg?7JvBP|HSdkd~gXSo!|5zzV%SiVi&>v6;h$l>K|MSLFE+d^LL5-yE z;pj#mTbRBm)SWFKM~z9KHbK+QQb?!@xba$rl7r8St^oX#;j+l=n%a68>B^)E<4m-u zW^G~N#LZK9pxeb@33xo4!fz%OF-%DUd3 zUNOUU^j8Qruy8dO==xZSZ(5k^AfUdk-qcmi3iu4b8i-k@lx%a+;i3}BGK>W*wOu?jU}8bZz}tm5iY9xkOkq#D=?rO5E^|p&O2F1k@c(9P26uJ2 zc)rgO1Ar7Zqjm^S78|fSTR^E~qqa5`_LgZ~L@#r5qktFoQ%P}h%(JVCIDA|Up8PC} zW2QC;N0n_)EU@VxmM~bf@xDX9L-niCi)9N{N5|L-1n>hB?5z5uj%;iQ?m=Q59u7@* zsrX}3K4OZpmMNR3sjfU?>H>-(D(cM8pl6I7+vzin#`q6o8dScT`r|CX66L`ph973X z2t?LIGBog|rX=p2VuDo#jFZrTIeEDOFI_L!(_Sr2G2Qh-Ybx5K#Zp4;@Qrhauwcj$ zWU&B?R3~D{GBHRuzEld?UNz$>AH;K6(q6{wZ4x+kd{PkbM7NC>`+?iGG(?OM0e;EF z+>C)=F1LgjNcmD~BIPE^a$pl6%NdD$%>^0(d~WK%rl2%NBOsMx2T))k21UTU*5KfP z_yJtBt~3G|7h*%8vDxO6edc#{P)R3MbYB%CklHiV;ZxvLn4!kj80u&Z;t?zO9Ps$&XvgwiWp?lB-*I0tKf9$p%w*< zKGNFA4h^9^(1TaMltN?N6!CM){2ZRzuNg~w@)+m)SY;Ua(TZB+%%sSCX`hP6(b3r{ ze`)osUcE}*Sy#$Q8>{aL_i0hXV>S2k-KdOp4}-44)-6@MCKtVDhFZu0%n{IM2ob;l zoG!BEiHu!~h%ii1O!1(CfDb~dpzI?8emyCMTUM5^O??c#o{86oRf!*gOaxegSx5>c z_L~|<+Jx5jtd*KkmJ%i-ElM;1GQ&e5rAs}h545zj2xVG<_)?J4BH-d>PX?S#Tj&^8t}J5EwU1eGR3+{B;r!uPJnW01PIp!CbSljuEWmC zz(Z$J%T*&6D{ z0ket%yt3i$%Yc8&{?P%0JC)wLQ|Z2_cW2BxKe+q;0JnGzP4N4Qca{5!^W zR>YnLGZ`r}Y-LC$QZzgsF0mli?Q2+$6hHa~f+7UlGW*`!FlWwf_<_yiOk zF=}`=PH0b<2p|@@+S&s8bZL(bD8k^g4X2d$*_BA~s!qMdeq2p|!XNOca~*nH9! zK4mS-zWF6F8ASjeitMTp(AV29EGO8L)+1ADgxFz7r+sZtk2rL6X82n)vPtS()7>q= zrPU=OE<$BPnGE{-`!Qj{1TfDmVj#w17+*vb0015VNklzN9b-iltz5ZM6f;HJY01_2eWn39D=A`ATRBlKFpI0 zl^j4%m=z)vON58+1fsof##A(!h6Fi)gsgib$YDI5o-(tHUl;*&wRuwplZY51fe5Up zX~y2$Dg^KaG!jNbfPO($cCs!4_&Yg(&C^;05do~hq4Pt9rmZa^fM)6P<;y~yp|4La zU$trtYU|P%)6SSqWx9?CSh0MCn3<82q9bppXGqn&zW}qb5ktd6LTIjSi`67m53C9dOih~O z3@Z>Zx<^^-2F(Hbd38okM3BRXsHc>0BBt`2)g>s}J*PFJMUaw>BM4}$Z>Z=#=R-1R zMT%q;+A7*&@)qL6>9wYNjmZ6|z92%^tX?gL zXao@Ww5l}V_4)K8c#N)Qqxhn(p|iRF{s&;$@?~OG(GV!vWhqRiSx)_-MGA`r*h)pG zk>BgE3<+j51W*T7C}HgfRGXpf_|VQ0?RPzKB--K`O}Ryjbtz70|C4gGY~)K*KBnvH z#C+AU6pE6TX0mlUL|8t{K$q&IC&kj-)8~_WwBFDZPt#GyXb5Z)0avtCosMP{Q3QVX znl)l7Q?b$vB?1WO+H@^`IQ>Vs>Z&Wkl6TeKq*`t@@Iy)nGKX4vXy1kJKce#N+qc|L%LoV1hX9+eDJ~I zOU$|V_kjZ#RB^PnAVUYORF;N8;XdCJg}vaz59KrU0eu}lC!MK_F8mo@f8%vL_Q=EG zydfS(+ubq^?6mW)7&B%Jw%vAH%%4AB#O|`sKMUHIRKub+WTF#XMs>uhLlMJ6S;={F z5kQ)1G}al-)9pCpCvJvQPB|4j?y#LG!kDgb^IW|6;$QH{BM%DzsRt-4i5M%=){pNp-xnudqwK7x7A{8_|<<|+okNWn*a z^GN*o^wW?T8pfGto+UxOt)^{_^Uga*^ihBRAkI1GEU}ts9`Cu=-Zp2f>AzYM!v6kV#)mug&tv@Qi1u~CC@)%gJ4Y<=NqiWD;z z!*{;(9en58$0D8_QHTWmv-6(8yl3ZOU~m9+wQRUk!8kpVjACH&lqvYt)mKaXPjrzx zX3Ur&NTWq|*kOm`g7eQ4z|saE%nSITM#%eg$^eaR*HQ z;fdk*^X9#X>t%uKm?DVnLmE!G+j+uRVmz@`WNUIPW}( z-=B2i4{`882P#eofZyHSgFig^B<4N)XYq;j(!;5uT{EGWTVFW3Iw8ZGs?lF=n8(zy z?dda478aF@#$wW*`QZl(Fz4QTBtXY71nYY!r)i2xoF$>`;-#N1#ibWtTrtZ{`U^ZC zufO>guDSY`u*)SeQ*Xch4s>)VQ&dKo4QE9}ee}^sB74t1=Uhyixq<;Q`2)O2#SBhM}^pgKpzj;2MnfDy-zi$rC zJ@5RGWBA)ZCWBXAc@=XXdQhUXqah2zcP3hw;SYk4l7;lzrmy$A^JDp0KiOHC}x2 zMUn3_rcbY!lE~i~Cb;<0OR@9LJBdEf>yyQw;=h0KGwid^emMKAGb@144F)q98 z5?p`7jp4Hq*}T>_zW$An@-^@udhj9i_4i?yU3SH^sZ+&kkH;C>E=nKrqD3F$fd}u$ zs;;iEtCJkfaS3{YOhrmEnv_qc(n7&B^K@mL4A1jCY%ygDuDbFnxfz#j)9LDyGWO;c z<+xNYBH+F8?oUZnD;p8g{qnfoyAx%=+WXW{pE-F**UeeD(8@!Q|Z#1(P&YzMKRX!f(umy0Ml z=j;GEo(~ekKz~1edd5$}+b|f{KbVnn6FpK>|43cH)+kzAciwRa-hAVAY3rpPpm^dv zrFkzXG_FX>e`jKw&-oA0vXtn{kt-<2FTdg{j2|~vsDIV!wfNwJ_p$%}`>pdZJXg!d z#fv}2$BP!>8%KT@sD1JsSZ@T#=nd7tHe*5FluNjDV{KJQc34Jf`fwcII_r8lH958FDTWwqj)$PCM;XO#jggeD~OI%lE7?efQn@ z*lUm71qn<*5wMywm#yf+tn04D%xhJX5T15v@NGj!;LrIAj2;NIct0H^50$- zJ)#SJDRUXu;o|v{moQ8${CKe-S_4nGhhxwNGb%?BXN5x%E4o(Ur)T^azx& zy_h^@OB{aq5pwu$yX_VZp?dxGH}LqQk4U+u44ZOQ){O6=%=)4@VvNw{i^a;qtm@K4 z@iYx144KxZQzAaL-Q$J1!woWNi)QNT?r!{O`gELs{)IT?kidem9sK&%-w37Ne%ozofKz0V z`meu!7B0X1ax@2tBU1m_XPt%Yu=32QXn%ahnb>dNeMKBo8f3G>xbu$RN+g%kf~L1b ziX(o2GUqEx6QA2WX-aYKZp%vM@{+P$X}!>Fl#Y1EmOSSzxBOaUJ=a@rzl$5Lp9!y2 zMC-WmIOB{nvCA$y$!}3vD4mooO`&t9lN+Qel`T^vEx9Oj>GWJTbEY7GK>g=GUdLT` z-62-ke)}IFmd2ZJydlTmeDh7>*-}ps&_6l-bo}IuGjY&?`wP`kvETQ=LwMu$f8y3( z-x?y7qK*z3*W8EaRv-ft!!0+@ z#@>7Hi(|fh4AQ~irSO6O_$RT3=q=J|;RDiNpq%{p<3(8b(MQ;3+ih{gVP6xm!E3d>rzl!OwSAlaF_(I=1?l}C{$tQ=_6HQEtnS1WJM{IO@ z-c;~EJ@X74dg#}1{BhqGpM&1;oH=vw+N-Zf?EkUH9}{t>Ij?VE0GD1u&%6~^U3o=_ zfLC7q2ma^DCvfn=hv49Y4iYZsqWq^J!fXEZuYZxKZ1u=Cb&<;QbShw4auwz2)eRbC zBgSKB60%(JuDkCF5ul$;o1*+o6Ku(nrFiv~SMchquVCV4o8j7Pt`W_di&Gn{T=ici(llD0KEx&3pa@31jHy2Syeti`f+N(1Q<(A;1s= zDf+x~&%vQz`zofN^h2R&o`3&?58$akJcT>&{2e;SjuB3yo}f8O<((NEz;AB96H}*5 zlHaspz&H{^-V|keX~!!ns_1lnzHAv@eBlMrQMy2k$58z0P>x1`9-$m<(4hF)Gi9yY zqNGxZ%8sW7XSDLFtFOT}TW>8K5M2bs&`?%vU%LOacsTp*;!7@-ktmj2Q(#xN>@!(yY8XPkoVci2wYmek1T=BGqW=6mU1u+VplEvMq76HgMS?V4+@#pauDjvaT}3Gcl9Ha`03LkZ03zAGhyvd9$* zxah*4OFW)l`ZLe`37;-qg3TvQ#*s&UQ^FsNKQVa5fZmO>Zx*>r;@~qb`Q#H-RK@|X zjSZMIX)+Ez=n!nZ^;QDVTW+~oMrU%3pD=z@SlqS7=W>5x#2g97aiZ<0PmK5PxF$pC^MT{Qr&a@-bf>eGhR<6J&AAc<23ccBa z1~QZC3=hBX+;hT?((W4Mei=e$ux;P{_Q&xj953;f#^z>G_-nh@hQ(64ESxW;hj`yK z`(`};_+wbOaDfVP6>>Q8sG}tc$?Arl?ryP+7|)-5)6KZ+uDh^s(L(V`^{9MK!R7n$ zINf;Cy|!EYp!x_Fxac0CYZ!Uxj)jp!Q*sjTMvMZwyAP* zic`o}wW&rLwe?&$Qi2{I#s}7QIW(iFM53KCR6Mkh==te#^)X||ijt(ILPWB#RpvQM zb+99fnGZUB`V8Fr`+HPgAr_OE4;2*4A!R~KF!zm=#@~0`VJE!#<{Ki%8H%PK!O8|& zApFccE1!XW3(Z%iI$52-d(ntstcr~!O)V|K%uiPPsqvMZEu;$t_`VEX^FF#6o$XjG z1kmL>(WwAY5f$wb){WXEE^$~C(3R4g0`#utnZ)l+W7FR#tnE&}Xfa zI7UJ6kW~>HSS(NBv#YxPA!)!60tpb!N)J8*ohe;X&LS*UOt5H7FDC2xJH;xMF9}kQ z)Fj16hjj#|r>1@?&G$zgSF^*?l3_Eg78zGFLe++_GxNk;T8^^dh*Yh+YWSdf2&=9r zpzx2dkJq)9y2OQl$Byj?5ulh&^(jy}Q}&M^-&rvhM*mJ7LaJpekzTqmfS&%+btM^-&y=%Vq(E9s93{{A4Hcwb zy8VY#InsS-iZbMRG72p+v|B2Tvw5*nsyAcMHT+caEXay3iY6}hAVkFlzvIMS*7=M) zlR`k0SU5_VX;NJ;OY4S|&ZYMwVBs!3UJ{TKYOe`?wFx;mb;>t8Wy`LC=rSL;G|W z9+4n(<%04+U7pfE&@WuVvUe(8atO^=#!FabLF(4BnH0*MF}N7)Voi|}2ey=|Q$dm= z@_CjcI+91wOIIK8zSK`#tW}bG78!+1g=LPM-J^RHX!YopQvp0Juwp^1DEbS0U%t0o zHIk&`zmKrsi=tnuISLdx#O*o{b%&ydT5_ubv9u}*UX|FQ&z z!9FTkU42L3bF&A%(_XaQNMD%amrFC!KZ27^`6Nc{LLB?i7003IbazYnCuFYD#mKcDx?( zNIRKb`q9#F{qj_dtV7bGgGyR2-M7onq(}mni#14f5l)Gsh%qFJH&Qqk+l9yxwLG5P zKmmZGg;lH?Ap-Pong}UENgN!@%q|)k+{#)d&d`VsZWYW0PeBA!3~v1wMiFWKe1tZ4|)nB~%~QhX_1lYzY`M?}p~J~Jzp8C%!=T10>@ zOOJ97TbHi{S`HA*&aWO)Z$4L+rU8(u#qiHc)4$_D4HDZF&Yv`4bfPT-ok{|0;yH|3Pb?w zkhmBuqwOyJ1bXXQR^TzAJv3I?SQX zU=j*rLo^690`y)oY%-DN>iT+V@}myXE4sav%5W)XOYd{3EgijK!;UEv&u(lxtBq~q zBM8`pZLEldV^`e35KcmxARy)ix}HV#TprN6IsqOez*DHgY?p*2LTi z>k&KhAOY)a>PBvw1vhmoLp^Do0HqkA^`J|$^+paG+saUL1Va)G1BmX5?8q^OJ-d}okb>Swl5^>UDg@=~=^Narg`@llbZXaDm%jQ~D7t1478o(iextqf0Tw#;xMx;%7n zwd!5;zUWqlArdyUjcsIW0B-hhQkN6XeP&HibTdy{4Y~uRdNWTQOB!u6Pp!10n|V@J zGpebmymB}D>((<50g0h-Do9I=4A=9l;OI&Un86M*5&59cBgtvbM6y)>$v#HCe9nD{QvBh<{=W4bu>qIS{2P!wXb{? zBDewEF3ga zi9FTWBSxZhaMHxpJ77@c@EItkwEoZopD31SG;oFwV^b7sO(y*FTjTgiYn-wrNL5wc zReQMV>$Pya>7#91Tm7v1^E$h!uJ6DQ3G@@<=FOY3%{kAZ&oFz?#vMHh5lnM7)Uh!` zZBY{KA)|@Mf-Xi-bzv5fz!Gl)gdvEivL5YOsifKALWD9Hs1d2W^uBQa0DhMFN0Rtg z^B(kmFGCFZ%YK?4ByK$<21h#ih^>(!zgXb4UK!^y2Ei7YJxcR3dv?a&^)HIPZIfxXCGooTEH@2sZ9UPGJ)zm6SsAT4tIXf719;;Fc(Q5(Px?#H_hGC2KKHsad>TvTZmM8ae^UeyLA8ty5Zq- o01M!IZ=>wJ@ literal 0 HcmV?d00001