From 246aff600e15fe6b0a4ec23e5e14d870d6112bb8 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Mon, 29 Jun 2015 21:15:22 -0400 Subject: [PATCH 01/14] Lights Use Power --- code/modules/power/lighting.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 3075773e553..96f943f05f2 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -256,7 +256,7 @@ use_power = 1 set_light(0) - active_power_usage = ((light_range + light_power) * 10) + active_power_usage = brightness_range * 10 if(on != on_gs) on_gs = on @@ -564,11 +564,11 @@ #define LIGHTING_POWER_FACTOR 20 //20W per unit luminosity -/* + /obj/machinery/light/process()//TODO: remove/add this from machines to save on processing as needed ~Carn PRIORITY if(on) - use_power(light_range * LIGHTING_POWER_FACTOR, LIGHT) -*/ + use_power(brightness_range * LIGHTING_POWER_FACTOR, LIGHT) + // called when area power state changes /obj/machinery/light/power_change() From 4d04bb7750a08a3c389d50a6822bb72806c7c5c4 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 30 Jun 2015 01:06:09 -0400 Subject: [PATCH 02/14] Guts Moronic Phoron --- code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm | 8 ++++---- .../game/machinery/embedded_controller/docking_program.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 2 +- code/game/supplyshuttle.dm | 2 +- code/modules/flufftext/Dreaming.dm | 2 +- code/modules/mining/drilling/distribution.dm | 8 ++++---- code/modules/mining/drilling/drill.dm | 2 +- code/modules/mining/drilling/scanner.dm | 2 +- code/modules/mining/machine_processing.dm | 2 +- code/modules/paperwork/paper.dm | 8 ++++---- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm b/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm index b48c2f40333..edb59c9cc7c 100644 --- a/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm +++ b/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm @@ -8,13 +8,13 @@ #define ATM_O2 3 #define ATM_N2 4 #define ATM_CO2 5 -#define ATM_P 6 //Phoron +#define ATM_P 6 //Plasma #define ATM_N2O 7 //-------------------------------------------- // Omni port datum // -// Used by omni devices to manage connections +// Used by omni devices to manage connections // to other atmospheric objects. //-------------------------------------------- /datum/omni_port @@ -70,10 +70,10 @@ string = "East" if(WEST) string = "West" - + if(!capitalize && string) string = lowertext(string) - + return string //returns a direction flag based on the string passed to it diff --git a/code/game/machinery/embedded_controller/docking_program.dm b/code/game/machinery/embedded_controller/docking_program.dm index dc316e525e0..e4e35ebe6b9 100644 --- a/code/game/machinery/embedded_controller/docking_program.dm +++ b/code/game/machinery/embedded_controller/docking_program.dm @@ -51,7 +51,7 @@ *** Override, what is it? *** The purpose of enabling the override is to prevent the docking program from automatically doing things with the docking port when docking or undocking. - Maybe the shuttle is full of plamsa/phoron for some reason, and you don't want the door to automatically open, or the airlock to cycle. + Maybe the shuttle is full of plamsa for some reason, and you don't want the door to automatically open, or the airlock to cycle. This means that the prepare_for_docking/undocking and finish_docking/undocking procs don't get called. The docking controller will still check the state of the docking port, and thus prevent the shuttle from launching unless they force the launch (handling forced diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 4017d1f3be1..a4a785baa00 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -585,7 +585,7 @@ var/active = 0 // PLEASE HOLD. var/safeties = 1 // The cycler won't start with a living thing inside it unless safeties are off. var/irradiating = 0 // If this is > 0, the cycler is decontaminating whatever is inside it. - var/radiation_level = 2 // 1 is removing germs, 2 is removing blood, 3 is removing phoron. + var/radiation_level = 2 // 1 is removing germs, 2 is removing blood, 3 is removing plasma. var/model_text = "" // Some flavour text for the topic box. var/locked = 1 // If locked, nothing can be taken from or added to the cycler. diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index dd371817dca..6aefe7468db 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -222,7 +222,7 @@ var/list/mechtoys = list( points += points_per_slip find_slip = 0 - // Sell phoron + // Sell plasma else if(istype(A, /obj/item/stack/sheet/mineral/plasma)) var/obj/item/stack/sheet/mineral/plasma/P = A plasma_count += P.amount diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 5e204987af6..420b110080d 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -3,7 +3,7 @@ var/list/dreams = list( "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", - "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", + "a hat","the Luna","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights", "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", "the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer", diff --git a/code/modules/mining/drilling/distribution.dm b/code/modules/mining/drilling/distribution.dm index 629d9ad234d..707973fd386 100644 --- a/code/modules/mining/drilling/distribution.dm +++ b/code/modules/mining/drilling/distribution.dm @@ -37,7 +37,7 @@ Rare minerals: diamond Deep minerals: - phoron + plasma xerxium (adamantine) fulgurium (mythril) */ @@ -178,7 +178,7 @@ Deep minerals: target_turf.resources["silver"] = rand(RESOURCE_LOW_MIN,RESOURCE_LOW_MAX) target_turf.resources["uranium"] = rand(RESOURCE_LOW_MIN,RESOURCE_LOW_MAX) target_turf.resources["diamond"] = 0 - target_turf.resources["phoron"] = 0 + target_turf.resources["plasma"] = 0 target_turf.resources["osmium"] = 0 target_turf.resources["hydrogen"] = 0 if(100 to 124) @@ -187,7 +187,7 @@ Deep minerals: target_turf.resources["silver"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) target_turf.resources["uranium"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) target_turf.resources["diamond"] = 0 - target_turf.resources["phoron"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) + target_turf.resources["plasma"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) target_turf.resources["osmium"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) target_turf.resources["hydrogen"] = 0 if(125 to 255) @@ -196,7 +196,7 @@ Deep minerals: target_turf.resources["silver"] = 0 target_turf.resources["uranium"] = rand(RESOURCE_LOW_MIN,RESOURCE_LOW_MAX) target_turf.resources["diamond"] = rand(RESOURCE_LOW_MIN,RESOURCE_LOW_MAX) - target_turf.resources["phoron"] = rand(RESOURCE_HIGH_MIN,RESOURCE_HIGH_MAX) + target_turf.resources["plasma"] = rand(RESOURCE_HIGH_MIN,RESOURCE_HIGH_MAX) target_turf.resources["osmium"] = rand(RESOURCE_HIGH_MIN,RESOURCE_HIGH_MAX) target_turf.resources["hydrogen"] = rand(RESOURCE_MID_MIN,RESOURCE_MID_MAX) diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 7732e622cbf..09888cdb3fa 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -22,7 +22,7 @@ "gold" = /obj/item/weapon/ore/gold, "silver" = /obj/item/weapon/ore/silver, "diamond" = /obj/item/weapon/ore/diamond, - "phoron" = /obj/item/weapon/ore/plasma, + "plasma" = /obj/item/weapon/ore/plasma, "osmium" = /obj/item/weapon/ore/osmium, "hydrogen" = /obj/item/weapon/ore/hydrogen, "silicates" = /obj/item/weapon/ore/glass, diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index 89c77c97502..56cff6e71e8 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -36,7 +36,7 @@ if("silicates" || "carbonaceous rock" || "iron") ore_type = "surface minerals" if("gold" || "silver" || "diamond") ore_type = "precious metals" if("uranium") ore_type = "nuclear fuel" - if("phoron" || "osmium" || "hydrogen") ore_type = "exotic matter" + if("plasma" || "osmium" || "hydrogen") ore_type = "exotic matter" if(ore_type) metals[ore_type] += T.resources[metal] diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index dccf5715bf9..6f37a1279b3 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -99,7 +99,7 @@ /obj/machinery/mineral/processing_unit - name = "material processor" //This isn't actually a goddamn furnace, we're in space and it's processing platinum and flammable phoron... + name = "material processor" //This isn't actually a goddamn furnace, we're in space and it's processing platinum and flammable plasma... icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "furnace" density = 1 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 7973f3b6277..52d82c47d0a 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -470,7 +470,7 @@ /obj/item/weapon/paper/Toxin name = "Chemical Information" - info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Phoron:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter phoron after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Phoron.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep phoron.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSoporific T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" + info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep plasma.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSoporific T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" /obj/item/weapon/paper/courtroom name = "A Crash Course in Legal SOP on SS13" @@ -491,7 +491,7 @@ /obj/item/weapon/paper/jobs name = "Job Information" - info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquieries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Phoron Technicians as phoron is the material they routinly handle.
\n1. Research phoron
\n2. Make sure all phoron is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Moniter usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" + info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquieries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Plasma Technicians as plasma is the material they routinly handle.
\n1. Research plasma
\n2. Make sure all plasma is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Moniter usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" /obj/item/weapon/paper/photograph name = "photo" @@ -521,7 +521,7 @@ /obj/item/weapon/paper/Toxin name = "Chemical Information" - info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Phoron:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter phoron after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Phoron.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep phoron.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSoporific T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" + info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep plasma.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSoporific T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" /obj/item/weapon/paper/courtroom name = "A Crash Course in Legal SOP on SS13" @@ -542,7 +542,7 @@ /obj/item/weapon/paper/jobs name = "Job Information" - info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquieries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Phoron Technicians as phoron is the material they routinly handle.
\n1. Research phoron
\n2. Make sure all phoron is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Moniter usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" + info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquieries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Plasma Technicians as plasma is the material they routinly handle.
\n1. Research plasma
\n2. Make sure all plasma is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Moniter usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" /obj/item/weapon/paper/photograph name = "photo" From da25b9af32f8249e3348fcdb34b01c7229bcd2e4 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 30 Jun 2015 01:12:24 -0400 Subject: [PATCH 03/14] go the hell away, no one liked you anyway --- icons/effects/plasma.dmi | Bin 1024 -> 0 bytes icons/effects/tile_effects.dmi | Bin 5220 -> 2100 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/effects/plasma.dmi diff --git a/icons/effects/plasma.dmi b/icons/effects/plasma.dmi deleted file mode 100644 index 5f9137267d49f93c11382fed459e0674603686a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 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 ebt0!}I{XKW>XqgKw-HGI0000!wUBR literal 5220 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 ebZ)oXZ~hNs@q;+T1}RGb0000 Date: Tue, 30 Jun 2015 21:31:02 +0200 Subject: [PATCH 04/14] Revenant Role Candidacy Fixes https://github.com/ParadiseSS13/Paradise/issues/1395 maybe --- code/modules/client/preferences.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6f0f19b0b31..6885083a3b3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -18,7 +18,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "vampire" = IS_MODE_COMPILED("vampire"), // 2048 / 12 "mutineer" = IS_MODE_COMPILED("mutiny"), // 4096 / 13 "blob" = IS_MODE_COMPILED("blob"), // 8192 / 14 - "shadowling" = IS_MODE_COMPILED("shadowling") //16384 / 15 + "shadowling" = IS_MODE_COMPILED("shadowling"), //16384 / 15 + "Revenant" = IS_MODE_COMPILED("Revenant"), //32768 / 16 ) var/global/list/special_role_times = list( //minimum age (in days) for accounts to play these roles num2text(BE_PAI) = 0, @@ -35,7 +36,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts num2text(BE_ALIEN) = 21, num2text(BE_NINJA) = 21, num2text(BE_MUTINEER) = 21, - num2text(BE_MALF) = 30 + num2text(BE_MALF) = 30, + num2text(BE_REVENANT) = 30 ) /proc/player_old_enough_antag(client/C, role) From db7d636c29f23cc025cc887cea973939edd40e44 Mon Sep 17 00:00:00 2001 From: Robertha89 Date: Tue, 30 Jun 2015 21:35:10 +0200 Subject: [PATCH 05/14] Fixes derp There is to Revenant gamemode. --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6885083a3b3..ecc8ed6426b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -19,7 +19,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "mutineer" = IS_MODE_COMPILED("mutiny"), // 4096 / 13 "blob" = IS_MODE_COMPILED("blob"), // 8192 / 14 "shadowling" = IS_MODE_COMPILED("shadowling"), //16384 / 15 - "Revenant" = IS_MODE_COMPILED("Revenant"), //32768 / 16 + "Revenant" = 1 //32768 / 16 ) var/global/list/special_role_times = list( //minimum age (in days) for accounts to play these roles num2text(BE_PAI) = 0, From 62ef1cb7e2d0c0a0f17132b4b4278392e7c2d8f9 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 30 Jun 2015 21:07:08 -0400 Subject: [PATCH 06/14] TG Supermatter Port --- code/datums/supplypacks.dm | 10 +- code/game/smoothwall.dm | 4 +- .../mob/living/carbon/human/species/apollo.dm | 4 +- code/modules/power/singularity/singularity.dm | 2 +- .../power/supermatter}/sm_crystals.dm | 0 .../power/supermatter}/sm_shard.dm | 0 code/modules/power/supermatter/supermatter.dm | 299 +++++++++++ .../power/supermatter/supermatter_crate.dm | 7 + code/modules/{ => power}/supermatter/wall.dm | 0 .../xenoarchaeology/artifact/artifact.dm | 3 +- .../machinery/artifact_analyser.dm | 5 +- code/modules/supermatter/supermatter.dm | 473 ------------------ icons/obj/engine.dmi | Bin 71246 -> 47438 bytes icons/obj/supermatter.dmi | Bin 1192 -> 27379 bytes paradise.dme | 6 +- 15 files changed, 316 insertions(+), 497 deletions(-) rename code/{game/objects/effects => modules/power/supermatter}/sm_crystals.dm (100%) rename code/{game/objects/items/weapons => modules/power/supermatter}/sm_shard.dm (100%) create mode 100644 code/modules/power/supermatter/supermatter.dm create mode 100644 code/modules/power/supermatter/supermatter_crate.dm rename code/modules/{ => power}/supermatter/wall.dm (100%) delete mode 100644 code/modules/supermatter/supermatter.dm diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index e0649723e01..b4920a97d79 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -526,14 +526,6 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine cost = 20 containername = "Inflatable Barrier Crate" -/datum/supply_packs/engineering/supermatter - name = "Supermatter Crystal Crate" - contains = list(/obj/machinery/power/supermatter) - cost = 50 //Yes that's a fucking lot. - containername = "Supermatter Shard Crate" - containertype = /obj/structure/closet/crate/secure/large/reinforced - access = access_ce - /datum/supply_packs/engineering/teg name = "Thermo-Electric Generator" contains = list( @@ -592,7 +584,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/weapon/storage/firstaid/adv) cost = 10 containername = "advaced first aid kits crate" - + /datum/supply_packs/medical/firstaibrute name = "Brute Trauma Treatment Kits Crate" contains = list(/obj/item/weapon/storage/firstaid/brute, diff --git a/code/game/smoothwall.dm b/code/game/smoothwall.dm index 75cb92b774b..3c55255eb78 100644 --- a/code/game/smoothwall.dm +++ b/code/game/smoothwall.dm @@ -86,12 +86,12 @@ shroom.icon_state = "glowshroomf" shroom.pixel_x = 0 shroom.pixel_y = 0 - for(var/obj/effect/supermatter_crystal/crystal in get_step(src,direction)) +/* for(var/obj/effect/supermatter_crystal/crystal in get_step(src,direction)) if(!crystal.floor) //crystals drop to the floor crystal.floor = 1 crystal.icon_state = "supermatter_crystalf" crystal.pixel_x = 0 - crystal.pixel_y = 0 + crystal.pixel_y = 0 */ return ..() // DE-HACK diff --git a/code/modules/mob/living/carbon/human/species/apollo.dm b/code/modules/mob/living/carbon/human/species/apollo.dm index 3acc2e08a90..1528307d566 100644 --- a/code/modules/mob/living/carbon/human/species/apollo.dm +++ b/code/modules/mob/living/carbon/human/species/apollo.dm @@ -108,6 +108,6 @@ /datum/species/nucleation/handle_death(var/mob/living/carbon/human/H) var/turf/T = get_turf(H) H.visible_message("\red[H]'s body explodes, leaving behind a pile of microscopic crystals!") - supermatter_delamination(T, 2, 0, 0) // Create a small supermatter burst upon death - new /obj/item/weapon/shard/supermatter( T ) + explosion(T, 0, 0, 2, 2) // Create a small explosion burst upon death +// new /obj/item/weapon/shard/supermatter( T ) del(H) \ No newline at end of file diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index efc75eae0c6..a1d86e5f6dd 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -244,7 +244,7 @@ /obj/singularity/proc/consume(var/atom/A) var/gain = A.singularity_act(current_size) src.energy += gain - if(istype(A, /obj/machinery/power/supermatter) && !consumedSupermatter) + if(istype(A, /obj/machinery/power/supermatter_shard) && !consumedSupermatter) desc = "[initial(desc)] It glows fiercely with inner fire." name = "supermatter-charged [initial(name)]" consumedSupermatter = 1 diff --git a/code/game/objects/effects/sm_crystals.dm b/code/modules/power/supermatter/sm_crystals.dm similarity index 100% rename from code/game/objects/effects/sm_crystals.dm rename to code/modules/power/supermatter/sm_crystals.dm diff --git a/code/game/objects/items/weapons/sm_shard.dm b/code/modules/power/supermatter/sm_shard.dm similarity index 100% rename from code/game/objects/items/weapons/sm_shard.dm rename to code/modules/power/supermatter/sm_shard.dm diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm new file mode 100644 index 00000000000..482395a852d --- /dev/null +++ b/code/modules/power/supermatter/supermatter.dm @@ -0,0 +1,299 @@ +//Ported from /vg/station13, which was in turn forked from baystation12; +//Please do not bother them with bugs from this port, however, as it has been modified quite a bit. +//Modifications include removing the world-ending full supermatter variation, and leaving only the shard. + +#define NITROGEN_RETARDATION_FACTOR 2 //Higher == N2 slows reaction more +#define THERMAL_RELEASE_MODIFIER 5 //Higher == less heat released during reaction +#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction +#define OXYGEN_RELEASE_MODIFIER 325 //Higher == less oxygen released at high temperature/power +#define REACTION_POWER_MODIFIER 0.55 //Higher == more overall power + + +//These would be what you would get at point blank, decreases with distance +#define DETONATION_RADS 200 +#define DETONATION_HALLUCINATION 600 + + +#define WARNING_DELAY 30 //seconds between warnings. + +/obj/machinery/power/supermatter_shard + name = "supermatter shard" + desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. You get headaches just from looking at it." + icon = 'icons/obj/supermatter.dmi' + icon_state = "darkmatter_shard" + density = 1 + anchored = 0 + light_range = 4 + + + var/gasefficency = 0.125 + + var/base_icon_state = "darkmatter_shard" + + var/damage = 0 + var/damage_archived = 0 + var/safe_alert = "Crystalline hyperstructure returning to safe operating levels." + var/warning_point = 50 + var/warning_alert = "Danger! Crystal hyperstructure instability!" + var/emergency_point = 500 + var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT." + var/explosion_point = 900 + + var/emergency_issued = 0 + + var/explosion_power = 8 + + var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning + var/power = 0 + + var/oxygen = 0 // Moving this up here for easier debugging. + + //Temporary values so that we can optimize this + //How much the bullets damage should be multiplied by when it is added to the internal variables + var/config_bullet_energy = 2 + //How much of the power is left after processing is finished? +// var/config_power_reduction_per_tick = 0.5 + //How much hallucination should it produce per unit of power? + var/config_hallucination_power = 0.1 + + var/obj/item/device/radio/radio + + //for logging + var/has_been_powered = 0 + var/has_reached_emergency = 0 + +/obj/machinery/power/supermatter_shard/New() + . = ..() + radio = new(src) + radio.listening = 0 + investigate_log("has been created.", "supermatter") + + +/obj/machinery/power/supermatter_shard/Destroy() + investigate_log("has been destroyed.", "supermatter") + qdel(radio) + . = ..() + +/obj/machinery/power/supermatter_shard/proc/explode() + investigate_log("has exploded.", "supermatter") + explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) + qdel(src) + return + +/obj/machinery/power/supermatter_shard/process() + var/turf/L = loc + + if(isnull(L)) // We have a null turf...something is wrong, stop processing this entity. + return PROCESS_KILL + + if(!istype(L)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. + return //Yeah just stop. + + if(istype(L, /turf/space)) // Stop processing this stuff if we've been ejected. + return + + if(damage > warning_point) // while the core is still damaged and it's still worth noting its status + if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY) + var/stability = num2text(round((damage / explosion_point) * 100)) + + if(damage > emergency_point) + radio.autosay("[emergency_alert] Instability: [stability]%", src) + lastwarning = world.timeofday + if(!has_reached_emergency) + investigate_log("has reached the emergency point for the first time.", "supermatter") + message_admins("[src] has reached the emergency point (JMP).") + has_reached_emergency = 1 + + else if(damage >= damage_archived) // The damage is still going up + radio.autosay("[warning_alert] Instability: [stability]%", src) + lastwarning = world.timeofday - 150 + + else // Phew, we're safe + radio.autosay("[safe_alert]", src) + lastwarning = world.timeofday + + if(damage > explosion_point) + for(var/mob/living/mob in living_mob_list) + if(istype(mob, /mob/living/carbon/human)) + //Hilariously enough, running into a closet should make you get hit the hardest. + var/mob/living/carbon/human/H = mob + H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) + var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) + mob.apply_effect(rads, IRRADIATE) + + explode() + + //Ok, get the air from the turf + var/datum/gas_mixture/env = L.return_air() + + //Remove gas from surrounding area + var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles()) + + if(!removed || !removed.total_moles()) + damage += max((power-1600)/10, 0) + power = min(power, 1600) + return 1 + + damage_archived = damage + damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) + //Ok, 100% oxygen atmosphere = best reaction + //Maxes out at 100% oxygen pressure + oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) + + var/temp_factor = 50 + + if(oxygen > 0.8) + // with a perfect gas mix, make the power less based on heat + icon_state = "[base_icon_state]_glow" + else + // in normal mode, base the produced energy around the heat + temp_factor = 30 + icon_state = base_icon_state + + power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload + + //We've generated power, now let's transfer it to the collectors for storing/usage + transfer_energy() + + var/device_energy = power * REACTION_POWER_MODIFIER + + //To figure out how much temperature to add each tick, consider that at one atmosphere's worth + //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature + //that the device energy is around 2140. At that stage, we don't want too much heat to be put out + //Since the core is effectively "cold" + + //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock + //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall. + removed.temperature += (device_energy / THERMAL_RELEASE_MODIFIER) + + removed.temperature = max(0, min(removed.temperature, 2500)) + + //Calculate how much gas to release + removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0) + + removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0) + + env.merge(removed) + + for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them. + if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) + l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) ) + + for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) + var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) ) + l.apply_effect(rads, IRRADIATE) + + power -= (power/500)**3 + + return 1 + +/obj/machinery/power/supermatter_shard + +/obj/machinery/power/supermatter_shard/bullet_act(var/obj/item/projectile/Proj) + var/turf/L = loc + if(!istype(L)) // We don't run process() when we are in space + return 0 // This stops people from being able to really power up the supermatter + // Then bring it inside to explode instantly upon landing on a valid turf. + + + if(Proj.flag != "bullet") + power += Proj.damage * config_bullet_energy + if(!has_been_powered) + investigate_log("has been powered for the first time.", "supermatter") + message_admins("[src] has been powered for the first time (JMP).") + has_been_powered = 1 + else + damage += Proj.damage * config_bullet_energy + return 0 + +/obj/machinery/power/supermatter_shard/singularity_act() + var/gain = 100 + investigate_log("Supermatter shard consumed by singularity.","singulo") + message_admins("Singularity has consumed a supermatter shard and can now become stage six.") + visible_message("[src] is consumed by the singularity!") + for(var/mob/M in mob_list) + M << 'sound/effects/supermatter.ogg' //everyone goan know bout this + M << "A horrible screeching fills your ears, and a wave of dread washes over you..." + qdel(src) + return(gain) + +/obj/machinery/power/supermatter_shard/attack_robot(mob/user as mob) + if(Adjacent(user)) + return attack_hand(user) + else + user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." + return + +/obj/machinery/power/supermatter_shard/attack_ai(mob/user as mob) + user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." + +/obj/machinery/power/supermatter_shard/attack_hand(mob/living/user as mob) + if(!istype(user)) + return + user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... \his body starts to glow and bursts into flames before flashing into ash.",\ + "You reach out and touch \the [src]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"",\ + "You hear an unearthly noise as a wave of heat washes over you.") + + playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) + + Consume(user) + +/obj/machinery/power/supermatter_shard/proc/transfer_energy() + for(var/obj/machinery/power/rad_collector/R in rad_collectors) + if(get_dist(R, src) <= 15) // Better than using orange() every process + R.receive_pulse(power/10) + return + +/obj/machinery/power/supermatter_shard/attackby(obj/item/W as obj, mob/living/user as mob, params) + if(!istype(W) || (W.flags & ABSTRACT) || !istype(user)) + return + if(user.drop_item(W)) + Consume(W) + user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\ + "You touch \the [src] with \the [W], and everything suddenly goes silent.\"\n\The [W] flashes into dust as you flinch away from \the [src].",\ + "Everything suddenly goes silent.") + + playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) + + user.apply_effect(150, IRRADIATE) + + +/obj/machinery/power/supermatter_shard/Bumped(atom/AM as mob|obj) + if(istype(AM, /mob/living)) + AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ + "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ + "You hear an unearthly noise as a wave of heat washes over you.") + else if(isobj(AM) && !istype(AM, /obj/effect)) + AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.",\ + "You hear a loud crack as you are washed with a wave of heat.") + else + return + + playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) + + Consume(AM) + + +/obj/machinery/power/supermatter_shard/proc/Consume(atom/movable/AM) + if(istype(AM, /mob/living)) + var/mob/living/user = AM + user.dust() + power += 200 + message_admins("[src] has consumed [key_name_admin(user)]? (FLW) (JMP).") + investigate_log("has consumed [key_name(user)].", "supermatter") + else if(isobj(AM) && !istype(AM, /obj/effect)) + investigate_log("has consumed [AM].", "supermatter") + qdel(AM) + + power += 200 + + //Some poor sod got eaten, go ahead and irradiate people nearby. + for(var/mob/living/L in range(10)) + var/rads = 500 * sqrt( 1 / (get_dist(L, src) + 1) ) + L.apply_effect(rads, IRRADIATE) + investigate_log("has irradiated [L] after consuming [AM].", "supermatter") + if(L in view()) + L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\ + "The unearthly ringing subsides and you notice you have new radiation burns.", 2) + else + L.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) diff --git a/code/modules/power/supermatter/supermatter_crate.dm b/code/modules/power/supermatter/supermatter_crate.dm new file mode 100644 index 00000000000..9158a3e27b9 --- /dev/null +++ b/code/modules/power/supermatter/supermatter_crate.dm @@ -0,0 +1,7 @@ +/datum/supply_packs/engineering/engine/supermatter_shard + name = "Supermatter Shard Crate" + contains = list(/obj/machinery/power/supermatter_shard) + cost = 100 //So cargo thinks twice before killing themselves with it + containertype = /obj/structure/closet/crate/secure + containername = "supermatter shard crate" + access = access_ce diff --git a/code/modules/supermatter/wall.dm b/code/modules/power/supermatter/wall.dm similarity index 100% rename from code/modules/supermatter/wall.dm rename to code/modules/power/supermatter/wall.dm diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index 2c3946b0428..8730b04e063 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -13,10 +13,9 @@ artifact_id = "[pick("kappa","sigma","antaeres","beta","omicron","iota","epsilon","omega","gamma","delta","tau","alpha")]-[rand(100,999)]" artifact_find_type = pick(\ - 5;/obj/machinery/power/supermatter,\ 5;/obj/structure/constructshell,\ 5;/obj/machinery/wish_granter,\ - 25;/obj/machinery/power/supermatter/shard,\ + 25;/obj/machinery/power/supermatter_shard,\ 50;/obj/structure/cult/pylon,\ 100;/obj/machinery/auto_cloner,\ 100;/obj/machinery/giga_drill,\ diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm b/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm index 3d2ec6c32c1..cbc755e2c22 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm @@ -135,10 +135,7 @@ ecosystem involving self cannibalism and a symbiotic relationship with the contained liquid.

