From 1345f05616f30fb661b638304a956dcc6e9b590c Mon Sep 17 00:00:00 2001 From: Screemonster Date: Mon, 26 Mar 2018 00:31:52 +0100 Subject: [PATCH 01/29] WIP alraune species --- .../living/carbon/human/human_species_vr.dm | 4 + .../carbon/human/species/station/alraune.dm | 134 ++++++++++++++++++ vorestation.dme | 1 + 3 files changed, 139 insertions(+) create mode 100644 code/modules/mob/living/carbon/human/species/station/alraune.dm diff --git a/code/modules/mob/living/carbon/human/human_species_vr.dm b/code/modules/mob/living/carbon/human/human_species_vr.dm index 45b615c2400..ed27c12e62d 100644 --- a/code/modules/mob/living/carbon/human/human_species_vr.dm +++ b/code/modules/mob/living/carbon/human/human_species_vr.dm @@ -25,3 +25,7 @@ /mob/living/carbon/human/protean/New(var/new_loc) ..(new_loc, "Protean") + + +/mob/living/carbon/human/alraune/New(var/new_loc) + ..(new_loc, "Alraune") diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm new file mode 100644 index 00000000000..af844f25b9d --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -0,0 +1,134 @@ +/datum/species/alraune + name = SPECIES_ALRAUNE + name_plural = "Alraunes" + unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite) + num_alternate_languages = 2 + language = LANGUAGE_ROOTLOCAL + slowdown = 1 //slow, they're plants. Not as slow as full diona. + total_health = 100 //standard + brute_mod = 1 //nothing special + burn_mod = 1.5 //plants don't like fire + metabolic_rate = 0.75 // slow metabolism + item_slowdown_mod = 0.25 //while they start slow, they don't get much slower + bloodloss_rate = 0.1 //While they do bleed, they bleed out VERY slowly + min_age = 18 + max_age = 250 + health_hud_intensity = 1.5 + + body_temperature = T20C + breath_type = "oxygen" + poison_type = "phoron" + exhale_type = null // as much as I'd like them to breathe in CO2 and breathe out O2, it'd take completely rewriting breath code + + cold_level_1 = 200 //Default 260 - Lower is better + cold_level_2 = 140 //Default 200 + cold_level_3 = 80 //Default 120 + cold_discomfort_level = 260 //they start feeling uncomfortable around the point where humans take damage + + heat_level_1 = 330 //Default 360 - Higher is better + heat_level_2 = 380 //Default 400 + heat_level_3 = 800 //Default 1000 + + breath_cold_level_1 = -1 //They don't have lungs, they breathe through their skin + breath_cold_level_2 = -1 //and we don't want messages about icicles in their nonexistent lungs + breath_cold_level_3 = -1 + + breath_heat_level_1 = INFINITY + breath_heat_level_2 = INFINITY + breath_heat_level_3 = INFINITY + + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED // whitelist only while WIP + flags = NO_SCAN | IS_PLANT | NO_MINOR_CUT + appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR + + color_mult = 1 + icobase = 'icons/mob/human_races/r_human_vr.dmi' + deform = 'icons/mob/human_races/r_def_human_vr.dmi' + flesh_color = "#9ee02c" + blood_color = "#edf4d0" //sap! + base_color = "#1a5600" + + blurb = "Alraunes are a rare sight in space. Their bodies are reminiscent of that of plants, and yet they share many\ + traits with other humanoid beings.\ + \ + Most Alraunes are not interested in traversing space, their heavy preference for natural environments and general\ + disinterest in things outside it keeps them as a species at a rather primal stage.\ + \ + However, after their discovery by the angels of Sanctum, many alraunes succumbed to their curiosity, and took the offer\ + to learn of the world and venture out, whether it's to Sanctum, or elsewhere in the galaxy." + + has_limbs = list( + BP_TORSO = list("path" = /obj/item/organ/external/chest), + BP_GROIN = list("path" = /obj/item/organ/external/groin), + BP_HEAD = list("path" = /obj/item/organ/external/head), + BP_L_ARM = list("path" = /obj/item/organ/external/arm), + BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), + BP_L_LEG = list("path" = /obj/item/organ/external/leg), + BP_R_LEG = list("path" = /obj/item/organ/external/leg/right), + BP_L_HAND = list("path" = /obj/item/organ/external/hand), + BP_R_HAND = list("path" = /obj/item/organ/external/hand/right), + BP_L_FOOT = list("path" = /obj/item/organ/external/foot), + BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) + ) + + // limited organs, 'cause they're simple + has_organ = list( + O_HEART = /obj/item/organ/internal/heart, + O_BRAIN = /obj/item/organ/internal/brain, + O_EYES = /obj/item/organ/internal/eyes, + ) + +/datum/species/alraune/can_breathe_water() + return TRUE //eh, why not? Aquatic plants are a thing. + + +/datum/species/alraune/handle_environment_special(var/mob/living/carbon/human/H) + if(H.inStasisNow()) // if they're in stasis, they won't need this stuff. + return + + //They don't have lungs so breathe() will just return. Instead, they breathe through their skin. + + var/datum/gas_mixture/breath = null + var/fullysealed = FALSE //if they're wearing a fully sealed suit, their internals take priority. + var/environmentalair = FALSE //if no sealed suit, internals take priority in low pressure environements + + if(H.wear_suit && (H.wear_suit.item_flags & STOPPRESSUREDAMAGE) && H.head && (H.head.item_flags & STOPPRESSUREDAMAGE)) + fullysealed = TRUE + else // find out if local gas mixture is enough to override use of internals + var/datum/gas_mixture/environment = H.loc.return_air() + var/envpressure = environment.return_pressure() + if(envpressure >= hazard_low_pressure) + environmentalair = TRUE + + if(fullysealed || !environmentalair) + breath = H.get_breath_from_internal() + + if(!breath) //No breath from internals so let's try to get air from our location + // cut-down version of get_breath_from_environment - notably, gas masks provide no benefit + var/datum/gas_mixture/environment2 + if(H.loc) + environment2 = H.loc.return_air_for_internal_lifeform(H) + + if(environment2) + breath = environment2.remove_volume(BREATH_VOLUME) + H.handle_chemical_smoke(environment2) //handle chemical smoke while we're at it + + H.handle_breath(breath) // everything that needs to be handled is handled in here + + // Now we've handled the usual breathing stuff, check for presence of CO2 in breath, and light levels + + var/co2buff = 0 + if(breath.gas["carbon_dioxide"]) + var/breath_pressure = (breath.total_moles*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME + var/CO2_pp = (breath.gas["carbon_dioxide"] / breath.total_moles) * breath_pressure + co2buff = (Clamp(CO2_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1. + H.adjustOxyLoss(-co2buff*2) + + var/light_amount = fullysealed ? H.getlightlevel() : H.getlightlevel()/3 // if they're covered, they're not going to get much light on them. + + if(co2buff >= 0.2 && light_amount >= 0.4) //if there's enough light and CO2, heal. Note if you're wearing a sealed suit you'll never be able to do this no matter how much CO2 you cheese into your internals tank. + H.adjustBruteLoss(-(light_amount * co2buff * 2)) //even at a full partial pressure of CO2 and full light, you'll only heal half as fast as diona. + H.adjustFireLoss(-(light_amount * co2buff)) //this won't let you tank environmental damage from fire. + + if(H.nutrition < (200 + 400*co2buff)) //if no CO2, a fully lit tile gives them 1/tick up to 200. With CO2, potentially up to 600. + H.nutrition += (light_amount*(1+co2buff*5)) \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index ac579c0790b..ae816b1ed61 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2007,6 +2007,7 @@ #include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm" #include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm" #include "code\modules\mob\living\carbon\human\species\outsider\vox.dm" +#include "code\modules\mob\living\carbon\human\species\station\alraune.dm" #include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\golem.dm" #include "code\modules\mob\living\carbon\human\species\station\human_subspecies.dm" From dc51c324c213ce04b239a19de2c84f59ddbe3568 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Fri, 30 Mar 2018 03:42:33 +0100 Subject: [PATCH 02/29] tweak temp tolerance + succudrain --- .../carbon/human/species/station/alraune.dm | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm index af844f25b9d..cf5a8da8d26 100644 --- a/code/modules/mob/living/carbon/human/species/station/alraune.dm +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -20,14 +20,17 @@ poison_type = "phoron" exhale_type = null // as much as I'd like them to breathe in CO2 and breathe out O2, it'd take completely rewriting breath code - cold_level_1 = 200 //Default 260 - Lower is better - cold_level_2 = 140 //Default 200 - cold_level_3 = 80 //Default 120 + // Heat and cold resistances are 20 degrees broader on the level 1 range, level 2 is default, level 3 is much weaker, halfway between L2 and normal L3. + // Essentially, they can tolerate a broader range of comfortable temperatures, but suffer more at extremes. + cold_level_1 = 240 //Default 260 - Lower is better + cold_level_2 = 200 //Default 200 + cold_level_3 = 160 //Default 120 cold_discomfort_level = 260 //they start feeling uncomfortable around the point where humans take damage - heat_level_1 = 330 //Default 360 - Higher is better - heat_level_2 = 380 //Default 400 - heat_level_3 = 800 //Default 1000 + heat_level_1 = 380 //Default 360 - Higher is better + heat_level_2 = 400 //Default 400 + heat_level_3 = 700 //Default 1000 + heat_discomfort_level = 360 breath_cold_level_1 = -1 //They don't have lungs, they breathe through their skin breath_cold_level_2 = -1 //and we don't want messages about icicles in their nonexistent lungs @@ -41,6 +44,12 @@ flags = NO_SCAN | IS_PLANT | NO_MINOR_CUT appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR + inherent_verbs = list( + /mob/living/carbon/human/proc/succubus_drain, + /mob/living/carbon/human/proc/succubus_drain_finalize, + /mob/living/carbon/human/proc/succubus_drain_lethal, + /mob/living/carbon/human/proc/bloodsuck) //Give them the voremodes related to wrapping people in vines and sapping their fluids + color_mult = 1 icobase = 'icons/mob/human_races/r_human_vr.dmi' deform = 'icons/mob/human_races/r_def_human_vr.dmi' From 9d34f4d8cbb2211d85c5df2d9bffa6210504f717 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Sun, 1 Apr 2018 19:52:22 +0100 Subject: [PATCH 03/29] gets rid of handle_breath call and moves all breathing processing to alraune.dm --- .../carbon/human/species/station/alraune.dm | 198 ++++++++++++++++-- 1 file changed, 183 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm index cf5a8da8d26..0686dd3fece 100644 --- a/code/modules/mob/living/carbon/human/species/station/alraune.dm +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -16,9 +16,9 @@ health_hud_intensity = 1.5 body_temperature = T20C - breath_type = "oxygen" + breath_type = "carbon_dioxide" poison_type = "phoron" - exhale_type = null // as much as I'd like them to breathe in CO2 and breathe out O2, it'd take completely rewriting breath code + exhale_type = "oxygen" // Heat and cold resistances are 20 degrees broader on the level 1 range, level 2 is default, level 3 is much weaker, halfway between L2 and normal L3. // Essentially, they can tolerate a broader range of comfortable temperatures, but suffer more at extremes. @@ -32,13 +32,13 @@ heat_level_3 = 700 //Default 1000 heat_discomfort_level = 360 - breath_cold_level_1 = -1 //They don't have lungs, they breathe through their skin - breath_cold_level_2 = -1 //and we don't want messages about icicles in their nonexistent lungs - breath_cold_level_3 = -1 + breath_cold_level_1 = 220 //They don't have lungs, they breathe through their skin + breath_cold_level_2 = 180 //again, tolerant in the midrange but burn fast at extremes + breath_cold_level_3 = 140 - breath_heat_level_1 = INFINITY - breath_heat_level_2 = INFINITY - breath_heat_level_3 = INFINITY + breath_heat_level_1 = 400 + breath_heat_level_2 = 450 + breath_heat_level_3 = 800 spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED // whitelist only while WIP flags = NO_SCAN | IS_PLANT | NO_MINOR_CUT @@ -95,7 +95,13 @@ if(H.inStasisNow()) // if they're in stasis, they won't need this stuff. return + //setting these here 'cause ugh the defines for life are in the wrong place to compile properly + //set them back to HUMAN_MAX_OXYLOSS if we move the life defines to the defines folder at any point + var/ALRAUNE_MAX_OXYLOSS = 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. + var/ALRAUNE_CRIT_MAX_OXYLOSS = ( 2.0 / 6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks. last_tick_duration = ~2.0 on average + //They don't have lungs so breathe() will just return. Instead, they breathe through their skin. + //This is mostly normal breath code with some tweaks that apply to their particular biology. var/datum/gas_mixture/breath = null var/fullysealed = FALSE //if they're wearing a fully sealed suit, their internals take priority. @@ -122,15 +128,82 @@ breath = environment2.remove_volume(BREATH_VOLUME) H.handle_chemical_smoke(environment2) //handle chemical smoke while we're at it - H.handle_breath(breath) // everything that needs to be handled is handled in here + // NOW a crude copypasta of handle_breath. Leaving some things out that don't apply to plants. + if(H.does_not_breathe) + H.failed_last_breath = 0 + H.adjustOxyLoss(-5) + return // if somehow they don't breathe, abort breathing. - // Now we've handled the usual breathing stuff, check for presence of CO2 in breath, and light levels + if(!breath || (breath.total_moles == 0)) + H.failed_last_breath = 1 + if(H.health > config.health_threshold_crit) + H.adjustOxyLoss(ALRAUNE_MAX_OXYLOSS) + else + H.adjustOxyLoss(ALRAUNE_CRIT_MAX_OXYLOSS) + + H.oxygen_alert = max(H.oxygen_alert, 1) + + return // skip air processing if there's no air + + // now into the good stuff + + //var/safe_pressure_min = species.minimum_breath_pressure // Minimum safe partial pressure of breathable gas in kPa + //just replace safe_pressure_min with minimum_breath_pressure, no need to declare a new var + + var/safe_exhaled_max = 10 + var/safe_toxins_max = 0.2 + var/SA_para_min = 1 + var/SA_sleep_min = 5 + var/inhaled_gas_used = 0 + + var/breath_pressure = (breath.total_moles*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME + + var/inhaling + var/poison + var/exhaling + + var/failed_inhale = 0 + var/failed_exhale = 0 + + inhaling = breath.gas[breath_type] + poison = breath.gas[poison_type] + exhaling = breath.gas[exhale_type] + + var/inhale_pp = (inhaling/breath.total_moles)*breath_pressure + var/toxins_pp = (poison/breath.total_moles)*breath_pressure + var/exhaled_pp = (exhaling/breath.total_moles)*breath_pressure + + // Not enough to breathe + if((inhale_pp + exhaled_pp) < minimum_breath_pressure) //they can breathe either oxygen OR CO2 + if(prob(20)) + spawn(0) H.emote("gasp") + + var/ratio = (inhale_pp + exhaled_pp)/minimum_breath_pressure + // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS (1) after all!) + H.adjustOxyLoss(max(ALRAUNE_MAX_OXYLOSS*(1-ratio), 0)) + failed_inhale = 1 + + H.oxygen_alert = max(H.oxygen_alert, 1) + else + // We're in safe limits + H.oxygen_alert = 0 + + inhaled_gas_used = inhaling/6 + breath.adjust_gas(breath_type, -inhaled_gas_used, update = 0) //update afterwards + breath.adjust_gas_temp(exhale_type, inhaled_gas_used, H.bodytemperature, update = 0) //update afterwards + + //Now we handle CO2. + if(inhale_pp > safe_exhaled_max * 0.7) // For a human, this would be too much exhaled gas in the air. But plants don't care. + H.co2_alert = 1 // Give them the alert on the HUD. They'll be aware when the good stuff is present. + + else + H.co2_alert = 0 + + //do the CO2 buff stuff here var/co2buff = 0 - if(breath.gas["carbon_dioxide"]) - var/breath_pressure = (breath.total_moles*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME - var/CO2_pp = (breath.gas["carbon_dioxide"] / breath.total_moles) * breath_pressure - co2buff = (Clamp(CO2_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1. + if(inhaling) + co2buff = (Clamp(inhale_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1. H.adjustOxyLoss(-co2buff*2) var/light_amount = fullysealed ? H.getlightlevel() : H.getlightlevel()/3 // if they're covered, they're not going to get much light on them. @@ -140,4 +213,99 @@ H.adjustFireLoss(-(light_amount * co2buff)) //this won't let you tank environmental damage from fire. if(H.nutrition < (200 + 400*co2buff)) //if no CO2, a fully lit tile gives them 1/tick up to 200. With CO2, potentially up to 600. - H.nutrition += (light_amount*(1+co2buff*5)) \ No newline at end of file + H.nutrition += (light_amount*(1+co2buff*5)) + + // Too much poison in the air. + if(toxins_pp > safe_toxins_max) + var/ratio = (poison/safe_toxins_max) * 10 + if(H.reagents) + H.reagents.add_reagent("toxin", Clamp(ratio, MIN_TOXIN_DAMAGE, MAX_TOXIN_DAMAGE)) + breath.adjust_gas(poison_type, -poison/6, update = 0) //update after + H.phoron_alert = max(H.phoron_alert, 1) + else + H.phoron_alert = 0 + + // If there's some other shit in the air lets deal with it here. + if(breath.gas["sleeping_agent"]) + var/SA_pp = (breath.gas["sleeping_agent"] / breath.total_moles) * breath_pressure + + // Enough to make us paralysed for a bit + if(SA_pp > SA_para_min) + + // 3 gives them one second to wake up and run away a bit! + H.Paralyse(3) + + // Enough to make us sleep as well + if(SA_pp > SA_sleep_min) + H.Sleeping(5) + + // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning + else if(SA_pp > 0.15) + if(prob(20)) + spawn(0) H.emote(pick("giggle", "laugh")) + breath.adjust_gas("sleeping_agent", -breath.gas["sleeping_agent"]/6, update = 0) //update after + + // Were we able to breathe? + if (failed_inhale || failed_exhale) + H.failed_last_breath = 1 + else + H.failed_last_breath = 0 + H.adjustOxyLoss(-5) + + + // Hot air hurts :( + if((breath.temperature < breath_cold_level_1 || breath.temperature > breath_heat_level_1) && !(COLD_RESISTANCE in H.mutations)) + + if(breath.temperature <= breath_cold_level_1) + if(prob(20)) + to_chat(H, "You feel icicles forming on your skin!") + else if(breath.temperature >= breath_heat_level_1) + if(prob(20)) + src << "You feel yourself smouldering in the heat!" + + var/bodypart = pick(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD) + if(breath.temperature >= breath_heat_level_1) + if(breath.temperature < breath_heat_level_2) + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, bodypart, used_weapon = "Excessive Heat") + H.fire_alert = max(H.fire_alert, 2) + else if(breath.temperature < breath_heat_level_3) + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, bodypart, used_weapon = "Excessive Heat") + H.fire_alert = max(H.fire_alert, 2) + else + H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, bodypart, used_weapon = "Excessive Heat") + H.fire_alert = max(H.fire_alert, 2) + + else if(breath.temperature <= breath_cold_level_1) + if(breath.temperature > breath_cold_level_2) + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, bodypart, used_weapon = "Excessive Cold") + H.fire_alert = max(H.fire_alert, 1) + else if(breath.temperature > breath_cold_level_3) + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, bodypart, used_weapon = "Excessive Cold") + H.fire_alert = max(H.fire_alert, 1) + else + H.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, bodypart, used_weapon = "Excessive Cold") + H.fire_alert = max(H.fire_alert, 1) + + + //breathing in hot/cold air also heats/cools you a bit + var/temp_adj = breath.temperature - H.bodytemperature + if (temp_adj < 0) + temp_adj /= (BODYTEMP_COLD_DIVISOR * 5) //don't raise temperature as much as if we were directly exposed + else + temp_adj /= (BODYTEMP_HEAT_DIVISOR * 5) //don't raise temperature as much as if we were directly exposed + + var/relative_density = breath.total_moles / (MOLES_CELLSTANDARD * BREATH_PERCENTAGE) + temp_adj *= relative_density + + if (temp_adj > BODYTEMP_HEATING_MAX) temp_adj = BODYTEMP_HEATING_MAX + if (temp_adj < BODYTEMP_COOLING_MAX) temp_adj = BODYTEMP_COOLING_MAX + //world << "Breath: [breath.temperature], [src]: [bodytemperature], Adjusting: [temp_adj]" + H.bodytemperature += temp_adj + + else if(breath.temperature >= heat_discomfort_level) + get_environment_discomfort(src,"heat") + else if(breath.temperature <= cold_discomfort_level) + get_environment_discomfort(src,"cold") + + breath.update_values() + return 1 From 75b7abfce767fe0d352279025efd9dac133d8b02 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Sun, 1 Apr 2018 21:44:16 +0100 Subject: [PATCH 04/29] a few tweaks to tolerances and regen to make going outside naked suck --- .../carbon/human/species/station/alraune.dm | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm index 0686dd3fece..526715c239f 100644 --- a/code/modules/mob/living/carbon/human/species/station/alraune.dm +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -32,13 +32,13 @@ heat_level_3 = 700 //Default 1000 heat_discomfort_level = 360 - breath_cold_level_1 = 220 //They don't have lungs, they breathe through their skin - breath_cold_level_2 = 180 //again, tolerant in the midrange but burn fast at extremes - breath_cold_level_3 = 140 + breath_cold_level_1 = 240 //They don't have lungs, they breathe through their skin + breath_cold_level_2 = 180 //sadly for them, their breath tolerance is no better than anyone else's. + breath_cold_level_3 = 140 //mainly 'cause breath tolerance is more generous than body temp tolerance. - breath_heat_level_1 = 400 + breath_heat_level_1 = 400 //slightly better heat tolerance in air though. Slightly. breath_heat_level_2 = 450 - breath_heat_level_3 = 800 + breath_heat_level_3 = 800 //lower incineration threshold though spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED // whitelist only while WIP flags = NO_SCAN | IS_PLANT | NO_MINOR_CUT @@ -204,13 +204,12 @@ var/co2buff = 0 if(inhaling) co2buff = (Clamp(inhale_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1. - H.adjustOxyLoss(-co2buff*2) - var/light_amount = fullysealed ? H.getlightlevel() : H.getlightlevel()/3 // if they're covered, they're not going to get much light on them. + var/light_amount = fullysealed ? H.getlightlevel() : H.getlightlevel()/5 // if they're covered, they're not going to get much light on them. - if(co2buff >= 0.2 && light_amount >= 0.4) //if there's enough light and CO2, heal. Note if you're wearing a sealed suit you'll never be able to do this no matter how much CO2 you cheese into your internals tank. - H.adjustBruteLoss(-(light_amount * co2buff * 2)) //even at a full partial pressure of CO2 and full light, you'll only heal half as fast as diona. - H.adjustFireLoss(-(light_amount * co2buff)) //this won't let you tank environmental damage from fire. + if(co2buff && !H.toxloss && light_amount >= 0.1) //if there's enough light and CO2 and you're not poisoned, heal. Note if you're wearing a sealed suit your heal rate will suck. + H.adjustBruteLoss(-(light_amount * co2buff * 2)) //at a full partial pressure of CO2 and full light, you'll only heal half as fast as diona. + H.adjustFireLoss(-(light_amount * co2buff)) //this won't let you tank environmental damage from fire. MAYBE cold until your body temp drops. if(H.nutrition < (200 + 400*co2buff)) //if no CO2, a fully lit tile gives them 1/tick up to 200. With CO2, potentially up to 600. H.nutrition += (light_amount*(1+co2buff*5)) @@ -261,7 +260,7 @@ to_chat(H, "You feel icicles forming on your skin!") else if(breath.temperature >= breath_heat_level_1) if(prob(20)) - src << "You feel yourself smouldering in the heat!" + to_chat(H, "You feel yourself smouldering in the heat!") var/bodypart = pick(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD) if(breath.temperature >= breath_heat_level_1) From c8632e8accedb04afb3bb2e219b03ad58d26eaac Mon Sep 17 00:00:00 2001 From: Screemonster Date: Sat, 5 May 2018 06:29:57 +0100 Subject: [PATCH 05/29] adds organs --- .../carbon/human/species/station/alraune.dm | 32 ++++++++++++++++-- icons/mob/species/alraune/organs.dmi | Bin 0 -> 877 bytes 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 icons/mob/species/alraune/organs.dmi diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm index 526715c239f..0f8d7b5622a 100644 --- a/code/modules/mob/living/carbon/human/species/station/alraune.dm +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -82,9 +82,10 @@ // limited organs, 'cause they're simple has_organ = list( - O_HEART = /obj/item/organ/internal/heart, - O_BRAIN = /obj/item/organ/internal/brain, - O_EYES = /obj/item/organ/internal/eyes, + O_LIVER = /obj/item/organ/internal/liver/alraune, + O_KIDNEYS = /obj/item/organ/internal/kidneys/alraune, + O_BRAIN = /obj/item/organ/internal/brain/alraune, + O_EYES = /obj/item/organ/internal/eyes/alraune, ) /datum/species/alraune/can_breathe_water() @@ -308,3 +309,28 @@ breath.update_values() return 1 + +/obj/item/organ/internal/brain/alraune + icon = 'icons/mob/species/alraune/organs.dmi' + icon_state = "neurostroma" + name = "neuro-stroma" + desc = "A knot of fibrous plant matter." + parent_organ = BP_TORSO // brains in their core + +/obj/item/organ/internal/eyes/alraune + icon = 'icons/mob/species/alraune/organs.dmi' + icon_state = "photoreceptors" + name = "photoreceptors" + desc = "Bulbous and fleshy plant matter." + +/obj/item/organ/internal/kidneys/alraune + icon = 'icons/mob/species/alraune/organs.dmi' + icon_state = "rhyzofilter" + name = "rhyzofilter" + desc = "A tangle of root nodules." + +/obj/item/organ/internal/liver/alraune + icon = 'icons/mob/species/alraune/organs.dmi' + icon_state = "phytoextractor" + name = "phytoextractor" + desc = "A bulbous gourd-like structure." \ No newline at end of file diff --git a/icons/mob/species/alraune/organs.dmi b/icons/mob/species/alraune/organs.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e2da475f67949836775bf419faa185cbb2ff6615 GIT binary patch literal 877 zcmV-z1CsoSP)G@*#)#gw(#rw?{7f(lb(lof%0007DNkl=qQdv&MyN?Mqo=PbizwGrRY6y}4 z&qifqZ_EAHTGRzOnCr6qE&;g$VAR&$&e^LzKW_kPmgSb?ZtP{=0{XgSh1!_bZUE3% zn_~cTF{a-D4f@D)+gj64TM6@#f%n$f9uq+T2G}vDaOyGXlI#QZ#ay@qq13Psz-&0i zSi5Y!?E-HnC2{B=$8gUg$B$5xTk}9T%eQ6u69FoKDxh5wqfy{$b0GxQkz^n=P+7`Q z=G-nYH6FMvF-@`4>J0pJ66TjpKwatt3HX7{u-w*w%t2sK3L0(S!>>vV_? z{!6Q+AM#y%v~bJC4iIa-&3-mI76Tn0fwWb1Ujdws-nlpc$Sfo|iqRd6u()$i!EGYX z3D`(9GxK3ZV4!j>QMK*NVsJRTDs1GHghpeX>lW!Am)J(^R00*=UOjW)^|Y4=RGPiY zQo!2T0j^No0WD+v4piD`Ju`R9q*tJltpLsRJbM?|qoP;XqqyD|0$R7a^$GyrrStQ` zg8&^|gs9(YcJctli;m|YJd^~cp+bEmGz+f_p?s)#J7NeE(>{PG0DhyymxoN5WG!aV zIp_+&?N3el!kFJ5)&n41Iuk&UxUc(;4FTjEPdHjWvrOx-*HXa)I#BTNf=B`c+g164 z?gJeO-G~xO?Go`ESh2%Lg9FGx1m47vbTaxkpj7_^m(z8{X9dXh00000NkvXXu0mjf D(D9ip literal 0 HcmV?d00001 From 350b6f5ea85670406704624d2bec0704a4e80ab8 Mon Sep 17 00:00:00 2001 From: Granodd Date: Tue, 5 Jun 2018 14:13:11 -0400 Subject: [PATCH 06/29] New sprites for Virgo. --- .../vore/appearance/sprite_accessories_vr.dm | 52 ++++++++++++++++++ icons/mob/vore/ears_vr.dmi | Bin 17569 -> 19252 bytes 2 files changed, 52 insertions(+) diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index 13c2f7b2da6..a58fc9f6fff 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -88,16 +88,58 @@ do_colouration = 1 color_blend_mode = ICON_MULTIPLY +/datum/sprite_accessory/ears/curly_bug + name = "curly antennae, colorable" + desc = "" + icon_state = "curly_bug" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/dual_robot + name = "synth antennae, colorable" + desc = "" + icon_state = "dual_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/right_robot + name = "right synth, colorable" + desc = "" + icon_state = "right_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/left_robot + name = "left synth, colorable" + desc = "" + icon_state = "left_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/ears/oni_h1 name = "oni horns" desc = "" icon_state = "oni-h1" +/datum/sprite_accessory/ears/oni_h1_c + name = "oni horns, colorable" + desc = "" + icon_state = "oni-h1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/ears/demon_horns1 name = "demon horns" desc = "" icon_state = "demon-horns1" +/datum/sprite_accessory/ears/demon_horns1_c + name = "demon horns, colorable" + desc = "" + icon_state = "demon-horns1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/ears/demon_horns2 name = "demon horns, colorable(outward)" desc = "" @@ -105,6 +147,13 @@ do_colouration = 1 color_blend_mode = ICON_MULTIPLY +/datum/sprite_accessory/ears/dragon_horns + name = "dragon horns, colorable" + desc = "" + icon_state = "dragon-horns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/ears/foxears name = "highlander zorren ears" desc = "" @@ -413,6 +462,7 @@ desc = "" icon_state = "spider-legs" color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/wing/moth name = "moth wings" desc = "" @@ -682,12 +732,14 @@ icon_state = "fantail" do_colouration = 1 color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/tail/wagtail name = "avian wagtail, colorable" desc = "" icon_state = "wagtail" do_colouration = 1 color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/tail/crossfox name = "cross fox" desc = "" diff --git a/icons/mob/vore/ears_vr.dmi b/icons/mob/vore/ears_vr.dmi index 126f2ba4268085c7eb3dfcea4e30518c5eb9d3f6..37bf23b17475c85997ff7ec4839f8178a35a89d7 100644 GIT binary patch literal 19252 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 F{{a@+!ioR@ From 078a5d715fb82bde4b30e789c2eaf8a5bd8cd5ee Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 10 Jun 2018 20:52:44 +0300 Subject: [PATCH 07/29] Unleashes the clown drone Oh the horror. https://forum.vore-station.net/viewtopic.php?f=46&t=1354 --- config/jobwhitelist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/config/jobwhitelist.txt b/config/jobwhitelist.txt index a6224b4fe4e..168eccbcda9 100644 --- a/config/jobwhitelist.txt +++ b/config/jobwhitelist.txt @@ -6,3 +6,4 @@ suicidalpickles - mime whiskyrose - clown tinybear16 - clown chargae - mime +verkister - clown From f7d77629afe8fbcfc64048d96b2bf292b663858c Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 10 Jun 2018 12:38:58 -0700 Subject: [PATCH 08/29] Merge pull request #5339 from Anewbe/eye_color Change-Eye-Color verb should work again --- code/modules/organs/internal/eyes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm index 3b44682095b..9d82a7749b8 100644 --- a/code/modules/organs/internal/eyes.dm +++ b/code/modules/organs/internal/eyes.dm @@ -50,7 +50,7 @@ // Now sync the organ's eye_colour list. update_colour() // Finally, update the eye icon on the mob. - owner.update_eyes() + owner.regenerate_icons() /obj/item/organ/internal/eyes/replaced(var/mob/living/carbon/human/target) From d768871055d27b0c7ad9a044991d6ae4d76371ce Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 10 Jun 2018 12:41:06 -0700 Subject: [PATCH 10/29] Merge pull request #5341 from Anewbe/catwalks_again Wires are under catwalks, fueltanks are over floor decals --- code/game/objects/structures/catwalk.dm | 2 +- code/modules/reagents/reagent_dispenser.dm | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 6d5a1cbe323..60cb0753b18 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -2,7 +2,7 @@ /obj/structure/catwalk name = "catwalk" desc = "Cats really don't like these things." - plane = TURF_PLANE + plane = DECAL_PLANE layer = ABOVE_UTILITY icon = 'icons/turf/catwalks.dmi' icon_state = "catwalk" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index dc35852eedc..494659fb1e3 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -5,8 +5,7 @@ desc = "..." icon = 'icons/obj/objects.dmi' icon_state = "watertank" - plane = TURF_PLANE - layer = TABLE_LAYER // Above catwalks, hopefully below other things + layer = TABLE_LAYER density = 1 anchored = 0 pressure_resistance = 2*ONE_ATMOSPHERE From 1d054fd29eeb157ce1c375dd636eda67ce06c441 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 10 Jun 2018 19:48:04 -0500 Subject: [PATCH 12/29] Robolimb brand damage tweaks, makes VeyMed more fragile (#5183) * Robolimb brand damage tweaks, makes VeyMed more fragile * Lessens VeyMed damage malus to 10%. --- code/modules/organs/organ_external.dm | 2 + code/modules/organs/robolimbs.dm | 5 +++ .../Anewbe - Robolimb Fragility.yml | 37 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 html/changelogs/Anewbe - Robolimb Fragility.yml diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 789dce7dfbc..777ff047e1d 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -1105,6 +1105,8 @@ Note that amputating the affected organ does in fact remove the infection from t R = basic_robolimb if(R) force_icon = R.icon + brute_mod *= R.robo_brute_mod + burn_mod *= R.robo_burn_mod if(R.lifelike) robotic = ORGAN_LIFELIKE name = "[initial(name)]" diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 1f15f125c24..11d2d51733c 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -49,6 +49,9 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ var/suggested_species = "Human" //If it should make the torso a species var/speech_bubble_appearance = "synthetic" // What icon_state to use for speech bubbles when talking. Check talk.dmi for all the icons. + var/robo_brute_mod = 1 // Multiplier for incoming brute damage. + var/robo_burn_mod = 1 // As above for burn. + /datum/robolimb/unbranded_monitor company = "Unbranded Monitor" desc = "A generic unbranded interpretation of a popular prosthetic head model. It looks rudimentary and cheaply constructed." @@ -214,6 +217,8 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ skin_tone = 1 blood_color = "#CCCCCC" speech_bubble_appearance = "normal" + robo_brute_mod = 1.1 + robo_burn_mod = 1.1 /datum/robolimb/wardtakahashi company = "Ward-Takahashi" diff --git a/html/changelogs/Anewbe - Robolimb Fragility.yml b/html/changelogs/Anewbe - Robolimb Fragility.yml new file mode 100644 index 00000000000..74ba5734125 --- /dev/null +++ b/html/changelogs/Anewbe - Robolimb Fragility.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds the ability to make robolimb brands more or less vulnerable to brute or burn." + - rscdel: "Makes VeyMed limbs more vulnerable to brute and burn." From 69670ce5446db4c8eeec05c53f3f59fdf2b50279 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 11 Jun 2018 10:22:05 -0400 Subject: [PATCH 14/29] Merge conflict fix --- maps/tether/tether-06-station2.dmm | 70 +++++++++++++++++------------- maps/tether/tether-07-station3.dmm | 46 +++++++++++--------- 2 files changed, 64 insertions(+), 52 deletions(-) diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm index 67d3a75d22a..6210eb82457 100644 --- a/maps/tether/tether-06-station2.dmm +++ b/maps/tether/tether-06-station2.dmm @@ -17600,6 +17600,9 @@ }, /turf/simulated/floor/tiled, /area/security/prison) +"Ey" = ( +/turf/simulated/floor/reinforced/airless, +/area/space) "ED" = ( /obj/structure/table/rack{ dir = 8; @@ -18101,6 +18104,11 @@ /obj/random/maintenance/medical, /turf/simulated/floor, /area/maintenance/station/sec_lower) +"NS" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/space, +/area/space) "NY" = ( /obj/machinery/light/small{ dir = 8 @@ -22628,16 +22636,16 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +NS +NS +NS +NS +NS +NS +NS +eM +NS +NS aa aa aa @@ -22770,6 +22778,7 @@ aa aa aa aa +NS aa aa aa @@ -22778,8 +22787,7 @@ aa aa aa aa -aa -aa +NS aa aa aa @@ -22912,7 +22920,7 @@ aa aa aa aa -aa +NS aa aa aa @@ -23054,7 +23062,7 @@ aa aa aa aa -aa +NS aa aa aa @@ -23196,7 +23204,7 @@ aa aa aa aa -aa +NS aa aa aa @@ -23338,14 +23346,14 @@ aa aa aa aa -aa +NS aa aa aa ab -ac -ac -at +Ey +Ey +Ey Qs Qs at @@ -23480,14 +23488,14 @@ aa aa aa aa +NS aa aa aa -aa -ac -ac -ac -Qs +ab +Ey +Ey +Ey Qs Qs at @@ -23622,14 +23630,14 @@ aa aa aa aa -aa +eM aa aa aa ac -ac -at -Qs +Ey +Ey +kk Qs Ug at @@ -23764,7 +23772,7 @@ aa aa aa aa -aa +NS aa ab ab @@ -23906,8 +23914,8 @@ aa aa aa aa -aa -aa +NS +NS ac ac ac diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index 58e18710b90..de47d879d0a 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -23475,6 +23475,10 @@ /obj/random/maintenance/engineering, /turf/simulated/floor, /area/maintenance/station/ai) +"Wf" = ( +/obj/structure/grille, +/turf/space, +/area/space) "WD" = ( /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/red/border, @@ -27344,16 +27348,16 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +nA +nA +nA +nA +Wf +nA +nA +nB +nA +nA aa aa aa @@ -27486,6 +27490,7 @@ aa aa aa aa +nA aa aa aa @@ -27494,8 +27499,7 @@ aa aa aa aa -aa -aa +nA aa aa aa @@ -27628,7 +27632,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -27770,7 +27774,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -27912,7 +27916,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -28054,7 +28058,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -28196,7 +28200,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -28338,7 +28342,7 @@ aa aa aa aa -aa +nB aa aa aa @@ -28480,7 +28484,7 @@ aa aa aa aa -aa +nA aa aa aa @@ -28622,8 +28626,8 @@ aa aa aa aa -aa -aa +nA +nA ab ab ab From 7960499bd2b41a8a6cced9e7a33c1fec54a4e52f Mon Sep 17 00:00:00 2001 From: Mewchild Date: Mon, 11 Jun 2018 12:00:27 -0500 Subject: [PATCH 15/29] Vietsi Fluff Items --- code/modules/vore/fluffstuff/custom_boxes_vr.dm | 7 +++++++ code/modules/vore/fluffstuff/custom_clothes_vr.dm | 7 ++++--- config/custom_items.txt | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm index 57b83c98768..3c05cdbc410 100644 --- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm @@ -217,6 +217,13 @@ /obj/item/clothing/gloves/fluff/morsleeves, /obj/item/clothing/under/fluff/morunder) +// Mewchild: Phi Vietsi +/obj/item/weapon/storage/box/fluff/vietsi + name = "Phi's Personal Items" + desc = "A small box containing Phi's small things" + has_items = list( + /obj/item/clothing/accessory/medal/bronze_heart, + /obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi) /* Swimsuits, for general use, to avoid arriving to work with your swimsuit. diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index 5dfb9bfec81..60d11f36131 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1680,9 +1680,10 @@ Departamental Swimsuits, for general use //Mewchild: Phi Vietsi /obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi - name = "signet ring" - desc = "A signet ring carved from the bones of something long extinct, as a ward against bad luck." - + name = "Phi Vietsi's Bone Signet Ring" + desc = "A signet ring belonging to Phi Vietsi, carved from the bones of something long extinct, as a ward against bad luck." + var/signet_name = "Phi Vietsi" + icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "vietsi_ring" diff --git a/config/custom_items.txt b/config/custom_items.txt index 35fb84339c3..7335f4503a1 100644 --- a/config/custom_items.txt +++ b/config/custom_items.txt @@ -528,7 +528,7 @@ item_path: /obj/item/weapon/implanter/reagent_generator/savannah { ckey: mewchild character_name: Phi Vietsi -item_path: /obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi +item_path: /obj/item/weapon/storage/box/fluff/vietsi } { From 01fddbbc02e2adfa1c45ec05dc40c99441e6bf50 Mon Sep 17 00:00:00 2001 From: Layne <31356648+MisterLayne@users.noreply.github.com> Date: Mon, 11 Jun 2018 14:10:40 -0400 Subject: [PATCH 16/29] Sky is not a 'skiy' (#5344) * Clandestine (Original Commit) * Revert "Clandestine (Original Commit)" This reverts commit cdb1abb47b3720e9160a4942a06f1b9036db2c27. * the skiy --- code/modules/multiz/movement.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 6cbef8586be..ea1a8b47068 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -451,7 +451,7 @@ if(!silent) if(planetary) visible_message("\A [src] falls out of the sky and crashes into \the [landing]!", \ - " You fall out of the skiy and crash into \the [landing]!", \ + " You fall out of the sky and crash into \the [landing]!", \ "You hear something slam into \the [landing].") var/turf/T = get_turf(landing) explosion(T, 0, 1, 2) From f1c5978a32f31f7c9b328fed2a9cdd50e89b4c35 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Mon, 11 Jun 2018 13:10:24 -0500 Subject: [PATCH 18/29] Merge pull request #5343 from ReddeyfishVor/slimeChanges prevent slimes from spawning on top of people --- code/_helpers/events.dm | 14 +++++++++++++- code/modules/events/atmos_leak.dm | 11 ----------- code/modules/events/escaped_slimes.dm | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/code/_helpers/events.dm b/code/_helpers/events.dm index 74e047e8119..e31d24783e8 100644 --- a/code/_helpers/events.dm +++ b/code/_helpers/events.dm @@ -12,4 +12,16 @@ var/area/A = locate(areapath) // Check if it actually exists if(istype(A) && A.z in using_map.player_levels) grand_list_of_areas += A - return grand_list_of_areas \ No newline at end of file + return grand_list_of_areas + +/** Checks if any living humans are in a given area! */ +/proc/is_area_occupied(var/area/myarea) + // Testing suggests looping over human_mob_list is quicker than looping over area contents + for(var/mob/living/carbon/human/H in human_mob_list) + if(H.stat >= DEAD) //Conditions for exclusion here, like if disconnected people start blocking it. + continue + var/area/A = get_area(H) + if(A == myarea) //The loc of a turf is the area it is in. + return 1 + return 0 + \ No newline at end of file diff --git a/code/modules/events/atmos_leak.dm b/code/modules/events/atmos_leak.dm index e9fea3ff669..6823adee968 100644 --- a/code/modules/events/atmos_leak.dm +++ b/code/modules/events/atmos_leak.dm @@ -51,17 +51,6 @@ kill() return -/** Checks if any living humans are in a given area! */ -/datum/event/atmos_leak/proc/is_area_occupied(var/area/myarea) - // Testing suggests looping over human_mob_list is quicker than looping over area contents - for(var/mob/living/carbon/human/H in human_mob_list) - if(H.stat >= DEAD) //Conditions for exclusion here, like if disconnected people start blocking it. - continue - var/area/A = get_area(H) - if(A == myarea) //The loc of a turf is the area it is in. - return 1 - return 0 - /datum/event/atmos_leak/announce() command_announcement.Announce("Warning, hazardous [gas_data.name[gas_type]] gas leak detected in \the [target_area], evacuate the area and contain the damage!", "Hazard Alert") diff --git a/code/modules/events/escaped_slimes.dm b/code/modules/events/escaped_slimes.dm index b36a0d15bff..c9f4f661a3e 100644 --- a/code/modules/events/escaped_slimes.dm +++ b/code/modules/events/escaped_slimes.dm @@ -33,7 +33,7 @@ /datum/event/escaped_slimes/start() var/list/vents = list() for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) - if(temp_vent.network && temp_vent.loc.z in using_map.station_levels) //borrowed from spiders event, but it works. Distribute the slimes only in rooms with vents + if(temp_vent.network && temp_vent.loc.z in using_map.station_levels && !is_area_occupied(temp_vent.loc.loc)) //borrowed from spiders event, but it works. Distribute the slimes only in rooms with vents vents += temp_vent while((spawncount > 0) && vents.len) From 2c4a123f43b627646f5f6c434198be09f1c0c1e6 Mon Sep 17 00:00:00 2001 From: Verkister Date: Tue, 12 Jun 2018 10:21:02 +0300 Subject: [PATCH 20/29] Makes belly transfers update contamination. -Transfers from itemweak belly to another now reset the contamination according to the target gut's settings. --- code/modules/vore/eating/belly_obj_vr.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 4b1d8ef0a50..e7f3df020c7 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -578,6 +578,11 @@ if(!(content in src) || !istype(target)) return content.forceMove(target) + if(isitem(content)) + var/obj/item/I = content + if(I.gurgled && (target.mode_flags & DM_FLAG_ITEMWEAK)) + I.decontaminate() + I.gurgle_contaminate(target.contents, target.cont_flavor) items_preserved -= content if(!silent && target.vore_sound && !recent_sound) var/soundfile = vore_sounds[target.vore_sound] From 3c7d1cff6af33d60e61c5177e65988bdfedb4c7f Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 12 Jun 2018 00:44:01 -0700 Subject: [PATCH 21/29] Merge pull request #5348 from Serithi/master You thought these two would never be fixed --- icons/mob/human_face.dmi | Bin 89888 -> 89879 bytes .../cyberlimbs/morpheus/morpheus_alt1.dmi | Bin 657 -> 684 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 78b0b2e1d4a060bb7829e1c6a01280f7e1193173..49f3738c97d1ae14fb826a14fad4138fca4a4864 100644 GIT binary patch delta 42131 zcmYhj2Rv2({|A1Iq9vn}GD=2CR7UniRI;g**^phugj9a_%|r@p?bkyZ6{_N!V?lC(B^pD<{jhrDW$` z(XXpa4i){}jd;Gkr~6QCQdDG&FBKP@W>V}POHEw9_>JyC_ z`*beaG4iREe3}1vODMtcyP{32`+#x%ahbb=>a+Jmjwc#g$Dyy6XQxs3Zi-38J?$&i zbi445%y;CH08-CQz}P>71gEL&>++a&_NTK*gghL3bDb2Sp2ARetye-fu;xOrUjvW2 zJAVx)VORRD5VK%84K*{pKhRL}d0ypST07*j=YO=i4{OsOIMpuhN(y#7 zC)lg@S1sj9fDShKg{jeF6h)f#dMD)Vv$D1I;K6#oU29P(R>4dhhTd$wrySei>+sC| z5g`dDg>t`$dbl^TW{EbHvG8W7q<#+tYGC=Dt!ATftm*4dC)#J1n(q}jv#UoR6fL;n zmasFkvqGK||5b$KUm&}E`$nK0F&n@jrqQ0A*z8 zcOmQ)sr9VNR?!B`u4b6A-fsL^TwbmJ{>G;COYpqlF z9W-eRu0;-tWqz|xG5VwGeG%m?i8X$(mtXV&x|lLD%8rBEUpBG=-KL284dqLW#Uj$S z?yZy$UEJ4y2A5LY8s9CXrU_*Jy0?gD-&gm#j~lr^T$9k&-X8P)4+)px>bc=|!!{lKB9-i`#w9<_L}{wod5lbx3*hfB43 z9aFW*3~~8L6G`lW<#Q$GA6w8=cR|Lw-f-b9L~<_SvtlP%9fCd`nzOt$@&2676C=q2)!|NxeFG%2pAZW=7JYCn? zzK^@ z{QPhWILlFp!gh*bBFx$Z>`{oJF*n8$G;2!&Cf+^Fh}#Q|USAT9Bt_4#gK8o7Ru?_b zl~V6>`{6Qzc`J$4U3_K5@^0QU|!X zV29VzZ^io5?LoJ-lW-{-okCMpTurFXcU(;q6dK##`-|c{@!IeA#x1A;WJOkAumlBj zsal+ub1NA4>Lc8^dd%}`NrPX{Ex6rp4B$pgXnb#DujLAyX6Om7oEO~CevNQP;ot4*Qe%T*J6q&e659zgTP+W>TSb*Kl)pdng*KwH^Y8}C8w8)&Y9iVp`Ep(7c*TsLI3ganEmtCMY!$}7 zue_LlWZx0R&Mhf}ORO8+LphktOm^2n1KP0KNM5K8YtZyBHgVgnO!I24Qnr)x!s_$H z|8+9_Bua~^%O4YZy=9Vut5Te&daitDnPb5)yLOJ*Z)q){R=szvb#g-k~1%G7IJi@Jz z841QI=fRs1ust#pNl7j2fpHVkZ@nH97x^E(ZIC?vzt6$Iioa2hEUFq7>o2#TK;^MM{scEN%5EC|xcB-S_A$6tOT;AL+#5A|G z#9v4+gCKpWeVo6!*&p3LSzc9@2!?TmVrQsOG11Zq{60gjrx{Ap*@=k< zZXDki9sOd1t9_akZzSE<+bi;pW>iv&5VD4=^7Bbt>3$CO_9a5rFUWMt7Ek24&;MQQ zwJ6Xum!-245)!iMc?BH^(W7SV;O|8eF5S(xIxgr^g9tn%CU#U!uKL>*sfvn<2KgtS z35G^8Pu?dcCQ^5|;_~F!m6erOj_=brqn_P2?{a+K?Okm0+Y|eCoPBa0VG$EW-l)<7;*OO%Aisyn{3`<=giKQl_KFY5kAs- zI93-+QcP^qON0W>pZwq0csTI;_ll#8@T_mRqHs(gxL%!nZS0%!Z%E$jmkV|EYzNXp z1g)RVu9J*Zm9bxrWPJl&Y$@F1W2(a-XvcfS!})p`jrnb!{z8)R19$ zw1vGeJA39eqo^wrflL4A981hV!07ryZhk1#t#w;usE&8VifDX04)xSUQ-@wDm zTg3fOA~wd?Efrnq_6MFssE=%KV1;m|NL3c-K#FA<9B?UC!eb> zWXWO5z-T8udc`Pw^heGKeBxGaP6>4!h1pDYQZ!57$b~(V6VD3y13x{TaH+w>h^>w3 za9@0;ZSs%(3%+|ce)ff}oVt)uA^nDDeTjNa>+wpb5Qmy0HpllRR+3GXAiqhG}f7j-2ZyZGTj`nGPASn-4JIv z6;v-Ofx1UWm13d=#5InLRHZ)0{aKVFjLF*~FUw(U8k6Hn+fMW!z##c|+9GW*oi^3x zEja(_oe?J`lk7?ydk(q0thS$75`p+jN9sdNNv(MG9c2xI4(>nqFr24Qm#^0&UsfgR^2Jm_aruX2Hq$Rb;J%1 zUPNtP)A7Df)TBsB9#Zg(FX4>{41Dvt0dXeOf1fPu=HLOH|Pl zvi9;S;(Q9Aho+X+$J{-qPM!L_Saky3PO6z}z2eY!9qyvZrD+BIP`g&R=o~&CCF(f& zW@zcHZN7zxExkrqi_p<=@BDe5!lX+whH}EzaXr6(+w?sJRrXlS=Xbsrr4z#Fr7Bfl zB)losyP@>Dy1Ea9MH}|L;?}`iSNB7Iw$|r8?%iv{esaN$USIh5Q9)W-Vc*Wcu_msR zOEMqoM&7{d^MiyP`BKJ^T2%*2Uiw{H+J}w~laC)imSe~dA95Wl8!UD4Y5xS?6K)^E zu{^Es4wg6#u?6fM9Hv`Zcq3Li4}BvrdfqBKKen-+X}*0MK({oqr;kO6I={jr z*bRZ0ncn-Nz@pQEt$_m2GZ3JUnY1@|p0TsOYk?GiQS!9c^vX zJ9q9}adL7}r8l?Gect1U7Bpg+qJhyBJG+ZUM&Hh#A0qPT2qSb=xgvz5pO%&}jZTZ_?r`RLt3GScIq|le1?UfoxWQYiv zo10sMF|@Sg-JI0iY#?2i8vP(W@+0MMU*DA;wcZ4%zIE?ei3s0`mK~aUdKT5*BmNO= zVqH)yAW$Z5(!(Por{IehFV243i%=Y5jX#t6Ju`DWMUnf1%?VA=TJwXY`T3b>`%ezl zan28BWs6&z!MyEAa(-Y^0uE)Mw>-+w%m?q%({ryVnOF*vFRYmD;1O z7hbi6{?vz*P9?zEwJq$m+1^J!t7egn;Z)CAR2)KE+d&nkM=CS!_3a0%;?c3t{rmS{ zv9`X|KBzYIFAvO-H=fVBWWd~f4(4k#2Ay|+%d94X9^AuJj+iyQa`mdKe2$i%P;HExv8O%A;3Kdz?7XX9Q+)PgS1W zA<08<_ITFOI{)eC`7k>@J$(Xn_@NoHytDt9qG~~m1~t~gbGMsNB%y8FYwFfkAWA9d zdZO$n?ZwZEroJm)-0`8x73QKAP2`0DK9@dL_kKdTVoz`Hv6@nFbv zK?6(O^*2YPw|e5yGHBX2shtvEeExvC(7G38|(LW@p3Mk3PH^+WETc zLp7MCEw|51qzoDvfn~n!c3C!@!y;A+x*&OktkqN3r#9`(xgy=Y3CYz85Of4GF*3MP zvAMBGXo+{;CPgpI z*KIujJ*MDEybRWxTF|dmYHHTt*J3iLPVAAHnSv2fP-+>&pdYjQw$MGRSf?X@2l}RF z-3$N)2$*ALWMpK27~HHGw70j7ou$o^Fx~+WJm3TYAtf&xq|*Hq zJB35GKAgAv*&26$_7IoD!rE<--dB&`FjPd43Q02`jUlH4mqX2ETNHXb5R=l8JLU(9 zbIv~#IOQp|S3*l>pxA*Fc33iOD#5tbWdY|9bEiEn=I`GdTeFt%9G%o;32)h+(bk5G z7MXYxW%+@$HFb4$8y_F#^^FaiJ9mx=jYzz-V>9hz@Kj9-e%e1{AJ?@jkX6wUElNS1 z3MJTn#!q>26Z0uIuQT^~aVh9MW};$=hHiw= z;MSg;i%#q+v!B?TIxEG_d-v|yZ{7-1cjA)z0CBvqm2??-7Fl^_J4?pB0 z5fKtTd_~)=HE{CUlWtcq?rvwzHp*M1y{fy=l<{Eh1O=1H_;8<*$(WLVeR1k0KrPN{ zj&LP#H;I_Sqv~S`F3@eJa7U|VfcBdW17C+s;U5|is5Yjhi1-)!huKIj4 z8#<$@DVBT#(%B-nD<3t`02Ti)fnZv8{imdd{5#VZpbsM8v;@#W2V#puub|FQl%4AC z#(#CG3p8;+SuAk+XxhJJab|Jx)B{wl{Pul`uBU3PbtZfiD5MXb_wGG?B3R-l67wYD z_HJn(%xyJ21fpkHtfznd!rWxtbI4O@A|rgM%qLZeyCA0Ii@Da&3V`)Lc8Mw}(i&o! zA)PV!YB;Co`1I;#*q|9`pT%x5pRB6n;Sf-Hw$@AGQ_r40ox!o`xY-o949c_$^-tNI zm6I-;JNpL*dqc3R5=i8q#_;MXmmv>#_xH`s&DlX@N9drqcmB>XZ+RW zT$%U^?Ew8Qlf#D(o1EG?^CI(-%-yS3_owSc*w4HumD>bkbfug}I{V+hdlN24FXi`c ztl!S0XGF0(PbZ(;3foSQgBjGH~U=yEx8X3UJ09?vy1k?7!S z=v^+M!=r!BV!6Jq?ruOpKu-)`7<}QYf2=^!gdMc8@b{QzVb|TWUp4o$SMi8y_VKO^ z-IJG#MO-`%Ya}`_q7wN&J$c8lw6GWwRimiicw>F%ttV#oT#kvTlA~Z(Z06$fv0%Xo z9;j)k+REmaNq&hniGx}?ye%!`4~mIpfocK7kF1Og$t=B+V|tl)@x|t_cl_+Nl0V}Y z!y&V=mefLddVtxRAhv!JT#V(RE{#2#lXN8>*SWBH%NWl`vmb=t_zv2hA?yLrY zOR0cL7o2=z#pkI^Q>tU_bF`&uJ zoYbz?dbFob6KXIbDnnvUd(h76m2BEu@#CS6!b2Q z)Vp?5ebg$1noa_I`MWcdp|WQi=T{;A3Y#5r!j@2EuEGClV9*iXYpt69eF&azx?+xY zd11P->i<)(6t4oN@$K6;V*+6M@@B0*U|!EL0f?MiSWrEHNHP0io(lMF&)buB(cc$X zA|s2Biyf+kg?hmHSEk1q^MT&;OH1l?Y=AI>4?lSD;6jS%y;jy4YTx( z9^m*jSb&VEsjCkW0&2ytUb}WE*3xKSjL|}J13M4P8$upEH8KIKq%R(S%Mea6F?=je zH2P1{9X}A?KAm{VVFnPr3fIm9($ZQ1|6Y{g)4{yyqVHA}%Oo_>!Bh?^SL}30k-To+ zX8SQnOiHGkDFn#k56Oejrz?P@ekv+DCe49*Lj!$x5$al6T0VE3FEV<1tm!NO1hqGd zi;Cc0Nf&cgOhEzUKmB7rVB|x@$Hm3PD*zI1{fm=W9Xj1jEG^!{sRVoW?CI<7*0;5_ zRn^dNcTqTbvM?*_p>#sDSJ0nMTEe9#3WHY<=w7QWc@3mP&=&6TmRA_#QoR2!&4Lb8 zSv`{MBW;JSe+R2n?vZT7$qtzPbkAW&jK33wjbc9NsY1BmycPATABvE{D~m_NvBFxD zMWxL_JoNZUgl;>Wv5#|$cO4v3#|X|kq}ypaVKx~$VZW;%zkc5W6nNakK!1P2J8173 zl@K$d4 zoxlDPpO=^Syd)(~nX8&+kT)Oe3l>uUyLX>NN7LTDeDR_itgaR41Dokk5&;KP-@4$% zcN^-C^}#Pooa)s}*|mG>TzIl;$x_(hdZ2~yJh9f1tj3T_M@@9j-T$Kx5Mm(cy65ea z_C%P$fL$6fp(4Lzn_U`hqq`+C-O(#}*8Q98nCC7$aYgm~k&}pscKDRvCL-gK{65&`Dsflg z?Q4cpI}z7K@H(RhxBDLsY`MO}TXg5q_pwLHF-Ym`JZ)2fQWqQ+?o2$j0l$Ep(oD_? z39++^RD=VqF|fR?k49(t6PY39n2jQW`A^M6J{N2K63nre7hbl7$g!qbFXL*w`wSxo{jN5&F(o>M8%9|G zIy@4wO1JIiOzfENa8O@rbx|izpp~0=K_9kz2$BXhXCL``VnI=9{zDck+f{ISXeP>E zDsV0-Qpte9eL9_?qQtF{a(rhRXrzL{v{x%N`PC5-wHqo{#uVJq0I#Z zWCmyll5wl`YMFRj)kC@Ns`hJ6q03_iS(D*^N@;0UQm{^_l{onE{dq)&;A#Dc(7L!* zkNh0$ClrZ4clX9XCs1mL@JK>h>dlo{J9Acl1oPv+ua7aVH|VYMdI#Vg*6&8t=Gkd~O*-7E zaUk{=J$pbbb7n~q5}~B8Z0fY$KBKKyJv-L?I0IIq1bi&hs50^1K?53h3#c2#@>!D; z-}GU)C;D8^Fn>)~OOksD)J$i^xyAsxxR3xBKQt{UDoQnFk$-B9WjBGpslQ%+pwOgr zE9+DE+6^^bT_kF)F|Dxh#5*`6W20W|0vKynNMy0@2o|XH7U&@Mo`M}3?R_cB%6YnT zFCH6az0cK^x6F7m8#sg>byNbvMUt{hUT2cBC~^{>cU`%mqzAKSqf6yja|=A{e{%Bj zE`*OaULkmTdj6B(^V9A(j4V-?5#9j=G8Dap5}>}lePeal!O01By5RO0Q^QNsrU60?a6k~xZa8f zdL=X6Su-%Kl$29dr7jfPT9B95R?;*dZLVs^8+{??immM(vI_NK%nfMTqI~f0Uyr*x zb$S@<8*&3gms3%zp^)3i9ww4TRSpf<<<%iD$37WfOu$yCW^V)tkw> zi&w7+UOW`RptP@1+NBPgw1pke&$9YVn3P}QOOL?E$P!6p)H*#A|Klfnpz~{m1H)bQ zGNIZh-%%<5l%70GhmfGGci=YmD%iD8YncQgJr zto~E0NqjRc+HCNd`?sfi+Td-G$iL;&`_LQ42qzvzAbZ!OFPDOOaJwuy9a`mkWG8hw z4YkV0n(j<0EGtVW|Et(~8!pR6f?mpyANT$b?ZdMiwC{!5AKw%(@yj>~^o_NxZO*Z~ z3Gdz=^7Qf&ncE%jsC3Rp;e$XIX1UNz=IgFv%3zoPL|Q|S;50t(>#7QE-1jg)^sJMvM|1PWb=He=f+YrFlSWFe_8ykHaF|A8yur+ibPJrsg6&rlseF35BVzEsuWF8 zpv8g4bM?)dL!zviM5GfawwzNluJ(C`#0E=J~6JR96LWp^a#Ei#r~q6_be zB+Rdy?UwWdUdQjvEqUP`i^nF!Govp#jsB=+9!#){XPee}o6p(Ip2MOy}!u(?wLZp94eFf|%J3s#- zXVC-Q1lD;gfYPm`28D<>xPlMJGORw1-KsN>*I9{{IlFpzEzxyHuL;iKFfeVTG<@|} z?(;f*k@`JbG1e1YIperQhv^%OQ~lpR9LkJdc;X_#B(+!h5G^)QqhDw`54z@O!vdK= zdaQDT8O#Y$+>z`F^1rt&itS>PqBz<%%8MqTc-FYDWs1PcZqRbHN&tSAh1H^7Wa#9Czf-(#F;a;Hs+!CAS@w#wR(xnM5(e!^0~x;K-S! zLkyeHL)fks+W&OLkn|OxE`MO^Kqwa1XnR+e1-Ph=Bv+^_*^w9S9^pgVAnw=lcLN1+ zSdyw$V$T)qO`VsC^e)TK&)40&ZU4N|e$!X_n$w1T7dyN_eMuzo_%%hopR;Qj^3|5bmjRtPx*0(^dQ}^!OdoJ1g zmzwL$1}c@81k){TS&L(A0Uu=uei~n!4(=a$EiwtvkKCMJYD7SU_KF#&$s&4q{%VEcF|Y|6i*mrRofZHR26 z5ZvR&OZp=dMf1$`d3Ha+xt(Oa4z5On5^`sSp6PcqGM`bD!*&+s3f%$0)fXd}=FFW} z3IS)d_^&hRdp|sKW<=p7@CP0P$Ea>hkxRL+ zf3QA-*EiHX8q7|Qld$2NRC}K~;rr#dtGOQ=bc{RkcmF);{|uumd!|ZH^CqmmVAQ1? zuPNv#-D<4srsC{+@go!3n21W+uXY2iiB+neCGKAk6+O8sw5%GaC(vES3x=S-87Vlu zQ|a+ODdp}6R-QvIC_8BLRovk6*_|!W(Xoj;XaLpH7)66}&nb?A8euCRraY*1 zcM`uvG$U66^nn9=0FM!aZcVq7@lX3X=QDJpad`7CrhU`px9^^p&M#1lI0Tt!4n?Z9 zk?-2+5_IAj^Lm@bwy$2p+4T_*r=%eGW{?5b&24GG(%ll*eQ@ReNL}RuuBTRsIn$Ff z0ch}_9Quak%83}6;ZdJ>`e`p4r+9{y^y7e@DO*NMil}UV>1T8~j;;L2E}O zqN|%N0Y|SJaW3*}4hQKgS7tkKjzt@nL5cqwyZt{wLPIlNH|D1lTvbu=2MMBtXV44t zR7y3GvKN@t^K)|?=;Vx|7`yn#&-IR_On1 ztj|(|%v&J)K#JhHp6I%;N3ewkyzvkQ$8uuQsj)WHZxg_RTmh@++FGwAy`0=0FO{UG zrgrxunWI`cI5_;h9=mz2NDT|ekX&|PkX{}h3A(zvk4nv3b{nG9C{`&;kKb4D0Lswy z^y$;=#W_lT*B#3^gqoT$ke@d;9F^Rpc5zD9R4@anu!BmcWk$Obu@U|wbwR4Y56idA zRA;5Eev@KZmAK$C^78X%fiZJd*u|W2&U^UM|I9^m@DE%OwtDZFiAME!uO*`Lj-8!d zFO62SVWn81?ZnKk=LAP^R*#FM2B(gG4%cZpJm4}Yni ze~w2k`@87g;I_JP!vx3*(f{<)MieTXtudByv%@8}z%LfJYg89=X#{~aZ@SAzWF3k& z{tPxUTKlPjzqF1$Ax;HtX4B~Nwa_-7W7oj-v;`oYCIAg1cm)R4tb>_l z3NYr(+?;~g`4H~85R`N_z#G#;V@VuD`s?1ymI=HVsqzH6jSK>(pz5Y20r%QtZWWiC zYg|{!)q$8P2VT_Q?rvBg2qdbYS%H?Yky~E=`p}_6$Ax3uwKt~zf8vPu63vcOrra*C zV8MFaG(|yZM{HFjr=(D1H|3@6tGy*g!pV(+cwOqj*xInwe_=k9UG_YV_ zzGw;o#>e>ht*s<@QI1E85LL0`GdD8puV?w=IR zlGUNLhXr5uh8#uL>K|bulge(R&*#s6np#vd52I49=_^t2wb3KZMfG=NLwaN|L?%s=15k^Kv z{};d9+Qh@&qAfx4({v60|*P^V_{Ngqg8}p zV;i3qm|S1~=XaXP=1jka0cHLo)%OP|i91AWmo+U4nFC>hHQkqRODRxVptgt;wlrKO z<06}RdCPSCc4XlVsO!mzPNgx{vn{53A=;8iVAoX?s+grV@?g zSwbxZB|j$%cOp{{T;?7%Fap7~563`G%om=C!$)-a)k@^WHVf+I=GAG(Lh!BI54I52 zo0II%G*Bu$R{#A{J$v@HjAT430E9r*XO*J}O+YO80)e?Evn%RRI!#2Vabw8qQS=M| z@sFYt(|MI;^?Dq?k}tTS+Kl;^_?BWhnS-pXELjAx9N^Grk%!Zzc7sKU&?l{butt`h zM*xcQ`%XiX(xne@XjTGxM1^YuBs0868w%ChE)O?^*%A~Xw{ik7yMR3)C%mJuq&<*c zU8IR61h}3RYc_@|1#j6)Cw#`R&E!pu}3JzNDD~1 z3)kn6wrP~Nw$t1^L$(g~6w*(Mit}P#iZ+*Le;TI12RYQ3 zqY#Th5)u;9hhEwQ1*ribhNn^+d$AGpyWp*Hj`iHk%rb+Va1m%`7ucG!Zs0t8q*Z^R zrW?DvH#5ehpA7BwbOBmVa0hd#LpYM7S^&{vqL3Sz)x$mwA9>nr*ijsF0$w&av>Eby zr0R--Y`+l6Ozv3U-I}5z)A{BC6*TZRfe`$OVbFjDF4p}Pd$-t5esl75Sc119$Lcrz1h{()dk<1qMn(_-4W%lP-}WfXkw23 z`E&h>`0V0hf3RMpO-!CtN3|3sW~obcS!L60c>Bl~DUI=^#l>8(sLlr3`*JCPvx3*a z1PwMU(MAJbaaSamF@f#M{c+&i%)s=HJl#Y7=s!=lBWQ({Cfoav_YJV_!JrOs2K@c) zO<=Y3sQd{5D0n0jF9KpV^Y_T3jW*1Xx{2_0a^iU>R#OhUf!J9&!QBLkrpJQ^@8sm= zW1<%bXfxBZ4+qogoXlGHPMGoF5~cMumWSy6Ztw8-zI^aHg;l{Gdh9d*0^bn~Tx*U_ zwn=J%vs{iZKZmzW`GCq6EOg{R?BAG3f#_F6=3I<_u8gHUii0I}J*VnRa&pdpN)&^%5+TPLUxO(? zl1Qs-z-H{CzZh>(fW`4s0hKoSR{{w6r|mB>=E-U`WWW^_O^RkSx1lfEbpo ziIqysJnEkjjgSALT!f3hSq^cJ_YVxnU6xHwi=JbNHTfT7)=jRWi;Q0Zi6j9?H?U>x zpzhZ9Gk^qJQQs2wJ)OdV(5NP00gLoAfRL))cezEY@nup))Z`r!Q z+20L3{-u*iUVM0?l}RRXc-V2Rri3Z??y$SG0{j}0ZfY$`Z>XCn>d=#N3lM5rQ-qWN zA;3NODfQ&*lO12ad}+JQss9}+(4*&W(2PB|@A%hk%}F-#v(fV}nme!$&g@5I;(NjR zA92Iu=YDpyYe+~n$2FST3ymCOdz+xIV=NI=?N1Q`EQKWgiq!cs=?jRkg{Rnyk%C_6;5S!k2Qew*f<%Jq?3C))+jJiee8A40xt29acrP z(WB5&H?v@#&%#CHja7$+_(ME2cN~G5?5}ugm3PgSLi!sq?91aK+;ed*bIek0>=y|m zBY-8Tiz?6Vqz?HY(h;z88Un^H=qddpf=K$d|29JihE5Bc+jdlEQkc<|f+EP-rKJPA zPBN#4#>S3ZAaX$mcKpxqi!>fvXUPpPS68^J7tt9JxV|k|@iBB=0@FMvaoUx$=>j~i z>;KRBJo;ZEyqm#Lg+877|1$2-e_si9U|ewtSFQ^d@`_dINZQikV<<2u9xXe~A0}@>B-|UDog&YifAhCF+9e`Qv6OIGK9? zF_D4+vCaw)+ny>gX%5Y^-?vBsxDK4f9&k6nusZ1V4e%(L_9^ujad9?oZuto`kis1p z9261ifxEi}ZzN84`temy0t=ySq8(fe9SD^Q%s;T2H@GC#TDG8f?#gc4&1Xc4dAt3m zBUL*N{4?Qt-`MDcX3o3hBN*d*pCGuQ?%XRYCU@ny_V}YjkjvUE4tE0)G=R5bqobD^ zsm{{ULlqvF1YV6x6f$^QFJW}|1I*t90ypZz03BY~IwBe0DFGZxV28Sc08Suq?pBV8 zfu-fGc;@%}M<2OK?%uP#z z^UPD-L2!xl-G`*4@_`-8$Z+sng?!3`j7Yh+Y= z|C*iq;dUT11AEcPC~$t@6i5u_IaGUlEb;_RWn#!2XSc_ZIAfuw**qQW%fMpw?(Be1 zTh3DF5j8%qhM#l_psUr>mTDbxc&fKW+o#ni+L3# z>9R;kKV#Oi%f>+xX86J3Ykt1IzRthdw8?lca;$&U_7Td+#^24FCF$ndL+^LV6FK=h zKz>y<&lq4tMAn>LGIjSj$xDWTL3V1$5{s19I}92ML>9G=5f-GfY zEcH%k3iLRhiQFaZja)kQ#i zh_2SXK?iv8W>EJnkm~@121G1Cn)1vU1JDr0U%1U$+(5iSRYm1ID3M@;07(97Fa7+v zn-lNl#6*9Z{tN<*@_MomdAf%^)+j3q0gAYAF7u<+@tbmxI|c+i0s>Yau}f-e;gmp` zYyjcB0X1xft3e*|6s300FkdV(-g}NUHy3^lY!Go*8h^lCA8eg3#VKv)gplbFc?CyRX(82YLqL~BfrOeGltrbzx(-gR({1O_c$7MC4m`n zQ1fWI$|i|mv?Ve&Fffpv!sn?Sdf-tPEg~W!aA{bxnTd~rq|1|}lYK#WFl?^xgo#lg zcn+gXv|5Qua;7PPdFwygSPC<}CL@;2Sok!}W3;pInKQTU%WQ$f-|AB8^U^MT5Xn@Z zUJZLN`SM)LVV{PhfuiqY{_SiKSI)!}BF?C&JWhd%x?k^t-0&HdL{wKhC+axO1vzhy zkkNK;?rL3p4}w#(Avk(^6>SrRJw6`P2AWnIoDvDp(FT`L51$n3edU;y0GSM4@#q@` zV49crYlMflf>=PMDAzqVH&eMWP#X9FK3=$C=jpg4Qt8t$Kp;5uk;Ppabu}~!8l^`4 zWVAp+Dm4isKsgQ5x3;2Vx$?RYO=m#T&$Ap~9VYjrgqAj?xAOfMCt>+0+8sPkBwUmf z0+FSL<*&Q`%Yp@Mc7 zGcs%@UwzOU`LO>MkPNSXBiS4}-!YK;|rDgNqbR~LugdCHILtQT7ycTeB`9X|r{2Sx!M8uE0{+upD3 z?~grt(uKCVI65+u5mg3)u5~~)F7IhRi+|6@9tb2-w3E2yY4fGB;+AJ>FYTQexr2 zIDF3g&lgBTFP^qK!v;LPqE#NmQj~Fwa(8dDk&q+tnWXClgMnLT;#r<1EqNNfLjmkcWldD*p~`?z;q^=$ZmvB1V2y z3pS;eM*^CAMQ>{+2lU(-_B~lj5g;LQn;fAA=qYs*B0`Hpm8KVfRt3}+Wwb3p_~iu; z5VpI(Qtvl7hrmCs913%Wx^=f5`g#J>5e*m!h!nrUlQ@=Hc27ZsHn6gtoFssG{NwJ~ z45@v9#(`X&2@r$ccV0|V#?-OUposuRa;@{5+-`1R;TeMmtMw6ZuK!6Yg&=dAe4LvT zXy8D{U-t^Z1#(=Vdh%b;f$k3;3}NKgBu?JGc~hU>$3Av3PI1mByo~LwNhx)#y)9oq zIXM}8Ch{T{yvshNN2u}3!T796nPhDU{*q*YUSE=gk^!=w-?S2VWTw|23eXc)SE=4YCf*XFvu&mXuUs2G>;JVWzVm*BFNw zUo>3Z)N!iuZKf*AUJs}3)d6Wo;MxK%0^H^3=;I)kHCn=Qkf6xR%X1n@$pw2K5e)9% z^Zxw`c>4vC2^8~h3$OwqA#0#Dfnc08V0Pfvv(Tr*%wGcRYzz(`k$&EK+n$~QlCaMW zv&LYpT}@M5HH50DyyM~f2`P8!YE0ta?HSv~?QCpZm&Kv38;~O}|9Ni5ouaZ|$2h45 zjFSjC97I;MCb1nZ`Zqa&)j74{s}2tJ3K;<>0Q5gXD^F{0jJ6D{<{xWVZp!askiJIk zk_N~aEYpR9=qX2ZMHF9CntbZNRT!R?jI8q=e^gLdm<8wwpk~XOO#s42x8CMh(^HjW z+?Rk41-cqz6cT&HG@>ND!Tr@NLf>s$L0?s+5Vg=zy0}hu&{%p9s$??50R_g zW|G|wGoB4#-N1U55dobUAgSSzG zIAeI~yAar{a~TX}4&u=6u@ga~&8jIBN;a0pqGIKl_S=`4o-C*3Pz?RHy6fxrt{pEQhLnGIfB)ciqAfH~>%o&3?0em9+K8e%}+O+TZP!U#G7@3hT*n zG~k_ATSC=HLRGdHmlgtsYWAQ-(P?H?Cjr>QF*E4 z39yHzp5Btf**^fqf`->9H3tf2+rShju?V-zj{;VnZifm5Qle`>fQl0qbz`1_%LL1Q z8c>daL;7ik=F^|f`wC-DI<$Me?6j4LPkJxb)S5orw`1mPirHUJl3BrP`A%+62G{`Gv@4Yhqk6*un3l09X|+@p8=#qOp?&Z zr>7>faGV`rs)0?cra$J z3m@9&S@t-;IrT%Es#B<+sj7Kg^r|YAQ(Ev+*^V27 z(ATjwc(zwsIOZVx@Yt#&Z5pg1`@P-92Q{}WRjYY#0Z6H;qq9&qz#a`J%cdVA=H%q8 zZuAr@oB7XE?OYUxnYy(xFxMvHVMfltq!n)R3s9M*BG!a} z)n81jy*45Y9sfr<3*l~)3DuS#-3YLyjBq&!!p^uC1n`dDgjnBf|@*EU6Pq% zQi+z}TNC8l3CE$Pk1Zw$ArIzkdkAO|C zpMfL2q5<@jk|hrW$7 zqzH&V?&^PeCM;Z&?Eb9-Bfof1+;SvuRK4{Sc1RRmu>+iRpaf7FA+UiIh7p|q4*=v~ z%-ZcRuoEQ=vH82N&j{F3m4|xcZ$}=&5KN5vz!A^XQ=MnGhM=YixcD7+q=P>QpF}wr zeoB3}oY(6y{(>B2JqF@WUu*Gm>WFlZF_Z)uEe-kvI7S=egH8!Z=_zi0B@7V=B;@MZ zYrx_N^wvhvmK&^-bH0fHfwY#X?KJJIU*NM*pIApY-E6 zlFJ?njy^)Zj2Oyln^I4HUc3bi*V*}ymoAk4nv=+HA5TC99oSTqo)2*#;b77O3sSI} z&;~d8i^{m2h)-{8q<>le6oOwx6}kx{JpdCVaLatw!r|ey|f6LzP?wF_P!C9H(5k4DI#;Fh035xXhFjk8s;xm zi~PWDtJtCGAjP0JnLwMSSI7TWM*BUCUOK>=76qmEwPa!#;I_0-FinHGNYu0MyCzL` z5sj0GF*<%A)>=lGk_&;XEZB42PEx-=+VB_a0(SVMp7Y7`fdTC%EHC=N4nSs30Xu~j zkl?ub7W1148N?>82NG4|e1=3Ub&fiRjz?wdT`#$64f)Dd1C%|rFEl;ovxB%rWIuPy zmN$~B3s&^X(_@NHG^o3vn}xxPL(^MgD{t9bd(6?3 z>@0xByGN^j8(m?t84WI*rNlQ3s+_>1&;y35ht_4W4!b2H_Kvl{;b}DC5p#8Oxkv!q za=^U`Pk4LRBMIvGI~4bN`>D{GESwO^1&(+@_!oBUaz%^?tj0ROm-%w+NoIAp=E;ZD zQm_XMq-l|G(Y3PY7b2lPsVA#MXTtdgUb(C#B zsJ&*)6^U^oDMBEe&%<#!o#XV2jxDE6;Wq!Jww&3dgb*VJz2hAWZk7p1>KxbTvCC(! zVgp=^a;zs>!fVT}8NQTwd128IqCTt>kKDy`{Qv}YR(cI8iNzSr%=H)Dy^&Z@TrAsJ z-qK%WcS1O(+m1C4p9}n-V+FL^36q~7P|MlN3JyI7ig%1r0r1bBVZ-H0OStioM9s) z&bG+MQVe~tiKC!j#?-AzLWGaE1iF(p;%Lyx7_UUBtAboH(6=Gkai z;-IymT-jCl(*Sbnzwp&JdHA1DueQJT%|5eeuI?a`EOT6oT*p(}y1By}R@8YayyVEt z#Orh(dph36sNOPa=Zonjdp1rH-Y!S<$#CGZG4lhzke??#{1s!y^=`C=3P$k%bPkoLO79ox5mceX(D8!x^A z)uCFFT3#rdk9ZwOTOR@IF<=1M{p{vuO_9tie$mpH_TtsGwZz`mUBGGiw>(7Jq$>2m zUIkCO4wiPco-@29R&Bl15w!Tr+MPo#a#{gu0{5zwXLG(gcH?Sm)R$|{;~p3=ssc?Q z4NB^mQde1@?7CH5jRFysn;T=vTXaS&#F_*Q#lkL25($`B)PO`0>?xLjC?%d**2RE_ z+s|figrn7;b4k1NsHW$k6XijvUNE~mHP2ddH1E%O+oY$TWudJG5|r6Le-4RdLKjBu z_j&had^6N4s}HSd&`rI#i`&QB+cA#xi#4-s2EC)FhxNEGZ<%;)yII>+Mgo1%#Ixx) zaaft8y;#Gncm7459G|H@9te?DMqcir6F#FVxLRjVm#AZq=)LDB|V1RMuNGKPxkztdQ7%QZlw~j;S~p(po*%h1tfllc5(DW-A9w8Nu3d~09l=VjpR5j3R(0fttEa^K4d zmj6;xLTIjs=whq9f$v*=?=uTpkjmH9C4=a&L-UOvO{VQ>Y91%XJ#vD5JR_)? z`P{W{-Hgpk4AO*`+*@Si#q3+>S$PTai#uMA1OBHddkwi4v|FJ5ouN}vl7v_$6s8rj z(!$(2u;cue+f--TREeK+8D5#xKKr=-W>9hYKG7Co?j_W|SgkDqx{9m9Sqy)i4h3qSb-jTDv^a1vxXPMB=PgVg>)FI3P*$#y- z-3ti7Xxcy!R$@wPzEPJ>|0@BjoH;yfvoX+Ht#4iI@=DgaxU;uF_P|U zSC%V(9>V_y<1RvTa>O_ z-p0Q4;PT*z^U9;}oV-@f!C;>dQUxDNB?hJ`g4P-k`%@i5KYoaT*k;>Cn|pB9ihIb| z@*1vdNHAF(whBrIiPB?hG`SOA)Cd{Etq_!TrQ!_ROFBNKm%$@z&+$+57>{=+YO4cN z+4So#kHrF$ImmAxsq;(VXOB*KFF&P;S8ZIO-EZZZc(Po|4cSU*_|xqUpNE9bw(QrKo?ta)vP*v9-$SWEuX*RrF!IfGtWL=*_FH zehKa=EL~T+&iF2oTux$}YHTm@BcX<1JdfX#1ptLjxpxG`>$rmplDTdXw2rwJ{L6n# zh*8Xs{j}sn?@jN=)LfW^T}^b`58XJ?KfjY{UJ69%Qp4O~(PAxiJ zwBDM!#}D^;tfHaK9amMJ5lI{lw2UCp+0|BCy16z)5B)XE%`J$$3{?ohifq_Xe=X4! z%TsfiRZhv)Vy1e_`pNddY-Uk6EuFeBI&*Y_*j7QRb|wOg_}yzth9|%7;IIC-u0O9L z=SUS_!bkx@+DtE3ZJij@`8h^}NR#V*H`ktF}IM zq~kg(LOCOg`1y0WHLRB1{@=#$XvXli9L|~^Kk;pdTc`<7eMbgItv1`M9oHJB*c2|X zC~&jcsVr&;+J?tI_y&$pO{V~J-GFsI=BTaf(qI4gAW=WY{AGUUBTeTE0WKLN zyTKjXkZp%X+}IE_kTA#XSW-ufFlEVWxOxWnKt282A4_iU^mRP1w(0$4OU}wZ_YlvX zen}07s&}lx^XNIMmP%C%Yn?nhZx`eJ#`#x z%l@#1>|QMK*&WwFmRFpn2%gU@<0;%wpDpF$MQHYKNdDv2e8mZlDl?OGg>||mbuV<` zLVkj;55$B|2!MYF;QD4s?QFj@y30P;zJIigi`O_yI`v@T*|eWeFiyU7g~Lq2M*dO- z4SmV9SGhcQ{KGT4K6j0l&W4ah=Trv^{91!iPUPdgp|SeJX&PTh#=$bT7Z%`X)-=aF zo*{Zi^L_DZ?JRI`#Cy^=w`&eHcRJ0uA7o6fcTHV0rKc^@!91pZ=?3fZIJ>3@p;)rx9xiqBV|8Y&|0>x)>{j#>h2O?+*8OAskrXEd++XIdriKR@l6By#wT!T znM@pW1M_Z7F7*+o;)O2mD$@UTy67NblfFM~HSJbVsLS?X$2 z!_~%miC0|{yB|U;;}Yo5mN+9XkDbV%uf>di^qe@$ zhLl%S#JKw&g&->>C51zjRaFhdBvOQ0i~rnaOo2XM-FMIgIk-2kPA& z4A@#)T4R)PmE_Q7u|8|s+x62Tt%+x*RzimNjhFS54)?h*ad9V@z`^8YlBN*~R5H{L z?+aO#{DbVig_#)-`&L&(KXUYH#a;Co?>!R}6VoJ869 zWCT8N-LtVsM&?Q>*Rz{nJ%nCpqP{zk#R2Dn+ilk-TArHt`l=!|9zwjkcaMRA#KIV$ zp$bKuZeg$^cu*ZK)|S$!gsO=R`7xsm9m$IKKiK0pGwhFsL~p#MR@?t2RgXVDeGobBe4xfU z@GO}yJnRMy;>wj@*1{1}H{Y3F7%J8V|R<{dc37x|%r4!Grh5U(T`RX%{|CR~1 z(ANiBwk-m?@ERa>3(G`kNVfw#7K1`}5m+S7Qnk=an8R)ia%W+%ELvb~IH165;;H3^ zHvf&l)*^tR6x@fK>Ner^7^&e%q)L_w@_IT+yaxD#4c@E|M=WV5+0gdEyphj9w*y&Jp( zZ(h6*8v5N>7cV5!x+l@}+%H%>UOv88@MeI(*D6WJ*}*#hs`Ov(giQmbC4J&ScGU z2NXQd+AR=3Mz$ErYJoY96D~xf?W)0V%?lcls1+&W!-saWR3W8Z z&GEP#kG(bs?n_G(PQZ%u74|wWaWS!!4?FfARWt8FTb``xiQUIeE+y&Xkwu_t_pQ@z zqMSN)>e6S&1nT}H38yp4%lE)TzVzF>EAter##SwD1tli=m{52aN*3Al_Z$Fnr5m%J z0rQEM-Fpr9;LO<<`U<~27TjA74X<@Rd^vPSGOMbFVy4t~Lee}W$PJe^;C0U6@*%W1 zA_0Bs%V55f`z;mF+3kel_dF6NmtdLP4jj*gx6^d`W4w5X2_(ysQd0N7Go3?0@^t#( zF2P*pX-~*tRbQqg*~aR|k7Bx_n>TOv0SSXN7YHPWi&j>Go?c#N=H|ODam&@Cu+nGG zo&`sz5Xj1JjDG};wlivHha5U|2yV%?&m0-;f!MuK>Amt0wmH&NE}tXT`4*Xeu?2~i z-KZk^@K(PmDpK-|tm=g`#3}VYG+N~^L35%#734oO6Wwzqnt99g&Ag63B?ZKwDdEcX zC|m5-D3(bc;O1^Sh8-Dq=liZTe_r+0h&dI-Uxs#n$5K$k9C~kWuQjat!f1$YLlWzw z=)0}pzd@r#&roJZAL-WZhBfZ{;+$jw`vaZ`U(wUd!En%BgckXT#|7*c&(6)s-e!fW zwSsDE5{A7t%bxW?FA%BUL%gs8)=){U8XM6=2%hpgMm)z=rRX`Y-xi4BuJoY7O^6FtlVA@P=m*DhO>fFNXbU z6b}d`W2L~W(WU?Tj1%iBJgy}ry8~9|$!*u5ExItDmw|18w{N#Wb#TAqGy7*;h8KTG zv}7D=8S<7P=jgex3GwxzQb$iz(UNDAz2}F(PKZzwZew%Bu2pV?U)TaKR8NTr{}!KE z2w3bhVQK$Rk62*8=TgP{Bfns2W84br@IZx2_8QvU!&DAOsl)fX z?4ET2VsPLIHtM=+r@a2Kj*AxBD}3Z5r-+uLkFT#ioW+S7Yuor`*aK1F5FpB2@%edy zhkqE-06jA^ZrZQB~KRBvm`n$lKz zhI}67FzEt9`>>Vkd>|Rykzgt$DJ|c))a4ap161yn*`KdsJ{Q#7%{&z~xJ;;094~$sEvoFp|3IVrc+NnWhq`uzR1`B)k|}4WA~TbKlu}We zLmK2fiN?tDCHW}ae~R1oZ%w+NCm`8|*FTWq^tHYmR;RB;ZO7`~u|)AQI@{+LH*8^bZdnFoCk28~7ThfH~zJ zy|HmG7Zz=|yp5iXjg4JlHf~gH=hki83hll=IBvQUPTL*=+@s6z(3*I7c<7_#xi4DJ zy+7EN^TG`S`Lovp4dLT4@>5j~78h+q`~ojPBnn8;ebQc-bOq7}rC%%=ceFPDcHhSz z_12Q;@&@Wuokq}x@-rE$2hj5tU?6`1N_z!cJv%$wZ|;4GQCMS&it`Kb`|~9jA7wiD z3y5PfJUf!}Wn6N{HqgIV@M?ddo>ms6aUc?$A=$lUn29Xfg${R%jzIQ2ZprCV~ zgT}O)?}E_Qty_VU8LDU;0?TT^&kn7r9?wG|Sh|{<%LYeJQ%8qy0gHmgec&oDtv}-J z#**i!e}vY0T?tqp-8}#Nh%>HfIomux!D}<R}FTZ|9x24wmoq>q|!9~?;!X0OnFJMph>yiFS|4(1shBUSbNS!v~{kjWl zIbJk0+-CApD*|v;tDI58od^IF4_Z16(y(LqX6ix;h#BG@ zy{-SCe5hwquhSA0J(q7OcCN&$GAJ|A7kx|JA1%m{(;QyXe47EeH@SjlcOE_jtT=Rx zie0G}ZHiqxRC$Sy<;z^f+={QzJb&B-p3bjgS3;n@3!%7epv)`x83i!n&sb2mZ`?VT zpZl_i#*YK9y|5J^5%oSsMZIYd*TyF%%8nrDgUffii(ED1C3eAS?)Bj17KNXNb6bL> zssRy(joj_~2A@8cB)8+Q6HaiWuBx@+xxZ^`Cq=r|59oUOtqu7OiM`IwuBXVbKfjM4D71}A z=^Jxj+%@Baysf74mh}pa>SJq*4HT0U2Jg+iHvz&l_Oz*DQzu2pX-;DtAlt>%v|9Yk0zMsL(xrrV12@)703Ao+o|{1y=h4Ru+YN&#?Y?k)bK zXLisSq5s*R*)Q2?flL;;STI62E**ZlRk`>bs$ku8nO(0uPqdtZb9prL^rP_-KQS15 z(>j0t487U<>~>rMf9cYvcFM3294PVW>7oN-;Xm#)cXSw7qt>abt`d2LR0x}J z#yapVgH=GP_TkG&k-LHJJC_FG>3n6xND73vGT6;EUL4VlglF!X?IuTrH+-`|#79af z=t~)j#M;xRNe;?v<4!EPd|$P;K*bT#nnk+C$1rOP4G#|&m-ul6IS+-L1mO_!6Xp3k zLB8?VHfO|;TwvlsnxC$LWTd?0p&T8o=pOnV&H@WTV6157T0S}?rev&7$U1k&Kx(%b zBz-Tex)HdN^gApxA40MBm9StGn&KBhP*F|EmVX72#k1_IOA_;T&mAHCfpVKJ?P=kX zZ!*vS@6QXE;*uZ1bKB^yhli?3N={Dy@Y56a_F0Dx4C}Td@swPXG|yB{-D3qimF!=Y zm#54jT>lF1Q|x<@?kDf16#5$uDN4%l9+v#q-K1^ZhGY1K#;RDEeUA{o)n9yUOv0+-?)!j6EFQN}I2NaT2EH-AWN{m`f7I5ap3e_p-)KBro{>BLrqvxGHp?p>TQFI|u`p}})a@k*LoBWk|n{CpD6RRY~@ceB52X-qsW-vxa$3Z-S|=K1qPT6zS*RN z3EOTWa-k*vYSWc~VNOsHpG>``$S;6az$R4agbdwQ3!a z{DY!HJ+5n$uLDGll*`{~hLK0X5`x2)zLX@)V;th*pFAAgC|Kq{^CLSN$_a2$kXu?> zQqa zIQBsl%U*b>V2X=(wM^wIU&SGig^AC3#jPbT^yPSU3OgLGZJ9}9Y{-L8p^mPF1o-z5>^=rfoTrdCzmSy z3O{t(%fKlLeXKpuqe7yU4`DBZ1Gdb6c0{(CCql2mcc|O6iVSw=>Ex@vf&O$T2VvaD zz>r%)Vq(^jO84!kyPWvyecnwcGD$e$*G<@#_M=b+3q;8i3W9MV1JRwr1Z$e1NKWqS zIQ|NvqM(&K?EccY>-2W|NEJYHDhb4`q{kAZA{JN*~Dz46JOL?HI!@Z98#reee2wwEt&m8$e{^E&D@4}Q%h z+!q>+g-( z1t*gHW>0?{Kd7GK*aUm!Te0gLR8PM~Mn;k!Tq=?NP+BWXXJca*m{vYa0?-rIJx0aYNTuQk0XlH-qSweAosCo44VeJWjS!wEmj}RO7 zkbF66*AOsRC&O#nJ)yaHyC%753|KSI0%u|;&_iuuE+syX#r53WK4>yucXVXO5*+A9 ztWxsNZ^b_E=_@NM)8D&~_eBjqP6q1qn^sM5kXc&phI;?uJtsed%BoZDmX=AHyX0dK z;jB*c>6Smx=x#bJD_h?xkDsre$^V3Vkm;rx-#^aoh0|6kh6S5#nFAl*MU+3qJn$v> z6&jp|=W2HmAH|$D=hgu5k6nEvABGn786#2{c2;=3K2p)*v5(_scY5bWuFf^MT??Xg zm}YQUXT909!N{<8=FQs=ObFKJpPrxB0|sZYcu4f;D6pMgn*vN}Z3>iz*5#(SKDdKa znv;u)gdOVAt{dOA_OB@B@XH+xFu3L20LJ2hCvEv*ko}6BLgiFi>zKxvVb?a~EP3(`nW0CN!_M+w}v5AF<*31g#aKz_kg^6}j3F6t<&M@Wwu>i$)h3^~lL zkb#lK$$fEeKjFN`7iZrVlw*r;8?qbXv9(ik|DUP}m zidO*Vyd9%{+548P($CEE_JK%JRPb%qv59L=gwXP#atGWa^*_N%>XM)A zqL-9$NL?0A%qW%?1s%c~zwgaI(yZak{&WLv-c?fVbo(|q^F~<*$XXTYS-1V(ZCgbI z*NB(2Kq#99e?GsjfTr#*>JZCwj(zGtj_Ti<$+5rV00EA!6p!+6lW1G&`$LA$ z?3y1RILQr^OZ|cH@r`9a39ZMQ&;N1O8=h3dc0{zu+xRu7ezf@Q& z8|*W=ujfw^6Ag;{2Ko{<5y8y9mEJ4+^z83Xy;sA4+Ufqi7$m-dqyS>~9tQYFT!dhP zj9B6~_~@(d41NX*f3n)WKJM=1w3SvW3MtOx{~r2HrTH%AI~VvE^l$DFD?jrcf==M< zfHS#WlT;c9KFJ5tOq};7_(6@|pjEKYh3XUuJk9T$^D zqPL+Bwd8Hm)aR ztc$<9qD)O>)h-r{H+-PcHj)A13fD=bVQ%Fs%c{gWaAj<)Q&8M`kKkHTCQWFSLJIJ7 z4J0E!zq$NRG2!z9D)k1CoI9s%Uj7mbPcd zJt~0#B)Ddrq%ou?`#DL*>hX$a_>r9{q2E8AGcAnIseyYpM5|n9&3^M{tKl;lk6h~8 zBiqM!|AqMDhVBlxI+XmL z&4T6g;gTN#yJ@kk9?gT18k@g4QAZTmvANJ5)B%t56QWO9MqWmeRncWtXdiN7j_LYh z@@chlwclb%1`Z~(+j(jRC&Y8V70FaWT|Z!YD)I+?u|g~3!wXuZ5l^VEK%sccR{}f7 z!-$43jSR`$VCqj4E5(C0yhqYcZjJ(zxuYDqKf-o5c5F=}Z!SrqhYz=uqUGrf=I6LY zpwwRiPI?g_9=CvsHUj1ioZf6r?3KLViXLV&vqbaidsYW_PNl0t2vQyL=5Z^Z5yw^^ zQOKe8!p2Cl4Hg8=jMA{*SWJyJ?;C=g$5}%|FrrT^Oe>Gn)|uT_2;dojp7u-I$~g{X z5&O~LuQ&8VKA1VGRNLkn%hG-LYn3YOKzRAAyj|~7BmUK^uL=66FKyfPpW+r9z`w^Z zx^|(T(x_;*n6)Q|*U<;J!P6yj1-Lgol(G^yf6S!l7yhlLI_LAz1B5w4+2d999$c06 z^L|l5DOzmWPI&j1K7wLT30J&n6x2id`+s@@bm2vO*#$u-oX#b9N2=u>;yGk zz8b7=nysBwE?>!Jbh+@q&TcU+2BjUb1HG@bxb_ ziE8u?x35-)azEk38k|Kc!@*Qn$md_d(>?&_%c^Ox)BP$C`ZPsMPYJ%lr z*u9$}YAU$!rs#a$C*{3}KtYqLhoJtDM@}ulrO=fS*?l79#zi2u|JvxNbLb>rPo{0( z9_@nn-9%sI2h)4ep-d!iiyz>_q}XTF9=_#=GXLGU8Ss2qz8+6|7aPb{g}jXZ{H8;y zdoJsa;BlWfcx4;!w8%Rk;gBY5M|kRec}E?bA3UnpTi#Nt^;3s12G-zTjNXS6dwOnc z!h?F(9kz_)&|Ry*b9|vzNU%C(;;f#s#TXx2T^=?1@w%z^7UZf&Zf&Xo?=SI;vQx9^ zF6sE6=#kxHZ~aeKQ9=CGCi(Iv;Vzf@?cA3nk)zF+7kN9DT$*TF^s*sb6b%;7osoy< zgGODC=S3mA+I&1sf(1N`>P1Y?FGCw&p={qRrRUz`S}5Lv(|clHhw$n;-6oidYCEa# zO28lI$0_fhKVg{{6OLuBaO8Os5g$A`Kh)>^9ZVliR;uFkvJHK0RK(7fU93pSbrT|0oT5dWtm`NsDK2r;>>92Wn^2$6?e9 z`oc8m3_VFo!Ul&uo1wh5EV#QXf(5$K;F9HZu)1y#A_nA0*1KxA|v1>wDphs z_dg}Xg(pwYCw8Dd9PkRST{UTNX-*86T)1_C*$%|5CP0aN`DyXRm48Z%u-umCwRjllX(&h5A`cbl z^e{o4g$DzSPj7HYbhJ!TQW7&V&Wo(~_iRU`RzsC>-VI4+t4rvTCzR&LH?4-)LWZBS z@3I_SpU67Gwi0S zGIZeK-|!^Il%b$&ZAd|!dq4Pq{%d5oy`!VCvopR>ED#pK#LZ1^gGwF3tQj3Xb8uyI zq9fN(ic*>Z@2DZnPW(`{dig-s;;<0F6Bw7^3+@hpzM6pZA|cSmLXN}F!?$qJl?>(@ z@K<_|K}20uq6ZtG2>*lJAu_-bP*GW#1#xo&0P{X+H_5pGQrh+Pbr7GcE^So&U&6x1 znyC#6AQ=H=Jbw8550QBUw=PnPe18f33pS8goQxus5iafIjuf3G#~ly+`Pno1LKGA} zMCgdaJ_TD>ShWo3m;-l0(4xzyo^2$S#(bb2j!EzOHGW2fUhUA`F9Noeeu^OpW*Zq^ z@l(+0Atyf|%8Lq9PehvT`?UC!(6610vI-LmD5~5<=gJdTBuIBt#SV~Wyfy3_&Ojmy zRVt||u#=okfr46)2-5%0jcjte8Bn-FHwkdNZ=~Qg%}NHHs&9kBP4b7WMFuKnGr^3+QCrtQetv%75HLa4ykQs>b~tDR5Cp-+Ote?fx=NOciXuXd zieEM>ay=PB(FOeJv%Mk~1^D=}uquY{*wQLzp4n$uXjx<_<2pRJ~^pAE{`JQDka5!lXSND>I%eAmi& zb&x?FmLJgx;<}x$(PCba!{xmud8{vpNuVWo^n7pFBI# z4Lx013udn2O-|$=MTrLBX)nK}@cL(0sxHDAJIn~t`mpTY0i#)et1hLGDTVfEm1SnWB6QL%zBsRpv9a4NefJS z=%hCs$YKObGv2Pv?FrSn_ct$_UwCOhjVGPL0x&)<8hq1pstsR}N)|#|NSvPMDm&8B z(@6_#>-GnA=0;`dI6!&Oex+kuMRGnyqEDfont6^am19$!ZW4-p09b|=pkdDNT;NcC z<*AR&C$wOKU#=Dqte`#{!@Br@@Dwzh&FvN}d(;)5K`8~zNE%F|wD&f_PEXQ&{;WljW5Pyg~J zKi>oFIPW8IjL&-!z%bhHGqVY;ta_(AD`C;E+1rbBA^@gMe!j7_e8C49KluTM39fN& z-_9ap3VZ#D!*ks4H8z7OvG8DQiQ`<>XS5G}`y8Rq82b^z9tw@JyqA*uAb>Q$Nj5&gaU|BD>VqCM?buQ*l5To~txNhp zM1Nfh zP$*A)3cqbW|AzRjU1}%jF}*+uNhFqh3*+2t#bOa8dNHmdzuy2Z)+C;w{@wz4-J}Bq z4&cCGXeR5^jz`#m;h&p1ciA7!)G|^QK6tTsc?M!qKm@SYD>{HAA^-1&78beU+sC@l z!9lH@zGy?-EF8HLB|4K%^B9E`06nG4@WE!%hq!MSv+Dl5DlMZ*Rm9 zkcPoyEXo;)ck3T^H`-l~b?$((_N8Hy9EZBZs6G}6#ruy83v~%$aL6%XKh}RGX)=K6_@=Hb&FNL&RGK zPwnaEGEzR+bE!z~zOBsw&#OzA&Yk2eP1r0?zT$6t=)gSI&4&B2%c<+?l`Hd;uO{{N zzIGm~IG)@8f~prQs^gaLj3je~{@0;*>tw7l)#z?y6&jIGG2`lq4imh}x`@#o5J1ol zKhZya{*l$&m+2z;+^2PqRH~q=W=O?D7K8+kw zvQx?$PJDhyAt_pJtJ;BQu7o2Uk4`u&DTgbVlpQoH>8{PhmC`T__Quq*79CT~P9L^VyE z($k|)8n5ZxW3WR3(xxSx^6ujrlpGP^k}tJEyr?6(N$x=D%ju0`!N$fh-O$^_a)yhq z>GZhCN8m3%wfOtnfY-m@4#@FH2Q=FT7#biep7L&7MhAdLu-qbDFoI2df}$~cKA?l# z;U{yr5f7(|cq~lo^ah?yXK(NB7Ke_HV<0kUGqJT5t!>dAq651LbH|;WVpus|-VxGe zOFuSDHL7BNO5tqsO~fPIk?9_`>{Oj66g^(|S+>rP+KB$4U;*_mUL>^+s%*NA(GMKZ+N^A5DG&Bdu4oq#+7gUHw=wh8T~Fo@cgDZ(3~) zPSSe4uXj^7xlyOOkujO-em5kc*5Xjf1i5SvcKO47!$NLo#h;_D>P=p8Ne>r#?TV*V zSJoOWXn56)&658Zbh@ZyJp|bJ~9wp4`?RBC3)zzF&Q& zZcLOkM(piX&1!TApp`E7pn`bnaHC2i9(UjXBVBki_+bPkOVNh)PSjd~W@l{WCf zn;TLS3hz%LPir;pSxUin%~|3XDI?Ao#fv+U=QgdR)!DYcmrpZ7J((6k9m~8~IWF6e2q$ZXK||(T4zj1V&sq zcP^wOaPkOz<)N?bbR=nr1YBLpcL!}|6$u_{O##mF4IOCe38L8?cOFg!4=Lqr!ljkN z!Q^TUY1@k*!O2}05Pjc!`id?i#v@WIe}qV^6fj=$mFAbs{5gFF`m8q>oi zW%~E*5Z}wCokc=lDLpqW-qK(sqcv$czs?t`(VSP%%vm*-pmjs}Qi+-<>a!7aJ`TU| z-<{+}Q3Q&V#!YZQ`~59!$Vwn!ZDGeBm3@VWM2D#R=29w3aB|H)zQyL^4(ZLtQMhold*?m z&$S{QZ_+jk5Ag(pyr_?-Vtnt-yTtL_yv9#7J4~y}d|}Nst|EVg+%wv79=B_PHQp?`?poxDo#G$>wT3bcKbC~2 zO`x2hBmoNa189nqQ=yofR!sD-1V*iQ`}$gu3t{KJwAOK3JpSVYY;v%{OVl6LiQQwQx-Tc`LS$riYK}rLFv4d+wgu$lUU~4FWc5*677{^XT|#y#q|Qkz~0?Sv7Tg ztDTCKFZFE!7CU@I<_H$xxO%zO61OpsE**wp-ES?0f8WXMchtAUnIK$*>mB3Swjuo% zmpY#5Z~4bZG8<&6X19Bh{Bl!a?=9=^{|UixWcV0$Y&e39e*YUzb9w&1`k}6Gg8v_N z6HH3r!1-VyMjBnNHTj z6q<5|G44uiD!bij1hrdY|wGn z+t21M(%t;E$Tgrv_a`U1bI}?>Ke|%qEP^v{n`_e;{58NT6WcelzUZu>t+2{m%1rxJ z{72^qx8`#rdc&R}Qtfyc9Rk8$1UG=`xRvi77x+j(h4C*>Ohx7gp6O2R?c zkU@a1d>+}jo;3slaPF5ce3n;z_`qESYvc=Q2ln;N6~O$O84J1qKQFI91PZM&bs!#= z*6!i>Qd+bN>HIaYwZ`Q@tvvluqb{_+fgJPip2${%hFeqk&mYNxyc!rEDB8kH1A_vP zh6xI;T#Q;=0s#px@BDdD5;`|$%^9uC1U6z|S_>`gCxknTQN*s{SlR<7S#tfWlVL*7 z*Z1e{Z<^s0kG!K&eK_It$cKsrr6mm)7Z-1^)A?xkl?hO=Jn9(Ki7(A}TG+6h)23a; zBuI9jxoA(!c^y?Q2g0(&DVVd+*=yW4BRylt5<&Q#!Sy;Js7|sPYnCEiVb2j~lRaaG zFV=cU|HUzK@03wCW%O+r4Y7E08tU|Sjvq-^@uTTz?y(r%8?hsr_bX6_@`Plyp~C4J z7>LBSMIRYP5S-H0#f2n{;=g?P*)#`9QnPs!qxjdw&tHm1H?j>2ON)Lqkw%to{II%W z6#ts_sy#Xyqlo-2_*BtUC#*H0!t&?1!TWTI}>(!<*5Q%w1UIyE) z(#aI(q6Ybbyr$$sT%RHF#i}Q$9AyKsf~h|1~^Y?IBBg&13Uqq?_KouR?X$( zs|F4ZQ=d&Do}2%}m3JyA{Xnr1P5voJNpx(q(~*t+R0G5$I<~YLB0Ecn=nS1pyK6aB zlBp<$mMU}~sJkE}U_74@51FDc+^>lE9}S|p*G!1l4 z9T#cLH87Zwfq4`?YoA$LqQU4sIvc(bq9GU^!V$2AZgu*XD7b6`3t`()w?Rnkz`)`0 zXm3vn*Dk}&$5fxCqiQ{y`>EI8bf{;mAa@rApL1uxdpWlICzG3kB1Y8{jGJFp8l`D`t7pCV0d5YOT$!O0E2j$`e9)@C?{5g1G}t zp92Jaeg)BBcEQk?j4^_)yUkKsy#vAi~E>_D*`8~r(8+YlU_efK7xI|vOmp2!)Z4n6DU zhU=R)%H>Mm{yb=(aTpX6C6x39FOzlN5El?MvYT0DBMxjy4^*{^54%dEcBNSW604%1km0(A4)z5@t)eZK8fkaY zqv$p8$rN58f{)!#V4XwxD0s{PNCuMp2g^aNX{`zkPSxybX^`Flzk|{SZVy@1eP^j! zXUnD=#&j+|@$7mJ46X9t|Ls+ZW$aKLw4+f{Qi^qqcMye;5*xuehN%|4jYu!f z(((s&dPB>GuGO_49qasSREOrVdsU2;cic}1or1U#-G(&DOV)sPiKltgc7C{uDvB}Y zTw{lSBZ$CVYykFn+=n>c*W^fW9-JV~WNMd;XT4<2a2_Y_wUxt38HYSi{sl4;83@{H zd`$l@f#7t5?yWoI4Oxvw4Y8xuvDZyB$P|Z26#jN4R&T}<>8m9=rEnR3v};Et)FsTP zulV>K#iSI&w0ikP5Tu=<1}g}*cD%Xp_CdrNT<-L6tqr4Cx7!W^5agL zEIMX1MTIF6YO{a+ghNXQZU|Hfw-m-}J%|*&gw=_sRm)f`faP2(qn~vm(lc?(@k`W7 zh|vCPX}%4E@=@1P+9h0uH(yaz_JvB=-A%{jpEXVX#9`NGT0N+}Sgt~|w%<_k(B`#F zF3Y`~MXW|IP;_mybjYm8V@yBy-MjB;k;KkUg{e4$__^&Y#h^;&PH=;Ae|mm8+^4JH zY_>Vju2uO9-c<_apKrOObpbfj6GOjB`S%?ME%@dhg|ZHq&np`-HFRr*u2!{k{P2|` zo!5$477hjm4cbXUqmm{CUnD_M;SCy;&i?+0`}a{CbVC&9pG32JuHvx9pt5sbH{%;z zVP~Lk<&VEj%Z710L-F(s;-_M-r zQUp=lCx;F(2?;h(&TMzROm}I(E~0G@9NU6fY1jC(%szrcS?i7c=PzF5pPi3tKpXT8 z^+m=mBX4e?-gmtnuO^$O(M6B;-{Ma{&_m=%EA5av46R2XMG2%Ppu&@(mD&l)yqb9)s@J%@&MKW!ywq9jkh_`~*n|t={Bt$X z)r5IB?jU4L*^r8W;pAJDLxAsuLDKd;{wHG#5Ysh|BL9-OaL0>)vUnpI;6YT+Q2zM8 zi5xHU6_)sSl5&fm0Y6V?f{uVT-$1&4S01Z?s3-=_xep1^Q~ygCpeXP9U~oA}gXs=Nv&2~${RZh1_ghbm zfX6lTkVVE$d7vnMb#xixs7Y`z9mv=Vz9Nj~i6fSA_#`6LGS>WC2Z0mQS`VN-FR3p1O8V^mM`} z(43#|!ql!chpVUTimyO76r&W%2a}^NkBVq` zH{lRG6IW*i5xWgHg&fE*#7eU)}oWO>DOTnkp1vOk-$Y=`z?L3!kP_r zUG4nrP=bY>MUDsR&^Ig98oq3=4eeUPJ?}r1+1wI;*9^1C< zEh%dBGF%i7dGVN!bmWMb)OLSbcG0nn0|#$Zly($+!0F3W4jJ9VY!AE{i~iOc#_il>1* zepIXBCqEcH8X%332YWE~@7d#Zq8nO3a)RLK(KUqznqN&xPWE6y5@TvczKElQGC?-S zSEDTgSYZ!c#=Cabh7!3ZW81&NEqBz#j9BBuYF{fC(04gFH$XXt(;S!{vxzPd38bv) zDX`oFbdUK&?C$OCyJFXUM8J{qz`!#1xr*EUgzZ+Qk$6~DX8n6NB%mP)4U9GX)ea(h z5`e#edPWdIj5c!Hx~RjjM;!l^>dLA!$T(3Ymx-w8YphF4XSGlg^cD#OKRZ8FEMA$J z%JgLyHiNy)dx#LVKNnxJvzvMpasVR2&)y(id_8+dK%(8 zX=FC&85t(b=0oWeh!-!A&R17U=zGGEb@3v zS%7b8h1f9lleqaj)2hqafZe>x9t#zSdpi{*#vgTgb(eQiaCU#6*r`no?ZP6QS6&I~ zU&jQ*(%KZebB0Sr&JD~7JZ2Kd=;W+DQXotX@rl*~DZ6Crry!X7ry%fUNH{cvo(4~l z`NQk_WhE~VLR4NGqv?ciE%WowS6BDM3W9m&wYP(Y zkJdLrN&i&0nToI0i=aqlCH^Q2p~PgIprI|gNw%~q!ZF5*?AO7JGBm)7he4v0;#0}!i^xaMP%e!brl0Z+YlEJ<1!%@*Y~ zAoH;0e1dN7PJ7v3xdj~54MYc4CDc9?i|F4Xk;GpwPIe1i-p)+Q&^#Nqsj9eDT9EZ~ zI7vp8yr1jkgpr*-J8kR+3$qHMf=6`L$3;xe6w$yLhFR?bqO8(4|HP4jf$6YflraLo za~$TJjC;oG3YIAMdGYkM06o!CWBBt2z1WcLxGr7s7`&0!X#KnQkw=_n$Yo51<}K308lg2S z;)-_Y+M0I83D+R+4M6hwG0}N5-Djp8+HS^CC211ZN*~4;`)(mUINY)1(f?6a#mRCw zvrvwYJVM+Y%<7axjerQ{CPH+oLj520KGR?qeo#r>cabYDut8&Uz+LM7n|kj&!?k#` z2Kk+@a_O_?N#bPA;0U`yy|0y4;08RmPq3OWCm4{8VY|$SN9I$&=7A>Lukburt3Xg? zgK_0G39q(I0+uznQ+9R}B5Qv8*a{LO%r>nj3yLY(IJMZshp4E`Dw!-rKnB_{G(sf3xrD&$^!$$&fYnvw7xEKbi`mj zysv*GK@znxlJu7H$=NOU+|?2%ecE)W?&vp*dFEta7xOgvR=@r-%Rv^gFhCfE8hOLt7Vt#}I|l!v7LD9=_%j)Q&i1|D)?FD*qoc+dg2o{UMnco-6CKE0xy|QG zg$^t<$@;~c!2rI@VoURtRYq$bRfbD0l5;nrBkaxIUod5vm*r}|%U-s=7*}*NeWOYe zr8Fse4Ar+bViWG*bGpaStEao=QqquN zaWHSbUuT&EFLkh$1qo^+m@>OB8ZSzZXv(jJEk~&E1)p+HNDBGwFRn#;~_-|NMk1T8`6zxNMT& zac?^!V8nV3J*L)&_j1~wv^mcLtw$v<)#IKcxkMKAMb+u?E)gt^Q}6Nq<<9Q39V?bg z_a7*vd$Qh8P*NUVU5Wh~?7T8hJ_3TljHb+kp;zr+z|4$Nx7jImm-N7JeZY1Si3H(R zrbz#!G-`)I#P5zu)!hj{OWDSw8JA_YEsb6BKdYlKL%y``O~XcAUOo=ftL9Z!waUXdHnlUm zyB`rcDzyXADC~6q8vc-wQ`P#>ZYQ*797le6iLc99iQrY#S$5MLH`kD&MJ)u`)J%-< z=xoz@gnM1acd`+tJ-B={P{~cYE8@15j^&}Pjy8I?F z$`k`h2r(9i0Gm%Ow~v^w*_@xrC+IOOajSCkE}_HI%NJ@He1hG z_s&A0#75T&f1r2|$G*N+jw9c-#;a!bzPGL}%3pQuW5tztjs4*+%G}3I=sEG@#L_1! zXVvSr)Uh}}tI(>m${g+SD%<>i3(sB5gKD`UXX^&;D_alI)xu3Q3WH+Dr-i>;SMuG) zZ?VQ_`fE;FnDi`S*^qx<y3Wvy2De=@ds?{?mEFP=QTI_H1$| zNGaFnPKOGxNw4C?sa%PBy0u%UZ}Q?OlBjI)rC3sq~# zjvNp07K`+sKIIFL$i|w=Glcn$#Hid@dmL7?%YBnNeKSm5p|P*Tz+!SlK!9InLWjq= z-$T&D(^xoW28>c-ds)$*d;UhF_Nsjx3*Og>NT#^nV^TWT1;IA7zbJP^?*;nIP$aS$ zKaorku4Bx6F)O>cCA&yS$Tp-Qak)M7zk-?v$$L9(cjlH= z{ym1CUG7e(G5H=UD=Ya=K@sYq5&QqGOGZU4Z3^WNcUKd?!S|1DfFR}duf+n|+W5)~ zfm(((D6^s9h~-$&o4m2r>TeV+O4jEDe>f%q07NjrmpU;q3Vjyzk>98VAQw8CxPM>h z4KIX!p4Eq6OD3)Yv%U>HSTIw=oq#7|NgNa-+U0-GJ2X>ivAD<|P76h8#7{uziN@?& z{(y^c2$rgVOC5rU9&m2N)C}KxcVSghnDn&N1=(;+XpCS|0}%ueCXAp8|H1@PCCCv4 z1LFS~qQ(*RYQAs{9QYq#r*be+;z`=}yXXt@1)nec;g}J8*7s}_ws@>%;nLE&|NFbC zI`ZkM6IDC@w*#2mop9(uO%O8v=Qg6!Zg68~yfdC3lH~y~X!hL$D zeegi)w7)<}4Exg1dp9MF{C%-(`v1L2I87u);sj1W=oe?OjQe+Q>qG2Mx17arDI@1` liYZ^t<5YJ*+ie6<5&XL3!W;ZY*6*K=AGI`jcG%_S{{Xwcr=|b^ delta 42100 zcmYiO2Rv2(;|Go(Qb=VLB`aB#NTke*F3KuYlyNJ{$VIkrkBTB8-9q-rN+`0qS7jvS zCfmg|v&S_rcl}@Y{rUcXzn{nBy7!*zo^xLNxn2@+yEAdSKTUjwODAr{pZ;<1bT0ef z;^wBhun305N6)a{AE$R^ElQbr9oM{Ca)Ty}p=2cy}>Aby^*s-WTC>t2S{6$K0-*U4}9ApbRrvX7oTwv_vU>C$031Jy$Yz zWd!H>?gi@K-8{DP(kg>zSUAz&3xD*44k>mvc_G>SNz_cTx3b9ACeFdigZeF3tZ!eF zubID@?3ierlI(;)Cxohx#22uK5mV|*N@5*CH?EWCic0qia>7uqjtlJ)`%v$(*=AuITjtZ(i5NB|j z&1>+}ou{E^?t1M_cpxfBF4pWqq4TcjBYmAwPgfqdqt7VI_~P6Wm)uhC-DHZ#wN6x( z;-@O@okI>7-4nReRV_vy2%-qhYD=arZ&$Pg1T!_o;q#k2U5oMXF7nS>dR1w;$A}Fr85?e8p57WEYAF>6X8FL!&vgItJKy(+96fqm$}xj!m{9Xu7(X;2J2Ls^|HLpijbmz)9fT#q@mrE#9!HF6_Lt%-yx&;NHquT*kZw@= zA?Vx6R8g5nDMD53d_j~sAMw5I;n(Sz?>rBh%Nen|kSin>_fAmvM}oVgd+1-59sIXN z3N0MJVq?fmd*lC++tPv^f_~bbQ-NrAccL%A@+caV_g1rCEj}#q(ek_0mpfCfjTdTXr1e)$adhUYYX!S)l2)fO!ag__g zzHWOjovj;N=95w#13u!jlLx;c1>Kr8-K0o~rpb)mHE3|ai?aiK=f595_9QkiDvn}D zM^62J9!KDS?O`Y^H?no&wWn=@%r{YzuO{u~eh3;9dcTaqPf$De;3sx9u5!1R3DGl# z1R$vpuCOEIK)VtYKE0*2HLBE%vACTE)is~*;dLWvM&v^LO%z$;XaJ3f4!jXX^f>9k z2hQ>gYGU%rY%GyA64GY`Sr1#S4+ z;cK)AkMoBzs28g&+Ys^ZbVd&++~dY2y|7n|%^>$+&SYKFdK$XoUPHYT?OD5@Es`lQ zwe$&bbJ}$e6x}*O^7bfKm?tH6W$tbY=|z9Z>h>2Sn_!Kr zj&jWRmF8nzt0dXsYHW0sxL!w@IlIfvUOdU1!uclpM(%+#G#$Rxi+r2vT<9}x==Tjn z1=R<@m#T=P(}|~BZx9_%{?o52HPjojwnBfKW{P3ws^nn!U$ihm*h%jKRH0C$&BY1- zatfyDK%W#$E?`5urX>TZi&f1;PyA_9nc=CGUz~#F5>FbJ@rZK{d9* zGniw=x0f&B9z9M{nyKKj*x5!Pz|JovLza>~thB_L#AbKY?vqqh?}DTTb+dr;$&$@6cn# zG$&V9&h&J5|EckrM)srNrMPB{P}cu-p~wH!R*yWJjC*@@``mSC<+y*1+UQ0`ML$OO z|2i2vL48*vp_1~udj^jpOZ}|)y6n&K)!Tvh;QyTg(r?6KAuya+Kf0f?uwxZ&Sjoy$ z|Mw7rho%B{u|5-WY>gFL9jfv9w(L(SuBi!n8OcB#Yce0Ee|Bs=a3VM4X(Xeht}gg# zhYbW}^6q7Q=hNM$iHA3>tS*Aic`M;wJy#?7`Sa&(r4%GG{!;k)Mb*O?IerTtpK^tR zdyz;(YS@G~(@2VcZfWU&S%_3$Uq+-nOdK8#&FHB9{rk6dlzht;J&?}Uc+}><8$R_7 zRF5=&=gNv#XQ);8WJWY!-h`1&ER&ptWy2_Qvc_P*HNSA&YiJ696Z@E3vg4;p;m+4_KGPj(D*PEJ z*cs;KnB_*Rv3}rm9q{gn0+by1P;z0*7 zs$h71$44qzkaY9apF5z5(!{czX_5QpyqwFOqMXnf+d_tE(e$A7kY6 zjl=!{0Y@)0u7isc4a-ZLJqc-=Rll#XaX|Iu3+%dD;^%K|g8?3=aG&ZX6dtNJyr-TK zz;P!dG>|SBJ%CHzeJ8`Limj9>rq}O`Mb9iPVLa61f)8axLm}~&l_`-|kUr)YoTcuc zfZf~$4Z=Vn#a>y)R%^@VimC@J4Y6G$!?spdYr#0aPEWHYxnwhjryR*}vqp4dLzf>i zy(BGAqS9cDMlB}Pk)jnLRyTBONNc+b?hFoB%DcNquZE)^iFy<5xLVQw+3~r;R#o+_ zw{wn5yt~Nl4a}GZ202jctFV!-920BXS4G5t#Ar`d9al&i1`4fo50X*`H2gc*^q+Ft!=FvEQc`{h6LeqCo~pwvM8zYF+#B)j^=4@2ZYW#R0J7qSqtyDN zE+xH2oF5X-6ZAq*#X$2O3#D(ZqT9>Nw|inGN8kVQWnXgs_Pmc7dj`hAZyn)S^3(T8?JSkn#_EaUfM@HhhBZdMPWe7aUjk7O2mhMFY5Snk6p zHXFO00)MRA|FN1~*VZ;gT51pv<9)#@$I!1zaeta&T5;l?sqw~L4V*~+HCxllWAdgI zm(3JShSm6)t5fakOfJ1dB~-5nDyGVEW=Rm@Dz&fkzdYScP)mwke7U^Ep!RS=pR`VW z*bn{b?UltdHcG9)b+DayDL6JRP7w9%*|P;a8@3eDDk>r(RiQ2Gz*B`&vk&t+g-e=& zH?L|blI9m>a9RiBjuN-p6P3CylB-2UL>1iPN;pEDoWcQg7%IERQ}N}?!9!Z&FIuO- z=c?*Q^<$=9UO{&M{VP@FKA_*`WEuPNrHkuDFkSlApLrh0{9a?$;{ZOFl0y7?U)=Cl5F-T0emvY(B`Zm7~@SR*+-y;5nuw^&7}uB_~J zWaQom_C*pNB`W}P7kZq(H(cxI|83TYUpEF_#*B)Tm6dh5d-uu7Q>PXu>+pEer3JtF z-T~!P;C*FMODX==!GRi|{7wARgajdV9Ub$Gkku$LQulm@sq9p6LxTa)ZGJBD#{yRn z+FlHec9)jQK5bjs-=`t45*vF!SydI8YTC*q91EhXjKSHMz|yM3z?2TDFp=-4F*K&= zYh<}WbXL}}xtSS0jX?|fg9SA;H(NY~G2?r9boC-7;#%)zU6tJUJ2a%g6Y*rT-%VlT z?gw5&Bcs`O&gmy!Z2VFo{OIho5F9JKD*x+*Z)HV=>oPTzx*65k+1V(>UTvR~lk>%s zq(dNWxsAgJb@j`;cJ12C&Cb>jmik3L9?y0CW1;+`k9W;>Kh*!Isl)%fGAsLTI`fXX zLGuDbFuqqOa4bT2a*cpc8XjR15X|~+`|#sZb8~aaYYfex)%Oc?b7vXpA&l+msVne~ zRnS7eauAL3(2*P`fl!PS)0BmGx-x!FXTT#iL%neCjj!C5k8B$}(C8lTU;N>eU+q%g zUz~#0x3;?0*S~}^y9=%EK6*50!+uFMCFHubb(b(IM6ai($B>5)G-x?hcagK}cw7IkY!~bCB+?}$#4b3*oPl4@RT@Z)IeLCDA`H}TG5ID8!-&w; zHaY)ecYS@|n2JG!U%&p$%*bEAe*MsI%o#FcetEuJkP)C@!pGm!+bh7|`DZk9a|?=V z;@yA15=Kdc`cVBJf%XFp{^g(~7zSEkcz-M|&IRWe8N$7* zF<4ytmhUUS^%;vh*%Upb>V*rJO6ymREojybK?eIysyy*k_nmn~S^3UuA1#R)XaDtF z0(0s40kOXcG(mndb92kAtC=MwieD2SKW3Av#YR3#3;RGGn4EO#Jl7QuP&V&bu~0A2 zMCxj4hUYy;d_$R}`XFpeOUor^siB@88Q93saOOKNLSc|G_FUrcj~`s`6xiQeo={g& zxd_@ICqDyo>*LMxXAX~MWr~}>V&$&MwVWn~aCE2bx&T{ls(4G)y~q(`7a!7NMeIr3zESlxX+6 z4`sNh9UBdN&{vXM@t|*z>=#p6GYbYu?qHS*chSd>?|=R@9)F)vXaEU%4A)-wWtyON z1g_t>G1yjMZWmtg;X|1q^ZZEQ#TA2qkl2Zk{l3Dt19yVa=;Ab*Cz?f-4t&ia*P@52 zJIyIoYHEMMQ2tW!IsVxmnA6q8>y;u3w=heBjf|eNM(hrCCo)m=0?&RosSbKJR^O9KX-Rf716M)_$p28ee8rV}AN0V?KWR%5%g)1m!DlcjioD)HLOc~>aXHU_q__75e{^%Cvx6W%00T#&n_niy=0V&dW+#1Pu>Dr2%z zeT+XbjPk%+I;Fczr4eZGQ{qMM4aOUxa0`IM=+_R@6Amo&87t@^1zQ?@BOZ^xRJTN_ zIwV6wB8P{E3Bx$GRg7=TX9bg?C9J=_vam*3?gI|@tgdJ?(~AczR|%$H3hlCsgxGxF zDUF?b%U5J7$9x$L$+8B@0dcMB%uubsl}wxR`!Un#K+4#2;e&7%(?dO0T>Iqx`}b$$ z5Zh798M_eMZC9G$U%y^fZXx6vQf++x694?s)z;ST?&`X@fB$}3%g$4u8$Hg$iIZ!V4*jeFMDdaxiD~i_%$l+@@Tqt@Z{2Po&A>I z*3$4_Uj)S>Y|ND@+ehcj($@Nk?{01QwwueDUl*&;CJ#I3UF3TWdpwOA;9Vif*F z+aNG$gnJnNjkM=lSP8)3)V#Ng}K2ZRNk8A|s6k+DQad#uH*&ZqBg%%K{^ zit=|v?^O47OYeZ?P@k^enCar`8t+Ug>!h3T29(>Di-0#M|=g znlb!hnv}kLx}6OvD=YIS-GsDumRpsM>0JOb{s8E8pKX4Ly8^=U60|`moErc8{t2Pz z)4|t5j**od>RsZ#0iDpoHpF~^)kag^O^Y+LvnL*f6w2*6m~iiOt%cUO=SlMPd$&iA zlEe8*9tuWCaY`$bK6z9)J4`Ln;?siarNIsUHd z*0Y8~&iUWFm)l@gTq`TU?K_Sz5Dy&{2{bOQj^6ej6SflSA* zFOnC6ibx@s&&j3L8m86N)^fcU|>>SUY-khVkzA_)v=V2*V-qQHR8mX|h+0CiDbE&)8#uCi)4Qixq zr`O@w<)MF~Gu>htN-jgZKyt9XQ7@CW3%ZXAJjQYPMEn9v+;Pb+*$7DAB`FZqKR-ct z&oKup@M}F1{_P(_sMOcr-&hG=C8+*S#ghDEER%FeiwzRu+zr0U`U&H+;h+BBOYmk& z535|036Cn`k3yep0FyeffBzx0X7J|6Gl%fGxdtD$9z1wZn3MC}hURqk#CeaQOGqT3 zgtAiQ)GNOEyp@1{A(3F|YuULCaKqo4;-aGV8OHhZ=ZP%oLQN#a#X}-#1V&6OlkjlI zJaar+>6r$uO^wpP1SHq|0%L87Vqya)OkI8onX+b)i%*|kv$Zw?Pn(+n&YFYSrjudF zLcbxURedNI_M8T z2*4@|P2ph+foljTbDfO*5S>yLq~t^q=TT8a2H^pMYi!!uQG=KxSQ;#soc4$jdym^; zmjs6!)%PmTK0AtJZI`gd>t%2B)rrL5p;Nhe8tQnM<6G1EI-n^G#e;i&a5UcuSIqbC z-+ll6I-(59s)VCtk2YD`Kg)b-+o^X?YTNHS{o&ZR-C5;a|CQKl>`66v$RFHWVgRL; z>YaT1y6~FuYJeEb)bK2Aq0q$I(SP_I)vN90!^0Gx{4lSKiWKowQm^-49K`)jIZuRD z*nJ<$4kMAY=OrDN{ur1s(o7r10Lggmk|8~q?{QvPuyJ_;za1OkE5Tc%&Ge3ACR~R` zCjl-zbcmgzTyc2x&_=YZNQ^+|LSjy#lHoZp##BYliICn=5~=4k#%nEj*c@7~lSQ@w z-3r^}n{PM6MrvB$eO!(*54;KzORL*dazwuj*HRr%>F z_aXys58D9fPN~k)2H0hj?x5tw|7z$vnK~3HKUIkxd2= z(EQkZ$y5rVZ4$avXw$CEu=Qq>d~4j6o-QsW<>uy=?XG4r>wAkeJ3A{ko&v4Ya#xvZ zvh_FD>9Vd4V#Nw~O;YAfu*`~0Btn^pg#%s@q zMYFT!n!9ao?`0e2o|i3kIs@b64Y_m6TUJia6?Sv`xqSaHtFHkiebbi;q<_ur9{TxA z*-=p|=WqB|n*}Nd_C`EO*i60fP(QEBl^WzzBg)TjU+WvCXkUBnOANC(vCX-LLZjy& z$0bvW%6YpTj(80k)w>I@Axb?bI1~sz0n3;w zkmYInNGWL$G zHr7ZW3J#y_BgIMSIy>i^=65~eY%pz|?gz8`W@buZzi4Si#dR;h!5DM@es6ZeesxhB z%k?8DGhg)+%(;Ix?Yn%()4+@0UoiAX6L|JUHP4X{0R%NWql7KNKo}Y_r}X^~-J6GP z@A_KAD`Sq^-o*r6AFRr{1MUfTKf^Yim3eux1guvTMOew<3w|8{{(^J37e=G%C2RBvI1k9cWYp$_MLMa#GUDV&;|Wz|kW0T0mpVopy@W*L?jk z%%bK%++uUUClOS`zfO3XpjSxx-5x_I=MGd&Ga4X;ZrM|*m7wA&R1#9)M=K199k@pq zv=+EzUpl&RsKu}A`HIhFBBNv;x~G1)#)R@Qb)BpR8@Iot+w(A=MJyYiDLOxHE6T99}t^{8PMR zKuqi$9zG2gbXU+!;Hj{#&bAePj`(BWpz`!^H% zflvfy1o=LRJZbFZ?T$sY*&Xxb<^H(q*RK6(Y;1%-h(g|)xb^WspUWl?W!L$X-|dFmPG|i?#18=~|DyBlIia;5<$Ras;Hk8+wNYcfEg>S>jS+`*n9#B#n90CR&9t9|oJ|$k z;hCjfh(d` zsUjE0T-(-~@>XByd z3P_?4Vb6iG+?l5=z5mInF2kdfg6FpTio2iVB--G@e#{~1Zb5Rybs&EOgYsxFiRJku z8#AKr;~#8OE4sH3ooUOrl?1Lw4+Wgj`{nl`v!bJ}ncjp1y^H3}xr8GN4s z@FAg6y@2Fs3+09?um%k2NvtB%4QVRb~gE-+c*FHoXK$T+`o_ z?>A<4_4(r{-c0X9HeKZH_C{n#_JGoLarBj3%hh%iqpZX0Ug&l^sS@67Gcv9&~=c>vPwL3Bk87Q>s z_Nje(lUm2|9NIBU;j35*t%1;08Z_KMqJ(g0?N5u_ z<*UFZSz9jJRbxM0)-Ku18Fu@OI`qE1Y%laHZq^7>@qODzcP{a9A?9kIR`R7<*klZ~ z`zmqr`EjFIuHiP9!ln@iD(+`KzUbe)XPS!gPcybIp@Zzdn+BP0b?GvDhC5Q#kDDqq zj866~)?YMF4WCPTQrZ${n6s(GRv?Ev$B&93_dCV~@!!2E9=xD@vPTDjNe3E*kfBY& zRKU?2Um`@48h-{*R_<&&c$RAKf-}1}ZX{+DkWb=f`L}X!T}JN?d;4{H`BrR(ajvu+ zbFL!lu9h%|dFq8@L4yrTNmE`ZuN0c-D?p$l)|~d}+H8}l<#+tR`P4~A7`C@=O@`ow zKH25wjn8XP>Bg#O&yEKOLbucr$=H^w%X3umf z6sE(H*K8}@Pf$I5OH2^nlaZ8vn~R$>I65}Oc)V0c{C=K!3l}t+Xs7603ZEC#apb?}Xn@>jZbha?AsK_L+Q}VxW z%1wWki{G9g{QGymZa>gtTH-?KI*d(C27^w$hen?U(rjn65^lz1iOkDf;aw#$7D+E# z&1JFPU@dz?m_7m4CP2axQJ4W2O$J$lY2ghoxTqR~)uy|%Gpk`g8jW6kYwhq(Fu!}V zM~F0UV{#H=5otp}l?w_arLx=FE`ylM=0q)GAIKi1DnadKFB{mN940v(rNzRllb36N zr)e>Vu}RemvK*;?_>^Tmp*HCt9KnK8rW>IEHo1daJ^J7n^L}p2d6-OVzf*<=ntvHs zy;drslJp`=WyMc+h4Q`e*A4Xg3p{7k7kh0+chEu`Sx!!_Fe~fpNIKvFj&}sfQISKj zcr%$Xj097Ve{s0Zn&oz}gnM9MwIF;jD^DeU0N1#)yZd0n`d<^n@uDc^v;9Y1fY12h z!w1$AtcD(RlIEUP3)z{?_h0z%;Uq{4b~$jlJa~XbF?afAf4)7nS(!m!aDGz71ZIq6 z+T}pt+S3`qQ*W)CzCPt#qyi^*)8C$4v)^HYt^`F+38?kMf=|2TKN z4NZNbUagrx0lg&qs{E@pmQigM$`YGQs?@+RvIlflW`2GiF2v!|S+wT%?MB?SYuBy< zy~IF@AKjWRiV%pp+MN6%yY*!6FLCCa*5(ui+1v*6C22970iY28YXwf4i9|l={g_p^ zj7wRnomX^JK93$$mD^@6loMvA5zLyyA|hwcvXcPN2cGbMM=0Q<1*t~R4DuO-E;!FD zahd_%b|UZUckVU0xk zueNWQdCAfV+FPlk^z*YYP@~6drqczHKGAHoxt4|MrRBuRp2G-$=Q0nmUD&>o-!+JW z#e@7YOK(Nud-+L=<)mvNj0595DjPQ!XeAcJyE|0gZ+d2!o=%VdSCw(R^8ctZv7y62 zl_``8D?HKX0r>4q*A+xAAdSb#z^aC6z-3sR%nlho_b*qStyyDU{@%F{s0sU zVl}C}i0m4PNQa4CX-i8UcWx%I088HMPVY8+6s2Q;*Ui1X3=WSvK@rXG#>{JRrFy5D0D7IO=9H?u0c6hb zsYxw-wMaYCL}IH#Yz>+<2SiO(n(@f6dCFyPUXuPR4sv6l)3#3QOji#b=xV;rm0@W$ z3{2HCu(CEiqku++ZCC^Fi))vxh`6|#K%5a%eOvBq%6j5A^r%!=$xVopSNu(c{#SEa zRHQ@j;yFE}FTnA7NE7oX!h*n(9t+4((V39q*xI$#JlmDuJUTj>o#EN00#PnD#&q!R zF=zCk-S{Q<4ZViD(DK$Cf9~PlTL)Nb!K6$0rFRg^oCSjI9}!1&K=-oHLSZTcXcw1E zq|`CMFRt}D*3yY@MM;Y_XWzX9_j4=q%<1?`{cW%;_T5@-FkJ(LVGvcRESIlsdGWz< zvgd<1q|_o9eEtd>l_xqV#>%=yfIkFPniUd@)N!_&G^aALDFOQmm@BhAq_qMg-IRxg zZ!A#|``jKpaCLHO>faZ(x#`azV_5j%!;8(O;dv@`#C3V3p$xpu?v$^nstRUo{W!ji zEYD%4uB%jVWjq)(;1vXsuRT^H&A>?r zzVEkjlf6v`DX?S=O>@@67RX?8kv_6mez&tj0|SK{x4Vzvv$7t8Si~h~8gQGxK74v+ z93kQ1eDduoEre@LrnXk_4t}DpnS6YEt4QpBBFziKoHxd~PKt>+c8W&ekYSF+i{`tx z62~cG_-mRpc@8f-ELDtSPB}e!CFR2AM4*)wZ1q?q)H;s&v|BN4&z?PC=6to3EeO`( z*Uk{fok`Lxn8`QyLG~t4U^np{jhfqS3fZT&OVrQsoSugMT;B(%Xv*P;e-@sx)AhaD z0?VzJn0JfA)e`DMEC2r{__v?`L?8YGCISW2!5iQo0H6zA-O6vw?}A-BySl8dIgNh1 zD2x5f!!al_+K3*-c)GaApNw5!Uw6@z&@DuE#Z409D9C{OB9wPD6_2M&1H7qTTkGpr z!D$Fk)&a65Wiz)j*IRs{ebW%UdYh2CpYW_m}Du!qn+@` za_%jEwo#x_sGd7#ASft^L~f!Hc{1-BAD9m-=8bbc%zKP7;g=K*Tnw#I`3)qVzZF8H zBdD0KRemkgPIdYD&+mRtN~8IVBS=aI0}beK?o$xes^j7V8V|A&tquhq=ei7^s2yy% z?0NCxE})P6R;+x;7VAv2tc5SK!WHN!P{vD9x>NQQ`=-r z3&yiNu)Fx1g;<*U6@h~9`WbyqT$H9JDcQ=5v<0-NZ@|8O6e)%B%K$BO{78 ze(rMXTQW_Y@}oqS~1hY|dJK$ZV3qAjB%w}2vag8C0=e9ZvYI35Th4M(*7t z;}9T7fY|EmeBkuNg(o+DzJME)wL*t^)%wm_wy|dtxz+ueoI9FWlG1xkoQTsrj=Ge? zYEDoi@fo8|qVwa;(Y`>0aV2@`w0s0219cfdnlI@G2@cabR;i=r9j2DegL`wPzmDr1 zTU}1%y+L&+Z6}FFErTEkL5KQL_1whm6O0WM^STywp}Z_7=Qx%)dqx4|V=nYbri3v2 zy1QN8Ege-2X`yaoB5vd0U7tixjWtvX3~~jysB=p~jc(ZUb7ID^Vrz>k&mB_+JrQY| z0p_Wi0VNAMijyP=;@JIP(33B4O2Evjttx{|k31(Kh@PFB6Ii294mLJIh9qF)asAK6 z3)_uNpA#}aa`it99j1HA@7ea5)F9lo&tKz0l@4`HM)9%T4*K7xP?AwVK-FP!aapPC zv9Yl~G@2^(QBnSXxE+GRq5n&m@?hEL)%S7%*eWp3WV@YWDz%YNjoCzi{TpeY6xy+JU~0#L%-D;S$unJkozM6z6OSTJLGz5{-e^kDaAvrlINPER4kv;sfPNPhb8 z;b%%OsKUp|Z$92wlOgFvf_lRg7J++N2J@gRpf;>)1K6Ge82cYk1~Huwn>kb6;c>xu zZ2=D{2B^uHn3zt0I2ZhZm1crO*0|rWb~)NACA9;hi>9)AbZ!!bB z49>;Z=}ww4*HQmEw0I&3B6WF{~M)hvO z@&|te)c_P1yUErs5EX7JEg*w^wJnaCC8sHyHUZWu4$~e6uRpwf`?mRCCQ!H^EJu4s z>=`BxZw_o%FG+pXAI#*DBQ0-ivLbV;$~xwP6BFw!#=hTPPCN+osuP1(aA+x=qoATd z1X1%C3V3_PV6RVl$m(UZL@5({MdyV2flhbjFdhL9^ty;#3NWwpMu^nk21yRsPfNmZ zd1yy7ub&VH!4&#)hZWadh5rL#svv#~ifvHNZrbDwXo0G>wwa2G%HTvfgMrapT3=UX zEk5vRK(dB7dC+klbBwvU;2U6b20(s~=o@{_^QCx2fFBA#P#9yH4?+sr zp*|+;eyuEz@U<6?K+iG(Ia3RK5&33lXhW|)ms~x|c9;hnb!@>#9S|K|kP73T`x0!9 z@f@iy)Yd_;h~kUNQcywFN?+8%e#Cx<4WJhE-yTk_)!$J{o$mS_iJ<=)dvOP^i z?g)-1BqU_N<8;#u6nfG@X=rHh-CVf&l}?C&q{%&&!1i9QNWi6%!at+VlWa!Q0`R*YUfunaaohUg;8+wdJY=M2ow zi3Y~b{3gPgz^dj)j~+GE`pth4W&=#ySay^(FYrep7j9a+*)0iHc-Hp9;HYS}ybeU8GVn~@$_Q0Kvf(9^)JYxM%J;hQuNg? zkTwR{SvR>ct&QTV@-At6eh}fWif*jTDuE*h{0oae?0@U-G@kOTBbd$-896WF#$Kp`qBDu8MQ6rac0oduzq83Ze!903U($ouIM2f_9d zkd4#pD@Em-7$qvk*D^3*s_+H!e=UZtVPkzr8(gT7Od~Lr#(Xf)Y?Y)(;LiXSl|| z^S!6RC=)Wsu>dka8Mb|01@5Lh0PxR>(;MjnGXW&FMz)k>Y(go#S|H2_XcyojABu{i zBISX2K2pN46(h^Z$`*k71HQ8p!XH$Pn~TdQc#q-qWhm-CRZ=LLpWottP*@5$@Ss+* zFlU0yV&Vav0f!}}SoDpWzOlX@sh>3pYw$EqvQ-l+xAWwK4-wxvQP0sy1AEeUk6Bw< zx~_;q9XBC64z7#rc6)_ozKyc%0Ia>>a&Q$zPh$ethSI&w3Zu@Q8?vynDwj(4QD%XC zO4*y%hDeZ);u@`AY0U4SP1Cm5q<}I6R_($*%%mOWO9W?Qs$9xHkUW_c57PiB8Tgxd zfO@dZEA_^|vtJ^c@3Ji0$%;|-OCWt3ytVWe8Sp|fI<%y&-sROSLf3hBL3d@3A{W)Y z3}~eLRW&q><;+w0kgRyLc{qT~7raKpKC-IWLW~Tid~=X|@UF4z^ko8dl-0q4muie` z;Si7SU|&LE8wOCiS>M5a5?ia~1alf@vRS86 zWcMA|tWvMotL9Lcv3A~Z2C#q@1RK%AwG}RgVI90MQLS{35XltVJr78k!QcGKszN^Xq(HbT1CE+OXVK8@$x{h`k;lBlWKVn%t5g zG;kYWw_CkA5&*9q*thTC;sgtVw6?T_nCxNs0$>6D_XX&aBmK!C5M)D#DNRIR+4;QS zjnmmFa0m04Nur{wHe*Xgr|PjF{2yY!C&nzU#zNj@vvyCjbcFV}jTie22ApuqNYP-k zm&Km2ol0H?uH<=D)vI9J$*>PW+ZRZItk>sMRbAo;Xvw|3QCCc5nIJQjfTGV?U(BE_ z17TTc@9qhhe&)=XQEJ()XYw&sQ4Pd)C*|=dc|_&4@jp!ehoSHI1s@4pDqKD} zV(q}3kn`LBIw}w>h^fPZlCB0ioUpUeSromYX%1JfoX>=VUP zLFSW2j)S`&iOvOtB>cWV3*^S^pFe-zL-f6{Wrvz+c6&yx7aD@Mj5pk=FhFBBZrl(N z+wT|Kn4+Lt@VSSV&5Bwoo93qP;`Wm#KcaGZ#V$c2(&0S0J`;CBf+ezu1*FX-3{5qUznAXDn>L2``Yar#r?78 z7zNrW^V6ngxUjGdTQzk1?r*BG@ds;5TM!eyu~+GeYPD1%1Udb;7Vysjm#8C%yIRTD zimLUCeqhXR@&~^K3gxK)j3WqIS*<>*0=~vAh|m)V&qxQg0bHqEJ*?rp7go1M3T9Vg zc`)<9`q-`qGz+jf6xa;v5k08$ubvnB`Wb+$!fQXbc!dSg7aop>i#?qvBz6af@Imz zqnFX;_ih@ZjzTuoFxZ9TWugco+g>J-epZ4btne(kL2<9>1uxwTTQ`UQ_F`5KkG$C04n zTH_FAfJJrp^%)_{BOt{+GcM0>IsGBiP90+aNNGQ7q}iP`w8!f6bv$iKDU@D9K7|tr zs6pF+y(i}e0VdVr4Ro^Ukw9&_`I2WkAul zNckYV_=rj0Dg;DTXXRJ>DsW+%hz-U_UNH@6^^UivtY;oOJ0x^awn#9(v#>;To;)sh4J^#b@cb!Sk%?W=Eko2@Q*Gt85TRuN*#ioX-~q+ z`7*J|6ra~5P^{+%V6hw!R5ywqG@hi-fBOt};Wgh?2GLO5!7!Z0E9s`6C1XwAs|Whap|*f#cldZ#+r| zH@;dHN3w^h)cl@algV$KHw_;i_hSDjB$?0^3tCq1(gxFe?4nsE=m9M8KnAK`W+_t< zY|h7;YETdqUEwor-bZ*v0J# zGZV-?Ghimp0{fh%AKFv4S)~QiJ5KFThNC+uCfMc3N}NPSf>?no@X&yTh9uFK0xBxT z>PYkwSS%RqDgdA6k_+T?PVa{zyD@}Oo?5MKKO?L zxYcRWAJBzZPSeWDCpl&C&ji3OP1YfKV30}+WC3$VN{YGzI-M`*gmto04pzj6Q$G*Y ziOKd2dXs#DeL)}l`EDJgpENWyIDl8On?WTpaYFzdZ*0L^!ZF^0{2O5J4B>~0gW*;cw}h9J@R9_KwuQH=j-#L;<~7yCq{GV!mAc`KzqG#mf8%b)$8 z?^3lt9Sq&C1c$0eC{woZ#Jbcad0Q`p!6yd@`9VZ+CKYz}d~!m1*_>W8qp#`wKZ=V#znL#Rocv z$7}MxtirhVOwtv1{qBPqy#Ca%hKeA-@cc~}BZ4a7SWia<)KMNhkGnwqd5v7kI{I`` z{KrK$K9FwB<)Fo*&ZMssLTcP{*8H(2)z;=PF&!twTGjzq&J-C_8f@*4IeiaEwU;k< zc`++=C3QW@9m1}Zul}-#RMuo<;oT2QzY2c*xyBjA9co9_{z#ZjJezM}oz{&K91@M5 zWq~{1yplLF-nXkTX<;!xu?S3f)K&_r6AcaYpVcUF!Hz5&r&ZtW>ljL9L$3;@0iUys z9T`+RqsSK#M5U-TKc^)A{cI|yfaCMKgc&|?Z!?cNZ(+hm28FQq)=fTIGRQUg2zJSz zD&3pQUFXV?lwV0N6f+HXeBRkvdjSvR*@Z(+nz)$Qw_$<{+Bd9g@OZSOGAB1T5;lVQ z!hREW*a}{oP)4XG09fR}5=ri*+5AEn-ZkpZjtNVtcegRJut=Y6q7-9DcJj)~_tpz@ z!N$3V>-57RhX~V<6}-j|3K3VX{7ugPJq?JZb`(Y5JYFAzw+p2-C~`p<&J}(xnW}Zw z%YKlfh|cQT`m(g-)9bj*qUj=(iZgzD_Foe}pVfjS5(L6ELtih!zGj}sU1y&6apg~% zQ^oe+$M;;-p*0#HoTC=6P}u?TcKFbtrJ)MtgtpVNT34Pwe|{0`S$+sw<{L)dX_G3k z;AMpeW2#BD%l5~8cqjmjXw(>^YjsB*f$F@`(X;xosOX$xsRum5p_&w~!Kz+uWk$p= zrU&)U!M*~c2S5A(1`8TC-Fx?PNJoRfOw}_ucoO~* zHx&9?cu7y~SSj&GY1sX2;4G;IxHhY0-9OMaft(Wl2K->DAhZUFZwr$vwIT#R_(Q-W z0Nt6hF(n+b8?A@~ajKRnVX!|7Xd}QWKxMlVUBu>C$V&ZZzz7TEfV$blTa`Rz3yS%MjEO83IZIuo!$274C$2d`x9ZCQ|Yf;}CVJkT0I+=n**h9;t8j1lNMv-lvLo5XE!JE_}~?w^NO@g6>W zDxT(0&#DNY#}4JH2}S4oi(?2Bw(IKT(MqqG+S(V&3`Pw}?{Q3mjf&t$+?YENjn^w1&RwFc{xlXDn21 z=Qid5b*M`Q<+JF?zn}KaklS5J`xGp^mu*bb%gPj}T^i&Jh>kR23iiEy`}S|RgZEE+ zItST2%HuG=EIhH37biPtlJaPR{%CK`5MW&zMJc2$1s@5P%TQ!`kNY!H%~&R$GY2QU z#V#`{`+g6!07uiYPqPn^wX3Bws_JProPN!AJRm-xXtwE_Q6VQZ9MlQ>dc=U zm{yv2ZxEb0^ahm$a^S1aP`+4R;^gyYLwYA8)H=85mOG7F))#~OplgA*MO#+d* z-t6%+q7>Dgu1Mo#iYa-<^aHp>Z~!|(Ejr6Vqcu65+)+-ur1rnOtx_ltGA>$(jL)c- z1V4W&5vzjePsNELB?lF*bErNSVIuIpIQN1lS)lqRTeSwS-`na%OK%kgl$oVPVYeU` z4eU+yb9iY-kuCe+U80%`-_cEq__-5L2$*&aWAR;bIxmag#GWi>pDiV&`F*uSQ~%gR zbBQ81vqi~9jZbp7`AoxmL3IuNKW>H>dbm{zzyN_Dl4pzi?e3>ng6!|peW-fLOlz}J zVNqvfg?BI0b3LE?=v8ilQjk{V>d$k(SicR56AY05>2s7Nkk%N#az13uF85N($N^MT zg)QZfyF3HaA8(do(~F%xe<*r*C5CoW{sDX*MSXeW+w}{3L!9+r zxG@n37(lK*$q10VDWC29dv`afRxdzc4wB61*HMo;EGQuxBmomuo$r6ot7Si<(^*!9 zZpC|}O?KH$t$l+|%$=m#H9Svh-`IzLOO%;yA|?9F6bT?E)nk2pN{1RSwJB59H-fEn zY8Pg+ro3+;YmwPivr!JW1~k)pKO_)-P7_R*9jLCk+wUK6Awesxw0LNCl_ZcXjG_Sg z;<@&0nQ!5Nc1E>@y%Z$>ddbb%W#`{Dyet1-xZLWJU+jh>qe_gJ(bNC{%L7a2Z zQcqT7ubw6d1gj#|&2BMVI%yjQ$g|heWlq|aQ*?s4tgoK?Rxf}5HMr-LJ|I&!&@GuI zSJ4ZnK4PMX3A2}y1C_VkYX|}$TWm(7d64^@AEG?`D9M!s)`;}7^_LVo%WHQI86G&V z7bJc_{&=?86MfIgk(jF?gHFa*K5=@;z6`%o$2oAq_W=W8QhYB#aCaE0%&i}JFRw5( ze9ur`Qpl0ZmdiaNseanJ{x96@p2*S^P1XusW;wOnP}t_E;p=5z$}4Sx_UB8gguA2m z*_h;$Z_mhVC3cUbcO|+wj76|VsD*!YNp?i_d)Cgz1!F)rb%w_l+28f0j`d?q+yK|` z7{@_xajVHyRW`QkoQDyxR8v2s94`*+-p}^$Bg!}Cn;eZ%%(xtl2)a?DZB}+W=k5%m zW@yL*`vJAVxRYVt-`A%A!mw9(Xx8e@Kg(AT+7*T6-^3hlyHJEFNT)*_Nxwd(F3|}I zg~R}DB?l!7HMyt|()=>BvY0kEH|xpdEU8{&tvUe-0d{QKw>A!kCd*$@$-uzuC=mOK zt7d@GLd`}iJi$ms3(ng$(kjSkSWX#ybwyIj%ZKn!tfRF=l3u?)fT+2+xEys(Ys#}7 zdcTFLfU3=2FAF0&8EN5P;Nt(~cB zViEzwQ=+`fu24?#^9o735IceyaFi?vgd@pX`TD9r*$x`bwayEyJOqM(6%BVGJ|G~V zv7@5_V#va#Q|mcJa6kI1w$55RI!eC5L)wnJSW6A;Irj}Yc^iI|x}abSrEXGvytls^ z&qIy`9m3n7?&KtO+N5Gm#TWd2!i4d6M)ppTsJ1qXUN(oA%~97YSAvT~ss{^g_z*dd zwei?lfz`ay1E%5ZH^14TOxO;5`|)~J=DJA2tc5#j{Ig- zu%c_s!j!ElYEo9NoetKZMZTY-t*Fc7z(C%GW(Zns{m z6`$B@SxYkc)={`He~)F=;mcPmp6BOF^G)27UPdb#+&C#yGdGNl_nKL%Hg>3=Jbn5J z&b??h`5^_KNA!9CM*(2K;%eRVXS9f-a&+S~La|BKW%{R0?0ZCzb9xELv* zJ;Npi5Ey4`Kq#;Uuaulz5L};_Nrl`Lc75F$ot~Mw@94N6+Jv41 zm=7Q5XJ%$VHc|hKVb6^_cjnF|TMK==h{)Own9VCOj0bR;eCw%k0VatP$?6_<sSHphvSR$^G=tRo`;#ll^nbGaTEps%1d)vShr;4~MR9pf3={LI}1=wTH%E`^0 zqjg=FpZ5==-}8ueu4iN<9A^+i6y>DgcN#=fu2b2b+cVtsCwyUv)V+P1 z3M_3`wS#=t5-PzXP}LqgcFh0agdTBrW+oK|81kV8@*iB&WC6i@-Y#_4t{ZxK&nhY^ z)Dn<|)!$e(J zAjN66Vms8ddXR9B?urFa}#C`Nf0tU}O9rEZQv><)Ef-Lr)4`cDeVT>a()*EG_`3?Th%B3qn!cGBc=$#~mAQ z$i9oUyJa0PX9kMik&z@_kI&#rxF2_iu392uFsQRo?!JS=YHZDr4eSl?zFL{VA4;2(kk$D?#MMCOnAasm zM;QO{{I)b=Jfws$ZVg8z(+KJ}w=_3@Q;KVS>Rb86TOxgJo$@Rscin`cdi4_s;JBzWviJAz z;QV!GF#+ZNIk%yr+qouugO>?lRv)QBJ*DU0yp1`GIV#Ln*8yZLnt1Tk?UYZSnD3vV zVd0ex(f&iU*UPPIvg6tz&-pcR=ARfSu6}>=>IA6ubMqQ5iFG_=0^) zGhSWa`bd_{KFd!&+%Z$pvH5a>j@y3`J{dv3C?Vk?&pxPmq<+)CIzh?jHsdbXpXSIT z*OZ!;R&%EnwwDKJ>yrd-QjDGWi4&y*@Qj0kuK7D|4=5JiymUxpnY1pQLTga#j-xH;_n$>YbX>q5DlKp_H@Yv>aSq)*L9tq$T>w?9Rt)y2i#~&`XMDb<_0VokzXS zJ(!vCZ!myYmS^&4%=3CReFS%=#dUGd%=FwS6E z)f_4}Ibo{bxO+FGc=TzDs|SQ6)r0!jxp>4DHykHA=U9WWKoIu-~)3)i&wF-ebFHr_-H9d(se%B<9oiFV|M#gz$D zh?Y20H184p;PKXlB0Jf$JFMg85T>d$RFs2m$DmLy7C|oREL};8;^Y3;ibfhQ;NRU%+uQF6|`YD;7 ze0xZ~f6RKb4(4UC9IJFy>(Q*wpI!8_(KoAy5MAtw;wo6zA54Ea^^W6%m{!A6fP-jJ z_C9Q)hJGPD*_W8#!)9s(n^}Qh)U#R*HZd#?Hdx4L9EV`V0q}P`I9WA~Adr1g0z}w| z`EbwHweE>guT{6ZckfC&|9S+=?(L%auRsG3E|=V0x~hNPPMh9m6Qz0k^cbz1V#AQA zf+w!HOrRz<$}B$2BO!4M0ucEyEv%XsFJ26Ydb{@1a;V5*=E2aG_XVu@_Uj>$NvoDR z3DJ8`R)!x@<-M}?K=Xb9-0^WR3Q9B^*whuDEPbN}MzuJwRYPR$9V)mlzKv6FSe>6& zH!*pyNGFJ9G02J!714PLIYG3b=$s*r7XiIuHwAL!wn-iaH%+fc$9jQ~id z4Xo_6RFcerqk&ZCulRWwlCX|vuXvb{PIPoM0>nrrgd)1%mtx!^6m&RRZY~|S_2O{Z z{S)%o7yfQ-!IochhkZOkamBIbj_4ceaF_q!p zGBBl^5ckOQU1&JQ7VOu`dWhI5Ra5KBWMSGex1Rr?1xyt)Mr&8q;UYq!MNu7EHM6=b zQ}4~~8K-+#k~0)Pn!v%0J7q+7gMwBHC41WqX>(lsML#~qFBBh6tIS|_y5-!aX;vh- zOw=q|b{Go+z67X!2;E5y6{yyXHQ7CM)B(Gk`SByey?giW6xqgY;UD{-Qe6yNZA;C` z*|)vDohtt9_`VpJyWb1Z!bf9I(y|~jdY1a@3x!6I*m?PBbrL1VsQ7MOUES1s+Rooy z{`u?cVe=IABsvVWxa#AI-3RQh94R@7)(NQ5MVN$Db;Ualu;wYvWzXGj!2J>IxCaY( z^IxE^1#j_uph|)klJY zm`ap(_-|tcdX0mEf*v{xDbuMHLL--dkM;&hR^60eN0ah^xr&3bz=3OzU@?Yb#7l8* z62J_ZpiJpc1qJM&g>ZR#@s5yCx8-+bW(M~+&PSl=Yl=I&&kx?o?n~9C#dg;k+~$f= z`;o`6#7%`lx*)tG!I;CXPvolw`;pkT*8=_!LI*a4xPI|%quw>542T}I<1Mm5!bv!iUHnITtBEu z?EP#&{nJ}0O%7<+2;8YwYGcVdHe0$1DaaWm38DRfD$*Myn7f3t56Me8Q@uB%U zyCE6h*T52$F;ZYB?h8wHeD@Ga1wdzQy}gdDe7#qm7|8#$kz_B;=&*FVLJhbQ@G6BBs>5I`i$ zS*fisIAM%N(d5~uwr3ePp8(?eK!_`Ng3Hv}Sjxoz(d1@~IQgJ~v46jbR~z2Tuletm z(L06)C&#*j2IC+}A9N{!5lHGl$s2gc4hx5}7DxW^L!Fv!yxM=r)OV|%OJV97i%5~% z$+TGZ>+KbBDnEcQUWHv3K_Gg-4-xwO2kkQ44~_JeG8b+MGEfC; zGZN@;sV@4)cY*WE?uk(e&^0$dq@DW<1eK741S|9!;Hf(gE%f^O`WpP@bNQa}+?68@69e=VpmZEzsJpA_y+wGlw7q5jHO z!Ffc^N7yMajyPoqeMubM&ZX4o_^z{qFJ+<~Rb1tjIhk|e(j`V%&at0ONz4dU4^$R8 zA2v2P7y`V-cVLU#6<2Fvly@N@y{myQUP48*$gErsQw%$3lbf2Iy}SCd{v^Ci13Z@r znJlA|iV!sH-LFjQIgFBt+dR_$^SORL8k!4PKd3lAOg!(n~kGZ+P<*r;#$|&2T zdoV5KMSS5-J8#TBt{{nLY8&2yjZdyf@Auyp?05WF8qjh z`sd@}L=lK*8jrX63cDpgl+F7evZsJ=HLAuy{B*A_<<~DgM7WLS-qEcV3C!N$6Szuj z{o%F4Y^))+}qWnXUU9I5oS*|O2jve)KCP@*?yyL^E0!vi_G#ODw5J8`VeLF zAqO$IL;wL81H!}bL?Njjdj1@cG8;h=+c)^)m9B4aW(55;?bqqSFI!=*Kru$`oA$A= zM4Sk6E1wKGH9QGCTqnse6I$9+xfKV%q7%48`TzYb`me#I5zfUx2QbxqD)&r204!wi z7^D^#%VuT1bgvyU`uoJqtyCEMi>XtJSv=tDuShXs!>JfVxb z9wEs!u5Updu&))`$twFC(9{!kvtUDXdjY@D?TC@TL>*?uN(=hS+h6YZ15Wf}g#Oh( z)a=ylFWfT63ea#e|n9UDt(oy z;;2MYIL36|y?LXQtw_!iy>|8L`@fuq8SOt}<<~4lu(X&`N20il^g?&a4IwV|p zuPAxe*&Cx|CG<^43?>yoWvoz4>H?}$Q&W@j{t&EHD?!C!Wig<%hw7vl`6b0X(%CuQ z*od(k>Z3kQJW(C*EYSUom-#kvoWlon>=PdD%G$@`z_MPVa9HgUOK#Q9ry&@83RSSp z_IPjMZo!6un^+0#1Hw;RT8~hQfvHb#;}%`xadLpzuB>Q|?RnQjz^+o0c;{4#Jh0~O ze~kk5Gqu$fhzooDz{m2!>DUYE7QdhplL%1(MI^zCXa}t1^WfXkXx%5IFMjoGJ)>jkT#S`pFy7Zm z>#MS)34cb>y{w@eFHW`C?iJDK=hA!XkL$1_YD$L$Yo;49AXZ=vYe*CuDTOs#?%F$4 z%xUp6M09-r{=KBI|MjtJ-+Os|vAu-rwFXm79UyUt)lK5LLpKf!?VWFCG|YSUOvtf7 zq$Azpfox$&_XQ{V0hpO;kiZS)?ki|0;&vnSinQV#4~B|n#BIksruGfHc3*!LhrFJG zyuTd5`2Fij`6O7ncrq1jN70Jkck?ZGzY{Z*?!FN%f)!~#H7C+aZ8_nhZr-|8dhr`k zEcZEBo*r&rIG*PpwQK~78(|>iAS^8g)-2~od{0!f^2(VlNvuNl81LDlC3FNpbQP}= zw-O*6>uqg>qN;IKIOQB{B){@w*z#x)sw!r}fwJX*bwJ@WqRIRhBuLef1Zs)%NG`~I z)RQr}Z0oN38-P605^6y}T9f&;l5@3UBZ6=T!jeEqT*MYk?e1GQ7Whdx;ZWVUkev6{ z4nsx9>d?yqWbsF|14VY(i|li6ays{><5`4N96d9h*M^;EukKu8MA#i1Itjw9Bt=x0 z<^JrsL3+G(X^zXTY7M%*WsHJ7hb*OW`i>vQWBfC~DH67$v#b8Ykrc(MyAI-p`5Io{ z4*YtdUyO>|Vd$E^t5O($A+fR!{IG#`LB|R#hjEGHk)TYsCYHBJzThB%ahw1x_#GH% zP>2uD7b`FyiCd7!XAd+iS(Y3rB&S9`Q6;VNx zL=~Sy)YcR@obTetnS~lU4>8j=}WIBk_FE3-Rpm zRVoB)R_5pzu~vv^j`iY4H%QmL_ZwsmT>HUiMI)Hk+jV6mlcqLlK58qw6MZ{$^wK!R za}rHUo|3z3wKuGI9qr7^xa!0DtCXb%JJpZ_+J)h#i#a?U=weQ>0(4wd4N@QOd@!pq z`OD|gK0ed72}oO~M{r);J-n{=7>>%vKUQ-n(^UXG(VM&=)KPzM*uN97l4~|_??Ac_ zO&bq9FDZQ}+PzIwooYd7g)x7n=@4#t9r;EV4a@j#*c9?SH>_*`@r$@i{Div_#sBx? zoTaNNGf)zZVK2Y~w77y-VFB`5;B6ED8!9oFE-y(IyChBPJ$q*bpoE~K|4O>~;rKEuriE^y zxhc2tjIKu@n@t*TMffYp*oWR(bRo_Q#ik?!Xu<)#VkFD=NRX?12wwm$=%>-_OX=hp zlZZ@1)6&8SnS^cCS3HQ0681$QU3MZP!Jaz$G>AnR3KPR)dnN|E-Xa0Et5K$<3#nzx2QuM|4IoZ=hO$4; zZKPN2hlJeD?rs?oOiF^J^iI+;%B5vRKX)kL_7uTwuxHZL`iNM;9`Ns2XM^O^jR?vn z-bXK96bjzw)*rtJD-Rjppn51&RG6%LGXGeNq_uGD78Ff)R3X?dJlPAb{NUS3(@pAV zzS($nLM6Yls)x46h?nt)QENo;KxUK6c={IMk73Laz0$UeV6s4qYiuvSU^C@=xZa1t zp&n-rm@Yvysvg&eGi;`fkBalxwq0R?sj|faCw3UW=e+ome@j3;tmNVj*dzK=&w2O7 z%x*;d1!QmXYVcPge%N$)2Zd+F@Q=AQ=fKNUu-DTnVbXQ zmMVTHVfvM%=QU+m`LwXWd)qn7U{{bnyI)Xi>{az_uYG>l5O4OF`#pTtCo9@GVa~~k z(_glN$L>K6Maz2^pTx_ij_T^hEw6q7G=5er%ADp2-?!yj6DLZ~qUeN?j^?g@-apIuBH<1O7-hVhu^re8HQWX_sQpr6Z+vz*$} zFhDvFx}U7@)VOa)8*lW1+_bd~4W)}zReWGixsLK?PuQekksV`H^pl0{mHW}g5Xv(1 zuekg!@pUeoepGcxVePYI4dC(!Wg~BTqOF+rS=V+ z;-;Db%lh#B9!oYg_L|eK0fRvv)XEi>Jlwt;xWmbJ?_BzLL@4~# z@#*uHzm##q?2l6q2M8%L%kS5%h&w4)X|p%0`1aKvK0U*ic8|5D7I;PkCy;5*LAay7^c%>M}6WQxMRi zIeD!W_KrhiqfOM^pEsKD9PlOh5b4ObQ(WTB&=9Yv9J|i({R1XbH2XRB&AM*9w$YW4>dZwun)-}8;P{gmJu@r0DR1}{)Y z)T=mZNL4lQ)C!+l`fy2#X=)XX#ZH~hBB_2pgj6>+I>X2!YT7iflCQTR zugpy^v#VKq^E{A{KqW3gliriu>x0ZC1q(VIdvB_u;Bvzh59}kfXio%Wup)4tAz$z! z$^K;3(;-(D-=W-Jd?@T++9%&Om*kd|aQnpxc~k!%90;)l==^NI?EVI4Rm=ikx3Uaq z<=%b!cuv)TihL2;F)-JSRRY)SshNQ2?jR`tR-i<;r^b=0GYB#cP5)VGX23fEr~nX$&()h0FLx2Bh>R?1by z{Zk|?$!853+MS3S?Kc7AfL15Zhw#Kb`5Kn4nsh<1jr-97`s*QRJA|pZ3*;J?{*uxS zi!dN21g**veoQaXjXTGv4r%#WO3%+VA5&HRH?V@3!0MU)2e5gmkg<`AOpEbzxT_7T zNmnB}_Y9n6?VeA5q zsYJ^OWz^K12;itw$f#%`JT^5=_DT->&bn`3sV4wVjC_MJ#RDOtHr9jylc52}B70%^}6i|GEYF#6C4V>3}e@jy{6(-7SL(LTb7SDwN*82je4tAd< z=cJdG_g40oFB*WHn>C>IG6-cn>Pxoj!h_`7_=CQ0BPz zy9IMULsxhQT4I2hzX9?DEO&cz8!T!`fe2@8^St)|BZI| zX4si#NmU4Uu+MOR2R*nEFm454ZQySf6Krt$2Hdt>#PiY7(J*sk(G%2X>F5gd58|ad z?%x082iM{yoRg=mP6pZ*@AItQxR;=~Qu6bWgM)#NViPw_ksU!jnqcPoXXN=>m>Qkm z^!%ec^qdAHl`c|zW6=s0-8TFTc9YD)!h=j}c%5>ZPCzrj+EuOVpo1$Fq3(X~v}AFo zzZZk^=UPU}q6wp#%Je7UQD;hZwc0rL12$FL^BvEAU)0g{^s_k}b%-0^C9mj9Yb8AV zt9p80&^M0`Qu4x-`W<*$KCHbpH?}$w3#z6tSUx}vhr&9;6S{cG%H;CtUwZ|AJ@D`t z5O=OjCkgoCL2ooFQZo3Ld51*#li<+4gVWbmF4-Ei8L8XS;`DnA_*=JN{m{#}+TMJL|wG;0}U#>%q$@sqiYO%87tws!no?Z9vCKUuBs@lt-s{!CFZ_idM6HkXR2+yq|J!ucbrpCfH1PLS#3 z$=#0;>JS-1=SwZBY1FP=+XH>qcUhW>fQ+jU^$X|sJbn-gN7Mv^oghb_Ld6KO^_NJR zN|pK>&tG3Y>b>WwVWj%H(o^(r)>~Mt^=Y1+F^RG>=eVm`dF(x|d_{KZw`Ad6>j?Ji z*nS^ozmspTPEb$JiOP6>L&qnmIjCGg_{h>r`ZhaNSO^NLijCbz+@@6c={GCwU>&sJ z?{{LZ2EeT$Q6C*~>o3i#u~oRX1m|%zmBE%S&0p?1e*oOi0uNE82Rm5q3~lAt+|K06 zu;zH;kQl>l4i(nREDE72$NEYxzF!gQELvu~lz`Y{bG6eE7fE?@7y;bJkvd*U(DqZm zh9Ucg+WwXXAmNb%V2T(4OdO56e#dG|n(-l8g%EUny_tN#8bZh3Jxw-cS8F(iC%)Ie zw};w^lVlfsT*7n2RQ`~p52}X9?9)1<26TvO+Z;CTZiPpl*I?*X?K&x4B7{NRLE6J2 zN)}Dr&6K1U(2SgYoUQMf)v+HoIEtH45KgWCNol{@sjiF}Baj9D9HZ$S7{#IYY!1AT zr&9|*7JveejXkdvQg@5P<(GOqlrv$-wtdR>c>8+r`H9t!+86q_31C5*GBUL)SACeC zzP1v^F3;(VSs73lpqx1SZ@r>I6aXH!LyI%=-1z2Adb8av_63*C4qx78i$mH zpl9Dbef*CRTeaIZoDFo`EER3O)bN09#u!~a?l-*kb)Tfcm7hnxd}c-BLXmh|zZdh3 zQNr&AE!W6j2-1G*#D0l;A&W7m8T>kRXx9E%Ea(MkoQ%G%yIFY}wgqvre^f@`A(_@R z)x&2+F(OUI!oujN$R0Rbb3T^)QSw)4nQy3s#){N^-BDgjoD_`HQV3)f*dqBTLh^sq zMaf>={mqhuc%Pf_X6Z|lx)m7ILWs}?r-Kd#aLvazwzcM{3x@m2vafG(qRl@wy4B4e zC?=~UX_v>$K}I8iDwHs%-q1s*hPD=!_}kF7Hj9w95{?uTSaN*{7GLXCK*qKSs?9-M z9{4@FB}d6R>Sjya&u|d(rtZxnTZpqik@IX^NGFi zK8v0Wx5M44NGDLy(iNE>M#k}{$-O002WQnA)}dY6_e0~t`S4?l2kcbw5g@?r`5)VBaO@o^*y9@CR;n|N$4>idMb9o~|%;=|>2Zh@G1kBJbSh|Gd=oFT1C(_EULjQQ^(V90%dAN@Gjacx$3u!LP0U`PEWB(2;7nbe$x@Eg$EZGRw)m)v$C_DSOiqQD92ELI}y-hG7)NTQZ8g( zpxW+AxhSXz6drGz!4ITPUk&ij*iu#;ti$_5IPRPU|5iexY_ zE&bixJo1INXITQYO_32cM1Z_NEFf-#m;tY18;g-iAE6kQMe*|DO+>G&j^V;DsuuC#nbV_fv~Z@K1{fN zhL&ih7H|V4aaIc;-ptkeju1&cJk^qXN%Af8Ys%w2I8mJd1HD-pd~dA~m9(I4sN<73yatKv?Obqx*Y z38`lu!Xu?egb4mL*xjoeRV3d&x5X^EH(g+M9uauqNu2T`I#g|2F>;?!y5(%dpZuBn z_NT&^+a`+8A^Yxk&y{c<@^CbZm6xwRiYnDnywb-|8~o}j#b1wTig7)Gm~EeNj&-Ip z`^#mlS=F1%SaI)1il^p1{_l1}`A~RZ8qPMvOrnubhiXI3Tm=X#DEqxE$w*bUIwR>g z@0y}z(V0s7zYf*W86l3x+BG-Jf8h1J=@3m^9U2YSp23X#o-MLd%~twQxm&O!m)~o% z92kkZ4^2HlinHoaa2y^>ryit}tjE%Qm;T0y3K>m5kk1r8F(Tw?b7^|QaywH~^R;0;t-893QV$2y}cP{C|0N?oW;F@y@?dswRy*MQusmIOr zk`_;kf1ANOF`X zB8&!Lf?qbgs8Jv1qk=f9`C8x`2h2{HLGj^)E zltJBOLz-PjoUC zSSis7wrhb#^c~Ot_=Y%?6aPQ*mKf6|N25Ts4W0VGPy10xi6#2~b|DcxP?i4c@BhTx zP(}Es?6Fjt6r{xAwm{I2P~-FNxI0TF=FfLK5=4g!IQttSYu6#j=%uFf&P6f-J7SfC9p z@wD|&Q8=Z`@M|qPa)USn`+#%rEzpJJ_uxfbZn$9UG0R0mi7N%x;j?gx8aC?cN9n4D zBfjvFt$QKT88*_C(-pOWSrK_TJbA z+}I`5x7w)yvPoL;OS(ozHpC504(ByEq?{L4giPL>q_tTD!?4CURD@BP5sep_`AKo0 z8Af8oX*N%t{pEMyeL|pg;{n!?-A2he9U6Y1P!#e`s%F(W) zuS}KS7e8@gMsnsNGV^ncYDGdc_x#W~anb*FdL7PzhR7s*aXbU zbSVCLu!ZEIDb{qUfoA|*bXdZls-t9TV(e+w44*ep3eu&H zRYeU{UuGKy0a0_;WI=xZ0jO$9U|NLnQ9x0|!NGxWpCH375?(>3F71VQ2OGPKMmDFu znwD|EsD%?*PV0yy)xCXN;yaJ($yS}A{rXLe6Rdb2+NdQHN~0FP<~-y|v@LdPx((bZ z!}i&JD}t2^JC@YQ!|LJ%nj!KeUw`XHV-9L7~*oL|Jz?P<9#H(|SMtTNE{= zx}*3clz|xT=DBt4c!L1<_DHcG#@~O80#)NI%&L-wPoEtjZt9xm=mQb8>(|5kNT?|^ z5wJd&U1vN&o>3XW`bX86hM*^EAs;da%0MH%pv4GkL=}!?+E%CG4Sqq<6Gh1=*>e#@ z=ObOH{>73*mo$HZ0ILgUTL*aTXeB`aj(LAPpXe*mfq@V%bj`~+9)YO%^T48wCkI%P z{QuJ=P;;NqJ_zp=KjC{lXZMl39*I&@QHSRjMg;ODGIkR6@6wrpn~R4A;&Db?bj8Pa zv0rd}oGRQMF;gB)`vuG}fI3E3naa8?lm|Z=c)WM0h|=2Ah&dp0vcXi_zvPDt#y(k3 z2NTqcmBkW3a2D_MDO{^OM%Q|z0aIAmtK9yJ9(}c%5rNSvj!8Df{T5Kjmg>Qwz^Moc z@qIwv!tulIt7OLR0t8gsIvL4}ePjJGU5<^nUnES1=dPf91;{!3;W?1u6nFXnFq&ii z-m|{TN6d1ta?DPi?>@Z0c2{O>)2rW%zg*$WYv)kPyvpnw9h$~JU~H(E4PdlG(>9je zk^?0=OhJa{gc&|p$fCx<^; zhi&QH=5P^8D}B)W>DJUa57DRIUxRD5;@giHP1t-Ad?%;3*5n?|;5kr-5g3twaEg2j zyhDQ-6Ao~wb|o>@`(yVboHfc0ahb!q6i7_G3+i*Y$oMXoUB8eZbM>@quot@l-RY|z zQU%q`u*X#Rn6172xiZ$Y?;YuHLhY5v78g%&jR1a^bJ)J*$P|9e@#nt!NDP?F*$r(y zXf)RiU`vU`OICq<@lwOz_Uzi^W|GUj*dad6C0iMm>m3?sScqh?;#UGMx1q;ZICBH? z&WX=xsUD`?9-qPxgd3%vUmYbzu7iVtDHBvJ9eHl&vihN1e9WXVIqCF*%QcmSM@X3_ zxe_~b;MFhs*x*O^7^*v9`wrGW^6mdhiShcw4#YnocY4}txpaJG@%Wz)?2%{&3V(Kk z@NE^p3@JX(;cfUg2w1tib`c6_zZGcx94r;HZKgz8sxj^RDr0mW@yp%9=J}<$YA8dR zZ0!Ftq)dUcEoj81+5w#l!b^`2F>c%FFzqbN|2b@M` zKf%5@8@Y;!M0LE^qX%$M=emE{`h`cE5pzhG_W1iNnq)Cibb%x*;>;Yq^t|70XhcAS*{KjKXj5Igjk-%j4DlU<$O2c;PY-9~0UdE6d(fA* ztC`tQThjU4(DJuOMBL#beY$xv0N#!Twz;_lHr}v0{j;E*9<>X%p`o>0VeQVPi6&Hl z-t@J{sNL<=$nHh8uQkUA7Y@lNxIJ;TTykkT5;6JrZfF|p8&oSR*ps=zz)AJL{M2p= z60{chMlDtfUMi4OsqZi(G}MAk9|rFp`M2YdLl+mwk`u7zTu5FQAF_QqlwLEm^ok@{ zAn5vP_BPIQIQ}#TA53sLuPre+BEu0oS=X5{(_sbXYPPN~5RZ{0HOONnb%+5HkqWgq z&p&wZAho^fA!K)cx15&x%8+t(>yq`Qz`lU(o_WgsXge#c{CQGRXD}f#O$g{mDsRBE z-GATYpAGwZ9{_0LZf8O=X=Cl4X{1gF&3YGb^Bf^uxE<7Y>?(uV&GjJW5yEpqLYgHk z0)1zj0(lX9=V)F3pEHhZYM>myMJ+|3yFPb!U3tkH?rq~3DUIG!hsPwVNTc4sWQ`=RQqS+$ z&hm^MWF57WWs7M*CzbxJW4SWM+(iypsW^ozo8)b}vnr*C$9$XA7GaIX{%lA68&pRd zl8@U`c{;)loLfuz;xnT2nWl4KV9wqf;=CRPYv?utW_yk$3si z`hlF&Zf;p2#8F~Q4@c=vy!Tp>GU34Ca5fSuu$fK+QxsWhI_o=&O*U3>*~EKoS5jX5 z_6tAn9W5UlrrOoG@Eg6!Y;cgPy!huyghU?)Ha??7Fdi+|ahbX*3=N5fZP!jgD{4Q; zaoKybw0?;3!NG(0dfBS`SH7y({=o{c^-t+c&qAtD20?-NgVopUZ{d^vd+zd}T5SN~ zD+1h<_o~;JO#DxX;!K2k7!Y$vwVqs?_}LwzI}o9H)(gpfbZz=8kKMoFr?UeCv$%-J-W@`3Meb zs>*PZ3zKzh1tQ&ek+o9@O(h`-ZiDfkNh~g8gMbdKlJ3u@aH?ACpO~KcWA6A6WkQC9 zZiMVl$}8wPXmlBSE2E-68{WColfNXpz~c$D?x3*sx6JNG#$~R%fr9CLPkrmWNC^PeoN)0l z20-T?5fx>$*@bag>>E zo}l2Cl%{8qT;v^K!k{Nr+S}w_e26=?wa>ZlC^V@I-e7!Q+dl10~Y&e zLItN7DWZPwYu}!G-!IyI(b$<(x8>>=W_4?^?8i85s?=InT}^&0p*4I`g(8>|sgl{q zCg|~EIN*5qq0)ZtPw%*a2*0$~5I_z!bTIX4Q~C^U`Q!M6nAXVJ0{dv=6mF=?b+LET zsl-!k`|zLJ+jWJJiCzseDx(7L*5nCcW-NV^D$*M|$gYWK&b>_r9KOZD=Xx$Ev`5Fr z0-K{aJ)6KFtxf+q&_+bUWTFhSQRzr1)-6Gc!q36mNgdV;l%Pw-s?cnlSNT$FX}ubxCkTRc${!7VhPqgcH2p{SkmoKN zWMe|z;Qr5H7DP_ESxk_>ep_kj>V-Yr!~YQQ!e5s|`J0@Mjp`sfs}j^a4_#uhhO=Ro zzOv`q6HI?C!N8H@zD#ym@#VpO^XW*V_Q1r_=JgtB-W7)1@%IDF{Du7ToG3!ER}!o6 zM(PQ^SVhK^`RWycG<5?fA*q^~q3u@#e4(k3^oXC`d(E3c;iSe}m_lb2xU*g2dW!Q9 zL`~iaLqzaeE=$n=;d_`|fq%c>kH5v8Ls`kSb#)a$L4O7Py`w>PrudlZ)LHwYcdJ(39kCh~)i)HTHuwwEtl$j$F2MOcR zhVh9Z{!6Fkx?b_pVzV?7OtHX6M%Jf)Ezlj)4~-cPZ2i2e#z~H{-4y#QUr9=jN~4g6 z<2$|jPhPiB^KpOjzA5@v4S@s=+jN|w)^=5zHPFR0PcN(@0l&T*8#mBuJrFdDqns>h zlH%f!-4A-sdb2pFiWqk(=?imJlwmcKV5}#X0Vr^iu8`Hg2$fJEsMH(KyeYxW8n7=v z3&XcX`7v8@YZ9&8vzS!dQoAFgJ~aw#rQGbyd6sKg=uhTE5xD7T8< zdQ#h=g>ZhJ!j+gSHxA_HpJe>?IPc?0vyjOKGK1YD#>GC7nHx43*M3WM4Yt!2&u0xa zhMH#o!!ND5QPbbc<^m(i!sB&e@@B-*bYdS9(OGse@1|xsnY+Jgr*x>Fc2SkjB646$ zabG!0vm98=_XGHJ!GymV$%XG{3WPU*=wBlbTqaPGfg_6?xPxB;S`TzsIk0d910jO% z-T{Jv0j4IvgEsvQCILv6eywV`gBg`<)S^tM`P}^Kb@@t*!w~s5$c6DOTt)lXa!3+D zCk4XFhvDJu0aO{@CT$l>XXo6722C7gsoMfQQssGtC?J;1A5VZaC%StDL#3B7Wr?(( zbn{rA28bu1iupLBfbINjo;B-TQHvUw89Zad9!MCQHy8 zKq8vEHhdp|=V;ahaM+V4$di_~w#v$k_`3~retqpPqZ$ZdZ%|O8pK`fB#Z&_(}uVnHMCjYv2eXi z-lU%b_?O}+I@k0cRKT6vo)39Y^w9ld^V&zuDWg`lB3@YG?dSKikKw}|i=7H7-a*;{ zVARCT-H`G>T9^r;fM3nl)2Y1_0wX8VPxIa~=3?)H3OJ&E_RiBlf&@9v zKal&u&+Cu&*6;GkA;%GthrXK}!uNoLl8!brSYtr7<77ajBaiauOsq-GhnjSrt@gl3j^2|I0E1UQxC4uv3{7Bne zkt+9y`O;YIA$%q0)UI;b)L3?GPxrz5%{J}2!_hk83m0(4s&m^UX^mp*iuPA5KHplX zg>y!axDbb;b(bRe9oAB%hL&$utEeu2yIAZ4m$x#}f>gHj+ex#_rNOb)1Z4HbIGSB< zdCKTpcRJ#V4^ve)IK-1(T{IpOpREQEYMpWAQ@u)D^2e(>k5e#)JA|ewTEd!@944WQ zx9Znl!Vygl{#?r9Z-SZdzl=(@ZjoRWQZ;{|zEgbJ(o>fg@*IYjZq zkuvu!llyVhVk{<6@6Z>7SXlmhu$n!RWbYp1J%e~|Z(tMHnveY12eC*RNtE%mpfRzv zGmkjc8M<5;lpAwr{ltywrrFweBG&kSq~a|Q{4b;S zK?D-NrtZU7h*$hp4%XSFK0}?&7@uBU-aC^xF|j{)3mzX2+ii4x`yAVG72w3R&O@y| zGD?R%F52oDUjGCmFa;uZOqzs)TiI;d)OHcSSu{?W_U_I1tS8l=^QY}xWH83e$#H&K zee{+MeUrws-cpGFwZLBW+~@r}v0m687A6dTmf$g5RC8_igqQ-YE+I#H%jjf;g`4|f zWGk&b^I|RQM{Y*&uQo4OrsNIZl35pXHg_3N5li)``QuFj?#cO6WU>;Z3n89j)4Y`q zhwa9;Mp`+rbcH#A44%6U7$3gNfBxO^a`O9xK~eDtk{%eDD21si!CI9Rh8$Js3}lbW zDwNgX4q57#Y2Hars-)0tBKfJAftk}(q+owf-V%xW?+AlGe_@%N!w^(o0>2VFm&uqa z-g6?lNDa1R?OvXV+_seSRwI|+BoRDzmsv5{30hQ>cTPf=8xLAm_!q=KwgB(b+wtPk z=4%kOMctyUZ}hFpOf|~GO?QGRTjq}1tG|34ZrH}Z_gf@yjp7&Ea_u<1WI8fcij|aa zj9`cd)6@~uu4ftE{BAenZ91A&J>vtciK~C>rL?I>T3I>dq?fF3Z}nszSr=KnC5@uz zBawK=^^}Ej9H;yAo47hD=yOPJRPi?~N2~(fjN_j)Us1XCx8(0ns#TZ+fc|*+DjE8x zo%MMbhvCL8S3m7s;c&t3{Kin1&CTI2G4OR5r^w4U8lwh$_d8k{7LR74qit4rc61G->v4ytj2eMQzKi$b=$#JT+J@J67s6wg}d1J6us{zN#f3>U#r}Og6S5yL+K<;kjo+mk408lwJ%=2EZp9h@ptg) zKaiCAZr$|Uwxulrt8K0k7{o~Q7>d^URjM(DjGl4O;vb=ehRsq>G+BN4V}xKGufRys zeey^qqh6G zP?}bD&S%Uq&;kU4u?{yF)YulH`DO{sZ`1VqmLs-*)Dl*P+a5f{*seq^ z5g;nJbZ~GmIR4v_0-kziP9KI0y^Q+ugvAI1CykBP_V)Jw_rAwA2{-7@mB8GN+JPCg z$$TjdH&GPZ@aH~a?|Pa1j`6^AZ)j);7+Z=U=PDe!^{1o@b)MVWE{j^?9ti%um;9>u z17hp`T%6tge-Ft`A`jPFVcDY6W7rgIS#{d8T diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi index 7a0211e603fc8c3f0ccafefb3c381e39cc899fbc..798d4ae73dcbae531076dc3141e38d093a9c5963 100644 GIT binary patch delta 477 zcmbQpx`uUv9kaf^{zN+o4LdtKYinz5ZEbUNb3;Qz0RaIcBO?zF4_#ed6B83ZKfeP9 z4s3txcWYu}cYU{~i(^Pe{r|sEdDXJLJR6SOKDF`} z%fnlJ%7vD5|4A|=bjeF5eUUjA#MB~?(#p7$XI1?~5rv+|8k#=gJMJbssLd&wmw3*y z@FVMVr+U4*Riy_?bK`rX6Ha|jJ=Ynnl%Sccc_Qy&tbLyJWJmRSgUkK4%p4*0I)5au z{-}5tQoq`V(WAtrb1(aZiLa8Mv2MFkcI)7gFpU`nf^nZFIg35oawNRFS9}4NXVtt% zjy>|?fvfI+T=?<%=gE%iBVrbR+aq+{F77YYdH{9|<9bN_*r z=U3laWGazc|f%E^Z|0p|8Z^{UK^HmmXT6g}T5V635XJxqzK;Y@> K=d#Wzp$Pyc!sYh> delta 449 zcmZ3(I+1mP-9$$TZ6Gi=H#ami6c7+FGBVQF*Z1)7(ACv7F)^{Wwzjjg^YimNaNxkI zz-x9B8@uZZJY5_^G8*5`I9PPZfX78wM)-iAjCm`=|Njd^+nn{MUJL#j@}(#yvM4Ft zZMDEZNtcvM-#J2Uk2H%ld=Y39SuAt#b$=AwlJ<`-&%OIRC!97pYvLdLbE#aG?4?ax z`qgqb_|4~}W_Dap(+&T4Y>z$ai{&03x@K2C?6?N-a zzCoAdyOm4Yi%#%gdw)t%*fu(^i1A#&ls^&o^=D1{?_XzPmsHxHVSC}?`ZpGRk1fv4 zZir$^j&?R&=E%F@XS>Mfr#{OAqw_!U-?^dhEw$=`^z6UP=CwaV9k~pCwV&#(y_a`g zN6g?CyVOtKZDA_E6Ta2+$283Ty}an+ntzGw7wisMT(2PX_I7#4S^Ed~?!A+jIbJAp zyi(YqIscv1m7n%s_yubJ@&9FJIrD#F{R@o+=l(B5ryS<~PyT-))M+M|a-8?S{73sb lu2rrZpO=FSd#=8Z;fuG(+XLQiI~jn0!_(EzWt~$(698j0)ZhRB From c60738b3307b3b2baf516d0d549520258a846333 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 12 Jun 2018 19:34:31 -0400 Subject: [PATCH 23/29] Enforce minimum age limit across all characters Synths could be any age. --- .../modules/client/preference_setup/preference_setup_vr.dm | 7 +++++++ vorestation.dme | 1 + 2 files changed, 8 insertions(+) create mode 100644 code/modules/client/preference_setup/preference_setup_vr.dm diff --git a/code/modules/client/preference_setup/preference_setup_vr.dm b/code/modules/client/preference_setup/preference_setup_vr.dm new file mode 100644 index 00000000000..67c1d1792a8 --- /dev/null +++ b/code/modules/client/preference_setup/preference_setup_vr.dm @@ -0,0 +1,7 @@ +//Minimum limit is 18 +/datum/category_item/player_setup_item/get_min_age() + var/min_age = 18 + var/datum/species/S = all_species[pref.species ? pref.species : "Human"] + if(!is_FBP() && S.min_age > 18) + min_age = S.min_age + return min_age diff --git a/vorestation.dme b/vorestation.dme index 01841717d00..d4935f1506c 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1452,6 +1452,7 @@ #include "code\modules\client\ui_style.dm" #include "code\modules\client\preference_setup\_defines.dm" #include "code\modules\client\preference_setup\preference_setup.dm" +#include "code\modules\client\preference_setup\preference_setup_vr.dm" #include "code\modules\client\preference_setup\antagonism\01_basic.dm" #include "code\modules\client\preference_setup\antagonism\02_candidacy.dm" #include "code\modules\client\preference_setup\general\01_basic.dm" From 0479b08b824c9f055d2931088640c17d675f0699 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 13 Jun 2018 21:47:40 -0500 Subject: [PATCH 24/29] Merge pull request #5351 from MagmaRam/coffee Fixes "glass of cup of coffee" --- .../Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 26481d8141a..56c93f56f1f 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -909,9 +909,9 @@ cup_icon_state = "cup_coffee" cup_name = "cup of coffee" - cup_desc = "Don't drop it, or you'll send scalding liquid and porcelain shards everywhere." + cup_desc = "Don't drop it, or you'll send scalding liquid and ceramic shards everywhere." - glass_name = "cup of coffee" + glass_name = "coffee" glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." From 536c3e33942a42c1532cac21310dbca11170b952 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 13 Jun 2018 21:47:29 -0500 Subject: [PATCH 26/29] Merge pull request #5352 from MagmaRam/balm Adds a "cancel" option to the Drop-Bomb admin verb. --- code/modules/admin/admin_verbs.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 81d936dce93..fc3fba6c7cb 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -659,11 +659,13 @@ var/list/admin_verbs_event_manager = list( set desc = "Cause an explosion of varying strength at your location." var/turf/epicenter = mob.loc - var/list/choices = list("Small Bomb", "Medium Bomb", "Big Bomb", "Custom Bomb") + var/list/choices = list("Small Bomb", "Medium Bomb", "Big Bomb", "Custom Bomb", "Cancel") var/choice = input("What size explosion would you like to produce?") in choices switch(choice) if(null) return 0 + if("Cancel") + return 0 if("Small Bomb") explosion(epicenter, 1, 2, 3, 3) if("Medium Bomb") From ac94d82ba13c13824d1bf6a87189e02ba7404421 Mon Sep 17 00:00:00 2001 From: Verkister Date: Fri, 15 Jun 2018 10:24:39 +0300 Subject: [PATCH 28/29] Couple VS edit fixes. -Fixes borg sleepers nuking passengers on cryo despawn. -Fixes mimics dropping their guts. --- code/game/machinery/cryopod.dm | 2 ++ code/modules/mob/living/simple_animal/aliens/mimic.dm | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index d13dcf3e80b..e5ebbc7d17f 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -362,6 +362,8 @@ qdel(R.mmi) for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc + for(var/mob/M in I) //VOREStation edit + despawn_occupant(M) for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags O.forceMove(R) qdel(I) diff --git a/code/modules/mob/living/simple_animal/aliens/mimic.dm b/code/modules/mob/living/simple_animal/aliens/mimic.dm index fff75ecbe7e..17fc70008db 100644 --- a/code/modules/mob/living/simple_animal/aliens/mimic.dm +++ b/code/modules/mob/living/simple_animal/aliens/mimic.dm @@ -114,6 +114,8 @@ var/obj/structure/closet/crate/C = new(get_turf(src)) // Put loot in crate for(var/obj/O in src) + if(isbelly(O)) //VOREStation edit + continue O.forceMove(C) ..() @@ -146,6 +148,8 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/death() for(var/atom/movable/M in src) + if(isbelly(M)) //VOREStation edit + continue M.forceMove(get_turf(src)) ..() From 02baa415f630a111c8cb3d2e6d944d814a093547 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 Jun 2018 08:55:20 -0400 Subject: [PATCH 29/29] Remove Veymed portion of change for weakness --- code/modules/organs/robolimbs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 11d2d51733c..5a55b1bcd5a 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -217,8 +217,8 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ skin_tone = 1 blood_color = "#CCCCCC" speech_bubble_appearance = "normal" - robo_brute_mod = 1.1 - robo_burn_mod = 1.1 + //robo_brute_mod = 1.1 //VOREStation Edit + //robo_burn_mod = 1.1 //VOREStation Edit /datum/robolimb/wardtakahashi company = "Ward-Takahashi"