From bb9d1e2b2245b951e885ed6852ff11e0361b9ac4 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Sun, 28 Jun 2020 07:58:37 -0300 Subject: [PATCH] Reworks aut'akh augments (#9079) This pr changes all aut'akh augments and adds a couple of new ones, with effects and the like. Requested by sleepy. --- code/__defines/mobs.dm | 1 + code/game/objects/items.dm | 4 +- .../loadout/loadout_xeno/unathi.dm | 43 +-- .../living/carbon/human/species/species.dm | 5 + code/modules/organs/subtypes/autakh.dm | 257 +++++++++--------- html/changelogs/alberyk-autakhaugs.yml | 6 + icons/obj/action_buttons/organs.dmi | Bin 9902 -> 18614 bytes 7 files changed, 164 insertions(+), 152 deletions(-) create mode 100644 html/changelogs/alberyk-autakhaugs.yml diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 8c3982369ef..e7e6a941796 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -128,6 +128,7 @@ #define BP_AUG_AIR_ANALYZER "integrated air analyzer" #define BP_AUG_LANGUAGE "integrated language processor" #define BP_AUG_PSI "psionic receiver" +#define BP_AUG_CALF_OVERRIDE "calf overdrive" //Organ defines #define PROCESS_ACCURACY 10 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e35125ee228..6d8a4bd841b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -695,7 +695,7 @@ modules/mob/mob_movement.dm if you move you will be zoomed out modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. */ //Looking through a scope or binoculars should /not/ improve your periphereal vision. Still, increase viewsize a tiny bit so that sniping isn't as restricted to NSEW -/obj/item/proc/zoom(var/mob/M, var/tileoffset = 14, var/viewsize = 9) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view +/obj/item/proc/zoom(var/mob/M, var/tileoffset = 14, var/viewsize = 9, var/do_device_check = TRUE) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view if (!M) return @@ -714,7 +714,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. else if(!zoom && (global_hud.darkMask[1] in M.client.screen)) to_chat(M, SPAN_WARNING("Your visor gets in the way of looking through the [devicename]!")) cannotzoom = 1 - else if(!zoom && M.get_active_hand() != src) + else if(do_device_check && !zoom && M.get_active_hand() != src) to_chat(M, SPAN_WARNING("You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better.")) cannotzoom = 1 diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm index 482ac843225..c239e20893b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm @@ -140,26 +140,37 @@ sort_category = "Xenowear - Unathi" flags = GEAR_HAS_DESC_SELECTION -/datum/gear/augment/anchor +/datum/gear/augment/autakh display_name = "soul anchor" - description = "An implant that connects the Aut'akh to the Mesh." + description = "A rune inscribed mirror or piece of glass placed behind the eyes. Believed to be the 'Window to the Soul' and house the concentrated spirit of an individual." path = /obj/item/organ/internal/anchor cost = 1 whitelisted = list("Unathi") sort_category = "Xenowear - Unathi" -/datum/gear/augment/haemodynamic - display_name = "haemodynamic control system" - description = "An Aut'akh augment that allows the user to stabilize themselves." - path = /obj/item/organ/internal/augment/haemodynamic - cost = 4 - whitelisted = list("Unathi") - sort_category = "Xenowear - Unathi" +/datum/gear/augment/autakh/calf_override + display_name = "calf overdrive" + description = "An Aut'akh augment that allows the user to run at high speeds without the cost of stamina, causes damage to the lower body when used." + path = /obj/item/organ/internal/augment/calf_override -/datum/gear/augment/adrenal - display_name = "adrenal management system" - description = "A series of aut'akh mechanical stimulants and extra glands placed along the adrenal system. ." - path = /obj/item/organ/internal/augment/adrenal - cost = 4 - whitelisted = list("Unathi") - sort_category = "Xenowear - Unathi" +/datum/gear/augment/autakh/protein_valve + display_name = "protein breakdown valve" + description = "An aut'akh valve on the chest that releases a dangerous chemical into the stomach, forcing rapid digestion for immediate adrenal stimulation. Causes long-term damage." + path = /obj/item/organ/internal/augment/protein_valve + +/datum/gear/augment/autakh/venomous_rest + display_name = "venomous rest implant" + description = "An aut'akh compartment connected to the blood system that administers a traditional Unathi healing agent." + path = /obj/item/organ/internal/augment/venomous_rest + +/datum/gear/augment/autakh/eyes + display_name = "eye augment selection" + description = "A selection of au'takh eye augments." + path = /obj/item/organ/internal/augment/farseer_eye + +/datum/gear/augment/autakh/eyes/New() + ..() + var/augs = list() + augs["farseer eye"] = /obj/item/organ/internal/augment/farseer_eye + augs["eye flashlight"] = /obj/item/organ/internal/augment/eye_flashlight + gear_tweaks += new /datum/gear_tweak/path(augs) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 006790b4a79..da71e6c4b66 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -517,6 +517,11 @@ log_debug("Error: Species with special sprint mechanics has not overridden cost function.") return 0 + var/obj/item/organ/internal/augment/calf_override/C = H.internal_organs_by_name[BP_AUG_CALF_OVERRIDE] + if(C && !C.is_broken()) + cost = 0 + C.do_run_act() + var/remainder = 0 if (H.stamina > cost) H.stamina -= cost diff --git a/code/modules/organs/subtypes/autakh.dm b/code/modules/organs/subtypes/autakh.dm index 309692d72f7..10376bb14f0 100644 --- a/code/modules/organs/subtypes/autakh.dm +++ b/code/modules/organs/subtypes/autakh.dm @@ -67,192 +67,181 @@ //internal organs -/obj/item/organ/internal/kidneys/autakh - name = "toxin screen" - icon_state = "screen" - robotic = 1 - robotic_name = null - robotic_sprite = null - -/obj/item/organ/internal/kidneys/autakh/Initialize() - mechassist() - . = ..() - /obj/item/organ/internal/anchor name = "soul anchor" icon_state = "anchor" organ_tag = "anchor" parent_organ = BP_HEAD robotic = 2 + var/suffered_revelation = FALSE /obj/item/organ/internal/anchor/Initialize() robotize() . = ..() -/obj/item/organ/internal/eyes/autakh - name = "bionic eyeballs" - icon_state = "mk1eyes" - singular_name = "bionic eye" - action_button_name = "Toggle Bionic Eyes Sensors" - robotic_name = null - robotic_sprite = null - robotic = 2 +/obj/item/organ/internal/anchor/process() - var/static/list/hud_types = list( - "Disabled", - "Security", - "Medical") - - var/selected_hud = "Disabled" - var/disabled = FALSE - -/obj/item/organ/internal/eyes/autakh/Initialize() - robotize() - . = ..() - -/obj/item/organ/internal/eyes/autakh/refresh_action_button() - . = ..() - if(.) - action.button_icon_state = "mk1eyes" - if(action.button) - action.button.UpdateIcon() - -/obj/item/organ/internal/eyes/autakh/attack_self(var/mob/user) - . = ..() - - if(.) - - if(owner.last_special > world.time) - to_chat(owner, "\The [src] is still recharging!") - return - - if(owner.stat || owner.paralysis || owner.stunned || owner.weakened) - to_chat(owner, "You can not use your \the [src] in your current state!") - return - - if(disabled || is_broken()) - to_chat(owner, "\The [src] shudders and sparks, unable to change its sensors!") - return - - owner.last_special = world.time + 100 - - var/choice = input("Select the Sensor Type.", "Bionic Eyes Sensors") as null|anything in hud_types - - selected_hud = choice - -/obj/item/organ/internal/eyes/autakh/process() ..() if(!owner) return - if(disabled) - return - switch(selected_hud) + if(!suffered_revelation) + if(prob(0.1)) + revelation() + suffered_revelation = TRUE - if("Security") - req_access = list(access_security) - if(allowed(owner)) - process_sec_hud(owner, 1) - - if("Medical") - req_access = list(access_medical) - if(allowed(owner)) - process_med_hud(owner, 1) - -/obj/item/organ/internal/eyes/autakh/flash_act() - if(owner) - to_chat(owner, "Your [singular_name]'s retinal overlays are overloaded by the strong light!") - owner.eye_blind = 5 - owner.eye_blurry = 5 - spark(get_turf(owner), 3) - disabled = TRUE - selected_hud = "Disabled" - addtimer(CALLBACK(src, .proc/rearm), 40 SECONDS) - return - -/obj/item/organ/internal/eyes/autakh/emp_act(severity) +/obj/item/organ/internal/anchor/emp_act(severity) ..() - disabled = TRUE - selected_hud = "Disabled" - addtimer(CALLBACK(src, .proc/rearm), 40 SECONDS) - -/obj/item/organ/internal/eyes/autakh/proc/rearm() - if(!disabled) - return - disabled = FALSE + revelation() +/obj/item/organ/internal/anchor/proc/revelation() if(owner) - to_chat(owner, "\The [singular_name]'s retinal overlays clicks and shifts!") + owner.hallucination += 20 -/obj/item/organ/internal/augment/adrenal - name = "adrenal management system" +/obj/item/organ/internal/augment/calf_override + name = "calf overdrive" icon_state = "ams" - organ_tag = "adrenal" + organ_tag = BP_AUG_CALF_OVERRIDE + parent_organ = BP_GROIN + +/obj/item/organ/internal/augment/calf_override/proc/do_run_act() + owner.apply_damage(1, BRUTE, BP_GROIN) + +/obj/item/organ/internal/augment/protein_valve + name = "protein breakdown valve" + icon_state = "screen" + organ_tag = "protein valve" parent_organ = BP_CHEST - action_button_icon = "ams" - action_button_name = "Activate Adrenal Management System" + action_button_icon = "screen" + action_button_name = "Activate Protein Breakdown Valve" cooldown = 300 activable = TRUE -/obj/item/organ/internal/augment/adrenal/attack_self(var/mob/user) +/obj/item/organ/internal/augment/protein_valve/attack_self(var/mob/user) . = ..() if(!.) return FALSE - to_chat(owner, "\The [src] activates, releasing a stream of chemicals into your veins!") - if(owner.reagents) + var/obj/item/organ/F = owner.internal_organs_by_name[BP_STOMACH] - owner.vessel.remove_reagent("blood",rand(15,30)) - owner.reagents.add_reagent("paracetamol", 5) - owner.reagents.add_reagent("norepinephrine", 5) + if(isnull(F)) + return FALSE -/obj/item/organ/internal/augment/adrenal/do_broken_act() - if(owner.reagents) - owner.reagents.add_reagent("toxin", 25) - return TRUE + if(F.is_broken()) + return FALSE -/obj/item/organ/internal/augment/adrenal/do_bruised_act() - if(owner.reagents) - owner.reagents.add_reagent("toxin", 10) - return FALSE + F.take_damage(10) + to_chat(owner, "\The [src] activates, releasing a stream of chemicals into your veins!") -/obj/item/organ/internal/augment/haemodynamic - name = "haemodynamic control system" + owner.reagents.add_reagent("adrenaline", 15) + +/obj/item/organ/internal/augment/venomous_rest + name = "venomous rest implant" icon_state = "stabilizer" - organ_tag = "haemodynamic" + organ_tag = "venomous rest" parent_organ = BP_CHEST - action_button_name = "Activate Haemodynamic Control System" + action_button_name = "Activate Venomous Rest Implant" action_button_icon = "stabilizer" cooldown = 300 activable = TRUE -/obj/item/organ/internal/augment/haemodynamic/attack_self(var/mob/user) +/obj/item/organ/internal/augment/venomous_rest/attack_self(var/mob/user) . = ..() if(!.) return FALSE - owner.adjustNutritionLoss(300) - owner.adjustHydrationLoss(300) - - to_chat(owner, "\The [src] activates, releasing a stream of chemicals into your veins!") - if(owner.reagents) - owner.reagents.add_reagent("coagulant", 15) + owner.reagents.add_reagent("norepinephrine", 10) + owner.reagents.add_reagent("tricordrazine", 10) + owner.reagents.add_reagent("stoxin", 15) + take_damage(15) + to_chat(owner, "\The [src] activates, releasing a stream of chemicals into your veins!") -/obj/item/organ/internal/augment/haemodynamic/do_broken_act() - if(owner.reagents) - owner.vessel.remove_reagent("blood",rand(50,75)) - return TRUE +/obj/item/organ/internal/augment/farseer_eye + name = "farseer eye" + icon_state = "hunterseye" + organ_tag = "farseer eye" + parent_organ = BP_HEAD + action_button_name = "Activate Farseer Eye" + action_button_icon = "hunterseye" + cooldown = 30 + activable = TRUE -/obj/item/organ/internal/augment/haemodynamic/do_bruised_act() - if(owner.reagents) - owner.vessel.remove_reagent("blood",rand(25,50)) - return FALSE +/obj/item/organ/internal/augment/farseer_eye/attack_self(var/mob/user) + . = ..() + + if(!.) + return FALSE + + owner.visible_message("[user]'s eyes whirrs loudly as they focus ahead.") + take_damage(1) + zoom(owner,7,3, FALSE) + +/obj/item/organ/internal/augment/eye_flashlight + name = "eye flashlight" + icon_state = "mk1eyes" + organ_tag = "eye flashlight" + parent_organ = BP_HEAD + action_button_name = "Activate Eye Flashlight" + action_button_icon = "mk1eyes" + cooldown = 50 + activable = TRUE + var/online = FALSE + var/warning_level = 0 + +/obj/item/organ/internal/augment/eye_flashlight/attack_self(var/mob/user) + . = ..() + + if(!.) + return FALSE + + if(!online) + set_light(3, 2, LIGHT_COLOR_RED, uv = 0, angle = LIGHT_WIDE) + owner.change_eye_color(250, 130, 130) + owner.update_eyes() + online = TRUE + addtimer(CALLBACK(src, .proc/add_warning), 5 MINUTES) + addtimer(CALLBACK(src, .proc/add_warning), 6 MINUTES) + else + turn_off() + +/obj/item/organ/internal/augment/eye_flashlight/proc/turn_off() + online = FALSE + set_light(0) + if(owner.client) + owner.change_eye_color(owner.client.prefs.r_eyes, owner.client.prefs.g_eyes, owner.client.prefs.b_eyes) + owner.update_eyes() + warning_level = 0 + +/obj/item/organ/internal/augment/eye_flashlight/emp_act(severity) + ..() + turn_off() + +/obj/item/organ/internal/augment/eye_flashlight/proc/add_warning() + if(online) + + warning_level = min(warning_level+1,2) + + if(warning_level >= 1) + to_chat(owner, SPAN_DANGER ("Your eyes are feeling warm!")) + +/obj/item/organ/internal/augment/eye_flashlight/process() + + ..() + + if(!owner) + return + + if(warning_level >= 2) + var/obj/item/organ/internal/eyes/E = owner.get_eyes() + if(!E) + return + E.take_damage(1) //limb implants diff --git a/html/changelogs/alberyk-autakhaugs.yml b/html/changelogs/alberyk-autakhaugs.yml new file mode 100644 index 00000000000..4d8deb4c6ae --- /dev/null +++ b/html/changelogs/alberyk-autakhaugs.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - tweak: "Reworked aut'akh augments." \ No newline at end of file diff --git a/icons/obj/action_buttons/organs.dmi b/icons/obj/action_buttons/organs.dmi index 0db0a83f09ded4ac6c84f6afb631ddaaf2fc05a9..3895aee651c8f50b3db14efd1b7e5a3fdae75f34 100644 GIT binary patch literal 18614 zcmcG$byQqW(=NJ^;4VQETmr!@xJv>A4IUtPaMuAQxC9IC?ivUL2^NAo!EJDNch2Vb zzTdguxp%Gip7Y09i@kZAZ`MoSA8Yvn80GMy(q*MU_juN~86eRE+ ze74d$@J8KJUCUX@)XCWKv%T|YJ6iy7Pm73axBbnI5i~rgre(iRFCiEq&xUWY0#qvJ zM|^($t>E2Q_QAFrbkr6;|AZ>?Y&&Wn)`utJnt4lOjqP<2I23D>4ZU;e{D$6}l?AmP z#0wlRvTwekgqMIr4`mqLtuhRy-OL7tzQy7rRbHo`_UY$DQ-`V)S@tzVX()c~`9nv? zLr^wx46m}4wQ?9{IM+QcC{Jt2AqFR;G|8ktXZD~l?PRZBq zV-WqiGY1`7J+eNzYrRoVEaaCb*Ds1!2F&HBU;L~R-kZTL6*MA8z|qnN07~Gkl(@Qk z+J3r+9{$wgqiAfv3u(O=4T5rb2kG+8@;|n$jMO^1otCdO>>BhNJO_=pX>7I1u^)a- zy+2m)-sRlBsS(qkA%H`?f_?kii5)6D*F4Yq#PwxGDh^NNApPvEm!ho zS~7noWSDc4y|=eF3s3WJ;qYsGf3Kq@A2&dmkw6N=$I+3K1}U-RT8{n#Zn~*JDN}p0 zSWRa0+>;9?1n-?axJCUvHrR`ubwvt)fDYx<~{xCG@3m5sL$5j)~L6+H@?mfMm)O~5bc2T0B&8@-!wm;;%pM?t+Zg`{LbC^0aV# znp|HVosyv~^~ExA_ii1}kLPmn0lwFOflI#0KBJ zeEHHZ8Jjs&%FoYF7HO(nuc2Ds+1RGm4hC1MQH~cU{$UEzMT<~|%8lskbw=p2=I8c-Jz8HyAW5I3oim% z^g5p7RC`+&zI7ro*xh591KJILx| ziL~ZRi`fE@+?*UANBigobF)R^Y-PsZ-(q8}{=6X$l%Vq7ubqlK+uIiW-l(HiXEjwp z1ULWeDDTy6E-p?y-8=r+G<-6$)cdkT911M! zCdM9IXrThVlka_mcD?8Nid2NmX@f+z`@$qWIFvlL=CiR) z%k7fM4R4t-`{Q%$XvPW$2glckx*OQcyYJt>uU&6u%34}7ja%}xym5C$0Z?9CC$$}- zP%hv+jRX9##%Mvpldeh zRG?vCKmbJ0-IM$CT#$!G~5J!Y*AJjxvn_!9W znRn-v6)uyakSiR3-EQ$0{X($s{jNc8JhLVMG&D3!$0nf+U+k0JDXM&;0>ulkU1+2d z5=x6BAfmCoc5FWpm*=C%3X~NC5Q5-PsCtHaI~$`Wjkg~e3sI$aXD8&p+m9OQDK%rU zP}N%ResuEs3MB{=#W&*@Ak$^+_}&OdXpYV0*k@o)?uAqOPFwIXwnOkP_~vUcmRi(SnlCC%2#WF z_$vAF66V{z*z6_EMInDBgBkMp$IBkSEByOs0>pGw+=EzUqc*^hcwuao)++)E-LH54 z460`)B0KSByCns7#`4{OwBnlK zk*(h?tzAcJ_g|$*5WjfA?f7tOrrxUJJcaL9OJQaC&)Pe2C+rhxVFvUm^ zHU$THsI-|Y7zl+RyB*Be&OYpOz#Da@j1;Tw@hxE9>9kUi&9$##m<^Tbj#mdAOR;G| z=jZhZ2%qn4AyHETY1h^bkodXD*-kdz)5nL~Lyd*X={rv(lZdV0`(}F;90b&kwo-X> za`_wh;$qDx$YXQWM#oMuYRqsHoj1q&x@K3-k1~ws7vhM9t++U)Yim&ru{|Q+AdFD0an|t;%2h`Xt`2h4KO4G9tt?%@-vAy4H zVec}FMlJdPf{B;Lu_lMO%1-JE3K;nK_{NhI=sXmEC&s8L3876*uKOpQf0y4#dEmWV zQm{Zf3tF|o=y5Zy+NzEN^i`BfU6w&2Yt(?P}}*R*tcOc$y+%WfK`a&K)~QaF|4 zTH6Hyv&k}TM4;rO&0~Es%M}X?yyZj=7&BU~RJzGdse8=lE@!yW@KV?i0>XW?M!)AO z;)9`&RCO3jBqSn&uFhveUhWA?#0UvFC#&^*_5iqv;o#0U@2eB0uRAOdOhoTO0i?Y`Gly~M`6t7-_A zGMv2TP32M%+1Hi}jV@n_<3}V;lh@WvtPY||P*X&_&60`d{gE%55TH4z9pze*y+5>U zFLRKjq^0RntW^=wUltz~doy2+Q+m!%sSeTl{!P0AWb)JAK6GhxD|?aW1Q>gJ+ncMapQn-xjxKiuza7pH z#>K&b#xf|?Y2kA&>RWwr=Q9ux)N~oYLrt`_`{TUmDW2zhx_d19eK)Wtq@9MalIQnf zPX+eNV)wyWi0~=N1jewhto&7G>!XOKLG9(7-RNXDG95oZ*ps*}1x3%gV~#qLbUMAP z+zSy%(m;lA>U^UMdUA4dy~k<6bg)TGnXTAeDmK*j>TEgDhh#S(Cx`mTPQuFR{3^Gt z>H7RCDsW|rv~ReUBH~zZ@@1wnQqS;Rl(fL(Ynawe>Okv96*%4-j=cUvHa?drzt8;% zEGFRfJe8X4Tp>e!(EfR=?8f?liZ5Y8WbQb^*&Oo+2 z1^!1C&igsn{oi#Tn=mSj2hATJ?ul7q+Qy8ggPx5Bc=NbWKu-D3I*H7rU)`;4rVbCL z@;RJtC|1QpKk!mfQCYmDH#yf}H|B%AgW+A3w+IE4hy383QfT>r8EufvqH!~0j6-t| zK~47YG39#XvJwIHts(bi2ohO%wke{77D+E(XUo+umSQPVc5I!(kI(Ur4iyaz9tHvI zKR3JVK7SfX?aF-`QRx3Cx}Oa(rQPe@yHe!~P;j#d~?CyLtm-W;R{}mZz?(!pJ!hz5V@g zP$`ec=%lbn{Qf5HC|O#BS(98J@sxVG?F|kgjg2`QoNZ+@M|O5nF)|iqTvx@!d>63@)|iC+p@r2^6%jhMGCqt<3IFAxI(H_^af{Vy7J&` z&fkvKN=BtkTDlY9(+ea+3^`2@)vqw1pj*S98fkv-Y*{_Me`B!jVdv>4)& zlTjxFz?u5HCXhY;3?1V+49R+779t~M{We+YbxU*DYrq ztKW#I*Z4!TW`< zCjp4)%?z+7-5HfMT;Q8%FF64IOG(I}It*WyM)Kr)9nv?ams-yMx7!tE-VPG(Rn?3W>!um7XPqyFP&#j)U zcK0x|RT_)v9?Z8V2sWPlxZBKB`TiOINh~nF&^r0OB!8|8TR6+*0b zrpNMWo$oyhvM(XuHxK~vMg93paOD|mon8;pkm+ldjCM^BzW0IC;G@u(spcD*38~I)?ao{&jFI-xGzwA*G$5p?|MU)w`;)chu<+n36W%+9SqVE_m1vU>caKl5hU4I2=d})1wDx8X+^Gew)?{Y zc(M%OD3079mLlu-$XQIH!xs3>`6=Fe#5JJWepRdTeNgpS^d1WMdX8@yMxEHn0j=1I zYczyQMm7{24!QCKM+KyBSM?VVV>8EMg!rC@9v{kHUksX0Xk}(9qhE^B+;H<(*>HEH zjD-6m`yU?xC#PBEs!sGK=%>r2$TaP_zivk&$wS8n6fo+Yi^cI%guQq_*o3t;hsYdcx*M>TAiAy&GknlqG62R47sZnnL~wG!FeBtpiP z`QY<1Iun_p6@aps_3EiCp7N(A5APXwC#7d+n{=M<>Pb5>8IA-z_*{^`6mo}hczaH9 zy{yaVRn*AGfTf+(6(~MP>O{U&ug%-r|yzL2J5Tx3olpkY_tz)}Ym7 zbjh8N-q;WTV8oC^V+{Z~2ae~gx?R>J$hgo3AJup#Al;785>BI61hncaAB(X)PYoO(u;S{G{Em< zZ*ysThHSquJZy3HmjKoD&5h*`5}$t~S=2vC@i8a+iEN4esJ=%Wk{xzHW6sRy^19y9 zs21w?!<4r&6o#%X9O**a?tZT zOu|_`uHB^!buf+pujT0Q5MO~)mw=fSrjH(_^q*~#L04|^$pEcW5*u*N_f` zJ!#ZwcanwEcK!`3DJQLun$V+@Q}hf{oHpfFn`fNTb(&{WJpdgIMJYFxa1s^lIZA}= zlX*iw57C1=(Eg_=n#4)$t#*ru`bq~?@p>>tY4eNSLUmtsnYy}!6)43g%$|`mA$1nD zacEIdkyI>>8kd@iib^uArI@0+loaAJTX9j*01*!*6BE;@6lM|X?D;hn=jlR2NJt1J z+xrxWTuP=A`Y_VyP1zrbOm1 zB+{_I4~wq=*{0E16%v9nHr?u}ub*M4A}8r0R+!I4#s$@saOU}347ra6Q!EveMW_= z5#izft*xR!8w{3tOLTU0g!AL2MCRf4Hfm)a?OJePXcv*-JxjV>{5uO-BEFuqKfO?+ zt=Pwxzwh`8m%-PS7Oyl1-8kbklZm*Cv+PdXfQkFkH<^FpR7 ziQ*sEa-){w9Fp4D8Ck))7@fAi}4nbU-%dg!M zS*3lnk{GwKcg8wbPGKu4%c=fnG?a;(GH62(mtI;7QtqPndAW}_pt_GfT^1&er?`j# zOB)+VVs11APi;|ntsd)22H>nuZEgk!wllwaOCSP-|AiT0Y)#O`Dli$KO<-K_e0zIE zwT*H@K{y@?)w;jgt<(#Cot+~7n4Y9nIMhAjc)l}nHTR8fpd%RD;e6*qjQ~3@?Zutl ze0>ahEe$m_uqEMCM<~^Es&pN6ef{ZE&XKnEH=pn@!=b5`O3m%pF3y${omCXyBA0^m zXaFdP!CTL)9bV6k^!N@!${G7!%bBHw#A>_60*gc@%8u69Kz7pv<{vz&>tt^d^b ziKV98w1VNcT&sU5Ni@oQ1Nr1zu$j2YxCLWqaX+F zXYFgGMA?=beH7;xB3>Ec;o%NjYnP0ytQ(%~vnzLMKD#Tarefcmxi^Ub= zNhJtcIS;mVlGhyhfmQ5IRJw#izBkJ1KE~TbB@}W_{GfwsyrL(IroF;Mf?A|w8tlJG z>Gj~vyn~wbWDBD1^^O>z4PN>W1!!@Nf&bYt-b;`uI|+ba^Sn~@A&%#vF3!cjOjjPo zHh_tUC_ePucWmAKM1bW%`U>x!|F&~vCbr_f3+Z{zVo>QyJ_rf_`v)9CPrV!2jXVgJ z`|S830$falgz*-Z94~M|=dF`j1P6NbPFeQx*p2GaOzIx*qpFhfe-qM>40V*|0?vIOMKxAMWUuQbs*Md-aiQgTWT z*5b`!+DG8Oi-bi!oud#Uf-YlPt@XD!-n#lQ1X=d*VeH-UNpG>{R5wUfR?z zAqPx};7WEO03aoV09Y^nB9TZPd7P{IqGi=%P(zdT=a1C4gao7pJ*<0Ele{CPjyXXC zjPG54Ul}>K=Xw`5Aut*bB8!nUy&%IJlyC5hUJ|32Oe%Vvm~BMFJPEm)tBYGn0)uBl zLKmiIeyf6l0BMecU9>uE&E6e0)<&yptNU zgQ*&Gi8DwhyV+u|41@;dnmD(iLPu{N1t;Ys4j#t5k85&kBoERz!VI4V_X)g3mpDj2 z03Z|1_o1lIBAME*QN?@iDjRias0Cbh)ct83BVP#CP29r~hx?oj20wn35A_@1&C23f zbvWp*{K^`b(0mGK*m*MTnQT9?eX0Z(Nj##}K zj6H0vchr5;TVfp>9gh`sMQ;a>p5hf$0Dr88i)L2hVhE;^-T7xFcq`>Z_<%_C50;kQ zgWJ;QHGDjBVo{TUHPd*)czXwju1<=mphc|*9?i;{tC`Vf-5gYcCJ%`&I=|gO|m&7u=eeePhk?ZU%3AnAN*(-j-qQ}O@*ukh(us2J)(BKp-C4G%R7tFgy3RPA3xo~~M$ z8w`Aa44Cd+?)k8ke>Ky6f!Q38MhFi)oLBmO8t4}N5~I|%_k-1a!yntQU#^HhY1sE- zkIMH&dI;un=+*94Bb#Kwc+x-^RGn#oHULZjA6;Gs7Zx(y-QPDbwsmw!j`U4${2s2D~Q8_!u zPfMOc+D!EAm6pIV1hT&J(%j6Yo#Mw-RBl>^*C*nXl-1a)PJIXd|bePi~h-Ka>rZ^Ac`?_ z_YC{3q@*-;Y?J1rAt5aWWko}STj`f=fd((?_cSL4Z~6!2jLo0|;@Zh*Q;EKWo}BAp z6@dd3C~&g~01Ohqo{CPyI<8GRXSO%}eNtvhMM46;gUvI7oFC78D2=Mw^BiwHAjSW> z>Zbls5UEx4<44Sn1vwMN3U5-2DrqR!5on^tS^ zIN{-;po3pIpe?)GyA>S{RJybU%U>=ja_Z{|rhGjtMSfX)9(7xogXX=-ULgPs_4YkW z1x~6ybxcDt4HH;tg<263BW|`PZ#m6LmVz z6&gUkKk_oO-OmzOWXc+d; zQL)mT#aSF zg1(E4&oCWIhmX7}s3UNh3M8^lNjU6BY zpcMCUzb=QWd}z8@c6m8bI$sEi)j3m*^ZRBQAS*@Vu0}~KB-@|0RjGV>PNBs$2|6WW z-5&wpRYraXqLXn`@ZONTvCqotj!lpC*EH~W_9WcKKt{xv)1&Pe4Jo~>*b}x2hlkuD zffGp_{N5*OWyJ_Ff@Ij6ZM?O$`Se<+*7HS;@uuzk@NjozdegK0XWpFaeaBC>F#B){ zOS?Xr;xatyz7A*HyTD)#`V}ORX&#*%kDlz0p%mwwyq{f+w(C3S92)ngl+)MP=!E8J*sXLf0A2S9)RH0P7wVd%mH!Ii71CTqaoLZx8pH^f}#15ogVgul^cqi>Cx zSnybAZl-@)GFhT`@!BZV;PtAnfv%L`%ag(Ekq4SC3bG|e$?feLd&||xvRyuh)xD`~ z2DJ+E%ox}FK{yY?1V&^S8jt;wm>HOnI1hu=y~I79EZ3d)emq*1JUjn<#}{N$4c9#D zz#V&PEpiRl8!efLIx|qzN&rSRJKGhaQ3;=G%ZNFvzX`>C>dJ6>@-tt5Fxvok!{E!K zo7hV&%U6H@{*8SrFHeKX)8XamSyzIrg4r8Ait=$Yw^GFWhLWFuW<~U4jjYt&#qsA8 z*#iohsn!=)1zCL1=F`;J=@o4oD`H)BGFQ&^cWK$#LPa_)IXO8!nca(DGO?qx`Re<+ z3q3zgReUsCcvK|)c0Si#7z(Rtj&V5TJxc_ECyP7M4>unt{ML++l=r)uaWRWS8!6ag z-2nyF)fQ`#rjh?fmI549|9fzAfHczhVsFMIDj5MwTMZy}^@xL2f?Z$uAkrjp` z2e1R&0nksxuWxpkOUb#`p8$HIorY+ZX@5ctkJV&|kr*bu&u_$U%e&~w3P|M|=;r3; zfD&>HMOtcjLwA&}^E^nH#MycK)V%WB*Q@-XK$$6i?WE2I5jbF=i`i-uiz`-FK0E3xZN8