\ Structure is composed of a carbo-titanium alloy with interlaced reinforcing energy fields, and the contained liquid \ resembles proto-plasmic residue supportive of single cellular developmental conditions." - if(/obj/machinery/power/supermatter) - return "Super dense plasma clump - Appears to have been shaped or hewn, structure is composed of matter 2000% denser than ordinary carbon matter residue.\ - Potential application as unrefined plasma source." - if(/obj/machinery/power/supermatter) + if(/obj/machinery/power/supermatter_shard) return "Super dense plasma clump - Appears to have been shaped or hewn, structure is composed of matter 2000% denser than ordinary carbon matter residue.\ Potential application as unrefined plasma source." if(/obj/structure/constructshell) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm deleted file mode 100644 index 92264de763a..00000000000 --- a/code/modules/supermatter/supermatter.dm +++ /dev/null @@ -1,473 +0,0 @@ - -#define NITROGEN_RETARDATION_FACTOR 0.15 //Higher == N2 slows reaction more -#define THERMAL_RELEASE_MODIFIER 750 //Higher == more heat released during reaction -#define PLASMA_RELEASE_MODIFIER 1500 //Higher == less plasma released by reaction -#define OXYGEN_RELEASE_MODIFIER 1500 //Higher == less oxygen released at high temperature/power -#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power - -/* - How to tweak the SM - - POWER_FACTOR directly controls how much power the SM puts out at a given level of excitation (power var). Making this lower means you have to work the SM harder to get the same amount of power. - CRITICAL_TEMPERATURE The temperature at which the SM starts taking damage. - - CHARGING_FACTOR Controls how much emitter shots excite the SM. - DAMAGE_RATE_LIMIT Controls the maximum rate at which the SM will take damage due to high temperatures. -*/ - -//Controls how much power is produced by each collector in range - this is the main parameter for tweaking SM balance, as it basically controls how the power variable relates to the rest of the game. -#define POWER_FACTOR 1.0 -#define DECAY_FACTOR 700 //Affects how fast the supermatter power decays -#define CRITICAL_TEMPERATURE 5000 //K -#define CHARGING_FACTOR 0.05 -#define DAMAGE_RATE_LIMIT 3 //damage rate cap at power = 300, scales linearly with power - - -//These would be what you would get at point blank, decreases with distance -#define DETONATION_RADS 200 -#define DETONATION_HALLUCINATION 600 - -#define TRANSFORM_DISTANCE_MOD 2 // Size/this is maximum distance from SM during burst for transformation to Nucleation - -#define WARNING_DELAY 30 //seconds between warnings. - -/obj/machinery/power/supermatter - name = "Supermatter" - desc = "A strangely translucent and iridescent crystal. \red You get headaches just from looking at it." - icon = 'icons/obj/engine.dmi' - icon_state = "darkmatter" - density = 1 - anchored = 0 - light_range = 4 - - var/gasefficency = 0.25 - - var/base_icon_state = "darkmatter" - - var/damage = 0 - var/damage_archived = 0 - var/safe_alert = "Crystaline hyperstructure returning to safe operating levels." - var/safe_warned = 0 - var/warning_point = 100 - var/warning_alert = "Danger! Crystal hyperstructure instability!" - var/emergency_point = 700 - var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT." - var/explosion_point = 1000 - - light_color = "#8A8A00" - var/warning_color = "#B8B800" - var/emergency_color = "#D9D900" - - var/grav_pulling = 0 - var/pull_radius = 14 - // Time in ticks between delamination ('exploding') and exploding (as in the actual boom) - var/pull_time = 100 - var/explosion_power = 8 - - var/emergency_issued = 0 - - // Time in 1/10th of seconds since the last sent warning - var/lastwarning = 0 - - // This stops spawning redundand explosions. Also incidentally makes supermatter unexplodable if set to 1. - var/exploded = 0 - - var/power = 0 - var/oxygen = 0 - - //Temporary values so that we can optimize this - //How much the bullets damage should be multiplied by when it is added to the internal variables - var/config_bullet_energy = 2 - //How much of the power is left after processing is finished? -// var/config_power_reduction_per_tick = 0.5 - //How much hallucination should it produce per unit of power? - var/config_hallucination_power = 0.1 - - var/obj/item/device/radio/radio - - var/debug = 0 - var/uneatable = list(/turf/space, /obj/effect/overlay, /atom/movable/lighting_overlay, /mob/dead, /mob/camera, /mob/new_player) - -/obj/machinery/power/supermatter/New() - . = ..() - radio = new (src) - - -/obj/machinery/power/supermatter/Del() - del radio - . = ..() - -/obj/machinery/power/supermatter/proc/explode() - message_admins("Supermatter exploded at ([x],[y],[z] - JMP)",0,1) - log_game("Supermatter exploded at ([x],[y],[z])") - anchored = 1 - grav_pulling = 1 - exploded = 1 - spawn(pull_time) - var/turf/epicenter = get_turf(src) - explosion(epicenter, explosion_power, explosion_power*2, explosion_power*3, explosion_power*4, 1) - supermatter_delamination( epicenter, explosion_power*4, 1 ) - del src - return - -//Changes color and light_range of the light to these values if they were not already set -/obj/machinery/power/supermatter/proc/shift_light(var/lum, var/clr) - if(light_color != clr) - light_color = clr - if(light_range != lum) - set_light(lum) - -/obj/machinery/power/supermatter/proc/announce_warning() - var/integrity = damage / explosion_point - integrity = round(100 - integrity * 100) - integrity = integrity < 0 ? 0 : integrity - var/alert_msg = " Integrity at [integrity]%" - - if(damage > emergency_point) - alert_msg = emergency_alert + alert_msg - lastwarning = world.timeofday - WARNING_DELAY * 4 - else if(damage >= damage_archived) // The damage is still going up - safe_warned = 0 - alert_msg = warning_alert + alert_msg - lastwarning = world.timeofday - else if(!safe_warned) - safe_warned = 1 // We are safe, warn only once - alert_msg = safe_alert - lastwarning = world.timeofday - else - alert_msg = null - if(alert_msg) - radio.autosay(alert_msg, "Supermatter Monitor") - -/obj/machinery/power/supermatter/process() - - var/turf/L = loc - - if(isnull(L)) // We have a null turf...something is wrong, stop processing this entity. - return PROCESS_KILL - - if(!istype(L)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. - return //Yeah just stop. - - if(damage > explosion_point) - if(!exploded) - if(!istype(L, /turf/space)) - announce_warning() - explode() - else if(damage > warning_point) // while the core is still damaged and it's still worth noting its status - shift_light(5, warning_color) - if(damage > emergency_point) - shift_light(7, emergency_color) - if(!istype(L, /turf/space) && (world.timeofday - lastwarning) >= WARNING_DELAY * 10) - announce_warning() - else - shift_light(4,initial(light_color)) - if(grav_pulling) - supermatter_pull() - - //Ok, get the air from the turf - var/datum/gas_mixture/removed = null - var/datum/gas_mixture/env = null - - //ensure that damage doesn't increase too quickly due to super high temperatures resulting from no coolant, for example. We dont want the SM exploding before anyone can react. - //We want the cap to scale linearly with power (and explosion_point). Let's aim for a cap of 5 at power = 300 (based on testing, equals roughly 5% per SM alert announcement). - var/damage_inc_limit = (power/300)*(explosion_point/1000)*DAMAGE_RATE_LIMIT - - if(!istype(L, /turf/space)) - env = L.return_air() - removed = env.remove(gasefficency * env.total_moles()) //Remove gas from surrounding area - - if(!env || !removed || !removed.total_moles()) - damage += max((power - 15*POWER_FACTOR)/10, 0) - else if (grav_pulling) //If supermatter is detonating, remove all air from the zone - env.remove(env.total_moles()) - else - damage_archived = damage - - damage = max( damage + min( ( (removed.temperature - CRITICAL_TEMPERATURE) / 150 ), damage_inc_limit ) , 0 ) - //Ok, 100% oxygen atmosphere = best reaction - //Maxes out at 100% oxygen pressure - oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / removed.total_moles(), 1), 0) - - //calculate power gain for oxygen reaction - var/temp_factor - var/equilibrium_power - if (oxygen > 0.8) - //If chain reacting at oxygen == 1, we want the power at 800 K to stabilize at a power level of 400 - equilibrium_power = 400 - icon_state = "[base_icon_state]_glow" - else - //If chain reacting at oxygen == 1, we want the power at 800 K to stabilize at a power level of 250 - equilibrium_power = 250 - icon_state = base_icon_state - - temp_factor = ( (equilibrium_power/DECAY_FACTOR)**3 )/800 - power = max( (removed.temperature * temp_factor) * oxygen + power, 0) - - //We've generated power, now let's transfer it to the collectors for storing/usage - transfer_energy() - - var/device_energy = power * REACTION_POWER_MODIFIER - - - //Calculate how much gas to release - removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0) - - removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0) - - env.merge(removed) - - - for(var/mob/living/carbon/human/l in view(src, min(7, round(sqrt(power/6))))) // If they can see it without mesons on. Bad on them. - if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) - l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) - - //adjusted range so that a power of 300 (pretty high) results in 8 tiles, roughly the distance from the core to the engine monitoring room. - for(var/mob/living/l in range(src, round(sqrt(power / 5)))) - var/rads = (power / 10) * sqrt( 1 / get_dist(l, src) ) - l.apply_effect(rads, IRRADIATE) - - power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation - - return 1 - - -/obj/machinery/power/supermatter/bullet_act(var/obj/item/projectile/Proj) - var/turf/L = loc - if(!istype(L)) // We don't run process() when we are in space - return 0 // This stops people from being able to really power up the supermatter - // Then bring it inside to explode instantly upon landing on a valid turf. - - - if(istype(Proj, /obj/item/projectile/beam)) - power += Proj.damage * config_bullet_energy * CHARGING_FACTOR / POWER_FACTOR - else - damage += Proj.damage * config_bullet_energy - return 0 - -/obj/machinery/power/supermatter/singularity_act() - var/gain = 100 - investigate_log("Supermatter shard consumed by singularity.","singulo") - message_admins("Singularity has consumed a supermatter shard and can now become stage six.") - visible_message("[src] is consumed by the singularity!") - for(var/mob/M in mob_list) - M << 'sound/effects/supermatter.ogg' //everyone goan know bout this - M << "A horrible screeching fills your ears, and a wave of dread washes over you..." - qdel(src) - return(gain) - -/obj/machinery/power/supermatter/attack_robot(mob/user as mob) - if(Adjacent(user)) - return attack_hand(user) - else - user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." - return - -/obj/machinery/power/supermatter/attack_ai(mob/user as mob) - user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." - -/obj/machinery/power/supermatter/attack_hand(mob/user as mob) - if(istype(user,/mob/living/carbon/human/nucleation)) // Nucleation's biology doesn't react to this - return - - user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... \his body starts to glow and bursts into flames before flashing into ash.",\ - "You reach out and touch \the [src]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"",\ - "You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.") - - Consume(user) - -/obj/machinery/power/supermatter/proc/transfer_energy() - for(var/obj/machinery/power/rad_collector/R in rad_collectors) - var/distance = get_dist(R, src) - if(distance <= 15) - //for collectors using standard plasma tanks at 1013 kPa, the actual power generated will be this power*POWER_FACTOR*20*29 = power*POWER_FACTOR*580 - R.receive_pulse(power * POWER_FACTOR * (min(3/distance, 1))**2) - return - -/obj/machinery/power/supermatter/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob) - user.visible_message("\The [user] touches \a [W] to \the [src] as a silence fills the room...",\ - "You touch \the [W] to \the [src] when everything suddenly goes silent.\"\n\The [W] flashes into dust as you flinch away from \the [src].",\ - "Everything suddenly goes silent.") - - user.unEquip(W) - Consume(W) - - user.apply_effect(150, IRRADIATE) - - -/obj/machinery/power/supermatter/Bumped(atom/AM as mob|obj) - if(istype(AM, /mob/living)) - if(istype(AM,/mob/living/carbon/human/nucleation)) // Nucleation's biology doesn't react to this - return - AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ - "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ - "You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.") - else if(!grav_pulling) //To prevent spam, detonating supermatter does not indicate non-mobs being destroyed - AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.",\ - "You hear a loud crack as you are washed with a wave of heat.") - - Consume(AM) - - -/obj/machinery/power/supermatter/proc/Consume(var/mob/living/user) - if(istype(user,/mob/living/carbon/human/nucleation)) // Nucleation's biology doesn't react to this - return - - if(istype(user)) - user.dust() - power += 200 - else - del user - - power += 200 - - //Some poor sod got eaten, go ahead and irradiate people nearby. - for(var/mob/living/l in range(10)) - if(l in view()) - l.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\ - "The unearthly ringing subsides and you notice you have new radiation burns.", 2) - else - l.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) - var/rads = 500 * sqrt( 1 / (get_dist(l, src) + 1) ) - l.apply_effect(rads, IRRADIATE) - - -/obj/machinery/power/supermatter/proc/supermatter_pull() - //following is adapted from singulo code - if(defer_powernet_rebuild != 2) - defer_powernet_rebuild = 1 - // Let's just make this one loop. - for(var/atom/X in orange(pull_radius,src)) - // Movable atoms only - if(istype(X, /atom/movable)) - if(is_type_in_list(X, uneatable)) continue - if(((X) && (!istype(X,/mob/living/carbon/human)))) - step_towards(X,src) - if(istype(X, /obj)) //unanchored objects pulled twice as fast - var/obj/O = X - if(!O.anchored) - step_towards(X,src) - else - step_towards(X,src) - if(istype(X, /obj/structure/window)) //shatter windows - var/obj/structure/window/W = X - W.ex_act(2.0) - else if(istype(X,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = X - if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) - var/obj/item/clothing/shoes/magboots/M = H.shoes - if(M.magpulse) - step_towards(H,src) //step just once with magboots - continue - step_towards(H,src) //step twice - step_towards(H,src) - - if(defer_powernet_rebuild != 2) - defer_powernet_rebuild = 0 - return - - -proc/supermatter_delamination(var/turf/epicenter, var/size, var/transform_mobs = 0, var/adminlog = 1) - spawn(0) - var/start = world.timeofday - epicenter = get_turf(epicenter) - if(!epicenter) return - - if(adminlog) - message_admins("Supermatter delamination with size ([size]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z] - JMP)") - log_game("Supermatter delamination with size ([size]) in area [epicenter.loc.name] ") - - playsound(epicenter, 'sound/effects/explosionfar.ogg', 100, 1, round(size*2,1) ) - playsound(epicenter, "explosion", 100, 1, round(size,1) ) - - if(defer_powernet_rebuild != 2) - defer_powernet_rebuild = 1 - - var/x = epicenter.x - var/y = epicenter.y - var/z = epicenter.z - - epicenter.ChangeTurf( /turf/simulated/floor/plating/smatter ) - - for(var/mob/living/mob in orange( epicenter, size*2 )) // Irradiate area twice the size of the main blast - if(epicenter.z == mob.loc.z) - if( ishuman(mob) ) - //Hilariously enough, running into a closet should make you get hit the hardest. - var/mob/living/carbon/human/H = mob - H.hallucination += max(50, min(size*10, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, epicenter) + 1)) ) ) - var/rads = size*10 * sqrt( 1 / (get_dist(mob, epicenter) + 1) ) - mob.apply_effect(rads, IRRADIATE) - - for(var/i=0, iV=-0C=3GkFg4aFcd}Sysx1KW4#X+Mu97)`{j}tWVjKpMloZ_p5XrhHi!lUD8eL|vVAE2Q~ z4BlLAfJRQDx3hUbLrEpo-&nVL$8P+NsnZAd`!?gS2439ayYJ4OGLuTav*EJ|`!9<9 z97<8OCCa9zCm%Ikho{%y{Qv+U07*naRCt{1yh*by*LkM*tUjBayE)Bm&`E?!p)#vn zc9b;ogbvR+SUf?#T+fBBs^OQ~c~_KPvz~|M}1P+0TB)r}+8LfBp~KumApaeEyg( z+W+}6UO(o`wtr~+%d+r`U;Kif{`99f=l;pDKmF-Xzi|9dkNGnE;upX8QvOdlf9U-3 zOOFPA{No>g)$Xr_Z!^XZo&P64`N=wgBGX4~u_k`0+#G*RQ*V-=~}Uva#RrfA;&= zleX^~UpDp+onL<)7390Xw^3pKHS>R}e0;k7DL#L}zRH4r9qalcUXD$Dp?Tg@LD|3A9`zDmaX;DZmo6RGeG|Ci%+8SnG> z^0P1E(;vV3CPRHA6#nwljn7U)`~mo1JBRO;|IPfr{^eWofAbLNQ@+0e{^}c#^3Cw+ z|NpDceg8x8e@lELm;W8k|G$|3JD&e<&HpVR_($vb>!FmtJd^(?;6Hyd&|iJe7Vxk5 zM-%Y9TEIUB{x|dgo$%`~>yrEV&wu`fG3^H*d~jYif5T_i=aY-@WijvvAAIn&+7G@q z|Lgz!YZmZ(<%hE+dTrjn3IA6;?D0i0?Js}%%P*b(FN=YH`O9B^Vavf+Jy7zM{9iKv z-zz`-lllK9{NKC~_Mg6F`}@M*aQ0o_clh%u{_`j2@Ezc*9`^WBe2e-2=N>5eTKE?8 z|DEuEi}`<@;~V7wf?u6ip7>@b@NFS}^{ekc@AzZle>4Bz8UMd{0le~`Tsfh z{&hou&sR_1@P7skzyA{cSIL8K_<#Q`1Yac&zTrQ6fG_;~_{Tr~(tTg|^KHiXq4WRb zCqMbt{NHAb9|HeZ7Q#No_wi=7A1eP>6@os+ckyPl*9$>!_&?)+lLY^P@kNE7FG|)v z|97wd&DR~{^?jcn^F!y?U&qpY*Z8tmk-Xvme)wOvj6ZaK`Lmz>?0bJ}*Xx{b_<#15 zZv6Mf|0(AWo&QY;^hbcN)Bo~q-;48AoIhm#Z`2O`25<1M1^QS2r@{cfB${_>+P7<_ z`-$n}3BtMCN@-2Cax5v3$Xq|VU>GwmZ*RGH;&5wA6cK;$q=$@{KqiUziE7ob-Zb>b zp5ZW4Lcw&G?2MjMou?4KWLMa9_9*w&(*A?M5#W;VMO{i&yfOj;!Mm7~}MP7s$! z@r6oPEW?Cyno@&aYr4x756>P*FALT?j)#eE=WrX%z8@GS&D(Ex+}<2{dU*k(;=lfv z7yRk_7VR{FK&c9LWAUejyf0X7X&=|z9Pfz@JiWMNxtV!*K43L$A8)zwd)|Kk5z{=g ze|e;x8(#iqT@o@S?b`X_6S^?|yyJp8wwDroMX2fD|C=6#21G>2CM>$-&?7;Xn_ta*MI zc=|tBxkXQzQXsOy0&O*sM?C9nK|4H z*d)=x5T}H8nxrFI8;1SD?oo?s700`tbd<~?vVN+`x{wQ$P+$QgG)gIQF65jkE~8e0 z%2ez>IeZaIMBV$>DHhoMu)#$L8&ps3rKq@nw%Nny4eH6WF!lG|n`l zq4b$)Ntmr6=s$H-6@T~Zk5I`Fhe&@IxM;UL|6QOI z!>4VNOIlc8x15#{BMdo6>Xk((@FkK(p|TYQ!?>T3!l0}I4Ysx%??=L+usTy4BHEXLbAV)43ogEEZQoxF;vcQJoF5MKpVqq1^eTHpakoS z70WPlx;?U5!+6LvvZbzT{4$;AptdwM$OL7{$SBBjfmmp|hEOswEQkP3RfNei_JO5e zScX6eh0S(@PZPGbG%GMo!qk?SB7TMx63a00aJMIn39`Vriee;F&Il>-#{@I@CA0Vi z9|NKitS&6J$;6P!A)~cI8i`MdOlIgOv{J+n5lC_p?2kRW#~Zq>Mr5!;P*os(lj+{6 z7#Ok15MC_A1=^<#Vk7Yt)K{926K_3z#QxcyyAN+UzJmYm&)(zy=AJxeI@59ga!+R) z!W@xGVXUQ;!WXN1B`8@?Z8gFaWFw%G#FVMEA&h}}o~SnpT*mDxR4q8( z9I=z)_)(9{iMq2~KCSrp=oT#@ISMO~oO(5u*?N!Um zk6xg2A&-Je8HQ;@*OrnCam<`P^GE_s~N+K$$br6x>FlJB_YjInIoCGfo&v0wWc&z&y_wYZ<1VdgV|_ za=bgBlprMths5%b=|duo8C3*iSeBW(70mNY916rtcd1xJU>awnkj%nUU(_fk2{}<@ z!ghvwr;wFm9t*;QC=w+VmzS5Erc72D+g2#8KnkwjxtFv45jA*;AR|^=Y_`N9F`pv!swSI^TRWsy-2DB4e52U^E}*rbyJ`@v z;y6#(TGFlrL%;C&@{;8kIqe_lYDrVoEOACQlJ26TEQ0<;#5hfJ;TXpeWuaLa@*L@J zdc<5vv!L%sl+i?=814q@)KC_|#YIIa@NfteTTyQuC{R+<+M0(KJ$_V(ENNOe`V*ov zthNn)SUA2s(RGrlGwkmsYSUn9jlnS7k62}p1=1zAWs(O$#Fm7`HkVs=mj;nR zWms;;(6%j=HslH76j*IHTwGtUED5U}%1ClaxW?gXeGV_ff~y_%${}ST zgh=*@JQpmMm4R0u9#C15Qehf10P<6-8>h%TP1I|Js4~?>g{maSnf7loV>RjrUhvV;ZQYC?&K@R`*W7Gwidl36Bps~sE*r{^n+j7ILLYhg-$u6En)Txq$7!IhTGU3+RuzZmBQ_eQTS1u$rk1QXj{S=h zCK`;;#Nd%Z@cef@-L>M;yAAvMJzAYDi?{EE%5%bd*@9i7dF*l61i}XA55Dg31aR1x6@x zOcWr*2s&dcg@}dz?uefXOc}pVY@ciyOCj_Li=xEBI8LlO#n6wi2$D~19x1$z48w#L znlaDRS2fZJ5}Behx>mFonxX|MNb-~sLSn38z1}iMNz4&#ElMk7rNKk?2~ogx4!bs- z4oAAGV>tpr5EhS83L(y3eY4qc`{1b>M@SJVHF1gfDL@d^wL%C%zfYK?xc&PZy0l{Y z7~)+-1&LKK9!I1tmNX>hQ}_p~Yu65`B{#o0P;M0u9|nvTbe9dHQJj{u)onhtx)&Gt zQ)D>qX`Q64nzPld&sG;NIK7A%t7tANf(&>WvBq+}U2}N0r++a}CXhmLb3AbIXv@Q^ zJ^nt>_!i$s-hF4s?Zb)tDRS}d6{;5a;88`hsW$xj|9Z}*+H$-fxp<^_Ip1^fCl?4= zm>wqXKiu=yJ1wFvocbf8gKA^2#?rqW(Ox3Fq^=9qPNJP=*$0%DIO)i#kmk&BztCJL z)>kdVVPraZ#=Dttis+0q5L!XWu@5eK@ zYw)QMg(Q+Gi)4NXkU?1Jryi*!%1PP_$Rd+cMkz%pkWwL+!ZLd(kV*mrLMjgT15Mqq zZZ$H4l9E&+-O3=7#Arhzp{=HNH99CnC?KG_+|aC6lq@mIAhiHlFqNTdEm8|oid1!t z5(=XP-UmnpEe+Wxs!}+-7-1@SpFwG+hk(BiKlb>@_NR4ci7XM^3rDfGPc&W=~lUNIj=m?fK4 z!@fVD+q3fFPl3DNF059L_OfMMCMFVH)gcBLZx`|&;$D#l5E^!m8>Zt#?!iPu@d=d# zH_r#M&b<2<9jVOp4?X!*pqI>dBiqg(Oo5f+SSNPxZ;?u{>^;nd&AMg|fs_?yXK2?I z(RdCYPoybPHwG^P-Q$*|GCFDwzn!UyrdnAh-&56&nM8Lbm`^itNa&&w3s|8cXHq`j zlu1VHO5vp8;n^MYsi2mE-zTQNaIvYGRHi6F7$TLj%%>T0MC-zEH)DkYldxB?5YCBT zg6s-zXNfW)EN5lML9=!Y$4Dg|eu`+PxqNbtfvd`qLPjitT;TfsYo^l(OQEEUsWiG# zl#;*~Vy_?ykb)u#F$9#7SZ7&+BuhmmgA}BYiSs$+C_Yg+%`_xRki?T`dO4DBG~7YB zkH`eZfGUFW0Pz^{y~id?s|4d+#3}(XW3pttpAa6bFig`#yMl3?u@#h*5kk<^ntAe+ zBuFV!ZxrpOMno9zM)D$%UNYQg@GuV^$&|^nU>GKZR^*r&?gpw@gBR?!6#~Ki!BdQ* z*;Sy)rCIx&}vq@&*I%xBdFJgX&Mox(5wt)Nt|Bx_?tjgEHWqB zoy2Z6c`0YhuN_Kh#?!)biUbmmezYRx#QxR5vJZ@R3o1xfRf`Y>lpxj%SMOJBw<~Uc z_rTI8ln@N3g{gq;ULXsg&%bX%xCBtT`vd#%O9& z!yu3eq?4>3t*P4vfkuB~eT4?)&Uu7(ij*R?t0*3vQiKpGCDXJG%eY`;VtTcZ_K9hT zxURvo&_66Jw}G;NvYM)?m>&v$zp(#!=F!z9hzppZ<5 zgg-8@WTX&093pSM{g{X66C4Zb6j`f^GG=z&7OM<48&nd+K5=~RF~MM|i3xE~L+ z>xPsHFJCSgYX~J^T7hg7-FA&Ek}?%G%^DI+!@@9nv{TIU%;mOa9x@WaG9~6ok|VUP zLxzJS^#!E`-O6&h9gtq1 z^HehTGs_`hi>Ay_NrOZXLZBd6%8Xkp8dG!gn^!D-MhEcw#IVm?U$l5Vae6)zjtQ26 zK{K8vv@YZjm=6I}1g0yNYE330twz?7<{G+f%Wxc7hV#VC!_4tMvZ+_Nl_O38-v=sf&+#telXzFK z>?0)>q=R7|5JI4wqS--_g_OS{-pvW@Io>@!4AfOkSAQ1oZY~UCIdObACwH}Lu-4*( zr>-k1>BuKA2-M2ZJ>H_UMJtO^8mR@!N|Y5e8;8(m-M*KXXGk{Vc9x_v=z??tT?^{9Wu7v+7~-5zMzOuz;FCgW zLrNK$B?ZCm?JcQNBmr?uIBD>M$E*yp5`U^ymSahz@f zMjM7{BF+(U52c67)yzFq(K6mm^nJvvpjVmApKqC+XPgV|#xUg(yR+0!D@0WY2hZVI zpehv)uVxf5PM{rBMi9ot=@{tRikuU<1lBu;vXaxGXVn-&5>PZLmh)>G>I|EVxi;99 zq2Hf~K4ThO(7HwD#MqKtUyFhD+jKc`#toL>of*3P#i754n-kTCa2~MXGB_%ON3I(GrFP`7gU97pd zwutjJXScOH?C%*L7KrCbFGkR|4V5(H0ZNF}+m_wq3qmYd?a)S1M8?(@Q%PKFi7A|8 z<))&CfN*=p?0AYFl!m?x-LE%!qp8H3w7HcuoMmlenTfxG>lrnBS%L%+~; zijX}I_XEqlV0+OaETrO5T4E|qkcsCXdlTDHtgcsgQi3B=98O zegBfVUnpZ_dhobnIo$?i(k#a}8G z#9dhG#}&d9{DWtBkx;>KxLJ?|#u@5XVJP@MGWLnCt%xC^RHEBi&~Vxhlo710n0!H7 z$KnIZN|Fo6OR$d(t}{H`JP_wh-BsWsW~C5~AgY8g5?>`Qf827c1|I#}n!!Zew!#-r zkO8$SY_>Ir`-oJMBod;M%yD7cII@NAQN?~Ashz{EDq_wo18iN#{P9A(OBfHr3;d9= z*)rZti0M3DbKQ`uj9e*_OW1WmJ4sF%kqgr_<5j?21?)!QWy0(;*w)Zp)J%(qR7hiDId~qg*Gz|z)5DB*nw(*O zGqBsXXeBY2bCaD@%!A-?yC-|tG#8w12gc*bs%e<#nVioG%QP=6%UN4?#?e1`hC_eW ze94Rp>~OeAXgbxDf*#MH8q!47nr(YCbNCCLRJ#pXqry4+N^jO z_8u$}%K47dP#)uS} z-~;nGW1Ys<=d8Mah%9#t(~FTcE&cOIJZ4-`gyW3gFNg?vNe~Owx?;C>EJMU7SdN}1 zJI33IJS8lKd7Rm-6~i#$DnSkr1hkzYgh))8oC?iGQVeW1EBd>U;vr9k&`bOw68nTM z3I+(bk?D3qMM=1i#3iw0sJ8GhC)&3=Qk6-7P%x*7dRO7DEuzZAA#!?|P(d=DGD@A} z-l~G(G+?Y{4zOBP%-++q1t|qm3Z{NJD<--o?jiVyvXWdy*k#-khp8opyCczO+{z(b zLN#YOHtB?LlC(-}{=8!9W-k7XV{#e$iRFztVAjxWDo%%lRFX&nD+tB2ZXA;@DD7}7 z%i;xfTao2iJ?Y$vbe|YLnvoOOtXNI~RSc=mgncB>h3pE=qlTaZYNhdVrrTNOCE%>Y z&w<%545jDlPc^d)n5`vL9$6`ZJtsgZMy!>D7zkrP^o2So4j-Q&2rB1LLNJ{cWY)+8 zl`xdPAWnkt5Q%++$hn503ZVq5l|)+*T98TjsgRbwzB*jHkt(ZKh#_+HR+UphF6|8rfemv2KBceKYke*I6 zu7YtK$xGt+ASj##fhU^=;|$74yiDBoGpo&tyufsqhzpQmo)cP}B}OSVs@2p_3V9va zz6aH{Cc1=OX^un2)Q*csJK9~#m=oLUHNt>y3{?l4iw;a7gbAq%buAF0kaI$KSj&q2 zvjegBR8nDuAxw!{RrpgP51FN(&)#niOyfir31J0Q<0vJOeB!vD@HwJZl1wJ$K)rKB zz6BIE_n!g|vohmQuFF>D_<6p<(? zFun}5lVf~2QRa*Yf)WF(Mlp>u#t4EBXeVhl2A?A#C9D+)6G$4a9`6{AGik}hu@HM0 zUoNOoVTC65h50u#^FCrKgQx_`6>jbp+-606r5Sz1FXszmTZ7ptXbUC7{^g7=nv@kv zLh>;5J^eD#U9Tvgw8$!(kunm7fW?qRhAe1v#p%PD{cKwJu%_aw_Yu=@)`zLca+VOq*IpkkAx24(iPe)8(M0sx5L}?S6bJ)SoLh~@ zX~G-N`kjJkA!<;aptOZ(GZ$~Q+}}sE6yzL9F;S+78bA(({&vDjjdPY10^=#+l))5< z@{)Yah+g6!JZZ{60hvi6p&Z!i>^+N$C@r|Z&2;S=Yc;tk`^2>{@e}0=lX&R%4W8*?UgU6Jn9*BFPDqRz#oBQ4<~t&VeahzrAJ( z1D9`IfSHI(z#4}yfofyXouKH942rv(g~#t)@a$&d?RRQ~j3f~#Duc*OQ=+z(W%A_c z$*Evn&E0XvghFM`{XWVmiY^?M1yehk%ANCtF`lJLAt|CDlt5~UathrPl8&sdG_opS z&U$uEij-ix>!_*Q+-!pOZCaXDb#6}xg;Jots);%lPcw>_6{U9)*d@a$QSN*V!}Mj^LQ)&haxxxoK z!X((=229a3b&Je!`_Vuv8}z6sdx#GKH7lmuh&)Qh=M%+)ZZ&GHpoZKQ?3F}xk!EX{ zm%y~l^r>h4o~CR(rZbFw#%>H#GgDtW>P^M6Eco7|gQO0y|LBAW3L`XD8q(;ABcw6Y z=?Z#a59uybPMI`iQixy+UU`~JgY7^n@L@(-!MG@_X^=^vr37_;j<#+ssuq|A7Jps< zwS=jU=R#jqxY-BRyER%vS`u*|IeiSSC`1tC1VRYH6tU6Z_mEG8{&qk_jYGOcKIb{RX1iN)b33!{8hn^pZCj`ln{Gvtff5p~(nwvHdru`Daq#3hqLFBQ z?)S0!tVF~mkV`r%A~E8FM>>hJ>fH7aGQ)mho;<3S)Eh^Cn9xFCT0?P>W8dS9CB($C zEGQsNFy7Bdkr7rRjUeVoOa&zj>!xPhFN~)^4Cnkv8;!9Vtrcm>6klj{gD&zMmB@3A zAPxmrLo$J;tI$>p)#<(+Azcc z*+Sh`9ByV@JX_yJR2&}`3<^ZyczYrrV9AN=f43obg~r!B``v+US6HYmPF_aOM$ok$Hz==BE8HE_Y0dVi+Btt5lPdCH4bd1 zv=JPPi>Ik7WD>+Fkwj$Dpq@f{5-Ih9K1lRlBmB9BRI*^n3uTpQR~6%L7GjDt|FPn< zok^#_H5ZI8d({8&zpVZ`*NI)%aXL+ia@Klnb+*QLr-{p}EgDUKzc5dM$~u-QAjP>= zR<(+1ZJ5iz>e3k5@jyv3QCpe)+-Ljh0R4n)7AJGAZ3VW#Riv2GSP0E^RpMH zf#RW(P&W-xWQtB`YnX>bnF@I<2rmg!p)487xeyeG!qO+!PaDLAz$(qKPc-)YfO*sj zWiwV9hyv{lQ52{l>A*6bC2WyE3dwr6#*0jl3qqxHZDjzR#d%JOM4<@r?7g>b3o-SdE_P(PA9dHag{|DUlpS+*=o&hx(2?f$g)-sm#3Dyt-b zMM8oZ%t)DOrimUxa}H#b9-f)A_<~UZDvH=?sU6by$0)60+3*$Mlp>zagJ}_ z?*I4s=aE|K@_&4}-RKT2*Y3vgn+>`(oSz&jD7M`e6XExN`^u);(8n51uzp>sY{m40 zMVtilk4u?t@0+p+*=T$l*nC&x+m*w|mg{X{vNJbseDmM+OlGFtw+wwpZX;`0X*U(i zxMEM1LDop?c>3d+q1k|!NGB0HSI5C@$>&Ud%=pKEo;CgwaH}JAiMaD@f8NmC zNwSPg^Mu(7Xlv$+pmK(HKYP#fYU%GP5()1kZ70dDR4t_ix>3BIGao-}`SRllBPtrJ zxc&~*Br!oTzLpvFe4W|vwp=fk7!q#uq!~m~y!*D}`ZVI79m^8Q4}tL#nC6+NGw*-( z9=k2mn(5+bO^+}T8cTiGB3lJ@i7xobu`ye&PvyzF?FU}|w9-;DUoE@sfRYkBuC!Hy z8Ne^_`diQOaK~$N=5EsdQS#7j@r8BZl5e5Wo*b)ZG}jpym!5W%|{q-GieO42;9jM z1*m`bKd4{Vy&=_s+c;5IHG=%s7nfh)a6&0;>5Eh8i(Lr# zpZa1+RT+}|hrU>Ml6G4&T^E{0BQ}xEup_2`kdkS1h@8+;aC^377f3mw8&kHIL@p=K zaks@J#qDKfz4;Qr^O>fu5h_zP20L47)6naN>`H!V*i=0KaiJB4{4-A#8eUElyJO3+ z??_}~2&h~pK(Z5vI+3;F-TR*F`9kv0DN&N5l_E-yP(aemr@A|Q!j9#MVi#T}{N}qeEAQGg`643nR$u4|9AkIaf@YB54g#L&qyJuYC+DK_|~>} zTSI^7nAd=aiD)AtB?1{ajgl%=)T%B7XKzWqjpm9t_P46egH8Fs-PK978x|_ZDqUNa=WYq9|=n$ z%|McT_`c)y%Y|{6={iYRVVq{x=bwgWM*l8^Q$WUO6=fAgXyCX7ZR0GYon&&WL<4W3Qnx9FQ z=1RMh++Hkl(bT#nf7VZ;)GAoJ_4CC%8V| z=u*bMK)6WKm@rfzK~{yA&LKl8M3|HkWhB*5#^^>R>|*J*6>_6dTY>stewluKe{8U7 zMRb{cdxv#PNh(ejB}-2_J$pp(L{ZlBK9!0;O_@*c5BSk@d09)?DheVtcpY>2$%g5iJDEi>FftyI7=9D4_{Hpta(#A83@~<#eXrYUZn@ z?iwDxEAJ?A38a`yQdNlp4cV2LBg1w;>57m8OkQpts)ZYq?_oL(1nW!N7ELMW5D zMmN~eqL3IPh$#T2U6Tg-eS=h*@wQSMg`GW8gV=+28I>ePXq=BknUO8@ho;bAJ|P^e zmxP}JbtOhBr_sPvJ)f;vM%kH>{MpDj*QMy z9~*Y>w!AD3-3xRB&PGHO)cn)=@bfvaKW-5uqD{n0Ec4-{5kU|`Mj-HWpiUL`l8IAd ze4UWNprS@5iL)@j!e+nYEU#>8!!iYybw#w2{r5-w21H+QHm!;yD0LpQuaUJP>GI-~ zT%-~m>rIsmzizqw=*oP03T%cBDFl9Y<%w6r^rw|g?16x3CFX-*tSr~%hUf+ILn0nl za^vtzB;5p6u1Pr)tH9hvPVI&Cai)35gx5$tX^cqai=!k93vRG9_Z9ZVbG_bZ|9gXf zABz!zvZzTSvH4~|c7hNiDJ7<90YMQ`#e^504?n+W36eE9lu$?{S!Z;o%cffhq=4JB zVoZ%x3b{*E_aJ59_4A2NYy6l9Iv}%PK2IpAsGAy}BK58q>wJ|lTZ#26BtbZ@Y!Uqa z-%ku__$k(1Z;GX&X)3}J$)Tiqo2D*Bb5q(W5d$d&`eTdQC@>POOCHGkfRYKL%G3=b zkgXt#P@)$;l2c~8tx+;EUKXZPCN2uQNSd~zA9`+=Qna(r5Q`Z@R+20;$-lKgLLe)N z`nP|{uf0m#|J9B(K(*BT@TUu1FWK$~>aJqCuILiVqfrj#f0>UM-bSnwz~}pMOK-ntIC#lQ8aahPBWq@Pnn0F|m4&jPnbj44%EXrO|uMB$2E;SfYE z@l~K}J8+a%$U(np@Y$mpjWm+$^Mafemq*8LU!y7wwZvzORGGTbtV>|O-JnupzD*lpZ4g=9AZjX+()l@@;iw+q8b!_QA3`C!K{^3F`-|)g(Qtew}4Y3x;p#mjw zGV}1uzP!9th2-%eP!AO$!{Qa&!-gxI-pC|6l z2fSU&Q|3d$?J}qH3#O}xdyn}xv*-x~CpqCmJP)bt`1}Z__7@{k!V@ip-F5)RO7$P2-A~AZT zl88#7jlfx3@I)EWKnjVNL%|Q5#5_(^0)k6yx(cllc3ye;>`|#^8Z)|S`0(k#^Vdjr z89ay}aEnK`nq)FLX58qDJIW<0Q=zkBy+ou-=xA8y$WV2}F(PxOt~H5F-L$N3V4#Kc_cq2 z+&Xc0R}-_q%fNNHu-mjqr5WxzMrWzEhM)rH^O@iR$tO&$*}vN}22Xnsc;^_u&NM+0 z#(+Vv&JKwJ1TqQkhCSYUzW?-rxC+**#l^tvJjeG(4i8mfeOPt{Zf-rsAMbt0z3 zyN?e{F0+4VF^wU{vf*{sGfgu}DV%e}9JqTp(sy0)Yq#Vf#+SYIzC!|(o zssrVRtrM@~h|d-mGp4E#L?m!}_3VZn8VxD4KkUdkL(XU|(K@m$3o%8aOl;rRZ0B&;dhWzI6Y?_8{+cD1xnG05HG{jt5UL(L>;r2L^ zEv%zsxh{03B@4mfzCvVJu5h~oQc%@~x@l+{!}WG!4T>Zr`=jP`y5KYA3FZRh>y2Rt z$|&aROd~aN{g<8~Je#MU_{C#(3O>TJ4a{zY45^EV4*|b%tXOJoU@G=BmpyYA$-ji# zH&?hHX`FyRg1Kc(fv2!ILhmqx!aoI^_2hq*aL%(nFUVP7UsjTa`cAXTm8vc;rZJYu zgb$Gx#^>j0+>gkddY;t%XaB%S!tJ`j222%l57# z_oC!YG}v1)tr=C36sWDDeP~D>h)$qPsqU|Td}Slx^oLB7YV5_*nD#9NN$H2zh!UEV z5?X77hW5}hxrthWp94b3H)CFzjfddM6hp+)566j6l--XU#h;VsB4&SGv~*E ziWSqXRLZ-D9jBLAdSPGqWB>Mp%ckfRMJf}p7&As|;sP>2oFjOJN}6zu)IyO(rrjtK zIs3&ZtsDaN`iS{3NT!}X6hmK@l8yQSJ11|yKMZ1obk^sqA0ZUrtlhQ23CgX$`FA6n{T z1%R;%ck}qwBM?~Y=(jDq`z@Vrc=^M^oI!q6G@HVFUY|yc1RDeGeT~{ntn>JrCkHTX z1vOX^8NcDpezD^)8we%C{z zS*8F+KvQJBHkI(1^a7<6UO*5f&hhaV2l~SRS&-()>sO1(hP$oc_Il;~c|~W#?K)C7 zn!4`z`nj;I(Uli3RROiYlW40JEhUxKgb-PSrQNhts>aP0J7?OeA^8YdkjYGQK%x2i z!^~!=(OQ8jNzgu-_|Ag?xALZA`e6_gQ;g>*N)l{`2 z66m*vu7@lGy3xd#@HSy*OIQMK0`P%mIJ1xJS?WV`4Bh*<`$lL>bYw zDxy=Zv0)|PsCtR14gO>iC&~FYj=N@yvk5a)eEb(5`MbwQ4#$=pLHUR>iBI3Z=Qn@% zg({X!Yxl7y*NJd(9M(O*|36N&7P^O?&HD|P%gAm!a6In$`Z)6L!@$?)uWSx25=UAB z>Z)0Ozaq|(*FUW6w*$&(jH>wIZ%1~*kk1Ks3v}D^@6C@OJIQXhC4TnU|KeHxBW> zZ#`0hvI03PSmF9Ip^f4eZ}bluy-`%P;QD2xv4-#xc>V18Z@>GVr{A4veZ)R``nBcy zcMBUo;Lo14B-TGUrcv_e^f)>+c6C!p5>1#fBN^&98^QKDqepxacuT9x#jUcJ(K=(q?a`+ zOVX54tER3RhC@rJ0#Qf0eFr*_x%$;jcGTzbIUWIw;J8rg>M98c);LJbt~=b{d6Xr+0k)4=3tN#q_lD z{@Z(IzjEY&m?P?c`=89Ol~M>@|K4@_<Z3k00-O{d_}vfp(EvR3sbO zZZ>3Ko-Fb?v&?~*1&93>e~Y*!FwK^BqcDTvIy;sbxJaZ{P=OHpw-I}ZCEQyWr>^g^>N3(6=|mD%18R9mPw6}pv3=@1B# z$f!+jj-mG_7WJ9xV;?oY)@++O98?Vj`B+v)ygDohPK=|C5PW zE-Ur`y+A_08dz6PHE5dd|H(uw++Jt8u0#IW%v%i=)z)x5Ul{7)pO|^2ln7CJ@jqJ{ z>bAnivThGH;AT&D(6;3Z_-8Zk)89Wbgr4O`@XsFUilt$?OkjZ-!gFAKSrJaK8*0K_ zY-E1)G|8~OuB16)vc|5Kz8BbaMH|SmFv4AL2r&{uVT7AOAZo#G+cTe*g2}?f?G*q3 zAOJ~3K~yc7FbUR6AWjjL1bD$Fx4iszB3ps370H0CGGCu8yN`RSBV5NaMvci+Zz{~) z8=dAeFF(w5reR${D+m^@w<|#eHg_9bDmp|{CvtQom#9>Q&7SkKqm~Wxw9@VxW=70T zlPSxglrz>l`mV!IE5Q~DEPqHGe^v3EF8uu8?6`K0{=1%46(!?pEW>x2ymf4j1LFiK zMy}^8$GeW$mFqOZOS-0~l9HDnCsZ(0)*!EfcnXL~;9es6ELeVAO4zQJn7tu488!lW z1anN(2SpNzd0n~r8_fqn^*$ndi47jrO8nrFd%^C*!0FY~brsgy5@vJ7N_YKnBs)nZ zHI*`i*%GGG77cGqL_TNIDU+_T2nb>XlX23~9gFfrC~%=L5w}UwH3KpUloVuHzXsL`Ltr3Hvev`}kwQ#)BDDHM0>)GPwfXtHUCCi-H9y)ZT zxt=T{BsP7;GA|$nx)BV=j{Z&|TS?U$wD#nb$qHm6sdomdf>*9LiYN;OTCzP97(1kZ zkB*oUl0Q2{BPj)>l&q_utu@QMP}iow@hWqkR+_${H8u7cuuDJ+LC%7l%D7h63f*Z` z8%ZXxc`%3?vW85?dkI3YI}WscgLN4p6sD30U0khIW4K)=DxqlmniM^k$CZb}j`8J& zj1q~!D8n*&hOX!KIwF9S%K~g&R}!g=UuC9i8?G-icJ#RD*gXum7)nu-f@WWH^B4S* z*zG%Vm9Q=myh9`iBP^E{L_)Xa-6o`f^U${~jWXO$D{d|Zi5Sa88>I!t80_fKQPIg3 zl}mC}3CVg+7$mX|L=)I-wvaM1zd|?%?9EbBGZ@MI>d}A*8IvT_%Z#v@N*LC4{ikN$ zP+so(-muQa%$rie46wT&elqjM6?9PCo(p)rjt-5)`G88AD%4D09C1n{@wPZInJH$P zhYrzYtWTs|T=dPcM(-s_CH$C}UW$9iyE3{=0j!d<+AeNU?I)PS( z+bK|qnss&5+lo~$=zYoD zOtn))ZLp)H@)cd*5UYSqjyXq~tt66&K2d8yvawuuX(Tpfd@}5|4byc63-KiIuL5Z$ zG6=kV+jlGxlWW#%z>bbECxlaopxA9R>uqMftwbfL9}IfvQ2*|)!gLQLM>v znl0}>9>_K`zF0y?)V0A{kEwO(%Ug|UG*PcqJ59Ao)I-H=EnQo4J~{er!)DvlwH=R7 zGk13bE?ByK$636ReMzXUlf@`S-565v%qP!KH>}qMnMyTQLgUv+qie>?jL4ZRG9a+l zl4PRl4MIX=4A+;1b@BuP+xwnnT_I$o0yAiG1gRwB)gnd4NWuB*f()6MBc>@AX@rQJ zUK|gHJu(Px&nxTbkhv_zN&>f-FxGjcty?*Yg3Q;G-HnQoqe10t5 z#CAVm8pAwUOp(sf-ql3qusQMRXGff!aEnKJFjCO(2iCAaUBU^?ajhYHWbbre$7NhE1u^QWQsy>7Z$9Zr6xW6>bg4M#7Nr zefjdQWBFkvk*PX^l!=&&A14nP^B@rqiRxR4`8K29SJ=8Nu*NW<_k!-7c>91sD8XVE zWF;_L&C;wKKMmL*2rFn=#I4!F_~g)5V-|(Hfj@b~stBiqe-8MU64mbRI${+I3(S1^D_99$qN73uiL#ON z=anYcG{GRw0{_LMZi;kGxT`0LL})zfPSAfaR72@^eO~GAYfe|tzNQroAAk9gC%dwJ z-{50O;0`-QSORf;GvGCv^98>BwB>idd89QheWXp+`zzo5d_z`_ zZfi;wXPQ~&$bRTKJx|m%WKpvEKYp1xyw~iy9oK0>%Ayt5tzb@$^WypTXAjt`_FF)4~vo+M4NZnVA^UBaSJU?3YhmP&Aq1H7&e!lVP(~iZj^v41E z#N!>P)smqnYIKyCSZqGN=8y_sCBKSmGH%zysAfuvOHe9VGiG*o2N=l3{ zOs5q)dO{BL`-TuBZuZn|F-p|?ibj?EOU{ycT+y=Fy3b!HDpk^qx>AG`A!qCi5BnYK z)iRwuek~49fuybtLJI^C*2qxz)M%0~yhbGzr_U>!L9>2bIGR0w{Ncjxu3@w9%f-du z(HWx4=#4?OktHO){n>%@>j@&XN+N=yZd*dKBqGMNoE}HEb;tO!Qk#bPvLXT{Y8?a9 zQ^Y7u_o+tT%F`$#nA}3UH$bKmHNi#dzG03I+2@kOa)mp{A=9)C?Y`x8ykXjeNZ?*0 zwb1z0A&^L+h#{htV!s)vmEycykw(F~x4LYT546{_GRRH(0lEzG2p_Zn2Xco_WinOw#jv8?l#FvP;3BonJ zIfYWm_jH-|pfF8|21nsBjp1?;^mWfXd*mMW-|V=Cgx-{Rvh@+I1%`q$no1*U!TFXr z>^H1SaW3gaGXE%$Q}Ok7#3nFxk#l!J z{>)Jw6Y(X{&IV0H8SzsJ*KZx&L&Ngba+^kme_dnm1M?qOc5IOSaX>dkD%Evune(g6 z*VDwX?MVx`a}iHP7x5Nk6xf@?m>RWHY=178&CI7?Rj>oG0oh7!GnlU8{^K3Zp}`y2 z-fcmHFp}-D%(S0xFQ{764ZJb72_q%iQDW9lBUKhu*?@z*fDQ(KPT2E`9W63R=4mNY z2~(yLx>e|^_#rQs38x(UPXjNfGyPDmy;#4XJHh*J9*82KI?c2O)@eotaF@vIk1q&O zJpL|tVu-jY(&U=jRop&X)~CSoGM6=d)q>A7b;C4H^j*hpv!O8(i9+iFc#Dv!X;6(} zsb;pjfy?aajva>&J5;X`O>tc2KtTkz5EOj;cFXm0!Mnh*S2VdPF>@fSfwXE)pC@X{ zS=Wrh&E*Wyc$*M9b9u3he;k>Q6YW9JHihH;^5Y9~5L6!(yN?6ww9u;#dxh0HR<&ZK z#S9u`#$GJn9`A6MBHpdHxg;%xBzlLB9%U-Xl9(gMj|1O**mM0a7ib0Z~PF!9~}Jx$$ld7Y5Xgnv?fO;i75DXU|Jd-Ok5-#8`W402Va`c9(2DIW%$a_FtW zRgV6?dM&%S2dm`MYV2 zn^*iIP)X3Ks?3BhnRLm7OCZ@?{E#N&@U%OHX#oWxJCu}ME`r_e4Y6~U=GYcb&Eim< zz_f*fzzZ5tIEa4V{KP@*4qKEe?ZrQMata5L550R??hvV*F~41J zm|oMp@BUvYTvKV9wr~p6@bJw&m)VnKM9Y%G%_bK!NKObO0MqJA3Kvj^a(5yH$K~n5 zP}R&Y7WsU8K{w{7>MK&FQVQ)LUDH3QzQPOg0wz}YbHbf%p@6btp4M`~ugX*#gXuJ; zhU=+RU#~rfZ#F+wUrdIo^vdr(-WOP+QLG`dj78s_r^M4ApV3Al8-)uVXA5U*f<~{J z+ZT&_jZDuI*-HAlK?E?eX1>n!b;q_F=o*be6Kt6W=M;;9?%N%?F9egb;E5bQ?AX8G z;!;FcMKYy3gH4udBj}GkclU=c8jwCQ-es7={d1JIr0sJl`K;t+l*Tr zr>_@8fXmeqmzCGoS8TIFhztWXRk;A;wWm73=C~ooKy7O5n!v!--&p-pSOSp|S#aF% za4zAUB_;W&rn6<+Z+QRh25Lcwo{%Ei zD5^@b*_2yvAw`bwj|fxKbQLNovde6b1F=dhel0f`QXo;b?_J*^TY+yBr)SUl?1;H2 zC>vwAT_=Q5s9J(3_VHvguj7bK78esjDx{25TJiGa=<9(>RzPNdw?!yH&IzLxM#bV} z&55Kk!$TqW=3Brm7AebTgZG}UD>MGE29$+rh550#6&q7gX@j3v>~zh5dGi$RI>!IBt-gVe|pnfU3dUg20&!J|wz*g%gp< zLOXOcbqU-pPXT)pRA_PlAv5fHhEHQ$o~>=>LLf8+E^YNAa zFWy*)um5!xLjR56`gEl?4b!tl076iPA)AWsp(&SCVhPxln_z~jso$n>g1e7LE=!4Q zYoW*~BTS*KVlId2a)#M@nyMj^F?X5z4uZ9)H#XN3Npry6ELGDWYe~}3J+$bZB37BI zmsslM=gp<)FhdUEuvP1?0*Y$Dy67ujp`H*Po-g<3wI(vefOS#Lv@)TKzL*r|%pI7WlWO^Qn6AVp9c8Rv`xSelwP0McB($;TL z*OZG}CS?{o6)v+<%(ErtvfVs<*ijEPF(;IUs?|^nobU|yHT}M#X%d&0D>5eT4=u)2 zL?U&gaC64JX67$tLgn8Mrxh#3%=k1BT_RPI&Bvavm#^in!Lo2Xlq-z0v)t^Beru?@ zhNd_8ln|97Rhjd6#yLk$8Eq8ZrXwqb=^%K={5n$wK^y~>kgSs})mJEj^Bgui?%wy9 zL*^IXd>}4hZw?m&lXd_9Scn*T_vxQuA-4Y&7Q(-=5Fz5c<92Z*@5wolNn{0er3({L zn-cAQVs2` zczsGFUs9*0(gb2r%V>$rx?G$2v!hXUZ;nVC%C&6?^UeR%`#zmLyTcBx|C!#`zxBT2 zt@jP3_f2Ew_B_7zzJ}}so2vA_H@DIpTih79z04>Qkw~*|px5L^5Hy%gjmsIcQw$#p zm?D(I`C<)i`igPM$f}|1yRz(fk@%-b6%7WB5|qua&7^Ydkp9ySxi_d+Mg5}&6{z29 z)V(LW z)1OXk1ibz}(WVA>asNCMfhq|Bqv0neVlMhdEfGx-0OS;iA(4`&sU1!4rFoR}JGq>?ZN*Pl5Rc{YlTu!JuV%HUa zb>;M@Pb41*E)_k8D~7W7cYC_6VwE?p;ezmj`MfYW&*9r6!?D6hAf$2(L`#~sqHYC9 zkB@=-`y)#fbo+*GUn6Tl(^O=eSw{=0KrGIC_QxHY{eVVsehrK0&A|??M;t_7{u6p#`qyPW?k>}43$W?NA_}&X)_c;Y- zniu?#wfm;f$Wr1|q+3V&b)sx)%Ch9?>6GQ#x}vO0;v6U_D3nD;k=2|=QeV9g)4ZSx z!QsOiwXsB(Gu8e@PsAjUPUJg}f9{FcHwXk_2pr!n=w!Iv2`-NpPH&b!@iQh8CddB68(am{0;ixTOZvrg_u~pz zdQ_R+So5-?Oulq^dV=juix!&Y9r*VNMo>}HRwe7QAiYF}d{T@K4zKQ5jmIAs%GMx1 zfO#M3h7(FFV(U>KMAmx7;ZZ@OW(}*ru`<;O|6$ruU1X6MQ%<0f30>!}yS-^hg<%m1 znwUj#0_O9Ka3brAuK!*bgRL!bjdcBly-TzofloO}CtVVzFzBr!ZW6_fW_B}j5u_mz zBiI{@J{UqR&^rk-vE4MBzB#iVd-`{9zrD#f$X-#Zf@xf+i+qtJg+fS)5Q0FUy=z!l ziEc%Na19rcL;|Xmh(ZxlqEM1$Tv^@1W@iY=qiTb06hl8?gW~-5f>i=jD4xHp`TCpp z#Kq(+h*M(U9B_-uBEFCx)R$#JmzvqHSgkR};Ff^%Q0M|3CDSor6Ud-gmdLi=uskj3 zK&D`5D5{FtFPyp)_pfew_Q{SuT`2Y$gYxy)uX%aDWj;fg^F+xQ%XFTQN#h(CV~}${ zv)@BgHJmO3of{~3u(@fGn(T`5pen^_Ix{U}MoK8qTC>?~@`%x|Ov8u{;QK%!CDSmG zlE9jhaTwUOTVB1op{U@^`!{&$Sc7LJvb*20KbRl%y+xJvCGB1_Eh7oIxj!%k*gvZ< zP40W!s%D)W;~(|CNk$I$H#AkvJUDs}(^Xmc;r$(~lIdw?@t*R|Vs13^va((rcyee* zAz0+MF0_eex1lHs-o1N5$V6FfvPpjOR8(lpweoVUyqdo68K)UtN^U=F5Vb)B$@yJ} zRb-QR1?65dg%#m6au%7tUnqi&$QoY!c#ka$3RN;aE}Y&?B&Yb`MZx*$ME|%Vy`nqz z)V9FQhVwDgicAucBn9w3p^U{?gJ1LUTD^esF5(u)^0>kP%V{CC3A@u- z8?*=*^MuCUUMp_}dYdb6+cZ3W@kH!KE^pz*{y_KCVUod0!#piCMTwg|O6ea|-tGN{ zF-#B~$p?zsA~%wx0&1g3N)UaZ(w6?*BV?p(C0+&E=Pk3Fm>ve~qBwqYp)NK1`x;XR ze*gOu`)0?(*8?Wi+_(4q;ddi#t58Da?@?GWt!4EqauH13imePyTViU%xGV%As8mJj zBg6X@bH$|0KCs)iET@X>}vji@?NHOv*U}>p8G*b4%p=go^pJNhvTqO}G*6Us#-9 z^Uom~(g;g8ak$e=EbL!xIr)ItYHV!~P7!b6A= zV-2=22pw@@K}gB-XLr1L=(u@Sp-P3QpsEU{#|bw$j4~NR7y@_qw?82CI+3VeC|rFjxV5gB&Wi4mk&Z&<#cvvwzrHo1f+9pR@X02e%(9X~TI8A&b)-<( zjUm`beW;knmGSjLd{m4_&-SLE*jZNP8RnJk&f=U$OT%Ha<@mP4uTzd4trT;dDQ_x@ zreJ<_Ovik&r<#0Ptzjl@68m<;_;z4AdIp zCkM=RL`i^3*1Z1BgzRcJ<(Tj!KAMFXzGj|Kq)6C(}5S(QHye68!^f)7?49*oP zU^Wuns2pQ8XYCb2FkKebA)so-?nT8sFHGG^7&HE|RFv@G_9%N^%}kD9p~l29nP2w@{j~8#8FB$v52f zUBem|=F^0lpnE@1TFL&tMp@5SUtVZT!|~0Gjup3?18-lil%>cr03YztBWs0E9^qga z9NH?9jL1f@h{&$qA_nN+E{Hj@-85Y0iNoCuEYN?`Q!fR>(R2S|i<6Fv>u7Fk?mpg; zYR4ibUVL!F*T4H3?Gx)6cAJXJ*kRi;Z^kk5_{G9@TV}+~Jh84&>qn24Ri zclrKie_yeV3;vR@!GMoQ568C?E_z=5X#>j9J$9raK`&UIX129LnuKUIT@h(N-e5}2 zdUm8Sv29CS^pra1udSzmn*+8M1RJSt3xtux5tav!oF!UGl5i9oLn@%CVZO|`-eb^t zXdo0R#P1-z9!F6dWPtARLUiN{$x~qM6EYgu-8G!Mjufwp2C$8V5}t;h$&YxT*=!hw zfx^P^=-Kafne?>;_WONiYhIzGn~kFH`}}Yn0{fQ*+ZQeC4E=FHOYq(kRbZI{%3oot zDG@b96S#fVvVXP(1j-AZUQe(JnnEDL!o$}+(rc!E1`@ZBmstP+AOJ~3K~#0!@ctbH zCy72H5TFveku1?u=n^+4lFHTBZZit7kR?mEu#AzaF7w!}vcwoUy`9jr;q4zLn#N@M zn-NUjvDxMyNbr%}re*3^s$wB7k=j<7kZmOOrbc17Ja}wrC>nz&u*8-9wq|(W)4v-K z3lJoa=L_v_!{yj9KP}Y0!A*geA8fgF6UV_*-|o=0#7B=3nzr2V#Xr2KR2!y#Wq&7m zKOWgU-=Yi2e4aRdb>`WN5?Kklu0u6~7a#1QO@wn~dc9C#No!zp5EO?j+n63!Ho8PB z%W$4p`^e}WFa9)Z+n?TCSTBL${ft}{o3cSj5Js`uiNmLs`)7OJ|I;J$B?t3O!%BCK z_&74m6VusIni6FU!{U*JW*!4_5sW8~)Hxe%4l7ktV48?7b25yQncTOoITCj0C!~;g z=Sd==t>$zbu(qIWEk=M0(C#c!ZprONHprf1Q<@ z^Kqs!HHbu#xgBzI{-J~rzGLCkhnjvFC>2b@%p4&x!@35vu~fRCe?3sF3O6R2)*`K92oq~sxqWrR_GLjAI`+>>hGF3N z{)xtvsAL$&3A998&2q^mf2|c|lP~#}5YVzfC&ln~#jJ+uJ)||Uxv^*k!}}Q<3|dIS z>hN9Q>2c=%N0!Zv=JaqPO^`b97f&GrrV`klrIV3(P#iwkvYc0Z7ida@EfuHpLc86d zTftIJoW2-Y&z`m^nB2nlWkakJCRrYTJFt%=PYvy5QKCjqhNMoXu z21P#6NrEL!6nn+4Zh7;MuNjXK<6u1nx?|+kiyf0pxWQvl;9%+}>PBWo?gG(8HqRu! z2#oWLN{T5gl!p>g3W7|aBeIaxdy^vqoFXj=Ap}KJP`52ENMg*CIEg|xmhJN`vbxTF z-5;}X$aCLh11~>4usLi<3DO*Sd^2N`;bsHhs(=A7cfTty%i(?6;~2F`$hm#K7fgp%4XM|E{NPEw(a5C0Ju%yC>_=W1_Aq zmc?^8M7oosu{Ca8GtacHD9e)blgF5REgn*2UKhsmi0^aH>&Cz^%xG;G&LhlVQ-Rik z{jOx_9Oph_Hx;JV2r01IAdx)09nh*m$%xX9Zk=duH%KWMPa}Ss*zOA=0l%*3Qc#wf z^H)8!DhP9=-Q|lgB^ATFnG#E33g&5rRq%8ix&JuN{GZ;QaYLkkHxj2rr3#ESC@q=O z%;pt*_{klow`a!libN7z;N9ziyWJjIFv;-#s|zIswW&FG3#KXZWtk{>{BoeG6>=ka zIvuG@g~zdbsc?7@dA+Ptp4Bh2&qBb(5p~RvU!Pcdhn0qn7FnlN8FmN7Xgb>3prXp- z(C8?ul2R3+W?nCD2*R;+18ib|6N7zuvO2*2&t5Q4i_;gWG3&=H1*0i6w9eDv|2ckkZO9kV#@ z@$JH<+R-!(vtL^jOy>y^6wZOQ7Gn(S;&B1yE+^8j zPXc!e)TKtt#B|Ef7uIT04202he(%`dD9VkbJLXF?CV}f6RT04kHg`3nfVoJt&l-}; zD%#R&Y$-V&7n-8Q)DooyN`NW^R8Zg5S=l)VmiGaRLRmqQ4qa-f650gD)08zuUSzB| z*}Nl!U|APrmD!+vSo7wav#@YJ21JxtD~KV`y%ZzZ4QdUopB$yK3=ch= z6T=@sUj*S4P$ZN|%)^45)+>R)*38|MX=GJJ2mxaZ-g~;!N~ub|{N07!uEdsxC~6^DY@jSl=6U7$b2wjb;M}?*grKUfRru(!R%5NsEJ-5$dBCLW?DwfBEPpinH8m*- z_6LI&iu04F>+|f_6dGeKWnt*LfvyK*ue0CtnUy^IUB`v~vCFgH(lA^GN_jQ+xJaQb zWs%T1)G$L;hy1Wt)+K8UEOSn_Y&JD+cJ${pXYyWF;vCuU_V~CUt;TL5^#RJdV3`)y zDFb1rZelz~8e3C073(ll*ow({lF7+Ba@7nE3rY#1igbOCEwYJZbCCEDND;JF#2j^i z^8vT|OrsV7X#~MTf0<~SnzmAi0M;tnt>m(txxAk+Nh6gcM9-#fP^%(b61I?3&o^vt zx5OwYZHZKQvFlQ!OG$YhBWk6wq9BYOt7K+3l?6pvGMz7klOvrX)6Q_>O!5aeaL3E> zyDEGMXUdyg5x%@u;pIa1m4=A1mhm)xSA~r+XsuZnPY?m`1%4HgyG-qby;Z8BenY$nDxwwccz_vEapvOSdXoN}}A6MFH zhb^-HDV7nvm(({6%f&$t;hbAOsT0LkqFarr!SxH%<4h?HM1heC2~5+3EeeLIr*2A2 zR9qgMu;c1r>duWne4#79U=#0X8Y2|`3Kitej`RT9-2 zR3W*X`|BvR;M{qNy2=vl!mv&&X-UXgG9PD}vfzBosCw4O<*PH(7lN|4%x@Nwi?p`| z=kpmxvhA_8FlO0^i3)KEh(0kr25xp`9?$xS?;I*fl$6ZtfGu;;wKh-i6apC%VM(L_ zQ}BHHvuE_D5itjb$AwCkT;8qdWSHj#w|K-6q%N{7xjzrsYZV@k17U^e6a7=q#x&nm zVIy^}!UL3T@q;Sd_aj{owkX(a;C#8T3fSLme^7;s%H}GpH0v}YWM=ShT8R>n=0uz# z(h1TMDN0Myl4+UI5{xKWhn0B@OqZE;aD+KSy8CPX8p{ATHVQ7}&tsVmw|%jNY%cnGvXQaFVQlEdMKutvsf zA1;ML8AVtlmnTOVO5~(j`+Ta6almdZNy3}AYsPO12W3ES6q|jEm4-M(w#AmTCYHf5 zj0-|%*Ij|c4H1GMIl<+a3q)Bp=%_OC(i9Ly#4Y4FphuV=9Q#dyUsl#GBBP+F4KaC^ z^UQRFyL(MYp3CDIizQ7kci&gx`;TupE*@V(wJ(uD;fKIxV-PCw^sumRZdithEOHe# zHkAHZeaW&I75FR~p$uz#HpGZq0tq}nfZGpH1)RY+C z2M)WE)h`eeu5fF+Qxs zUNfCm{0uR{;^Ag*=^i?~%bKvJD(Hui!@WUT$+|AACx=oRxv4kV13+#~ng*1}FsL-A zj4yQgQp=OGwG>bld2%!Mp81lg2XTqq+}yB+328O;4(c5!qjApRmVBy=mw}~+QkA3? zv@%Gm@CuxWBrkE7d?URso@t!&JhxS}w;G7}B_kcR&4F-%#Jpr+6(T=mYhk#Y2GEMz z=M6(XaD!(Wvsj}D{KLm{zAWuRE=d>!d2ND@!oNK%&5f>BJ$f_)HXlth3C`y zpZ3DL?|b3(vM^qI;S|WdaQeO%?#GULQ=+5d{BS}kaqWdY%Q5%D<7Gzr9DwazK&S{Z z2f3|Xpe!Y(fpNX2JQAT26kChX*=~nPR5u3GN`z4?LqG-zQBc{EX0xT69io(&ra&l3 zQ5DoT8-~#%m89I4ENLNzNM$OPGq_6*!Yj%G=Nv{GgtQD}KwFLX5t3k?R^05VDvOYb z;9$K(`Zpb%6J{#7e4WV&7QuKNh*Ki1iR2?XD0Z8Ix$_v6d8k!13=bn|$`h)2nrU0f zFihAY=V>8evoWlzCxk={iE1ZMm10v@3{N9z$vn-a6S&UfdXG*Dy6<_cehw@lQSRWl z1ey;s2P&jo80Iih-INsf7E#8`fqD~AUNT-HO67%ElrZ*VK7rT7W>Ye+D^;CPO5|~H zKa)I^y278q9|Kxh*2N>OfF=^Qp5}uFL|`}#gpji0z(z!o(elwmL@i(+sef#UcaHYQ z1(S^wyOJqPgu+uEpl%ELOUA3a=<@hodNy^*Fh%5aT64-`S(CJ2ia+dy!eG6MZDk0XGENqCz^y@lB5wd2-U9SIWXr zRSJLcSZmoFT29BA6c?7WU@NvfeRD>VQ{abTps5Qk-2zC4E?=@KsX0B31m{pvV65VF zi5&I^9={maB#oW}Hd(ZnY;}vA1=Gc`JgoHZSK4-qF&3rZ-NPA~B!#h@E{?vBq?j<3 z1RJS#HAPvHTuyOm>KeB?rXiEv-aVXn{^1_24JpDju85>LJ*B7kVSA(L$By1#5M`dW zb={IT#yAp}Kz9K@^cK6$i$tgAUPO?3;$RZ*B?tf}h z>{n8XGX~Ht&9S_Tq{RcH=T{1q5_&%_lR;sq7e9`d5>BvXF z*pR&7-9L65ii-Ye=CElQ&m+NmilStA9GTvOerfsX|L~G`mv`9zyJGGx$c;kW2_DWf z8^BT^Bh2$cRX4nU8o2*pLn1O?CK8FsLGxVGe%$c%bfy{%W-&~c39Ad-9C2|))sj{> zoc^vu*NU58Zuz=DVm&-R-16I>{x5=m_Up61`CMjS7zQYS3aEkR`g?W#`3==J(B@mK%hZ__{jeE)y`(or~Mt>{h;ISddW_VDoKdl18LFy>H-Vrz*evPQ?<^F1j!)^VkK>@g(TyA7*ch{|U*>d8~0nI9JHYM3t$;UUUM zcj=hl2U3FOP@`W+v^TstUbw$6S)wCacsM_>-_(rr%FTVtaT=(e6?hXkJ|0nv#!sH2 zwA{YB<;(8G_NBzFE8UkXn`l^13#C*{-GWG&)g}TQsy)ZM0sB+Q>+u`(*M`2k;PAZs zX0piW|XWaM~oQ>GEEEH-4;wq zngehDaUck|{nVg0hU#Rfl;QZB6a4i1#qinRd@jg~T9X%e18j-hA-E%P58MJf5;cMx z3zYB(Cg1`*A$Siwka$FL+_MApYvF|K*LRAIFs!`wFwdvIb04R5G)0Hm`Cf@cTE8k3ZScEtl{8z^~!{ zQ}31IxtpFy`Yb7;w;DSvb93*uJRPrj~c_-{D2z=J}puKOjrN>Js~H z#gjX;d10{!#dKOhO6GY%Yel^&dGk1O|DvHP3!Z*|qSO}m7}#uTgoGu`$XJk;L|9H>1PWb#<;kuL&kv9NS28`%(tkn_-3SsG|wBrY$`h~q#p z8aRU;5?X>ou&|;xiYk=Mznu~L74sLGWytA_H}ALf?|ST3Q9dgO8&7!f#3|?6rj+sw z--yh#QJVW_w>&=0tR~PLG`2Okv-i;uY|c#65}a_47;ex4j3B2;Lz02Eo_Y zKc5f`pZ)6d^;e($t^ZFpz`ABX@cwy5l{|fQMq7yMw|?O1dp~fPczSpuPJHJFKCVyb z-S>XrX1@A?tLz7EiiA@u!_#>611~)PS36weNqwN*G@SZ@CeFyp(~2$2c)^yIc?fJb zC6~3sjSH3%LBbeKyKnK246UXV1xtNeA zNz(+HYsM~@NQhZZP&E}HCF-qYaSLtJkfLI8GrOHZwz=?>!m{=&%3ZZE>q=QwY?_+r zJeRLlh6rjSFs0@YH>{mwct0{n&u(AiH#uBndCYV>(`d$J#icdFp_1g~{Vnt2cz8Tg z?JS4;8@l;I=mQN6=lP6|IYX>!3{oX7mkZ0{Xm1Ook#y6H9|Pmlgpm?&p#7kx|KZ~Q zw(1{%4}m`+@^j$NfuB+j ziPLBQ>*o^%{*O-sZ4j)h!xWBZAKdY9>VSlc31bS5Q_ta}G82s}Ll`3SI%5lsHJbCI z;MIrOY~UUR>lhJp#+|fv$uiAYldXc0#NuFkf8cF;LwD@qMZ}%p>G*&x3%p$^42-%5 z4QZ13{|=5-WCo6U?s>X-WcO(zJtgEKY4~FX&Wvim?R{tZdf?`lTj;Z<|9QCOJe@Ox zr@EF9pHL!w7ci%*Om!~G9RK?IAKqZ=Jc?Dd%;U)^=M0D>Ng=Yj#Nk;(2#$GP@zSyR z08;G`J~6ymC=x8QhZ595l2(a7JAxB5cLmWv=mlk|aHHq>-7Vdlj%l129^ub^_JZ#C zL?p2>4afHv8e1`4W>lfk#*$KE4W9jd%e+i1(@c>Gw3Iu;5*^LHVoK9Lulx;g2Yf={ zFMz)S{*sEH@C?O^yfsn_)F8@h{at{oDwQ)re8Y3z^PCGmBJq;I9>upG4VkpEeD*h= zr$2rs_-^sX>jsScDSphyAA!RXB`|y<+}zSBe!=4oXA0Ry$3l5>S^KA zk6!YJ|M;4vUvbgn22T+x;u;}>-CD+F=DbW)MzMszvt66nI(}go59}zJK?YMr5wVRTnus4GMp#xK zP&GuGD2!%~D?|-AN$#iXYvuohz`r5!?@;_T&$#DfNFPEvkej2c=SXM}5>g3lA>HNE zKz;z?E$};D@rD~Fwj?YHN$%?Y_!Yiud%j)#iBCxUmjph?@t2Hj2{ddm++Vk7dwnkw zm=O#}&S>6H@I=Lhnv#D@$qO_$Ktbg15xip}Ue7IbQES8@ksLhrM@p>;t;1TFOpmY$ zKR^*QG6q~)S(-%LIUd^w+B!m);HaphL?n;Yip8&p3Tjj0zl7e6v_GrSg`yuO4sTn$ zbBunZzNrXjhd)J>lq`!wTSL{BT>62sR8%)L;VZ*}qpfSC5X{q@L)?TXMFBCghJ>=3 zum%Pb@JPFBNi8EKf602xO762SQq$TCxXXTd`cG?1At(Rs8XbCpN&B-$4DZ zOCFC8l)3_uh$2yy1>I@HHa6dID)pTQqU$;e1@kb|9%@`zGmg)~($B=fgGiJciI;)h zVaqx#%;%9}DY+bbN~_o$N>;J*<(DU(Ki_kHH&K~_!)C|d|K^FJkVvut-X(`=v%FY( z!Q4CS){taGRVt_K%z;wbZ#O`ZmoOg^`3n;N4#U6aN9_42@FQRYQj?JzIy>ov79;^u zr0Y^n;8Q+FZm$31Z>ae_|CRxWcoZx7A=OQlW`4oMo|>AE z5b0y!S>A9-f&BJy*yUGTK^{STh2o#s@QB4@sHrh1}c5H0Q|8l*LARV!TahHDVMd`*g(j#KWfaK@&dZ2F<`fofn5KzMqv_5Q`#Xz~ zf+fz>o9qeoy+=t&QwheQ2O)AFf2*mRf_`2&KlT_caL#8qQ(GX`Ouq0Ub80Yw7oXf9 zBFx>1IA!)tyU`prj?3eP^Xr9YuXgm^fGstpuKDdhOuYJ0_CT1@Ag=>N*F`qA;&PcV zcY>s$w3_wm!EhJP?TZaV8Zov&YRU24K)qVt{?o+WeSxWS^7}kyNrEXN^V7=n!wq3g z7(L^cNNx9=#v`eQrfpcKg}09#O{J(d1!J0U!Lw;LXrJZM*G|46@*MaR;IB~pH9uz0 z&w-DxEsvFCA(kXr4N{Y|%<5Spq>x|EgNdNx_p=&_;UD=WGb51;a6vL%H^OplVk+Pn zkzWw_{JQuL+)?poz$d^yzgwvws_O=n*N!TJjKFPzXL+OWAF+JF4HE*ve}`s3G7|H{ zI1n@nW zh4d;5x@tpQBFg2=v1k*@B!V2d@mW!k+!NS>k6$cV;|V=EpB#brJ2{2qA@H-mv6gQkE&$8 z&5RMNGrUSg&9X-BHZ9ZBj9e2cDTIWosTq7n-;dmVcuSBzvpaVQQ)|Bb?N>a%+46_q zTu5ughd@=-%-xIVn13T%J7NRW-c@P#n+m zK8zf2_~8zBxH|-Q*I>alI0;U0JKPBnAO!ai+}$05TY|d=cMf>@eE+|9tF~&ZwsvQ> zceFK8fM_6#h8KS$kyjx!zFH6`WH6`tauj@$j$Z!dy{+1glQ|@43&}@->zs~R0Zcq{6(ZUO)r*$)I*p& zvO)%7l=%^YL2A19+_}@RR0>zO1SK@+$2pl`!EuRK+(wOAz?Wygg zzM;&YMLM)$GM=dQ9x+moFtfJxB+c=!zvQSxKV}q{KfJ5m{uo z+(?#wN6NwDWp_d`!)(d))r$Z0o=$T3MD43t76lg?C~3@_&W90A8jz&PYgo(L^!^^? z!gbm63+i!skAso1L&L3@p(+j1XJts1KpSWkn1Z(c{60A)e%p_aVt(Tl{gEvCvAYt z&g9P-^?R8;lJ_j2Flbq*1@b2t_x(w2{d>1&V z1i|}{Sg#L(5hg3+QUqmiQuS8DY?(j+ciqeEZ;^eh{p>4Y(}7Ev>nCdGpRx+2`ve*s zw9yu$#Sn62AmsZ5i?-?1Z@yl|%O|aHsq+yhA(L05(Vnd!&PWks6-iv#0I_lrbna-W zgbp$~R>HS3TAydR_3p0B5hQbS?F{Nq53JCZ?aQILL{oneev#yg;TZND>Vwr+Bf8@$8Aa%9J3bXLC**w`Y z#GjpeXUO`=_b|7?`K+#=KDC^~0IEY4HQn{NMA(eSNI$m4?oRRB&yRow6vd65ay^{p zjkDZyP=Uyim}oV3jBtNOmeCKhzDyEnn3V*2Hc_)cW9bG)m$1UFy@R(n;^+5r4-=J4 zBu_0joJ+J}U5QTU23q9JZma%=u|z~SfA1>X9ZslcZdU>W9@&!Xxd`Vr0Y(+; zYVxu&BGBcNxmQ-WYWeX+K7RX&86QHCDDa(xNlz3D&}EuKB^03K{M2m>6qg(}KG>W3 z5&-bQ6aeQHP6ly6?%yyu2u$+$Q2Ns!Srde;H$QC~r$RwwLjEu>%~!%kO65w%$R8da z@{eY;#hNpUu`QYrGt#p6(_ii+a3LfT5vpL3GQb>JkY0B1{%eTd2EJtoM#oh80^}R5 z8lq5v-6(QsucG4DrUSyq5RijJDCAi~UVpz(Ut-oy$i{nfAZ7I*Qykhsm8`pQ%oKF3 zdQybLZz}5|X1TRe5|I5{&@&g^Xi`JPA$FctBXlad!Go&Lax_SGdTP1)dI2}Ku3mO5 ze`1=sAK2q1YT+X=WC@aiOxR|$=f1$HF(ke&+2K(W7h}ePs z#VO+ZXtH6agpZv>Z&g&TH^32u)~H0>VY zpy}V2FzRoEen4(UIi>G?Cg0)6d*!Og7ddqWipv zV+~o=-maH^hs>AAdKA9t6*LT)B$Kj=dJ^4>i5}TYFRO6rog%Z|iJ;R+d9RHwRMFyW zp|-M_*nxWGH@d4T&R{}jnLbEUyPRM2PD${-*<2u{P(wP72-wNPm2AeH`UE~I*2Uzk;L5i-|#JN4= zidJ7vq7?cuCLUb?*R#j-oLwuCF47rs?il=n0qH{9q678q@@$;#?rk)7$4i8R?1|mY z2swGz?!_R5baXqTHSqPu@`;SK*=J$PqXjBbOoy2lOx{_2dXmC-%Qt&;xb2JJ(BB3w$%u1{Sv;Cvsk4OLHVGFK^L`;mr=bz73Ik_&}1XB)8SG21fs zoNuScp=_aur)7`0kWc%x?f1x*TRppZ zL*YzIf6<~Z1XhOAhLfdxY&v;SLWpq%D^0PcnTbOLJzz_*s>2f0nAPY2TrOdI&~#=g z(M)7Kx}98h8skr}JD`TjrOaC%;b3s;>_M|$5~MkLfLbCI+z%(SmowG? zj(5Jmp|14XdIlWm52Vk4On=>|>?pfz4rg?hk^6vQ%@=!g7NGpYa z#awHNU;a>~X&f17GnM8CBuN@)bm!t8+qg<0DV%A1Ons_POP~bl8JC1wkDXTYW-b}M zFoeQ-F;DkX1s!N=D*NXs4#03Wtt;xlb5eFR(-*@dyODbfss?z6H0sNaaGxqU{?1WL z5L0MS@lXE_W^R5>@;=HYaMr$eOtHR&IcvI zR{Fkv=2JLT0|3Qpl~5;CpQN<`ARkDNiIIo`2T~a<$qkO=E>=~o{f?7>N1iyy#H{wS zIOF}W&e^hCeD<(}kTHm@z z;>rPws=rFyB3@R~IdeTY%5p@dtCQ_Lxoxq^#gY?M7V?gXSjJYZk0trexwEOR<|9Pe zVFsfL3h7CdHN!>|t4k6I!)q-0Z)#p8$v5x|pF=kdqzs8$X;e9mc(P-s|Kc!C!dxcK zY5>8LiypoC+#~lblm_=(xW!ZBp0519($tWp^&d1JWkE)&U!xH?QiUG0nfaG;S( z-m+hD^AJE>7J>rzf0XJ^HmT?=yvNPFCx{uife12;E>Zmh2>m}x)dKTrdKRZa*A)F= zOE_*>&K}`g-AQM9=uH= zTcuUSQLD#JSi`_aNVc>2L=?X<8KFN$Slp|FNgP#x(8dsRwDI3+DgkiWkTXE z6KAy{p&!32xp)Oia$(W4{tg~WTFb~^`t|eH zff~WNR~KFt|vvcTi z+=({?-yBPSAu~usgj=S7`r)&6LizMs4910g$5?v(4X<&G{yk^T1W|9Z-KRyTiZpv_ zUg!RGdq;-1Arb@-fTWhR&L3{&p;L63q~7|R?+I`Vn~25iOjE-y*pa_dpYu@w$%l74 zsL-NQe=3ce8&Gr{#lELjn-VrkXMYuOJf$FqSB+h zqGCED8jLj(4!UELB%e9dF{v&xNYQqSXuzy{auZLGgA{;>6qy}B0A8(x{!$iI{S>{; zMA05w9w~(oyR;7HQczxD-Jn+9FTx@bOjSWyoqArmx=udYe@`X?=yXJj5eiZ2Cqv$F z-*B&=nCx&h$s2~%YWYc%Z+z?H)RSd|La&Du>74as7=gZThKl=gG*I5SlIfP&WJ%A) zC8aL?L#TdeLsEyjwRTLrbyLx*)8WmNB@yz;2?cj&uHK4PzdTOcJ1pWjWZR1GloQRh ze0$r5@`ZK@1tFONiq#V}ft+-)1ca)A_-?NOV_-^G_YyOQObtr@LP;rmnjICK50D_) zTo>DE_-}CgJWZKAtOW$AuP6GLLUi#co1%~RBAb4)RMUboEPgNDA@6~K`4Wg~0-2?7 zY|c`wIg&ZeYulQrYHMx2&Q9Ag?9pn~v9d=Wh?3s0^8_K9#-Eu(z<7)@hbU8ur-}*N z-oizQqq)+dmodN8btb@%o}>8(Nd}EFP=!5Cf9{uS_C~q%k5tAl^%W(W0EF7Fg^d9| z!9ncjH~p5hhp~f9%G_vCi?qx-+AWgoER6teOKyFe5B8B@QrglfT{XMnib*@$xObQ4 z&=ciLW*gq4SvJ~#!Npngv{4Z}B%g^fkjYhrdl}^%LiB1Cj%y(pi22&!qC$b0dU>`1 zwTVQ^7>bZ=GHQltZ)ugFUwN(iS}W|pLW}2?PE+~F_=nYS^DNCZ7MRo2+eSWaQb3Bg zD!w=Iw`jm01BGMWEUr+9%+KN}3PTPfGp;vKEE?gf{J?tpAv+qL4XOlG(g-OHW%xuE z;>?za$m3UjRkJ1{_i%H$MAA&sOq$8SS3r@1l`HvvOB!;Xp(GhZNXp`h+5lI9Q`zJ6 zmvUu0=bH$bt#@3aFXLt zRX;{Ti3ya-d1&>eQtsP#)SARL{S$+#JG+fOPJM%X<@)Y=62MI(VIEsB&L>H+fmUim zv8r8wF1>J;w-p)^LLv#|WpZRsU(J~v6XC03c6fXaEhxZ+NJZyEqAgk%xP=Ws3Q>53 zB#iY~IG+_-mbs%u6!={sA>fbr@rn^lWy$V2^(U~|6vhc+W8$yZw6g_Ce;j3tHQ`Rz ze@zj{NCsh0Fl+ROWKY8Lr#6fLNtBMtBn|qq+I(dkaEMIP!G*LO_Py_2>X)b0dK@ss z5?er=-#SZ9Fq#qevAX}UKA)hcLU=PNQ9q2XKYm=HZ2s)rwubprIMk!rU}G=HD%h;C z{hhLv2(84&niF&xNN$4}kw6pT>B6O;^_WdH_G;JFp#3RZLI4 zt}a11F|!*EG9~-P%KRuTtDn;RS2vX0Si3&Bn2~vMxQ6dgE;^d-uYM*kKwrWM7fh|V z2t4zV%10RR63MfF_JOEaXm2R%R640L?$gzq8J_)$N4el)u}Q?T-Meo!Q;k7uZyGQd zv*i^^`!@T5!nVf9#_NMxDFI5;ElIlAJpTb=+)*J%xURQJdp$yjgYD@Pf=7Wl_AYs^ z-jTkvJ@vTJ>^NDx;4qmP$lq+IXC{xQ?%|AaG=41XnFe1^>wzUo3m&bQ|N+>aXrcZXI*eyoK%}v3$?7 ziA-}R1qawCebQ!s-yhDuXA>*%ZA;!}{FinkwQXV&)nhAySgiPj)5Hf#&cXtoh%1=R zo~go}zw~OYi0Lc3Vt=p`1h$ZUI+IG<{)=T0kuKOj2YzOY2+5_z{kpZA|Mk+Unp7ILFy0P z)XJeDZRmq8;R{$HXFZ?oevV?zONm_2g*}E)-Z`p%XDd!89SrgKg7pO_DmSfo z&O>!!(itnGv8WOEaOGJDvZs3`GTztEg!j>p< zp?iGm6xff0nQEwT%E3nj<2_+dB9r;#EHTPf(%%m)lUy0P2?%!sYh&Fu?DBZ!l)W2# z#=Cog(+EV+!3rB#^@vo5D~(F0zW4IRg~!yh0dCW6j(_0|tMbZcne=`q*O&B%d2|*jh4mVd=UQ2Lhj=PPAj@6&}}tODjh zz+vCIgCw6D#sWFm&rx#v(a)BEOT5$;%WpFVOJQLnckYuTW;)eQ00P)=!i8T^BLvQn zst)`^P8LYSNDa?7_#MhCX5XyE5-DEW1#Hd9dwh7;qlbPl1 z?~61@vE0Up2$?X?k``9YpyySMn?{@0C0^vJhrepwxYT_*S^L3tNVhW^E#S&)tb8Vj z)B>qtLb*a3JN2U)86tM99+N#4>hFfy!@@OR>D2_qJyKCNvir_hi?H#hDBwMN*5IBX z^-Z98F>TBptR}>*_>lNz1xIkRXD=KtR2Uc_Ie0ui+$_2NSwLoK^MrhSDAEM|Bp7Df zBH6@hud-WWc*=iZ_x=Q+Y)+ z9b%JH0L~*k(2Z~YHHeAn;LcmBSQFD)*;{hmm z@DJ`aW&XM(FG@ql%7Ks_+|3N!X~Z7Ik2p28euO(#MukKc^8q|08cem=MET_ecYF|N zq_Yft^kt+Gqi77T#DfG67{3T3D<;$)i7b5x(V0@FozKtvOd&~(ixllT%}G9#&A!iD zF@MdSpfp0J%1rw~*vJw{pH#WdO%nT^Ld_0c6~to63@qwLULdlFA#X$p(Um$fAG&vg z|3b?t_q7P#+XQrrAeTlxj_?;bNn473szLe&>4Tn%jsE&kog2%3n1)3vA^Zhx{ahDt!(8W8_mlr`Rbw#HxTs*@W;JULB{6h;- z+1#*Iaw7hS7=n(0A|DZ33+aF-uF#Of1uA~Z6+Y2B*&X}5+#T`e@ysK+^C;uZrO!>F z`|Rj!YO&R&mr~{1D}s7p)lz7|EAM03Z#Es*5C(9KFCnRXq{u59lb}#Nlr+qGzWhTl zJ6H^kV6)JOIrj#wR2S`FJ4?X%oU9#w{6P@vnbrZjbtPENuQ zC;7UY_~rLhpgve0w}V5mE|Ho8m>jfe9cc_an&Bc>j^*W5OE!wsuSfT>kPtW#fc2w1 z4fI8dRFx_<3uHPwKLxoqK@=d>(Xu8yl($US&#)DlaA!6dV9viVcwLV|ZmYm1v-JKs z9YoEU0lEV7oIjr=7iD7?!g-5t(c(}((?v0uvue;_81+vx@EEZShf{twVQ01^4{o$% z?j^vogLOtOWK@^F;@I~1NJ$8 zP;HmvV+vCGd?Nso3QqnbQP@h6ILmEUgpRkk zk3Q?3wv}=^lVxtYD*81>x_dYz%z*LNiiVNFNnLaijZ;bI?Hv zh-IykaZ;IA9-e*RK@5AjV@L&KGt5BAWhyC-=JF>!2DOi(9R9${pB$d{M4ZqJXOKB! z92Q&a+>VZZxi3MoAp4m%{S%@{29zsHP3XcR$qtCM?{feJ!I71j^$T z!nyd}ZCBqf#8<>o=DXHwDKqd*D`+lK9MVdL#YZM`I|1zvP((9^udcpfrmwR=gw{yd zoKGOB7XpN;sy(VNq0;;<3GbjaDEN56RmEGWM&QkP<~s-TFG0r9yY>64MVGH=Lmj&s zEU#Q}>%PaW0mo0eEabj=0a1lCg%X$hp?+U8#JV8cSP;My{1 zoTNaBOE>amM#4go?tJjK$&X(Uc396(;oykDiZYVg$K>q%!x$$S=7~4osU{ATq{-!n z@u3P^Ql_IR#Glr=4rF=t$NoA%=zAxBBS`A#4tH8GO0^VEI@8pMpXXektz zY+8+{$qIROjzd;wk|YD;Li&=Fi6Y1enr&8I{kZVq*Xib*boSK691ys0dh1HY)oWH$;e_ z+;4O$_^qEc=nL1FNSYI2)wHqHZ!sn|49U;;Yp))w9UlM6jLW7F&WL#!Ny*)K+sH5J ztlN7TFun^Avxn?`ko?Z}UQqn!#g9fzil#Kt)5$~_ZZqmoXfx@QO}8FbMm+9-KPyE% zd2_@DJ-n&hl?WTE7Bv>IddLWjJ*a7`X-^&h_Qc4OLO>(A$L;%ZMLTt9O+U&jpWA0$ zygTV$bBSLDgvB4-9HhkKmX-zc%Se43xcD1OgTY4FI8hP?igo9*OrZdCzUuumIEqrP402zmjwxT46E>fAZZ1MgE#g{hEd`VqHihKRHi(80YZqqk&&EM^g ze|!Q$ikYVxdQvIb*4ySvFwophd6rIU(ibp#L;c$5-M9wK-xy^JAvz|rpA2Q-ZcI&x zoY5l5wx44@vZjIB0qxLT0&)(TmQXWH$x%eHlELW>J+nWEj_k%+RGZCVJM7Lup1%Cb zyMf(SA`qtzU!C`P)ygW-LtvAhi{2z$Po$we?m}+@wF(@3AXeHBBPxzV=bVj;$biL` z*W7(m#W$OENg)ZPR{MBVSyTZ@W?Bu9ZYt4$k0ccOj5?csTTMqU)7+2yR(zx-<4(xZ z2B;$=dQ$`Qm^Y&<)lgQEG4|;1OaH((EC+Eo+t(d6uW^?R`5}b-1Lvu!B$OGfsZ!!#fuQ0TX({tvcc~j!&Xq)D7rjfi<_>ve$yWmF%#OVZTQMTKCEHwS$?uSx zYUL$T*?~!Q^*(El^sMbm{JjPANcnV)#rt9xQs?W&zxbr$S-jG==)5@(ha+XjckDpo zp;b$%a=)`D_VEwRItvgQS(vuTEZ<>V7a+J7L{jiO){>`St>VwiIdG9L^m!^!yrH-b zITZXyrRIBX94k={m3hTr%GCVA;`Hi)2AVXU58x-v%utcwVzA`*^4 zP{uEehoCVtyFXHM%%^ALI2Ckg2ncUHV9F}v?h9a}i22k{Yz1Wwv2thX6I3m=*o#0%&Q~Xw)o!K7qEXr9Y@zWr(MTtk8VZY3bzE&f zQ^p93z8Jt6Fpm;D@~eQ}0Jw+hE1NI>0vXtjlOscfBMufWVaook%>`dE`{L$8Y*oik z|B-ai=jqi?DVa)t5-(YsRzPyps=d|B8NdCLbB4DTS>0$YqW1If06|rsmAGGYw32RF z;m_xIVpA2yzqrElfX|_yF+)azu6q;zJ+~RP6Khb;YkLYIQy2d-lp>j4SjEk-8nH~M zCgL*W0CDh@q?p?Q7^H=kx3dWvaWKvcq#L#Sbwpm#5;_f#SW{p3MI;IxL@1x5hNqOR zjKlKyb6oFj2wk2ZZ`S7WX%~(56er#}y8r>OpQOVA6jf53H$nkuO3>X9@j-eSeyY4bzcr1*KBK`bVVpSMqGv1)SVZUtxKZQwDxK6aDFr#Zu@h&#hKm2DdjA~{1D zVAWVrkX*Wai3>sPY+E0lfSFrS$pXAnBH3P zZr6Lx!6_S+e!^ySFYE0jX_?(Dt5YD;DQ>NDZ)|MJufk8btndmM3AU7l1zF8!THF7% zr?1a+Bz)GsZ4&r=GgLZXGBz5t=CvKiAhzHBbF|O(-(S8vo4{Ke*ma3`ksayFK+MKA zC6Hb~EMfOE>5IB6J?*s@(xJ%!!&af$KophPVMRlQ4Q|x3f>_~@s1$~2p1eY&+*H2Z zy3gIwiLa^nE_Q&u-@VO0akjTlq;zV(K>qI(78Zts4Vc0P@R(+w&bk6&j|s2$2@gHk z0dOMkUlzm2X5%(Hjf;FdN*FM z3;>tm9A0A~ue`6Kg#Zs#47~M`KE*GX5*?vf&-xw{*Y{{mJqr7^{26=a@#c8zX#SU@ z6@cZ>^0IJ1M@x%0?6GbAnH|ol>zN;JQuJ=6@6m&mWj8RXVPMt(krCs#`vkK*b|6d-f)Ex%9jfFaxg%}1iW_gwA~Utg8A)_8A+0<-RE~40L)-M#51K%9qPF^k zLA92(*H;4H&jnzT!g8riNJQ@`ulh5;2^Ti^9-Sc0QO%WkB^Uss@4OZ{%vn>)aSwYN3qqNFhOu>Tre(7 z4vYRE-Bi)_C5R@HA~uw3I0jgQnm=hz5H0}lz)t&zh<+gSis*-vj$3D@Fr4$2;lI{5 z6kfjb^M6WPULL!#W0Rm65Oj0n(fPD`cKNN!Z&xD?R$=rDTV1E~D(fus`&v8faxBvb zai!h+YTTpq`JYqZk*GSUL}V52rIr0-c}(J@a=NVy`Nj-9bu(1UR3?&xRkFz8-jN-} z6MLl!=O`_4E!3K-b)oLh8N@4x64S5{hO-vP<$oZUjrKnkOuG`1VDR%vjC z-f3~W}3Lg`>-=!28()yorKe*l;=`=MoAZ7l0prT6Eko0=w9BLq5-ontveD--bXVw73gqj6mE7{nspn!FGR zIPfP<&O%7@V{KSQazVs#+=l+ur6$pHF10cbjp%~$_<5z-8WBTM{k$%g&o>7g%p9rb zTz13z5l7c_kNb=$`7Yb)b7nqNZ?abpzmIKE$hP$p85|1roZdYtLs@p zZ&dvY3xtM-hF#xqj5__kQ@!2~8Fd91`|S&_yX?1^H#Ie>SHOQ5^wA7B51~4L8v}+$ z9X|7-_EcN-M8jXr6Z^g7d};leRJf$7!}cp}L^5!wd`)6~v6_R>Yj^rOP7a0!rG71Jny#{lOlgD&F6^2;db_#b+ z_L=rFiM11qaVj_Y^aqkqnTUk{&wf}o07VbOVfA*%&ZpOw9;Zi6Rh^GVC8Ry0PuJ7( zR2RRU0Ks^cir9SNFm6t3#%^+1~*A({PL0%=>{`j?Bq>n;(N-_j`;_Fib_R$sERA{%%%a>HB<=6!WG|Ezw# z`Oi+Q-3##l&~aj7;sPHa;E7qCMD=nW0fbC=>3@iB%Yc4za&mjP+?6-kFD#EWb8v`R zG!1-KVH|uL5rt&88yg#5@;-Fp_dVG60~`St3cC??$Zr+TltZj^6*QpAhQM3r(*i4; zo#|R#6~V0Jm7pKN9Y|Z!)twr*Y0NXHH6vN9F8uORM`j&l>djSZ_>IqE{BH;fNfLdc#gU4Zu&%Fkn@v{5fh}NEZIT9Yu zdF7|<`+Iw_vaxfr|4#)4@Hd-W-ersI@9Za_$$DuDwv5~s4pC81_#e5HU`jZX4T$4$ zS^o%4$izoP+!1iRZ_r8Ht}&h5j_G8-m|H=-gDhd^zA(tNV0%O?n&skfD>3}oFHSOY&sXSgQI{7E4*B! zPrpD!-?;$ig9Ih6g%nD%u~<1m$XGcv9xJ@uP>wziW9LFmOT;;Xldh5-q_bPIq=o(pfT2ZvlpMrj z5jy+B@%sNmloZYj-y)nk>8dxk@277Ga5jCcALOci{53xe5z4yQquh(o2>e6Vd0X!$ zIDbv9j@n~cv4GMQB2?P;Pf5%MWds{+)==o7XNAr90N2E~|D4dFhm+%6iUPzXYy0%y zZTz2u^w5MMFUG|1?bTe6W9rm=K>Xod5Vkn%{QjmOc4G;y^X}&Ow&L~9KF*A&M_uFk z07vr@$+2z_2bBYnqnQq}M4jqoZ)!>?!@kiO^kV}1>C3~mJWL$enXrSLP5LDpL4@GH z|MVt5RYj5ieiBm@_Snct%{-~uH~q$>i1omX%yCy=BUaG$VQKnya4~KUWhZ#&7c22) z!gaG^clcFeJK!wJkPvlexCbXSJR=>+{|m4=e#h6#;EWymxM?(3GV-4Zt-D+{Q~cl% zG?|g)m0g~4{kOs4)n4%d+oq*r2ZQL~%~wWq#RW*S>N>Z_@4opsDdB7e+!$QhidWq@ z9cA4V?~~tyF2$nXR?dE0Sz;+0`M!6J&FV!d9}9yWbKe_M7fTf8wG1^6ABI za%Vj!Qy8JVF>ccj$zWt;DQ-Rd<%#3l`rW=S{cFI^IQ9KzP@%jFh3>`QH}qh((yy(n z>swe@xJbRT7k<__oAgar7q+%h%1?bMe)4)iH2GC@XB=3qnfR?Y zb8)tEiew$O_wHxek%04|gXz;>t{F!H&8O14{gINaI-jnFh5_HR4$q_KzDdu^KY@k< z$2<>xU)@S17OPB&-XQ+u31txQ* zduP-Uc>h2d@M1Iisxp!6c4(%qNwRZ(p7`b~X1WbAxiLibs9(N_ykT_ITHt?v!h~QF zZI9s4k+=F@aQx7=*5^mle_33PM-rg$S2k)HWf>eJmk=2{>Xw?FHd-QuA;ly_XZR;L zyF^WJ68$?MFR(OGg6WoE=iRYY#}d8Fndl@#-T}(MnuWFJ!rJ$mK3d81M#UQsWW`zh zw6wJMN)QZbT1Cx25F`BG_q_KXej!zOd{KX)42SGpd9%Av0}ig6{4- z0g^$7?io*G;J~d z2IMdL0N2KV59b#UU{UwyTa&po;!!|X!o2;r!%b(;PYVko(rTC|HtqrPt7msLM(jMl zeKnW2KW_6&p1ZhXn~?^B0Dt5i;{JU>ui!g9J;ma!&bcste0V_B;GNT`S1!+mxXD$O z{jPz38vG31*e+D%w7Gus&`2M9nrHAF9Ub9LFk8zALxspOgU7kuZwq8ed2Mc)A79om zf+??$J!jP>PO8>T(+!xy-h@^(7u-0s$DH=RZU+g(*WnVu;C%b`rh)c^N=3zaKmLwG z`1owx4X-lh+8G)|#kd0UFp8)`{vv;)Rpc*7F8eFHI+W`|ZsP=*n1cO@!K!3NY}q(GQP9j8IwcZO@6b+N19 zOC7VS{22An=8fMAV~N-drEbTP=;KNtu39`UKjD?mn6?EJ;WsX`rD(owkvqD$&{#wb zj<)tPajVgjU7f-VQ}sHJM5&GwA;Z&$tTj literal 71246 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²oS{9G0ypKo>kOa{vHSS5T& z%Z74n=r&7h1q*;J1ng`U(zegm{p>UFJkSH%M5$-^x?3A&-&~Uqk8fQ$cHhJVq);HG zh>QUX0hk!9H4I0 z)7Sdz-^Z0RO*1`F+4S(4N2bbV?$iK+i}6)1f9~Pu+w0HHOysmwY@sa{fRY-s=(GnIO#-S}h0P49 zEwEPS!V@#YFvDchXlB>=w;7&jWc3|`k3aUm{(j&xSdNQW$ky66lWEy%Rg9W3z1Ah zyjuR|$B>jhg!CY!1L5v)mUs9y1L`yc*i zzb%CHA-3*B$~2kp-$?U|`Kkk#^2L?+6RmZ%QY<_lGSoKfT$^JPcop|6$b$0c`t5-`Fv~LDp1;w(;usVga5{zH+2<)Yu=36;tI@+p2#_0k>bs1AZCQxutl5&0Ob~}5 zxY;<@`7c%bOQ&1L*Yo+S|J1ph6cO1Zq)oK%!_|GBg6{Ci7pnb4DUKPQ64Cadh54I{ zZ@o5}+J6Q_lsMhk!LHNmx@QN=m*p?+{Qh&!ipBg&Uv*k4C?g;uP3*Q}!XZkCMjSJe zP1d_h)v3*0*IyP*ADIG(yn65;yG}-W9X?&amv6q4EYAbY&61nRfYz^PGqe;mIZ4|0 zS!xYguR{+l1y`$NDFv0wGTMeGS*^fIB!Gt>l-+N;Wz`2sbtRO&X`nIxw@I0^Dd4b=0BxdGLxAP@WHQW*lxZ0a~^k)YS!1slc&pD5YS90i3QbP&0rl zC0Pj{QYvUEpzC$mjtjB#DN)+Idd2%lcKOQM)Z46l_PN1TjqS#Oy1Nk@1F~(HFeHlG zYG@FEyGl^06x8X{a8pT=O9mkFd8m3Fu4TcJ3U(O6&E=qi0Irm9JP%q*SVF*RG+P71 zuHB+Eyk_`aQWQNcH}uvTpWn5#zp;}UqF6-CXl-3Kn*a$qyLFdLL8ensW2fP!+x$Wv zs#b?!nd|Phloo{@8*Qz$ZtIc;7@jF|Wg*=q+Lyez-mrO$T z^+M*d(Dgbz%Z4Kb+$e&V$v_7od?GlW3tLFoB;W*1xV8|?RxG_sQNeTM#_pNs z7k01fZ9K~iD&%2|0Xt5MkM<@;Y`~2g_)@mNViE8>$PWLO-Rv!0fIZb8SL`!ZL0BYW z4c)Wf?ecb7J?Y(cPwsiQOIRdGlL#d&Z3+BfX{CNk`npe&_8ggBk_`?&GMe38dmaYp ze?oOdZwpVq5`VA(dw8C`Ji)GIX$21t#oj2H~3Z3!+NA$#yJTPK%NFh36#p4U>r6G`xu zS8_amD)n>UzsI}ns;fBm6D{>H2+01{*VXXa!5e<-^fCL2Qn|JMRvNlc1crx!x7||u zStt9e*T&7Ar=`86=d0hTd@qrJ`1(KT)yG~)|I%~Mk-Pf^a%`)`^SqYoV_BeN0y3Qj z)~;h5-;?~=2kvoi9UcZ;7ut1Ug%P=rY?I5nylX#t{Gh%pm4+4q4hcA^G;~)N)KzPX zciHLxaHR=%PD*=o_ai$ik6IS=ecw>4j_ykR!r?>YA3Z{zrCT$eWu0}j5st$$n}rx& z#@Kx*@vi$GaBlAFgRpJbwgo4S;6J%t47=GaA31#7+LTDZkrD|Z;3pGsb2-?{*XQ1v za6WcfXr7s|)Rxljoz?AH!~V|q)T-TwlkYovl>Fnz$+K<9wyG_X2?*~z{*FV5cYW;v z=jQ%J{3wF|_;xYO*)1O#Ic{xACg6zk_`U0MZ_T#(uG&&M+~(i=J+*3kn}6&$c~+b6 zwfVLKVcRS-S%{@Wpob47-uab>?3;UfAT13?TX4b%i686~!}H0_AKZ6BZ}fb)f{+x1 zgzv*kr{N@5B3jj zQsfEc_yQ?O?ydG^|49$tF&J0JW<`ED`H%U1zb_p@U%Dv>YFo4K>F_r`jO0u4S6A3Q zbc1)-w}+g~$>~IKG5@=(>h<#aD}Hyh81{Ri$-#nxP0D338eb_7)u5qkDavE-g@KxpLp`=FHLJ1PR-3ya>*dL-1obmNIAc=!Owkq z+OwL+nOg=yA)v;`;VUP`{+lC*}FD)*~g+=^BC#|)2-gy5fwmto&X;+3*v$K>O90ce3e)kgv=XW;9+^45A z7vaOnuL;`xX7t4P?A&y7&mOqf-}cdul(KhipzN;hWI1=aUc_%UVKQ0Pf}s0)K)ttcRWDw^G{6gUjQaZFsTz+B4q zmrjE%3)YGiFqc)KPbBo3H{bl7Ki$>*>P zjDBt47+EI=5OnyPet_Jj5Nbd|kCxS{TkrbrACBz(?2J{dpPEgE+&is$)^Gi{|JAwc zw|jGs-Xya(YW5yLQc% zYXo^RYCLjGs-;xa&YD6 z-k-GG%MfXQ?)QAel?qX<1}=87?(T-X|9fiqndd}rSFSl?XTGYI z4SeQ3+Osy2bELF)59OEi-F-8o$pASgk8eMeNPvWZWm!-ohhhj^hvXsv-+_H;wu`#m-M^mC%OFV`H2GhbC} z20rs1<5?R+=SXSK9?CCW#6Nv}`=Ml;uPvzkhhiKNaJMW(yWuf>m! zYB7|yHzoOUmfA*bqSFf*HM~eIQQ+`>` z-PZ$6jsa)-)Q%GgAA$&$(oiEuW!cGPdJNA-Qlzz{q?O2vbg}R9^+XO;;zv)~awz49 zHTi|HXCJg}M3oAm8GsuN#Fw)D-LZ`m!!_97IHmg^4P~M3Hg~Rg@~O>BHh%o4Q&#a! znJB(|ch~sb&}ARL6B04zX6%F04?mD#*OCD|8A0wXS41DWuYwF41XsgyRhf%R*NF{p zC9)_U-#aIqye|{w9%9hv$Wxaiw4M_or!~Uj6lBgXUJKz7JO{PTJdWifA%Y@m-<&tp4o9o zKadKxsa1hS_GwEv)5 z{)_M5`I$^nUp_s(b5vN5OgYv&mpl4~-csq7m4b2>^JFMRe=<_{%A-dpH$P|Cbpb2k zU*Xy}bQ@GzkgE)j*QF?VQmjY7m1xsJs{qVNG{>rBH(ZPBhW^9baH7fBls!+x%0D`Q4Duji}}Cf6vo@LwUVvYUY`fp?-KKW4&`Ysju(p z>bhyUqMQ}-nb;Bo{*3&VI(m$<^#udZ1ywz7gKuA7GF*coSH?WvP@?SGa(Mz2$03g{ zB-OR$#~=OF*EX+<4g~?s>2VUXb07f(m$Lm`InOd*0_{s#gTMYCp8xvl+4v_ar=LA4 zW=;gU@2avctjzUhuG=C4q0O1&v2cq{V&-`N!PI#DRH`JrR6~|lrthEr+$XO*5uL7i6zq0kF2?U4oA`PKN;!njd`70 znl2SKZ4lEn+Z@_!gj;Z&`O&_k{%mtvG$s?Fc8aOqcUWCZa|i>FR08$+kW|7Ji9(BC zn+;@sDD{Km-}uy~6VX^xQTXl6m>(Y}l5cqnx%E1!+wP1`S?ImRFZ}LJp1-90_!D3J z&OqP#Wzt$zAX1uS*5!D*2~>=r1|K;-GBVh0udUDP6@{G4&du(dv@KRbWE7(rYv;ON zpcauxD&<}`u;`x?*bF7A5%AD=9B ztzM$#nhZ!OK{?xCB4$*WXo03Dk4(5pYsqXy_a;*^QK=rRXw6bkN&roxtPK`_9-RzVDN1*;rt0 zy(*rbGR5l$y-!}{IOXEL-T%0wP+T?O%C#9Hr4?oE2$NBa1u)H1b^7SE@vXjziYmKF znW$6`SEa>LQc5rd?8>Y22DMlsp?r0HY0sg%@4sz*{kvx-Aea#=g;;9}CnpeH%Jw(0 zo*Kz9N?yI)%IKT=HhWk7!A5JrbUiiu#V__*Yd48>zXvIWu+x?a=OduO6xDHzM|Lg^ z3O9$A8cL?pxyJNZMF~=*903!t>{^jR9K@tuDZ5r?MtA+)w+FXJKR7WQP9g%&45D#S z{+s?}ojN&@f8o@9-z@vXt3|5Eg^)rxNy`Ka5xB_|*Kw+Te0Q&vxjJxFUm}^xG-fAi zN{}RFxA^&?B;wGJa-_@;CB|O(+9RdYeD72yoTmsTKL@jN0!kb{M9$n?Ydi28U;l$o z$Ki>2B28Ccb=%FPmv@=?OoJ$?iCiI7Uy4mNQqIjw(g{)Q?;RQ%8t56S)j7=OuI|(B z?LE@oTvqngeZm^fx6Hj-hqZ4Xj$;%X2ZG4g``~kRzlRbeXHhk~bH%EwhEL-cqStEH#^qbZS$`(YTec? zy3LnJY9dEiV$d~QHIBTwC~cX|b@i4CLp2#qfE4aj?Huin_a5dLC3V2{m%SaPLrZqadw3>larFQL^Ls z`2{J56G{$y1V=??cbzdEdC6Ty$*Z#lCz`Hvb3x0^$td1F2a+HtfQ=DUup+a6E;Nsy zJhZpIbNR3tHwKY0h&>OX?;$D{L4KQm_<-TkP;w)YR%z=OS1M7moAL7tmK;v#Ha|4G z>ju-2o!n(~o9{a}7i_sX8MgUo^CcCm!0exEn#WI$?yc`!Ic&z+Ac_rQzs)a~Aw3Vu z_n}7*8%_-*HV`S5w?433i;`83pRd|-sc*|+m*C2#d7&9&DwfF?*b!HyVm=Z2_Dxw= zUFkQ?Qwx9uL4v_XQC>IA{)L8l;?&eg{h5_Z%^3i(i4l1oLf1i{6`Gf_{r$uac4d*Y zKd!S6q?*UCs@iV{B;y^oxM0mfJUx3&Jmzp(n>fajV* zFUb->akPI{h@2x-U&4gPtIRb+#B9QmS>;?)Vx9}6UY%EZD7ovo-@EtdiP6#C?x8+F z7!sakqLUSvxnOkk;GsY^wvX&prR6K*8PA6i0&%TM)ZN2&p$PGfujqB}xP8_8!E=FB z16hzE6Yg6ek#mF^@Jw{1!KP*aW{wV2rFB)7&1@|6s+3eq-9rce=!vm2r^budl++(6a#56 zQ^dQgg7UT${cao|X&O`w02s5cq2!fm@SIV!(wAb`IePTJ?wXo7J(bP%XFy;gU&iKC zoiQJrIeqkaHW56x?|{rM8Q>YqLZmg~S`Ef=A#+*CfBu$Ux24V3VjxY-6!7k25dZugwRY7l%ie8xF0#cy8VqXi?y91kZHob?86OS| zsthoNW`EO`S0NWhFezJ^`b-01J)UZe zyr84Ghku}yzgEUohhS6_apnNoF2kJVH#hwi8Z{&QoQ>lrM11I(2I+*BS8o-(?SA0s z5ds^S%9%iB`#p{tM)*ZXx&?Lez}I%1Xdc~H^!f(DV3Jyz#$1S~5zp3+jd=5w$Dizx zw5no4rw&OHjfzL1{Q38hw{$6ZAfNcjfpsGvQ}&g;1d;&3L`N&qTAwE%28V#KlnHiD zk;vL4yF50tu?hFi#?gUFA!BFy2i~$F4)@J+v~M0D15=Bb<2adUs3l!$-OOwpG@|JE zgWuJC2lf+Itua;Khg~iMSv&C)eXB?Qt+Y0m0SFMt#7Aq=+K?fz0RjTq%7jnNk;qs= zcG+y^jEVME;%KCiPS}Z3>5gF&9jKUSq|$N_u0_ly_T7fax@zU*bQ~xrI`P2$s{7C( zm=!CyDi!Qv5ke*WJD2s2e9)4cy9kg(OtCrI&~ih%wP6?%$d-}WQ63;m8f?mZxt>M7C_29aY)p$2?~u-q#4tNYiWcBOa-R=1`59 zjcN03zb<4_Et{N-gM=NO`0h4U9z6kGKFk#&*!euM_;Pbs=lO@`NYj-Y zlPyo@fCSmHZl0=1k|BUY$Z;E}fn- zLDq>zzx%N28XbjMzLcxeQxsjw_LqMi+NoN_RqMOn-SvS7-lB#!CNVcB0RlHC0+k%{ zsa9o}7*Ljo=MGlM@+GX4LR14+PS;KCbdZ$EVt4Vz4ZJYkK>bVrhCvhrU?ZAOin@^o0dgQ2X0u#%-B)ze59P~mjG}Wt+@F@r0g4e0AVqtZ8+;i!O@_(@MlMaEIDlE zBcTT}K)`|$TKoUc08v7LJO#?wfU8V&v}&S*3!r=gq@5)_s%Q7J*3h+^yv@>BgN5Q* zzVK<`YqPbFKE~Y8k(txY_=U()H;vKeJm84R3O< zs4U{wY7j%J@{OalUwIFu^`x21Xl{AHIc0%K2{IRp&B9QF|?H`tF9fp^^)>B_wt#hUXo6?_?NoXwO79r3ZqFsHp{zc~uO2=17xn+~p-~7U zAwy*vr;X}bn}Sy0%QuqQe6@%hlO{O*)`kxQkQMd>aKSx_0t``eD8b7)f!^-1i32*bDJ4*m5C-q)c66EwbldJW29^o)m2z~ zYTO`WN!jBWo@)|EO*UtmY^EF9d;1WZsv>v^2*+ctHQ7v6OgvrF&W!^k5|;0b)=PPr zI(j0WV!QriwL&J7g)Icc_&9mpx$G6pdbx=vWYpLWWvz7pxQvWtqJ|9WJEjd1TF739 zc{T*Xka;o$&jiYSM>m_Q1bmmsahU4?%uJPex~{CP-9!oHS|@91UnWkBMN^qlGuf}ETrKUK(F#;k{pnUKwBJ88Mz0oW0gQOpe)MvpImTqQ-11!3DG*!KRHRhSIAsu zSP#c$LRO>gS zU{h_7Oe(-|D%IP4-?k%P+H@J_r=~#31X%>AC4-2A=q*J{Os^;MY!WV$%-cfdB~!Ox za)gQY2T~1rByx5fPBVd6%B&WmY;#;CV~~bOB{`gS!Bev!9SG6wf-6l>QV=Hz_2+jUb(vTylV8vz< z05MTc3MyO76*4Rm#Az?$X_qlQPox7u-41iLL6jt-m=lTa;;{qAzq)2M&(F@mFhhZ$ zdwXECv$?Cu%{8LUmm+H^>Jqxm56u2hFXB_1uc&OrT%owl4|v)|o3E(bF^l+qqPsYL z;P_Y9w)rGrfuXy*!P2^-Sm$81fNLq?v7)S{sVHpOB?LKCZ}DwO1s(Ae6A??wNQrJ0 zaTO6OkC1koX4*2CUJ#@LNj+AKN<&bR48_Lxd-ByI$NzcN3Z9>xMKpGb!b{oyy7odf zGGq@t?=7L!@>M!7`^a(>2}_Wb6e3v^?3D=FF5=VsjdThcPTJr&r8n?s*`+vn}2+kZAb(X|(fB_*@O`^)`_INF#KD7P?cYcGx#vhP%zkTc6xRZnMjV=K zO^94bA|;~cA&P==`v2Rz^YFIHJ73`6cR7o8$y>Z{aS~^bLsF6e0g}KZKo_Qkc1ouO z+SzZnJC{z{8JIG3y27-5?j4qvp-{@u4$yTP-~tKI5MvTT658#q>h4eAfi%UACw~D zN;xheC84~UclRr8w%HM2mDO z1mQIS=?x|cQ7C1#Q7J8$Nu^R%AcP0m(?isr9>RNi!CmoGyO5I(;JB3PCZh!|r9tX= z?Zg#>(AcF>LMlR(RQnaasQ^$YL4a2X9!(`zS=7=+F)jZ#t(Vx-!y^GyX33ZW4j2lpb*>+7AfZbRisg7Iz5IGye0xBI1Ro35(YI5G>G%uaMKC#xNxc1Jx_O0rW>Kmn+H))2$D)!*2%ciT@dQfHLZYA zUg4KAMF`PV%8Nk=10jS-8eyC%G(EZ7cC7wMh@-=lr zLMd&VX=_R;pBIqcgt=_NAWx)?S0*P3$}2z%Vp0SHfMr|m;7RmH{KtK&7Gso`pYoNA zPY5BDN*bkE-*xT2G?8zNd(NQiIKB{ta3!cpd10T%N5WiL9+A?vxw@v9@G_qi6XwF& zL1q(kZ!$?lG%86f1_T12M%wcf?bu0ACVY$*Ge*mNLZ%2IeudE@0E7_2C?#P^h@Y6w zF4vRYh9}yRo*ZzcR01H^2=B7n~aY8%26YR9lC5PnFQ0g9DtC@ZfZ_OVysrN(TT91va98$-3+%p$odqc`$v*ZmqW1PesjprYTGX(rG8n#mZOBh+6#wN52?-W4Ua5j8 zl!z0A5Svh5N;wroddCS@bYEZhv#D^1+oox-VD zp#wdyNylju5}w}=GMpe<#R4r92(PM8vwlF?QcFlAqGo+t^biS;C|Tdi`eXKE7SH-= zw^emSTye5Krwd9p-LAPrM-ir z3a!*7xRP>TpA;}sM-TMA7KGF8x^PoTV&`)G3x$a2?S;PV_38^sSj9TMWYsz?7A#Q8 zn~I4q=wl0-I5eHYjS~=$(4rc`bOo~aFkza?M+aLiUFA}^CNWb(ifyHsqKq>h@kM#8 zBI-?arHHRkm4tGU>^0$-&H-}Z$F5>G69d8r$j%U#5~49egOn;|Ai{>@90gMg zL3sg$XTi1OHYH;yFOL)he#P?~e_`R05ac8?49oTFHDS=8?YYi;&MFnxlZKRDWKYYn z|Jbml>B*n|^fzRDoFJ73uD)6(fp&Z1C|vq&0Qf4DZSv{{T)Buu&L&$=H?@?ECPQ}%8i%E zNx-s4lIwl~;##`$;d(+eMoE}3S_vsFINqD!vt&|XyEN+3$K{0!r3*L`wB#eOC;5oYwjo@jHSTl`QLf@PfxX_WkUd z%VJNz{8Cza9wcK@Y*;5J0n2GmZg>R5v!cpJ>L}3|Ct;$|N(gBo?Y#+=7C|A!5Ji7HRgiDEu*u03Jn3UTdRfC}jg|w+- zCOtJ6W1y;sP-&C}qSP}yhmc9_^??JA)^*38KjqUKJ|?Z~R56m!=sd#9764MAte6rS zglD!wxPuTf1VRGvtRrykZh(Xp;f^z|ZPHDfBnX*2#xYyrD$V*jTQs_2@dwN?b68cf{^}-J$YvWdQdr1QQ42_}X8ojl z1eO>CBLOfHK+0={Ax=n2Ld=$bWrZMw(MTC3%nzCFfpo?pr3ylI zh~aj4ZTkThV8S&R4J=|#$~4I2_z3ftaY!PySffgq0>Txp6f9AMR0vTx6QaOe-M8d| z6rt)VKXy>5oAQHUjTDwd-_?J92f%zxxF(~%I_9J-gN!FfnO?#nA+>P5N+<_moGXzA zDx?CUFecof**HFb+37w#weSH5MXl3ReYqmslaMkE>5XS5k)l2*Y6)DsA0Qkc6cC*N zD>Mkxdi}x0A{g0H;JITqRcb(Jp*1<#J0{>e$+fzO=4%X7BEzay5_Uz2X_!NNP)a z;*J=CkOn+C4nTks9~4>&+w03*W(*43I{}5pY(`mJW6Qi?)>mm2IEmR-)>mmmNaIU_ z5;UlgiV!0aV{%m3woOFZoU%Otu8-AgA>PDoF$7Nb%I&BF0GJZfMl|hb(kscSeWy7;Feoogv;Yf+> z57SE&UcHJ*cLGwFkWMn=GaXDXfS2e72m^|X01*eM&qm6b;DIt|MN4&IrCg#G0>tN- zBSV%z5-~4 z^EF|oU82MQqC4i;h%3|5qU$bId9YL=DrejuQ2=J5Fxhv?=cg9_Yx^D>x@hCa6#!5a z1wv%zF5LaXeW08{iZm{{^dqP4Cr>}I*i`~oGt2B%B~ilHT>C)dspmZV%ga1h=r&h} zlq;{fTFKt80$4&ReXOS1yy&Kza3~wpamqh_=KfX8wuTf!75}#PKREw%-;t{E5kgBHegn#Si_nq!9q?A5%(Z%lO&wLsO-AtH+ z2Y~K9@Z-))e}}(w_q|XlgD2Ct{51c^&n$Ao%2w*QL!5y7K5&}!vDVC;cvLu z-Tc|Nd;!31Irx)~%h%udTmCbo1~Wu|KN#0)!ygQ6Q8_ks{M(%^!N4nYmU5NjQ{BkGM&ry z@3vpiWi-rKX`9`AKKf+f#NC@NzWl4t%x_pii;9X6i^U*>fRdf}no^3fu`x&~;kqs& zkw_-1h*BgHiA*AelyDpe(P$J>N)SRYIyyRae=HW8dIOH*ps%kFdtcep{r&s4t+;a2 zm1{4${F_hDZ&*5~{;T`;^!(_Dm#y4#&Bbe1FaNhE=g*&G|J9dzUT^oW3KjhAn)S>7 z?a785_$}@JRRsl~Uwg^&AM98#$Ns)oU+UT2;cu#NzqK-_>)&C1#YI1R^(W`6Pofe3 zef9Gj|9r)Y70`7Zx~}7$MF^RKJkNua*(uqx_r3FP@BI6zU6WH~Sr!f)IDnq+V|VMi zs?^ps{#h>k-ri&P`2CDmRV~elKQP#KkE*J?I)}cZD!is@S#JE3ZTC{?qq$uFR8@VY zetzSF=c`Xt74Hj$3V-1^PG$mm&-<-6Fw?~t17i%fHTFT1=Z=2Jc5I<2 zg+I-O&v^X0%Q;;xtTeDr+fD_=P(p6h({Tr@gg`N~(OI6xSIM9I9jf(nB{kjY8H zRYk%ufRYkORn2^8IR{A_V7dmWX>Wai9T(DdAh-N)W%;ceXLqCE z+5bU${A2GtfGFkQAl$iaZocxBuhWaZGoL&f%Y;Vye3=l+kZfCK{zi8cH$= z4FE6wW^h&MH-oE6zmfSV`$n)y_cNTzM`x8y1-sQ(zK?7^dNc-FSeVIbk3>KU3PDOs z<-49$IGbu}xGSf}7IN;39Q&=g^-F$!YfgRr@!a}}ho|rJT<4?DbgjD}B72XeXOsBv z?JthV-ruBwq8#}(5!w4v?%MAk?~@Z|?#?XBlbv$Xu%YD0A3AzKTBd`7X+EBx+U*}1 zCVFwP^ftUIeZClI?`39JXrI48G-Gsp_OGV;Z|4{8k-TIZym&K4Q#tUBJ(4$WgV))NQETq~ z*n!8TRkt2W*Fj9oJrCaU6Y12h1@AeGN%8KFpXnNT?qTUwEC=atL&}@}c9r^kAgT)1 z)Fj>VVn_)oZuq08zu$4G(=<_=n(VJg8U+Q4cjL0J{J{7AI~T9xjUQqvrK&4~sw0A` zD}zHiIMsB;J+U)Rl~CAie|DhJqHBM?(O`d7{g)4xE&H>pKRW)NM?apr@KIk#l1ug> zr0bc}jWf~s%IF=Lp4Wa705F<3I1?}XhvN@t{h_SiKga${S^sF(@0?p-|MA~R0ML#% z0|3my&N=mMT?sUl@ArREBwHn0hzLbUwg@BH#UKe;OZKfSjctZf%FiyxzBSy&$-Wi^5T`-hU(OD zkNZk6+tl?_fE@-00FpD;)|a=E!9S~PkJ4P5ttSg~6*-Dvb!%@>;h5|?4CR_kL*Tcw ze=zijcT{X*_ZVM?Ns~{XRGm>5{dVeIt2ANjV&<8b;VA)GOBb!pi`i8`QRnJ@Iz3+Z zIk|uJ5;`>ALE5hBbIb*(=9OOs{GX}-%dnz-IaDF@Vwk-K-NiK-!wS6M8CWMNFVkL5 zJy;rp#g1kZd4tyoEl##GJBn3d?$qi=;=0inGrB4w_A|~IXm^Cud3pRZsw-ejv>Y)2 zkWOwS!e{E8_#G)HU$=q*z`7{da9}x=$qMAI^6fZiZ-ND$r3kI}yhqBY_&^*iTs`n7 zwmq3VN{Dq7-?xBtC~Mg^s8|cw)0U0wr+SJ!>lH*8g%5s_lpGwz(s@}}-BN#qbVxg# zXWTq^Mho0t?PxnB2#uJ{uXMa}uI~Ni>RT5#Ai24t{noe8PH)L$_p6pQfDoS^VKIxs zZ4$Kh?2?xQOs(>OZ9cL2yqq)qt2%;(nb9r={xCSvCRU+cvsOPNWlxRZ#KX9Mt&F6D zbkYr%h4%+Fy9ZSwwM?PVvJjs;9aozKG$Va`KyH(QtGI6uhvU;~R&a2P>~!ga%agm3 z`k2Wr@ENsvs?$|B>;;4YXmg{&I$cq}sfLe|H$ zGmg{G`xo}D9O{Jf2RZ-tly3^xuYLP2oSxs;Lz^SLRDt|d3;9AY!WQ&x%=fu|x2ONj zYan&l?{*E%CQtn$cS2KMvD)?< zMe4}os)jFqwp0`J^IOgQn=}OyKa!Q8!CCJk1iV}8taP(7$Cgtr4#(c97C}GN-WXRr ziVb{v$>kXEsR7U5Tba41P`P0{$e0)r>v~n4f#^>8YsCSPhRO+v2awGP^WUw-L_e2Z zp02=FF5y6(KDc^eLpxkR?04L>eDExxflHWhwU6Lu_;3U+5I7w-UD@9z_9s-)6hzD` znPSW-aiM%q_h8(CAzZypg#A7q%dmye*3QU2}+`@;usGB)~tm zh|ev=4@l$4&#d$1dW1(bIAy=mchf)W+L5R(nQy$X@t)s{CXpn~YS|ddPtB`08&0{v zSsLTnf%7wrx|EErtkdOS`~m``A@a2`Q1|BA^VjVjhzDIUqM8e9%S?Wyx_yu~vf6$O z@6Sd+yqasJt{XoPALIvb!3}b`JixpBYVoe0NiR^J1)+O=se;CIz#`dR?F zNZF}q7@51@H{Pu}?oNH{U*!;Z!^~_9^*4R3%9WqGUzz3`@Pm>(<+|R$CEsUHe}4B0 z`pI3-0Yn2%)4qm`24dW&BaS?tPJDGgi-X5U4JK$i9WhHA=*z~?lX-epduW1y>j?50 zK^>&KT&)J^5+A@gi^JqMW(7R^VC%1h-HFdD0HFS!25Ckns6Z~bvoHc}3*qaD?P?1( ztTfRKXxE~@gS`wjA0(=(6X>bAE1z2=<+*{2*3+zT1$JK3k0Ji-qXW}(PZz{FXLY3C zYJbUH1Dio&(n7q-&xxO!HfgvBKhkYutQ&!Rz5Ao#vb9Cxe&>RcH>d`^bbadNOK=jz zgU&So_Jyt2{l%RJS{_dw2XvP=sX)wFp-3^FKAI9Aw2eTbS$I%MMMQX?mtt-(9rT%2 zRF26fMl!y9q|yEx4dffRjrIk_LM%mS7nMd-cc-dbQBO6(trXRrfS-kc#jb}u|nMxu(QhBjAx4k0BV@W>DGd# z)A3Dg)lfIS?5T(#q9~6=kBq3gYyJ@7Zp4;#O`!K^A8MqYW>EKdQ40Lw`Az3qt>9Ld zhe~nouVuJ3$8z9dUL44>w7;1Kr;9YABjbz;YoB}_2w_@X_pX!GFFuhdry zdYj5~H_!8i(Q{BE&&8Uwx)mcljBBG>2E6=RY2?SERZ)zhu%I$I*7`t1m;)lM@r?rZ?M6;`mRSOr6&I{dV#) z`)FgWj41!5ZI1cLwyL1=d|u6ZDsn8wPM=2L_2?c^=b?yEh=>s z55L}Xgv^Z)xQN?Ux1EjxD_DH^)Pkla+?2jfV+LI)QAt*Hg={cPL637*CQp!ybRaQC0jYmo1vD5U04W#ld&Sl0B&OAN>@7p`;V+ap;XvF}>7}J6B}+o$fk2?HHL_-G~!VgzFAp{d?Q{iVe4f z{6#p5$=-&`6u`AFn0VhjUy`9B^(KKcga6TYHcN{k|LFDXp&rQG&};Qc<*x|>2I5-S z@9^YnEbH1S;LxaOzmn-Uq>&wN=KNAvGaVZKo$t;(J`xX|V!k?x>)UxUupdr$+zl58 z2B*223R)xVFP(9kOJ}6)vFI&*H!J)m@XH%*D)GT+mJ_g%s&&&irgc$s_lA7wRu|^a z1H)(?gR9a?@l%c$u1lR*x>?Dtdb!Oe0`2thlQNyg|?tn!8>XPDxc zxgW=f1X1xT(_|ys~KW!vD^C_O8GW)b40y_qxl0L_||$P;CWQ zGKVrIMsqT~QKaVKoSxR!54gv=?#)AmWP>SY6O)dAQ(%kWFmvDI^~1vS{Z+5K!p_tC z-Q~H@e;(Rv`{yjCjeeuCSEdr#{NP}EW^s3YYRQE@>axJFZN5cLmG?IPS`^;?aF#&4 zf&Ir1N(Y1qFlkE=>P>n^#*J}e2@eg+m-rp(sYAx@p_CB^JE%OJBfnI*`1tr|m_3m#ndmWXG^V0rNeLBc}u$ zgTAVWX>WJ&Z$oE50?}Is+XIME;qE(aTf}%5a!`NN5>5*l#rC=~Dz7Vz05CA?cEgsa zZrfJq**k44Kkl^kFJz~2&(3PQbYoR%DCi{7rEr_F#T+&-EmHT9%^XCqU_KZKre}+IHti`!2O{*7;GIZ~UV=r3k1-m>tu?#GVdK-B!)QLN?6M`y^EfW~@w@HEYFdAN&POM%JN!3CfB%;Emp z8~mWi+z%DKtik^sezt1DCU>vSCFdjK%l(p0V?1F6S1Z!V(eE|ALnk zT2ct02wUbj1^lpN1KN#mf^z(%S2x*cx0%})jXU!M&3a1^xLroioaqlcL1{z2++qDC zF61H6ENz6J>8986*G6J|4OH!8IOFgP)oW~^$ObN5M4)F}i*drxp6pak9Dn#(u7;Si zut`8+_MGfdYs}|)A2QxvA_+9U4%Vu5+LEI)w=8eiSWG*nQ-6e+)JLpl0@<}1Y-U0691PKvEOE8QrON4ePxzT!Ej(IfW6u^u!| z-jM>KZfn-bxrt13mG>B>ktfynH6p)Q@uo& zyt2(*{z%zxMsT)~MNYiCb(aQ_NbcXIdaciSIe-$O{|94<{fn{k+F-W6rEZO{rMQea zc_b|Jg!ULx12Nqd>IF@;BtPd}&M1!e9pMZC-#3(>`l&DS^+^&rzo-6vi(lCG#6P14 zoT*mcL}b9LxXOp}smP~6KFVU`A#gNXqHmAKC>;J#`TB>zH6!e5--c$+*HvZTgU)MV z^Ya|({YZqd=Tp1A!jM4^$fiftd^v2}!ZB)&aUKxscVZoyYU}^pQ{^f7Gc7%@0m5*C zni-p);|PPLG2!BX#1y9uZ;@88HX~PzG|{$J>-&y+c_x_rrDTdBrj9vUt~p@ViQHwk=1Q2IywKjOqYni9V5gW}bj`Y)``m3L1*6jqz54qpAj*v**#B&Imi z#NO=UpBIfHs`<5$RX{UI^UNUUC|BOF`rcR&R9G!Qqfb5C%5kwPaUh@ruRXjs!MK>{Qc}f>YEJMNY@>~39!`&Ys0k5wD0};Da@yzKmB|7cs(3LGk(g4f zaq%ruFDUB4*ug)>-<6#DD8=3(%Mz=siYI6ca^raaq^>#bs z@C!BG#W$8;wqs=jkOfh{t&wE{GKwUv1g)4dZ!OT!@ec3EiI=klb(hBMcYdx9)t*1j zVH1;m*i<3^t5zcE71z5*Uw5d=nygg|VmbMMcn=g>>tG!jO<0&{!`q_rqBTNN2MTyOaX1#~*A7NC6|Zp7Z+g3t4gs7NQ$v6-fO%j}`e9GvVr!@HtpC z*;je>pT2-d17eI+{JDc(67-W|a4Df7D{F(;L4M$+p%x>TJ~o>*#%o931La!L>jIr* zm}XmrZ2>?N^P30o67BOt&osLoh1M;f2x#*WJ^Op}N_IfFp9huxgOc+Z8aYPzNy)LD zy>pFc?k`UTng!0l1vt;&f&G-J&$P{QmFf`$0{u%-JBLxRCv36{=pX$rK~M5Lsx!Vdc(^_xs5MQe zNsiq{hcQspuIE|-5j65IU%6&X@I^80!&qTr0DL_AaK#EWWMdlm{x3(81xtP+dF3!_ y7@*ZM*fsvkj@b2X4_5t`2xALE{{635bRK7~OCL?%@~Q)j$Hc%wAF1d1}guI zH9EfP#ud~{%E4_N#rkaec)C$=ey&?v90`)s+|bs1Skv{PMpiIz_65sg068}oH^?Z> zbqE1L0U;+Xq46{KqR%_iK--({GvGM42Vk_K@W|Ar*9-vk>*E1J98J>+8W9o0#G!sG zVp*XGjJ#tJhsymM71&T5<};N=xaSzbqiEvL8OLk3(64D*YxbXGQfAG>9I)62&w?zBV7PmhqRY1f2=s$I9%|>_) zAI{2vDjekKJ6?cqzz_f5-qO0zButUt;6lzl{;s0F!9l@F`*p+3|ve zCO_xV{$=kO^q)fX2Z9P4VZpL($KD1;H9nExv==r#BJW?l?L;B?J}9(xmIcE%x?ZMa z2+yajNqH%M=IV&K!!=y9q50o(5<^5SXmR!i z`vY;0SbP2|`1qUc1i%)m`PSFF?)jc4$s?5BU|8n>C>R{NOwJ#^jvq>-)(eo4#}K8PvUr4+JXY!QL~c0%fSg6gWFb4{qaV-wV>lh%lj|$v!8Q6`&S|(G%xFy(8mVTWs=pm|Ei@5?|TNo`dQIr;}dNn%Hg~2 zNw@bgG+R3IUwav~)6nihK+^x3&;XWB9vZzjLi=fY=I}HN5GZEoI3rqBh818mMR*KWeg>Ot ztgraRFOtFYo|p+A51V%|E(Y(?o{PXX)pqUXry&9x{E+#2B&kH`Yu=!|pHpjFPx`M> z`{;1T96_)(EIgPuTH)5qdGSRiR{L)+JZ#_D(tmnA>?m)Ec(WLL@5qSR(~3sMDc6$y zR%TE5AtW9qI$iZ(;NI>mZViNU@H68DYajglT8D8_i~k6$elS0>r&Cu>28&)W`{(?| zpY?u7;1jb&4nX|N^w)u#xhGWFvg3YA-;k!b^)Zb06MP@X?PljCoqc1l-*`E7`L<3F zIG=#GoZ%Xxfa?Cb{iX^}IDgG?#iYVS`JaIm3p542JDMXGj|pY|C41kyl}?j#9@cy@6u0yuef+ru=S7q_#A9NOXQz0 zrkS`$*858F6THOk|3$IEJ=4u)A{j4bvbZ{9@rgaJ+DVA#+bRBcZPyM_PF1Xo!wL5Cj$(|@gj8g{R5+JfMA(K8Qe(6wL<>W zrP$q2*-xi)Is-=|&a2ZurkCWEKlxoe3#q`SGya&`={=1T8=YhIy8kBTd2N$R7=dcK z3bZ1?Mi_}~x_2f52SM|5{F{p>NF@EEKbijlXWkis`hnv3Wyt=MY&bpOhzFz@(GPYB zKUPovdJ>A*i7y-cCimmt8Z8!nEl6VsoMQ~gBU}rzK!kqb}~Mlf(oZ-jdzZ|3l_~z|P<3 zMg#{Ajw;K~%%mOTH~@L2-zgX=Nd9lb7Zal_5J!t@2H{| z@4vYGUwWx-*!a&|_`;6G28g6jB(__<$*sQMLqb$NkQ}^7*eQyRis=pbK5Qay@ZBr; z2L75>%IL=!H-zO<->EpO{zmw+;_%2GcJs*`-)Qb$SY85(vwRmX8x^dw6!kJF^x<{B zD|z1pC=n3f7odZa1k!OJFF4|l!zxpy_2YNh+f=x{Q^e(|Ive40+4n?cR+Jbt{fok3no#it4N z?OrldRRN`*{hNyV%3L4L%|Ec+!P8WV((F95<_^IJuAM5l$C}3*uKdP!i~5}xKWcA% z{k?8qH9Nrm?=5WK>3jmUHE7An2kKFYS3&e=6H^ZCWex0n`X^bkxFzzs0J(-?uALNK znOeecvTgCK8T!-w2Q^H0@DIuvw*cMO*|Y;H(|LDZ+*)EZ7iecBgUhHJRQS$dW82M1 zNF#HE)OW*V;;W z3|&N9TcJAYGOSCNq9oH3=$|Ru`#5kCE+`oC-?q`s z>-%SB%WNiEk}SuVS)mP%g%HIAoGx{4y2n%Ch=4EYq3dC88CIu8^-T^P5OkT)bz^)@ z>-&>HmWp}hYKb4qp5PEvzr##Yzq~{h;sj`yg$tKfqsbNuLkP{IqNE%PfY15OL z!UBKN>=FGMuS0=vnFU)+_I#I7o9S~X0WDRSpQlTIKA>k77&=>01m4lcFChjlXin5J z1!p5yy;eI9IgIAfmQ>JXu>Pv-I;1n^K|-QPBxW%c7D3J!ye_a3!_*T{$89PJ8@=k^ zF^N?=hF<##Wju?V*XFi8h<(xk^LX{`b7Fks$!HNdz`NJiV;c8+VCXC&W73D818`y? zs<6Ph8e(8-2t)GlKm>G|`N;>D!XP42L8ygTB0*J3Lusf(H%6plmEs^% zN`%a92O`uBNkFh=$gvyG<)?URu{i*rl|d5&bz1?`vt=T{=adUU=sd+BZo(sn_J2|P zoHu*3^WI_${e2_Tn}| zqnKlwZT;#!3Q=Rf3mVy}i6#eam36?BWpp3S@X)d7s{Qpnqk(bZduISrG{A5vX2!?3 zDxvOn7wV7cfA*TqETd~}OMA)}5d7=L0deVF*v>ckLojI73*YNGETz}z!$;tYSHHv9Yo{9Z zruRuotGh&qzw<{8$+hIFT2|!!*}cZusL(hs#{F~zS7&COd3AL)K_H9PYZ3kT1B#>| zfdz^5)C(ar3S3z^6=n1p9UKW7A3)*ol~_t}!0z@;g92|89|QT97V`!#3O!`Pn7Ftt zLi+C*%^oy#N`NwHsMJ|W0W=1($VSJ?zj}?967KGU$w+_OnOPeWF+Tho%{XD=)%UF7 zTHxS`zL3Fx-gIzXV~>yi9Tamv+GQ@2QtvSd6G;;?3$jd5Wl7BBOH)|ai_##X!V7mH zL8vM`YgSB$^{!5Fpe!WCm&6Fez<>_5=w`E@CK{PHsVg$)jCu~F@lT+n2fPgpZO3c( zj#$qPD$+qr!=R#Si>k8(N4jCG8o<6;qK6wJ>`9{T=m*LSS2n=E?}H31BUu9p0%+86 z%~jwSV*Qn{i!Y>P5nV5|kDIcGnixW^1GTmM-@R5pn%D{$LZm-;PcPB0wxpJK(DUXa ze^YcmE7IZ_wdYzovPw^$3ScBLlsdNX;Dl*lM1<9xW*<#!&w;oV!38?{- zYT`UK0g>dNrO?7-l!qIP7fp4_dUpw5fhkYMwjc~}CNIE_H(-@Kjk)m#*C-DcPr(Xo z>7SOnc6dXvyq}6k22!yy%y5{|&CM+7;lit>N!u&d~x!!DT)%YVf?AGL5qYceEL@YzN%u?}5w^M~lLU&rTBCxBy zeU?DC$aY595l^Po-EQ1`uuiK{qV-L572Dj<-s(FL05Zi2xX}i0|F&hWn$mDfgVqc_^FdkVI-_okstz6ijX5M%rsjC z8oH4cTi#yQ3W2gPT3iAGMl?~ju+<;FjBehbWAdJ#43dJV8o8%6!Zs^SK1awEwI4lx zjG1;r6~2-ss?#ObIH??XK#RTGw5J3{iu*zIik}Ft;#fhO92z`GpxX(HCqw)4fW$py?z?*LvEV?z&$*74)fL!o zOImo~6Vw=$3kpwmEE-DC{tpCxsD%|op?{LfS!z`u1z%v*2@}C*fgoWwenXD{}KRl15V@2#kNNPwnnjsEzVP34! zHmh4Hb*JnqY;?A;YQLQ2>$YUN3F@5U;q>?xPLT;9=zJ|6wIt6~j6)1=ztjzgH`5Li z1y&P!;%9r{|9iio^ZSeuj~8?M-g&=}uqD(jDma0job@Ie{_c1WI_h?(+++6wuQi*Qo8 zOf)p1>*@xDv{yg7^WK*43R_Fm^I3XWkXyAc419r$0Vcp8m~yb?2Kv&UG|~%@G!) z1m!6VSyB#X_j~5dOFvqfZTXN?WKmD!`JQwnM-hAcjl9}+;%QXO{eVLzo|JZ#hp8w} z(3LbE)pUbJoiPgVJJvt4fcmONb0{*(zF<|DBrgEB5lFaw77h(?ZKH^dXKEM-n zg1T?Ob@iZ9-GVkLc@O(=+Q}INbx94~L9h44d=~Qd&*Vp-*h9+z@Kt$Lc+%;r$}hiG zU;Feuqa|5zdp=YnzD}Uvfo8|zdNv9oSV1%x?t|E@T4Lhhr;nLyzxfn&G0?-` zZ^<67tYcKUx{epTtA3vYISbFq25WpB+KkshwkGZ@Pm`v*KZ)hi5|r(KM3QMDb*oTd#snMUtHIOIcetwPL%%L!?vgtD z{wtc@a0UV+&fYy6q^}MbFDmTF-r4J4iD#Fr=gBdKeP!esG|ZT;PQ+*AzkKh1I5bag zKJ`0|fzPe9^S}6^)6sXioxot{3EvW^sZc5}Rgv)7rh$@Fg{6ZDly)|=WAt0hU z6e5CxpdR^0wG48+Q6im`BzJiN>kxxiJ1S(U14?tq8AeD`++>UWi8bF%)URce`gCw5L|Sir_?IT@-iYmWj!|1U$*~!Oz__qLdJ7l z=aJ|l(eUDD9H~`oixMb4d;VOi2YKCxD8FwFn(X4fiN2;b07?lBaJp?zkP{LiybmqX7jQ2B%eFY+R7(H|EcGNqtw+5n3dML5VK$v_6uw7A~ExropYeYTgI>~mL6XA8%`1@)Umgx^(G?=IlBzybka?|Pw)V@0_PpK+!yYw*QCO3o4HmY2W#-SWATgH z{a*YI|I**KIST`;pVQ#T2+|x7-4b2slg^u__jOQb!CmMEZ|5*I#8wb3*YQz^-c3JN&?p*Srcem)FrmjW|R~Zq>xZS~pR*!1d_5ECZ$%{;D}c&ShNh3Ul?^ z4j_D_ZUG}S5d~u!ZwDR&S9GQ6`1a1zKjegWliz3W5hIb455iIIL=x)Q@crlu0VLxh z*;}=_RpVl<`*5u;hdCTxv(MSe)|XnUEQ;KS-R=EB{t{5id9%Y^1OU9v`|NIA`!$gFfdnp7WemCB8{SBdStX8;HxtNdQieN$kC$?NLYCtUcU? z6ckgaK0*_`xSzQTqbX9cTDS|LV7ki9`<>5%Lj!@M)j7!XxuU4d2!&jlGuZU8av>vt zSNY|*+2v<;JzryRYw+FX<4U!tGJd3>yIN^xSi}t6g*VsVu&Z3dS_U1}HGGWR-V#7l{ZyP|~3%E~(X$odMEp?+Ex7vZMg*NSJE*4C<;Sw{!~ z!xiiLIq@wdXe=RsVi6oEQK6T2l*j*I5MDM65|Yu4v`Z)p-yZLvOie^a;mkVfx8=rG z5k3itVBI1OIK(&3!7u7*UT1Tu>vI?Ni|TKv+_c8i;{k{OXGErKm0CytzSt^$hhhgrk32%=v$nH2hH%_qGHY4HKFf`X8Z5GW(e z4Prwxb{n2k7F;Hb;5vHp;wqTP1LBlL$|KEp=+Kgqtqt>bt&_NtrreYZ$-tk5EW$L0 zUzF=_jKRfUHaw&7?_R9?Fs9c@^7ArGBKY9J()>CR6A69S;*|D=!&5S&3mg2GO{2g1 zL~r9pfKXcgk5~P)m2}gs^Q0(UNlR)Pd(y$xTA;#G#b{1gQz2Zb2i1LkRYXg<5fJ{( z{ZAS+j~m!+RAz4r{eBLzJD&bD4YZwaJPzj?ggxTtLVoSjttQ%I>ekrXv1RLbWF4*ji;(c0dO9}UruUL|tM`0Z0tdCdv=;WK$pb9vtWz3}8&+Y^zb2tG)Gj8{6DinPL$cta z(D;zjBb&m6gDIbl(|q-^P*&_N9TrJM$b~Fb0x(Q`$QKK4h4mnrtZ=o1F^^XBdBrunWJewHwY~!W=^%B~RSA ztB49C%$=v?85uj8cbV@XS94;SYG`s-EY-4NA9O2bG2MWG<(&JZ9p6Eu1Ff$(?%(Y} ze@s;Vx<*JFhDi@2^lpv(6*HnywU>NOLw%;6g^<#-Z&~bQ^m+MHAOc)0x`ZEuon?57 zZ3Y}tkBA$2J^l>Eri0D%^{n!lhQdOmNP#@&y#M(>9q=4*xVf6#k5o&@yl}Y z&gR~!=0rSiSU2(cdHf(=&a^+_u66i{|EtN!Uw0ROOpl_Y*U8UkO>YJY-}Z24#!Aaju9zhP2^0{Ch*h7)fDLqvs3$A+(aZG9kk#%T-5NQM0?fl%QXH-ro@n^i!E*i{Kujl3~ zW&~bVD72~-v%7ykAy4AO2|ve|8oH}v4hDTO4l`JFKi_^ zmty@Ln4&8shIz$pi5rzJ$q50U)1ereoP(|O${MKf#ytAh28V2N6Eo@K<5N*LHyowb zXaV#)_t6zYGE(OO+zgkGX^-hX;+ZJ6w%@z@y=ItEKekjU?HvK3{T$gTK@%ax5ty%e zR>hT2T}Y{|5Z`P;I^Thj5#m`4la2JtHE;esGwFwJTQX`n*frJPUS+}}KI_B+ueoPr zMpmJ}GOnHHoB{O2iBN1qusjF9O^w}w1Q?|Oi^3-goRm`rR+5T>XCt~4Opw}`$#9ce z*~W}8Zz|s@NFfQe3`3``)~#C=3(i>>(&G?+AJC3N4*vw{X~avFAdVz(Ad=}b_2I?V zafKuB+xKjr&HOhPE;4bj21YF8QP$LKs;X|PkUYs>*Qr3{ody?8M}GHxtq{D4*F7A@ ziwq42^`NY7BU}ntU_3@Y(AnbSWH=5HKZZv81x;gC4zNa&Y%7;twkXXOQ6)&p$wVGS zfFgasPhHSruIuu6)XmcKZRsoA*Z5OV%X;PSE%qBT;OdgLY&z1n_x&qcuXe5Lo?uRB zz*zT*o#VGw9mi~fOy<^^UKQyZPOkV{_rD%y|y0BbB`hx?#BPvKe?&pls z1ufb*L0(=>u6~mUk>h3CK$GFr#s2uGDHEeE6cm)iyT?85@Vl>1q1v@(uiip`q~zTe zCyQ8bc!xDc8sp{YI=a3Q> zkf~USx^lz62mt@SD&1xpTWQ-f*v@@twwL2$xSTs3YzV1zv{J$@io}ghEvs#}yX<&Q ziITN#EhQ$hYU^|70llX(GTlSp$#j~nrKWa&ORTf!_N8_@B;)rIwBJAX?T9(Q)+{Q>}l`e2& zGE^e|<1>Iq;RRuBE&X>UBTjoBp9epvP`fxbWe1EKQ zp(B?Qj4bwR`u%YHNrE#_LdHAAwFG`>^Y_DW*$lbSaN{qE{i`w&ZKe4Z9;~WT@_HSu z2net=ibZrXy3cPj&?r_|)w-l&wj?*dBD=%03HEmnForPHloYw;Il>o6qPcv@Ue-7> zFE1^~guYr)KEDJH&ZiBH4WcKHVFpy+c#Uv4*Ha}a1!tQN8|2~A&`?*&D!J+uAnKrV z5KyeJDCd`(TVBhuS0Q4eeTj@lp*$F+aYGz4Em`0x^nh@3rf=!X)9{5)Z3y&JxmO`% z07|aOFfR6EsH&o&B{v9}{_dcOCNc}jHk7LS4jn;3Q;Nl^HRvCF6aa@H&x1Hz)FZzwdTZ{1Q^r2<{SBTV^U|K!7^j4I4Wl zra6e@5k_?S)%+)0hcH6#B7MrYw9rmlt;BvZi!tJ0_-GDX=75-UXzW^NI6#KLBs(a?Uvpg4|S7y4#8eT5>BFNQBfy=vYPHWJ|QNk)Yl( zU5eH1zkBr&1kdT0nSDola$~i ze|HNFFN+g1vw#3^SRp5?7|plBUS(@zz`xL1Avk5Es*Ix~w{nnscui|-5nd(!XJRsX zM%L4-&p`rTvr4CMsGqg$YDvgaWwV&X+qEk(<~Rd+9!O)y_2q>B{U1R1+^^BzxT~)u zlmQ{r5PvAk2rH}h5CE91@vPmk;W|*<(CDy;{)b4L<0!#-7g|#49aK7rG)N<6Lr;4= z_Uq8G{HPh>0pr(UMQ=!lD&F*bjanCn@h@6OnZO!ljTE$ppob~_`|OyZ{;k7!^$I5B z*M=B@tDpRIKf!GlLr2;FK(8M?zxUq7e@rb|(B~xQ5-%pTchCWPh!leiQvGzH9|1F= z$UoNlPEH02hJ#0MMD}$<4H$wxPxf=c4W46L^|k<7T){^)>bHD-ISV`4aum~LIosus zM~bjm@oFA%xfi1j_^tWJ$7s93S-9Zb#NRWr){Eau4{TXi!UQb(unWu5EcRO|II4N! zu?xJfZc?TJbNa?i!EbK}UBY{FLf$|B)`nKlT7e9QFZ*VrHd}I~Jt8dh5KANs!Uj;b z<~`Omk_D4*{i$>2W)v;d>ecUB@$4jVinjs6wouVWzx&%4vqO)Ly-0j~PR|g<*l>dO zOeOmvjJ%Q2X{pPW@&_K+{aLj(#({Xq)$+(w42(qKIJ!1uP^vJ=)szguLCSA>=*>9l z<}*oQfaa-Gg%Y)8{n+Akvts5-02WV?>Yq`(#v}kjHX7;Q_S?FSahkO@{X}T;^ zx;b5A3nvJbvIaJqA>^N^%>Z_`ImIsuhCYNHAvBfEKc7Jw0K1+ORrZBHrj|;)gp%K| zrX469@GSm%y2p{)=wmU4j@54GXm9HN?dWkxs!XNOu0Nn+LbiY^cE|nwrUh|!_s%H= zgjUn5sZ}HV2!Z>XCOB(?KpM@?{q2R7xqBR`l@)OcV)jhG`JnyZ!boEjlYJOI>!{#6 z6e=qOGh;PatY#1u)D~hf0*uTqEO7T6EMHX+Fsx3CuyB#W^d_~aoLSsv`e%%sOV(~? zd=r2s6RI?ovf^nr`_q1G&n%$|1yDvc&K`5;Gx)Qd>)?gkz3=IyjwQG@x1nSp`KPwF z=98>Gn2_b>87=Jku!(Vw1c1Gnlp?l@q1BLw4WJL3(HM1tK-e4Pu;2Birz}NHgm}Od zw?d+sQFn6hwi4kbefh}epu>n(w6$>oiSvj~bkwGQVWc)-yJC~8p)+DR{1yJsc0dE> z_#SsV>6^>p`)M&o^G3Ad(uHCSd_VzxtQA$#Z3MhA$uF9tbXI#a&#;|TEu~tG^l-_h z9cH{D5$9Afh+SgWWZFu3xHp>8N+_w&BFf2NEZvtOL=4Tahxc7v*`zy|-`sSwNII=D zP+Qts#nCin!t86D4mGrvv~;T&W9#=`#L3{~rxI!-{;L~Z2_GdaIM1-mMxx7)^=_$Ju z10ukC^Df;OJz;5oC+~_lNyxHl&6JDqwqxh9&34Z^|7EW(xWQ35t0Hb=JD`HobrXg| z3gPw=ads?6?A`Q&46_>PHNi*_v{9=4#W9g%)8qQh=UnGAsIHl(o4TX#gVgSz6VfCb z<6n;3F^d;??u5S6>#XW0`KNpJHGvnx zj#wSU;imTnKYduiYXZF%oXHZGMuYD}wpaY&fE>c@Jb%N@s^5FUO^7kvK+)I__Kw%P zSKoCbWOR;xvJ*+*v5`F25vz083WT^c!f0<+$8@^b+z45Hew(#&n=yZ7L~i6RVg01ZgVO1$i8(zP>(O83wD= zX-k?EIS%e91b=`3k_q*ymRp@JgYjr=`o_oC*@=O-Lys0`egBQ(9PN*l{kjzEPqo($ z=Z($J29WD{Zkw}llTE;eSe>)u2kpIcV7dRigx3}EHl&e#STd)!5d7)t_G3G{vR&R& z(|U_FSUYR&AJxwo3n%ELFp!9*wl ztS>@e&;l1c%Ixg2U$but&V+Bqh|z9{_S-j{{HB5bn}LYTGFJJnN?H*J)NZs zJ_bOX_@V*q>s_WdyD|^!BlKXpmm*OrNeTM3K%oT`)d8v?>Z4uUn~Ht80USCS<~km* z;DtRGRKodo^8r0-J-1XzUc>c5bb9YAZmFi@c)1>G{_-uskaFPjKCq%afo(kh{$>8# zP0dUL6!}mo=i5az41+hMzvpU1BGN&^NlTCUc+1yn%bSm1(w@%b_eXWjM-xI+9hO|7 zI}T1^J03(nCP9LH#q$9c(glXlnafbw!daG%r~-J<#h6jjSWz+(!RYd3OpBXEqE_Lc z3;YsjB;1ho`@+abLS<2E`~E&|SAGAjUH*O57m>c*BFdv+$eV5dQmIdu+9%%S;|k7q z;Rtg4-HIP~OJMF8A4q(pCuN>==lbj3&h7xmfSrA)YKCQfRaIpwSb09u1%2&sf2iLs z#tHnN?)_Em8_7!M<6B!?Wi|!^-=YKcd;AZDb&$=}RCQW1 zplugJ6(wHkKZz05vgX*qVU;)7;wT)0Ca3`Fgfa!yFZ*AZcfOqOh<#in0IoU@j~1^! z;ANklHSM-rteO#Cjp5(kLk`x-K|VKuCiELZ$3)i--p8wfV!ke0UJdx5VrvX&2ri>7 ztb17;jMU5xIFoC8Rr0Rw_kk#2#*&o^PYNVIe+X9eukRMZaJo;X*;X<{>{-G!0DFSO z0Ei_H3P)mjM%j@d4J=8gM(-b=&jYgG+=!7WgVe+L^Yxx+ODBdv)(#ZJQo z&%bV(G(@+5FckXG@@15ZjFZwN%{tXC2ohg~(QJuS$`LKIINqn)2-`IUonj3_Q!&={ zcI|gkNzk$@Yq+o8b zb+_}&?V%6$Bpj&3W-eF?1o1A@D4WzUjKcG=fw${8!9W1jgEQae6GW3~#+~wYueEQN zzdh-z_Vj=syqVHgV>qJx6Q!sMY~Ghpol=zPTPE}#n4Vn8E~|$1w?77|y%j#|1!~4~ zT*@L|2Zr#Wp{v87nBG9%52&{bc?rvJ59>lgzthbh*5$-e@+;=!?;qB89+MtK%5!zj zVc~syzJguN(NogjvjK)|N}_evtlrtHTbD$B%*>MU}jp8 zX-6~t=HTh!F*4E%=TFN)v}T&|WLHe@I(JJc^~sL@Y3c(2b_zEeQ+h^f=XZ)e*8~ z6s*L>O_)(%DGl(G5#$LI<4|M4gj52I5_Ih1Zlsr|4hzrqe;u1ueINdR#ax@6Tqn?t z1ix}2e1$cngfU?#R0*oDY4y8vedqTd$`^C5*>Pk11VnBL8XF&au+6jii=pSSoN!k} z9Ek#&4y^}@lnoF;XIoMH&%>B}qe_;U<;bQa?fRYL?8Cvew0tPU(s-k5kphQS1N~Fy z24uEC2=oHB)9tIhE@EZSyP_6)u0zDLPj4XZS<8fZ;#`zykF6vTT&nG0B9c5317lG{ zgejMlE}f3%I3ofIn*Oc@Rv98V82z|^O1I|w*dN&B!jIS&SNI*K9U1>6s~TaDE=7g9 zxNM4td2@=ugCi71gAqQ4aFK)gFIUOu%%7P*zhUI72$R~fdtw;(pQ3XLUjOlD9}l&X z!bobFOG3@Vp1ahf|p2x}Dt)=GCdN@ZHf^ebc7xFq5rEH+_g?mbCUpQZwKqgfHg zPwsafmL@<~%&gqZ+3yr4(&c`NxUt4mDP--(Lm1L{m5Gsm(COs@(Jby0*)h79e(nuZj|2!cZWKDu}LSLyVq%8O;@l{f*5 z!g>||$p&?rXRlyOH4HNbD`R?B?Y8!IK&HXQN@I{Mm>Q7oCa!4 z!rpPJ5Qw?OB?ev6ZVH?Ui3~J9o(?~=GL%E3iu14)uV#v~aqr)^OROQNI(9!|Nrf1<5(|vHp4r82 zBwVq7RI2B>U~wj6XH!;lsk}mwOouVz*18gYr$asTb_ol+?B*y9V}zMet7`r+bmd>% z?)3FsL`|b7J$H*k=Y3UVDf^dDCZ%09CWm-CEL$1`7EgDZr6wE`R`A&uRDQfr2ZtcV z3KJY87bWC&92Y-wCoaShW@<^84G$AU#26Td2AGNF!lzyuyUiTBK7G|R`)NTB|1#&R zoE4SLF_h{ljq=zv&v0^TnOgDC81KgO5V*JBa&!`oji{i%P2n33{&fzqK7af zO&OL}m200e&}^;tPQi2Zg1`BxFi!=t2a01FsvJ?Rhv;sMc0mw5WiOMQ9(FI+kIs z08^uez|<%moOS`_g1#a!Cu$jt?-IOKGQtJxzzam)%U4YQC++wYdoa3tz`-IN)l`=y zg)vHwwJji7a`)QI~nS(TyBpRb@cr!KB z54kxa`)%vk=niER*NQipa^5Ep7mz%;z0i5<%=N)b=jgQKc^Ye7%f~0@U|2aYb zLZ)fk=27Rf;5#!;vm>(ThN_{H>+}~?Y$QC!$n|*dTm!laQ4^jmHS&Y+=+PQ2z*d2$ zO3X%JoxVr|5A7WgKH|5a21O1^Vxzcy!SUMp-sj;rv9Fv#8tT;MlH3P-*he!$+jl8q z-afz%A5vY>r5)v_XzZcW@%c}=w2xhftj~(=Qr$0eC<+LflHwj7lu$z4BgjT1c&V=P zpXv3V!P|>5?8CZEPupUZN`1b3Wlzgv&8M#stDxFclO6h0`9HsLh(kq zGri_x%Ay}Fc{^tbj00XKiCD97LF&(0z_ZKwxd(O7vazENeU_;LVhqApFZ5zsW|206 z-prKL=KG=arO;6S!w;Y-`_JjV0pkpx=UM|ZWkBWJOdRlIo*9-cV@N_gmpFn?X)?zt zq~9C%B`x%*)??u5U?ivDMQhch$nW1WBc^V5tirw3$6?0i^2hXGPOBPTluq7R26+H(5(630pVdjf(Q#X~pEnA9&D4ftB4(kBQy>_S^bWHU8t#yaS(- zWEBjIgbd{@kLk8M_Cqg8>{BJD`BwD=$Vd6~9G((6(s$poo}YRgoQy%1zGD;g%NGGm z65&OLIE}2lIcg)q=2&AjXBl^cKN3pq&zIogrn*aUEXs2D4l~#x))HUUG-r&C;yzeR)Uvs;Kr+hSV@jq0*wWonz zF@am?Jf-{%%D=(X<{J;`w+q>VJkf73Ns5n>WM2-GTowI~)?Au4^LDf^pZnOopEHUd zk?B@Y@c=x!ZC=0Y>&ee)ybmF4oT;wc`U78^cBE?i(e9e)HO`;#rKQZf-8p0flxJ-| zcdl3K1uGoL>-=wJrWEb`e&UvlLagUa6o`?;goFjzW~#80Cp|V*Tcms)U}v;Vj3TVE zORBZc7t5H$do@vyq}0PI&ox?E>bI8~mEqt~WWXEB;)(sMH#w27k>YiQ8<)bhT@<|L z6{o9YJkYaC;3#-+^Z1#;$ldk1hbtZpJ$NP3)h0p|Oc7FrQW-j70r*aT&if2hqd}45 z&!u-#mhi`(SLih4P&2>S!0D?Zt{*KWDgIiYR9h>L)(*^; zJ{Ff_a?}QD8x^nH_&>`KgH!y#&tDoTYQwokJ#O>y&`yEbC3W69V#2mO zj!e_lA?kmBEVXRlDP`WDK9A0xb^%3(+uXC2cYriG3 zTSm%IpQVeZ$G{weoUdm~_B-deuaEnl0gFOJTXEq!vOzta&RC2JsnV)M3kr12C2P_2 zO{G8SUg@}hBs(8WW+hqiWV5GF07eB<1lqq*>zhyCQaLxVt|!Upa>+y$OGo2ShCm>O zKt$CAj{~+=+BSU$#Qua-txZtc29cry1>uj~_uO}k`^5V?wyW!by>K&$Hh;379v$|3 zq7{=%=*zS6e%;te)$#-1R!3mG+sQt2-haY9ltrlqQVi|iB3{SQ!UuG>*xp}*VpMp3 zm@gx@Khl)nvkrXj)I&#(?&_XjJk*Fq%Pv`kVA3yEEYjNTX4O&b&^HSz>X*tW+56fY zvP#qazTGCot46$)rCX%+A*&&lv|*AC2!!sHpO_B>p<@^~!z_Et*Y*Ov68tE0IorP< z#G^3XS758&$ERWLzm>neiPXTZWUD0r;q0Sv$5MKqQC5yB($FFyaN`_ebXNJ9aCk}* zReYBBYDFCyH908~)llamV(p0o-!?&SM^C6jj1$2`M09+jkai9*`ilqwt>0?jw|0CE zG35z!=;@3_j)~`$0hwMb352VxRW&_7$_n+CR?QbJ>XPI>p%=W;ljmwB1z?!MMu@2a z9*^?)Lky#3WUPn)jOLdq23dJy^ttiTHdJ_YzfU0{0DOfAx}8Pp+A>cR!tCZQKFK?g5f@|q1t-Phe-bwsMooj_<;Yuv0d9{>HR zBlj2HmDTG1xc~`Yq;CJ2NJhk3^;~w$jTHLL)Nvy?=1=yjDxLg?O-Z%;i<~37YbUh#`EugmUi$8T0gh`Qf?3B zs4Su2jl8JwQrx1JB9wAp3ETW0rr6yOW=6wL!XPvs{A~9GY~lFUvdVxA-Y3+w@?-x1 z_ORh*r3wzOE@vPK%PDwaBKadFw1|>@`{6UYnXvU`9>epk-+sBx-Kt|^{i!VKU+=~f z-fDi9lb196gc#WW3O7B)+}p3^Oqu)fR+T74O#vDFaRceQ)>r?pSG+0_(7u2@p>d^*fHmWeTta`h#wqHo$eV@eeaY$ zs;6^%G4lyJWncAYl!VLFc|0YNHxWn*U{(zbu5a6W*PaahB_eOYnN`BI6LuLCOK&Pr zB7NDW^}L0lebr=XtL@{I-dhy{Ma3^ zp5J@yXaTE1m7Oun$tsq8lcD`ndw#Ho55sSon0~O5)?%JX-+NtGn6?4l)TdYW<5~{C zH@4R9ZJ)veKIaW&=K|P;@EgT(&zIV5isH`edt{!G55tcp-aJNBd)M)(zgkGUZm$+b zCeiQ(4_UDokbP*&u@BG+Gmz9XnAgsB9Gda1Qjmm-y(AGSP=PXAUL3nCEM{k#P~6u6 zA2&X|PUL>9S5JOgoFLFB(G9VsFu}?~oT?{SfU;s`IOdGI#x~320%>o=HiI-%^jzU* z;-gMVJtjiuS8*z;{w$;|R1phBOW12h;7hLe=?=;U_VP3UG(5gTpb$ES%l7NSxc4^W zJ;l~T8ChX^wh;L0w8iLaY)4+d+u~b){g^Dba0-X|nSU?dCv zd;GBt%GDGxM1*rWJ{vS^P$el0zSz+W<{>1t-zZm8WFXhAolorXWO;$P9PY2Rv?*Z* z^|PhwL&28j=x1~AIoNI}C&;3f+@R6xG>owem1ZA$hdcupjXYQ?NfQ<>XM%Ub{?aMN z@f8W9Y%%BDIweeAs{9&r{@g`fR zceb%%er?%uuxuF2Ov4ORvRuHo;^qHC(IFW-ne^Ao#*f?)?F;&BUjlUNv&eTc%6-7oaBX%y* zYbnWiUQWa3WVHTe|F=Z&c1=P-LdZ8c236c13Bp67i66w2LU9v)D{%0$xh{0kige)e z5TmVZOs2C}OHa{@bo4384`@y;KkE6#)1zue%S4sL=7%cEcYfW3r-=%cN7ynd6ugL~ z6qp%p&C57=i3n&z)Jt4`CPQK4%1w?5BA?H@bA@TupJGr{K(4KA=V}tlrxgupOPg&k zB}A8&a#lr;WOgn4QgLc6z<4JO;DV1cXL3=MERVQp6yf3Tz&|L7*?}M9w9w*T?*1ij z`u3U}#n$$x@=lL|6|p__d`H~*B?O^ZQmPsRdBhrcD0ectH=vph?9nGJ5b|!T?`E^4 ztYF?A5vWp-AqIfl6FH$$xz`OO4dP~XJ074lR?vi{A`3|)myq0KG^1e|gQDrc$hWKO zdBx6r);90YdgWOSD(FAIaFXRRno>ldFEm45%~dYeZ$2rhW08SXrGu5)>gh}7>U7JG zhmF;9b5K;F;`{o3zAA@omNm1c!Hwy`Xo!4kD?c~(kJA}|ShMH5P^!-Y3G zR}Y=sF6F@WG?MO1 zTZPF!YT*xwUq<%xGpMM=(Mat7AQtjE zq>}ZdOQe|Km$nlUIJ&sHC?TNvm4{DETPpI{PV0LT{l=xC#}GcIK8S?dLRCbM0bgjsQv^a#m}eHNkNbqCk`>S>r!ccF;VJO63j3gpY5aG*@$wIvQi*t1hpX2_7@O{#ClUn02NCUyo82 zt^CEY=FuIIpFkLoAPd0Q+=JYm{us6BhS_X4sj5mLmUbl$u-EBTp$8m`e&%K;@3FGO zIZw)ZG1P>Dv^tru8=kp+`t?c5QPeSPYQK{!@PzH*z)cfe`8)&gV=7WKday6@++|TEfukRE8^^6UJIu!>XZw5dE9>+# z!yZOMsv4841S@Hg&|-K0iR@=!U(!HPX$=`rRyy?u^mjINCPf;nu{dV$qr8lC%h^g{ zq+0xc$BV%gX-RXQ4haGC2?T9cfDan|(qK08-*LM7taIvW@2j7qKTW)G5cJG`Rne;S z;=`cH0){}nmF&vn;fc?#QJ#Yq-t;sLy^Y9WgswqIBnCb+iYdRCf0?vZNN+SQy8K^Q zczz_4ar7X6Oe(eT!QyX{3_e1tXMx2HapHXyHl3jM`Ae3fhUy0>F@;by??shI;smNq zyNT6YQ!!j;R~^(MU(qEV-Q#NZ4Y(2E1rAYA#8E^Wj)3KLZSzDo zC*EU(d(y;9*p$i0Pb#R@^A~(B)@l3U^dX|MKk4h_awf#H#Eo9fgbCpZtkNG4cv2}- z&wXuDYa5u7Gy4Xzg#>_Xht&xEmb^D7e0rW^UE=NFv1>N7;Y_c$)ykCY3d@Q!1&Xvl zQjVx_1DU)l-c-2fgnwh_PiWEcUsudaa(0D|ag! z`RciBVbP$!)DO{@^9U;<6&Ghv$y7Lr`{5=p`qi9jfya?WonTc*EP4HNrL4i^$dobp z-dUkOl^`OT<*cpbBEMr5pPW{#y<`UHPGNzj=U1ZB$3d7<{{-TU5cxUC&o6^aQe2wnwO@Xe zZg?r}JyTK_Yig;=A|n1t%dM|TOe@98`cb%z=N<)>!Q?XvAD;}d5{od{q3Mx*q$s%e z`3|)`hHf-T*bFxZCeOBvu*f2b>^@uJ#xLpbSkK~RMq4^rCNWUuRVrn}!nW8{#Ff-v z$Zodb$%eT4E^H9frc%Uh9j34Jeqc-)jdh|h2}XOa-&x^-e7~I^#EGl)m44LSRQjvX zX3{g74RR2zP6?kFh~%Ts67$Oz{g_t$9VLZ3P?N0=QHb;NQ39}$TVvV~M=A%^4Sr=` zo>d>M+kuwkst7%6!%m0pP`usWAcki2`wfysE`{Fq2n+oYy|~bTGu?V=qsr2J%G?S3 zGZWZ$1-QLe++**K_t5f96}i^=Qj&1~G&Jlzwk6y?SCY>%OnpTXrt^8s z@{JJwHm>!G!Y!+i^*d}F2NtwU9gBIrQqSK<+A&G;LsPt4u|8pA;Jv%Apv@jRC*yci zX94a6w^#3hla4ZnITRH5>G9ItCKRYirZ#KIOI$um$%a|F`m(QDHoO($gPUT_O1lD< z{AJn;LPDx6V6a{~1rqdpTbu;b(-PN4-xsn&X3u|TFssVAkFL8%51D0&?^DlM2`Ht1 zhzXWXD@nq&<1HMIpW##zC%$pxM&Gsy$5YqHuXM|md(OmI%Jh3+)W#FhJXbj@pf#=0 zXY#h!#y(_sw<$Wmvk{L$tEPr5K@fkKH)@_wL0HVyFG_0(`znNmajZ1VRWMSToXCcl z<<;A&;nZiXdI~?c8u}83k}3M%#cIb6#c6M-Ae!eZrUbOKu*1F%SsPpu9Q$O(IlT~WU2xBHv zW2MrPE9dFIQ0g;B)ext3vhzD=6#%VtU{oPzFtypPGrmzVs=kYi@kzjpZke(1(g0i@U-0SC!fpL|Y`;2UHqwf~Z zmcQVo$C7LGl{mqh#GfKSk9D)~DXeYj6&&m_wlo^T;`a^q!XFfvD9M;u!lSXxV@7uG zDvt})yD%M@@fY}%edRH1#wvKttwz6Gy#I=q{#Fxrw7yZmfDz+YbP2{9?mOM+pf7Jf zw!x|Q10So`oP@f5Ra?L+5RwoN^`{!eLp>1EHDZ+Gi$>MO9Wj7nx_3opcW(HHYsfJ12!}3Vi#RN#mXMo&E;IoddBq}wn#J6PBCHtVrhlLZ>W$B^ zpSNfXG~r_((sG{VmA{K|Q5z!;PFiAsisUxRM3an~I9TPd>S*j5R3y4k(O&4BHkfeb zO2?1^;!|hHJ~{JAB4c$uYny_@)(j_Y)p#WUHbDeym@v7?i`5ISXFLGR*p? zXixBMmNshk@e@Cr*Q;>UiX+}zXHdwE&b5%S(?iXXQHWH%CRaeUHVga7Mq2ouP=zRJ zHdF{TWz@zp#5=&6VpXn9lz8;2qp0HpU`Mv?Cu`l_9q^vEbT2@zqev>mrcyOG!DL^^ zMFA75o^sJv7DK*tHe-w}f=UJdMSY-v4!wl!&&-=1(b{*zaCw;0zy#t-ov2h5H5NNX zD z(;DU*8XzNH5(_FCF{_%3+4CYc#A3JB(+LekPRSueM&C{~Y|Pxeiak`;PgdJ@J|_IQ z5ffa4CbU(sq~IOH-f8%mL7715`dXurO(S=`EnhFcOW0$$sX~8TPD}R?m3Wbbl#t#?yKKFN(N-Xk#w#$>q5!S(7h`@d(84PI=kkxKrOTGa&cKL=@Fao4 zYYs)Zs=pnA63XHI^oNHs$}FbdWhv=mdp@Q@i6kB=0_Afv(|W4cF+o(x!Erbm0Z9zg zKfO3*Rwp%?aY?hd@yHTI(0+{(+2Rv18A-3!tnhwsmTR~|GyX%%D&c51aW10z*WLKG zFK{Vn6y&aUiJ6>-gQcn7LaLSjt?AnS0|gnMgzaIVKxC6Waf2OcNh778;AoAl#Flc} zki-*-h3W8gzv-uYZ{|?SJTVc?zd`I&O-`3KvhT{JFVd2*_4u?N)oN^|9WKYmj;gta z{A@WgkYfzIAeI|+wGgUoFpIt0Wr<&Fi_n;U&UeGjr1VN<)q)6bw-jaSheeGKDutnU zQh44#!Y%%%8Y<9%9y?}cQFUDy@|v>JuSs-g_U2^Ob;Tx9U=tNCcPpK|U+OMjzHLto zi&p4n`D{_RRH^&A%{1bd(~5M7Z6u|y0p)BT*Qz}c-p3DUfLEy%S%ADaN#$s>ftFkR z`E8-VYAYLIQ3k`r7gbc`fx=oW28rCm`SFF(mxW*Pa6uR(+9_jE6dUH{q9EBD%hbU3419%kJx%E z$ zR5T%-@as7T_YT`)qh{~o#OOIH!5Rh!{#y3xkk}FYom2S7K0t$S~rbSB14%7_-U4ZiEp;Q#cSYjFs(zgTQ zg)0N@jpFW|zny2TIEbtGs6=MsUh>`JH+LqkdCbxv3ZME^gH^43{S2@R3ls}Kj9)D? zQVwvEM`#$nqTc*`lOgNzbEdC_{hJrIWLNvbQ$hTBfC_@y6q z5LJ_R1{GZ_Ye#*cTQvuEAY!V&!|N&1!5>n?jx!S8yV_)|&!f zg3<8cXzYfBALH8HLo#)Il=&p2w5%LyHYAhGyAt(N(Zv`k%*5AVZ%$?lK4&&F-LFO8 z0vuOdg`E5l-(r7W31U1F{5_i!IbyCU9*?+PxnLl^gW4>m6pW=q#JU7YdD$8Cvaz)y zaMbw)sFZnazTX#i2huu|%yvhykkd$0H)S3h^yTm58Y0J&gwx;V@j9+()vwYJty zC$ofj^ziqwp|X0RL8(wU9_uCQNV5*m@>8&{UPVQw<1u=MnOZHdKh`ToQ>%QuvHni! ztBSle-yi&n0Yf?kb*MyQkZ=5=Gs*A7IKK^!^;OFk!M4j5*;>9B3he1|N$7=whe z@_W{Mpf|}nLsbxob*}IUx#8EM%lPFg(#gq>9V@R`qz$o|YJ=DuzTl1P5OGze8bjfJ z0fk%Eq7&IGo5vq@?TMjO!BYeUS(wNNDopSf)`>uR0I$~tCtlK(=$2kob+YDGCNVO^ zM0}&P#+0khJSUUuvIU1(QVV-oPadXFzbJFY;`<$M+EO#yEG`suhE>P@KC+EczIVs; zuP?`Y{)NxoJz`x`G=7djpL+?;69t%q&q{$mcJXTF2 zZGvTr))_N+0mg6HAt%|&uspxB+TLpa#@jH^`UDiwZEea=P#V>;FA2G+e$y!)PTkB0 zq##8nez-mK$pGFnR=2*Ju&p|b(E!P}eP64|kz}3o}7<$IfxwlV}h~F!|K?d+`CbyY;Jyh+f zY`U|?@ux9!puW$@*E`^@XTW2%j1`r*bM3}W`|drDpIv?;K2`!@wA9P zO{8ov_bCjx^rTlLTM-9`71=^(pnhZI<*?y1Hrm1C#0zU{Mqfp~>H?y~jrgI}*b(+> zWU` z)L8cSB3ei{Ep__u%YMSfhc6DHt|0mQ8&dLd&>8wdD_3s)R(~k%&2cX%eR9zd<6fCm zTtY`I!0RC+i_QDR*5PkssY63i5a%nu$FN}W62qg!y<&m`lZqg}y&Qrz_Ca;%O$a8S z_^qGIU$B#{zb}J+jX?JeK2{^|t&I4~lni5-(Hx=lXde4(^Z)6#8y0h~K^iVAqiv&aVSlpgZbc={Dj__l3q+ZfD9_ydy z5vyCbc1@?>O|D*Mra$qxK4tqJ8FM*4`G*H?xz;1(XAs@Y#%T6>=QX>zMii7@m;mH- zt>2Qr$`T72=MLm*=eFE##sNuHcw3PxsJ%gxTY!ybkG=T)#}z#jEeaV_NcZx_h(hcF z&!qM~6)2%2cN)R;H{$A%3^3Pc0`) z?#cW|f4*jOyq!6gb($a+tbkJT|3S%OyF6X}epsbv0oNur8$*hU28C6M$liE-X->W; zJQ;NVLzWEGx>#>I{<+X<95Q$G<+tZ^cwMV3bfY(WV97EjYB<|n@@~X~USj6!WLYJ0 z@Q52m-BlerF1K_$8#aOl+qOxDGNE+sw-!|x||3JI_mCVf9td5d%psux*V=v$}bD^ zT@2A}$*rB`UCIKVP^nH~cd#Z3(Qmp#eP`sruy|`lZZDdEy-ZKz=b~>3|HhTamIk<%$~VIN`!ycgHD8$VvEAF{ZTh=QcSQFhZMZW{=;C|M zr}{1f!GM!m-^OAbzW87_UeIm!ArPN9GFMb0v>d**MLyb90tPr;cy#*TO1aVr-u57E z^p$`P05EKS%=)ZXw`UgC@meQi&82-6e!}17NVh!x=<-)16>;J_Z26n-H^DNN?#)c3^gCWy;_{uoY`;Xp-oza1++M{e^G>c z{l1gU_Udx%JnsYmtQQGF0v<4~vQ97o4Xby?$e{#)U<>jw-aWWx#>XwPXx+Xy4(I^n zq(TM!JxUwNy*>I9ek$dT=ZP3slYA&7ueF>PA#)=u5k(wY!n63hibv^QU*6jH-QLjk zu5{Iset&b$*aX`}y#(s*f(&-EUthA0z`!D#zF6NkPCQTg^3|c?T(_K@h`)&2b}B%X z-kVQr-!s$OXT6IAo7Z7!J29eeJ`~Lr29d=Q6K2y87!Y^(^sbt23Q*JOPz9YJxJCht zx4A06Zf+J@-w|MH*)RJj`KSQ&SV1gcob$X!q4oKjtL)RXwd#9n^aJ=d5wycYh6qy1 z5i4`E0|0QU|NSGNyt>s2ejRzUV`J-p0>HZ>?AY-y_EDecA_xk76t5Ysz95f+$ly4a z9%}3qodd-u8pYCPuTEK3QhsVU2Z!IE~ZY%dI zt^WV9r&F+pyJy$VNZ3dvd)F`s501eKkok8SiTv&)^j5y?zk2=Y5l!1&zTAhp;eW!F z&VNI(s5n3?kIoz&{O=mvTmByC1&ienhew_7f$)q}AVC=FUuvu7-Ey~iu4>3D%&~63 zgPjz?N1?N^$;LC^4nIbN_V0M+vLU(dwNE%?4Z!X`0nn5m16IeoPI%?Sp}f(zEA_vv z#ZZIasnt{GphzI%?ZJl!QqBcRlg(5f+r=#0o@aw1OVr{U|hZ=O19`x8#U4*K7R<<6xxI9g8bN$Vnl ze;zS`+z;vQ_2{6H@9$c_W?2R4x@hg1IzDV>$R1(L9@#`<)W0gO_YgYQi5s z$tTl3zu2GqN)Vd@)9-Pa>9&~AC@!MquZw{X&5$a+C;sOT>I`zO0@;}BEhwM2n1+0! zd_8Zmz60~}8!0WmVwqBz1?+knl5Z{YZIj>Am$<=j_a`81`a^K^!`yyKdNMAa5<~1_Z5BZVT zYD*2&n-2*JGa>cYml*7LDDu~x^4fr3B@a~F|F?D|b;5hs5 zQp+}gQE7L<%>~yy_Fzp^$Ff5t6tE5Q-@rH{H@NeJi=qEC^#0h7JL-q!Mxk}~&&jjU z$7xU*`%A>z`%6$6SsAcLo>h8&?_@UgLgx+e_5tb2o2osbaL9Zx$grW^<)6J9wV=Ob z%!_vqS6%lo_YT(xpKklNAUm#*!nKYO0SP{F&@CYz!RR~!vC-uRLoD67eqSlKo?Sju zSlhU7>$-Kj^?QQkj*liYo}T+&M`uv4icj+)J-_&h5C{Q^7PyvY?k*<`(6IhkA#2qy zjxMo^MRhQ+2sMuWj+b-2^vA>q5g0{zl6Sogc`(W}ZbRKK}|MqR8Ud(;-&(((;Kp>j;0)%V1hw~1KPi@CTYgbsj58se@!5y7> z*#8ehkQ|8HXB5|%=rZ{6WCl=E>s|$=rb{)*kld#9y1X5HP^s&BALE~;$;8iCS@5c$jUsLk@WJe~hv$r{Iw^8uyPpD!v8 z947x?l=?qDic1OAe&4SpkNcN_cIZ6^`$+Y{&&G9}8dux5*2R&yQb(be^DJ({pJd=o zA>-dZeFM$*+sZtm*?STknYtAy;^o#@kWCrV3EMhJG z34HIlL4(4bk}X~$zw!pjPFZkYtUHO8gtihQ$?Nvj&fX_?Tm2vCHUS$wt>g4Y>L>sf z-|yUgHRR)TJePyRu-uW+YPQQxexRrKy^c{E(zS#iL8L_xH^ub663ENB^$;<%h~;*9 zogFmlA#L?v3D{CO>B*31Q~O`s#5F1rYsPIzcfyrP2wsKaGAU-Ea0&x2k-hsX<$|6W zZ>EXtjwT^EYcVu7egZ)JFV9u}>V`&U?@M=*QPdFVzq8`||ILc4`gcAxI=2-FNPCoF z*ILo}sME;w&ZRT>N_79(gKxFdEq_03sx+9)goy=IVQV%Mc1kHu);w4tZQxZj+T{zZ zYPX8L-;&36rSqAfk&zu4`=N&ARWiEPPB(AV-U2HlQ%g2PZB<|WzC!qqYIY(SWym?q zAIT^a$1xULLBppVbnT~azGojx7YRr2(X9ldedR`jJOmuA`qHlLOS8NjxCE{SqhXO} zgJysJ%_F6+L!e0Qj|*XAw`HYOKN7mrq*NoCmoH=F1r#GQ{H4{CsGp;ot0M{HSAv)S zvS7Q67yBquVn(~Z|4F6$mwKcx8K8q(9@U0Fw}Ef z%L-i^5xIZae0Y4yeR+7(bKHR>go*d3&|*U}E=I^ds_2>ObP_D#4QMJi?k(jX`KnLe`@q9yTS6JJ}cLk)IqMx6cAS+dpUBUKD#W((a=LCb>QFYaAhFH z;5-}1+52CmFUs{rb;$caA;|!85&wi8$UFb5Ps21o2<88hR=v~V`i7KVWkHUyA_9oY Ye%${05$=HeixuF#yqa9qTa%#w1@iSRpa1{> literal 1192 zcmV;Z1XufsP)M^zDYr!9cpN5zE0rkB1erp8VDT0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5DJQWgJvBbLs1hiWqr}CTl37#?(#*w~R+N~V3St`~RF@~_{4+At7aA;x$UC!@sn4;SUt2x*WAJOW~r+XKtx2|GTrA9=j>4JB_G+iqN5D|Ni_cf$es8EV`CgX4(aGvFj{x|Z8KVQO+69C7*0FaSi zdXDMusC`EU&3_GR;nL_k1vEr(VOKh|xNwJ>(-0$VnvWEaAX(0;nCafjPRX{jb^50( z03l&SV>09lJttU?3RyCWnF5RnJ*WYU+K;H8y@HQWLVgp_LcI(vx@v!FGA0Z=ZgWf% zX4h{91a|RN4{U)}2rd;V5o0CnX>R8%L3sx8okB0riHy`AQr?lDI$-<;Q_fA4aBQX? zp?wI3BJIN#@F0cm`idQB0Ukjox_cRm@2xa9Nk+5se+?|h zTo6In}rB>+r%qIy=&LbbC}pVJ29!JvRW zVK(VGgmQ$%PYwzBj(|Hbm1}hnX1QK^qExDZvP%K~n9exQiIKoel*5E$1T+O?(>1-e z5!+ArPyk~<3B6!gRpN-QK$zvhx?mEW4Gn5+ReRCo&eoleeU7;WTzgT!FofE^VSinJ zVpDQu`S#-UN-`d=(o6d(v=^tBzOt>l1h@x$dr=E3kbg6-3~W0cp}jZ_T!a=Gj5(VE zFE}X+xzGsof_==u^0cbEveMoyJAzv91=z%;3;QNb) z1fmV86K*4;9%Ectd=k3OepZSzjkUR Date: Tue, 30 Jun 2015 21:09:16 -0400 Subject: [PATCH 07/14] Fixes Away Mission Lighting --- code/modules/awaymissions/zlevel.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index 59892c62ad7..51b66024215 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -43,6 +43,7 @@ proc/createRandomZlevel() // Initialize air for the away mission's turfs if(air_master) air_master.setup_allturfs(block(locate(1, 1, world.maxz), locate(world.maxx, world.maxy, world.maxz))) + create_lighting_overlays(world.maxz) world.log << "away mission loaded: [map]" for(var/obj/effect/landmark/L in landmarks_list) From a569c898e9f32c103ff366c8a16c28e3cdc7eb80 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 30 Jun 2015 21:24:26 -0400 Subject: [PATCH 08/14] tweak --- code/datums/supplypacks.dm | 15 ++++++++++++--- .../power/supermatter/supermatter_crate.dm | 7 ------- paradise.dme | 1 - 3 files changed, 12 insertions(+), 11 deletions(-) delete mode 100644 code/modules/power/supermatter/supermatter_crate.dm diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index b4920a97d79..85a1c2b0215 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -519,21 +519,30 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine access = access_eva /datum/supply_packs/engineering/inflatable - name = "Inflatable barriers" + name = "Inflatable barriers Crate" contains = list(/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/storage/briefcase/inflatable) cost = 20 containername = "Inflatable Barrier Crate" -/datum/supply_packs/engineering/teg - name = "Thermo-Electric Generator" +/datum/supply_packs/engineering/engine/supermatter_shard + name = "Supermatter Shard Crate" + contains = list(/obj/machinery/power/supermatter_shard) + cost = 50 //So cargo thinks twice before killing themselves with it + containertype = /obj/structure/closet/crate/secure + containername = "supermatter shard crate" + access = access_ce + +/datum/supply_packs/engineering/engine/teg + name = "Thermo-Electric Generator Crate" contains = list( /obj/machinery/power/generator, /obj/machinery/atmospherics/binary/circulator, /obj/machinery/atmospherics/binary/circulator ) cost = 25 + containertype = /obj/structure/closet/crate/secure containername = "Thermo-Electric Generator Components" access = access_ce diff --git a/code/modules/power/supermatter/supermatter_crate.dm b/code/modules/power/supermatter/supermatter_crate.dm deleted file mode 100644 index 9158a3e27b9..00000000000 --- a/code/modules/power/supermatter/supermatter_crate.dm +++ /dev/null @@ -1,7 +0,0 @@ -/datum/supply_packs/engineering/engine/supermatter_shard - name = "Supermatter Shard Crate" - contains = list(/obj/machinery/power/supermatter_shard) - cost = 100 //So cargo thinks twice before killing themselves with it - containertype = /obj/structure/closet/crate/secure - containername = "supermatter shard crate" - access = access_ce diff --git a/paradise.dme b/paradise.dme index c0e4d75db78..34f32f368a8 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1528,7 +1528,6 @@ #include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" #include "code\modules\power\singularity\particle_accelerator\particle_power.dm" #include "code\modules\power\supermatter\supermatter.dm" -#include "code\modules\power\supermatter\supermatter_crate.dm" #include "code\modules\procedural mapping\mapGenerator.dm" #include "code\modules\procedural mapping\mapGeneratorModule.dm" #include "code\modules\procedural mapping\mapGeneratorReadme.dm" From 42c5c29b12c505cfdc49d65d7682085e419f3d79 Mon Sep 17 00:00:00 2001 From: Robertha89 Date: Wed, 1 Jul 2015 03:37:11 +0200 Subject: [PATCH 09/14] 7 days title --- code/_globalvars/database.dm | 12 ++++++------ code/defines/procs/dbcore.dm | 2 +- code/modules/client/preferences.dm | 2 +- .../simple_animal/revenant/revenant_spawn_event.dm | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/_globalvars/database.dm b/code/_globalvars/database.dm index 437f479f99c..942c7c630b2 100644 --- a/code/_globalvars/database.dm +++ b/code/_globalvars/database.dm @@ -2,13 +2,13 @@ var/sqladdress = "localhost" var/sqlport = "3306" var/sqldb = "paradise" -var/sqllogin = "root" +var/sqllogin = "mylogin" var/sqlpass = "example" // Feedback gathering sql connection var/sqlfdbkdb = "paradise" -var/sqlfdbklogin = "root" -var/sqlfdbkpass = "example" +var/sqlfdbklogin = "mylogin" +var/sqlfdbkpass = "mypassword" var/sqllogging = 0 // Should we log deaths, population stats, etc? @@ -18,9 +18,9 @@ var/sqllogging = 0 // Should we log deaths, population stats, etc? var/forumsqladdress = "localhost" var/forumsqlport = "3306" -var/forumsqldb = "tgstation" -var/forumsqllogin = "root" -var/forumsqlpass = "bleh" +var/forumsqldb = "paradise" +var/forumsqllogin = "mylogin" +var/forumsqlpass = "mypassword" var/forum_activated_group = "2" var/forum_authenticated_group = "10" diff --git a/code/defines/procs/dbcore.dm b/code/defines/procs/dbcore.dm index 45139ab3fb1..788bbb705f0 100644 --- a/code/defines/procs/dbcore.dm +++ b/code/defines/procs/dbcore.dm @@ -45,7 +45,7 @@ DBConnection var/password // This variable contains the password data. var/default_cursor // This contains the default database cursor data. // - var/server = "" + var/server = "localhost" var/port = 3306 DBConnection/New(dbi_handler,username,password_handler,cursor_handler) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ecc8ed6426b..4f56edeff9d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -37,7 +37,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts num2text(BE_NINJA) = 21, num2text(BE_MUTINEER) = 21, num2text(BE_MALF) = 30, - num2text(BE_REVENANT) = 30 + num2text(BE_REVENANT) = 7 ) /proc/player_old_enough_antag(client/C, role) diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm index 0f1b3545391..3b96151f284 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm @@ -1,4 +1,4 @@ -#define REVENANT_SPAWN_THRESHOLD 10 +#define REVENANT_SPAWN_THRESHOLD 1 /datum/event/revenant var/key_of_revenant From b069ed6b01ae45658310e75d1f912c06d94625b2 Mon Sep 17 00:00:00 2001 From: Robertha89 Date: Wed, 1 Jul 2015 03:38:41 +0200 Subject: [PATCH 10/14] Revert "7 days" This reverts commit 42c5c29b12c505cfdc49d65d7682085e419f3d79. --- code/_globalvars/database.dm | 12 ++++++------ code/defines/procs/dbcore.dm | 2 +- code/modules/client/preferences.dm | 2 +- .../simple_animal/revenant/revenant_spawn_event.dm | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/_globalvars/database.dm b/code/_globalvars/database.dm index 942c7c630b2..437f479f99c 100644 --- a/code/_globalvars/database.dm +++ b/code/_globalvars/database.dm @@ -2,13 +2,13 @@ var/sqladdress = "localhost" var/sqlport = "3306" var/sqldb = "paradise" -var/sqllogin = "mylogin" +var/sqllogin = "root" var/sqlpass = "example" // Feedback gathering sql connection var/sqlfdbkdb = "paradise" -var/sqlfdbklogin = "mylogin" -var/sqlfdbkpass = "mypassword" +var/sqlfdbklogin = "root" +var/sqlfdbkpass = "example" var/sqllogging = 0 // Should we log deaths, population stats, etc? @@ -18,9 +18,9 @@ var/sqllogging = 0 // Should we log deaths, population stats, etc? var/forumsqladdress = "localhost" var/forumsqlport = "3306" -var/forumsqldb = "paradise" -var/forumsqllogin = "mylogin" -var/forumsqlpass = "mypassword" +var/forumsqldb = "tgstation" +var/forumsqllogin = "root" +var/forumsqlpass = "bleh" var/forum_activated_group = "2" var/forum_authenticated_group = "10" diff --git a/code/defines/procs/dbcore.dm b/code/defines/procs/dbcore.dm index 788bbb705f0..45139ab3fb1 100644 --- a/code/defines/procs/dbcore.dm +++ b/code/defines/procs/dbcore.dm @@ -45,7 +45,7 @@ DBConnection var/password // This variable contains the password data. var/default_cursor // This contains the default database cursor data. // - var/server = "localhost" + var/server = "" var/port = 3306 DBConnection/New(dbi_handler,username,password_handler,cursor_handler) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 4f56edeff9d..ecc8ed6426b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -37,7 +37,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts num2text(BE_NINJA) = 21, num2text(BE_MUTINEER) = 21, num2text(BE_MALF) = 30, - num2text(BE_REVENANT) = 7 + num2text(BE_REVENANT) = 30 ) /proc/player_old_enough_antag(client/C, role) diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm index 3b96151f284..0f1b3545391 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm @@ -1,4 +1,4 @@ -#define REVENANT_SPAWN_THRESHOLD 1 +#define REVENANT_SPAWN_THRESHOLD 10 /datum/event/revenant var/key_of_revenant From fdb302e5a69f919f17973b0b011e2b6c0e9d79a8 Mon Sep 17 00:00:00 2001 From: Robertha89 Date: Wed, 1 Jul 2015 03:40:47 +0200 Subject: [PATCH 11/14] 7 days --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ecc8ed6426b..4f56edeff9d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -37,7 +37,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts num2text(BE_NINJA) = 21, num2text(BE_MUTINEER) = 21, num2text(BE_MALF) = 30, - num2text(BE_REVENANT) = 30 + num2text(BE_REVENANT) = 7 ) /proc/player_old_enough_antag(client/C, role) From 28eda8802a97f635b8854648fa84ee663f16a518 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Wed, 1 Jul 2015 02:40:35 -0400 Subject: [PATCH 12/14] RIP Plamsa, we barely knew you...*salutes* --- code/game/machinery/embedded_controller/docking_program.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/embedded_controller/docking_program.dm b/code/game/machinery/embedded_controller/docking_program.dm index e4e35ebe6b9..932562e39ab 100644 --- a/code/game/machinery/embedded_controller/docking_program.dm +++ b/code/game/machinery/embedded_controller/docking_program.dm @@ -51,7 +51,7 @@ *** Override, what is it? *** The purpose of enabling the override is to prevent the docking program from automatically doing things with the docking port when docking or undocking. - Maybe the shuttle is full of plamsa for some reason, and you don't want the door to automatically open, or the airlock to cycle. + Maybe the shuttle is full of plasma for some reason, and you don't want the door to automatically open, or the airlock to cycle. This means that the prepare_for_docking/undocking and finish_docking/undocking procs don't get called. The docking controller will still check the state of the docking port, and thus prevent the shuttle from launching unless they force the launch (handling forced From 9a6f636815ddf5745bd575320f3375d77fad4639 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 1 Jul 2015 09:29:27 -0700 Subject: [PATCH 13/14] Moved scooping into a seperate helper. --- code/modules/mob/holder.dm | 19 ++++++++++++++++++- .../mob/living/carbon/primitive/dionaold.dm | 12 +++--------- .../mob/living/silicon/robot/drone/drone.dm | 2 ++ .../silicon/robot/drone/drone_abilities.dm | 9 +-------- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index a6c0ce6614d..a441cfcf5b6 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -24,7 +24,7 @@ mob_container.forceMove(get_turf(src)) M.reset_view() - del(src) + qdel(src) /obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob, params) for(var/mob/M in src.contents) @@ -34,6 +34,23 @@ for(var/mob/living/M in contents) M.show_message(message,m_type) +//Mob procs and vars for scooping up +/mob/living/var/holder_type + +/mob/living/proc/get_scooped(var/mob/living/carbon/grabber) + if(!holder_type) return + + var/obj/item/weapon/holder/H = new holder_type(loc) + src.forceMove(H) + H.name = name + if(desc) H.desc = desc + H.attack_hand(grabber) + + grabber << "You scoop up \the [src]." + src << "\The [grabber] scoops you up." + grabber.status_flags |= PASSEMOTES + return + //Mob specific holders. /obj/item/weapon/holder/diona diff --git a/code/modules/mob/living/carbon/primitive/dionaold.dm b/code/modules/mob/living/carbon/primitive/dionaold.dm index 47f9ce3981f..a14fd3bdb50 100644 --- a/code/modules/mob/living/carbon/primitive/dionaold.dm +++ b/code/modules/mob/living/carbon/primitive/dionaold.dm @@ -13,6 +13,7 @@ var/ready_evolve = 0 ventcrawler = 1 var/environment_smash = 0 // This is a sloppy way to solve attack_animal runtimes. Stupid nymphs... + holder_type = /obj/item/weapon/holder/diona /mob/living/carbon/primitive/diona/New() @@ -30,16 +31,9 @@ src << "You feel your being twine with that of [M] as you merge with its biomass." src.verbs += /mob/living/carbon/primitive/diona/proc/split src.verbs -= /mob/living/carbon/primitive/diona/proc/merge - src.loc = M + src.forceMove(M) else - var/obj/item/weapon/holder/diona/D = new(loc) - src.loc = D - D.name = loc.name - D.attack_hand(M) - M << "You scoop up [src]." - src << "[M] scoops you up." - M.status_flags |= PASSEMOTES - return + get_scooped(M) ..() diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 12c5548f51c..524268be43e 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -25,6 +25,8 @@ //Used for self-mailing. var/mail_destination = 0 + + holder_type = /obj/item/weapon/holder/drone // var/sprite[0] diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm index 8ed8db27fcf..93a5b2c46f2 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm @@ -45,14 +45,7 @@ //Actual picking-up event. /mob/living/silicon/robot/drone/attack_hand(mob/living/carbon/human/M as mob) - if(M.a_intent == "help") - var/obj/item/weapon/holder/drone/D = new(loc) - src.loc = D - D.attack_hand(M) - M << "You scoop up [src]." - src << "[M] scoops you up." - M.status_flags |= PASSEMOTES - return + get_scooped(M) ..() \ No newline at end of file From 27f4ccda369e7c8ff377785797604d03bd4b0c96 Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Wed, 1 Jul 2015 22:09:37 -0400 Subject: [PATCH 14/14] Grinder Fix, Botany qdel Refactor, Removes PanDEMIC2200 Fixes the reagent grinder machines not properly grinding tomato into ketchup and rice into rice Updates botany code to use qdel over del to help alleviate potential lag from del calls Removes the PanDEMIC 2200 board from Tech Storage and the Circuit Imprinter, as the computer it builds has been commented out for a long time. Also deletes the commented out code (over 250 lines of commented out code deleted) --- _maps/map_files/cyberiad/cyberiad.dmm | 4 +- .../game/machinery/computer/buildandrepair.dm | 4 - code/modules/hydroponics/grown.dm | 36 +-- code/modules/hydroponics/grown_inedible.dm | 2 +- code/modules/hydroponics/seed.dm | 6 +- code/modules/hydroponics/seed_controller.dm | 4 +- code/modules/hydroponics/seed_machines.dm | 2 +- code/modules/hydroponics/seed_storage.dm | 8 +- .../hydroponics/spreading/spreading.dm | 12 +- .../hydroponics/spreading/spreading_growth.dm | 2 +- code/modules/hydroponics/trays/tray.dm | 12 +- code/modules/hydroponics/trays/tray_apiary.dm | 12 +- code/modules/hydroponics/trays/tray_soil.dm | 12 +- code/modules/reagents/Chemistry-Machinery.dm | 284 +----------------- .../research/designs/comp_board_designs.dm | 10 - 15 files changed, 66 insertions(+), 344 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 3cc4b8e28cb..739c4370d6b 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -5137,6 +5137,7 @@ "bUO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall/r_wall,/area/toxins/test_area) "bUP" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bUQ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) +"bUR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/bodyscanner,/obj/item/weapon/circuitboard/bodyscanner_console,/obj/item/weapon/circuitboard/sleeper{pixel_x = 3},/obj/item/weapon/circuitboard/sleep_console{pixel_x = 3},/turf/simulated/floor/plating,/area/storage/tech) "bUS" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock) "bUT" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_dock_airlock"; pixel_x = 25; pixel_y = -5; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_dock_pump"; tag_chamber_sensor = "mining_dock_sensor"; tag_exterior_door = "mining_dock_outer"; tag_interior_door = "mining_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_dock_sensor"; pixel_x = 25; pixel_y = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/obj/item/weapon/ore/iron,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/miningdock) "bUU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) @@ -5901,7 +5902,6 @@ "cki" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/storage/tech) "ckj" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/simulated/floor/plating,/area/storage/tech) "ckk" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/rdconsole{pixel_x = -4},/obj/item/weapon/circuitboard/rdserver{pixel_x = 4; pixel_y = -2},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe{pixel_x = -2; pixel_y = 3},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/circuitboard/circuit_imprinter{pixel_x = -4; pixel_y = -3},/turf/simulated/floor/plating,/area/storage/tech) -"ckl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/bodyscanner,/obj/item/weapon/circuitboard/bodyscanner_console,/obj/item/weapon/circuitboard/sleeper{pixel_x = 3},/obj/item/weapon/circuitboard/sleep_console{pixel_x = 3},/turf/simulated/floor/plating,/area/storage/tech) "ckm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/message_monitor{pixel_y = -5},/obj/item/weapon/circuitboard/arcade/battle,/obj/item/weapon/circuitboard/arcade/orion_trail{pixel_x = -4; pixel_y = 2},/turf/simulated/floor/plating,/area/storage/tech) "ckn" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "cko" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) @@ -8118,7 +8118,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZcgfcgecggbTCceIcghcghcghcghcghcghbTIbTIbTIbTIbTIbTIbTIcgicgjcgkcglcgmcgncgocgocgpcgqcfbbHTbHTcgrcgscgtbHTbHTbHTcgucgvcgwcdEcgxcgycgzcfucgAcgBcgCbQWcgBcgDcdTcdTcdTcdTcdTcdTcgBcdTcdTcdTbQWcgEcgFcgGcgHcgIcgJcgKcgLcaAcgMcgNcehcgOcehcgPcgQcgRcgScgTcgUcgVbzwcgWceobXVcgXbDbbDicgYcgZchabumbvWbvWbThchbchcchdchechfchgchhchichjchkchlbThchmchnchochpaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaachqbWFbWFbWFbWFbWFbWFbWFchrchsbWHbWHbWHbWHchtbdqbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZccZccZccZbTCceIccZaaaaaaaaaaaachuchvchwchxchychzchAchBchCchDchEbhrchGchHchIchIchJchKchLchMchMchMchMchNchMbHTbHTbNRchOchPchQchRchSchTcgIchUchVchWchXchYchZciacdTcdTcibcicbhsciebhscicbEDcifcigcigcihciicijcakcikcilcaAcimcinciocipciqcirciscaAcaAbDbcitbDbbDbbDbciucivciwbDbbvWcgYcixciybumbumbumbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabUNcbicbicbicbicbicbicizbWHcbhcbiciAbWHbWHbWHbWHbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciBaaaaabaabciCciCciCciCciCciCciDciCbTCcdbbhtaaabhubjJbhYbjYciJciKciLciMciNciOciPciQciRciSciTciUciVciWciXciYciZchLcjacjbcjbcjbcjcchMbHTbHTcjdcjdcjdcjdcjecjdcjfcjfcjgcjdcjdcjhcjdcjicjjbkycjlbkycjmcjncjocjpcjqbuXbuXcjrcjscjtcjucjvcjwcjxcbScaAcaAcjycaAcjzcaAcjAcjBcjCcfdcjDcjFcjGcjHcjIcjJcjKcjLcjIbvWcgYcjMbvWcjNcjOcjPcjQcfQbvWbvWbvWbvWbvWbvWbvWcjRcjEaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbWHbWHbWHbWHbWHbWHceDbWHciAbWHbWHbWHbWHbWHbUNbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjTcjUcjUcjUbkzcjWcjXcjYcjZckackbckccjScdbbhtaaabmZckgckhckickjciKckkcklckmcknchBckoceTbZUbhrckpcgockqcgockrcksbneckuckvckvckvckwchMbHTbHTcjdckxckyckzckAckBckCckCckDckEckFckGckHckIckJckKcdXcdXckLckMckNckOckPaaaaaacjvckQckRckScjrckdckUckVckWckWckXbGickYckZclaclbckZckZckZclcckZckZcldcleclfclgclhclicljclkbWycllclmbWybWybWybWyclnclobWybWybWybWyclpbvWaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbUNccYbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjTcjUcjUcjUbkzcjWcjXcjYcjZckackbckccjScdbbhtaaabmZckgckhckickjciKckkbURckmcknchBckoceTbZUbhrckpcgockqcgockrcksbneckuckvckvckvckwchMbHTbHTcjdckxckyckzckAckBckCckCckDckEckFckGckHckIckJckKcdXcdXckLckMckNckOckPaaaaaacjvckQckRckScjrckdckUckVckWckWckXbGickYckZclaclbckZckZckZclcckZckZcldcleclfclgclhclicljclkbWycllclmbWybWybWybWyclnclobWybWybWybWyclpbvWaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbUNccYbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclrclsclsclsclscltcluclvclwclxclxclyclzclAceIbhtaaabmZclBclCclDclEclFclGclHclEclEclIclJclKclLclMclMclNclOcgoclPclQbneckvckvckvckvclSchMbHTbHTcjdclTclUclVclWclXclYclYclZcmacmbcmccmdcmecjdcmfcdTcmgbEDcmhckNcmickPaaaaaacjvcmjcmkcmlcjvbHUcmmcmncmncmncmncmncmnckTcmpcmqcmocmscmsbnfbnfcmscmvcmwcmxcmycmzcmAcmBcmCcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAbvWcmDcmraZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZEbUNbUNcgbcgbbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmEcmFcmGcmHcmGcmIcmJcmKcmLbRSbGWclzcmNcdbbhtaaabmZcmOcmPcmQcmRciKcmScmTcmUcmVchBckoceTcmWcmXceVcmYcmZbhrbhrbhrcndcneckvckvcnfcngchMbHTcnhcjdcnicnjcnkcnlcnlcnlcnmcnncnlcnlcnocnkcnpcnqcnrcdTcnsbEDcntckNcnuckPaaaaaacjvcnvcnwcnxcjvcnybHTcnhcnzcnzcnzcnzcnzbngbnkbnjcnzcnzaaaaaaaaaaaacjIcnDcnEcnFcmAcnGcnIcnHcnKcnJcnMcnLcnOcnNcnQcnPcoXcnRcpacmAcnScnTcnUcnVcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnXcnYbUNbYcbUNbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacmEcnZcoacobcocclwcodclwcoeclwcofcogcohcoibhtaaabnlbjJbnIbjYcomciKciKconcoocopcoqcorcoscotcouceVcovcowcoxcoycozchLcoAckvckvckvcoBchMbHTbHTcoCcoCcoDcoEboQboQboQcoCbpobpobpocoLcoMcoDcoNcmfcdTcmgbEDcoOckNckOckPaaaaaacjvcoPcoQcoRcjvbHTbHTbHTcnzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpPcoTcoUcoVbqlcpbcoYcoYcoZcoYcoYcoYcoYcoYcpdcpccpfcpecphcpjcpjcpkcplcpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNcpmcpncpobUNbUNbWHbWHcppbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 41963473640..8864fa8bba2 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -53,10 +53,6 @@ /obj/item/weapon/circuitboard/med_data name = "Circuit board (Medical Records)" build_path = "/obj/machinery/computer/med_data" -/obj/item/weapon/circuitboard/pandemic - name = "Circuit board (PanD.E.M.I.C. 2200)" - build_path = "/obj/machinery/computer/pandemic" - origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/scan_consolenew name = "Circuit board (DNA Machine)" build_path = "/obj/machinery/computer/scan_consolenew" diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index c2fcb54de8c..04f4ab47ee4 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -29,7 +29,7 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return seed = plant_controller.seeds[plantname] @@ -80,7 +80,7 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return if(plant_controller.product_descs["[seed.uid]"]) @@ -178,7 +178,7 @@ M.Weaken(5) seed.thrown_at(src,M) sleep(-1) - if(src) del(src) + if(src) qdel(src) return /obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) @@ -198,7 +198,7 @@ user.put_in_hands(pocell) pocell.maxcharge = src.potency * 10 pocell.charge = pocell.maxcharge - del(src) + qdel(src) return else if(W.sharp) var/reagents_per_slice @@ -206,21 +206,21 @@ if(seed.kitchen_tag == "pumpkin") // Ugggh these checks are awful. user.show_message("You carve a face into [src]!", 1) new /obj/item/clothing/head/hardhat/pumpkinhead (user.loc) - del(src) + qdel(src) return else if(seed.kitchen_tag == "potato") user << "You slice \the [src] into sticks." reagents_per_slice = reagents.total_volume slice = new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src)) reagents.trans_to(slice, reagents_per_slice) - del(src) + qdel(src) return else if(seed.kitchen_tag == "carrot") user << "You slice \the [src] into sticks." reagents_per_slice = reagents.total_volume slice = new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src)) reagents.trans_to(slice, reagents_per_slice) - del(src) + qdel(src) return else if(seed.kitchen_tag == "watermelon") user << "You slice \the [src] into large slices." @@ -228,14 +228,14 @@ for(var/i=0,i<5,i++) slice = new /obj/item/weapon/reagent_containers/food/snacks/watermelonslice(get_turf(src)) reagents.trans_to(slice, reagents_per_slice) - del(src) + qdel(src) return else if(seed.kitchen_tag == "soybeans") user << "You roughly chop up \the [src]." reagents_per_slice = reagents.total_volume slice = new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src)) reagents.trans_to(slice, reagents_per_slice) - del(src) + qdel(src) return else if(seed.chems) if(istype(W,/obj/item/weapon/hatchet) && !isnull(seed.chems["woodpulp"])) @@ -250,7 +250,7 @@ continue G.attackby(NG, user) user << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks." - del(src) + qdel(src) return else if(istype(W, /obj/item/weapon/rollingpaper)) if(seed.kitchen_tag == "ambrosia" || seed.kitchen_tag == "ambrosiadeus" || seed.kitchen_tag == "tobacco" || seed.kitchen_tag == "stobacco") @@ -259,22 +259,22 @@ var/obj/item/clothing/mask/cigarette/joint/J = new /obj/item/clothing/mask/cigarette/joint(user.loc) J.chem_volume = src.reagents.total_volume src.reagents.trans_to(J, J.chem_volume) - del(W) + qdel(W) user.put_in_active_hand(J) else if(seed.kitchen_tag == "ambrosiadeus") var/obj/item/clothing/mask/cigarette/joint/deus/J = new /obj/item/clothing/mask/cigarette/joint/deus(user.loc) J.chem_volume = src.reagents.total_volume src.reagents.trans_to(J, J.chem_volume) - del(W) + qdel(W) user.put_in_active_hand(J) else if(seed.kitchen_tag == "tobacco" || seed.kitchen_tag == "stobacco") var/obj/item/clothing/mask/cigarette/handroll/J = new /obj/item/clothing/mask/cigarette/handroll(user.loc) J.chem_volume = src.reagents.total_volume src.reagents.trans_to(J, J.chem_volume) - del(W) + qdel(W) user.put_in_active_hand(J) user << "\blue You roll the [src] into a rolling paper." - del(src) + qdel(src) else user << "\red You can't roll a smokable from the [src]." @@ -333,7 +333,7 @@ if(user) user << "\The [src] has fallen to bits." //user.drop_from_inventory(src) - del(src) + qdel(src) add_fingerprint(user) return 1 @@ -353,7 +353,7 @@ user.visible_message("\The [user] squashes \the [src]!") seed.thrown_at(src,user) sleep(-1) - if(src) del(src) + if(src) qdel(src) return if(seed.kitchen_tag == "grass") @@ -368,14 +368,14 @@ continue NG.attackby(G, user) user << "You add the newly-formed grass to the stack. It now contains [G.amount] tiles." - del(src) + qdel(src) return if(seed.get_trait(TRAIT_SPREAD) > 0) user << "You plant the [src.name]." new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(get_turf(user),src.seed) new /obj/effect/plant(get_turf(user), src.seed) - del(src) + qdel(src) return /* diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index 8c23033a586..a5497298947 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -71,7 +71,7 @@ if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual)) user << "You use [W] to fashion a pipe out of the corn cob!" new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc) - del(src) + qdel(src) return /obj/item/weapon/bananapeel diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 2a4cade7c0c..5d90f365029 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -103,7 +103,7 @@ if(!istype(target)) if(istype(target, /mob/living/simple_animal/mouse) || istype(target, /mob/living/simple_animal/lizard)) new /obj/effect/decal/cleanable/blood/splatter(get_turf(target)) - del(target) + qdel(target) return @@ -228,7 +228,7 @@ apply_special_effect(M) splatter(T,thrown) origin_turf.visible_message("The [thrown.name] explodes!") - del(thrown) + qdel(thrown) return if(istype(target,/mob/living)) @@ -241,7 +241,7 @@ if(get_trait(TRAIT_JUICY) && splatted) splatter(origin_turf,thrown) origin_turf.visible_message("The [thrown.name] splatters against [target]!") - del(thrown) + qdel(thrown) /datum/seed/proc/handle_environment(var/turf/current_turf, var/datum/gas_mixture/environment, var/light_supplied, var/obj/item/weapon/tank/holding, var/check_only) diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm index 6a329b9d974..9a0db47790c 100644 --- a/code/modules/hydroponics/seed_controller.dm +++ b/code/modules/hydroponics/seed_controller.dm @@ -37,7 +37,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). /datum/controller/plants/New() if(plant_controller && plant_controller != src) log_debug("Rebuilding plant controller.") - del(plant_controller) + qdel(plant_controller) plant_controller = src setup() process() @@ -136,7 +136,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). break var/obj/effect/plant/plant = pick(plant_queue) plant_queue -= plant - if(!istype(plant)) + if(!istype(plant) || !isnull(plant.gcDestroyed)) continue plant.process() processed++ diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm index cce982372c0..550a1935a02 100644 --- a/code/modules/hydroponics/seed_machines.dm +++ b/code/modules/hydroponics/seed_machines.dm @@ -224,7 +224,7 @@ genetics = seed.seed degradation = 0 - del(seed) + qdel(seed) seed = null if(href_list["get_gene"]) diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index e64ad1e8131..9b3797af6b5 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -188,16 +188,16 @@ N.seeds -= O if (N.amount <= 0 || N.seeds.len <= 0) piles -= N - del(N) + qdel(N) O.loc = src.loc else piles -= N - del(N) + qdel(N) else if (task == "purge") for (var/obj/O in N.seeds) - del(O) + qdel(O) piles -= N - del(N) + qdel(N) break updateUsrDialog() diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index b99e2ccf6b8..d4ed8c17e81 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -32,13 +32,13 @@ color = DEAD_PLANT_COLOUR /obj/effect/dead_plant/attack_hand() - del(src) + qdel(src) /obj/effect/dead_plant/attackby() ..() for(var/obj/effect/plant/neighbor in range(1)) neighbor.update_neighbors() - del(src) + qdel(src) /obj/effect/plant name = "plant" @@ -70,12 +70,12 @@ var/mob/living/buckled_mob = null var/movable = 0 -/obj/effect/plant/Del() +/obj/effect/plant/Destroy() if(plant_controller) plant_controller.remove_plant(src) for(var/obj/effect/plant/neighbor in range(1,src)) plant_controller.add_plant(neighbor) - ..() + return ..() /obj/effect/plant/single spread_chance = 0 @@ -91,14 +91,14 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return if(!istype(newseed)) newseed = plant_controller.seeds[DEFAULT_SEED] seed = newseed if(!seed) - del(src) + qdel(src) return name = seed.display_name diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm index c360ba5c0e1..b86c3966aa8 100644 --- a/code/modules/hydroponics/spreading/spreading_growth.dm +++ b/code/modules/hydroponics/spreading/spreading_growth.dm @@ -104,6 +104,6 @@ for(var/obj/effect/plant/neighbor in check_turf.contents) neighbor.neighbors |= check_turf plant_controller.add_plant(neighbor) - spawn(1) if(src) del(src) + spawn(1) if(src) qdel(src) #undef NEIGHBOR_REFRESH_TIME \ No newline at end of file diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index b142a1fa9b1..c7c6b2201f0 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -574,7 +574,7 @@ weedlevel -= P.weed_kill_str user << "You spray [src] with [O]." playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - del(O) + qdel(O) check_level_sanity() update_icon() @@ -587,7 +587,7 @@ weedlevel -= W.weed_kill_str user << "You spray [src] with [O]." playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - del(O) + qdel(O) check_level_sanity() update_icon() @@ -682,7 +682,7 @@ if(!S.seed) user << "The packet seems to be empty. You throw it away." - del(O) + qdel(O) return user << "You plant the [S.seed.seed_name] [S.seed.seed_noun]." @@ -693,7 +693,7 @@ health = (istype(S, /obj/item/seeds/cutting) ? round(seed.get_trait(TRAIT_ENDURANCE)/rand(2,5)) : seed.get_trait(TRAIT_ENDURANCE)) lastcycle = world.time - del(O) + qdel(O) check_health() @@ -735,13 +735,13 @@ user << "[src] is already occupied!" else user.drop_item() - del(O) + qdel(O) var/obj/machinery/apiary/A = new(src.loc) A.icon = src.icon A.icon_state = src.icon_state A.hydrotray_type = src.type - del(src) + qdel(src) else if ((istype(O, /obj/item/weapon/tank) && !( src.destroyed ))) if (src.holding) user << "\blue There is alreadu a tank loaded into the [src]." diff --git a/code/modules/hydroponics/trays/tray_apiary.dm b/code/modules/hydroponics/trays/tray_apiary.dm index f2098e7481c..4ac67613a6c 100644 --- a/code/modules/hydroponics/trays/tray_apiary.dm +++ b/code/modules/hydroponics/trays/tray_apiary.dm @@ -51,7 +51,7 @@ health = 10 nutrilevel += 10 user.drop_item() - del(O) + qdel(O) user << "\blue You carefully insert the queen into [src], she gets busy making a hive." bees_in_hive = 0 else if(istype(O, /obj/item/beezeez)) @@ -62,7 +62,7 @@ user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up." else user << "\blue You insert [O] into [src]. Now it just needs some bees." - del(O) + qdel(O) else if(istype(O, /obj/item/weapon/minihoe)) if(health > 0) user << "\red You begin to dislodge the apiary from the tray, the bees don't like that." @@ -73,7 +73,7 @@ new hydrotray_type(src.loc) new /obj/item/apiary(src.loc) user << "\red You dislodge the apiary from the tray." - del(src) + qdel(src) else if(istype(O, /obj/item/weapon/bee_net)) var/obj/item/weapon/bee_net/N = O if(N.caught_bees > 0) @@ -115,11 +115,11 @@ if(swarming <= 0) for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength - del(B) + qdel(B) else if(bees_in_hive < 10) for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength - del(B) + qdel(B) if(world.time > (lastcycle + cycledelay)) lastcycle = world.time @@ -199,7 +199,7 @@ B.target_turf = get_turf(src) B.strength -= 1 if(B.strength <= 0) - del(B) + qdel(B) else if(B.strength <= 5) B.icon_state = "bees[B.strength]" bees_in_hive = 0 diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index ff47f069707..d8c207c1c67 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -44,27 +44,27 @@ /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/remove_dead() ..() - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/harvest() ..() if(!seed) // Repeat harvests are a thing. - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/die() - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/process() if(!seed) - del(src) + qdel(src) return else if(name=="plant") name = seed.display_name ..() -/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Del() +/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Destroy() // Check if we're masking a decal that needs to be visible again. for(var/obj/effect/plant/plant in get_turf(src)) if(plant.invisibility == INVISIBILITY_MAXIMUM) plant.invisibility = initial(plant.invisibility) - ..() + return ..() diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 44e077013bd..634519a7b83 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -705,273 +705,10 @@ return 0 - /obj/machinery/chem_master/condimaster name = "CondiMaster 3000" condi = 1 -//////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -/* - -/obj/machinery/computer/pandemic - name = "PanD.E.M.I.C 2200" - density = 1 - anchored = 1 - icon = 'icons/obj/chemical.dmi' - icon_state = "mixer0" - circuit = /obj/item/weapon/circuitboard/pandemic - //use_power = 1 - //idle_power_usage = 20 //defaults make more sense. - var/temphtml = "" - var/wait = null - var/obj/item/weapon/reagent_containers/glass/beaker = null - - -/obj/machinery/computer/pandemic/set_broken() - icon_state = (src.beaker?"mixer1_b":"mixer0_b") - stat |= BROKEN - - -/obj/machinery/computer/pandemic/power_change() - - if(stat & BROKEN) - icon_state = (src.beaker?"mixer1_b":"mixer0_b") - - else if(powered()) - icon_state = (src.beaker?"mixer1":"mixer0") - stat &= ~NOPOWER - - else - spawn(rand(0, 15)) - src.icon_state = (src.beaker?"mixer1_nopower":"mixer0_nopower") - stat |= NOPOWER - - -/obj/machinery/computer/pandemic/Topic(href, href_list) - if(stat & (NOPOWER|BROKEN)) return - if(usr.stat || usr.restrained()) return - if(!in_range(src, usr)) return - - usr.set_machine(src) - if(!beaker) return - - if (href_list["create_vaccine"]) - if(!src.wait) - var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) - if(B) - var/path = href_list["create_vaccine"] - var/vaccine_type = text2path(path) - var/datum/disease/D = null - - if(!vaccine_type) - D = archive_diseases[path] - vaccine_type = path - else - if(vaccine_type in diseases) - D = new vaccine_type(0, null) - - if(D) - B.name = "[D.name] vaccine bottle" - B.reagents.add_reagent("vaccine",15,vaccine_type) - wait = 1 - var/datum/reagents/R = beaker.reagents - var/datum/reagent/blood/Blood = null - for(var/datum/reagent/blood/L in R.reagent_list) - if(L) - Blood = L - break - var/list/res = Blood.data["resistances"] - spawn(res.len*200) - src.wait = null - else - src.temphtml = "The replicator is not ready yet." - src.updateUsrDialog() - return - else if (href_list["create_virus_culture"]) - if(!wait) - var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc) - B.icon_state = "bottle3" - var/type = text2path(href_list["create_virus_culture"])//the path is received as string - converting - var/datum/disease/D = null - if(!type) - var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]] - if(A) - D = new A.type(0, A) - else - if(type in diseases) // Make sure this is a disease - D = new type(0, null) - var/list/data = list("viruses"=list(D)) - var/name = sanitize(input(usr,"Name:","Name the culture",D.name)) - if(!name || name == " ") name = D.name - B.name = "[name] culture bottle" - B.desc = "A small bottle. Contains [D.agent] culture in synthblood medium." - B.reagents.add_reagent("blood",20,data) - src.updateUsrDialog() - wait = 1 - spawn(1000) - src.wait = null - else - src.temphtml = "The replicator is not ready yet." - src.updateUsrDialog() - return - else if (href_list["empty_beaker"]) - beaker.reagents.clear_reagents() - src.updateUsrDialog() - return - else if (href_list["eject"]) - beaker:loc = src.loc - beaker = null - icon_state = "mixer0" - src.updateUsrDialog() - return - else if(href_list["clear"]) - src.temphtml = "" - src.updateUsrDialog() - return - else if(href_list["name_disease"]) - var/new_name = stripped_input(usr, "Name the Disease", "New Name", "", MAX_NAME_LEN) - if(stat & (NOPOWER|BROKEN)) return - if(usr.stat || usr.restrained()) return - if(!in_range(src, usr)) return - var/id = href_list["name_disease"] - if(archive_diseases[id]) - var/datum/disease/advance/A = archive_diseases[id] - A.AssignName(new_name) - for(var/datum/disease/advance/AD in active_diseases) - AD.Refresh() - src.updateUsrDialog() - - - else - usr << browse(null, "window=pandemic") - src.updateUsrDialog() - return - - src.add_fingerprint(usr) - return - -/obj/machinery/computer/pandemic/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/pandemic/attack_paw(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/pandemic/attack_hand(mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.set_machine(src) - var/dat = "" - if(src.temphtml) - dat = "[src.temphtml]

