From 86e3c1d25f33511eaa85e8470f64c43ce877cb90 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 19 Jan 2014 11:16:47 -0500 Subject: [PATCH] Alien auto ranged attacks + intent fixes --- code/_onclick/hud/screen_objects.dm | 2 +- code/_onclick/other_mobs.dm | 63 ++++++++++++++++++ code/modules/mob/living/carbon/alien/alien.dm | 2 +- .../carbon/alien/humanoid/alien_powers.dm | 17 ----- .../carbon/alien/humanoid/caste/sentinel.dm | 5 +- .../living/carbon/alien/humanoid/empress.dm | 3 +- .../living/carbon/alien/humanoid/humanoid.dm | 1 + .../mob/living/carbon/alien/humanoid/queen.dm | 3 +- icons/mob/screen1_Midnight.dmi | Bin 142516 -> 142514 bytes icons/mob/screen1_Orange.dmi | Bin 137054 -> 137052 bytes icons/mob/screen1_White.dmi | Bin 128886 -> 128883 bytes icons/mob/screen1_alien.dmi | Bin 140985 -> 140983 bytes icons/mob/screen1_old.dmi | Bin 114223 -> 114221 bytes 13 files changed, 74 insertions(+), 22 deletions(-) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 52f1decfc03..959d67db32c 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -314,7 +314,7 @@ usr.hud_used.action_intent.icon_state = "intent_help" if("harm") usr.a_intent = "harm" - usr.hud_used.action_intent.icon_state = "intent_hurt" + usr.hud_used.action_intent.icon_state = "intent_harm" if("grab") usr.a_intent = "grab" usr.hud_used.action_intent.icon_state = "intent_grab" diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 04612128eff..5e9b6f55b61 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -98,6 +98,69 @@ /mob/living/carbon/alien/RestrainedClickOn(var/atom/A) return +/mob/living/carbon/alien/humanoid/RangedAttack(var/atom/A) + if(!large && a_intent == "harm") + Neurotox(A) + return + else if(large && a_intent == "harm") + NeuroAOE(A) + return + + +/mob/living/carbon/alien/humanoid/proc/Neurotox(atom/A) + if(world.time < next_attack) + return + + var/turf/T = get_turf(src) + var/turf/U = get_turf(A) // Get the tile infront of the move, based on their direction + + if(!isturf(U) || !isturf(T)) + return + + var/obj/item/projectile/bullet/neurotoxin/NT = new /obj/item/projectile/bullet/neurotoxin(loc) + NT.firer = src +// NT.def_zone = get_organ_target() + NT.original = A + NT.current = T + NT.yo = U.y - T.y + NT.xo = U.x - T.x + spawn( 1) + NT.process() + next_attack = world.time + 50 + +/mob/living/carbon/alien/humanoid/proc/NeuroAOE(atom/A) + if(world.time < next_attack) + return + + var/direction = get_dir(src,A) + var/turf/T = get_turf(A) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + + var/list/the_targets = list(T,T1,T2) + + for(var/a=0, a<5, a++) + spawn(0) + var/obj/effect/effect/water/D = new /obj/effect/effect/water( get_turf(src) ) + D.color = "#00FF21" + var/turf/my_target = pick(the_targets) + for(var/b=0, b<5, b++) + step_towards(D,my_target) + if(!D) return +// D.reagents.reaction(get_turf(D)) + for(var/atom/atm in get_turf(D)) + if(!D) return + if(istype(atm, /mob/living/carbon)) + var/mob/living/carbon/C = atm + C.Weaken(5) + C.take_overall_damage(20) + C << "You were drenched with neurotoxin!" +// D.reagents.reaction(atm, TOUCH) // Touch, since we sprayed it. + if(D.loc == my_target) break + sleep(2) + next_attack = world.time + 50 + + // Babby aliens /mob/living/carbon/alien/larva/UnarmedAttack(var/atom/A) A.attack_larva(src) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index b45429d4586..6260e96bc08 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -27,7 +27,7 @@ var/oxygen_alert = 0 var/toxins_alert = 0 var/fire_alert = 0 - + var/large = 0 var/heat_protection = 0.5 /mob/living/carbon/alien/adjustToxLoss(amount) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 162bd6b242e..06f23a9df09 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -112,23 +112,6 @@ Doesn't work on other aliens/AI.*/ return -/mob/living/carbon/alien/humanoid/proc/neurotoxin() // ok - set name = "Spit Neurotoxin (50)" - set desc = "Spits neurotoxin at someone, paralyzing them for a short time." - set category = "Alien" - if(powerc(50)) - adjustToxLoss(-50) - src.visible_message("\red [src] spits neurotoxin!", "\green You spit neurotoxin.") - var/turf/T = loc - var/turf/U = get_step(src, dir) // Get the tile infront of the move, based on their direction - if(!isturf(U) || !isturf(T)) - return - var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(usr.loc) - A.current = U - A.yo = U.y - T.y - A.xo = U.x - T.x - A.process() - return /mob/living/carbon/alien/humanoid/proc/resin() // -- TLE set name = "Secrete Resin (75)" diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 0ac2b1915bb..2991fa4b8f6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -15,7 +15,7 @@ if(name == "alien sentinel") name = text("alien sentinel ([rand(1, 1000)])") real_name = name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid) ..() /mob/living/carbon/alien/humanoid/sentinel @@ -60,12 +60,15 @@ return /mob/living/carbon/alien/humanoid/sentinel/large + name = "alien praetorian" icon = 'icons/mob/alienlarge.dmi' icon_state = "prat_s" pixel_x = -16 maxHealth = 200 health = 200 move_delay_add = 1 + large = 1 + /mob/living/carbon/alien/humanoid/sentinel/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index 3ba1c7daac7..c5a85b280ea 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -11,6 +11,7 @@ icon_state = "empress_s" pixel_x = -32 move_delay_add = 3 + large = 1 /mob/living/carbon/alien/humanoid/empress/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again @@ -41,7 +42,7 @@ break real_name = src.name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/resin) verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 0c505485d0f..a12b9a4b464 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -7,6 +7,7 @@ var/obj/item/weapon/r_store = null var/obj/item/weapon/l_store = null var/caste = "" + var/next_attack = 0 update_icon = 1 //This is fine right now, if we're adding organ specific damage this needs to be updated diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 3ec332eb2f3..2e8abd47654 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -23,7 +23,7 @@ break real_name = src.name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/resin) verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl ..() @@ -76,6 +76,7 @@ icon = 'icons/mob/alienlarge.dmi' icon_state = "queen_s" pixel_x = -16 + large = 1 /mob/living/carbon/alien/humanoid/queen/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again diff --git a/icons/mob/screen1_Midnight.dmi b/icons/mob/screen1_Midnight.dmi index 65b9f2353370f1363a540df73a5e41e165a701fc..433e36ee4e1468a9e0c1162dadd843ae246a2c17 100644 GIT binary patch delta 728 zcmV;}0w?{n*$A@P2#_QJ;gKaVf5DzOcGh+Z?9=Z7N<)j0(oQZg^I4W<>6d)X?jQd= zy|9Ppr}Pz^SJtp4oBx`o$wrAF*^z_8u!fAHPyb~keK zV7Iv0V7GW!C2$=iZfws{?csshb2B10CvuB%Vcaje`O2bOqDQ6a+ZD>LG_M*O#f@rt zfb;PD-REL4&GIbIh6w>}M@SoJJN%vlv>krS0oo3~;{a_Jx#7Vj%(B_(k_pYr3C+z3 z&Ckgf9Hr$z*K2}ccD*KueA))=NNAAGZc1C%V`xKyg|i(B!rxvEsJlq|pVY`a z(k29otUw18>TJ~jj!AArsSK}zdIcJNnN6e(zO#WXS$>xlC-qx_3E)U!{}9obL~$bs zlFp65YiNrTxDoE0-JGWu?**3cg)J-6#KA@x@ku5PE~d5SUPh?te@QWa{04bjUa(SJ zwsP(pj08b~yT>PoAPEVv*7g-Vig{@Xl;o}@^gfMepHQA+Ywb8Lo*pz*!BS$uy(b(K zxWgf#f&{m~RePm-=XQkHD#8gIU#&n;IlR6P;7^=%piFID6`4K;ftjW4(~c$sNERK?ghp>5R=>S)7tqs$sFj@}pwXZqk&P}bnG zaYXUbJfe7J98o-Vk0_p&odfTC%47SDB+TzebmXi5Z5@4wJ&_wI6TpO$6Ey39l3L<{ zC3eOGO=^&DUQq1*vj$2J_|ZDSNslHSeX!=~HG6z{U=Pnv>3_q4E7IVxI}(Es1BVa; K0k;qX0;DO=bz^7% delta 730 zcmV<00ww*j*$A}R2#_QJ+F3Cd(_iB>*=QANF&C2}O={4qI_&@WAOncGxVlOcrO}JI$kSwrvVr~Y zBcN>nw9<^(WX>jw^JI}G3XI%|xtL|M_hn0sK)bQj2oV=98IJhUGwilIe|mSf-3{D4 zxGilqxGf#l8l(v|ZEVkR?a_hRa}y>vWpcA&Vcaje`O2bOrbngingz)&jI7o?N?P5> z0O#T9yU)dJoaI@b^%DY`mXS8lwDdg(Xj=M~12ipt#{rr)a>Kn#m}HaFB_p1fBc7Wh zo}Z&HILga`wlfUDY&*jce@j_~62WU9SZJuxZA!OX4xudzR_Iz1guk8cQFoE_KdF&v zq)jLiS%3*7)VgX7G*(NiN^NBo^egb_%WP7+;9D2OT;z9IaZeME-U}?>3tLvC3BpEO^+_fzEv8E&eI233e<#KK@$2PndBI9? z*~+=EHxh&z@SdI=Ld{5sm2t1&NzB)dLDdo)M(;Cp_9^W-wpJ)<@$_Jz3XT&C={@6^ zAd!ZY4mIG6R_%r95O<8&YQ_mrE*7A;99`cB@Fz_oXuEV+MW&A)`Gb${)8O}78#9EB z^s4>@loeSK6N#Rsf5^EfA1s}>v!%xdC2^e>cP#FPo^+MO^@NsEh23fuNx9IS*Lw$J{^B^;|nhJUS`JhRWUYB7+0+sb+nOYt?h~~j?P*RXS;wpXlH5J zIHGiE9#J|ojwqeFN0d&>7Qy?D^VohP8T0!Q9r)^hTgTsFKi~%12C$)&49z;Atd@9S znVs=Kvl`@^7ah`1f`86J>4834t0e2uWTFq&JiQi=FAw73`6>Mm)66UFYz?)pgAN0S M4g&$V4g&(DDgDi47XSbN diff --git a/icons/mob/screen1_Orange.dmi b/icons/mob/screen1_Orange.dmi index 7ef1d84d897b1ea32132c4bf00728a3eba268a6a..f350ed4de383429da0deb204d5727f9fbdc272e4 100644 GIT binary patch delta 886 zcmV-+1Bv|Jt_a+&2#_RyQF>HZbVOxyV{&P5bZKvH004NLrI@jD+b|4HhwJ0XF2dlZ79LVG{nUKl!Jefu#0g7+fg3aUknGG_d1bq_{T}lghh^4d;2ruMx zDJ=xz>=`!e4Zb@WB1LT0n}MNtv&Q%LW=-4Qn>DVKwo_`7qgVx8`3iS#$5GtdqPT}! z4$ttGn-aMhk(&>H%iwm=-8GBui5_LTYw(1%ol*&o<%$Yl_6-L z?G&L!wVfigCtmo>f|JgZP+wWI%1l`fp*0B>*0d-He>;hP_woGbB+UXnQ=mu=%A-(g ziW+dN;#y=<^TNwFpwXAvQDwYqjb{s%JjChIDeo=+14^0IHAV{19xN$$71x9=a|8tf z=Y`Ksl6=7&p=EI`@Wa2x3ET*`w*R5~)cjBxl5Itf(`aO2CAIia-!)zVO2u6jpe9FE z==A9wrR;)#mGrWebI-xDQvie}W5IcxateUZi!3;gQ^r>WMK6_k1BZK783I*t+YrVH zg$rItN3pfE9B(uZ6cpZ2z6E!V5GHVoLqhrr>>N*et~zTsgl{Ve5m=t*fS0Eohl^+j zex-;~>eAREFsb#(FLZP(gYUIeY6u(X*!^iSPUAFxRF`^|0&!1IEPbZFt?@xja9bzo z1BtuCe=!8N^%Sr1!gkALK$z+M$0|SQIqJq~oTmM5tc`S`iGT9RjW4*=`?puBUpqsi zmoi07IBhOFX_tX{pyY+rOVr$otD3^uPHPG$pfE~md{EoZ_N04&$LHTaP)K*)N-vGZ z>*O9_#cRF6A}uwkpKVy delta 888 zcmV-;1Bd+Ft_a?)2#_RyQ+iZbbVOxyV{&P5bZKvH004NLrI^8T+At7?&+rs#a;#~w zfg~3W%_P&wAwBidlSj7KSYugoS8{+peGd>Y1hESlpFHzvwJZJFUFlXlKL33AC7xbi zhHrpQStI6R`fWTMELGtvF&C3$IH*7^D!=)0UV0F7adR^q6bhYxn2U$uphVe#6LS&o zflTIg*OHhr9?(cV-jnfpGG>#>X)+lO3ea*b=3*AjPE3$mUGOJi(WOG5Lo5|SAiR*% zr9ueA*)wccYkGDz#ERIi))$82?TVh?+ZAtqZ&$QZ+D_|nMq(96?JL^3EyrZKriiW0{tD&7-7Ijr4FDp6)|SX5%Q1 z;;64gXj+D_p=oJ3cxYN$3?7=6mV$?-4G5vPSCeRRIAp~0a>R3U#Pf4>g`+&FWZE(` z&~}!rxAR(RDmKI7!n$%`8YH1MNwu zwRsIRR!LK&%E;WSH{j9d*+FH!YpoY^5kEx9!71+z{{vdv{LqkXXmb z1B<((uNZ~IdP3*;0=vZ`Ak5_cW0t?@JE+D0Go!X_4=(vVz)Mz6__&_ztDdZ;Rku$9dP zkfiM;mrgr7J+!aDIG}(h#%5*HkbU|+q)kYRk=+iLWaj&2Vf~WLHM@WO^Yp?Vo}c1Z zKqItbYqtC~kE6XPZOztfk;PFBqN?rjkFneWTeGXHI4T7iwq|L69Bq*|aQuA>CB& z%egn1dXw2WnZ;2Fk{{Tbt&-JQwiO6;8e4(jNMS0lBbPy7-5==Hb$BY5G7ZX_>ueiT=t;TFc>@HCru&gp?udmY()WmSipq4k9_;d+{OCc$}UdktN4nn%#MEH}t7qa@;NGMlG?cDuCdx%N~b`FI^$0 zZ$9r?_{42H=MYQdNNU|)^1QG)f)U0BifoN~pX;rEWA;)y6(}oFJ4-MkDL`3pp2vt1p#~|^(&YFfvI&6KV{i5e4@`r@aa|?d*6v}8{Hmm zOwjuR$FS`YA?4b0xf7}iP++H2nBt#SkQ;E0#t}(da<5NA>HI8D<7@W#^1vRRpW^>P Ueq`SS#5l{?gCzsEB?AFb^oW#+A^-pY delta 793 zcmV+!1Lpkm?g#en2aqIx_KhUe2{ULI3XZEyNXZCbh z1#smAZS2T}+M@$=~pc0 zW_gxp{epm|4JaFbXj(eY4w{zEvV*3jbL^mLJsIvLVV2Dvf-d8g>JSekwn4sHK^@A`1K|z)Ns|atuMJk7N!ufTgrl{z z9Gl-;sZ{;W(-I3G?uKh=|h z?8Mt#a;bJz?P2>DENsRB8G{QrAN}<`BvqUbG83(Qvh?sWz&pe6k#JOhK69fS;IrD@ z9+$GaJ+2h&4p$0xhbu|oI!IjXz)|(^eLZk?Y`Xg6E*?3HF7q z$1M_|>v4kw==z8~M#nyXPv_@DrnD%hv@oZ%IHwN=T4_r-Szd=SNN2aDZJI}DLxP2~ zxKl6u94Y0J8&N95>!3Cx6E5!1M79PKz>(G?xxq8^9Ewc3LuGcjeYkUWdz&gww#W|Y znC8jE!B!b@mD~n5N~5`#5o&g3!OL%S(B&PK{JzSq@BC~Wc;y3sx)84c2*t>O4>;vD z0HJ0%@PTl}2T8EuTH6hHJThqsl;o~MA)!14lc4cjUprpmvG)o;#}0zCN|b&elsOL? z>R|ERRVIMJCtqvsJz;-=I~)=!NN@%2wn`7q?Fomf@P$^O343fek^BDQNGrh0;*rDi z;0S)D1E`Y5fQrxjn~?QJSZDtO}2mBI}-CD1D}y@9>^OaMxz} zlEl5>J+|Pko#Qu}aKm~XvH0@(O3N-gO=FdhwWzb`_|Jah$DG#VA|7dGdRw=E=U=65 z-4asEmlvHtr0HmQt;`yg+j8AfI5!wW;RMuHD?{kofa@S=e-IyRxHkiIy^g+Fu3xfK z$^-29ntg!HA7JNkcGT%F(&g1N_kl?Y5_>2~B=m4?mYh&Bk0_~III_eB$k zbpKidr3ZXzk{iPHCb<#OLio(ye!sHUkN4ys<#A!o!Vcb{gDL}uDgyzxDgy$KBU3bE AL;wH) delta 741 zcmV82#_R9{d!bbbVOxyV{&P5bZKvH004NLrI*ca+b|5r&+$`e?QzZ) zJ8_pwE<=l&*`g!CvgAo}KKArGBtx7Jg$xRx4E#h<;-3`xk#JOhzH_4-;Je!0 z9yeuod)!j6JKR#RJKT~4u7kvl9XP5z{9X^-oX9PRTydMrlZgP$_iV+Aw76XKf*S7! zO^{zdXgw>f7AQFw_%o=UWD&peO7psk0CO zuE!-3pzCpg1nByRJVs%EpQrQlB~zN0Q<|GonxE4L9j&w_M3&c~4AR+cX`AK|+K^!3 zEUwfGJx5BpM<0EA-Xzz3Z2 z8h}u<9QZ(Z;)5i}aINhIJnosa1WIz(p^#9Xf=SSLuCE=haNm1{$FYOptP-Uk2xZQL zhB{dMc9jWW@Xgnndr!Du;0}j`3KCp_tF6+5b9+Ki6@JhPG~tfzCi322gtP*@EFL*L z502nhN?s|`SXbkJPJW@I2f2T5mDZ22k=JwF7^Qid$ExtiQsmt83rnA=<~zLS5Ztv{ zz9exkc#kc(Yv=fjCfu-IMIOmFKJ@cgT^ zty@BB`SPL@h%_Ayua#M&=C)k76wVFCP&fg#)yfdMHsCsc$REUk4cBIXuGi6-<$98x zQU2~B=qoXmYh&Bk0_~III_eBg$cz&7O-OVpE#M)R(n27-kkh5K z5QuYN*sRw0?qrA*v01Gz48@xjzP~ps+Wy|GaHVv;Qj;9TYT(M(xN}>M;@$?uJ=}2k z32(S5k(&{@`DG`6xLI^}&7ymvN15(h{J^?isRYMz#fyeUaV=Z!;WRwkhnCJKaS|u- zP>IlX1Ytwl;d1cMcDNWkv>h%54{a9^!r-i?@$_)XnC9h}=H{5@=lBXoX;R6RA!wlM z6`@6Sy&|+HUii#{lg^V+Ut6=xOj%w+YZ5H1=}-{<_7d-Zq4BphynNqflpx z25_wAT4Yl5!pnD{(L}ZY?ZJ}1am_WM8yrA^O?lz7qr*63j?h}T7I>1bZ~`~Ntu@Qj z)O?@8$)<9~X*9C1lv;eM!y3=jQgK%YsL4UKIDQ6_&(2s$&s#b5>@7P5KxhUQoX07r z00=$9g7Y|kWqeIgbfwHYINY<^5U85lmeBSUE_fjw#a3lG-VhupD7>M33+@~tOyCxW zg!DDoIezH5>aAT9zO5ugV0oScUY@obE}|{?ogzx9OJj?`L^UA4(b0_zel}96OV~hX z9Zq#|8mFPUG_VwidwOK)EA?%K4@`pFCP^Pi+#P;@6%gDuQ@q9t+gDXUnCboJDu2-v zjcVgvXFOZ5B#qN_IACidU1&0&d~xG5E)DMBN)2mgXhc$`Xb9QnvZHnxm&(8n2T(6t6`)6c_p4Dk-SF<;!q9 z$9E`Kp1++1=X%QjryWW1_Jbx|2zTg(zvMpF(RaAwpP%*_Cp3&LN}5NuEO9K^(xmC+ z!wZVte?~**01vI|hglLx=c*59-7R~5dty(oFVTMy$UsJw`N0c=cLTR~0|B_Y?aQwg delta 875 zcmV-x1C;!&{06W529P9wN_tdSbVOxyV{&P5bZKvH004NLrI<}~n=lZD&*oRC$+5UK z*iLfsp_yblIV7jv837AuEF`)TvD07QgB=??mUo>DCuSb4cG0^Z;#%B4{(gE956@50 zE1*->h=rK_m_(zMDt#jsVwy&y22|bn&5QHWgII{Gt7udzbYdZY?xInJvIQp=BH07E zES7yoV#;_xBlToYCg;h7O{S;GG#Ztl<(pWDc|1R{L1uNy--Jb13V{x>QV4HWQ3^Y-_4O)I7AwVvc8)_~N$p`F`u9QQUT?cs)_ zPk6&kncR%Y%`ZED!OfzZ&n&uSdX$;Ir4Ov@wN7X(*RojhC}~tHJ)DMT`_R()Bu?Ta z9x4&qjv;JlJ6aAN+Kv{3hqj}o;GyjTLKvLYG@c$V8S}gx^V}Ts{2YJ6QJz$CZ5bNq zdd+B2U9TDKNftgsaLRcW>KnAH%vRMUv|+&|+KvR_Z?EWoKAs=}xq$x9HWZ~5-@MtDmfboE=Z`?@3=mrN+U{hK6?C3Dgm}9gSX-Yat*EB&Jk%)G6 znwsx3IN4OrIE_XKD`m3J)sp1ozK0T|5y!Fif; z8i3I=5S*ufDeD`CqHAqm!O@;ImO(WVTSnX0wBSqSIJRn(bVG2Uq41XTEu?ddFhL>> zmC84ObNbM8-6Os+zO7ByI7SR^`&Jm?DmBk`3Q4Pp%d~_p&pG&3nC2XLx z4yU>}jnhzF8dwU%Jw3AYmHM`(2c}ZuGD+`P+zowy6(}Vxr*w@kv9IfZFw@(QRsNzU z8a39t&U&#BNgAi=aKJWJxzJ=j`QpZBTpHZLwI0^a(1@gMv1DYM%Z}P*U>>Msp-fGh zTS>j-aM&Be;Yuj1R)!vub~8BZzJCAs=NAc?-lOu$8oEyIP`VcFP+H`BtE`~*mM_EU z9N(c?bpCb-&h?!CPdk$3?K{o55bn?mf62YCC~F?svdpn$OS7hv zcQ1ORZ;$`1fy@CNTHOz`B#_Q^AI`dK@%Zu}9-g0~{~^LaVO_~pHiLBow{-&nxVj|S BwB!H)