+?nL)2S-+2bO`wkGB94uI!T`^{!yfPpMt7EvmF03U`#DCf@L}zA3ffXOwx<75_ z#g;@wM2?P+pWYu)$1f==T3R%Cx=rQ7eevR>xq%>qA~jf7@Gk$`Res@W+d|WoM+edv z&+D%$n(9mImY6RM>Y*aSo|M;rP|tR!u$3zGJCjP70I^~1ny*1wPeWzHY86L#B17Q- zFbcSPcuaVF2U!*gFq^Hcsyb$ZANF9+a=M$qLR-Ftn$bTHU_Bz%*5_#m#P z40NZE7EM^jB_<+_1O^Z7FyTm4-6a~>d+lnt*Vl{DbCqWgr`&mrjxu_jg`B*~JRw`= z(?M*qUxpVEbw+^>K^7I~BgUZh7Qn^-tsYIIYGb}ijriX&kLtTZfw!w9~NAk$+^ znyqD?H8BB%y;cUZhdVghC=gx>|Nbr;1puoEYtif&B}~i?R=XPY9-isnq-m}~Xrv^yaB{lkwPHG=iRKB1|D68vzO__D10dR7{ z;Y&+OmbRCG;X0e8*#bG0EL(*t2vJ9*C@4Fv9!u%j^O`J_}*Z4OMdwL9O6)mYS2!_==)F;FR zyw8>S^zj{v$JVNm;j{nVBzW}f^U!aKF&@6mM4%kl^d9Opi!*; zt-YZ^`SLLM`vcsY_!z92{W&>D2RL49%E!T>AR#^?TQ-c2dY}8_^N8IdeqT5c&CsU8 zAowYL@79Dp1MYS#p*Z8?<6<9l!dRA<4T+JkDk`orjk_6PNO!llm*IVf0>((J6e89? zH(TkB6-y8-AFs2!cx%GOd3b;hvE0$NiOy%LTM`{)be%4Be=WEf)ryr1Mk%vw$Y?*d z1T?9lmXtcj8-7(slRzOSC$|r`a9}#c5_veG?d$71TJ$<3vB}T9n`|F`+~ZQY{%Ah* zWB1e!>uG?$rwV!Mk~>$X3cP;UVSn)8=LYgrUx82=4#+3PL<RRj>HNJ`*p9>9B$_K&*6P#q$$x*ZFSvH5EPvR*53$tymtmA757O zo~42-10^9d)1VL*g>%Cyk^zYEK*1&nO-(5Svc$?|w6#gVZ6#u@PK0Fy5|1TMT3Y(@ z&Wayi1k#s}0v%M3aMf9*C|+Pu!9;Dmg|@b~y_;JwIBiHS2Y-&qU%UX9#j945BQowR zVXq5zYv~`+^lM8?0O&=*zXI3d3Cm^b7*Im$$KRFq&dvc%>S1U>UrK%utP>Ji>~4h& zyyKDiX%lXBc>o9K>3uxjT9(9-h`#NnC@NEzRLd35j^+BQm@RV+`j(X=vIwXaKHeA< zG-u+VWqoV>mwBr7_4QdLC1^V3&#~}Og_@kdsMGs5rIIDh(zm6gkV>(J8y~z7QNT(U z4fbQ`v{>B;Lw$hT;`0?j$a-J--mSSn{E7S^3WmMT2&x>lTn1&Am6?)|wY(()%NGG? za4<4Br%TlF5+C#^4wbEuM9fUfeRK3wR9~(|R-f0s z5R3$q$O4LA{)rpH4+;LriW{jslq3LH@>KhNvx6nE(kQq=aP%*8e*#AeA#=~@!9sgn z9QFO4wj3>9bcQg8w>!=+uk+t$75dZKs(u&igwyUDUk`%4Z;c`=*^p#qxqzj;75KMJ zuF?Gb?b?-TWcc`!`WL$h1_lOFva}o2lNqP zhK=RrPdf(~mT{`RNB9H{uOmU|A-QwD+XKSF%#|tj^t7~kn_xB_^+T!Z9}~zW(;{t&HyUCL`14`-Xz_;*vj+0}R@CysLOhB7J^c6bZqR%&qIjk>x;3}zz@U*(`SJ+8f5NBk=1X1 zrY89FmMP0A9P}g%?af;ZirM+q?&O^v%LAtf88!3!ktAX>JB{Z-Y}%@#LS-dmk6};2 zLwYTB0nH4ZpI-o8wRrUWRHNKXM6U`emyh?W^>a-xL&_(GQ@MYXhzTqE>|vcBQ~+>% z03$J&kCmW~$!csQjf{+(Zt-qr9p3F@kVI`cVQvbuEFZU$v zMRy_~;Fj8CMCae)xR=Hq3eqLhls&bs8dCYHZ&~f;WPl|fRlHCv45{RI&!n*pe$6&v z`*}C6=4Uh?=~U_i(979Def$>^YIwV?y$`l3m#@kg|86BQ zBND;waAgydOm3=*UFM_8m&8&YcgQmQ&DqwMHGGDVN&``$22Vm`OA3WueyfC0oam?N z-j8L2gKl9@akkpdNQ{MLEHw-$^nk!Xi0|i++yxM=p$Ff3<{Wn!pW7cnHk}^xC3CWp z;Xy@3p}Gb?&6IP&;wC`sqfXenT2ffQiM#90I8uM+lalQ+Ar*vW|1VVYiO#u(VX?Ht zuOJJE5yihDDEgh}+C<}WmR4LAtun(g7q$W;N#QVOWBF@U2vO>HTCV=$mem!GWoaSii(&hRQ4_| z&wNFwy`R=bi}!H@iroJ-Eb%oz9Yo&BEmL1fz-3b{?=zLmrDA_p#JKr5k}cUIYTveX zUU~XDsj&dbkl2Eow7#)k4DF+ZYi?fsP!u;QW}iA!+-GhSi#epXiEPUi>V7*+AL$5a z;{9;ok&%(-sddu&e)&hW3WZizbN;$q^pd%yQ5IQ8?=%qh%~&{b^R1Wpahh3eXXiha z$wld7Qzv_S(Rl3*fHr(}dy4?P;~^y=Ak5CI!ZBqcM1h`OK7jS5g2X{^+Xw!<%WC$i z7Rw@Z7#|itHt-iz5Xq!TID6&fmj70qi*n10(>}xho@Cilkhinw?XI5r9Kb zG{MNsELr$IJxilhrF=9?raUONh6{w9$~mKyRr2O<)+jJ~+ym8D zOvFefW2$kQ>RIKvG@Q&6#0zyS6$?$sfW3oDXKpaIIEwfIg>P21DyCutQsDccqo7a! zn)VY@z}fI0ut55sz(W21FIad7f(8D69JEpkB4GJL=gpfpZ84*@(J`|Z-ZuMZW#HKq zdwY9mxH=k$t-G6Ddl8?sOqoA_{zNC<-?U9l5si+H2EZuVW+BP3 z_-W^T4NqPGc6X&Gn&nWc!Eu0!`e$Mga|#Vz+35j3j}5~=Hx|FTraDWtm_4TnJ8Z~6 zEHzt_y{ASvkCO!XUmyUEvCQVs-0LlTTY+L~k{irBk@8%?b#Gdwk}HnqdS6oVi)66W zYR%KCz6-i`xq*vNWg>aNda7su6A5z7J}<7XudmeZNDIJrWw>mJVq2Zi_*|0UuZo-OI% zKQ6cX=bV5INz|H0Eo3}xb0GdmYa2UZIkRX*U1!ISK4K4d%Q{Gar;HSPU=&4ce{pg2 z)vYlwtO%DR#0{+Lc0GE|a5lXM^Yi2_?VmmRn3G7liCiJE zjP{P=M!$=Ax%BHpX)-p^Yf9B(#6!DTYexx^E{o&Xf1*XSoxM&*P{9)We~S3GOJrZ6 z@A~^*e?kyz9(up=&!%+W9}F}s-w&NIFXl8~GoXv=*u~r?Gyls_MYuNO6Q2kXdWVRE zP%U{$HmA-YuYZSu*g~@cFt}IOVf?HGSGvlK*uQEy@c&h`VWI=u)8Y9~LH}ZiNG&uw zyYXG0akrFwIB~aO<#yc!2bjkI4>-{)P?CT@XzJjfO_+}|u;W(YgXO%Z`S z1E&C<=sMYQV9>W0_zXIb`APM)@5W!JyJ=N6e>m*wJ$h+kf3&uDkJ;lu$MlpX=K5OdkU*)uc;s^g`a$KxjV=7r?RJ%Mi#YNwl``t@nzu@rj zUVq9N!A!RM@L^wrgZ&8Y<>jlK3ok3e_6IHxPL70YvK3wbK}#hI#$>S6kLG!1JU_(h zd7vmJCY@b)oX__P(J3_7yJKUF7GDaJ5i!P$-H4MGM|W6#JE8RdIkfpQEePiFjEx(@ z$;*_Z9qsJuH`X0?D{U6u-5C6`sP)Yi_Uz=>J%I^$#wC|)9^3Ao`OXHM+39?TXLm?T z5BkFgI9)vvYLgc0&;B$#q``eqSI_dpAs{5m4dTnf5v=z9@PSb11^LoU9j4ygk1wU+ z=(M$`$Z(DALI0Dl>HW~vxTEN2rU25ra_wl(;GluQSle3s{4SH1t?n^fL_~w}R0!;W z6g8HFuJ2P!I9jP@sPBU?+6a6GNu0R>0e2-d|QI>>sexlC?p=_xDv z!!T7zQ(8jm=6U|ROurcb4iOP4e`>PL|HZpI?IT>9v~Xzk^}RdId^7>eF=rsh)bqhu zo&NHPZF02rDRBW6?d?}vg_$@cBySgeZf$Z5zV|0KpJMjvDuMW=OR(1|ts>5G2q@teZ zmZij$FhFPQI!eE}QQF{9KsbBie<6;-==t7-?cT}dj%F$3OC-zqL+fm!ov-nHgi`{Z zVBYKh0P}J|4T*llk7`m4wYURMS(N=wJmJLi!XH3GlK@XX6kxs3*<5K|-ydAKBO6Zp zGM`)iAq;NgL^3BwYL!hvLCV#Ym-FsUO1^b^)4;kVe=5@|XZh!bJIFRo9R8$2pp1X_ zR8?dpnkil^j@&Zm2GAqbg)w{c#m|IqT5c5w|T!KE+Gy|HNFAq zCVGr5>?gKCS~})qlk3FwT(z4>)-BP)@LF#Gj^9joBuDd9g=x!()rkq)gMsKh!79uH z`O+iaZ&E`NaNy( zWol*o!EMm{p&@%02XRn+ZLI0b(T{+3a&k|L7m;c*#_a6d!RqR2Wo2bRQ&SUTXFk;b z30m45LR!vt;XNxq_Q!d7<<8HMEiW(6ce+K(*^9DaBOfe2%i7H~+4pS^y4o9LAP|kw zBq#JA4m$~4mj@QU2I`d8E%r-Of6*wFeh4&J-r7QOD<;6`c%l)(eg6*^XDPFMQk&U2 z>4Rpkp58&}cCbjjuTMflPNAkI9D*WWp$5q$to97uO3s%~2BVY}G86 zfKBPIvOfG+76*@L>am8P>fLORMcQp`;QI|q%zZAA!otvt}&nj$mZljS7eRrz!Lx67u3WIn0@iA*eQs=e z%?Ulg^6MWLTGoS`H8$x!x_Z7Oz_>;26DFqV$UtLiKD_4Tch zeDrw=;eZm?{|6_3YTK<`Jz4IscX3)318L*|zh~%j6X#^-8^~Zn?-l9gjQPA*gRCyl zSamrv5V3UOxi$SSy|I+xi|KK=dVXvO5rV>?8s2;NsL#`x|~dtrgft?^xR0 zM2?U_h<_IdIvRrXRw%Dzuwk^hmz*glhQW^z!K&N0Z}awkKRYAk!zvEO${su&&YjY= zbJ&G>Uw(uK1YP&oldkvD?J7WTy$nNy9u!nfj5C4#C7kS@A&};)bMCeBXQk3Gvanzl zgRWmxl)^X6pu^eGaiwnETtvg#;ZHPi&}a7389|sH9k@raCQbuSbr7R@<4^s;cO7D| z3I`#rYD>Fp?T7Vs(7?WJR%mJ471~x*xQIM5+mc*AL3)XNKM<*drgS@TLpEq2N% zNbx&fYgIvsNf8>tF5^5TL9@xPK0j*&HKDjp#!bl}E1UI&0kT=HGYF|Sgo}Ac=kEL0 zES8JZctz6xVyG~unusKgY>{+b8swAE(9x-4M-y}1Hg*A-q#54Ffi#t;fJIbzeS2G zh!B3TikZPx&Wq{o-&3q(r@BuTu<3k!a=7WG&Dq9TIo0ZBBsf+gg7ohR_6xoWxqkf~ zh#D4ue3cBFR!A=kV5dqL9J-nv;TVyN?o;K_LG{+P(}`TPn&LdnctceL2O%ZxQ;f9= z!QN6BneA>jYxx=Z(v)-s-4uG03?nu`;VlKl;s;>_@O1tSUt0EI z8I|$VhZs*shwm`+VYBoW;E}u4IqJW2CpT&{h4qmkkI6#GM_j<8jPc{M>&$X*{1b*X zeE-VIgx^Hec-+Bu#THz@yh|hDz9VJ%o*u&zy}XPylyO?FR?yqS5aM8tR|%w)Je0T3 zHBrk&X&8XK?k-0@gDMH}>CheRk8_RjXRYokRbg^{b`N)h%$jI{h1Cej<7m&zlyLwp z_bnU%+S^-P(*k%(Iq_OLt2@r0D=dWjv&-xQtH8XxbsKIsf=1mEk zJehR6YfoO!=ARF2@?O1sqCe5%vmkJt?#*_o9M;=F?J_DtG4fVZ7z37{Ie)(9E^zP= zSj&Q{uqQ>?qHgnMHLU&lOD!RL-#*R{KXc~J);+i14%CQCNl#Zke13i3PtLQ;v-TQQ z`egjuKkLq7T?PfoS-rmfKz9t6Tt~Gzv)6^`cx#8Fbv05b})uT_J`@AjbA)-v@PEO<{ z*5~=-(Um{U|H>`~>p9yi*U#HKZXIqzVP7!~|1!yy+ZS?u&{&@vPDsPuBFMOvkxMRb zd*;6FtXEkw{_pq+X<}*rsaU~t6HFBSW4_(1itqf)qKi?S;`e!MdE4(qspp0apA2eh zK8+pF;}$;el~i|FeMTdoX>-Z7-@0(N@Mg&2#91*_eaPY~`XQ^I6U(cu*;$F)M*m|@ ze2=ZycW7gr{R0fcX@r6pbD9^c6|tga-hxvL(bwp5^MaR81LB?n03D$6QdZw5;~>+| zgk+;MNj0dN+s#d(Vwp9W)W-DDg!U0d8TY}wZ z4UfQi9O@}ZKBkHZ<|*PWX`~BzpaTWEL%(t>4NA#HJ<73^n(=eW`8^$8YBW0G4;Pvm z8Xn&66xr8ozxbxwP@X={gc5cf!0SGLMajmJ%x$)Bj+N=OMAMP)d?$YN(pZkhjeMCR z7t4;>qythdpUh=CUjN>^eRD<6%&ZdL7#titA@;gL->V6NunaF`fox^kwVg&_QwkqC zdeXkGG}yU4*xYog3-GxTX@hGD2wI>7;VMsZE0x>GC8`R&EVj1Cj*xHl()2DVElnp^ z=b)mZ8n4LwLk;+TZE%JaRohK4m~_77{Bkdk-<$&$AX%%`1R961eTzOOrPCq>}gYd3b5Bf&8dLIR7 zI5_OWfl=fpr(gGW$PJQFd^x#ijBj|*7EoL~Jv{brCx`!Nzd44vULL_f{ebQEop72>G{G@B^=bz_b>vH0WOyRn>^@7onC`R;h)RA6hDy9XXMZ zpv9GygYACaygn`j4)2}9_?~b$$Q9@!x{g=59r3Vq!tiLQLed2V`$TN+uEtU8q;z$4 zXA=`iq9}#&#Jvw48=|74Nv)d->m0iNPR5$gJ=J-7&Jh`*_AP~n{mD#)DLxumWQz9t zj@5LGC&xIMU?DTJ?L@Vn60m8esX{#7vcd|B&tphL5~*p#eCG}AR*HbuY*rFSaI(;0 z4F6ppNv*xQ8A-ibgO$o5*?-k8))(tI?!ie%ze0qL`oJ~pVx9%R>*rTD)|4r53m!7F ztQV83p}hq)1Y`{Di@iQ7wVG%fl+1ZRbry-xr6bQV-LIFXmPGXHp+w~7HKKW;z_>c4}D37o>s1RbQ2%xF*ywiu-Y z1rvYa?k_ldPtLtHG{gc@r2Jb{V7-m7fOJkaHULQc_KjYW6Su<2iSvG}zVvl`LIN^3 zH+M*AXti)jX?&H7MdY9l*S*Sw%wvPCu#v2!3dht;827cPzd6xyQe)%7O1H zUz_kP&v&QyhtBEex8h3;b6KWrJJ4{RHCzY2zuqCg=25E4{9)!LFSHWkd@xD#N> zxj2Fa+(h4q+}_?oe`XA9vD7$hs77Ur#H)2^&eXT7HPZMhZ+U8(1$=2C=jZVomw^Ph zNCPXhU%p&PGpfH|$NCxcj$ERP$7f%MmgB*Loa=3wwpxML;bJo<9F{Kp?*8^t$A2IF zO;TuzkYgm)4}-u_J3Rs;Vj(h|KPVo_8b7n+@y!JR^Pz<0CZ7|A#`2mPA|@ol)L`3e ze}hCTX9o$H_fj=w=@Y*y!)VSZwC$G0#-%vogPx$AogV~`B^9kGTUZQq_}>%`3=XR0 z)q5W;zYfEv?f8g@*vJhGbZ3d7m8N%)tOENF3o&iX#Arc26g`wN14PHUkUWl-GjFn2 z%vV;!{ZN3--!G6{WNfnuanPAQ?v429k;>KU1K)EVOgw<$KCi#eIk*>=o9>Vmeu ze#*%ot;w|5aXUFL_{GSF++L-qp5JK{DRUV3IR`9svgP*~e#9ya6etf5eJizNQdYNj zcXMysed(E*(Lg(qvCPvc&(WEf*Fo#)>2bN(H>{fiP-bnAYvw7{78tpY=%yU%{|(KM zSjr{!+iZ>EhvA(Cra`KIKaXqJKy{3mEhNI`)pT^^7)~8m2Jt7|G|vW;8YSXe04kR5 zF&Febh+>sjvBgX3LYIR4) zvK(3izmBJMPrK%(rl#K7wNa}iiPHn4A-Q&L;t9n!`B-+DDemRA?_JPI#P2XI3(b4| zy;zoZ8A)+38J8V>QqVNI8p6w&b4=wyIA6t7P7Xj7^NMmE2ca57IR+DxIx|i7aAwqT zOJwBVgLfo2d;x44U5Zpl!%(D+E#C9!Zfv5q&<9V8gK;ZLKzsJvIm7d(eV|QXispLSvpJbD&fvNj1%d z{J(g7*}>g0{(XZF3}|uKhWX4+ZJk=#ME!OaiK}QkNa$L4(C&}|%y9Oe?TJ2E;_UAE zJ%lG5=t2nP!`RFOF5vj&c@Q1PJC;pKhtQ+W(Mv54lwD$JkzZIKqJU=J^JcZA6t0(-ML{qNm0rz~62cx@twFIa}e|RyH z8^O~&!8=Q=`eyFHaroGQP|ned2D`5U>`Ci)TjalhadAAx3`B}O@;(R;u9?fxQxKhdNj257A3%nm_doXan&!ZfVyUKejJT83V0u+Ca zC?B5LVvVJ`cFXQ0yuLABj^w%8c`<|dY8AJBi@=l&)WKCwGtSJ&An@~q%DNUCbsJ6M z8~XbsW?bWL!Rn*;+>bhEad~bJ@!sFwlTSWtr?kAkMeOsBNd)KRF-%QQTU0xn@^7il zJ<&KX?%>>soF|0oLlz3nP=Mj{&iWh}sZ4d$qi}`mP9yO^8-x-}g zyz8sEXQQGyT#|;9*AEM|9pT{~)XM|g!Wn_ZBiESZd5L;v7x0;IHU(|}HJhWvT|IxS zvx27U!3?-?E8#%WGNgn%wu9t#8|K88mBuE@h(Hb}fiZ<}}ljq*w zA+J-gaG|6_1-OD72N^%9k0n~?8-JZA zpces;(uT`n4#>YeA8#Ac?hIP#3pLUQkh|J7IXaBnm)D$u>7wh4GVUL=#~VBGWmL|{ zkIyBK&%EBwBiYhsNfsl;Qqzq}{<3$_q>kBdVCVg2k{#a2VTW3x2I2Y?s!mcyf;F7= zuImWHz_;Y*J7?A;5mDn}j~-=1e!M>Wronb=v`j8HuH62OW`onxFQ=uJdW|e`1uAvE zmCeg#E9sc%X~Y^k3HD>f51YeHo_hut)q^y_ss+e`77L7gd(ta8l5Q@ z1FnuOYVnk@4a(khSG=k2*-vCB7Is~GnIYneT%?)Vlge+)^YPTW^|m^9o7EHkRA?=F zhLD_mNJ?62s*Hpr5&C_$m>U6kvXG;Qec=f{W}KgdsYA*YS!vgmx%kUk%FLc-6{v9=iaG*3DZ zfXkNe?i9NbYaNfhy?vQt{wKLynLqD5JnFtP;|E+H7&U$}mbNiM&7!4^F!QpOvBSnz zm5EmT%9J^*E0>0VJdqISpKt?Z1et%{^%!o;(!fxTNgZ!MnTA z!>ry!RDq&VrIgL}{Fx9eEG*yON_!zm?~bc@*|@odo9akPYcAdKr4s%kVLksA;YYKd zbME5gFFAP%C&abWz@+1phW)#jp&t@v=7_>27kUES*;Lciv{_qUH@v-KENs7G_?sz> zA7?hDL_7T#OV|-8Cw6FF7tYvm`N!IDm|V_r)AlZ6F+M)Ntf+`pLQ+!4_w@5}L2-Hf zz}kE@@ql_{S4F*hv!_*|LQaFxf*`B@0u#!qhC)P2Hy)nPBFtYOp&jEA_@aPy;Z zt7C^M346b6I}vNVpZ{>s*I0N9q)5th@mfJ35|Kg36<1$wAzaiN-P*`ppj~?ImTDwt zWCx){M%g>0I){OAMR6nx)9V8hDoUjmaW&Uvfp6r*J92X%mQB(=B&AWFNr~ih^9Td2g z&4F@46yVIotw%a*@*?|nwUtwGD_cL_P?*R>{QIRk_%OP#zul&;W?$9 z$@Ag`&d$z`V&L2#DOF39=Uf&)(kUC>wtb$)-76C2Xl!b>IH`Z{;^Fa<6WXSksqL|j zp5@}TIr4c#eG&Z_yE5hqv;`TMJ3Ada+dG{p3cAholV2od3*VySKWU{n%1lJ$Fil?- zGH&ym=v@`Ar|V=RBB%?y8w04FmRtInb7xG9X~|IQwxMeC?nPlqdAY*7cg#k9nVkH5PHj4O5D)`{T9KosVachVB8Fdy zVJTnTUBa4ikeQs(qGMxiRT@z`DT87O)=%bYK2XY!JVJ_pz&ITMmG@(vf|Un5-zdVD zd>w#8gGBjl&%6PmdVle+QWnVKmJ=8N)Oh2WC^5xu9uHbV0E$6{bp+^mMJR86^D|`s z`lSjO{fRFy8TjKZID&GJx!*$80{Z?9A3p$e?*FuV(~2}uH@+*cjhry`X9tdh*)`d? zEa&9ku7c6U3bEnB5nx$`2cv&-o$yiuHCb1;!-AiDOmvkAKaKoB%ZI9fgv7~W5lbUU zKuX&0&x_#97~nDAPz@uI#lm^UW&KI9R?z?R$BKdR)t_1%Fo?JFjA{kq^9-X2w(sRR ze^X)!an?3U*Ge^UI_L24@T%l7dG~dBOvC`U&1t1C5(T%UcviCQ-&fqwzYxmTXzmZ4 zxB0QNt)%k|;d-zDvHp<@nyjb%w7_?*l&%1mGq#z2m(3CKCqKsqIkmJh!%{grH&-VM z)X4r8RaXbYdWI^u>ifzJYv0(~ei+XC`jvQhch_1&EJ%LY>#$YENa_pXaK^q8)#BkA zCvd4ecoyr;d~VRvWhup=@V`bM$shXYiK?B`40c{#4WpjfA%&Zfc$hLESiTt0Ch3EK zE(1WJUny6o8fj;D9YzeRpoU^ z0%a!638~ZL4OB4kkB=DEbo&rjZyc!cHO({bXV}h*8+vh{N-N#TW)MPxgoP0IbZ)C z2~fJZ5KIZUK;3cl-k&X=6Jp236euJx_Gz7KhbA?##%;s6D+Y&p(YD2ZcFvuiA7h?G zk#5mS@XF zWHzAlu7S4JL+2Six!rM;v#HW-NKiOuBoMA#DPk%5gb~o4%BlirV)X(_RD~ObP^*IL| zNhU>wv_BVoRivpr5T2{eRyg6HbgPyP=>ekiEm5w+S-)$u_2d$J=(6$2v2K6Ywhp0) zlZz*Gkik|^{DH(yLLNT?<>lq&2vo_{PLn5oe3w5Mg3$79dBv2P0q@oEFX3+J$dOGA zSw49YYCi;V0n#}COisQjmPQ4ML;sZUJk(l%i@x%kr{OkvU-evriWocq=A@Mq;yPhJ4itKliCv4V)4c z&7+9p@viW4dl@^T&cwt70BdV&Ow^=m*#Ww`L?BJE*}-`p6hk3N@c>!G%EfhGK?}H| zw`9d|Q#+-584`{oMJFGJSlt}WjQswcDf5GhiprZ7kK)l=$2_dY9B}%5fq7bF(en+d zz!K+{j=5UK0!PV^*`ZI$bH1OAm58dUstA@^y@g)~1xLlF#>D|sxci7EM zP0B|2b|puq^64XyQ=LD-`y{?bWB{L>`oyWuQum7KBl@#QSP<$6X*Q- zA0x!bNF48ke;Q3*2NV&Jkw|ut$kWsFh90Aq`Kvg+F6GY ze%3a5GYQN#oezqvD?gh~$V6OnG$#f9Z{e=2x4lKK$(Db?eDp|iTw-F#+M4CzKb6$B zmKLMQ2$5;$3Nv1NA_+eJcM}+N!-%gA;bcdhISkvv_Vy;GW8-|hyo5&s{k-44ePiR` zAes6EBeJ&1csHEn+9?OB3e+i}Oky){+`8zSbq4f*SE<=1=J3B~I_dX$Kojn1+c{=E zw6R{%zz{HQ@ZKG3KU``O8REh+YH%cXc>lhcuX(By0-Bs!fwKp40%D>=MJ;&KBy{=R zKt;B?7$*I-HBHm*u7l&yJ=XN}^x`Ybq!ij1kaY5%M+=$5vgQo~!ALs(63!K@R-6M8 zXqxkAt{@6=>2&=&p1*w3RG`^d?oxi}iZ=~Toy;QLm->+lmD@7EQY(I9SJt7g4Z25Y z$BL`$!G{2$M$%aq*C%G7gtb!g>) zLnZ1Kasca;mXnu1cY?#=#MW}YoIh}7)n}mVeQ#xxYes3#hDO=hm={);r2vP|2w*C1CSD*TOAmPU zxl@>zr5|!eDvs3$xt*afrXqEe@k`JCZLpFa+qtYgQTwNmck7j&cXQ)~ScEItbFb6i zuMG?eF9kX2XQ3BD(&>W473^f4I;)+*oiSu8o)=L*mjMK%v@MxVc`*FNB6h=>k%* zpEnAcK0ixI6%s~#>JNCO?ZwzB<#LVzNA`2dU>-~TPMIQSiMJz2>N z|DDQ@F`UdT>;Mb8Mmlf}5XyyAxk$CTbW2FwI!Ux$-hK{;MGy9%!Ozkr^?L--)`#Fj zBL_@?Jn*EsO={+DsBdB`Tb;`E+9D^u5)83dDW)@7^Xdut_82 zOsP8kPn#!je5EE)mRehT=b9POrKAJ=%-3d1nk9ovH!q%47Eyyiaw~Xng+NU0Mt= zkt{%m0JY=8S4A`=IqOf zW|7|t9D2AQcjXlpK2>^lm=>3*m-B)C98Die2^{}s4V}ZI7W-Z+aF(W%ulR+tT;9!% zub0~wjD^0SpIu;<2&JiK1aK4@Gv|?3B-}9;~BP$sF{n>c58d zO$0}8u1}N0=Jw!pvsA2$%eVm9QkChH+4rt48IU`oqNDHn$9+hmV`KZ=?6E_ns;1V= z#KF!U|6R)G_R6)wxSI_A&f0qA>SSHl zM2|;Gyl91#XGE!Bi+knj9;WSDMi$yUM|)!Sh(_|DuLzj`oJI3j?1Z*n9(Hf3m^~rm z^ExY&A^-q1vB!S_+Mo9Y-YSL$B6nI0E?0q^F1#h~-`9Ozfv%2CTmI0<2UYa9fv+x) z`uc5-k_CDk^{$j}w zPPWhF5~<^O%0YatRjm*@UZ(ZMCqrIYS=lINBRLi9(Nz8-1$g`!i0}Lkok3d|b&ZdX z-`m$e^4hGjzdr&Sa(-^4QW*py{cL=uUflQw4Cb=A?rht&G6uVkEPWfh(pmD%b^3-d zL-aNJpjS*2jkF&x5b_?IhVZ z<>@k`G|H`MsBNqlX#{=Gjypplfw>acD~R^6_~W?KzM`e!L8#e&sX-Cm@^=x8pA%1P~4M`NSmbGvE8P(0r>E5mttnAC8cs7jD2oRuf z_-m6yD91Kn4VegkOE=*@QDRx1z**Xl>PWIzH^zc zy^rJZxDpPvR7)|zSgf-rwr#?t6t+ZA#z`REfMZ^n zXExn@x=|W-P7=Y%Fbi#;Kk6IOHQ${o1~;J>r_5Q^)W%EiGyzv4Di&=cBW!R^gKfk; zcS%f4Otei+IloAO2F3DBRx4AiKee)^Mt8(&QVlc>aG${c5{}0@%I=TP=