Main Menu" - else if(!beaker) - dat += "Please insert beaker.
" - dat += "Close" - else - var/datum/reagents/R = beaker.reagents - var/datum/reagent/blood/Blood = null - for(var/datum/reagent/blood/B in R.reagent_list) - if(B) - Blood = B - break - if(!R.total_volume||!R.reagent_list.len) - dat += "The beaker is empty
" - else if(!Blood) - dat += "No blood sample found in beaker" - else if(!Blood.data) - dat += "No blood data found in beaker." - else - dat += "

Blood sample data:

" - dat += "Blood DNA: [(Blood.data["blood_DNA"]||"none")]
" - dat += "Blood Type: [(Blood.data["blood_type"]||"none")]
" - - - if(Blood.data["viruses"]) - var/list/vir = Blood.data["viruses"] - if(vir.len) - for(var/datum/disease/D in Blood.data["viruses"]) - if(!D.hidden[PANDEMIC]) - - - var/disease_creation = D.type - if(istype(D, /datum/disease/advance)) - - var/datum/disease/advance/A = D - D = archive_diseases[A.GetDiseaseID()] - disease_creation = A.GetDiseaseID() - if(D.name == "Unknown") - dat += "Name Disease
" - - if(!D) - CRASH("We weren't able to get the advance disease from the archive.") - - dat += "Disease Agent: [D?"[D.agent] - Create virus culture bottle":"none"]
" - dat += "Common name: [(D.name||"none")]
" - dat += "Description: [(D.desc||"none")]
" - dat += "Spread: [(D.spread||"none")]
" - dat += "Possible cure: [(D.cure||"none")]

