From 53904b1c40165c22ddd6647f6ec2258fdf1e2dee Mon Sep 17 00:00:00 2001 From: "n3ophyt3@gmail.com" Date: Tue, 21 Sep 2010 21:16:08 +0000 Subject: [PATCH] Added an option to allow an intelicarded AI to interact with electronic devices. This currently reaches anywhere the AI can see, the range might get toned down. The little yellow light on the intelicard turns green when the AI is allowed to interact with things. Removed the malfunction timer, as apparently it makes it too hard on the AI. This will likely get replaced with something different (and more IC) later. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@136 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/atom_procs.dm | 18 ++++++++++++++---- .../game/gamemodes/malfunction/malfunction.dm | 4 ++-- code/game/objects/devices/aicard.dm | 13 ++++++++++++- code/modules/mob/living/carbon/human/human.dm | 6 +++--- icons/obj/pda.dmi | Bin 10168 -> 3361 bytes 5 files changed, 31 insertions(+), 10 deletions(-) diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 5dc968b388d..f01e08f9a78 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -174,13 +174,17 @@ return DblClick() /atom/DblClick() //TODO: DEFERRED: REWRITE +// world << "checking if this shit gets called at all" if (world.time <= usr:lastDblClick+2) - //world << "BLOCKED atom.DblClick() on [src] by [usr] : src.type is [src.type]" +// world << "BLOCKED atom.DblClick() on [src] by [usr] : src.type is [src.type]" return else - //world << "atom.DblClick() on [src] by [usr] : src.type is [src.type]" +// world << "atom.DblClick() on [src] by [usr] : src.type is [src.type]" usr:lastDblClick = world.time - + if (istype(usr, /mob/living/silicon/ai)) + var/mob/living/silicon/ai/ai = usr + if (ai.control_disabled) + return ..() @@ -205,7 +209,12 @@ return if ((!( src in usr.contents ) && (((!( isturf(src) ) && (!( isturf(src.loc) ) && (src.loc && !( isturf(src.loc.loc) )))) || !( isturf(usr.loc) )) && (src.loc != usr.loc && (!( istype(src, /obj/screen) ) && !( usr.contents.Find(src.loc) )))))) - return + if (istype(usr, /mob/living/silicon/ai)) + var/mob/living/silicon/ai/ai = usr + if (ai.control_disabled) + return + else + return var/t5 = in_range(src, usr) || src.loc == usr @@ -218,6 +227,7 @@ if (istype(src, /datum/organ) && src in usr.contents) return +// world << "according to dblclick(), t5 is [t5]" if (((t5 || (W && (W.flags & 16))) && !( istype(src, /obj/screen) ))) if (usr.next_move < world.time) usr.prev_move = usr.next_move diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 259290336d9..aee512563b3 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -76,8 +76,8 @@ /datum/game_mode/malfunction/process() AI_win_timeleft-- - if(AI_win_timeleft == 1200) // Was 1790 - malf_mode_declared = 1 +// if(AI_win_timeleft == 1200) // Was 1790 +// malf_mode_declared = 1 check_win() /datum/game_mode/malfunction/check_win() diff --git a/code/game/objects/devices/aicard.dm b/code/game/objects/devices/aicard.dm index 5a91f323b70..5f6dfa6a01e 100644 --- a/code/game/objects/devices/aicard.dm +++ b/code/game/objects/devices/aicard.dm @@ -40,6 +40,7 @@ M.icon_state = "ai" src.icon_state = "aicard" src.name = "inteliCard" + src.overlays = null return else if (M.real_name != "Inactive AI") @@ -92,6 +93,16 @@ src.attack_self(usr) sleep(10) + if (href_list["wireless"]) + for(var/mob/living/silicon/ai/A in src) + A.control_disabled = !A.control_disabled + A << "The intelicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!" + if (A.control_disabled) + src.overlays -= image('pda.dmi', "aicard-on") + else + src.overlays += image('pda.dmi', "aicard-on") + src.attack_self(usr) + attack_self(mob/user) user.machine = src @@ -121,7 +132,7 @@ if (A.stat == 2) dat += "AI nonfunctional" else - dat += {"Wipe AI"} + dat += {"Wipe AI [A.control_disabled ? "Enable" : "Disable"] Wireless Activity"} user << browse(dat, "window=aicard") onclose(user, "aicard") return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index bd7f49e9cd3..3a4ff8c42a9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -150,9 +150,9 @@ stat(null, "Intent: [src.a_intent]") stat(null, "Move Mode: [src.m_intent]") - if(ticker.mode.name == "AI malfunction") - if(ticker.mode:malf_mode_declared) - stat(null, "Time left: [ ticker.mode:AI_win_timeleft]") +// if(ticker.mode.name == "AI malfunction") +// if(ticker.mode:malf_mode_declared) +// stat(null, "Time left: [ ticker.mode:AI_win_timeleft]") if(emergency_shuttle.online && emergency_shuttle.location < 2) var/timeleft = emergency_shuttle.timeleft() if (timeleft) diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index aacced9005c1642dbd8283b0add0e396b756f6c5..e6ad2a0ec42683bd8635647c0ae86eeca02112af 100644 GIT binary patch literal 3361 zcmYLLc{tQ-8~*)fFk>5&{b(?gB|9ZswrMO`3Q;P;SVG7yvdzd?I#Gk{%TT9-A`VIR zk+rOK97;KZ>{-SrOPKkl^PTVd?(2G=cYFSM-ur&;>%D7dbC#b+f(HNqeoG5ed-hEI zIp9!sybdYS0syeu?%YK)DwV3Mt<65v(vr{5i%24QMnyUi*?v~=;-)% z0*K4@_KSDaIH}s#*Ec&m8*}^i^D2CCmQ~ta^PDVuA9wAumL}O*S!sz@uEEy9VF7`` zH@toEZXVY(^8rn7z~R#Q;o)I2nLIHuK}tw4(p>JH=kZ zUOw|Q1IW4!B;EvqoPoQ-V)sSF6%`dVH8o{qWO{o62?>cCNWt!Ips|r%Xg&aVKX?*d zqN^JxB+8<)SP`t@x5^zY3L!yaSw81kvp1X37q5hyUJvsOy%8LKBPb96 zqKeWV4j^8mk!BO~%Bg|Xo1L%Ik2-i>TQV*!?HPSUe86nO3wa71T@RGk3&SUKn>0HG zy^L{MeL07zcKH2w>$kl^nTFZ)>lO=|nc4Qm)-?IyFm)5%S3E}Oe7o_a0IRyJ`Rsr% z>S1%^CU$Bks$SR1BxhTyoXY>ix|ny5T%d!wmL^)9nRxrmLby)G$}dABdjZ|eatJ}s zwZ!`F`{C!)U51vpT8gztUevkpz|-vm{s2|ps^zJqo8`l_zdkmhDzv&cpX$8?aHh_e zw~Q+c$n%+<-`GbiN4v!`n{<}G;!|-aV~qfSN6ymp%*CjpwQKyBkM@aNdhwgc_+|9{ z)M{;zQFd&KWy@c&dyMkH*#{v`-)$Ud-_Z_4jzeBFReZ=M{L-D76he-jY1w$MpE7_rM$!IYw;W^A*lQBQDmWCNTc)L zK~9>-4j3xz*EDQInRQour$QX*&Nbp``0yC1ihV<=PSPbejQS%1)z+tirL%_##PCu* zBsS-9XoFQ8v9Fb7K)=WLf3zm3#knaHmVJZ4=ED@HJ&AW0z&=h#pIN@*VwY^y+Gb9p zA6;h&tLq^H`@`*FT&dbz!m(!=sMDFllR|X{4x?WKO6RUB?|){jW-533>PocYo-|f( zAJuuS6Zk?V_AG(G_#&8jNC}Vqm7BaT(1tRx-{C|1OnNMFswYoNR;&8z@_ zV+HK47a`Q{*q)`J7`l$umSGAJLPxzwm^Y9o^QPV*`bI#wf-L#Ag&?NeEjkIj$XGWW zHSC*u>qqX%3aZ4dhr}{LBN!L9HMR%*4Tr-(gZSiRwP~#E%wSs% zZ6+a5iy$;(&Clo0fiw`(fJ;{Covc8jx1}qPf(9Zus}dK%hO#9nN(nsg2W~UFg4q<& zmn78|Po%`giu1>d^LcdrHq^Ma?P(xJ-I`PaJy`B};z=B~>A1{t^RkuWCz160mjeBa zF77e#jY;aOMStiZw9%?-wA$GchkYcbF-ZLZ)LmQ>qWXAfxjiG+=cgUA$_pCoj+I^E z4N(}!>AJNLnSyx5jPRGV#f_Df?4^}ZmE(toh782c_iwKj{4WJdeUSUf*==?o{0rNe zh#xHrKaO4_PVB|7Qn3+kzEu|zK2?5dJllt&S@v{HvXIJ5qTV6XiB~>lL%?JEg%UlS@OY0RB>nq@d#|l+ z8DwmPmH0DBg`IR`{K!KD5+f^##wi3WE>e5(*$0I=)ViW!Naf&BrXq{nSy-ugKB6dO`gY)G+?p<7}9Bt z0zs?SuDD_>F|%9g^E!l@QCyP*U4-4nlqUh+n;9;Z~3KSXD-<2Wa9-mWT1x5yvE z`j8in*3w=W9I>^rg2~GtFFqJd3&%%$_kQ0Hz@Jc(yn>+ktlMJ z7)>B@E3Bzk)s#WP7kRVwh$-an(>18yfMvD~uXH=U0k`)|;mgBfN@3_a6dVn?^-{B? zC4Wsa33{*`2`}5E}yFMiK_ekN{|6 zIJ{?PmOieJO&X2&CKzw&OoADN6y$5k{#7Z|>ieH5Dx_f8?9G^%n=gPrIsnXz`#e#3 zw|9dHlv~(2+T9ENlUKbVIhLRYfheBz0+Gt-R`BBOH;|Pi3vrW>E7Zib`KhUntjA;( zwvfJo$Wilc@TwH9qQD4j&rzM5lF3kB)30x5&h!7z(pSI~?WYTdq^Y_9 z?c9Mi6h?JyGxu<}6_HYPosUinB6F=o1#!}2V#cYDKbPtM{q=x3b3xmuL#k7m@bH;$ z>HVEeT5EmEe8mCkU2ryk)0Y|hocU8~ z=E2}o#^O3%W-Q@L7NOW{>*{XIIbAeke`!XwDmT2&=KaUJixE60TU=C1Aztd8Z!hbT ztBWecDTc#~^?L^)qBA4I*<;B6N=+)4GOL?66H9{qs+s5iBUjmJAu=MJaK+ z2R;5#C>#3ZfJr|#LtU<4R4*x3;`p%7i^P$jJYX~|-h0q`d(r1Lm_d>5J&QroXZNR8$Js{d_Bd4QP4CL8#R~#HX%9|I(+nP`{`Q@9*vzS6*D>d)Z+Z)!6TPNuNBhXlqj{ zG-n6PCVr29icAsbMs#T{kG!aS(e-(f}7J9`70an^k? z54yI3hmMN>gE4N2sJiia+5nw0F(!L?bb-C1O^p41&xAs#30m6Ph(N?K+lE1!9xIYd zW#4%bfVmczg-Gh^>PBgzu#Am}`)`d#eb;;tsMgcO9p&xkU9I;JL3f}vBq*#G6qpuI zY7Hbie?XwXyCctBn2b``|r++bjLnbQ%w zsqE~R$qYHNfzCIx`M?+?dzK%!jJ~|RaqZEi?EB_MI;bb=Y={vdZ4$!4*IiHp?(RKd z$M}J0t2y)w#EtPoiM?vl^GM*;@c1zWqV@TzSb_ZNYf5XJN+`m-m%4A*3ga*UKnswQ z5?A-kI?wjID= zJ&7shxNeqJIb^pzth-#O9x|k)rkZqvI_Tdm@*8)9*iD!NgIdD!0jN6^VTfcAHe?va zv{m_^5U73j@WT!HzrbHH)&?Ls#UdxV0ip+X$izCTcf9uZ+h0cE2SIP^J0#QsgpVl9 zEEyLq&szMfhDZI8)+Z+va_0#W&YuWcTLsy@4qZk^n~gW_$m&vj;OpHP_^EPuxyrlw z;x~Hv$*b1Wd;YPUEqd9|?}w6(|0Kb6yHvQ*>62C?-uI-eGpLOoqojL~eY+b~p$sdeeRFJcinj*t|Xi zZIcUS3kt?895mALqcpEyIjpXWl{k8(1MWQCY?oAyuF(w6Mlw1y(vx)o0+9n!b&$dTA}uKAlsj5@vFg61D98!d*XbaoD}_YT>6bj!=Qurbqc z4J0L#|BM`Kz`%m?N7)Wv`cUtdh<@9&%4qpO&w!nk&?1wgZ?_Ova$lS zp;trN>?AS_u{A|s+jc`9E|f*84`hj(*L}ra&nbRL{+Vz4qlm*`gwM?lj%CGh@X#t^U~0cXI(qe^GI5(Q zOgUhb9F?}jg>PZV24Q%ZNA35QXmfpBsC!r+&jBmI{bE^8MaA-_-Db)D>F!b{q%tR# zlK;KuuyGu+n`E6oO_^OBJ&<%m(K{46cw4LSql7$ZZfv_nhKC@2~##%~^lx1&q^?dP~>Oo%uUa6is zK=o*S#l>H#O;B>_89#E;PSBCI7_!mnpzzpP5s$9U5_t9mxae-FV)!2`d(U3B)Lh6-%|7^pz9)*GR%2K!skjXbb;b9NQQaiST z?8feTwQMxOsRr+!C;$|cA-Izb-!dUsbH$2Lue#03GJ1 znIkjbMss4)_|s!(dyNta|8JNa=;t&cJ(&C}spU+88N_zMWXz`Csb4`%{32`G|AVrjr@V;%R?~Y|`=GeE`n2PR5yx>%u$iWxhi!SYahbi&E`ZuE~JnOGj^B`E>+5mii zK4I9g3BtF>@L#)HW(ZQ(NJl93f*gDLU4{@VD=U4toj{MnXVH>%(?Cnm2Vlq|kB;3;~ zMw_56=!@@Y{AdMN>-9?lR>UZswzEM!HYI6BW?*a72Fn zIQd!_!Lnunsm5(gQ<1MX$R&LDIv$9Mx3TtyAF|?dVA%^>VVXR9U*O}j7uLKr5qqAq zxs3A~*(C>Rx-2YC6L9-V@lWG_vmN_C5VC>({{I?C{y!X2{s}nz;`>-130#b5gh=}X zkWfE_O+Nz;o#8iwfQvQS>~U^tLc~@FetI4E^+Z9sz{i@ob?aHQOu3=j?`p~mAcRdccPy0YvvheH z=x7-k_X&_c?H0;f7GE|xCgvA=F}ZBbPv#AymWVY0iH~P%l;xf#gYG09K8?@XA9nj_ zMD#~ue__x=NT>Xa z`28LEAT*sx$_@Jgy6q-PAayN0B|kO}!$8dilUA=gTu({Dp1?A_ zQ&!Oza(C%l{JIvye+9)G?&>N;I~TOQJz1d~)P2hk7{XjY%Qbuf$ZkSX>`=NkAc5!~PF`qG*1*VP6ob@9X1DD2lk=u6eS`N*dP67&GR8HV zvMCG<_L$mDrs;VLbMS9Vwc%WiTC7>Io!{UI9o_Ny#r~TV?!sl;rw4ld?{+U2D=Dq4MlZr^Fd2w)JFjBaP-eZcXenq6-Gdsaks_|gI1>y_0}Ex?$lFE) zN$th_sq_vfRh$B(_R|b#D~AB|kcEXids5k(cir&LEpL#~?|BqDIB>-yTr5|0#Db9P zl&bF`0T5W1O)uB;t@TvE4vON@pVF$P>&ss1Nv>;{HJhMdQj?S&x5={#&az&LlB>xV z?=Tw^g&+FPZf=Yfi(Awm-5RTVM@$2=g+0PLs>;Owc8j=Ot>E(Wvg8&aicS(@;&K)` zD}@$AK6Wl-2hcZpA@dG_8Qs8n&AIlADMm^2EUm+2AQgnsF^`+-jmp5s4eHiy*aaG~ zfjPRri-{oZ?`9eMN3%=m9IoaLUw#{XLc#w4D)90=;@GdoL^7j^lqm4QkXj|z(Ed^P z3~9C1r9_x3I6?_GCyXnJR?1Vj0nY`{@NiyZffP`IZv&2n08p`xkpEv0xY&ADAjoH^ z73w?r5sZZiS7%O|duS27Sl}rGFtJf2J6w1UN zvx^8=>>2?F_=TT(zM~r~&oNc5*szOLeE;VNITa`nX!^i%s!{5aH_g2B(k~cwt#tgi zMM;P2m+a+Q6j|m0nt-|BV1Re*!C|$JVOUoZTVv}SnWPl7@ig-o(h(^pFM=Hq^Oh~M z`4^?s^&6^&%iSckYBde+wU_q$92#*21ol_l9S-BWH_hRXj~mWof75`js$q^Z)O!!o zc@T8C#0znc^zzLMhkU_MJ_t;r&p+x=>zd}HDv0?f>ttyD45j=yM~Lr&<*=MwT|FBe zVRg3b`Y2(|2A$s7Kx!v(0i$4iYc5zgXNUI)oM3v&NPPF{ZJJ4h9cp#@>C;x$N;k8y z?W!wg>)HRcd*r!aU)DAAG4%=aBR(z#7!I)0z`27ZN7n%f$USH<1;=R; zBh@V2%`}MHEUNwisFA5O&>xS$tnH7a^D~uuU~*2$Mw%FJqYl-ZWXmat+Iug7^8v0B zXUer`s@kiN0|TJ-A6RR}#XtIoAs*&s*nXJ6MfeOpyxo+vS>OZ^+(dc$%H-BmGd1Cv zJL#r^5);?_;aCA5CC?ItX9nVuPdBwWw;~#+a+D>X7D5%UezX@)oK*{cxCF-@d6tJH4k-zTz4<0%Px#$1toL#NubZhVFp6o zmdcseXia((&6aMYFAnbrr?-jt@{*bv!dFjRK&JuX-xd&@e~~w>X*q3A=L3AFSc~@g zEhq8O?R?rnq6KG&$7TosRW&C)0QUPCR{DevIETI@lOF z#8X^f%8Y?s6Iox@{<*#2*GjEVAR2MGum&o!SD}7|ojHJ$;5A|)n7~&5&{2{!*`=&Q> zGRr|#Peu5<#`pIkTaQh*UE=y?VIVvmEY91Mw}1P^i#{lLELN45cpk(<4Evt{f!tm) z5G@P8erzlN=O~xP_|xewRYSO=jWtr1QFDCjCN!=1LB+ssKc`w4DLWgbosIyk;r7E| zw5_!5vGV(sa`6e%IYlAon6evm!%yW_sQ}PuKVf*vnSCK8jJ}UXrY3|8S}y5Y;Gqtz z&5g;ed-#hds1^QuF_wC;DyDzr*8iafdwSQ650=RxH{aA~4f7;j*<1 zuOi>zdYu$-_GI7Qe)cGjIr4)q!)7Sn!}2Gx^<%kVTR7*OdH9~zPe8orb;Ry3iyW(^ zHN88jj#F2!tC{(Ols!b|AXkCEOk%yrk8A&%t_M0$FPh8A; z`qgHgWf^@}0;1vC()AYrlZneKUy z2bRGhBj0GqY|EUih+uEOhS}5RkDTSZKkfvMe9ZU^Z@X;*GWsa1JH0jk+GNrg!*$9! z@J(n48dFPr&_A2iUn9gg@$qpoABK#9f$?ZQ$H<$eCFK(pPa_2E zrM(5Q@1^-{p_aGRmM)S2wvHZttU#YG$sfy^bXw_iYYC-mod^QMy=B@FL?k z3x_cN;k4~?4Z`zwpO{%OHYM4+FW>C5c;FyX;phJ2-{Ri=Yk}cl$xh$Vi{syEy*EBb zy`)tr2?p`9q}?5086$V{hE`JWO=zoCf=|YCJ9EG?39YuTFB~WN?24)vJkAngeUWnoh zz~D1Pj^95Mm}HLXC)0s2V%F%(pLLIhPaUn=q&VcxN~^|h=rAwXXD%o>UeF@+0C?Zh zUeTm03U|ryN&2w`N=Mg{y4GA_`1_cR2CL-9!{_Q>tsQvlu>qt0kA42l1X6^PK@N>m zQh_mzQ$iMz#lPF*HyzNkrp|07;6o8uUqbwH1I^Zi6o*mJ#O;(EINCn&MdfDhs@YqY zstmx_Po;Kt$0$L!b%4P7Z6w>fCn}WEk@&n4lmt3GM9~>T_CV3jLYk?)waY8E`VtTI z0WN*XFIQKh|Dl_AdL-|zJFRS2Pd>b)VdacIaYVarUx$^#**qMd0eNssAILxsZ!N1$ z15?=+RedUw&NwHJryaqe#K!P-2zI?Tq8mgdv0}m!rMcT^qi-TGDEWIS7NSHE8xpf{ z-1=?)2c%O3?Ru#H8P}h<{f?UtyRW_tG!xZbc8f0@8r?O(pn0;~w@1R0xcojl+a97% zI1O_;w3UxqRobUHC{J4sm`4FGAB66lq&Z;E9a`zW?eFCVGu=+ruP|9aA3vhN4~4cX z=`u0M^r7}fwg>8qfti_W9jP>?bqU2C84|m|e6&y7<=t~N>1s3znXn1bO|F3~9Dl(3 z<34{vjDP7V`3ufjA?)wA^QTx@{9~^55L1g!vk-{yxQ2$uwL#t*5oX)+wtRA%WZN4;O7di6`$O5@|qyE7kyp_IJ;4%skF7 zf1`^YjoPK0=FX>8KoVgA_HbZUTaTwX3J{3pBY{W_Vr__l2&L-|AMeG_O?d+8r%IejS(i=kg_EDe+ zab;vjLNy4hLfb3Wap#>U{Ch{3?7oGnRg?x%W%|Ixk^Lz`?WlA%kRB!;R`y!~mgOyW zlZPe8WMp|_ighodSt-m6{11Y-@tz@UeZ7pSNq_dNm+7%N30filX+`8!T)8_jhb>NT zX$Imq%G{UlKiJhnZ5=I!3rNFD&CpvvyiX(TZRz49;H2i|l)xm^sV=K)Yhjgb?fJ-< z28{o%>N%|uY>IK0EXk>}x6?gJJ$oz>a`L&SudvwvB)!!6c6wm}XYa6B7oj&2H{c`y zil_c6rv}o+-Tyc52eOQ$Cf;okQ{xBP#E(cE4RyJiQL+Un!Z&zcE-QV7gC7MZ?pQnL z?5o1^DnS2iE&NGDy(jO;@b!fuaR4RVvH;0Kb|5Z9%Zt;N`sxWx5iNv*PMm8H=HYw4 z+odbJ(J_sIH;yvu!7H$j@kAlN{6Yy)4~{2dEfp4AcKlnGP{w>!db~}MPB!m}cBsQz z^uHU)ViFHEe#v4GH@-c<{D@+?wp*?e`0a^MfX7)<`Y_uHoW>cP%_RQQ7-c2B)SH{B zuzP^8ESQrPb9kUfe?jyIFunz`vZq%l)tR`(TNNKAN{Tapn&anR<2q!Tu+rQFj64nB zdu5E8(Jv}**S~5hmFbH!dMC+o9Cu7cTj%KDM3GVI+`al|!LHg=z+vKfhT8xIY?OP;O0R=Xld6S*H8b-NJFUToV&p^xfN&oj^ zZVbs1gu5sf2TyV}^7;M^3GxRj>Vf0!IZXLbWDWQ>Up>;EV)kxw_L~&M4hL|=S6haJ z0T$~Oc^*l*L$uE-!%h^fc*1ubWi?O%!{8|mt!eAebDuC@>2n<+$EF$o1fkq9(b4}; z6p9f*whBRv(oRwDZ6A^g5!z2sgaW8xPscm_XZ8h1OJVzuw~59M-A}LR(@IfFSFenE z`4g95N@W}%?wHiAO>x#EB7>1V#91rGQ1z2OZSlK9l|qowG-8a#%-P_lnos$`4GCkp zGV&}UN3=c1v?ND(eMh5K3hK$yoN`~4r`+$$>wemK&Fj!ox>FS)8$_wEWA4RG{a*37 zuWwwq5v)D`-Ui*dT0vveNNCKWuw4enU@LrO3y@N*2*org=1f4$HV!Pw&^bL;;z7wm14)YDAsZ& zbb6Aq_)$Y$xlN`!Oqv#btD|ZNd&)S=!joplhzm-u4Mq}dhEI;sp(jt3mM?)Wbi8z+ zmm_n8z2r!$Mr-ZTi4kHC}THbx;K46ih@x*!z! zjN!fbi%=j&4$nzVa#&<;snMJJ@?1rQtuL81D)Kx&zrF&ziW0>Um1TG|=I4^Jj4OYe z0uuKu0~*Im;vTg3-ztCUrvAJeb~uzwWuL4%QRr2OGhArpqS-^J;)2tYOsR>qDUbir zb;rk=e9ylim8vk(%(v(aafFUhSC7ug6R~ptvz9D0OJIHFcPDVHi!gFLRpxD@$Z)kB z!w&}CN=+P74?C?Nr=~U8Fv%Yp(a13TE8@!EeZ%U;uSa4CUF+Bhe1CD1ZS?)TZED-= z9W|MBM0x#d*DOu{bWML@Gi6MKzG}z%Gty>_qIeYO?wW8Zoi2e3hV+J|H!MU!wW5(B zd4R4=jxJ3;V`80F>Pzh>`X-J!*1%YTusf(f9H^8o>v&zjyGXj)Edd`?7Wj_m4sNm6B?m90VIox-($51-d(XL5NDnNn3^iW3O zwqFWcE{h>HC#&dHq!!o(l+$N;-M@~=UeA8miXN6A$*@c@c&jZsQZzfRgv@3ifxL!% z07FZNiA-jgW?}zt)*{s-V~gwO_z}HBCPd?&!4^gvVW6R$4r0{R=sZ2xR%sTSQ{dS$ z?%47i$d$1r5ckCD=JtapGpZGX`6~+e>?9UN_Jwz5O+)2b?kmHaAe^jijEy~(hr3{K z-x>r}ug4F*gDz+OUXT28*VISpxe`Nx5JWwdCmfV7o9-E}S=Geo{B9+^rf#}XPSGoA zYS%7&=XjVov$j4)lTnZG7ab)blV?x7Mdgl&A8k%x?8J#^OSJ{FY3&U)4r6lnyYX}~ z>MvAR*+&e)xbcxHF};&K)*0hJZ{JV~Yv$Soe75SV15{Q{w!)fVW~H@&_Z$vByhlB^ zh&)yWk>*K93T)w}B?;=fo*7;k3p+i`uNFhC$c46yE4FavR0t}x)aQry|4Srz-j?Ei zA-{Kd+xhE&0jFA#ew#zY+q1V8%Y6`YlH2T)F{TQzts2Ra7yY|atc@#8MKJ2LECGu^ zO&toMsN9e=uUA#tXZU76HFcvN8*R}07~=I!mssR-Vj@}0{{hfwhGkA|;PY@16JL^m zBBn!`HytyP67iePDxctfyy~NGodi?_FAGEAU9!QKQWU|BiF8FJ4>C1oL8G z>~W+O{F@h_^$k7zuGuX-PcKmjsPHnV>xD{&+`klmXONx_VN@M4LuL~A%qOTXNo?WC zYkVV2;<{gpoy(gMG(Si9zUDh8*3TRqeQBAvL=dN2))rRwaDFO1kJqRuc{2%f$|~m{ zwvl8h%wzpQdy3=W5H<-ca#2zD{L|LR;kig}?=NV4v!VG^g-EZDq=1>00K-=^4o3UB zrI;0>iEC2%|J+MY80O%p{;ee5!1yq`+7GC%>XAaUk=sGdU13ndRC|$5 zr-k)|y?TK~WFBQI@iHgajoqeyu`Ncvrp!SZo*Bsgjp4L3e&!f~d1?K^HSK}8z! zv&LjpxAub1__KV?TuHD)-tJ!q6ZXo-6Uc9~#{G=NVsXJWGM04GA27xPn3FpCU zA~*bbgFhi-1|e-A>^rgkJhMsZ(ELkoQnP9 zI5EiewQ(S_aBmguHw%2!7X5G2#2*6b^N0!Ebyt+iPK=fROXU;yd~4rM8