From fda1a590f6978f906ed21b6732f80c9aefa02b47 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 24 Apr 2021 13:06:59 +0200 Subject: [PATCH] Change: use icons to indicate you/host in Online Players GUI --- media/baseset/openttd.grf | Bin 510525 -> 510635 bytes media/baseset/openttd/openttdgui.nfo | 4 +- media/baseset/openttd/openttdgui.png | Bin 44464 -> 44530 bytes src/lang/english.txt | 4 +- src/network/network_gui.cpp | 60 +++++++++++++++++++++++---- src/table/sprites.h | 4 +- 6 files changed, 59 insertions(+), 13 deletions(-) diff --git a/media/baseset/openttd.grf b/media/baseset/openttd.grf index c4511f55ea9f87c7dd7e3e4f73e79e404801d053..837e4b12d2553699331ad6ba878d38afda6aa109 100644 GIT binary patch delta 176 zcmdlxMSk^Ec@`Fi|MweNT3HxdS(sW`m|Iy`wz9Aqlriq#Zd%5wF}FU4fsu=g0R)(V z_yzL?HdY1(Mn=XHoXq_E{1>=4aBUFj&^Tat!FU7L0TE2q3wTaQFfu-1xxvB6_<|Wo zvokUBKVW5Kc)`xZ&;Nqu0oM!82Rs|NZfHEvVPq6!_|M~*SyYf;RH9H&lv. // -1 * 0 0C "OpenTTD GUI graphics" - -1 * 3 05 15 \b 189 // OPENTTD_SPRITE_COUNT + -1 * 3 05 15 \b 191 // OPENTTD_SPRITE_COUNT -1 sprites/openttdgui.png 8bpp 66 8 64 31 -31 7 normal -1 sprites/openttdgui.png 8bpp 146 8 64 31 -31 7 normal -1 sprites/openttdgui.png 8bpp 226 8 64 31 -31 7 normal @@ -194,3 +194,5 @@ -1 sprites/openttdgui.png 8bpp 539 440 12 10 0 0 normal -1 sprites/openttdgui.png 8bpp 553 440 12 10 0 0 normal -1 sprites/openttdgui.png 8bpp 567 440 12 10 0 0 normal + -1 sprites/openttdgui.png 8bpp 581 440 10 10 0 0 normal + -1 sprites/openttdgui.png 8bpp 593 440 10 10 0 0 normal diff --git a/media/baseset/openttd/openttdgui.png b/media/baseset/openttd/openttdgui.png index dc0976a971647fa6adad1ed1506030aaf2c60bf8..5b80c3326047f00565f11a27cc8cad879228a9f1 100644 GIT binary patch delta 19226 zcmV(tK%0ErKmH?> zc-JeJ*6XPC=6`wQ5g-20@8AE%`FFVU`SyzlhqtN--%YyI`d$nSp3@7wP7{C*D) zUoU_Efxqq%-hcl3)&KlW?0+uw=P&-cVDip9#=ZXWA^CdzeLdtq7aIHb9fvx4`^QIp z>8~eYLH_CW{`&pC|8ar- zX_5c>)Ag^bKmK}^e_8za{P~XbFKb!Z=l2;VkC@|*jo)LOY?NQ?sl^dza-Xul!WUZ_X{FBo&A2c3EXBV) zOE~u(=YBJE?z{ru8Uq&#{K$X#>-xX_<^SZ@^?lPN3N9vFAATDgwOk&O<-V*+9Tj}g`;`<7}|LiVYZT-0bOT@hk z4-*nQaMzGZsNrrgwh&my&IUa^xxVqT1EG|-c*vMjs_|;ENAJzgv~a#RmRO@-2AkN3 zl4@$~%}5WMm2<&N@jUT*xY5J49=`wKD{p+$o8R)*x4r!x?=vxh!t>+@s;`J72lHH#f5zOUHTLH_2%94o;`oxTUZ-x;JaHdciT^V z-wJf{UvaltxZHZr);#RmH?T6+aS-@Q%-456`|SbG?H@O3>v_kw;I+v8c!s$Z@w z{9xBJTbUDo!wuVHZQkqS$@ggA*LJ`k`ulvf<<(jV{IM6V!Nsuj@r<+wFkb*9RvH7? zYXPsU0uOV2mFtdyOC|2WEeJG?z;xf6T|U3Z=Us&xCqR#Hn*^K|T77V%8ortW+nKID zx$b}azF~Z`h4Jjo3q89KS!(&%99H>RBbBGEi6s=gVpl99f3t+IW52|_nJz;52f5(6 zzMa_K@5ZKgtUlWN__A@0_nY;_;>*YGx`5bwUNx1~akjUXydYY&yp8Dlq_EyP@$JUT z5i0wK&%`!kc^_}ld`wNO7BEZ|q-V^LGP?m<3VYPE>5~Yc${Uizw7oZah zHv<@OvwDeO`CS<_&45yKr1l^l>OGM=7_!lwf4loXOp5@)pjo#zM zohmDkvC}<~PC(?mH~7VSzl5g5bvt2p<*lbJV&Jhb*%Mv{1V11_DHnSj2xr7z0R@cw zcqYgb@$!4MZh{qG9&F&w!hMbpFfF(c9k&oaCq{e)eh3QneFXM#P!Sly!MHB#M(iVh zl!1l|MZ7DwnQV$~ntdu(2FfR}g##HZ93$bze6BG)^K0P|3X!gj%CiLn{- z)mz5BzIxq%;wZN@LdCjt6b!iYA6Qs_4dEGW4G|7_gFf8-h1X;-wyuf9AuxVnTm&oZ zk2umgw;RALc5p%}HU!4c46NcN0NxtVs2BlwtO`>1Ey(98TZneCPlWssuWS-7vQofB zp}!Lo1Lt65P;cyiz7;k`XlxNsh?CeSXWo6TTopA$=dWVqfXt(HNq{5lbnlLT0Dg_F zL>G4d<2vQR`)>X#M()KPP4IuVuMx5zcm+|I9S6domyi$`K#x0vii>B0(q!b}#|y_) z;eMFFB)o2Tayrqd)OF!w4cCB~KfTryU2_MaKO%P8KWm2oL5q3bF+iYzU-17mw{MbQ zIk38VwZU?2qsIfSpRfzo;ek+p3m>e?8-lL^cV=BQt~Uv-xNDVmg3bXolHaR>SD5Sm zlr(UkHjzgar0uLWftr;8ui-tV;1+@_0Q|9A+$kAzZg>wo@N&uOJ=DWbeIpEmrTt!9 zZ=oB8cKHFPouBO=>If8C?4OkBixQ!wjk@Qnm&9BaG1#A)K0 zE(U#_dZXlRUKMH94c`#30kL0%IhZd$w!)Hjj$5*TTSK%Ow)Lz-ntS2D?jLGERK81F z0ACCCgd@TN3O7Jmu|9!+l}~(o+l$COUyzb8J0@Qmywg|_;O6TXU4Aa2l%f*JjZ(l6 zUaT8w0l_95@G5}LMh=Z@ZIPZy$f z&532=wD9{6vXSxhQX>4Tvm!6n2l;|eL15)pK8Z6A_f+i+aa@P$9K=9LQBR%=k9)W1$!;K_?Z$GJ*n*Patd;REm|maZ@=zXXeZX-LX)HC7djJp} z_JAWHc4Fdtl2jXspRnxw#NrO7lcf2SFo1pAZ|K2LR~wcSF-VZIwkGifzhOJG5#?12 zaF155icQ}OCDQpjqEBH}@iM~n1BVHQ&UQb<=$f^WgT!AbAVXDxFUU9~VULUFPm`-) zV7vfvfA$-HW&N0$bZ- zGKME--(dhqrJY?oW9m;o!FV7f9jeV%!PKvcSATgw1TO^o5{+Rl`w8GQ8_S&=kf(lG4<`yo8A#t)`x zTB=}C#QwTaS4dH48)6yPhsGd56F{jHg;BNvZ^%CmhjWhqT}ha9R*?tX_BB0phaLvsum9A-WSjNA}%331fNn0KR)`mOZI3bp8dsu znh7VaQ6@_gAy+Wq!0uwK39Md`a0D^_km5IgUOWOD2LuqcOu#^e3Ad~rftzg|5Aetx zjn;?;yyqcMf&s*YT`mY+;icLy$RKdh3FYXny21fmv|jv^wc)i1=93VBeL&<0rwzvT z&iGw&Cv$3$^w`<#w2*sPsCfMi&?F%fP%(;t4e@6|z`_DQm5z)yZfM+oZ&+=-Aqx_J zF^zSIyfsK*ks2QuKokUBVq5dzJEd&|FJoySp4eyFu0}(n~ z(;SE?z&TtSchjhNl(pwKp&bxmlnz%np{eNKUC$tlqsxY3kDE=ij)A`h5M3l<22>X{ zz7Lq1Ch6G>23T6_Rci!qJctuWc#>sqT87nQ^$P&;nh3sS?Qz#x@dAC_jK>`xu2o^1 zkP!G0@V)@v~`AwzZZF3+0L8!od&^`2#cAz@e%5K4di5laafjy4Mr&gv14>P?`C z2JouG0>;hU+Jcc}NGy!30%L{P%H9wepE>x`*XsAwPN*{J1+*j>n_L}F18mLY)pT$X z>rWAs%y!&}&44A9N&4@Lqq5N9U=i->=OB^Dl<^&+ec&>4u$(3)D!O)9|g znGMe5Lcjz9BRgC@EogjSBnn|TMgALDY61w0)Ot_ZEZmnB#|Sv2n)=&kB;>JGW-1YH zkKVy0r{^sw)g&njgH$90QLkz)D)pHL{TKO;jsduMx_z zNg#jcMoM4~4^g^#Dv(1M{VE7l*8{kMY5=XLG7|P0y86|uN%y>X5Yl9! z9vXja2E>;2h9kjL@cNVG>!8N>ohTDdBIF7{JkM%cmG$K3K}IPvejGf5BBW=uA;7!L zXQL(;7h|1%Cos5&tbK-S-$ZUekZ*Y#fdr8SA)9+Z+5j~$86~rmsh9!rlTN4rUMzp+ zq{_h7WJtS^f;ACGAFDnJ(y5_%^B}~z45&v!=goHlm=kZFt}SrAD)gU=P5H}Lxll%+ z!2^)Iz!u1XMD%E6`3ZF?Rghcdn{9u+HHlDXK|^SJ0I6PC%rA<_b7V8rKeSp zxZ5*5ggEAl1E4lwgR*0GvjPW5mI!~th07660D^U8UJ|2~{o|D>C*<4>tlV$AjqKn% zrYf6Yo#3^TEARu=vzWqzH}DO%*)KM#7?4dDfi_=*f<{QsfC3m6@6u%KSa>%0!=l)p_3b&2tS6#-RAP)rBjyEWPjiJz1lI(% z!fTt8-N6LMfn5B25F5a0AsTiBxgwnU&a>WOX5bxBQwV0Lkybngz*h@Y40i*Ezm4z@ z7`H@)b!LHu;ah&4J}JjG&cT1@kOx=iPMxcD448#m=7u3rJQbQ}Lo*JOc?)m_7ms@D z_S_TJ3*dr@Xe`L>eL*B33LuMlqBL>Spq9asal+#1NR=tCnajNoRfZ-b#Besn_LJdk z3D$p2+1~p!V4sHrt|2l*eLiP5P8G{}?tQ0pQY4V0mmU1#{5ng8k3)ZhG4Ms~N1g++ zn^)RMo@pXx1=#UG2}vixtyY1E*ikVd;Fa)bC?`(&!oez>i%q@M<(T|IG003IjN%gC za@*hcw*dx8f^dLPqTTW^kHTu~b1aRF;`=(`D6sQ97x($g03xz^NaI;-Q!b!q`OI<= zp5OAApCVi(;H@vyPiB9(StEt(3-y5oAmw?3+k773Zu5RnCnC!Wy~31{WLUSQPbCpy z+u=R1T3r3Tj6$6l)Xcr}PTJ!QX=B$?CgN7Ei&%u_6$n)_E#H5&scY<6RZ;xF3%7cB zRe}qF0dMc-j8WyRvUab2@Y|9?wkL530X)#Bxrl1tn3A0(?$qR6#QMx)nXBV zcu%O&Q06&9p5O$F0h09iB4xHPYE(Vy3PRR_Db|0_qQZa2cdm}>45%r*6;njha@E(w zfG6B{%eP1F2uL&;77N`)KeBZ& z-Pld|>g8#}gHOBpJZZ1b4I3s@Eq)b&LX11x~Aghc)sbN&v74`+cD=6_9_m2!zO1Jzz|zBXlD-g1Dp`eb$F1 zOrjSqNbGrUunhKB-?XzQuQ!^@Ww!GOy*iuap_onVIJEqQ;d zG!u$!0}rNE4VfbPkHy#?=VlLM`nY0TFdbzYiV1cfZ;+P&@}dUN$v1C%l5B)}0&h>V zs2hLSq8ji5#42IfU)LkH-i^EC$o#}MPY3g5-p9v}I$xf-pHr3Z9EGFzo=gy}2?JK=vr;BX5ds7+?gY45CiJ2lhD8h5*dDDt z*T=3j(-FK*IJfXbeOi@4u&$m#@lvp(@uueSI8?wz{)F_82Y`_C{ozVjKjA4tb7LfA zW7PF1^KH_A{oZ*2f*8nC-7H=n+5~@D_aJgM$oqGz53Y%+!Hz~Y0}h8!_b>V5XIUi= z0OX=PO(0ny2djYg%!D(hqfq^W$Ye=O^o76OlKA zZGo@=28j)m<6)^8av;YLHP9psB;Ovv7pl=}9poT_z-#ZbgL8TjM2qS-i3_+~Y z80%B7Zna2q0|Bfi^k6TBbrjyJ1Qf{Lsec=SP#Z2EIva0+S`s?k=GRND=YsO|Y+CT| zTaE$-_bdj(^G;oq6ra~?NCt4fP78fH(gb}G<1PW`x;zW)QYEMf`Ve0JAg(LnI}DR9 zkg95ZQ47&y7i10in60OPOnrZ4nR_E5x2vh~Vcy%L&XgmbGLvPv`LmF7o+C4m%TfqJ zHq;CH>GB=2xJ<(1(doU`1BJjc@ljpry{lzj?Pgs}xOUNMS^d$ioCAqcn{@_^xl9Rm zFjLO8FMR!pcyA^&15gQznQFen>K?`Y9oxy~TktWgK(Y!RPf4DA!v}wktVkCzGt@_# zRY9X@gejw2H4IJij9-9_Nt=f~>MxTJ!Ci@{Q{#nXmivvDDRBH+atRI+fr2;t%xk>~ zYJG1n7JR=>n8c-V?h#?Xp;f4VvIYT_0f}Js(C4TvfhvO8fGDf{)(;@*EaVLZBc25q zjCvM`^k4&CYUx7ey(fQH0NCI^1mIb$npohz*~pzebbcdL42c8q;;+zZeu>K=cxp!^ z^0cm5ht}qG4!wO7DB5AlDY*^8E}M|8(O6iptbB!vsaW(H;EQqei65M^D8kRxu-k9C zlo?Db^(OQWFrp$rGN7b<;PxWpE*Y$PD++&g>of>P!C=mv(q(_~VbL7eBFG3of}L2J z^PQqJ2o+HneS)Tft5sMH|HDC8^%~ikY=9;RU%15D@Gh9d!reU2;jSb5oe^h%9*sBN zztiGd#t$Jjk%+VU?AcQ<7V2W9cmU)KE*1-zn%s&9I*7YoRi)h7=P!S!z0z#?9T;I7Jg*ol>Dj@Vzx62yM~K>`uk9vx%e`~e!SriZ+jtLF;kLo^VS&HV!pr-s#Xo%In^pd*jr%VM0s%VO$m zo0K2LNpwFYC$JHgB{g_H!DMMGEce)7s@Ww(&8p%i-<~c#e9C*vF zD;LG3C2|G8fN8Y=0$FCbjek}mI-HJ>eF_ghHhsoiXAC(8^DG#7hAt4yC0Lf>||0{PcP>xdIZTSc8J04;ey3B+%SPgZY3x$4S{YebX|KZbFvG z9--NY@Q!y7l&q>lMt`n`swZT#*Z`9D0_R5ekMvE8$1vj0*TS4cX~-}iOb_V;EIg@N3O9)T z=w7%mx^yI@b}&a|HJFtf*szrss9X3Y3NGBlj$td2rq``PCx3V#1;)I_CMdlGF_8AV zyIFNMtywJ#(DXVGqtTk^Xfk_P-|{ZAy2bNb_UOc|abFK14kn$;0i1_76lVBIp5R0} z{thvRzfPF1^7Zx*J42EXu}X?2VnC10&OABmAfMOZ2l8iGJU0fR-$d+qOoZ9F02;p; z&HfM#tck;20e@^y?=E<>ohb;@Wqk-s0@4;?><&*Y>oC3OIV2&(_KXKviRyy+BInt% zU?okNm%+$ta}P^S{|1Z~OL;AK0Vu17DG?%q3>voymKl5TlumRUeC^J*gp~{TN|+Qx z4E~%YG|Nj7OKzB#Ed$6F;tH`-b?Qz6XQ#mo{%@U0#(($bd&$n&SVZAIR9Lt$9Srrf zZfS~;%e*sci12fcnmkz?p2~)nZ!i;Q8dJJ9>>3Pt`n;yGc|Ngm<-o$@6_pIh#ooJ&T!f^gyyaC;o*b z={Sjh*%}^W;#J77mHt>qd5MkYEHmWi?)6mIKnkKtU&}jZS^zsRR$jY7FI30qqO-lM zxbo?kKt81*g~s#E_1#wGJg$N{!?^~rg{xS5JPJA>+~dlp|90Zz*sw2OREjt+5WVH4 zRu_&_I1Z_Xpld#%2l!S|M@bed`ZnCris&1M;alrw5%vXF>BN=NP1kFG zcNXzN>A^S%_zMk25rAYC`=NMFu~{6o;6|op)Q`N3^!Vs7$&11l;trFA74po*zM)|+ zRa~c=rJ2^SLCq7P?^VM_0wLaCFvy-iODCg;a;SdY1jxp0v7)UivFhv%hIMejlQ^hJ zdd^V;n4pcwEtA)TjY)ilFR!+H}KzmO%^$TOityhSYF$tKDn3 z7J_W2CwO{7R3Op-&5!+Jj|X|#1dtjoqvG9V|8fa7LN&4{F6yj8q zn>Y)@xU2)H_88pOt8OBvCn9!#2W1aXpCa92Pmkblofrr}+*a0pcm7NR+Sjz63o7v0 zO!Q`RM;I}255_j^O2J*~IhsDDx}VK4kRK7t9u8!DodTvuRr4~HiIs{R#7a*+_|x;+ z=}-;61YK|hX$#^$$gMOjG76`{0l9Ju?W2@+@$PnOzDq6cMa|R@i!eQZqQdaJb`&tB zK!}prqv%O?nfBH7(=mfn!4|Ij)Bu!aF0fhcY|_8%lS%_r?G=48B#Fy(SOSlx#AU%e zDZrc{mCK%Lpf;G^j1{D0jW>kX8unz1%!+t$Z1tl#G`A`{% zs(p@O7Hq`xbL@af`-aQpl)G9y&3%T3EPWc*{zgj-Ug=Up1ufHk2vkd?MM+**o3&H~ zu(-_ZWMf^#6eAQZKGuc=nCuM|;tg{$!D>1_Sg2u+qk*_EL1?g37g&{NU)(I%2W}w( z2xh}F5p7!S>uDP}ZW!e@fbdo;RG!w%aU#IHt^#0dW$|+*Py?C0Tt|Eo0|Vm-b2q}R z!3IyC6h6Z~*t-YzgK^!%li?>5f3aCnxmn?uQPN1=hl4dJ zj&;3e6xezv5gZ_AeW!CI>_#j0^C`}s0|+lbTBN3-rFVX8n_B=422(GL$Rnw0GG0^Xizs+w7}<=Ew@v3@f62NU^cvif z$G!1*yD`yLin##wH&y*=P`5)dtlPOB8>V<1)u`u8M6A!lwAVBFeA|@;4p}d!h6g;e zV>B?DlPgtYsEGQ$U<=Tz@PU>PhzDDK>`{G@ZZ_HuOQxsUViTEq8#cAd&X!GQ=baEs z5gtG-FrU<-h_M%bQjoY%e-(Q>+`C&FPoD|~)C5w9&dvPP-Ed=skDa;I=A48wV-vlV zl?U&g$7dszK2uDXrBmL-PTHsKsp5Wh7w1C5B(KNe>Chh!&3l2hX$DP z2ClM|`9)QC#Eeb6yv@1*zZK_gG6Hjq|SSdkvWAHLht5(kO)G1T9#346J1m568 z1`8y5z3dJItRXSMQrm#}dK%En=}#-WrCXkoY(ZpIhNWAQXrR)Ty!ibf^SLa%tuvV| zwo{6*>6sp}*s%xBf2)bw!?GRLCPDO@-HiZN=D-e;Z^wN`3)GVx>hqh{OMgVn%`vT%J zD_}i4Pd`0Y_)rMg0h@f9p)CyjFtrwmNGCrm4IoBgU8a!Ptu})vHSi0JQ}Jc*<6F%M ze+k;^WDxU;f9wRCz?L!ZEx_U%lPr`%Aj$J)J|6?ULQdwn_F%MyC{SJ)Q<0}^dVyP6@M zq8k|Jj~L%<=RiuK*Q}m{LEq7{$K_<4bym(p%>tkh*B+?P4AAD_!5@6x;x)_*?jP&N zv-a?we=`+$5xm-h;$#&jD22)}X^NPPmyK$O<_Zv6cKuoopRhf9P=@K>Fi&EQ04_~G z=V5)H(8)$j;KiSk*3htfU%qXEw@J`qG?r(nys`S*HgC4&HQPjBT?bPk7dQ^l zUM_#-Jc0#0ig%ohTYF}CBV36Z;F1}E=-DvLf7_ya1F3y}uiIgFvW;1=jcaGHhs9Xa zvxJlJ%BSY^^!j23TGpFS{|=^u$1h7O4*HIE*L-Jm&}&Kq&SZSGgAdGEMHb73djyos zw?7_9DEr~b&%(-9BZ2}yAd^M>5hY{Y$T^{K1V~Y!1&9pn^h?%F18j~#*tJHdBY$n06=d(@cS-J6fMD?D6P@E|zi|ouwgJ&%hAJAaL)O=cM zjfD>Gz>Z+8@Z9a;SpObV))twLn(fo8JU@gfVWS>%*nWXv#5joN1(OFaizPVkxTJ!w zr$P>$xs$bZ-8n|FRH%%VW#(?@DaR)iK#d--1)TLZ*1+a5R*2H~T%}rOkBm(c_BTIV z-lpJKPR5xKb%#Ju4a7|(V8f)}c&clNXF?hQ#nrt~ibUA%@sq4A7=K4E3%Y5uosA{v zgLhudER&^uNFdZb>uGBf4*>;?eD!gj1B`5%rAM4#=5PSWw7=ay|*1Vg7%rGIIj)OlH+tl8VU&sop4a(Y~5o8-XuPiYNPz%`UD3Rg&}O^CzX zGFKoV+;|a85;9@E{Nn)=M9Z#=6UBxc71{qP^XE{I;z%sS59!`;XWQ#OVr7E*s&-)z zJgOZ)?IJE!bL9xa4w47Hl7o9&}w&P70 zC~)(r8K+eM0ba_&$c{||n%n-CC*=fjcnOvPIKr8fkNFJgfQ(|i_=3R8Ur#p#)?>~3 zE*A4IyCVZ;6s?JI)|cnL_ydyG=@@2CtuMgWfFRr(Vb6|+jj{rB5)bd3y2ys3#^K28 zz5!H1m<-f|gnxJ%o3hC+=+d|v=4H|2jVh{+{VE9I>T+Au>Wrd+n(_1&fp40vJ+L5R zD+V2je-}>3+ta*p52ypxn8@ zsdR(IrwWHMp>(SPibDJ59h9gtZ8s#HmqompbKXD!jBvqgKQb;{f)&)&I01Dj}xv|eV%);Zs}yM zmZitV>VM8<3mzagojO?VdZkkbZas5_nC$|3v_2hI!b6>{!cq&e^^_eqTWBp$fxCsb zS}g3qFCr3=HdvqWrvj?t_fW27L^KLGhDZh0tp|zn3xH{y5}V9QMpn$SYJ&U4D{p6P zp|%M_+^tz&r5_Vhx7Dba`MGaL{!IQ9Z1G2kZhz07U+WK4*Sy;OeP?WleMr_adW1Jj zVmXQ>BP`zlM|J?(d-^L;SRSx;n__N4sKcJ@JHisNx?)3teLUzqU!^S1XOY_3lmE!S zpavC;2}Cwj|1h@%PrkXn1H1C&`DOyjlbLA@iCu@{KXzwYYD4^Fu??-xi0mJ5cblyq zNPkjixxkicm4{sMxjm9^;bpa?goJvhIaE6(xzs^mTNA+hO~UgB-l}%2 zHzypOPV@yM!a)Ic_%lHfA1@_^0%3ty%z$&xQL7gH$4mb zY}x6~@_4rFV0HvC3^KtwVtVj7PwTfLnlb>6#e(8ibis9@HPh}ArxMv<7wp(oU)(Vk z1l|W?KIH|^d44;n9?$BXHH-YysGz$ZlkhPVe>O`0QZJCQHE_8P?fp7SY}T>ZEe8*}C;x6~Kfk6@`xx|t&vwt^(3>Ei5P?Df%xy4IAv|j2Mi=>NLIHH z$A;~N;j&SoVyM{P9T=E)SP2mW-aV&B5vrY8 z_17UPcFCBKjl>4fAOrlq9AVL&28Z_U2>07eV+BjW4>%OBe<9s> zJ_Vc=Z?MB+Y6f^}l|IW4LCV1dl==`bAZ}_Z3pV^hqP;q_JXzKj z&PfHLBM^yk+6sB%stz{W?S?Z}hb`d)1*3I*PP9W3RykIOUp!VYvR-#+#R7RdWpP8I z2r#o98RkGFoD|@|;t_|2YO9Mqe^kgr(nYkxcpU2I$uXcQ;_zw?1FG{nN9z+V@1RnH zQAm2#IR#7Rr7=KtAv*|z>A{gdzcGZo>6s??{H8H>P~bb;j=zVd$L`;MTjP8p!tIG{ zJfhlQVB(gI_|U+B;qAaYw(B~RIHaoK90K!9o~$aKobb894IAR0YD7U%e-hsa_I%4} zhKl3$Sns<-_J9QnZv5waO-~U#Kr1-iQ2bhwwXEPBPW##$hMO%KLf0W%VU5TXPv@SC z1-CD{j$DyB)@i|L+5RCR(x`js{T!|=JNHcXfOT2(`wi)&7yxNX!M=NXQXXf%&4SBxGGh5dLr?&vse|fRkiT%Kn5N)g} z!_ftCJ9``5VN1oY?-eudR>?Qe zrIddG#dA(jJoP@qJ&J>ny2Qxl=;7hvo}QFE3xGkcJB1A(GG%MtV3<}ylBeK~6e=Y^lOBSTD?c=h?a`L3U32epO4+>n<+VG{C8Dy^D?E#I5SYUozSF<9*oJwEa=?l+AsNYH70l^p ztM#^og-{ti%<#MuxE+`ufoxlx*NB?Wy3C(Af8aMX^CsMW7Lz+$@ab6x<&kf2-FgEc zH}B?%k`+Daf3#aT+UY&vN8cYNsH-~Zm1jP3dfK9wvCi$RW4*9BNw(W8UYFieZ1&Lq zY~^$o>w07GDE@t;2MZ3Cn|cXbYzZ7RxmY9NaNe|;c8sILUq*MVX}PS9(S{Kw zLw`rGnKH8iVOZpZWrZGW+lS!(#`Q*%V$-RF8I}t2fAOTi$OcBO4tDI21=J40>8kF> zZq#tfS)*f{U|Wv77{OK_oW`E301c%)L4Ua`V&X`n){+Vcu+_8-3)Fqrc^?K^m zU*(VWe@9LaKrXW?b2(o3wuUoqN6$hA#XA_KLyWDqJiW(_0G!IH5*a3@@@FLrxamok zDWvD=r+o!U%HBAC(Kfn4Y<`yQD|UOS1FSPePe_{8N%ktEj^6wE1WRmUovzI?J*q;W zL&Q%`+eQ_q3O@H~1BBIY?xCZ98M~C zjh>snu@ggYebE@|NOeP5zSi?TC|}mJIds73Jk67fWYGo2GUjiFXZB#OpNUsk4bHm! z@nr)U#3_6i2=4r&Gw#9RKhDcCnVsGzfS$qEf4m!GjPv2^0@^10EqGaazVRtSf@rE+YwS(eWrw6|L~Y z=$No;oZSCG&NHT?s&&6+i%%om0M@%(ce*@3bd=3mcAJ$@akxM;;8kZsn=u<|e<54; z?%_ZLXTlDrXCZn&Yaa@X5iIg_e<^VZv#mu8grBhXdd%lyXWk>L>~2bDI>hm51T%cZ zPBSc^cDvU*hW;ieQ#zBeJps6|yZYv!V22f1#S^@|V2e^Zi&{&bHab<^?C4jz%bVi-`_s#qG%mG&w)(1>VH zq8Ko95%X?G@aOJ1M#;ayfdp?@oa2QY(|1O*=!XgaZ=F~U?B14)Sswxw1-LHDbRFCY zW48DJS902Hu?LQ*K5susprrDfPSq?uM-9N3oIK$~U)$=PVsxEcF)Qb+e-%rwr&EWk z*)9vK)|tcHR=|xg!duf8fkky$MIGmUpT|C$R>nSrGt0u+q245oSK~~i({J^ zxMQZ+Pu^jT+8H$VItEA@0{>R z;2^S$Y@QCaMR12>U&TQae~wh0`*YS>b;>Dh)k62~j8P1p6*trEB*49f7R6WfO&Ic1 zob4OYB4>C#0@Q&;pTkVDb&2(Mx@AF4-Oj#i8b3g6$#b`^#C>DjkU5bP_W7E0zYUPy;wqyNA%B0p;z;B8E#LEoG@jIwwfVA3LF;eCu?|Q zGSkydTos`^pP^KL2C3Rwgvnj{!qUM$(_jdSWR-w97)LDc(~eGjJ5sQAFl_vCV5V`; z*T4(-ISSGb$8hMef1RO@5m@Fs^YL}lY8KL1ZQ@L(uV|GOKZ@@MqQkQ+E~#eWJv%z5 zdxS~Hy?OBO}{3F4u&3V5V3=FwLR2{eb5NU@W-Qj#SM_&%l zpjnhWLSP`t&=T17=PtK z2?~U`2aBG5rb$4~9c2aw%nm-p4IH}jS=k_xhZ4 zYhMm=xwkV4`aZ<%*PRbJIb^BW78>Sd{eeS~s)G-1SbcXCU$EWYB6TZ{o@QE|Ra0c% z8N-0KDUI*vPlIQ&j4>iIowa6_x_{GCP1HIyIa*HCh}xbATg4bWe;BOqIX4>UGU7?G z0eGR4E+@QyXK2L-z?|A*LRsItSaCTW>VC)M>?q*CrsQXQj@znoyHJ{99nODRZl|w38LSz78;U+R@Pc zt2sr4mnfjSgz!R0!PR)*;(w@+YT?SZ>Eb=@MnHrkhMXKr>P8!(*3lT;0dD#5v(SZ=PDirV|aFrIe$c9TYm~|`0_6g zY~#$Z<;h<8Go6?qlab>us%rV^5i^)SzU+^Teu5G7592&VM~|aBKBtP9OojsR=6i(Z z$xCw9609bkrtppQTd0EGukFy>X3f0mSJSJ03QTdl9Ly_NVGISbjLeR1OV$_fIo)ej zj&n5?IDSrzABE%G1%HPn*-z9Qg<*Z!V>Ga)ETW8vEzaobr^d}pUw>;12~0-VfX^0t znUb1L)Ny9M6JqRKCVZx7!)vs3!IHuC**Sk2`yY?qWrTFKu*chDP^W@S&E%yYjW8~pBfF-l|9|?noM4sUFdi^^)`F)D zQz_xbA}#Q%{Y>`;ObMB=zQ=R{M)+Fc}^zs?M$Hc%FC^V4t*>&RSFKf1!R4t&j-h4yB9sAM^Mc(83hF#{xY zCWINBsKPomtdQOP!AhPpQO;q(7`)}U*I&1N?51Y1(nrU9#41kL{`na%b!~RbR`#&s0u7 zt6@6+_W5UIHZ=x(Pu+bg%$X+s3r@W4D_45x12D2(kWu=<$Rn@=?|D-UB|FVXr8KFXraeD zb}kwKyB~?>d~r*G9jc84Y1fB)fSMpX@xTd4Jb&mZWC+DEwDu6Ca!zmk+>F=KqSt0a zo2_ze2%U#Gf?T(H!Ra`1E8C~~YtJsbbMiHw7O_KnTbANbuIBjxZ(uLvGSp0)z%#y9 zF?`b#P9M@anxmn51%=*?*#Yf&l>s3;6Wp#(-&~lBGB4cT`q`y;hie zMVO=K;6C6tZ0t@KKYTucjOXxzMZtIucuk4%TFXZJ5MzIw>DBLX{`B}^t^f4OL*S z-43@K+HZ3AZPyP-oe7Dn+yov!(1UPg4weYz!Hu(9<3z9exq}YY%G*!)d(26J_^~<> z{7PrkqI1OU?BwSb?4Uc2+c_55K|NN25h#DG1nuVtpn3$0nrb#)pLVlRuBQZBFmdvD z%8yOM#JF8@KNazLqUBtljdO6dVo}ZWX*A<9*I16FjfK{_xMgr_Yb`xc(1A;O+)SCNl^C00D$)Lqn6D zL>YfSq$(8$D-?0aP@ODD6>*d*7QsSkE41oha_JW|X-HCB90k{cgCC1k2N!2u9b5%L z@B_rn%}LQkO8j3^Xc6PVaX;SOd)&PPyv-_84F4pcsHUDy#D!dbRS3Mok1+ZW!?4H< zEty%&!gYMz!^79RD9>^~_vaXp3kCx`0`Y$w({z(~gLr1s)Hv@GhgeyZiO-2Abh;q% zBiAK|-#C|S_VUb-o=wjahlqtz7fW5t%DO^4O&pOGmGZqghh@%NoRw;wweQJa7%ZqO z8LrbDMFLAmA_V~w>ZqU!6H!`KQVgVNKknimvHdA>N#v@4kz)ZhC=hKw_#gc4)+m2Y z#hj#I9O!wmtdB7uunV*rmi2vXS*;Vm_Y7RA9e=F}%zl#I=xC86U~n6_xbA4u9&ot> zgr77~7j4N$(_1V8?`QN)d0^-k=wEYsYwzRq0mxEU%QwKmAuwK|>~)uS_jdR8@0oUg zKbos@w<4639{>OY08mU+MF0T*5D>F8Ml1se7z+j>WgqaOvuH_;Tz^eJRn_T<0OT=9 z*7Z~c2&zam3-O>Bs{D*}&;l^b_q~i5LLdI(7eCK`K6m!)V*d00_}72ELi4IR0Z9R& zFFKqJ_9>%O;c7uFno8Pg5UU1|KSe2|yvGIMxc9?*ckW#J{@oN1 z{|vqdDTTn!=a&CFh<~2|;xp+vMLz!NpJ*NsD#pIt1FQK5nmh$aB+bob7-SCz%AfXR z0`mB=ASAIMR0>E*?{yZ0>OO;J;_KnkoIo=_0m(j}J9`Es`}{xt^)-<6v#=jIK+Xao z4t|}@00BB)Ja=xoIL(Op*128Z{MDuzkB<332z7GG+EP}ctDMbr{ zh}g`>AHWAm&j~{K#|;URQU>Io|M{PPRCKW@zhv29Mt?I1VnQ$p;b;Izk^y~k01+De zIA=j<36Q)qQOQDBVfE)SFuehxv;;^h1wf{GK*)3oc;qZd&stbC_W}(8Na}S^O9}|5 zBf!_vcwxw2vid)Zlza1c?OWD)>j$^qho86XTk|^vY0 z34sLuGk*^V)aFOPM}Ck``5+YwQU+wMVnJe+C;}p~qfZbZqO%GXq!LtX0I9PW<1R#X7Qi?%nB?iIV=H#mKWVl#@kBWk8 z0Fk+5Y70WB3jzYIsW_HlLJU8NS9g& zJs{d?UP?*9;P#zh6&8d#x%Bn*jg5`&sk5#oGp!_^MM>A0bgdrgSNX$ph#R5C{-4Y-)o41T- zw6a;Oxxy?~LI^ZB2B(M;%{yjK5Fo{AUKs#7K=xY%AO+Q35mE%??4k~k-W}Iqnt!)+ z#=FrN#g1Ix4ID5g2_U!U@6O--!FRs%zuLDi+`4sd{@(3-^Cb(C5VDv#QfNU!hr3yP z4y#~6!jur;!_Iijw?_-}r$%?@EpW8vZ)c&n&&fCoVLJRglL5ln zfCwar=dkkOJCXr}K$s4EFgs^Ku#;j$%4>s?g+eN6U@ahrM^%Oaq^T-AL9ITRu7(%{ z42Tn3kQ^Woo}a&Pfz6+y^bgn%F4(u`GYbOBe&)>CGiT#ztg|@_g5DJaLVpmH3Lq?C zXhVRHFh~HQ^oKvZ#S!@~F6lr(Vy?=7fT&i|jWh)$wjfd2g50`r%l=;&8_m-{7%}!8 z`~BPV_j1b4*U7VKth@!`!G~BzF9O2<`0#noM{GeTz4hL$+wZ;ip75ItAj1PfhykP* zAUp<%JQsrKAP>mh_s?4w*ngKsr$&FpE?oElSdh%c0&N#NM#PeOF4BPL9F(8$DdBvO z$~h0gzY4@TU_IWujeOj`_1=$!qm^H*GSVFoBZIkEW8q@io*M+YApMqo>%!f;x9>UD z`}gkMb?(}C@6MN%UF<0-VUTXQk^=(v2ff|L*;7&OK-T-ralmZr{CE1w^--R|?2KJba!2Au%Age)!&x z5RY58fApg}G@i*aSH%EwxB%fU7PladlLB(_!d*b(E<_$E5TW0lznjCLM2G|s!3Qax zgM5&f5FUZty7k^)fPeM4b>|MHXg&-e29QGt2+m?TMGFFc)jdbRfso)j$nD;M2tHy$ z;voIjd++_|_ALs0JZ0~yHGmwI7=*i6j>8HTu)dS*I0eSd* z?wp@LUk&RGAO;X4MhqZEj2J+S7%_ktF>?6i{|9m&B6-OvT_w`#8Q~W0W;&3-#k~NCckTcEzrO1~{^LJF z3FE$UX}ykGZ~m7@9`WIee*gYA&cDN*&%e+A;(ez-fBH{Wlz5U~( zzVY|_{PT_HQU3gs+PU=KF5-V*|M&;Fu}Z7(T`9($Lb}ht`|k;o|Ah4Ld*+M@?T$F|GN6)uUGk(#gEUQ?@0f$mi5mX@x{OW zi%|ak;-4k{ha0EAJyHDUf4>M{dj8Yv{Q2kmR{y^Jd%GuBRVt<>4S8TZBZ7`aMW^n40q0d^Ih4E__J^2Ebw2y{%rsK4~B)QvV-L;bLR!0`~6+w zE#dFBmCimVzOV56&+fw2)}IToMBKaZFd?x6cMYk88txWj3xRd)Y|z7#$CTsC4un$T z;vr*Bsm80t9=$g|f78PG-dJLd{xR6ZMwC=jV{b-!*sPoj_S165hMtm2E~V7cO25h| zPfaz~QfqBhkb7Ecxs_I1YrT#3^we`Nz4q37AN?6|BrvdyI@;)CjOU5h!;K!U_3-@< zfAYpRz4$(w_t?*e zt$pdsU-|0SzW$Bx`P;7j+13B_>wmCo;m@wcvr~Rw``fPZr&nu#T_Ol4#XV!kVkS1+ z%^kp?qkDGukaKkB+_QUtY^jqf11kjczWtk%Sp!smo^E}CFbk9 zpZ)fL=k|}AwDr8>Tk+drlr_WCb86r7tZ%V+p@GvK3-Ssz-E(Gsbfy=B%&AW{YjTzL zzP&tuqsQ+VZz<23>-ln!WBQV|fW|z|0g;pQjsD`hmz;>pqPp)0Eco{y{Eyu5Tx{_q(y_9jlM_KE7;Rxs}b)4<3B`=6pEpH?GJ}IoXPJFxZa)iqM;WM$#Sl$PlT>Rj=KbRt`Q=y6Vop0}d zdEx~uz%}pE0UjUaFo(AGTU(#gwJjS*{oXI)TkOi$?|0O;*^P!tx3X8m1;-Biy)>I} zui+cbzV~_pP%?-QZH^ZZO1&mbXg0PlJo)RJH|INfr`%K4DF{LB8uz!-w?DUif>Phl zj3bDI9buFkGlu^@SXq5XN^cx@8^92=sRbqie?nKVW4xL1y2ZJ}WQhPK0?*#>yPj*Y zYahN|QX@cBwlI#(d%VwGB>`(z7A5JAKx^hYJQ$i`X6zq}@7Q<1(%3c7kh{O22qFT! zt?WI)9s^}*SQ%D3w9>@?b ze@D>0iMK>VevW?;bM64+VCPxh4c+KHUfij&0vS8q6X^s*&U=Gjy!T6JN?f-SW>?;N z+9C!X3zI$JWkB!)5|nbW$ANH0>=jVJ$d6}&JP|LySL-HN@yCM=+*!EK@d2g<7oy`9 z;^)MOufPvMp}vp6J`O4ZLpT`MW!;EQLA&*eo$NL%w>;xYt*&`%fI@wnnH}myUt~cm4wlf2$!p zqpcyr0dLTUyT9<7493b?c}TxAQ3!Kp6Hr8 z2>lVU)BagI1PEHp^Ns-m1^j~luep7b1j~Wd)vFDbYa2ZtX#Ip;unrG|e_HrpRo)PM z4Y)JwqH(=RXvJNtv=ej=sFD0$6}-Y+_ot+R`?QHXsvvD=wF%U$40sLiDFwF>Tmj&Z z-QrHkm~+E>;DMJ*R_~!6e(D=x7%c7g;(80+Ftp1LIPLsw|4>Ju&|?3jOkb1;Egfg% zYkb%{d~YOxd+TL85Ey%cf9t?$-}KGn?f4#a4@~PfYx@|hAYy=GgJUc-Ek2LCus$#i zRu-Ve;Ls;4q9};r+=6c;P~%wJ?IlhV&vY^9>(m=1Z}X~1vu^l?fDMTKBFw>j`LPw2 zv~%2&1>72<)v&E+9n#zj|8@UR1ETU>+5-4muqPZ57ErhW%8K;~f2@4s+uL45?)ie0 zgxN9qqrp3k6#;Jk9HYz6MU+xhBDqlt7{ZHnBP}4BJr7|*poSC9Z|^yH$1UY44#(KirakOBC@Ak&*F z*sw5R%xUZd!>jLEe+RxCgbLIZ-?~+!4?l{{mkAMhdZ<88Q6%jPN{j#CmrK^i`VnrQ z!-GM*UF*XtP%RC{s0^Xjnu{Dr$->AR=yW|edg}OqDLfa6_xIQ!n37P;(r6`QD z4R}k2@ePAFG!%M;_RHW7G$MVlc5JxAKl|G++$V5*ycs9cTc*569K&DgE`*lIF9;0r ztU$l;KUNuwMS|fP-#|6){avj4#MwLH20Mf)e?A*R$2#GN20Nq$cYxD^h-3A->kbf? zou19IhC!(3B}%@CHpoUI3c_XrB+H8+dOGZHVx8}cCadOM5IlDwo&s}a-7IpIN!>sd za`nD=-WPER;UV~xQuy)Fzg@DWm3a0S18OFmxJH>QNrYU%fCIaWu_my3MZyup_(O`{ ze|Yf-Y#b0k)G`4B6(-!Wb_8y=bv(c$cQjff8t|TnKnVsA6Lz^EbcL5{zaWFaMJJS_ zyXp!DaM614Pu7OlCYVn`0QLcqBb+uE+dJcT$(_upLDFMqv(rNEVWHynH$anwOhCmb z0ye~-1px~S{8TzJ+PI-{`@Lbc@rEo&f5bG_A@bHBfkkS3U;t4Nbd|plf1_@#ks!AB z-C2`c-G=(VV73rs5cA|KAT_)zZVg1}Y)x|@rU2(~ZQM`47;l6OH&kV>riCBx()S}X=zoaU&}CgW$*ploX`85YVD#f5_*9`XlfvVlWc zRflDjeVK1zEr9VmE6P~tgfeZ3lRgkRe|(9hgbYWU1qf&L2uJlMP(%ZG)nNhSW^Qf4 zNHQcAMpl8bLTqJkh>Xu1eD$^ZJ+%|6OnLz=3C1Q@$I}2?GkG-~T*UfQ1SK;b05B4l zdl;5A%{CbLGFtvHnA$}x@i!i zOEJ8K9mW9N%>G~`AOmrB60nF!e^_GSp;<4&$^e~#*bJ?y)!d{49G}_XOfCdWATYAS z)oMZG`yx>Y!zuFLz)}-HSfti_%4XrdtT;x%A=T91J|iKItuj-Iczg5?E;+5Y+>rQD zkidj|bPeqF=pwD{xvvMhmur6TCUXotssJl#HP^^O!Z%T^XuU=#$0mWCe;X-*IXpz^ zW>p}EmafQJz*>*v^zri>9!U+)hHrx~puih^N)DU`Y7Nvz;t52B6--1>^!rs1sK^=o zhYf(E^lmC{2*aR>|3!bd)ICf362`1=Rprt1=Sy8oK(`tVy?CJP2vBP>aSNn*p(9z2QhO z6}DmIKdD1w{fTf9Ce53n4o_?3Ae_XoU0( zD1c${E=|Ucg=d35EQ;+}-=6cxdLp`|5@S3XF)uKCnk!TyxF)a_UfZ1P4kkDb0tf8-_&jRA`aCT<$kGFUQBSgejznev*s-1|^vXfi?!XH#rH8P1kq{nwQ3y-x%7c{t!2 zA~V$Ib9UoYv7P7McS8Otirk2)Jt8C$sZJh%oM^XF7Yk5{e6EMV2~sT2M8tF zEf4c3tj0cNX=D`N*9k{~o#(l@&tC=*k)Rx)Y4ABqD4(ya!f`tG|~~s1t*l zxp&@4d%PiS>{`l1+{$$ki_p9rOhQ9?i4NbXhklWD?68|LQ^zbMJ%op-zJ%Xem?Y9S8j`YY`pYtf3}l&v zei))D<8>06xc4fAoqir(gGHN7c)ulYV$N${83HN5xzOnm-cCp+F!lQ-Fy)OXfBlxJ z`b?}L62V)ET!aPm^bM1-Js@L}_(2-mJ~|x#l!LncR&e0FO?P8A;j5R`h6kT^^Lf%< zpBpwzs9O9g5U2W?u|X)T`+-XGImJ)jUX=RMxXUz3zO)D3le+Y8!UtU)i>>I z<@H8$Sq^RA3%KD$J#S2_!jIT-84S35qjDh-jesXN;9FzHt=9t)sQKo|5%J| zIX7F3>EnuV!E}^qC??o_yg^<9$cq|4C*Qp7NwN{@3A{bcqHbV|YQPH+f2)LHe_fB* zdN=NlBl8p6JRQuJeQ&0;ptDaS?2Cu(dvHUv%LeZN!wtv2;dlg-7j;yhk1ee)oCA~? z763!HbOCGoQo*7&8h^m3VM%@BSEJ!Q#D;D;YAW#t-v7*PMd-x;&YJjQ;OS2+PVn}D zq&+|ez>h>m!j*GJNh%Hpf0c$iqiJz5qKN%S9nNN!1Xlr*VGU;LxX%pMf$xQYL`jfh{rtK1MVYeASB!i#esmd(2R~_ zcfpi$nLPV6P$e#=YovUOUsuZz=+8m4CIo}1*j`}0o3-TaI?Z}Ye|t*j%bNSCs(hyu zj^2ARL9`|eSe?&GnJ7gF5WKh(;AWf9i*gt?Ens7NwDw#dyV6WY@H*k#!ixH|D}!KN ztwHfpu%q#&W_cVc;39uQ`o{x6$oc+oC9I$D6rs5>60$MsdX)J#X~2H(yZ}KA2-C1Zq&}MjFCMAVUzVG{*YWf2&(9lH5Q5s|h{Wi(wsw zw<-YzvUmF5h9K02%ZJX!TcDPN4!8OBQtP>(JUyEh{QH)pfWbYR!SKA(7bV5#^%{}^ z+^^F{pN=#^U&Odez_~7KfnBNuH9;T3%OAvbC47fr(gjjg?JsH}T6RI!fREXJ3dqz~ zmbo_~a=V%ue;?+(Ep?_G@syct!_A+Kob!~-KrUM$2-#3C=%>qf$l@{yk4LBXS`QQg z%fv@@rT4D3d9|B$G2z-pt7Z2`w{s38N^RB|Fy=BP*uhLW*S_%eC*r-C&@%dH$R0br1)kB}7wgjpOW&@(E@>@TEq_dDW6pVNlU@+=gAkxAHywui(%zIC+0IJhdeY24}TXcRSR1Ap&@Zzt~YJQ2!Ay~B|5?QTl_Mx?TouapI0!2GaIVHD2 z*ku#4JsJxOmX)tiF%_F$1AH-#KJkN7iz5774ZHoOOPRs6Qg1^403#{_Bm+vy2W~Gi z?vlZ(x1#V@w@-s$6b$CvDP1-n7R`Yzf{gGZf7pqwIp1kYgHREL(I;psxLSqP@IM@c zRj-kq$p&bG@P$jP4ex?UEZog{4tE{d?~FJD^k}^C{#A=_89#*BL?X`WvuCSbEY!tH z@c_sfTr3tyxo(Py;0w67Ia27Dgjq#oCWaMKxdO(oDU5IHR&!q%emylDu=KT^2`TXG ze*;z^Sg9K(MF0fr%dOghw=VffSf|cmN%b}Ra{-ivAK5r1ziNb-?aV^ClbNVegXa@WrWIo7)xz+sf0Il1Q^dWK$_OJdooJ4Y7X{BIJlc#I#0qY6 zLGcW&tYZa|stHt^Et)b0$j7iAyD@C9gdwt$$nMgKsaEM;46|TK;Kh|owh{^;!LLh( ze_2TabBHLP#3PNE_ynhaa0hW3DrX9D{ilj66dZ2<8$j+waU7BHU~W zf~idaqeI?d;t#HOUlDz%q=l%2EyilH6Qt>(fRv}zHb5le zlezzuI~OQNDe$)Z1NR*du?t;hf5M(kSnt$tAZOO_*i@U)Jz4|%NC-4Lvmd-4wKH~D zc7U&VS4&wanp%o{!ir(>9FuKVXsksjdVELtwfzCW5C4PpUcjEI!D07xJn1~vD;Un$ zBSb3N-Oh?9b&K(u-p}&#vUwWH&)XBv)Agbq)j4g>!(%WXu;(}_`=)Q&e+JS`$P(Ej zG#e4#@eYELU3JLF)ll_>Y!(|p(q7=)=>CzuY4aFH{Q3I0bU=zBc8EGd6@`Y$+r`GS zU&xS+Fjok~2bA=})}dFY3mEExB@?JT%B2!?!CR|%8cP~7%m>p$`Tz@0s3pcT2c$7%f>vo|NJdgroUSkuKUV<1%``z8F zI-Az)mIY{f9f;9rPjobyJ?w9Jms#Cn{gypCackVyLx_V(=W+n&;SGfuev&6Rk&eGZ z%;B#S=Bs?YEn;U#5+YVf(L@aBvDuj?XC3788vH>1Y>Vf{AoQDve;tpBFi$Rk#&1Tm zKSTq2;&4|0+v?o~kM?8=!gSdm!jgcrMHsuoQ_DI`FItBrgm^sTK~|!=V7|zCwk+65 zQ|4tbvfJEZ$vM9P=|2h8CA_L*dSZ@!o8jEzMU?n8xz3)8_+Py3dp z2)WEVqlO4Sr_^L+aaffNE#E4qndcSPE@Q~4AM*^EFt;WgPW9bQ4kA0A_lUP=!|vH~ zVu#1$9vCHveyh>&{y|KCi63h}0m@;DAygYr@1bma@g01Kf0gYX=CQXHZ#D`PL&j?v zH)2~{D4#}SlVOkhY`-%cB2Sbi#2ExZqsd#)%C@BQ(~URV=$N1z@E~JADv4_f{{$i^ zIV8oSpn($BVDe&P)3{`?7nhib084=0ZSUp#KDPN9rPh2d`@qUBrmm7FJ%BQ{h^G>D z;WAl@hYLPyZ!*u>>%XfAiL+Gl2$ z$6GdqzE+~EUG6}-xYiR++Xp}82?HAwu?Uam;CF1gxkTIJAuh|3ruMPz8&1Je_H0d8 z5T(#amlb5TZ!dfvH>wtrZR3KGS7;ud;7Pk>!l9VWe<=b2FW>8vASrwk>IB(&nIp(H zt&JIwDlBvOPKw=Ze`-1S%9VA__5>pzd1nawU|SNZ?;Yo;=_Ib*>AhJ;3k?>KA(GK1 zM(7^O7g0vEgd6c1C(#0^>>u2`-)W(T(iI`{N{F6iFEY#h!V~goq=?5|pa)#yv)A|; zwnU}VJOvr&=yyOsVhbL@@_a_TUXy10?a@l8@-gIs&?E$91*T^PlM@ebk>j=@*_6KR zTydI(uns+*4u_ndEt8uf8Gk0!&;B^&EzEf*bTzABT?F}`#SB;-Yzhhi*la7&X|o4^ z(DKOHVl>x^Sa9S&w_6o@ax1>qg}$G72AUJS#>*N18ZNOclfr+p9rgA`fQ5X&6(xIH zh%anU0-jHfx}(=v@l?$dxtl~aL3mdin5^$>%Gpe!=vmB+qX&}hIe+mlBuU3f%+~N2 z6R$#st@Ot_%1dlCXPF^Ccdw_z22v1J`dZ$pX#woOSb04SdZ9W-7o9!JiYuQJ6Ue7D zq|kW2xxU-3oX1r#XE@g&wr~}Dk4HfVgnL~1oWGs;I5zCd7nLH;3q)^usojO+G>${6 zA*kEC0E$V@rL!M$m47c=ONgPME3e-?-AI%#o}6S4Z!G(B>rdZ=E#wbSIr&!JFnRi{ zn@$30-rUS7~M%NBHSGU^}$g zo*IC^pw)_`*RmU-+ycH`)KQYfioOkZv?Kb)Vffa%S%iJTRew5hrF7Hv+MP|jPK#vd)H~exg6gE53ot*u^*D_rUyaxO@J*h^^?z7OL#V2Ya8^@KdTh7P`%Mky z2pKdNXw#Mo9eu*q-EoZZPP4}n4|qI*sMw(eSHBTgFcickHVH#TF38qxXUdkm0bo`L zV#KBGZHeui@1Lcsqpdg8Q=R0Yhi71-y|M6u*B)q7=}G$Vc__qc{;&~wq?@Kg%!Qcr36wCa8yj)DA$Sf1fP#@8ueTB@3tsZ6X?@q!9*UyO=oC>yZ-KPhjEOUX)ZfBGJWuH_Upz2xCCqt6BOot`#Xi8ib%t`^~1gTt} zsRn9;>CIR{O4fKocQ zT{eI~``Ucc?NwVHRw} z`Z;z$qa>`vTR&$@BAxoczy}!{GgIBuLP(jOd9|F}DX;G3F)@E%L0W2;vJK0zl zF~tZ)i;uk_0VaDxg?Pi9Ot6}c4>oF;<7gl*Ob{CE)CE@M*%vnpo&&cL0R;2FGJg?m z+U;w#4L6K(8$fug6)I0_<~R{xURMFIwX^uS5~zX9UaliPiGhJ}gt;5x)?kC@oD@F8 zK6rKy><8nz#ZII%bW*_q>;GEVz8Nwm;$up8Hl@t zXnSl92WwCq>w3*7u=P$NI6%(&PJib}cp9yEo=3O6}xHA~kPMTsM41)a(k!S*3Uqrzh!^mcQylpy# zCHrd7Yj8^*_r~Krjfu8W%mt{wsp?mQx*dvP-_G@TV2a04jap|SVtp3VUVm%y`Sw&6 zIAp(^8XoY>j?utqPOemqp(5)0f-OL=!UtMHARcV_@r>$=bn~F?uw{ChEjE#}=a~cHRlG6yX8X0`o~NiWqz0Ck2TMRqP*jSiljN41wg|kzi3~PK^m=(Z5U_^C1Y2zb=4&;emvcU??3QkMO7aLIt1@iel0*ZQ9?6T} z4>F(2#@jlR*(>(6f4 z#ATOXek!tkC6f^XAAefqW-)IMLUzvq1kXi0ww@U=Iz0K>+%hdm)F)WJe|?KRZu9Eh~H|1nhuKK8K-g4E!*)7KunFKP(L(Mqyp1klC#^gOwWi z1;(lP^6Zo9DjR>3%1{6n;VP`^V@o#J*y96-P3LTR5v7TM@#HOS6N-zV$L_Pzjy>@} zU~KdDobrywwP4#VYcNoFcXG6cA{wew?Fx8aQ}Ww`l$|YE!x0R&B=leh=7gvOg~x@k z;n9*aSL`3qzFU!%5fh3*|2Hn9TEGC*9yJbHnvmG66bXMQo?e?A^;*VFx<2*O$Y+Y@vsLg?%9~Akm&^S2M)ZbOYo35#yWf97rkj zn%#3S=sQ|_Tu#PWXXPwv7665~_CS4RfHnsUfADpi*Dx=*f2<$R+QWNlD)6G>=(U-X zU6`O0D#L%IDPl5S9#lg#SAfvA>(_Spgzb3-WtjdA^CZ>?;L`L{59|AcPBvl!FP?hX zEH?OT4-LEb<=aE>9ul+}jpbP?Z>;|Im^a(E44#XC;M zt*u$!2v?#8xMW5kS{sIW+jMUr^_<`9c6d73gIRyDjcaGHhs9XaTEfYA<8JzGzkzcalSe96 zsr7%#*i3?B&u5#?vvcFKMD?DAP@E|zo9xU=gJ&%hAJAaL)O?QA8VeoVfgQnG;kn!5 zSpObV);5`rnmwmid432}!bUA~c>Dsvh;b0j3nmX<7F%%MaY+SVt3nQ)xs$zh-8n|F zRH%%dW#(?@X~!oNjUKQCob@)=z~(Vlh|)6mT&3D(kBm(c_BTIV-b2B$oQyLe>JEXR z8i<=nz=lb`@pRV^&xAArimQ8}6p66i@{_SG7=NXg1>N+pod-+M2k*R^SteWikU*$= z*3+X+JOmUl@~4mU9AISAEIr}`Glv5}CI{NX^_M0>UM>#;M2G{l0-S<#d3q9}58-kp zK-v$yarnaRFeL|Dd1N*_${3+tacpP=!LAi5*$G6?I$>wWr=9ymj9~ZN^JUS(;dbAc1vAQEa zB$Em2k7kcdDZ$F_fXoU|o!uNM#^u>+wtrS@C2*s?q?+GXGYf#G>DFQ1af5g4VF&J5 zS+nnsz<7yXP>?oD@t9z=?FmG*ZQu>h9Yv^$E=jz&f1S2F5l&B|+pwcOf-acp3qNvf z46@*;1Pd> z=(hI!+JB(B=GE@+J7YsUhh#6KCA?u0%TX*DVfh9)vIEfGbG{OVWr4MODCQ=FI_$}F zM_3|OS3FSQIUaPLuTqxvS)_Kh@*nvZ)S!Yfe}Tw`>L2Eo;K?`FcVJh(tZycuJeirs zkl1x7{^RLPTWyG+EViN58Ik=1?ryWy14-&E7uZs*@{lV&w2fA`f7tH0 z=laet9%LhT1k9qx!rRpw>Lq$a`sL!V5s%Vy#b6_?10wSHRW8(e)JC%~55ZQlKEb^|y8(AlDskccr@55#}Z#3_4YK42h8L$bPsI5s?97%mSgR16jS z+e223Ou$`+Q!_1wMujPK;oY8te>B?>-{|xT;)#iiZsl>>d>W)mL{{KspHYQ}j5@Mq zAl-RYTTvX%6P==ByL&^5csA^l2Y72V{WXmm@5?)8NqF9pQePX{=x=_yLFFHKhB_r+~BKe+{1XbW!7J z(ji(pnFcVvoSFfi+NIC(Ly&SX0i`|!42YYW%7P8QkZ7+CEl;+!g;S|ObOa(XPFo>Q zT-Cv5yWMcc>aZnzpkTC)&xxLpgjJ5!;TMk`jI7rkTCqXild`xWQ3ROTjtp}k5>5(m zVDX4UL$%$-78UZ4bP??^e;$YWSvdwYMI2tuVL)|Wr?fud@(wCB7=@%)ohn!|FO31J z3)w*!Ob?Fy`HdmuP0uvB=QoY9g96{#cKkgwJ$C>8+aBi=5pFB8@rY`Jfr(o-;zI)i zhPMOr*skkL;*hF_Qv~LjtgI@Yobb894G+XW)rf+kB)$>s`Id7Se=3gGvfg)xY=H#| zZv5waO-~U#Kr1-iQ2g4Gwd~*>PW##$hMR2~Lf0W%VU5TXt8>rAf_pByj$DyB_G!Ur z+5RCR(x`js{S;T0C-+SDr_tzm8a8^ zBNQCY)opmJ7xc}3h}Y89nwJ0IxP{f833XFiu#*JVg;m*LZEJiOf8nhX`1Md=i5F1L zHlu!>SKG1eXlKp*%v|28A?vF=vwcl)dK+M!7mJ;E9(WR>e~mR|IJzKiXK$lBJW}yH z_lg;JJKFbYowKFG5c%5NM2t2+i1vA$xROl~5c#fiBqyEb>>?QerIddG#d9hsR=v+~ zkK!PtE-~_O^ssoir7a6P}{(v~g|(I~dZ))Yed9Sz3IgMPsg%lGnN;4(#WUZa%v0u-HYbMpsfIDXUN zkB^#?fMDm8oZD*DbVMuO1m2))fP1zkLxA`>^JEt)e+OOXad)U;G3D^i(_|9ngOY{f ziOk4#&k$CJDG`;OUSTcLL0}GV_|EyY#Wu{-lmk|r3CTznyI{_FwpwpnSO}HTVutlj z;C5hs1hQ>&UL$Hg>oR}h{DI%l%$sog*-Y+i!KY^(lt;e7b^8r~+`OA3N>;Se>1pBU zN$&|ifBOC~L0#2JuRQaS)6*k*8SC86I@SxDlVrPx#p}|0iibV)KaX-ci*>y*Sc-q& zXko#@a#Js1i*12}CKr1o9L}3obA*!>YR5P_{AF~3C8Mbk~zri7ATB_RCR#C-lEFR-^Kwu%*CEi$Y0DL@y^%P6V?%X+W z`Np&^8_ovN63zaYn+OiO0~#KidYmz-5dAaJ7`bB`&*@7zed_h}slUn}`;VL+fLvx( zf97($?rjfe+>V}w42pL!N{1NRZF$ZfHv(`fr%Pm*n984>Ea0YlR))6el0Bq@92 z{6&w^4Px`NJig*-FLi)@rsxStvpUJM%BZ9Fem=nxn^@=6W|@|%5a*xs^xqdf2_p(&;*I2bJ^H1r$9KIRPGwBo4&CVLvMZ2 z80tuMLs`Do^FAnF*0ecv!09~A%0;s20%IBTH^VbqnCoZa6;^|@E`NM^fDGakz6%6* z{?Qrt;P4;kWtq%R{0MB+lo@*9Gsg!(FZOF>f|+xrfk;oh@awMYBETX9EzGcVf78;n z$GbmAu{ul{?$nf}1$cnmsFcIX;zQ172>P$h0Dc6!1tFlirkA5~=OdOwscme}4qH^v z*}7zhhLOw9SeRHkarbdoC+87@5mXoYU@Qf1ia4cRSUpozcx-ay)|P2=eU&yrk4Acrl1R+c~Fv z>Q0w*hNYhPL2zP0aRAiku#W+ckdZho;~Dl9L2Z|j1h(jS6sL+-_+fNR*fmb>{~+fX z(^1vBU-O7hBisPiyW4lVtRFhc<}AC1l~8fGKr`S~XG5DY8)_ks?A^nGe+bTm9Zt_e z^nUg}6c{5|WOaWjaS5}nMGS;dXJ&mhTT5A&qraK5N1a8pDrs;b#D z7Zp3mbx&Ep_+UIOdFW5~e;86X9S`l`5y>lt0hO(arQuv@uYv=Oi1s9k0W%jd?{)-# z?$$9%{tXT!c*EixFXWiMGnz#|O!$B6#ByNwwq?xz5U41?b=jut;7%B`%?G%W(`Jij z;E3w;_LBrkD!=Je&DL|&0F24W6HfH?SiMt>u9GWf<(#!*>-BW%e{eP1WnS>?@)cQfB$aL1=DOfugHhwuU)41o)zzg^}3epe9 zaOkloLmeZqf6RC0J(lyk86khTI{lj@x~Rw8M|?aK4(OFNgK`GjGnpWX^Er z*H}<+z*liy{fG*O;J@aZ3^ivw<7ZqGH#|JSZo+H1Hz7EB-tpwE-k05RBE<)SHEnMa zQxcn+jsWKgJvDXR%3?eF3qn^Axp($pDy} zhE{w4%;_yAl=Z!f9hcLg?srVijsgxml>Cg(kz0P&OkOtq4;$>BDznor56`IkeySs#Ze%38LSz78;Uj-#RbS96L8FHt~u z3E_p1f~)bqf5lND)y9?Wp^Nt%Hv%FYG34a5HhbnxznWh4Q(%hYFaNeA%V#V8}Qj?FH=&}i8{{A zcS4LOmkFOKdf+wMx?s!T`aC&*4)#Bm-erV{4c7g9ybOVTZ@fhyHf`fcX}$;c?dj77 zL3fa{gBv_8X@fo99)mg+WNIca{b+=7;T+jDe@*>&Zp#T)2@Yd{(OL_hGEAj}8;i8T zul6(D8!#ng!ulTT^6v&lV0>tBLRa(*;Im=$)4{3kE$BBa&pIv~tG(d`-F_Dodo$lX zcJSVt?MH?JUT7{XcAf{Y?+h0=Ws7&*P7FuFB)dote{wjc)5>fIK+pJd=Q9tcvuVef zf4}hy-jAKSh^ZU-8~h-L`{X#BYHm4e+)ie64%ABk<4#U{3b0y`6;6-Nc3ixsn6U)g z!rEOVoWGM9N^PJl-sY#_8upR7rhasVwGMpEnT4Lswy0z~dU&vHKQRL&bS8uuoT$P& zJ*<%3{lQ9}Gf~cA!5F;lxYu9Lf#$Y0e+oPH@Jl_uVtKY%@Fgf^N0KASn?Ejw!&r&O5?oeTwNqOwR?8;x5FVafel!cq4^CwE(D@2Y^zz*5!WH|y<7Ll# zCU%-l?S4)a?8>z`#a#ct-Y;p*rPte5;>-Kp@BU+k;?QlyG2j z9G3&|%v^rXr8Az!;;61{$>Qnz>Pe@Ft(Wt0I;B5gf_)vsLqhX(?LrGJ?|5?20NDLV zH0O)k3hYpABuKkH+ym4E*@*{Ee?a0vPa{Jpj-mAoQ7Wf;>*r>?widk}HuSJnjt!yn z5J!;fb}u*`M{ecuss4Iqm)$w}8mmR@(B8JCIFzedKi~~K3%Lw6(?j4HU#l3t=?SL~ z=^V|`P`v_Y)3fk#IYRR`$xcAyJ|6@L{$Vd$JUQ0Kz6W@=J$$cIOFSn(e;m_-1M%|c zL6l4NGgP+Y2nMTuMp521b^9KBIRIT0uza?{- zpGP%Ml0Htq=noG3nzeA!pewyR*tz*K$p(! zjL_#w$!XUX9Q>5F5YJacsQ>2g&P#gCN0`y-PX38b{p!U=p@Vw^X(I$U*Ae2VTIGox zfQ^0lK?2X|jLgm#vi0He^E<4kaDBLawr1_*d!idg^^-49q#mp@BE5}9_J0GvsE0$x zi9f7eKf*6Lp0n7?nkR;1yP`c%`}LEL7SZO99-8*p{92^jZNK;Dn7U!JGBLxnFeNeHu69R1QE|?wp@pXeo{=2J*21gtt;9r}D2pE3K z(^EaDgs|cZ6BdeCOFH`uy9|CB#3gxwm3Z6@%Ce@zbbnUsN!nu zpV2qvfWBLxYt`+oxsTHaAVXa(-2exNz-W=O*F4_c+1}f~XPW)}07boWm7ihnYybcQ z08mU+MF0T*5VK20EdvM_3o|Tu^$$g}fJu#9fBH{PJRpxjvaY8pKu|@hS%?S4P~~T& zgBE~czVBtk5c=>Jzxa9n^SQHU7xSP0$G`sT6`EJo2}lYEebM1;z}JfzHB&Nu5x#O~ zO}~YN3|9+c(Nxk_gIG0y{3%Kytmx#{9GBj#J@ z&Yj7C>01lrLkz?4jq+YgK3JI&=dBL!f2DUp{?z_c{E-9Xr9b~~3-=c07jDnr`To7{ z-@bGE;_XD)&n})>j3Ke@Getlg@mCvufqxkw0fT?ZIZOh`KmT(H5Goq67q@^W5X=do ziOq-!!SRCsnG}Y;Cl!##v1As6Rso?@1&G9A2z2 z%h_jcKk|S87|B-#$T^U+86e095;9aRkdIWGI3THN0U>fg5DR>BWEjAA&WK2P>Cf)W zzkAF6f%OCXynTCq{_gGDF(3p8`8xbNvk2;rq!cX(B4RTie*hmOJtqj^A2%dON*R!U z{^x)GQPIVs{E}sZ8O8ioCTpJK=RH+B@1DN)t}42^ag~|5+JD* z0GZ|iA=4?~k+UE@Yhlsc3p4~Esni;ZK?#z-|Q0XYj+Z^MEiU1QPhqJRne;9|0fv@FC@ce^e|;8IZY( z1yQKPlLmMTb2vxk~#XR7ye)Xa~w&x@#;-^@N=LCt(sX+a2@5dQyc zE=UI-YYHA#J_b3Lk3ss@q6;8l#Q%k!?}hyJO)(&MZqHx%!7cm3{JeAT*6rIDtXodW zf&d`GlGqs_Hi7{r!Vdrwe=ryY3-bI!B!^oPX8*&(#MK4IDu+kRMDnoFN(=%JQ2tK< zLO3g>800B*u>>C#1=j!~bIH^egisd-ynOik$s^Fr+~+f=K{IooU%L#NNmLeu(2W?7 zjRGL&re`&P^sPlR7poAYzZ-@TzSt~czVADp=OutF+`H%81Gnn-f8F_ecbwbK-CMVA zrx+9o$pZq)AMo%a6ntd$&9rO)00az4L_t(3e(*3y$Ui*%c@B{B>{enwB!E<75F!Y9 z%3Q2ckS?_ldO)<(yp$$$B*RRw3JXG=T>AR@#>U3_x|2U?`Xch72Bh~iZ<8Rs2nc`c z-#GGYj}Y&0EGZTG=etTwxX~Aq1KmgYz^_^U46w0kYpB04b>MijX28XBTyV^zOI@)4ZiK z-i^j6cI5hQ;D9kn0J%MXcmD1VzVn^`)xLe<)~$Q<_io>te=k{(gpkF|kwOa+I^50T zb65on5~hRzA9fa`gM)>!R1pwLlz`C6$_Eni)B&QM(5{=s+HY~N8U+@z>H7R1AqFY` zfeZ>r?LuJ%kZ=s@%qPzx!3F!)d}cvF+0UFgd**CBjdeC>LD0KmKnQ|T0fYq%Z3yrY z1_>aP{_uylI3nN0B^?Mz%vBi>5Yd-V=V40c3bUWk>jL}I=+x-1*o6x}01J}2SfK4<$B0-`&qW##orCi8JtdqEQaR@# z_*a2Ae+R6`d$*B~+qd5Pk#Mx~i&aLt17c(_7i%nBEZcK~AQz|~k?X^EP_lp=n4x5YR z*y9Ld5axL~KrYyK@!!4w&AI2y-@AM7-tD{hf2x4!cJoRB`G<$k6Cfl8-LX+bce<>S>~!3Kn@om+{NM+#BowUE?&3`NZf_U0|g@VyYqK*7?cQ+03!Gx#dDAk z5);BBkXyIj`wOrhx9;4b6wQYL!~k*#0l`@;r)WXIue#?5I1mzC2f5uF5Wz=GNF1c! ze|qn|AKku1fsd!`U9|>~qY{H~7t3*2!GgSZ@6NqDm+swLfS=%B!T;O$`T~;hAqWwF zM?`MZ{C*R2RSY19&&5K`EClI4eCdbx?)}++`{BJmyZ2{z;2Tns$Dl|^6_A*Zd`iX# zCnWhhUntDI=h<8p1IXd&YC-^zR5t;TN<={c5WJsI+*F8i=hF8JfVg@<+$taspU<81 y^XIE!y#d4kV#J66#E20Ch!G>> buttons; ///< Per line which buttons are available. @@ -1870,7 +1872,7 @@ private: { ButtonCommon *chat_button = new CompanyButton(SPR_CHAT, company_id == COMPANY_SPECTATOR ? STR_NETWORK_CLIENT_LIST_CHAT_SPECTATOR_TOOLTIP : STR_NETWORK_CLIENT_LIST_CHAT_COMPANY_TOOLTIP, COLOUR_ORANGE, company_id, &NetworkClientListWindow::OnClickCompanyChat); - if (_network_server) this->buttons[line_count].emplace_back(new CompanyButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP, COLOUR_RED, company_id, &NetworkClientListWindow::OnClickCompanyAdmin)); + if (_network_server) this->buttons[line_count].emplace_back(new CompanyButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP, COLOUR_RED, company_id, &NetworkClientListWindow::OnClickCompanyAdmin, company_id == COMPANY_SPECTATOR)); this->buttons[line_count].emplace_back(chat_button); if (own_ci->client_playas != company_id) this->buttons[line_count].emplace_back(new CompanyButton(SPR_JOIN, STR_NETWORK_CLIENT_LIST_JOIN_TOOLTIP, COLOUR_ORANGE, company_id, &NetworkClientListWindow::OnClickCompanyJoin)); @@ -1884,6 +1886,12 @@ private: if (_network_server) this->buttons[line_count].emplace_back(new ClientButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_TOOLTIP, COLOUR_RED, ci->client_id, &NetworkClientListWindow::OnClickClientAdmin, _network_own_client_id == ci->client_id)); if (_network_own_client_id != ci->client_id) this->buttons[line_count].emplace_back(new ClientButton(SPR_CHAT, STR_NETWORK_CLIENT_LIST_CHAT_CLIENT_TOOLTIP, COLOUR_ORANGE, ci->client_id, &NetworkClientListWindow::OnClickClientChat)); + if (ci->client_id == _network_own_client_id) { + this->player_self_index = this->line_count; + } else if (ci->client_id == CLIENT_ID_SERVER) { + this->player_host_index = this->line_count; + } + this->line_count += 1; } @@ -1900,6 +1908,8 @@ private: this->buttons.clear(); this->line_count = 0; + this->player_host_index = -1; + this->player_self_index = -1; /* As spectator, show a line to create a new company. */ if (own_ci->client_playas == COMPANY_SPECTATOR && !NetworkMaxCompaniesReached()) { @@ -1959,7 +1969,10 @@ private: public: NetworkClientListWindow(WindowDesc *desc, WindowNumber window_number) : - Window(desc) + Window(desc), + hover_index(-1), + player_self_index(-1), + player_host_index(-1) { this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_CL_SCROLLBAR); @@ -2057,6 +2070,30 @@ public: { switch (widget) { case WID_CL_MATRIX: { + int index = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_CL_MATRIX); + + bool rtl = _current_text_dir == TD_RTL; + NWidgetBase *widget_matrix = this->GetWidget(WID_CL_MATRIX); + + Dimension d = GetSpriteSize(SPR_COMPANY_ICON); + uint text_left = widget_matrix->pos_x + (rtl ? (uint)WD_FRAMERECT_LEFT : d.width + 8); + uint text_right = widget_matrix->pos_x + widget_matrix->current_x - (rtl ? d.width + 8 : (uint)WD_FRAMERECT_RIGHT); + + Dimension d2 = GetSpriteSize(SPR_PLAYER_SELF); + uint offset_x = CLIENT_OFFSET_LEFT - d2.width - 3; + + uint player_icon_x = rtl ? text_right - offset_x - d2.width : text_left + offset_x; + + if (IsInsideMM(pt.x, player_icon_x, player_icon_x + d2.width)) { + if (index == this->player_self_index) { + GuiShowTooltips(this, STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP, 0, nullptr, close_cond); + return true; + } else if (index == this->player_host_index) { + GuiShowTooltips(this, STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP, 0, nullptr, close_cond); + return true; + } + } + ButtonCommon *button = this->GetButtonAtPoint(pt); if (button == nullptr) return false; @@ -2267,17 +2304,22 @@ public: this->DrawButtons(x, y, button_find->second); } - StringID client_string = STR_JUST_RAW_STRING; - - if (ci->client_id == CLIENT_ID_SERVER) { - client_string = STR_NETWORK_CLIENT_LIST_PLAYER_HOST; - } + SpriteID player_icon = 0; if (ci->client_id == _network_own_client_id) { - client_string = STR_NETWORK_CLIENT_LIST_PLAYER_SELF; + player_icon = SPR_PLAYER_SELF; + } else if (ci->client_id == CLIENT_ID_SERVER) { + player_icon = SPR_PLAYER_HOST; + } + + if (player_icon != 0) { + Dimension d2 = GetSpriteSize(player_icon); + uint offset_x = CLIENT_OFFSET_LEFT - 3; + int offset_y = std::max(0, ((int)(this->line_height + 1) - (int)d2.height) / 2); + DrawSprite(player_icon, PALETTE_TO_GREY, rtl ? text_right - offset_x : text_left + offset_x - d2.width, y + offset_y); } SetDParamStr(0, ci->client_name); - DrawString(rtl ? x : text_left + CLIENT_OFFSET_LEFT, rtl ? text_right - CLIENT_OFFSET_LEFT : x, y + text_y_offset, client_string, TC_BLACK); + DrawString(rtl ? x : text_left + CLIENT_OFFSET_LEFT, rtl ? text_right - CLIENT_OFFSET_LEFT : x, y + text_y_offset, STR_JUST_RAW_STRING, TC_BLACK); } y += this->line_height; diff --git a/src/table/sprites.h b/src/table/sprites.h index 039d50b9de..b7bb910203 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -54,7 +54,7 @@ static const SpriteID SPR_LARGE_SMALL_WINDOW = 682; /** Extra graphic spritenumbers */ static const SpriteID SPR_OPENTTD_BASE = 4896; -static const uint16 OPENTTD_SPRITE_COUNT = 189; +static const uint16 OPENTTD_SPRITE_COUNT = 191; /* Halftile-selection sprites */ static const SpriteID SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE; @@ -169,6 +169,8 @@ static const SpriteID SPR_GOTO_LOCATION = SPR_OPENTTD_BASE + 185; static const SpriteID SPR_CHAT = SPR_OPENTTD_BASE + 186; static const SpriteID SPR_ADMIN = SPR_OPENTTD_BASE + 187; static const SpriteID SPR_JOIN = SPR_OPENTTD_BASE + 188; +static const SpriteID SPR_PLAYER_SELF = SPR_OPENTTD_BASE + 189; +static const SpriteID SPR_PLAYER_HOST = SPR_OPENTTD_BASE + 190; static const SpriteID SPR_IMG_CARGOFLOW = SPR_OPENTTD_BASE + 174;