" - - if(istype(D, /datum/disease/advance)) - var/datum/disease/advance/A = D - dat += "Symptoms: " - var/english_symptoms = list() - for(var/datum/symptom/S in A.symptoms) - english_symptoms += S.name - dat += english_list(english_symptoms) - - - dat += "
Contains antibodies to: " - if(Blood.data["resistances"]) - var/list/res = Blood.data["resistances"] - if(res.len) - dat += "
    " - for(var/type in Blood.data["resistances"]) - var/disease_name = "Unknown" - - if(!ispath(type)) - var/datum/disease/advance/A = archive_diseases[type] - if(A) - disease_name = A.name - else - var/datum/disease/D = new type(0, null) - disease_name = D.name - - dat += "
  • [disease_name] - Create vaccine bottle
  • " - dat += "

" - else - dat += "nothing
" - else - dat += "nothing
" - dat += "
Eject beaker[((R.total_volume&&R.reagent_list.len) ? "-- Empty beaker":"")]
" - dat += "Close" - - user << browse("[src.name]
[dat]", "window=pandemic;size=575x400") - onclose(user, "pandemic") - return - - -/obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob, params) - if(istype(I, /obj/item/weapon/reagent_containers/glass)) - if(stat & (NOPOWER|BROKEN)) return - if(src.beaker) - user << "A beaker is already loaded into the machine." - return - - src.beaker = I - user.drop_item() - I.loc = src - user << "You add the beaker to the machine!" - src.updateUsrDialog() - icon_state = "mixer1" - - else - ..() - return - -*/ -//////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// /obj/machinery/reagentgrinder name = "All-In-One Grinder" @@ -986,6 +723,8 @@ var/inuse = 0 var/obj/item/weapon/reagent_containers/beaker = null var/limit = 10 + + //IMPORTANT NOTE! A negative number is a multiplier, a positive number is a flat amount to add. 0 means equal to the amount of the original reagent var/list/blend_items = list ( //Sheets @@ -996,12 +735,10 @@ /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/weapon/grown/novaflower = list("capsaicin" = 0), - //archaeology! /obj/item/weapon/rocksliver = list("ground_rock" = 50), - //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! /obj/item/weapon/reagent_containers/pill = list(), /obj/item/weapon/reagent_containers/food = list() @@ -1013,9 +750,8 @@ "soybeans" = list("soymilk" = 0), "tomato" = list("ketchup" = 0), ///obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), - "ricestalk" = list("rice" = 5), + "rice" = list("rice" = -5), "cherries" = list("cherryjelly" = 0), - "plastellium" = list("plasticide" = 5), ) var/list/juice_items = list ( @@ -1036,9 +772,6 @@ "corn" = list("cornoil" = 0), ) - - - var/list/holdingitems = list() /obj/machinery/reagentgrinder/New() @@ -1050,10 +783,8 @@ icon_state = "juicer"+num2text(!isnull(beaker)) return - /obj/machinery/reagentgrinder/attackby(var/obj/item/O as obj, var/mob/user as mob, params) - if (istype(O,/obj/item/weapon/reagent_containers/glass) || \ istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass) || \ istype(O,/obj/item/weapon/reagent_containers/food/drinks/shaker)) @@ -1152,7 +883,6 @@ onclose(user, "reagentgrinder") return - /obj/machinery/reagentgrinder/Topic(href, href_list) if(..()) return @@ -1313,15 +1043,21 @@ var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume var/amount = allowed[r_id] - if(amount <= 0) + if(amount <= 0) //Negative amounts are multipliers for the reagent amount (Example: "amount = -5" means "reagent_amount * 5") if(amount == 0) if (O.reagents != null && O.reagents.has_reagent("nutriment")) beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment"), space)) O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if (O.reagents != null && O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter"), space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) else if (O.reagents != null && O.reagents.has_reagent("nutriment")) beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment")*abs(amount)), space)) O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if (O.reagents != null && O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter")*abs(amount)), space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) else O.reagents.trans_id_to(beaker, r_id, min(amount, space)) diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 03596510279..7318429f7e7 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -182,16 +182,6 @@ build_path = /obj/item/weapon/circuitboard/operating category = list("Computer Boards") -/datum/design/pandemic - name = "Console Board (PanD.E.M.I.C. 2200)" - desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." - id = "pandemic" - req_tech = list("programming" = 2, "biotech" = 2) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pandemic - category = list("Computer Boards") - /datum/design/powermonitor name = "Console Board (Power Monitor)" desc = "Allows for the construction of circuit boards used to build a new power monitor"