From 35cd77d43380339909bfedd8ceec9d1e822ed146 Mon Sep 17 00:00:00 2001 From: keronshb Date: Mon, 6 Jan 2020 15:17:26 -0500 Subject: [PATCH] Adds the nanite remote for some programs Adds a new remote function from tg --- code/__DEFINES/components.dm | 1 + code/datums/components/nanites.dm | 622 ++--- .../research/designs/electronics_designs.dm | 10 + .../research/designs/nanite_designs.dm | 6 +- .../nanites/nanite_programs/suppression.dm | 94 +- .../nanites/nanite_programs/utility.dm | 9 + .../modules/research/nanites/nanite_remote.dm | 103 + code/modules/research/techweb/all_nodes.dm | 2274 ++++++++--------- icons/obj/device.dmi | Bin 49032 -> 51443 bytes tgui/assets/tgui.js | 42 +- tgui/src/interfaces/nanite_comm_remote.ract | 41 + 11 files changed, 1712 insertions(+), 1490 deletions(-) create mode 100644 tgui/src/interfaces/nanite_comm_remote.ract diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index b0cc9030cb..2f270e6861 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -300,6 +300,7 @@ #define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" //(amount) Sets safety threshold to the given amount #define COMSIG_NANITE_SET_REGEN "nanite_set_regen" //(amount) Sets regeneration rate to the given amount #define COMSIG_NANITE_SIGNAL "nanite_signal" //(code(1-9999)) Called when sending a nanite signal to a mob. +#define COMSIG_NANITE_COMM_SIGNAL "nanite_comm_signal" //(comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob. #define COMSIG_NANITE_SCAN "nanite_scan" //(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected #define COMSIG_NANITE_UI_DATA "nanite_ui_data" //(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs #define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" //(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 89c4deb2e9..9a18609060 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -1,307 +1,315 @@ -/datum/component/nanites - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS - - var/mob/living/host_mob - var/nanite_volume = 50 //amount of nanites in the system, used as fuel for nanite programs - var/max_nanites = 250 //maximum amount of nanites in the system - var/regen_rate = 0.5 //nanites generated per second - var/safety_threshold = 25 //how low nanites will get before they stop processing/triggering - var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from - var/next_sync = 0 - var/list/datum/nanite_program/programs = list() - var/max_programs = NANITE_PROGRAM_LIMIT - - var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans - var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners - -/datum/component/nanites/Initialize(amount = 100, cloud = 0) - if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup)) - return COMPONENT_INCOMPATIBLE - - nanite_volume = amount - cloud_id = cloud - - //Nanites without hosts are non-interactive through normal means - if(isliving(parent)) - host_mob = parent - - if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow. - return COMPONENT_INCOMPATIBLE - - host_mob.hud_set_nanite_indicator() - START_PROCESSING(SSnanites, src) - - if(cloud_id) - cloud_sync() - -/datum/component/nanites/RegisterWithParent() - . = ..() - RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites) - RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data) - RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs) - RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume) - RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites) - RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume) - RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud) - RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety) - RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen) - RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program) - RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan) - RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) - - if(isliving(parent)) - RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death) - RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access) - RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock) - RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, .proc/on_minor_shock) - RegisterSignal(parent, COMSIG_SPECIES_GAIN, .proc/check_viable_biotype) - RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal) - -/datum/component/nanites/UnregisterFromParent() - . = ..() - UnregisterSignal(parent, list(COMSIG_HAS_NANITES, - COMSIG_NANITE_UI_DATA, - COMSIG_NANITE_GET_PROGRAMS, - COMSIG_NANITE_SET_VOLUME, - COMSIG_NANITE_ADJUST_VOLUME, - COMSIG_NANITE_SET_MAX_VOLUME, - COMSIG_NANITE_SET_CLOUD, - COMSIG_NANITE_SET_SAFETY, - COMSIG_NANITE_SET_REGEN, - COMSIG_NANITE_ADD_PROGRAM, - COMSIG_NANITE_SCAN, - COMSIG_NANITE_SYNC, - COMSIG_ATOM_EMP_ACT, - COMSIG_MOB_DEATH, - COMSIG_MOB_ALLOWED, - COMSIG_LIVING_ELECTROCUTE_ACT, - COMSIG_LIVING_MINOR_SHOCK, - COMSIG_MOVABLE_HEAR, - COMSIG_SPECIES_GAIN, - COMSIG_NANITE_SIGNAL)) - -/datum/component/nanites/Destroy() - STOP_PROCESSING(SSnanites, src) - set_nanite_bar(TRUE) - QDEL_LIST(programs) - if(host_mob) - host_mob.hud_set_nanite_indicator() - host_mob = null - return ..() - -/datum/component/nanites/InheritComponent(datum/component/nanites/new_nanites, i_am_original, list/arguments) - if(new_nanites) - adjust_nanites(null, new_nanites.nanite_volume) - else - adjust_nanites(null, arguments[1]) //just add to the nanite volume - -/datum/component/nanites/process() - adjust_nanites(null, regen_rate) - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_process() - set_nanite_bar() - if(cloud_id && world.time > next_sync) - cloud_sync() - next_sync = world.time + NANITE_SYNC_DELAY - -//Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status) -/datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE) - var/list/programs_to_remove = programs.Copy() - var/list/programs_to_add = source.programs.Copy() - for(var/X in programs) - var/datum/nanite_program/NP = X - for(var/Y in programs_to_add) - var/datum/nanite_program/SNP = Y - if(NP.type == SNP.type) - programs_to_remove -= NP - programs_to_add -= SNP - SNP.copy_programming(NP, copy_activation) - break - if(full_overwrite) - for(var/X in programs_to_remove) - qdel(X) - for(var/X in programs_to_add) - var/datum/nanite_program/SNP = X - add_program(null, SNP.copy()) - -/datum/component/nanites/proc/cloud_sync() - if(!cloud_id) - return - var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) - if(backup) - var/datum/component/nanites/cloud_copy = backup.nanites - if(cloud_copy) - sync(null, cloud_copy) - -/datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program) - for(var/X in programs) - var/datum/nanite_program/NP = X - if(NP.unique && NP.type == new_program.type) - qdel(NP) - if(programs.len >= max_programs) - return COMPONENT_PROGRAM_NOT_INSTALLED - if(source_program) - source_program.copy_programming(new_program) - programs += new_program - new_program.on_add(src) - return COMPONENT_PROGRAM_INSTALLED - -/datum/component/nanites/proc/consume_nanites(amount, force = FALSE) - if(!force && safety_threshold && (nanite_volume - amount < safety_threshold)) - return FALSE - adjust_nanites(null, -amount) - return (nanite_volume > 0) - -/datum/component/nanites/proc/adjust_nanites(datum/source, amount) - nanite_volume = CLAMP(nanite_volume + amount, 0, max_nanites) - if(nanite_volume <= 0) //oops we ran out - qdel(src) - -/datum/component/nanites/proc/set_nanite_bar(remove = FALSE) - var/image/holder = host_mob.hud_list[DIAG_NANITE_FULL_HUD] - var/icon/I = icon(host_mob.icon, host_mob.icon_state, host_mob.dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = null - if(remove || stealth) - return //bye icon - var/nanite_percent = (nanite_volume / max_nanites) * 100 - nanite_percent = CLAMP(CEILING(nanite_percent, 10), 10, 100) - holder.icon_state = "nanites[nanite_percent]" - -/datum/component/nanites/proc/on_emp(datum/source, severity) - adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume. - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_emp(severity) - -/datum/component/nanites/proc/on_shock(datum/source, shock_damage) - adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_shock(shock_damage) - -/datum/component/nanites/proc/on_minor_shock(datum/source) - adjust_nanites(null, -25) - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_minor_shock() - -/datum/component/nanites/proc/on_death(datum/source, gibbed) - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_death(gibbed) - -/datum/component/nanites/proc/receive_signal(datum/source, code, source = "an unidentified source") - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.receive_signal(code, source) - -/datum/component/nanites/proc/check_viable_biotype() - if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) - qdel(src) //bodytype no longer sustains nanites - -/datum/component/nanites/proc/check_access(datum/source, obj/O) - for(var/datum/nanite_program/triggered/access/access_program in programs) - if(access_program.activated) - return O.check_access_list(access_program.access) - else - return FALSE - return FALSE - -/datum/component/nanites/proc/set_volume(datum/source, amount) - nanite_volume = CLAMP(amount, 0, max_nanites) - -/datum/component/nanites/proc/set_max_volume(datum/source, amount) - max_nanites = max(1, max_nanites) - -/datum/component/nanites/proc/set_cloud(datum/source, amount) - cloud_id = CLAMP(amount, 0, 100) - -/datum/component/nanites/proc/set_safety(datum/source, amount) - safety_threshold = CLAMP(amount, 0, max_nanites) - -/datum/component/nanites/proc/set_regen(datum/source, amount) - regen_rate = amount - -/datum/component/nanites/proc/confirm_nanites() - return TRUE //yup i exist - -/datum/component/nanites/proc/get_data(list/nanite_data) - nanite_data["nanite_volume"] = nanite_volume - nanite_data["max_nanites"] = max_nanites - nanite_data["cloud_id"] = cloud_id - nanite_data["regen_rate"] = regen_rate - nanite_data["safety_threshold"] = safety_threshold - nanite_data["stealth"] = stealth - -/datum/component/nanites/proc/get_programs(datum/source, list/nanite_programs) - nanite_programs |= programs - -/datum/component/nanites/proc/nanite_scan(datum/source, mob/user, full_scan) - if(!full_scan) - if(!stealth) - to_chat(user, "Nanites Detected") - to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") - return TRUE - else - to_chat(user, "NANITES DETECTED") - to_chat(user, "================") - to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") - to_chat(user, "Safety Threshold: [safety_threshold]") - to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "Disabled"]") - to_chat(user, "================") - to_chat(user, "Program List:") - if(!diagnostics) - to_chat(user, "Diagnostics Disabled") - else - for(var/X in programs) - var/datum/nanite_program/NP = X - to_chat(user, "[NP.name] | [NP.activated ? "Active" : "Inactive"]") - return TRUE - -/datum/component/nanites/proc/nanite_ui_data(datum/source, list/data, scan_level) - data["has_nanites"] = TRUE - data["nanite_volume"] = nanite_volume - data["regen_rate"] = regen_rate - data["safety_threshold"] = safety_threshold - data["cloud_id"] = cloud_id - var/list/mob_programs = list() - var/id = 1 - for(var/X in programs) - var/datum/nanite_program/P = X - var/list/mob_program = list() - mob_program["name"] = P.name - mob_program["desc"] = P.desc - mob_program["id"] = id - - if(scan_level >= 2) - mob_program["activated"] = P.activated - mob_program["use_rate"] = P.use_rate - mob_program["can_trigger"] = P.can_trigger - mob_program["trigger_cost"] = P.trigger_cost - mob_program["trigger_cooldown"] = P.trigger_cooldown / 10 - - if(scan_level >= 3) - mob_program["activation_delay"] = P.activation_delay - mob_program["timer"] = P.timer - mob_program["timer_type"] = P.get_timer_type_text() - var/list/extra_settings = list() - for(var/Y in P.extra_settings) - var/list/setting = list() - setting["name"] = Y - setting["value"] = P.get_extra_setting(Y) - extra_settings += list(setting) - mob_program["extra_settings"] = extra_settings - if(LAZYLEN(extra_settings)) - mob_program["has_extra_settings"] = TRUE - - if(scan_level >= 4) - mob_program["activation_code"] = P.activation_code - mob_program["deactivation_code"] = P.deactivation_code - mob_program["kill_code"] = P.kill_code - mob_program["trigger_code"] = P.trigger_code - id++ - mob_programs += list(mob_program) - data["mob_programs"] = mob_programs +/datum/component/nanites + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + + var/mob/living/host_mob + var/nanite_volume = 50 //amount of nanites in the system, used as fuel for nanite programs + var/max_nanites = 250 //maximum amount of nanites in the system + var/regen_rate = 0.5 //nanites generated per second + var/safety_threshold = 25 //how low nanites will get before they stop processing/triggering + var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from + var/next_sync = 0 + var/list/datum/nanite_program/programs = list() + var/max_programs = NANITE_PROGRAM_LIMIT + + var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans + var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners + +/datum/component/nanites/Initialize(amount = 100, cloud = 0) + if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup)) + return COMPONENT_INCOMPATIBLE + + nanite_volume = amount + cloud_id = cloud + + //Nanites without hosts are non-interactive through normal means + if(isliving(parent)) + host_mob = parent + + if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow. + return COMPONENT_INCOMPATIBLE + + host_mob.hud_set_nanite_indicator() + START_PROCESSING(SSnanites, src) + + if(cloud_id) + cloud_sync() + +/datum/component/nanites/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites) + RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data) + RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs) + RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume) + RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites) + RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud) + RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety) + RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen) + RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program) + RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan) + RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) + + if(isliving(parent)) + RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death) + RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access) + RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock) + RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, .proc/on_minor_shock) + RegisterSignal(parent, COMSIG_SPECIES_GAIN, .proc/check_viable_biotype) + RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal) + RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal) + +/datum/component/nanites/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, list(COMSIG_HAS_NANITES, + COMSIG_NANITE_UI_DATA, + COMSIG_NANITE_GET_PROGRAMS, + COMSIG_NANITE_SET_VOLUME, + COMSIG_NANITE_ADJUST_VOLUME, + COMSIG_NANITE_SET_MAX_VOLUME, + COMSIG_NANITE_SET_CLOUD, + COMSIG_NANITE_SET_SAFETY, + COMSIG_NANITE_SET_REGEN, + COMSIG_NANITE_ADD_PROGRAM, + COMSIG_NANITE_SCAN, + COMSIG_NANITE_SYNC, + COMSIG_ATOM_EMP_ACT, + COMSIG_MOB_DEATH, + COMSIG_MOB_ALLOWED, + COMSIG_LIVING_ELECTROCUTE_ACT, + COMSIG_LIVING_MINOR_SHOCK, + COMSIG_MOVABLE_HEAR, + COMSIG_SPECIES_GAIN, + COMSIG_NANITE_SIGNAL, + COMSIG_NANITE_COMM_SIGNAL)) + +/datum/component/nanites/Destroy() + STOP_PROCESSING(SSnanites, src) + set_nanite_bar(TRUE) + QDEL_LIST(programs) + if(host_mob) + host_mob.hud_set_nanite_indicator() + host_mob = null + return ..() + +/datum/component/nanites/InheritComponent(datum/component/nanites/new_nanites, i_am_original, list/arguments) + if(new_nanites) + adjust_nanites(null, new_nanites.nanite_volume) + else + adjust_nanites(null, arguments[1]) //just add to the nanite volume + +/datum/component/nanites/process() + adjust_nanites(null, regen_rate) + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_process() + set_nanite_bar() + if(cloud_id && world.time > next_sync) + cloud_sync() + next_sync = world.time + NANITE_SYNC_DELAY + +//Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status) +/datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE) + var/list/programs_to_remove = programs.Copy() + var/list/programs_to_add = source.programs.Copy() + for(var/X in programs) + var/datum/nanite_program/NP = X + for(var/Y in programs_to_add) + var/datum/nanite_program/SNP = Y + if(NP.type == SNP.type) + programs_to_remove -= NP + programs_to_add -= SNP + SNP.copy_programming(NP, copy_activation) + break + if(full_overwrite) + for(var/X in programs_to_remove) + qdel(X) + for(var/X in programs_to_add) + var/datum/nanite_program/SNP = X + add_program(null, SNP.copy()) + +/datum/component/nanites/proc/cloud_sync() + if(!cloud_id) + return + var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) + if(backup) + var/datum/component/nanites/cloud_copy = backup.nanites + if(cloud_copy) + sync(null, cloud_copy) + +/datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program) + for(var/X in programs) + var/datum/nanite_program/NP = X + if(NP.unique && NP.type == new_program.type) + qdel(NP) + if(programs.len >= max_programs) + return COMPONENT_PROGRAM_NOT_INSTALLED + if(source_program) + source_program.copy_programming(new_program) + programs += new_program + new_program.on_add(src) + return COMPONENT_PROGRAM_INSTALLED + +/datum/component/nanites/proc/consume_nanites(amount, force = FALSE) + if(!force && safety_threshold && (nanite_volume - amount < safety_threshold)) + return FALSE + adjust_nanites(null, -amount) + return (nanite_volume > 0) + +/datum/component/nanites/proc/adjust_nanites(datum/source, amount) + nanite_volume = CLAMP(nanite_volume + amount, 0, max_nanites) + if(nanite_volume <= 0) //oops we ran out + qdel(src) + +/datum/component/nanites/proc/set_nanite_bar(remove = FALSE) + var/image/holder = host_mob.hud_list[DIAG_NANITE_FULL_HUD] + var/icon/I = icon(host_mob.icon, host_mob.icon_state, host_mob.dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = null + if(remove || stealth) + return //bye icon + var/nanite_percent = (nanite_volume / max_nanites) * 100 + nanite_percent = CLAMP(CEILING(nanite_percent, 10), 10, 100) + holder.icon_state = "nanites[nanite_percent]" + +/datum/component/nanites/proc/on_emp(datum/source, severity) + adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume. + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_emp(severity) + +/datum/component/nanites/proc/on_shock(datum/source, shock_damage) + adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_shock(shock_damage) + +/datum/component/nanites/proc/on_minor_shock(datum/source) + adjust_nanites(null, -25) + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_minor_shock() + +/datum/component/nanites/proc/on_death(datum/source, gibbed) + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_death(gibbed) + +/datum/component/nanites/proc/receive_signal(datum/source, code, source = "an unidentified source") + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.receive_signal(code, source) + +/datum/component/nanites/proc/receive_comm_signal(datum/source, comm_code, comm_message, comm_source = "an unidentified source") + for(var/X in programs) + if(istype(X, /datum/nanite_program/triggered/comm)) + var/datum/nanite_program/triggered/comm/NP = X + NP.receive_comm_signal(comm_code, comm_message, comm_source) + +/datum/component/nanites/proc/check_viable_biotype() + if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) + qdel(src) //bodytype no longer sustains nanites + +/datum/component/nanites/proc/check_access(datum/source, obj/O) + for(var/datum/nanite_program/triggered/access/access_program in programs) + if(access_program.activated) + return O.check_access_list(access_program.access) + else + return FALSE + return FALSE + +/datum/component/nanites/proc/set_volume(datum/source, amount) + nanite_volume = CLAMP(amount, 0, max_nanites) + +/datum/component/nanites/proc/set_max_volume(datum/source, amount) + max_nanites = max(1, max_nanites) + +/datum/component/nanites/proc/set_cloud(datum/source, amount) + cloud_id = CLAMP(amount, 0, 100) + +/datum/component/nanites/proc/set_safety(datum/source, amount) + safety_threshold = CLAMP(amount, 0, max_nanites) + +/datum/component/nanites/proc/set_regen(datum/source, amount) + regen_rate = amount + +/datum/component/nanites/proc/confirm_nanites() + return TRUE //yup i exist + +/datum/component/nanites/proc/get_data(list/nanite_data) + nanite_data["nanite_volume"] = nanite_volume + nanite_data["max_nanites"] = max_nanites + nanite_data["cloud_id"] = cloud_id + nanite_data["regen_rate"] = regen_rate + nanite_data["safety_threshold"] = safety_threshold + nanite_data["stealth"] = stealth + +/datum/component/nanites/proc/get_programs(datum/source, list/nanite_programs) + nanite_programs |= programs + +/datum/component/nanites/proc/nanite_scan(datum/source, mob/user, full_scan) + if(!full_scan) + if(!stealth) + to_chat(user, "Nanites Detected") + to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") + return TRUE + else + to_chat(user, "NANITES DETECTED") + to_chat(user, "================") + to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") + to_chat(user, "Safety Threshold: [safety_threshold]") + to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "Disabled"]") + to_chat(user, "================") + to_chat(user, "Program List:") + if(!diagnostics) + to_chat(user, "Diagnostics Disabled") + else + for(var/X in programs) + var/datum/nanite_program/NP = X + to_chat(user, "[NP.name] | [NP.activated ? "Active" : "Inactive"]") + return TRUE + +/datum/component/nanites/proc/nanite_ui_data(datum/source, list/data, scan_level) + data["has_nanites"] = TRUE + data["nanite_volume"] = nanite_volume + data["regen_rate"] = regen_rate + data["safety_threshold"] = safety_threshold + data["cloud_id"] = cloud_id + var/list/mob_programs = list() + var/id = 1 + for(var/X in programs) + var/datum/nanite_program/P = X + var/list/mob_program = list() + mob_program["name"] = P.name + mob_program["desc"] = P.desc + mob_program["id"] = id + + if(scan_level >= 2) + mob_program["activated"] = P.activated + mob_program["use_rate"] = P.use_rate + mob_program["can_trigger"] = P.can_trigger + mob_program["trigger_cost"] = P.trigger_cost + mob_program["trigger_cooldown"] = P.trigger_cooldown / 10 + + if(scan_level >= 3) + mob_program["activation_delay"] = P.activation_delay + mob_program["timer"] = P.timer + mob_program["timer_type"] = P.get_timer_type_text() + var/list/extra_settings = list() + for(var/Y in P.extra_settings) + var/list/setting = list() + setting["name"] = Y + setting["value"] = P.get_extra_setting(Y) + extra_settings += list(setting) + mob_program["extra_settings"] = extra_settings + if(LAZYLEN(extra_settings)) + mob_program["has_extra_settings"] = TRUE + + if(scan_level >= 4) + mob_program["activation_code"] = P.activation_code + mob_program["deactivation_code"] = P.deactivation_code + mob_program["kill_code"] = P.kill_code + mob_program["trigger_code"] = P.trigger_code + id++ + mob_programs += list(mob_program) + data["mob_programs"] = mob_programs diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 818e80beea..18d90ea12e 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -36,6 +36,16 @@ category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/nanite_comm_remote + name = "Nanite Communication Remote" + desc = "Allows for the construction of a nanite communication remote." + id = "nanite_comm_remote" + build_type = PROTOLATHE + materials = list(MAT_GLASS = 500, MAT_METAL = 500) + build_path = /obj/item/nanite_remote/comm + category = list("Electronics") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + /datum/design/nanite_scanner name = "Nanite Scanner" desc = "Allows for the construction of a nanite scanner." diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm index 09fe1d9c9b..85e34e5234 100644 --- a/code/modules/research/designs/nanite_designs.dm +++ b/code/modules/research/designs/nanite_designs.dm @@ -445,21 +445,21 @@ name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." id = "voice_nanites" - program_type = /datum/nanite_program/triggered/voice + program_type = /datum/nanite_program/triggered/comm/voice category = list("Suppression Nanites") /datum/design/nanites/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." id = "speech_nanites" - program_type = /datum/nanite_program/triggered/speech + program_type = /datum/nanite_program/triggered/comm/speech category = list("Suppression Nanites") /datum/design/nanites/hallucination name = "Hallucination" desc = "The nanites make the host see and hear things that aren't real." id = "hallucination_nanites" - program_type = /datum/nanite_program/triggered/hallucination + program_type = /datum/nanite_program/triggered/comm/hallucination category = list("Suppression Nanites") ////////////////////SENSOR NANITES////////////////////////////////////// diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index a6225fd337..300f54ba11 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -114,7 +114,19 @@ . = ..() host_mob.cure_fakedeath("nanites") -/datum/nanite_program/triggered/speech +//Can receive transmissions from a nanite communication remote for customized messages +/datum/nanite_program/triggered/comm + var/comm_code = 0 + var/comm_message = "" + +/datum/nanite_program/triggered/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source) + if(!activated || !comm_code) + return + if(signal_comm_code == comm_code) + host_mob.investigate_log("'s [name] nanite program was messaged by [comm_source] with comm code [signal_comm_code] and message '[comm_message]'.", INVESTIGATE_NANITES) + trigger(comm_message) + +/datum/nanite_program/triggered/comm/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." unique = FALSE @@ -122,10 +134,10 @@ trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) - extra_settings = list("Sentence") + extra_settings = list("Sentence","Comm Code") var/sentence = "" -/datum/nanite_program/triggered/speech/set_extra_setting(user, setting) +/datum/nanite_program/triggered/comm/speech/set_extra_setting(user, setting) if(setting == "Sentence") var/new_sentence = stripped_input(user, "Choose the sentence that the host will be forced to say.", "Sentence", sentence, MAX_MESSAGE_LEN) if(!new_sentence) @@ -133,23 +145,34 @@ if(copytext(new_sentence, 1, 2) == "*") //emotes are abusable, like surrender return sentence = new_sentence + if(setting == "Comm Code") + var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num + if(isnull(new_code)) + return + comm_code = CLAMP(round(new_code, 1), 0, 9999) -/datum/nanite_program/triggered/speech/get_extra_setting(setting) +/datum/nanite_program/triggered/comm/speech/get_extra_setting(setting) if(setting == "Sentence") return sentence + if(setting == "Comm Code") + return comm_code -/datum/nanite_program/triggered/speech/copy_extra_settings_to(datum/nanite_program/triggered/speech/target) +/datum/nanite_program/triggered/comm/speech/copy_extra_settings_to(datum/nanite_program/triggered/comm/speech/target) target.sentence = sentence + target.comm_code = comm_code -/datum/nanite_program/triggered/speech/trigger() +/datum/nanite_program/triggered/comm/speech/trigger(comm_message) if(!..()) return + var/sent_message = comm_message + if(!comm_message) + sent_message = sentence if(host_mob.stat == DEAD) return to_chat(host_mob, "You feel compelled to speak...") - host_mob.say(sentence, forced = "nanite speech") + host_mob.say(sent_message, forced = "nanite speech") -/datum/nanite_program/triggered/voice +/datum/nanite_program/triggered/comm/voice name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." unique = FALSE @@ -157,44 +180,62 @@ trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) - extra_settings = list("Message") + extra_settings = list("Message","Comm Code") var/message = "" -/datum/nanite_program/triggered/voice/set_extra_setting(user, setting) +/datum/nanite_program/triggered/comm/voice/set_extra_setting(user, setting) if(setting == "Message") var/new_message = stripped_input(user, "Choose the message sent to the host.", "Message", message, MAX_MESSAGE_LEN) if(!new_message) return message = new_message + if(setting == "Comm Code") + var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num + if(isnull(new_code)) + return + comm_code = CLAMP(round(new_code, 1), 0, 9999) -/datum/nanite_program/triggered/voice/get_extra_setting(setting) +/datum/nanite_program/triggered/comm/voice/get_extra_setting(setting) if(setting == "Message") return message + if(setting == "Comm Code") + return comm_code -/datum/nanite_program/triggered/voice/copy_extra_settings_to(datum/nanite_program/triggered/voice/target) +/datum/nanite_program/triggered/comm/voice/copy_extra_settings_to(datum/nanite_program/triggered/comm/voice/target) target.message = message + target.comm_code = comm_code -/datum/nanite_program/triggered/voice/trigger() +/datum/nanite_program/triggered/comm/voice/trigger(comm_message) if(!..()) return + var/sent_message = comm_message + if(!comm_message) + sent_message = message if(host_mob.stat == DEAD) return - to_chat(host_mob, "You hear a strange, robotic voice in your head... \"[message]\"") + to_chat(host_mob, "You hear a strange, robotic voice in your head... \"[sent_message]\"") -/datum/nanite_program/triggered/hallucination +/datum/nanite_program/triggered/comm/hallucination name = "Hallucination" desc = "The nanites make the host hallucinate something when triggered." trigger_cost = 4 trigger_cooldown = 80 unique = FALSE rogue_types = list(/datum/nanite_program/brain_misfire) - extra_settings = list("Hallucination Type") + extra_settings = list("Hallucination Type", "Comm Code") var/hal_type var/hal_details -/datum/nanite_program/triggered/hallucination/trigger() +/datum/nanite_program/triggered/comm/hallucination/trigger(comm_message) if(!..()) return + + if(comm_message && (hal_type != "Message")) //Triggered via comm remote, but not set to a message hallucination + return + var/sent_message = comm_message //Comm remotes can send custom hallucination messages for the chat hallucination + if(!sent_message) + sent_message = hal_details + if(!iscarbon(host_mob)) return var/mob/living/carbon/C = host_mob @@ -203,7 +244,7 @@ else switch(hal_type) if("Message") - new /datum/hallucination/chat(C, TRUE, null, hal_details) + new /datum/hallucination/chat(C, TRUE, null, sent_message) if("Battle") new /datum/hallucination/battle(C, TRUE, hal_details) if("Sound") @@ -223,7 +264,13 @@ if("Plasma Flood") new /datum/hallucination/fake_flood(C, TRUE) -/datum/nanite_program/triggered/hallucination/set_extra_setting(user, setting) +/datum/nanite_program/triggered/comm/hallucination/set_extra_setting(user, setting) + if(setting == "Comm Code") + var/new_code = input(user, "(Only for Message) Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num + if(isnull(new_code)) + return + comm_code = CLAMP(round(new_code, 1), 0, 9999) + if(setting == "Hallucination Type") var/list/possible_hallucinations = list("Random","Message","Battle","Sound","Weird Sound","Station Message","Health","Alert","Fire","Shock","Plasma Flood") var/hal_type_choice = input("Choose the hallucination type", name) as null|anything in possible_hallucinations @@ -299,13 +346,16 @@ if("Plasma Flood") hal_type = "Plasma Flood" -/datum/nanite_program/triggered/hallucination/get_extra_setting(setting) +/datum/nanite_program/triggered/comm/hallucination/get_extra_setting(setting) if(setting == "Hallucination Type") if(!hal_type) return "Random" else return hal_type + if(setting == "Comm Code") + return comm_code -/datum/nanite_program/triggered/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/hallucination/target) +/datum/nanite_program/triggered/comm/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/comm/hallucination/target) target.hal_type = hal_type - target.hal_details = hal_details \ No newline at end of file + target.hal_details = hal_details + target.comm_code = comm_code \ No newline at end of file diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 3db482d989..3e3ff52f47 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -197,6 +197,15 @@ return SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, code, source) +/datum/nanite_program/relay/proc/relay_comm_signal(comm_code, relay_code, comm_message) + if(!activated) + return + if(!host_mob) + return + if(relay_code != relay_channel) + return + SEND_SIGNAL(host_mob, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) + /datum/nanite_program/metabolic_synthesis name = "Metabolic Synthesis" desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel." diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm index a7c8533521..e10d8f8c4b 100644 --- a/code/modules/research/nanites/nanite_remote.dm +++ b/code/modules/research/nanites/nanite_remote.dm @@ -168,6 +168,109 @@ . = TRUE +/obj/item/nanite_remote/comm + name = "nanite communication remote" + desc = "A device that can send text messages to specific programs." + icon_state = "nanite_comm_remote" + var/comm_code = 0 + var/comm_message = "" + +/obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc) + switch(mode) + if(REMOTE_MODE_OFF) + return + if(REMOTE_MODE_SELF) + to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") + signal_mob(user, comm_code, comm_message) + if(REMOTE_MODE_TARGET) + if(isliving(target) && (get_dist(target, get_turf(src)) <= 7)) + to_chat(user, "You activate [src], signaling the nanites inside [target].") + signal_mob(target, code, comm_message, key_name(user)) + if(REMOTE_MODE_AOE) + to_chat(user, "You activate [src], signaling the nanites inside every host around you.") + for(var/mob/living/L in view(user, 7)) + signal_mob(L, code, comm_message, key_name(user)) + if(REMOTE_MODE_RELAY) + to_chat(user, "You activate [src], signaling all connected relay nanites.") + signal_relay(code, relay_code, comm_message, key_name(user)) + +/obj/item/nanite_remote/comm/signal_mob(mob/living/M, code, source) + SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) + +/obj/item/nanite_remote/comm/signal_relay(code, relay_code, source) + for(var/X in SSnanites.nanite_relays) + var/datum/nanite_program/relay/N = X + N.relay_comm_signal(comm_code, relay_code, comm_message) + +/obj/item/nanite_remote/comm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) + SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "nanite_comm_remote", name, 420, 800, master_ui, state) + ui.open() + +/obj/item/nanite_remote/comm/ui_data() + var/list/data = list() + data["comm_code"] = comm_code + data["relay_code"] = relay_code + data["comm_message"] = comm_message + data["mode"] = mode + data["locked"] = locked + data["saved_settings"] = saved_settings + + return data + +/obj/item/nanite_remote/comm/ui_act(action, params) + if(..()) + return + switch(action) + if("set_comm_code") + if(locked) + return + var/new_code = input("Set comm code (0000-9999):", name, code) as null|num + if(!isnull(new_code)) + new_code = CLAMP(round(new_code, 1),0,9999) + comm_code = new_code + . = TRUE + if("set_message") + if(locked) + return + var/new_message = stripped_input(usr, "Set the message (Max 300 characters):", "Set Message", null , 300) + if(!new_message) + return + comm_message = new_message + . = TRUE + if("comm_save") + if(locked) + return + var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15) + if(!code_name) + return + var/new_save = list() + new_save["id"] = last_id + 1 + last_id++ + new_save["name"] = code_name + new_save["code"] = comm_code + new_save["mode"] = mode + new_save["relay_code"] = relay_code + new_save["message"] = comm_message + + saved_settings += list(new_save) + . = TRUE + if("comm_load") + var/code_id = params["save_id"] + var/list/setting + for(var/list/X in saved_settings) + if(X["id"] == text2num(code_id)) + setting = X + break + if(setting) + comm_code = setting["code"] + mode = setting["mode"] + relay_code = setting["relay_code"] + comm_message = setting["message"] + . = TRUE + + #undef REMOTE_MODE_OFF #undef REMOTE_MODE_SELF #undef REMOTE_MODE_TARGET diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index af4148d194..ee065eb21f 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1,1137 +1,1137 @@ - -//Current rate: 132500 research points in 90 minutes - -//Base Nodes -/datum/techweb_node/base - id = "base" - starting_node = TRUE - display_name = "Basic Research Technology" - description = "NT default research technologies." - // Default research tech, prevents bricking - design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", - "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal", - "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") - -/datum/techweb_node/mmi - id = "mmi" - starting_node = TRUE - display_name = "Man Machine Interface" - description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." - design_ids = list("mmi") - -/datum/techweb_node/cyborg - id = "cyborg" - starting_node = TRUE - display_name = "Cyborg Construction" - description = "Sapient robots with preloaded tool modules and programmable laws." - design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", - "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") - -/datum/techweb_node/mech - id = "mecha" - starting_node = TRUE - display_name = "Mechanical Exosuits" - description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." - design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", - "ripley_main", "ripley_peri", "mech_hydraulic_clamp") - -/datum/techweb_node/mech_tools - id = "mech_tools" - starting_node = TRUE - display_name = "Basic Exosuit Equipment" - description = "Various tools fit for basic mech units" - design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") - -/datum/techweb_node/surplus_lims - id = "surplus_lims" - display_name = "Basic Prosthetics" - description = "Basic fragile lims for the impaired." - starting_node = TRUE - prereq_ids = list("biotech") - design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") - -/datum/techweb_node/blueprinted_bottles - id = "blueprinted_bottles" - display_name = "License Bottling" - description = "Some Branded bottles to print and export." - starting_node = TRUE - design_ids = list("gin", "wine", "whiskey", "vodka", "tequila", "patron", "rum", "kahlua", "vermouth", "goldschlager", "hcider", "cognac", "absinthe", "grappa", "sake", "fernet", "applejack", "champagne", "blazaam", "trappist", "grenadine", "autobottler") - -/datum/techweb_node/blueprinted_exports - id = "blueprinted_exports" - display_name = "License Exports" - description = "Some Branded bottles to print and export." - starting_node = TRUE - design_ids = list("gin_export", "wine_export", "whiskey_export", "vodka_export", "tequila_export", "patron_export", "rum_export", "kahlua_export", "vermouth_export", "goldschlager_export", "hcider_export", "cognac_export", "absinthe_export", "grappa_export", "sake_export", "fernet_export", "applejack_export", "champagne_export", "blazaam_export", "trappist_export", "grenadine_export") - -/////////////////////////Biotech///////////////////////// -/datum/techweb_node/biotech - id = "biotech" - display_name = "Biological Technology" - description = "What makes us tick." //the MC, silly! - prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/adv_biotech - id = "adv_biotech" - display_name = "Advanced Biotechnology" - description = "Advanced Biotechnology" - prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med","smartdartgun","medicinalsmartdart", "pHmeter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/bio_process - id = "bio_process" - display_name = "Biological Processing" - description = "From slimes to kitchens." - prereq_ids = list("biotech") - design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/bottle_exports - id = "bottle_exports" - display_name = "Legal Bottling" - prereq_ids = list("blueprinted_bottles") - description = "New bottles for printing and selling." - design_ids = list("minikeg", "blooddrop", "slim_gold", "white_bloodmoon", "greenroad") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 250) - -/datum/techweb_node/advance_lims - id = "advance_lims" - display_name = "Upgraded Prosthetics" - description = "Reinforced prosthetics for the impaired." - prereq_ids = list("adv_biotech", "surplus_lims") - design_ids = list("adv_l_arm", "adv_r_arm", "adv_r_leg", "adv_l_leg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) - export_price = 5000 - -/datum/techweb_node/advance_surgerytools - id = "advance_surgerytools" - display_name = "Advanced Surgery Tools" - description = "Refined and improved redesigns for the run-of-the-mill medical utensils." - prereq_ids = list("adv_biotech", "adv_surgery") - design_ids = list("drapes", "retractor_adv", "surgicaldrill_adv", "scalpel_adv") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/adv_defibrillator_tec - id = "adv_defibrillator_tec" - display_name = "Defibrillator Upgrades" - description = "More ways to bring back the newly dead." - prereq_ids = list("adv_biotech", "exp_surgery", "adv_engi", "adv_power") - design_ids = list("defib_decay", "defib_shock", "defib_heal", "defib_speed") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/////////////////////////Advanced Surgery///////////////////////// -/datum/techweb_node/imp_wt_surgery - id = "imp_wt_surgery" - display_name = "Improved Wound-Tending Surgery" - description = "Who would have known being more gentle with a hemostat decreases patient pain?" - prereq_ids = list("biotech") - design_ids = list("surgery_heal_brute_upgrade","surgery_heal_burn_upgrade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - export_price = 1000 - -/datum/techweb_node/adv_surgery - id = "adv_surgery" - display_name = "Advanced Surgery" - description = "When simple medicine doesn't cut it." - prereq_ids = list("imp_wt_surgery") - design_ids = list("surgery_revival", "surgery_lobotomy", "surgery_heal_brute_upgrade_femto","surgery_heal_burn_upgrade_femto", "surgery_heal_combo", "surgery_toxinhealing", "organbox", "surgery_adv_dissection") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/exp_surgery - id = "exp_surgery" - display_name = "Experimental Surgery" - description = "When evolution isn't fast enough." - prereq_ids = list("adv_surgery") - design_ids = list("surgery_pacify","surgery_vein_thread","surgery_muscled_veins","surgery_nerve_splice","surgery_nerve_ground","surgery_ligament_hook","surgery_ligament_reinforcement","surgery_viral_bond", "surgery_exp_dissection", "surgery_heal_combo_upgrade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -/datum/techweb_node/alien_surgery - id = "alien_surgery" - display_name = "Alien Surgery" - description = "Abductors did nothing wrong." - prereq_ids = list("exp_surgery", "alientech") - design_ids = list("surgery_brainwashing","surgery_zombie", "surgery_ext_dissection", "surgery_heal_combo_upgrade_femto") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - export_price = 5000 - -/////////////////////////data theory tech///////////////////////// -/datum/techweb_node/datatheory //Computer science - id = "datatheory" - display_name = "Data Theory" - description = "Big Data, in space!" - prereq_ids = list("base") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/adv_datatheory - id = "adv_datatheory" - display_name = "Advanced Data Theory" - description = "Better insight into programming and data." - prereq_ids = list("datatheory") - design_ids = list("icprinter", "icupgadv", "icupgclo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/////////////////////////engineering tech///////////////////////// -/datum/techweb_node/engineering - id = "engineering" - display_name = "Industrial Engineering" - description = "A refresher course on modern engineering technology." - prereq_ids = list("base") - design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", - "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", - "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) - export_price = 5000 - -/datum/techweb_node/adv_engi - id = "adv_engi" - display_name = "Advanced Engineering" - description = "Pushing the boundaries of physics, one chainsaw-fist at a time." - prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) - export_price = 5000 - -/datum/techweb_node/anomaly - id = "anomaly_research" - display_name = "Anomaly Research" - description = "Unlock the potential of the mysterious anomalies that appear on station." - prereq_ids = list("adv_engi", "practical_bluespace") - design_ids = list("reactive_armour", "anomaly_neutralizer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - export_price = 5000 - -/datum/techweb_node/high_efficiency - id = "high_efficiency" - display_name = "High Efficiency Parts" - description = "Finely-tooled manufacturing techniques allowing for picometer-perfect precision levels." - prereq_ids = list("engineering", "datatheory") - design_ids = list("pico_mani", "super_matter_bin") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -/datum/techweb_node/adv_power - id = "adv_power" - display_name = "Advanced Power Manipulation" - description = "How to get more zap." - prereq_ids = list("engineering") - design_ids = list("smes", "super_cell", "hyper_cell", "super_capacitor", "superpacman", "mrspacman", "power_turbine", "power_turbine_console", "power_compressor", "circulator", "teg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/datum/techweb_node/basic_meteor_defense - id = "basic_meteor_defense" - display_name = "Meteor Defense Research" - description = "Unlock the potential of the mysterious of why CC decided to not build these around the station themselves." - prereq_ids = list("adv_engi", "high_efficiency") - design_ids = list("meteor_defence", "meteor_console") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -//datum/techweb_node/adv_meteor_defense - //id = "adv_meteor_defense" - //display_name = "Meteor Defense Research" - //description = "New and improved coding and lock on tech for meteor defence!" - //prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") - //design_ids = list("meteor_disk") - //research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - //export_price = 5000 - -/datum/techweb_node/computer_board_gaming - id = "computer_board_gaming" - display_name = "Games and Toys" - description = "For the slackers on the station." - prereq_ids = list("comptech") - design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - export_price = 5000 - -/////////////////////////Bluespace tech///////////////////////// -/datum/techweb_node/bluespace_basic //Bluespace-memery - id = "bluespace_basic" - display_name = "Basic Bluespace Theory" - description = "Basic studies into the mysterious alternate dimension known as bluespace." - prereq_ids = list("base", "datatheory") - design_ids = list("beacon", "xenobioconsole", "telesci_gps", "xenobio_monkeys") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/practical_bluespace - id = "practical_bluespace" - display_name = "Applied Bluespace Research" - description = "Using bluespace to make things faster and better." - prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -/datum/techweb_node/adv_bluespace - id = "adv_bluespace" - display_name = "Advanced Bluespace Research" - description = "Deeper understanding of how the Bluespace dimension works" - prereq_ids = list("practical_bluespace", "high_efficiency") - design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal", "xenobio_slimeadv") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - export_price = 5000 - -/datum/techweb_node/bluespace_power - id = "bluespace_power" - display_name = "Bluespace Power Technology" - description = "Even more powerful.. power!" - prereq_ids = list("adv_power", "adv_bluespace") - design_ids = list("bluespace_cell", "quadratic_capacitor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/bluespace_holding - id = "bluespace_holding" - display_name = "Bluespace Pockets" - description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." - prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") - design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) - export_price = 5000 - -/datum/techweb_node/bluespace_portal - id = "bluespace_portal" - display_name = "Bluespace Portals" - description = "Allows for Bluespace Tech to be used tandem with Wormhole tech." - prereq_ids = list("adv_weaponry", "adv_bluespace") - design_ids = list("wormholeprojector") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/bluespace_warping - id = "bluespace_warping" - display_name = "Bluespace Travel" - description = "Application of Bluespace for static teleportation technology." - prereq_ids = list("adv_power", "adv_bluespace") - design_ids = list("tele_station", "tele_hub", "quantumpad", "quantum_keycard", "launchpad", "launchpad_console", "teleconsole", "roastingstick") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/unregulated_bluespace - id = "unregulated_bluespace" - display_name = "Unregulated Bluespace Research" - description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions." - prereq_ids = list("bluespace_warping", "syndicate_basic") - design_ids = list("desynchronizer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - -/////////////////////////plasma tech///////////////////////// -/datum/techweb_node/basic_plasma - id = "basic_plasma" - display_name = "Basic Plasma Research" - description = "Research into the mysterious and dangerous substance, plasma." - prereq_ids = list("engineering") - design_ids = list("mech_generator") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/adv_plasma - id = "adv_plasma" - display_name = "Advanced Plasma Research" - description = "Research on how to fully exploit the power of plasma." - prereq_ids = list("basic_plasma") - design_ids = list("mech_plasma_cutter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/////////////////////////robotics tech///////////////////////// -/datum/techweb_node/robotics - id = "robotics" - display_name = "Basic Robotics Research" - description = "Programmable machines that make our lives lazier." - prereq_ids = list("base") - design_ids = list("paicard", "drone_shell") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/adv_robotics - id = "adv_robotics" - display_name = "Advanced Robotics Research" - description = "It can even do the dishes!" - prereq_ids = list("robotics") - design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/datum/techweb_node/neural_programming - id = "neural_programming" - display_name = "Neural Programming" - description = "Study into networks of processing units that mimic our brains." - prereq_ids = list("biotech", "datatheory") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/posibrain - id = "posibrain" - display_name = "Positronic Brain" - description = "Applied usage of neural technology allowing for autonomous AI units based on special metallic cubes with conductive and processing circuits." - prereq_ids = list("neural_programming") - design_ids = list("mmi_posi") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/cyborg_upg_util - id = "cyborg_upg_util" - display_name = "Cyborg Upgrades: Utility" - description = "Utility upgrades for cyborgs." - prereq_ids = list("engineering", "robotics") - design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/cyborg_upg_med - id = "cyborg_upg_med" - display_name = "Cyborg Upgrades: Medical" - description = "Medical upgrades for cyborgs." - prereq_ids = list("adv_biotech", "robotics") - design_ids = list("borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/cyborg_upg_combat - id = "cyborg_upg_combat" - display_name = "Cyborg Upgrades: Combat" - description = "Military grade upgrades for cyborgs." - prereq_ids = list("adv_robotics", "adv_engi" , "weaponry") - design_ids = list("borg_upgrade_vtec", "borg_upgrade_disablercooler") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -/datum/techweb_node/ai - id = "ai" - display_name = "Artificial Intelligence" - description = "AI unit research." - prereq_ids = list("robotics", "posibrain") - design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", - "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "corporate_module", - "default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/////////////////////////EMP tech///////////////////////// -/datum/techweb_node/emp_basic //EMP tech for some reason - id = "emp_basic" - display_name = "Electromagnetic Theory" - description = "Study into usage of frequencies in the electromagnetic spectrum." - prereq_ids = list("base") - design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "inducer", "tray_goggles", "holopad") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/emp_adv - id = "emp_adv" - display_name = "Advanced Electromagnetic Theory" - description = "Determining whether reversing the polarity will actually help in a given situation." - prereq_ids = list("emp_basic") - design_ids = list("ultra_micro_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/datum/techweb_node/emp_super - id = "emp_super" - display_name = "Quantum Electromagnetic Technology" //bs - description = "Even better electromagnetic technology." - prereq_ids = list("emp_adv") - design_ids = list("quadultra_micro_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/////////////////////////Clown tech///////////////////////// -/datum/techweb_node/clown - id = "clown" - display_name = "Clown Technology" - description = "Honk?!" - prereq_ids = list("base") - design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm", - "honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -////////////////////////Computer tech//////////////////////// -/datum/techweb_node/comptech - id = "comptech" - display_name = "Computer Consoles" - description = "Computers and how they work." - prereq_ids = list("datatheory") - design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/computer_hardware_basic //Modular computers are shitty and nearly useless so until someone makes them actually useful this can be easy to get. - id = "computer_hardware_basic" - display_name = "Computer Hardware" - description = "How computer hardware are made." - prereq_ids = list("comptech") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) //they are really kinda shitty - export_price = 2000 - design_ids = list("hdd_basic", "hdd_advanced", "hdd_super", "hdd_cluster", "ssd_small", "ssd_micro", "netcard_basic", "netcard_advanced", "netcard_wired", - "portadrive_basic", "portadrive_advanced", "portadrive_super", "cardslot", "aislot", "miniprinter", "APClink", "bat_control", "bat_normal", "bat_advanced", - "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small") - -/datum/techweb_node/comp_recordkeeping - id = "comp_recordkeeping" - display_name = "Computerized Recordkeeping" - description = "Organized record databases and how they're used." - prereq_ids = list("comptech") - design_ids = list("secdata", "med_data", "prisonmanage", "vendor", "automated_announcement") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) - export_price = 2000 - -/datum/techweb_node/telecomms - id = "telecomms" - display_name = "Telecommunications Technology" - description = "Subspace transmission technology for near-instant communications devices." - prereq_ids = list("comptech", "bluespace_basic") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - export_price = 5000 - design_ids = list("s-receiver", "s-bus", "s-broadcaster", "s-processor", "s-hub", "s-server", "s-relay", "comm_monitor", "comm_server", - "s-ansible", "s-filter", "s-amplifier", "ntnet_relay", "s-treatment", "s-analyzer", "s-crystal", "s-transmitter", "message_monitor") - -/datum/techweb_node/integrated_HUDs - id = "integrated_HUDs" - display_name = "Integrated HUDs" - description = "The usefulness of computerized records, projected straight onto your eyepiece!" - prereq_ids = list("comp_recordkeeping", "emp_basic") - design_ids = list("health_hud", "security_hud", "diagnostic_hud", "scigoggles", "health_hud_prescription", "security_hud_prescription", "diagnostic_hud_prescription") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - export_price = 5000 - -/datum/techweb_node/NVGtech - id = "NVGtech" - display_name = "Night Vision Technology" - description = "Allows seeing in the dark without actual light!" - prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv") - design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "night_visision_goggles_glasses") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 - -////////////////////////Medical//////////////////////// -/datum/techweb_node/cloning - id = "cloning" - display_name = "Genetic Engineering" - description = "We have the technology to make him." - prereq_ids = list("biotech") - design_ids = list("clonecontrol", "clonepod", "clonescanner", "scan_console", "cloning_disk") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/cryotech - id = "cryotech" - display_name = "Cryostasis Technology" - description = "Smart freezing of objects to preserve them!" - prereq_ids = list("adv_engi", "biotech") - design_ids = list("splitbeaker", "noreactsyringe", "cryotube", "cryo_Grenade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 4000 - -/datum/techweb_node/subdermal_implants - id = "subdermal_implants" - display_name = "Subdermal Implants" - description = "Electronic implants buried beneath the skin." - prereq_ids = list("biotech", "datatheory") - design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/cyber_organs - id = "cyber_organs" - display_name = "Cybernetic Organs" - description = "We have the technology to rebuild him." - prereq_ids = list("adv_biotech") - design_ids = list("cybernetic_ears", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_tongue") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - export_price = 5000 - -/datum/techweb_node/cyber_organs_upgraded - id = "cyber_organs_upgraded" - display_name = "Upgraded Cybernetic Organs" - description = "We have the technology to upgrade him." - prereq_ids = list("cyber_organs") - design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - export_price = 5000 - -/datum/techweb_node/cyber_implants - id = "cyber_implants" - display_name = "Cybernetic Implants" - description = "Electronic implants that improve humans." - prereq_ids = list("adv_biotech", "adv_datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/adv_cyber_implants - id = "adv_cyber_implants" - display_name = "Advanced Cybernetic Implants" - description = "Upgraded and more powerful cybernetic implants." - prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs") - design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/combat_cyber_implants - id = "combat_cyber_implants" - display_name = "Combat Cybernetic Implants" - description = "Military grade combat implants to improve performance." - prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency") - design_ids = list("ci-xray", "ci-thermals", "ci-antidrop", "ci-antistun", "ci-thrusters") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -////////////////////////Tools//////////////////////// -/datum/techweb_node/basic_mining - id = "basic_mining" - display_name = "Mining Technology" - description = "Better than Efficiency V." - prereq_ids = list("engineering", "basic_plasma") - design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter")//e a r l y g a m e) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/adv_mining - id = "adv_mining" - display_name = "Advanced Mining Technology" - description = "Efficiency Level 127" //dumb mc references - prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") - design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/janitor - id = "janitor" - display_name = "Advanced Sanitation Technology" - description = "Clean things better, faster, stronger, and harder!" - prereq_ids = list("adv_engi") - design_ids = list("advmop", "buffer", "light_replacer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag - export_price = 5000 - -/datum/techweb_node/botany - id = "botany" - display_name = "Botanical Engineering" - description = "Botanical tools." - prereq_ids = list("adv_engi", "biotech") - design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - export_price = 5000 - -/datum/techweb_node/exp_tools - id = "exp_tools" - display_name = "Experimental Tools" - description = "Highly advanced construction tools." - design_ids = list("exwelder", "jawsoflife", "handdrill") - prereq_ids = list("adv_engi") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - export_price = 5000 - -/////////////////////////weaponry tech///////////////////////// -/datum/techweb_node/weaponry - id = "weaponry" - display_name = "Weapon Development Technology" - description = "Our researchers have found new to weaponize just about everything now." - prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield", "lasercarbine") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - export_price = 5000 - -/datum/techweb_node/adv_weaponry - id = "adv_weaponry" - display_name = "Advanced Weapon Development Technology" - description = "Our weapons are breaking the rules of reality by now." - prereq_ids = list("adv_engi", "weaponry") - design_ids = list("pin_loyalty") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - export_price = 5000 - -/datum/techweb_node/electric_weapons - id = "electronic_weapons" - display_name = "Electric Weapons" - description = "Weapons using electric technology" - prereq_ids = list("weaponry", "adv_power" , "emp_basic") - design_ids = list("stunrevolver", "stunshell", "ioncarbine") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - export_price = 5000 - -/datum/techweb_node/radioactive_weapons - id = "radioactive_weapons" - display_name = "Radioactive Weaponry" - description = "Weapons using radioactive technology." - prereq_ids = list("adv_engi", "adv_weaponry") - design_ids = list("nuclear_gun") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/medical_weapons - id = "medical_weapons" - display_name = "Medical Weaponry" - description = "Weapons using medical technology." - prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostatis") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/beam_weapons - id = "beam_weapons" - display_name = "Beam Weaponry" - description = "Various basic beam weapons" - prereq_ids = list("adv_weaponry") - design_ids = list("temp_gun", "xray_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/adv_beam_weapons - id = "adv_beam_weapons" - display_name = "Advanced Beam Weaponry" - description = "Various advanced beam weapons" - prereq_ids = list("beam_weapons") - design_ids = list("beamrifle") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3250) // Sniper - export_price = 5000 - -/datum/techweb_node/explosive_weapons - id = "explosive_weapons" - display_name = "Explosive & Pyrotechnical Weaponry" - description = "If the light stuff just won't do it." - prereq_ids = list("adv_weaponry") - design_ids = list("large_Grenade", "pyro_Grenade", "adv_Grenade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - export_price = 5000 - -/datum/techweb_node/ballistic_weapons - id = "ballistic_weapons" - display_name = "Ballistic Weaponry" - description = "This isn't research.. This is reverse-engineering!" - prereq_ids = list("weaponry") - design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "mag_oldsmg_ic", "mag_oldsmg_rubber", "mag_oldsmg_tx") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - export_price = 5000 - -/datum/techweb_node/exotic_ammo - id = "exotic_ammo" - display_name = "Exotic Ammunition" - description = "They won't know what hit em." - prereq_ids = list("weaponry", "ballistic_weapons") - design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - export_price = 5000 - -/datum/techweb_node/gravity_gun - id = "gravity_gun" - display_name = "One-point Bluespace-gravitational Manipulator" - description = "Fancy wording for gravity gun." - prereq_ids = list("adv_weaponry", "adv_bluespace") - design_ids = list("gravitygun", "mech_gravcatapult") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -////////////////////////mech technology//////////////////////// -/datum/techweb_node/adv_mecha - id = "adv_mecha" - display_name = "Advanced Exosuits" - description = "For when you just aren't Gundam enough." - prereq_ids = list("adv_robotics") - design_ids = list("mech_repair_droid") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/odysseus - id = "mecha_odysseus" - display_name = "EXOSUIT: Odysseus" - description = "Odysseus exosuit designs" - prereq_ids = list("base") - design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", - "odysseus_main", "odysseus_peri") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/gygax - id = "mech_gygax" - display_name = "EXOSUIT: Gygax" - description = "Gygax exosuit designs" - prereq_ids = list("adv_mecha", "weaponry") - design_ids = list("gygax_chassis", "gygax_torso", "gygax_head", "gygax_left_arm", "gygax_right_arm", "gygax_left_leg", "gygax_right_leg", "gygax_main", - "gygax_peri", "gygax_targ", "gygax_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/durand - id = "mech_durand" - display_name = "EXOSUIT: Durand" - description = "Durand exosuit designs" - prereq_ids = list("adv_mecha", "adv_weaponry") - design_ids = list("durand_chassis", "durand_torso", "durand_head", "durand_left_arm", "durand_right_arm", "durand_left_leg", "durand_right_leg", "durand_main", - "durand_peri", "durand_targ", "durand_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - export_price = 5000 - -/datum/techweb_node/phazon - id = "mecha_phazon" - display_name = "EXOSUIT: Phazon" - description = "Phazon exosuit designs" - prereq_ids = list("adv_mecha", "weaponry" , "adv_bluespace") - design_ids = list("phazon_chassis", "phazon_torso", "phazon_head", "phazon_left_arm", "phazon_right_arm", "phazon_left_leg", "phazon_right_leg", "phazon_main", - "phazon_peri", "phazon_targ", "phazon_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - export_price = 5000 - -/datum/techweb_node/adv_mecha_tools - id = "adv_mecha_tools" - display_name = "Advanced Exosuit Equipment" - description = "Tools for high level mech suits" - prereq_ids = list("adv_mecha") - design_ids = list("mech_rcd") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/med_mech_tools - id = "med_mech_tools" - display_name = "Medical Exosuit Equipment" - description = "Tools for high level mech suits" - prereq_ids = list("adv_biotech") - design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 5000 - -/datum/techweb_node/mech_modules - id = "adv_mecha_modules" - display_name = "Simple Exosuit Modules" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_mecha", "bluespace_power") - design_ids = list("mech_energy_relay", "mech_ccw_armor", "mech_proj_armor", "mech_generator_nuclear") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_scattershot - id = "mecha_tools" - display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_scattershot") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_seedscatter - id = "mech_seedscatter" - display_name = "Exosuit Weapon (Melon Seed \"Scattershot\")" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_seedscatter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_carbine - id = "mech_carbine" - display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_carbine") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_ion - id = "mmech_ion" - display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("electronic_weapons", "emp_adv") - design_ids = list("mech_ion") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_tesla - id = "mech_tesla" - display_name = "Exosuit Weapon (MKI Tesla Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("electronic_weapons", "adv_power") - design_ids = list("mech_tesla") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_laser - id = "mech_laser" - display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" - description = "A basic piece of mech weaponry" - prereq_ids = list("beam_weapons") - design_ids = list("mech_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_laser_heavy - id = "mech_laser_heavy" - display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_beam_weapons") - design_ids = list("mech_laser_heavy") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_grenade_launcher - id = "mech_grenade_launcher" - display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("mech_grenade_launcher") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_missile_rack - id = "mech_missile_rack" - display_name = "Exosuit Weapon (SRM-8 Missile Rack)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("mech_missile_rack") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/clusterbang_launcher - id = "clusterbang_launcher" - display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("clusterbang_launcher") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_teleporter - id = "mech_teleporter" - display_name = "Exosuit Module (Teleporter Module)" - description = "An advanced piece of mech Equipment" - prereq_ids = list("adv_bluespace") - design_ids = list("mech_teleporter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_wormhole_gen - id = "mech_wormhole_gen" - display_name = "Exosuit Module (Localized Wormhole Generator)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_bluespace") - design_ids = list("mech_wormhole_gen") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_taser - id = "mech_taser" - display_name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" - description = "A basic piece of mech weaponry" - prereq_ids = list("electronic_weapons") - design_ids = list("mech_taser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_lmg - id = "mech_lmg" - display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_lmg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/mech_diamond_drill - id = "mech_diamond_drill" - display_name = "Exosuit Diamond Drill" - description = "A diamond drill fit for a large exosuit" - prereq_ids = list("adv_mining") - design_ids = list("mech_diamond_drill") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/////////////////////////Nanites///////////////////////// -/datum/techweb_node/nanite_base - id = "nanite_base" - display_name = "Basic Nanite Programming" - description = "The basics of nanite construction and programming." - prereq_ids = list("datatheory","robotics") - design_ids = list("nanite_disk","nanite_remote","nanite_scanner",\ - "nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\ - "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/nanite_smart - id = "nanite_smart" - display_name = "Smart Nanite Programming" - description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets." - prereq_ids = list("nanite_base","adv_robotics") - design_ids = list("purging_nanites", "research_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - export_price = 4000 - -/datum/techweb_node/nanite_mesh - id = "nanite_mesh" - display_name = "Mesh Nanite Programming" - description = "Nanite programs that require static structures and membranes." - prereq_ids = list("nanite_base","engineering") - design_ids = list("hardening_nanites", "dermal_button_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/nanite_bio - id = "nanite_bio" - display_name = "Biological Nanite Programming" - description = "Nanite programs that require complex biological interaction." - prereq_ids = list("nanite_base","biotech") - design_ids = list("regenerative_nanites", "bloodheal_nanites", "coagulating_nanites","poison_nanites","flesheating_nanites",\ - "sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/nanite_neural - id = "nanite_neural" - display_name = "Neural Nanite Programming" - description = "Nanite programs affecting nerves and brain matter." - prereq_ids = list("nanite_bio") - design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/nanite_synaptic - id = "nanite_synaptic" - display_name = "Synaptic Nanite Programming" - description = "Nanite programs affecting mind and thoughts." - prereq_ids = list("nanite_neural","neural_programming") - design_ids = list("mindshield_nanites", "pacifying_nanites", "blinding_nanites", "sleep_nanites", "mute_nanites", "speech_nanites","hallucination_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - -/datum/techweb_node/nanite_harmonic - id = "nanite_harmonic" - display_name = "Harmonic Nanite Programming" - description = "Nanite programs that require seamless integration between nanites and biology." - prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh") - design_ids = list("fakedeath_nanites","researchplus_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) - export_price = 8000 - -/datum/techweb_node/nanite_combat - id = "nanite_military" - display_name = "Military Nanite Programming" - description = "Nanite programs that perform military-grade functions." - prereq_ids = list("nanite_harmonic", "syndicate_basic") - design_ids = list("explosive_nanites","pyro_nanites","meltdown_nanites","viral_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - export_price = 12500 - -/datum/techweb_node/nanite_hazard - id = "nanite_hazard" - display_name = "Hazard Nanite Programs" - description = "Extremely advanced Nanite programs with the potential of being extremely dangerous." - prereq_ids = list("nanite_harmonic", "alientech") - design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - export_price = 15000 - -////////////////////////Alien technology//////////////////////// -/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech - id = "alientech" - display_name = "Alien Technology" - description = "Things used by the greys." - prereq_ids = list("biotech","engineering") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 20000 - hidden = TRUE - design_ids = list("alienalloy") - -/datum/techweb_node/alientech/New() - . = ..() - boost_item_paths = typesof(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, - /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/cautery/alien, - /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, - /obj/item/crowbar/abductor, /obj/item/multitool/abductor, - /obj/item/stock_parts/cell/infinite/abductor, /obj/item/weldingtool/abductor, - /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, - /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor) - -/datum/techweb_node/alien_bio - id = "alien_bio" - display_name = "Alien Biological Tools" - description = "Advanced biological tools." - prereq_ids = list("alientech", "advance_surgerytools") - design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery", "ayyplantgenes") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 10000 - -/datum/techweb_node/alien_engi - id = "alien_engi" - display_name = "Alien Engineering" - description = "Alien engineering tools." - prereq_ids = list("alientech", "exp_tools") - design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 10000 - -/datum/techweb_node/syndicate_basic - id = "syndicate_basic" - display_name = "Illegal Technology" - description = "Dangerous research used to create dangerous objects." - prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons") - design_ids = list("decloner", "borg_syndicate_module", "suppressor", "largecrossbow", "donksofttoyvendor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - export_price = 5000 - hidden = TRUE - -/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way. - . = ..() - boost_item_paths = list() - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/UI = new path - if(!UI.item || !UI.illegal_tech) - continue - boost_item_paths |= UI.item //allows deconning to unlock. - -/datum/techweb_node/advanced_illegal_ballistics - id = "advanced_illegal_ballistics" - display_name = "Advanced Non-Standard Ballistics" - description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with." - design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","pistolm9mm","m45","bolt_clip") - prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between. - export_price = 7000 - -//Helpers for debugging/balancing the techweb in its entirety! -/proc/total_techweb_exports() - var/list/datum/techweb_node/processing = list() - for(var/i in subtypesof(/datum/techweb_node)) - processing += new i - . = 0 - for(var/i in processing) - var/datum/techweb_node/TN = i - . += TN.export_price - -/proc/total_techweb_points() - var/list/datum/techweb_node/processing = list() - for(var/i in subtypesof(/datum/techweb_node)) - processing += new i - var/datum/techweb/TW = new - TW.research_points = list() - for(var/i in processing) - var/datum/techweb_node/TN = i - TW.add_point_list(TN.research_costs) - return TW.research_points - -/proc/total_techweb_points_printout() - var/list/datum/techweb_node/processing = list() - for(var/i in subtypesof(/datum/techweb_node)) - processing += new i - var/datum/techweb/TW = new - TW.research_points = list() - for(var/i in processing) - var/datum/techweb_node/TN = i - TW.add_point_list(TN.research_costs) - return TW.printout_points() + +//Current rate: 132500 research points in 90 minutes + +//Base Nodes +/datum/techweb_node/base + id = "base" + starting_node = TRUE + display_name = "Basic Research Technology" + description = "NT default research technologies." + // Default research tech, prevents bricking + design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", + "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", + "space_heater", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal", + "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") + +/datum/techweb_node/mmi + id = "mmi" + starting_node = TRUE + display_name = "Man Machine Interface" + description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." + design_ids = list("mmi") + +/datum/techweb_node/cyborg + id = "cyborg" + starting_node = TRUE + display_name = "Cyborg Construction" + description = "Sapient robots with preloaded tool modules and programmable laws." + design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", + "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") + +/datum/techweb_node/mech + id = "mecha" + starting_node = TRUE + display_name = "Mechanical Exosuits" + description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." + design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", + "ripley_main", "ripley_peri", "mech_hydraulic_clamp") + +/datum/techweb_node/mech_tools + id = "mech_tools" + starting_node = TRUE + display_name = "Basic Exosuit Equipment" + description = "Various tools fit for basic mech units" + design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") + +/datum/techweb_node/surplus_lims + id = "surplus_lims" + display_name = "Basic Prosthetics" + description = "Basic fragile lims for the impaired." + starting_node = TRUE + prereq_ids = list("biotech") + design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") + +/datum/techweb_node/blueprinted_bottles + id = "blueprinted_bottles" + display_name = "License Bottling" + description = "Some Branded bottles to print and export." + starting_node = TRUE + design_ids = list("gin", "wine", "whiskey", "vodka", "tequila", "patron", "rum", "kahlua", "vermouth", "goldschlager", "hcider", "cognac", "absinthe", "grappa", "sake", "fernet", "applejack", "champagne", "blazaam", "trappist", "grenadine", "autobottler") + +/datum/techweb_node/blueprinted_exports + id = "blueprinted_exports" + display_name = "License Exports" + description = "Some Branded bottles to print and export." + starting_node = TRUE + design_ids = list("gin_export", "wine_export", "whiskey_export", "vodka_export", "tequila_export", "patron_export", "rum_export", "kahlua_export", "vermouth_export", "goldschlager_export", "hcider_export", "cognac_export", "absinthe_export", "grappa_export", "sake_export", "fernet_export", "applejack_export", "champagne_export", "blazaam_export", "trappist_export", "grenadine_export") + +/////////////////////////Biotech///////////////////////// +/datum/techweb_node/biotech + id = "biotech" + display_name = "Biological Technology" + description = "What makes us tick." //the MC, silly! + prereq_ids = list("base") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/adv_biotech + id = "adv_biotech" + display_name = "Advanced Biotechnology" + description = "Advanced Biotechnology" + prereq_ids = list("biotech") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med","smartdartgun","medicinalsmartdart", "pHmeter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/bio_process + id = "bio_process" + display_name = "Biological Processing" + description = "From slimes to kitchens." + prereq_ids = list("biotech") + design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/bottle_exports + id = "bottle_exports" + display_name = "Legal Bottling" + prereq_ids = list("blueprinted_bottles") + description = "New bottles for printing and selling." + design_ids = list("minikeg", "blooddrop", "slim_gold", "white_bloodmoon", "greenroad") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 250) + +/datum/techweb_node/advance_lims + id = "advance_lims" + display_name = "Upgraded Prosthetics" + description = "Reinforced prosthetics for the impaired." + prereq_ids = list("adv_biotech", "surplus_lims") + design_ids = list("adv_l_arm", "adv_r_arm", "adv_r_leg", "adv_l_leg") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) + export_price = 5000 + +/datum/techweb_node/advance_surgerytools + id = "advance_surgerytools" + display_name = "Advanced Surgery Tools" + description = "Refined and improved redesigns for the run-of-the-mill medical utensils." + prereq_ids = list("adv_biotech", "adv_surgery") + design_ids = list("drapes", "retractor_adv", "surgicaldrill_adv", "scalpel_adv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/adv_defibrillator_tec + id = "adv_defibrillator_tec" + display_name = "Defibrillator Upgrades" + description = "More ways to bring back the newly dead." + prereq_ids = list("adv_biotech", "exp_surgery", "adv_engi", "adv_power") + design_ids = list("defib_decay", "defib_shock", "defib_heal", "defib_speed") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/////////////////////////Advanced Surgery///////////////////////// +/datum/techweb_node/imp_wt_surgery + id = "imp_wt_surgery" + display_name = "Improved Wound-Tending Surgery" + description = "Who would have known being more gentle with a hemostat decreases patient pain?" + prereq_ids = list("biotech") + design_ids = list("surgery_heal_brute_upgrade","surgery_heal_burn_upgrade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + export_price = 1000 + +/datum/techweb_node/adv_surgery + id = "adv_surgery" + display_name = "Advanced Surgery" + description = "When simple medicine doesn't cut it." + prereq_ids = list("imp_wt_surgery") + design_ids = list("surgery_revival", "surgery_lobotomy", "surgery_heal_brute_upgrade_femto","surgery_heal_burn_upgrade_femto", "surgery_heal_combo", "surgery_toxinhealing", "organbox", "surgery_adv_dissection") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/exp_surgery + id = "exp_surgery" + display_name = "Experimental Surgery" + description = "When evolution isn't fast enough." + prereq_ids = list("adv_surgery") + design_ids = list("surgery_pacify","surgery_vein_thread","surgery_muscled_veins","surgery_nerve_splice","surgery_nerve_ground","surgery_ligament_hook","surgery_ligament_reinforcement","surgery_viral_bond", "surgery_exp_dissection", "surgery_heal_combo_upgrade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/alien_surgery + id = "alien_surgery" + display_name = "Alien Surgery" + description = "Abductors did nothing wrong." + prereq_ids = list("exp_surgery", "alientech") + design_ids = list("surgery_brainwashing","surgery_zombie", "surgery_ext_dissection", "surgery_heal_combo_upgrade_femto") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + export_price = 5000 + +/////////////////////////data theory tech///////////////////////// +/datum/techweb_node/datatheory //Computer science + id = "datatheory" + display_name = "Data Theory" + description = "Big Data, in space!" + prereq_ids = list("base") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/adv_datatheory + id = "adv_datatheory" + display_name = "Advanced Data Theory" + description = "Better insight into programming and data." + prereq_ids = list("datatheory") + design_ids = list("icprinter", "icupgadv", "icupgclo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/////////////////////////engineering tech///////////////////////// +/datum/techweb_node/engineering + id = "engineering" + display_name = "Industrial Engineering" + description = "A refresher course on modern engineering technology." + prereq_ids = list("base") + design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", + "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", + "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) + export_price = 5000 + +/datum/techweb_node/adv_engi + id = "adv_engi" + display_name = "Advanced Engineering" + description = "Pushing the boundaries of physics, one chainsaw-fist at a time." + prereq_ids = list("engineering", "emp_basic") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) + export_price = 5000 + +/datum/techweb_node/anomaly + id = "anomaly_research" + display_name = "Anomaly Research" + description = "Unlock the potential of the mysterious anomalies that appear on station." + prereq_ids = list("adv_engi", "practical_bluespace") + design_ids = list("reactive_armour", "anomaly_neutralizer") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + export_price = 5000 + +/datum/techweb_node/high_efficiency + id = "high_efficiency" + display_name = "High Efficiency Parts" + description = "Finely-tooled manufacturing techniques allowing for picometer-perfect precision levels." + prereq_ids = list("engineering", "datatheory") + design_ids = list("pico_mani", "super_matter_bin") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/adv_power + id = "adv_power" + display_name = "Advanced Power Manipulation" + description = "How to get more zap." + prereq_ids = list("engineering") + design_ids = list("smes", "super_cell", "hyper_cell", "super_capacitor", "superpacman", "mrspacman", "power_turbine", "power_turbine_console", "power_compressor", "circulator", "teg") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/datum/techweb_node/basic_meteor_defense + id = "basic_meteor_defense" + display_name = "Meteor Defense Research" + description = "Unlock the potential of the mysterious of why CC decided to not build these around the station themselves." + prereq_ids = list("adv_engi", "high_efficiency") + design_ids = list("meteor_defence", "meteor_console") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +//datum/techweb_node/adv_meteor_defense + //id = "adv_meteor_defense" + //display_name = "Meteor Defense Research" + //description = "New and improved coding and lock on tech for meteor defence!" + //prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") + //design_ids = list("meteor_disk") + //research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + //export_price = 5000 + +/datum/techweb_node/computer_board_gaming + id = "computer_board_gaming" + display_name = "Games and Toys" + description = "For the slackers on the station." + prereq_ids = list("comptech") + design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + export_price = 5000 + +/////////////////////////Bluespace tech///////////////////////// +/datum/techweb_node/bluespace_basic //Bluespace-memery + id = "bluespace_basic" + display_name = "Basic Bluespace Theory" + description = "Basic studies into the mysterious alternate dimension known as bluespace." + prereq_ids = list("base", "datatheory") + design_ids = list("beacon", "xenobioconsole", "telesci_gps", "xenobio_monkeys") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/practical_bluespace + id = "practical_bluespace" + display_name = "Applied Bluespace Research" + description = "Using bluespace to make things faster and better." + prereq_ids = list("bluespace_basic", "engineering") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/adv_bluespace + id = "adv_bluespace" + display_name = "Advanced Bluespace Research" + description = "Deeper understanding of how the Bluespace dimension works" + prereq_ids = list("practical_bluespace", "high_efficiency") + design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal", "xenobio_slimeadv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + export_price = 5000 + +/datum/techweb_node/bluespace_power + id = "bluespace_power" + display_name = "Bluespace Power Technology" + description = "Even more powerful.. power!" + prereq_ids = list("adv_power", "adv_bluespace") + design_ids = list("bluespace_cell", "quadratic_capacitor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/bluespace_holding + id = "bluespace_holding" + display_name = "Bluespace Pockets" + description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." + prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") + design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) + export_price = 5000 + +/datum/techweb_node/bluespace_portal + id = "bluespace_portal" + display_name = "Bluespace Portals" + description = "Allows for Bluespace Tech to be used tandem with Wormhole tech." + prereq_ids = list("adv_weaponry", "adv_bluespace") + design_ids = list("wormholeprojector") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/bluespace_warping + id = "bluespace_warping" + display_name = "Bluespace Travel" + description = "Application of Bluespace for static teleportation technology." + prereq_ids = list("adv_power", "adv_bluespace") + design_ids = list("tele_station", "tele_hub", "quantumpad", "quantum_keycard", "launchpad", "launchpad_console", "teleconsole", "roastingstick") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/unregulated_bluespace + id = "unregulated_bluespace" + display_name = "Unregulated Bluespace Research" + description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions." + prereq_ids = list("bluespace_warping", "syndicate_basic") + design_ids = list("desynchronizer") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 2500 + +/////////////////////////plasma tech///////////////////////// +/datum/techweb_node/basic_plasma + id = "basic_plasma" + display_name = "Basic Plasma Research" + description = "Research into the mysterious and dangerous substance, plasma." + prereq_ids = list("engineering") + design_ids = list("mech_generator") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/adv_plasma + id = "adv_plasma" + display_name = "Advanced Plasma Research" + description = "Research on how to fully exploit the power of plasma." + prereq_ids = list("basic_plasma") + design_ids = list("mech_plasma_cutter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/////////////////////////robotics tech///////////////////////// +/datum/techweb_node/robotics + id = "robotics" + display_name = "Basic Robotics Research" + description = "Programmable machines that make our lives lazier." + prereq_ids = list("base") + design_ids = list("paicard", "drone_shell") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/adv_robotics + id = "adv_robotics" + display_name = "Advanced Robotics Research" + description = "It can even do the dishes!" + prereq_ids = list("robotics") + design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/datum/techweb_node/neural_programming + id = "neural_programming" + display_name = "Neural Programming" + description = "Study into networks of processing units that mimic our brains." + prereq_ids = list("biotech", "datatheory") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/posibrain + id = "posibrain" + display_name = "Positronic Brain" + description = "Applied usage of neural technology allowing for autonomous AI units based on special metallic cubes with conductive and processing circuits." + prereq_ids = list("neural_programming") + design_ids = list("mmi_posi") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/cyborg_upg_util + id = "cyborg_upg_util" + display_name = "Cyborg Upgrades: Utility" + description = "Utility upgrades for cyborgs." + prereq_ids = list("engineering", "robotics") + design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/cyborg_upg_med + id = "cyborg_upg_med" + display_name = "Cyborg Upgrades: Medical" + description = "Medical upgrades for cyborgs." + prereq_ids = list("adv_biotech", "robotics") + design_ids = list("borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/cyborg_upg_combat + id = "cyborg_upg_combat" + display_name = "Cyborg Upgrades: Combat" + description = "Military grade upgrades for cyborgs." + prereq_ids = list("adv_robotics", "adv_engi" , "weaponry") + design_ids = list("borg_upgrade_vtec", "borg_upgrade_disablercooler") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/ai + id = "ai" + display_name = "Artificial Intelligence" + description = "AI unit research." + prereq_ids = list("robotics", "posibrain") + design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", + "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "corporate_module", + "default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/////////////////////////EMP tech///////////////////////// +/datum/techweb_node/emp_basic //EMP tech for some reason + id = "emp_basic" + display_name = "Electromagnetic Theory" + description = "Study into usage of frequencies in the electromagnetic spectrum." + prereq_ids = list("base") + design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "inducer", "tray_goggles", "holopad") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/emp_adv + id = "emp_adv" + display_name = "Advanced Electromagnetic Theory" + description = "Determining whether reversing the polarity will actually help in a given situation." + prereq_ids = list("emp_basic") + design_ids = list("ultra_micro_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/datum/techweb_node/emp_super + id = "emp_super" + display_name = "Quantum Electromagnetic Technology" //bs + description = "Even better electromagnetic technology." + prereq_ids = list("emp_adv") + design_ids = list("quadultra_micro_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/////////////////////////Clown tech///////////////////////// +/datum/techweb_node/clown + id = "clown" + display_name = "Clown Technology" + description = "Honk?!" + prereq_ids = list("base") + design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm", + "honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +////////////////////////Computer tech//////////////////////// +/datum/techweb_node/comptech + id = "comptech" + display_name = "Computer Consoles" + description = "Computers and how they work." + prereq_ids = list("datatheory") + design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/computer_hardware_basic //Modular computers are shitty and nearly useless so until someone makes them actually useful this can be easy to get. + id = "computer_hardware_basic" + display_name = "Computer Hardware" + description = "How computer hardware are made." + prereq_ids = list("comptech") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) //they are really kinda shitty + export_price = 2000 + design_ids = list("hdd_basic", "hdd_advanced", "hdd_super", "hdd_cluster", "ssd_small", "ssd_micro", "netcard_basic", "netcard_advanced", "netcard_wired", + "portadrive_basic", "portadrive_advanced", "portadrive_super", "cardslot", "aislot", "miniprinter", "APClink", "bat_control", "bat_normal", "bat_advanced", + "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small") + +/datum/techweb_node/comp_recordkeeping + id = "comp_recordkeeping" + display_name = "Computerized Recordkeeping" + description = "Organized record databases and how they're used." + prereq_ids = list("comptech") + design_ids = list("secdata", "med_data", "prisonmanage", "vendor", "automated_announcement") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) + export_price = 2000 + +/datum/techweb_node/telecomms + id = "telecomms" + display_name = "Telecommunications Technology" + description = "Subspace transmission technology for near-instant communications devices." + prereq_ids = list("comptech", "bluespace_basic") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + export_price = 5000 + design_ids = list("s-receiver", "s-bus", "s-broadcaster", "s-processor", "s-hub", "s-server", "s-relay", "comm_monitor", "comm_server", + "s-ansible", "s-filter", "s-amplifier", "ntnet_relay", "s-treatment", "s-analyzer", "s-crystal", "s-transmitter", "message_monitor") + +/datum/techweb_node/integrated_HUDs + id = "integrated_HUDs" + display_name = "Integrated HUDs" + description = "The usefulness of computerized records, projected straight onto your eyepiece!" + prereq_ids = list("comp_recordkeeping", "emp_basic") + design_ids = list("health_hud", "security_hud", "diagnostic_hud", "scigoggles", "health_hud_prescription", "security_hud_prescription", "diagnostic_hud_prescription") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + export_price = 5000 + +/datum/techweb_node/NVGtech + id = "NVGtech" + display_name = "Night Vision Technology" + description = "Allows seeing in the dark without actual light!" + prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv") + design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "night_visision_goggles_glasses") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +////////////////////////Medical//////////////////////// +/datum/techweb_node/cloning + id = "cloning" + display_name = "Genetic Engineering" + description = "We have the technology to make him." + prereq_ids = list("biotech") + design_ids = list("clonecontrol", "clonepod", "clonescanner", "scan_console", "cloning_disk") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/cryotech + id = "cryotech" + display_name = "Cryostasis Technology" + description = "Smart freezing of objects to preserve them!" + prereq_ids = list("adv_engi", "biotech") + design_ids = list("splitbeaker", "noreactsyringe", "cryotube", "cryo_Grenade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 4000 + +/datum/techweb_node/subdermal_implants + id = "subdermal_implants" + display_name = "Subdermal Implants" + description = "Electronic implants buried beneath the skin." + prereq_ids = list("biotech", "datatheory") + design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/cyber_organs + id = "cyber_organs" + display_name = "Cybernetic Organs" + description = "We have the technology to rebuild him." + prereq_ids = list("adv_biotech") + design_ids = list("cybernetic_ears", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_tongue") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + export_price = 5000 + +/datum/techweb_node/cyber_organs_upgraded + id = "cyber_organs_upgraded" + display_name = "Upgraded Cybernetic Organs" + description = "We have the technology to upgrade him." + prereq_ids = list("cyber_organs") + design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + export_price = 5000 + +/datum/techweb_node/cyber_implants + id = "cyber_implants" + display_name = "Cybernetic Implants" + description = "Electronic implants that improve humans." + prereq_ids = list("adv_biotech", "adv_datatheory") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/adv_cyber_implants + id = "adv_cyber_implants" + display_name = "Advanced Cybernetic Implants" + description = "Upgraded and more powerful cybernetic implants." + prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs") + design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/combat_cyber_implants + id = "combat_cyber_implants" + display_name = "Combat Cybernetic Implants" + description = "Military grade combat implants to improve performance." + prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency") + design_ids = list("ci-xray", "ci-thermals", "ci-antidrop", "ci-antistun", "ci-thrusters") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +////////////////////////Tools//////////////////////// +/datum/techweb_node/basic_mining + id = "basic_mining" + display_name = "Mining Technology" + description = "Better than Efficiency V." + prereq_ids = list("engineering", "basic_plasma") + design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter")//e a r l y g a m e) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/adv_mining + id = "adv_mining" + display_name = "Advanced Mining Technology" + description = "Efficiency Level 127" //dumb mc references + prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") + design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/janitor + id = "janitor" + display_name = "Advanced Sanitation Technology" + description = "Clean things better, faster, stronger, and harder!" + prereq_ids = list("adv_engi") + design_ids = list("advmop", "buffer", "light_replacer") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag + export_price = 5000 + +/datum/techweb_node/botany + id = "botany" + display_name = "Botanical Engineering" + description = "Botanical tools." + prereq_ids = list("adv_engi", "biotech") + design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + export_price = 5000 + +/datum/techweb_node/exp_tools + id = "exp_tools" + display_name = "Experimental Tools" + description = "Highly advanced construction tools." + design_ids = list("exwelder", "jawsoflife", "handdrill") + prereq_ids = list("adv_engi") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + export_price = 5000 + +/////////////////////////weaponry tech///////////////////////// +/datum/techweb_node/weaponry + id = "weaponry" + display_name = "Weapon Development Technology" + description = "Our researchers have found new to weaponize just about everything now." + prereq_ids = list("engineering") + design_ids = list("pin_testing", "tele_shield", "lasercarbine") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + export_price = 5000 + +/datum/techweb_node/adv_weaponry + id = "adv_weaponry" + display_name = "Advanced Weapon Development Technology" + description = "Our weapons are breaking the rules of reality by now." + prereq_ids = list("adv_engi", "weaponry") + design_ids = list("pin_loyalty") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + export_price = 5000 + +/datum/techweb_node/electric_weapons + id = "electronic_weapons" + display_name = "Electric Weapons" + description = "Weapons using electric technology" + prereq_ids = list("weaponry", "adv_power" , "emp_basic") + design_ids = list("stunrevolver", "stunshell", "ioncarbine") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + export_price = 5000 + +/datum/techweb_node/radioactive_weapons + id = "radioactive_weapons" + display_name = "Radioactive Weaponry" + description = "Weapons using radioactive technology." + prereq_ids = list("adv_engi", "adv_weaponry") + design_ids = list("nuclear_gun") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/medical_weapons + id = "medical_weapons" + display_name = "Medical Weaponry" + description = "Weapons using medical technology." + prereq_ids = list("adv_biotech", "adv_weaponry") + design_ids = list("rapidsyringe", "shotgundartcryostatis") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/beam_weapons + id = "beam_weapons" + display_name = "Beam Weaponry" + description = "Various basic beam weapons" + prereq_ids = list("adv_weaponry") + design_ids = list("temp_gun", "xray_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/adv_beam_weapons + id = "adv_beam_weapons" + display_name = "Advanced Beam Weaponry" + description = "Various advanced beam weapons" + prereq_ids = list("beam_weapons") + design_ids = list("beamrifle") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3250) // Sniper + export_price = 5000 + +/datum/techweb_node/explosive_weapons + id = "explosive_weapons" + display_name = "Explosive & Pyrotechnical Weaponry" + description = "If the light stuff just won't do it." + prereq_ids = list("adv_weaponry") + design_ids = list("large_Grenade", "pyro_Grenade", "adv_Grenade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + export_price = 5000 + +/datum/techweb_node/ballistic_weapons + id = "ballistic_weapons" + display_name = "Ballistic Weaponry" + description = "This isn't research.. This is reverse-engineering!" + prereq_ids = list("weaponry") + design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "mag_oldsmg_ic", "mag_oldsmg_rubber", "mag_oldsmg_tx") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + export_price = 5000 + +/datum/techweb_node/exotic_ammo + id = "exotic_ammo" + display_name = "Exotic Ammunition" + description = "They won't know what hit em." + prereq_ids = list("weaponry", "ballistic_weapons") + design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + export_price = 5000 + +/datum/techweb_node/gravity_gun + id = "gravity_gun" + display_name = "One-point Bluespace-gravitational Manipulator" + description = "Fancy wording for gravity gun." + prereq_ids = list("adv_weaponry", "adv_bluespace") + design_ids = list("gravitygun", "mech_gravcatapult") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +////////////////////////mech technology//////////////////////// +/datum/techweb_node/adv_mecha + id = "adv_mecha" + display_name = "Advanced Exosuits" + description = "For when you just aren't Gundam enough." + prereq_ids = list("adv_robotics") + design_ids = list("mech_repair_droid") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/odysseus + id = "mecha_odysseus" + display_name = "EXOSUIT: Odysseus" + description = "Odysseus exosuit designs" + prereq_ids = list("base") + design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", + "odysseus_main", "odysseus_peri") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/gygax + id = "mech_gygax" + display_name = "EXOSUIT: Gygax" + description = "Gygax exosuit designs" + prereq_ids = list("adv_mecha", "weaponry") + design_ids = list("gygax_chassis", "gygax_torso", "gygax_head", "gygax_left_arm", "gygax_right_arm", "gygax_left_leg", "gygax_right_leg", "gygax_main", + "gygax_peri", "gygax_targ", "gygax_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/durand + id = "mech_durand" + display_name = "EXOSUIT: Durand" + description = "Durand exosuit designs" + prereq_ids = list("adv_mecha", "adv_weaponry") + design_ids = list("durand_chassis", "durand_torso", "durand_head", "durand_left_arm", "durand_right_arm", "durand_left_leg", "durand_right_leg", "durand_main", + "durand_peri", "durand_targ", "durand_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + export_price = 5000 + +/datum/techweb_node/phazon + id = "mecha_phazon" + display_name = "EXOSUIT: Phazon" + description = "Phazon exosuit designs" + prereq_ids = list("adv_mecha", "weaponry" , "adv_bluespace") + design_ids = list("phazon_chassis", "phazon_torso", "phazon_head", "phazon_left_arm", "phazon_right_arm", "phazon_left_leg", "phazon_right_leg", "phazon_main", + "phazon_peri", "phazon_targ", "phazon_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + export_price = 5000 + +/datum/techweb_node/adv_mecha_tools + id = "adv_mecha_tools" + display_name = "Advanced Exosuit Equipment" + description = "Tools for high level mech suits" + prereq_ids = list("adv_mecha") + design_ids = list("mech_rcd") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/med_mech_tools + id = "med_mech_tools" + display_name = "Medical Exosuit Equipment" + description = "Tools for high level mech suits" + prereq_ids = list("adv_biotech") + design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 5000 + +/datum/techweb_node/mech_modules + id = "adv_mecha_modules" + display_name = "Simple Exosuit Modules" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_mecha", "bluespace_power") + design_ids = list("mech_energy_relay", "mech_ccw_armor", "mech_proj_armor", "mech_generator_nuclear") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_scattershot + id = "mecha_tools" + display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_scattershot") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_seedscatter + id = "mech_seedscatter" + display_name = "Exosuit Weapon (Melon Seed \"Scattershot\")" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_seedscatter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_carbine + id = "mech_carbine" + display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_carbine") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_ion + id = "mmech_ion" + display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("electronic_weapons", "emp_adv") + design_ids = list("mech_ion") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_tesla + id = "mech_tesla" + display_name = "Exosuit Weapon (MKI Tesla Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("electronic_weapons", "adv_power") + design_ids = list("mech_tesla") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_laser + id = "mech_laser" + display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" + description = "A basic piece of mech weaponry" + prereq_ids = list("beam_weapons") + design_ids = list("mech_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_laser_heavy + id = "mech_laser_heavy" + display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_beam_weapons") + design_ids = list("mech_laser_heavy") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_grenade_launcher + id = "mech_grenade_launcher" + display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("mech_grenade_launcher") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_missile_rack + id = "mech_missile_rack" + display_name = "Exosuit Weapon (SRM-8 Missile Rack)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("mech_missile_rack") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/clusterbang_launcher + id = "clusterbang_launcher" + display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("clusterbang_launcher") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_teleporter + id = "mech_teleporter" + display_name = "Exosuit Module (Teleporter Module)" + description = "An advanced piece of mech Equipment" + prereq_ids = list("adv_bluespace") + design_ids = list("mech_teleporter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_wormhole_gen + id = "mech_wormhole_gen" + display_name = "Exosuit Module (Localized Wormhole Generator)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_bluespace") + design_ids = list("mech_wormhole_gen") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_taser + id = "mech_taser" + display_name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" + description = "A basic piece of mech weaponry" + prereq_ids = list("electronic_weapons") + design_ids = list("mech_taser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_lmg + id = "mech_lmg" + display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_lmg") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/mech_diamond_drill + id = "mech_diamond_drill" + display_name = "Exosuit Diamond Drill" + description = "A diamond drill fit for a large exosuit" + prereq_ids = list("adv_mining") + design_ids = list("mech_diamond_drill") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/////////////////////////Nanites///////////////////////// +/datum/techweb_node/nanite_base + id = "nanite_base" + display_name = "Basic Nanite Programming" + description = "The basics of nanite construction and programming." + prereq_ids = list("datatheory","robotics") + design_ids = list("nanite_disk","nanite_remote","nanite_comm_remote","nanite_scanner",\ + "nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\ + "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/nanite_smart + id = "nanite_smart" + display_name = "Smart Nanite Programming" + description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets." + prereq_ids = list("nanite_base","adv_robotics") + design_ids = list("purging_nanites", "research_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + export_price = 4000 + +/datum/techweb_node/nanite_mesh + id = "nanite_mesh" + display_name = "Mesh Nanite Programming" + description = "Nanite programs that require static structures and membranes." + prereq_ids = list("nanite_base","engineering") + design_ids = list("hardening_nanites", "dermal_button_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/nanite_bio + id = "nanite_bio" + display_name = "Biological Nanite Programming" + description = "Nanite programs that require complex biological interaction." + prereq_ids = list("nanite_base","biotech") + design_ids = list("regenerative_nanites", "bloodheal_nanites", "coagulating_nanites","poison_nanites","flesheating_nanites",\ + "sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/nanite_neural + id = "nanite_neural" + display_name = "Neural Nanite Programming" + description = "Nanite programs affecting nerves and brain matter." + prereq_ids = list("nanite_bio") + design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/nanite_synaptic + id = "nanite_synaptic" + display_name = "Synaptic Nanite Programming" + description = "Nanite programs affecting mind and thoughts." + prereq_ids = list("nanite_neural","neural_programming") + design_ids = list("mindshield_nanites", "pacifying_nanites", "blinding_nanites", "sleep_nanites", "mute_nanites", "speech_nanites","hallucination_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +/datum/techweb_node/nanite_harmonic + id = "nanite_harmonic" + display_name = "Harmonic Nanite Programming" + description = "Nanite programs that require seamless integration between nanites and biology." + prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh") + design_ids = list("fakedeath_nanites","researchplus_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) + export_price = 8000 + +/datum/techweb_node/nanite_combat + id = "nanite_military" + display_name = "Military Nanite Programming" + description = "Nanite programs that perform military-grade functions." + prereq_ids = list("nanite_harmonic", "syndicate_basic") + design_ids = list("explosive_nanites","pyro_nanites","meltdown_nanites","viral_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + export_price = 12500 + +/datum/techweb_node/nanite_hazard + id = "nanite_hazard" + display_name = "Hazard Nanite Programs" + description = "Extremely advanced Nanite programs with the potential of being extremely dangerous." + prereq_ids = list("nanite_harmonic", "alientech") + design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + export_price = 15000 + +////////////////////////Alien technology//////////////////////// +/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech + id = "alientech" + display_name = "Alien Technology" + description = "Things used by the greys." + prereq_ids = list("biotech","engineering") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 20000 + hidden = TRUE + design_ids = list("alienalloy") + +/datum/techweb_node/alientech/New() + . = ..() + boost_item_paths = typesof(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, + /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/cautery/alien, + /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, + /obj/item/crowbar/abductor, /obj/item/multitool/abductor, + /obj/item/stock_parts/cell/infinite/abductor, /obj/item/weldingtool/abductor, + /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, + /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor) + +/datum/techweb_node/alien_bio + id = "alien_bio" + display_name = "Alien Biological Tools" + description = "Advanced biological tools." + prereq_ids = list("alientech", "advance_surgerytools") + design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery", "ayyplantgenes") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 10000 + +/datum/techweb_node/alien_engi + id = "alien_engi" + display_name = "Alien Engineering" + description = "Alien engineering tools." + prereq_ids = list("alientech", "exp_tools") + design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 10000 + +/datum/techweb_node/syndicate_basic + id = "syndicate_basic" + display_name = "Illegal Technology" + description = "Dangerous research used to create dangerous objects." + prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons") + design_ids = list("decloner", "borg_syndicate_module", "suppressor", "largecrossbow", "donksofttoyvendor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + export_price = 5000 + hidden = TRUE + +/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way. + . = ..() + boost_item_paths = list() + for(var/path in GLOB.uplink_items) + var/datum/uplink_item/UI = new path + if(!UI.item || !UI.illegal_tech) + continue + boost_item_paths |= UI.item //allows deconning to unlock. + +/datum/techweb_node/advanced_illegal_ballistics + id = "advanced_illegal_ballistics" + display_name = "Advanced Non-Standard Ballistics" + description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with." + design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","pistolm9mm","m45","bolt_clip") + prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between. + export_price = 7000 + +//Helpers for debugging/balancing the techweb in its entirety! +/proc/total_techweb_exports() + var/list/datum/techweb_node/processing = list() + for(var/i in subtypesof(/datum/techweb_node)) + processing += new i + . = 0 + for(var/i in processing) + var/datum/techweb_node/TN = i + . += TN.export_price + +/proc/total_techweb_points() + var/list/datum/techweb_node/processing = list() + for(var/i in subtypesof(/datum/techweb_node)) + processing += new i + var/datum/techweb/TW = new + TW.research_points = list() + for(var/i in processing) + var/datum/techweb_node/TN = i + TW.add_point_list(TN.research_costs) + return TW.research_points + +/proc/total_techweb_points_printout() + var/list/datum/techweb_node/processing = list() + for(var/i in subtypesof(/datum/techweb_node)) + processing += new i + var/datum/techweb/TW = new + TW.research_points = list() + for(var/i in processing) + var/datum/techweb_node/TN = i + TW.add_point_list(TN.research_costs) + return TW.printout_points() diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 73eb12fd6a1326358e18f20b7823538eb974b544..71fceba8b4df1735833a78dad91efa252f0c487d 100644 GIT binary patch literal 51443 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 literal 49032 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 diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index cc0b5d198f..c0b7d426f3 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,21 +1,21 @@ -require=function(){function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var p="function"==typeof require&&require;if(!s&&p)return p(o,!0);if(i)return i(o,!0);var u=Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n||t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=0;--a){var r=this.tryEntries[a],i=r.completion;if("root"===r.tryLoc)return e("end");if(r.tryLoc<=this.prev){var o=b.call(r,"catchLoc"),s=b.call(r,"finallyLoc");if(o&&s){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&b.call(a,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),d(n),O}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var r=a.arg;d(n)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:h(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=g),O}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(t,e,n){t(129),e.exports=t(24).RegExp.escape},{129:129,24:24}],4:[function(t,e,n){e.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],5:[function(t,e,n){var a=t(19);e.exports=function(t,e){if("number"!=typeof t&&"Number"!=a(t))throw TypeError(e);return+t}},{19:19}],6:[function(t,e,n){var a=t(127)("unscopables"),r=Array.prototype;void 0==r[a]&&t(43)(r,a,{}),e.exports=function(t){r[a][t]=!0}},{127:127,43:43}],7:[function(t,e,n){e.exports=function(t,e,n,a){if(!(t instanceof e)||void 0!==a&&a in t)throw TypeError(n+": incorrect invocation!");return t}},{}],8:[function(t,e,n){var a=t(52);e.exports=function(t){if(!a(t))throw TypeError(t+" is not an object!");return t}},{52:52}],9:[function(t,e,n){"use strict";var a=t(117),r=t(112),i=t(116);e.exports=[].copyWithin||function(t,e){var n=a(this),o=i(n.length),s=r(t,o),p=r(e,o),u=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===u?o:r(u,o))-p,o-s),l=1;for(s>p&&p+c>s&&(l=-1,p+=c-1,s+=c-1);c-- >0;)p in n?n[s]=n[p]:delete n[s],s+=l,p+=l;return n}},{112:112,116:116,117:117}],10:[function(t,e,n){"use strict";var a=t(117),r=t(112),i=t(116);e.exports=function(t){for(var e=a(this),n=i(e.length),o=arguments.length,s=r(o>1?arguments[1]:void 0,n),p=o>2?arguments[2]:void 0,u=void 0===p?n:r(p,n);u>s;)e[s++]=t;return e}},{112:112,116:116,117:117}],11:[function(t,e,n){var a=t(40);e.exports=function(t,e){var n=[];return a(t,!1,n.push,n,e),n}},{40:40}],12:[function(t,e,n){var a=t(115),r=t(116),i=t(112);e.exports=function(t){return function(e,n,o){var s,p=a(e),u=r(p.length),c=i(o,u);if(t&&n!=n){for(;u>c;)if(s=p[c++],s!=s)return!0}else for(;u>c;c++)if((t||c in p)&&p[c]===n)return t||c||0;return!t&&-1}}},{112:112,115:115,116:116}],13:[function(t,e,n){var a=t(26),r=t(48),i=t(117),o=t(116),s=t(16);e.exports=function(t,e){var n=1==t,p=2==t,u=3==t,c=4==t,l=6==t,d=5==t||l,f=e||s;return function(e,s,h){for(var m,g,v=i(e),b=r(v),y=a(s,h,3),_=o(b.length),x=0,w=n?f(e,_):p?f(e,0):void 0;_>x;x++)if((d||x in b)&&(m=b[x],g=y(m,x,v),t))if(n)w[x]=g;else if(g)switch(t){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(c)return!1;return l?-1:u||c?c:w}}},{116:116,117:117,16:16,26:26,48:48}],14:[function(t,e,n){var a=t(4),r=t(117),i=t(48),o=t(116);e.exports=function(t,e,n,s,p){a(e);var u=r(t),c=i(u),l=o(u.length),d=p?l-1:0,f=p?-1:1;if(2>n)for(;;){if(d in c){s=c[d],d+=f;break}if(d+=f,p?0>d:d>=l)throw TypeError("Reduce of empty array with no initial value")}for(;p?d>=0:l>d;d+=f)d in c&&(s=e(s,c[d],d,u));return s}},{116:116,117:117,4:4,48:48}],15:[function(t,e,n){var a=t(52),r=t(50),i=t(127)("species");e.exports=function(t){var e;return r(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),a(e)&&(e=e[i],null===e&&(e=void 0))),void 0===e?Array:e}},{127:127,50:50,52:52}],16:[function(t,e,n){var a=t(15);e.exports=function(t,e){return new(a(t))(e)}},{15:15}],17:[function(t,e,n){"use strict";var a=t(4),r=t(52),i=t(47),o=[].slice,s={},p=function(t,e,n){if(!(e in s)){for(var a=[],r=0;e>r;r++)a[r]="a["+r+"]";s[e]=Function("F,a","return new F("+a.join(",")+")")}return s[e](t,n)};e.exports=Function.bind||function(t){var e=a(this),n=o.call(arguments,1),s=function(){var a=n.concat(o.call(arguments));return this instanceof s?p(e,a.length,a):i(e,a,t)};return r(e.prototype)&&(s.prototype=e.prototype),s}},{4:4,47:47,52:52}],18:[function(t,e,n){var a=t(19),r=t(127)("toStringTag"),i="Arguments"==a(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(n){}};e.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=o(e=Object(t),r))?n:i?a(e):"Object"==(s=a(e))&&"function"==typeof e.callee?"Arguments":s}},{127:127,19:19}],19:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],20:[function(t,e,n){"use strict";var a=t(72).f,r=t(71),i=t(91),o=t(26),s=t(7),p=t(40),u=t(56),c=t(58),l=t(98),d=t(30),f=t(66).fastKey,h=t(124),m=d?"_s":"size",g=function(t,e){var n,a=f(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,u){var c=t(function(t,a){s(t,c,e,"_i"),t._t=e,t._i=r(null),t._f=void 0,t._l=void 0,t[m]=0,void 0!=a&&p(a,n,t[u],t)});return i(c.prototype,{clear:function(){for(var t=h(this,e),n=t._i,a=t._f;a;a=a.n)a.r=!0,a.p&&(a.p=a.p.n=void 0),delete n[a.i];t._f=t._l=void 0,t[m]=0},"delete":function(t){var n=h(this,e),a=g(n,t);if(a){var r=a.n,i=a.p;delete n._i[a.i],a.r=!0,i&&(i.n=r),r&&(r.p=i),n._f==a&&(n._f=r),n._l==a&&(n._l=i),n[m]--}return!!a},forEach:function(t){h(this,e);for(var n,a=o(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(a(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!g(h(this,e),t)}}),d&&a(c.prototype,"size",{get:function(){return h(this,e)[m]}}),c},def:function(t,e,n){var a,r,i=g(t,e);return i?i.v=n:(t._l=i={i:r=f(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[m]++,"F"!==r&&(t._i[r]=i)),t},getEntry:g,setStrong:function(t,e,n){u(t,e,function(t,n){this._t=h(t,e),this._k=n,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?c(0,n.k):"values"==e?c(0,n.v):c(0,[n.k,n.v]):(t._t=void 0,c(1))},n?"entries":"values",!n,!0),l(e)}}},{124:124,26:26,30:30,40:40,56:56,58:58,66:66,7:7,71:71,72:72,91:91,98:98}],21:[function(t,e,n){var a=t(18),r=t(11);e.exports=function(t){return function(){if(a(this)!=t)throw TypeError(t+"#toJSON isn't generic");return r(this)}}},{11:11,18:18}],22:[function(t,e,n){"use strict";var a=t(91),r=t(66).getWeak,i=t(8),o=t(52),s=t(7),p=t(40),u=t(13),c=t(42),l=t(124),d=u(5),f=u(6),h=0,m=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},v=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=v(this,t);return e?e[1]:void 0},has:function(t){return!!v(this,t)},set:function(t,e){var n=v(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=f(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,i){var u=t(function(t,a){s(t,u,e,"_i"),t._t=e,t._i=h++,t._l=void 0,void 0!=a&&p(a,n,t[i],t)});return a(u.prototype,{"delete":function(t){if(!o(t))return!1;var n=r(t);return n===!0?m(l(this,e))["delete"](t):n&&c(n,this._i)&&delete n[this._i]},has:function(t){if(!o(t))return!1;var n=r(t);return n===!0?m(l(this,e)).has(t):n&&c(n,this._i)}}),u},def:function(t,e,n){var a=r(i(e),!0);return a===!0?m(t).set(e,n):a[t._i]=n,t},ufstore:m}},{124:124,13:13,40:40,42:42,52:52,66:66,7:7,8:8,91:91}],23:[function(t,e,n){"use strict";var a=t(41),r=t(34),i=t(92),o=t(91),s=t(66),p=t(40),u=t(7),c=t(52),l=t(36),d=t(57),f=t(99),h=t(46);e.exports=function(t,e,n,m,g,v){var b=a[t],y=b,_=g?"set":"add",x=y&&y.prototype,w={},k=function(t){var e=x[t];i(x,t,"delete"==t?function(t){return v&&!c(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return v&&!c(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return v&&!c(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof y&&(v||x.forEach&&!l(function(){(new y).entries().next()}))){var S=new y,E=S[_](v?{}:-0,1)!=S,C=l(function(){S.has(1)}),P=d(function(t){new y(t)}),A=!v&&l(function(){for(var t=new y,e=5;e--;)t[_](e,e);return!t.has(-0)});P||(y=e(function(e,n){u(e,y,t);var a=h(new b,e,y);return void 0!=n&&p(n,g,a[_],a),a}),y.prototype=x,x.constructor=y),(C||A)&&(k("delete"),k("has"),g&&k("get")),(A||E)&&k(_),v&&x.clear&&delete x.clear}else y=m.getConstructor(e,t,g,_),o(y.prototype,n),s.NEED=!0;return f(y,t),w[t]=y,r(r.G+r.W+r.F*(y!=b),w),v||m.setStrong(y,t,g),y}},{34:34,36:36,40:40,41:41,46:46,52:52,57:57,66:66,7:7,91:91,92:92,99:99}],24:[function(t,e,n){var a=e.exports={version:"2.5.6"};"number"==typeof __e&&(__e=a)},{}],25:[function(t,e,n){"use strict";var a=t(72),r=t(90);e.exports=function(t,e,n){e in t?a.f(t,e,r(0,n)):t[e]=n}},{72:72,90:90}],26:[function(t,e,n){var a=t(4);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{4:4}],27:[function(t,e,n){"use strict";var a=t(36),r=Date.prototype.getTime,i=Date.prototype.toISOString,o=function(t){return t>9?t:"0"+t};e.exports=a(function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-5e13-1))})||!a(function(){i.call(new Date(NaN))})?function(){if(!isFinite(r.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),a=0>e?"-":e>9999?"+":"";return a+("00000"+Math.abs(e)).slice(a?-6:-4)+"-"+o(t.getUTCMonth()+1)+"-"+o(t.getUTCDate())+"T"+o(t.getUTCHours())+":"+o(t.getUTCMinutes())+":"+o(t.getUTCSeconds())+"."+(n>99?n:"0"+o(n))+"Z"}:i},{36:36}],28:[function(t,e,n){"use strict";var a=t(8),r=t(118),i="number";e.exports=function(t){if("string"!==t&&t!==i&&"default"!==t)throw TypeError("Incorrect hint");return r(a(this),t!=i)}},{118:118,8:8}],29:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],30:[function(t,e,n){e.exports=!t(36)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{36:36}],31:[function(t,e,n){var a=t(52),r=t(41).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{41:41,52:52}],32:[function(t,e,n){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],33:[function(t,e,n){var a=t(81),r=t(78),i=t(82);e.exports=function(t){var e=a(t),n=r.f;if(n)for(var o,s=n(t),p=i.f,u=0;s.length>u;)p.call(t,o=s[u++])&&e.push(o);return e}},{78:78,81:81,82:82}],34:[function(t,e,n){var a=t(41),r=t(24),i=t(43),o=t(92),s=t(26),p="prototype",u=function(t,e,n){var c,l,d,f,h=t&u.F,m=t&u.G,g=t&u.S,v=t&u.P,b=t&u.B,y=m?a:g?a[e]||(a[e]={}):(a[e]||{})[p],_=m?r:r[e]||(r[e]={}),x=_[p]||(_[p]={});m&&(n=e);for(c in n)l=!h&&y&&void 0!==y[c],d=(l?y:n)[c],f=b&&l?s(d,a):v&&"function"==typeof d?s(Function.call,d):d,y&&o(y,c,d,t&u.U),_[c]!=d&&i(_,c,f),v&&x[c]!=d&&(x[c]=d)};a.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},{24:24,26:26,41:41,43:43,92:92}],35:[function(t,e,n){var a=t(127)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{127:127}],36:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],37:[function(t,e,n){"use strict";var a=t(43),r=t(92),i=t(36),o=t(29),s=t(127);e.exports=function(t,e,n){var p=s(t),u=n(o,p,""[t]),c=u[0],l=u[1];i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,c),a(RegExp.prototype,p,2==e?function(t,e){return l.call(t,this,e)}:function(t){return l.call(t,this)}))}},{127:127,29:29,36:36,43:43,92:92}],38:[function(t,e,n){"use strict";var a=t(8);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{8:8}],39:[function(t,e,n){"use strict";function a(t,e,n,u,c,l,d,f){for(var h,m,g=c,v=0,b=d?s(d,f,3):!1;u>v;){if(v in n){if(h=b?b(n[v],v,e):n[v],m=!1,i(h)&&(m=h[p],m=void 0!==m?!!m:r(h)),m&&l>0)g=a(t,e,h,o(h.length),g,l-1)-1;else{if(g>=9007199254740991)throw TypeError();t[g]=h}g++}v++}return g}var r=t(50),i=t(52),o=t(116),s=t(26),p=t(127)("isConcatSpreadable");e.exports=a},{116:116,127:127,26:26,50:50,52:52}],40:[function(t,e,n){var a=t(26),r=t(54),i=t(49),o=t(8),s=t(116),p=t(128),u={},c={},n=e.exports=function(t,e,n,l,d){var f,h,m,g,v=d?function(){return t}:p(t),b=a(n,l,e?2:1),y=0;if("function"!=typeof v)throw TypeError(t+" is not iterable!");if(i(v)){for(f=s(t.length);f>y;y++)if(g=e?b(o(h=t[y])[0],h[1]):b(t[y]),g===u||g===c)return g}else for(m=v.call(t);!(h=m.next()).done;)if(g=r(m,b,h.value,e),g===u||g===c)return g};n.BREAK=u,n.RETURN=c},{116:116,128:128,26:26,49:49,54:54,8:8}],41:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],42:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],43:[function(t,e,n){var a=t(72),r=t(90);e.exports=t(30)?function(t,e,n){return a.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{30:30,72:72,90:90}],44:[function(t,e,n){var a=t(41).document;e.exports=a&&a.documentElement},{41:41}],45:[function(t,e,n){e.exports=!t(30)&&!t(36)(function(){return 7!=Object.defineProperty(t(31)("div"),"a",{get:function(){return 7}}).a})},{30:30,31:31,36:36}],46:[function(t,e,n){var a=t(52),r=t(97).set;e.exports=function(t,e,n){var i,o=e.constructor;return o!==n&&"function"==typeof o&&(i=o.prototype)!==n.prototype&&a(i)&&r&&r(t,i),t}},{52:52,97:97}],47:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],48:[function(t,e,n){var a=t(19);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{19:19}],49:[function(t,e,n){var a=t(59),r=t(127)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{127:127,59:59}],50:[function(t,e,n){var a=t(19);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{19:19}],51:[function(t,e,n){var a=t(52),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{52:52}],52:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],53:[function(t,e,n){var a=t(52),r=t(19),i=t(127)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{127:127,19:19,52:52}],54:[function(t,e,n){var a=t(8);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{8:8}],55:[function(t,e,n){"use strict";var a=t(71),r=t(90),i=t(99),o={};t(43)(o,t(127)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a(o,{next:r(1,n)}),i(t,e+" Iterator")}},{127:127,43:43,71:71,90:90,99:99}],56:[function(t,e,n){"use strict";var a=t(60),r=t(34),i=t(92),o=t(43),s=t(59),p=t(55),u=t(99),c=t(79),l=t(127)("iterator"),d=!([].keys&&"next"in[].keys()),f="@@iterator",h="keys",m="values",g=function(){return this};e.exports=function(t,e,n,v,b,y,_){p(n,e,v);var x,w,k,S=function(t){if(!d&&t in A)return A[t];switch(t){case h:return function(){return new n(this,t)};case m:return function(){return new n(this,t)}}return function(){return new n(this,t)}},E=e+" Iterator",C=b==m,P=!1,A=t.prototype,O=A[l]||A[f]||b&&A[b],T=O||S(b),R=b?C?S("entries"):T:void 0,M="Array"==e?A.entries||O:O;if(M&&(k=c(M.call(new t)),k!==Object.prototype&&k.next&&(u(k,E,!0),a||"function"==typeof k[l]||o(k,l,g))),C&&O&&O.name!==m&&(P=!0,T=function(){return O.call(this)}),a&&!_||!d&&!P&&A[l]||o(A,l,T),s[e]=T,s[E]=g,b)if(x={values:C?T:S(m),keys:y?T:S(h),entries:R},_)for(w in x)w in A||i(A,w,x[w]);else r(r.P+r.F*(d||P),e,x);return x}},{127:127,34:34,43:43,55:55,59:59,60:60,79:79,92:92,99:99}],57:[function(t,e,n){var a=t(127)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{127:127}],58:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],59:[function(t,e,n){e.exports={}},{}],60:[function(t,e,n){e.exports=!1},{}],61:[function(t,e,n){var a=Math.expm1;e.exports=!a||a(10)>22025.465794806718||a(10)<22025.465794806718||-2e-17!=a(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}:a},{}],62:[function(t,e,n){var a=t(65),r=Math.pow,i=r(2,-52),o=r(2,-23),s=r(2,127)*(2-o),p=r(2,-126),u=function(t){return t+1/i-1/i};e.exports=Math.fround||function(t){var e,n,r=Math.abs(t),c=a(t);return p>r?c*u(r/p/o)*p*o:(e=(1+o/i)*r,n=e-(e-r),n>s||n!=n?c*(1/0):c*n)}},{65:65}],63:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],64:[function(t,e,n){e.exports=Math.scale||function(t,e,n,a,r){return 0===arguments.length||t!=t||e!=e||n!=n||a!=a||r!=r?NaN:t===1/0||t===-(1/0)?t:(t-e)*(r-a)/(n-e)+a}},{}],65:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],66:[function(t,e,n){var a=t(122)("meta"),r=t(52),i=t(42),o=t(72).f,s=0,p=Object.isExtensible||function(){return!0},u=!t(36)(function(){return p(Object.preventExtensions({}))}),c=function(t){o(t,a,{value:{i:"O"+ ++s,w:{}}})},l=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,a)){if(!p(t))return"F";if(!e)return"E";c(t)}return t[a].i},d=function(t,e){if(!i(t,a)){if(!p(t))return!0;if(!e)return!1;c(t)}return t[a].w},f=function(t){return u&&h.NEED&&p(t)&&!i(t,a)&&c(t),t},h=e.exports={KEY:a,NEED:!1,fastKey:l,getWeak:d,onFreeze:f}},{122:122,36:36,42:42,52:52,72:72}],67:[function(t,e,n){var a=t(159),r=t(34),i=t(101)("metadata"),o=i.store||(i.store=new(t(265))),s=function(t,e,n){var r=o.get(t);if(!r){if(!n)return;o.set(t,r=new a)}var i=r.get(e);if(!i){if(!n)return;r.set(e,i=new a)}return i},p=function(t,e,n){var a=s(e,n,!1);return void 0===a?!1:a.has(t)},u=function(t,e,n){var a=s(e,n,!1);return void 0===a?void 0:a.get(t)},c=function(t,e,n,a){s(n,a,!0).set(t,e)},l=function(t,e){var n=s(t,e,!1),a=[];return n&&n.forEach(function(t,e){a.push(e)}),a},d=function(t){return void 0===t||"symbol"==typeof t?t:t+""},f=function(t){r(r.S,"Reflect",t)};e.exports={store:o,map:s,has:p,get:u,set:c,keys:l,key:d,exp:f}},{101:101,159:159,265:265,34:34}],68:[function(t,e,n){var a=t(41),r=t(111).set,i=a.MutationObserver||a.WebKitMutationObserver,o=a.process,s=a.Promise,p="process"==t(19)(o);e.exports=function(){var t,e,n,u=function(){var a,r;for(p&&(a=o.domain)&&a.exit();t;){r=t.fn,t=t.next;try{r()}catch(i){throw t?n():e=void 0,i}}e=void 0,a&&a.enter()};if(p)n=function(){o.nextTick(u)};else if(!i||a.navigator&&a.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(u)}}else n=function(){r.call(a,u)};else{var l=!0,d=document.createTextNode("");new i(u).observe(d,{characterData:!0}),n=function(){d.data=l=!l}}return function(a){var r={fn:a,next:void 0};e&&(e.next=r),t||(t=r,n()),e=r}}},{111:111,19:19,41:41}],69:[function(t,e,n){"use strict";function a(t){var e,n;this.promise=new t(function(t,a){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=a}),this.resolve=r(e),this.reject=r(n)}var r=t(4);e.exports.f=function(t){return new a(t)}},{4:4}],70:[function(t,e,n){"use strict";var a=t(81),r=t(78),i=t(82),o=t(117),s=t(48),p=Object.assign;e.exports=!p||t(36)(function(){var t={},e={},n=Symbol(),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach(function(t){e[t]=t}),7!=p({},t)[n]||Object.keys(p({},e)).join("")!=a})?function(t,e){for(var n=o(t),p=arguments.length,u=1,c=r.f,l=i.f;p>u;)for(var d,f=s(arguments[u++]),h=c?a(f).concat(c(f)):a(f),m=h.length,g=0;m>g;)l.call(f,d=h[g++])&&(n[d]=f[d]);return n}:p},{117:117,36:36,48:48,78:78,81:81,82:82}],71:[function(t,e,n){var a=t(8),r=t(73),i=t(32),o=t(100)("IE_PROTO"),s=function(){},p="prototype",u=function(){var e,n=t(31)("iframe"),a=i.length,r="<",o=">";for(n.style.display="none",t(44).appendChild(n),n.src="javascript:",e=n.contentWindow.document,e.open(),e.write(r+"script"+o+"document.F=Object"+r+"/script"+o),e.close(),u=e.F;a--;)delete u[p][i[a]];return u()};e.exports=Object.create||function(t,e){var n;return null!==t?(s[p]=a(t),n=new s,s[p]=null,n[o]=t):n=u(),void 0===e?n:r(n,e)}},{100:100,31:31,32:32,44:44,73:73,8:8}],72:[function(t,e,n){var a=t(8),r=t(45),i=t(118),o=Object.defineProperty;n.f=t(30)?Object.defineProperty:function(t,e,n){if(a(t),e=i(e,!0),a(n),r)try{return o(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},{118:118,30:30,45:45,8:8}],73:[function(t,e,n){var a=t(72),r=t(8),i=t(81);e.exports=t(30)?Object.defineProperties:function(t,e){r(t);for(var n,o=i(e),s=o.length,p=0;s>p;)a.f(t,n=o[p++],e[n]);return t}},{30:30,72:72,8:8,81:81}],74:[function(t,e,n){"use strict";e.exports=t(60)||!t(36)(function(){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete t(41)[e]})},{36:36,41:41,60:60}],75:[function(t,e,n){var a=t(82),r=t(90),i=t(115),o=t(118),s=t(42),p=t(45),u=Object.getOwnPropertyDescriptor;n.f=t(30)?u:function(t,e){if(t=i(t),e=o(e,!0),p)try{return u(t,e)}catch(n){}return s(t,e)?r(!a.f.call(t,e),t[e]):void 0}},{115:115,118:118,30:30,42:42,45:45,82:82,90:90}],76:[function(t,e,n){var a=t(115),r=t(77).f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.f=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{115:115,77:77}],77:[function(t,e,n){var a=t(80),r=t(32).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return a(t,r)}},{32:32,80:80}],78:[function(t,e,n){n.f=Object.getOwnPropertySymbols},{}],79:[function(t,e,n){var a=t(42),r=t(117),i=t(100)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(t){return t=r(t),a(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},{100:100,117:117,42:42}],80:[function(t,e,n){var a=t(42),r=t(115),i=t(12)(!1),o=t(100)("IE_PROTO");e.exports=function(t,e){var n,s=r(t),p=0,u=[];for(n in s)n!=o&&a(s,n)&&u.push(n);for(;e.length>p;)a(s,n=e[p++])&&(~i(u,n)||u.push(n));return u}},{100:100,115:115,12:12,42:42}],81:[function(t,e,n){var a=t(80),r=t(32);e.exports=Object.keys||function(t){return a(t,r)}},{32:32,80:80}],82:[function(t,e,n){n.f={}.propertyIsEnumerable},{}],83:[function(t,e,n){var a=t(34),r=t(24),i=t(36);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{24:24,34:34,36:36}],84:[function(t,e,n){var a=t(81),r=t(115),i=t(82).f;e.exports=function(t){return function(e){for(var n,o=r(e),s=a(o),p=s.length,u=0,c=[];p>u;)i.call(o,n=s[u++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{115:115,81:81,82:82}],85:[function(t,e,n){var a=t(77),r=t(78),i=t(8),o=t(41).Reflect;e.exports=o&&o.ownKeys||function(t){var e=a.f(i(t)),n=r.f;return n?e.concat(n(t)):e}},{41:41,77:77,78:78,8:8}],86:[function(t,e,n){var a=t(41).parseFloat,r=t(109).trim;e.exports=1/a(t(110)+"-0")!==-(1/0)?function(t){var e=r(t+"",3),n=a(e);return 0===n&&"-"==e.charAt(0)?-0:n}:a},{109:109,110:110,41:41}],87:[function(t,e,n){var a=t(41).parseInt,r=t(109).trim,i=t(110),o=/^[-+]?0[xX]/;e.exports=8!==a(i+"08")||22!==a(i+"0x16")?function(t,e){var n=r(t+"",3);return a(n,e>>>0||(o.test(n)?16:10))}:a},{109:109,110:110,41:41}],88:[function(t,e,n){e.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},{}],89:[function(t,e,n){var a=t(8),r=t(52),i=t(69);e.exports=function(t,e){if(a(t),r(e)&&e.constructor===t)return e;var n=i.f(t),o=n.resolve;return o(e),n.promise}},{52:52,69:69,8:8}],90:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],91:[function(t,e,n){var a=t(92);e.exports=function(t,e,n){for(var r in e)a(t,r,e[r],n);return t}},{92:92}],92:[function(t,e,n){var a=t(41),r=t(43),i=t(42),o=t(122)("src"),s="toString",p=Function[s],u=(""+p).split(s);t(24).inspectSource=function(t){return p.call(t)},(e.exports=function(t,e,n,s){var p="function"==typeof n;p&&(i(n,"name")||r(n,"name",e)),t[e]!==n&&(p&&(i(n,o)||r(n,o,t[e]?""+t[e]:u.join(e+""))),t===a?t[e]=n:s?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,s,function(){ -return"function"==typeof this&&this[o]||p.call(this)})},{122:122,24:24,41:41,42:42,43:43}],93:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],94:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],95:[function(t,e,n){"use strict";var a=t(34),r=t(4),i=t(26),o=t(40);e.exports=function(t){a(a.S,t,{from:function(t){var e,n,a,s,p=arguments[1];return r(this),e=void 0!==p,e&&r(p),void 0==t?new this:(n=[],e?(a=0,s=i(p,arguments[2],2),o(t,!1,function(t){n.push(s(t,a++))})):o(t,!1,n.push,n),new this(n))}})}},{26:26,34:34,4:4,40:40}],96:[function(t,e,n){"use strict";var a=t(34);e.exports=function(t){a(a.S,t,{of:function(){for(var t=arguments.length,e=Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},{34:34}],97:[function(t,e,n){var a=t(52),r=t(8),i=function(t,e){if(r(t),!a(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,a){try{a=t(26)(Function.call,t(75).f(Object.prototype,"__proto__").set,2),a(e,[]),n=!(e instanceof Array)}catch(r){n=!0}return function(t,e){return i(t,e),n?t.__proto__=e:a(t,e),t}}({},!1):void 0),check:i}},{26:26,52:52,75:75,8:8}],98:[function(t,e,n){"use strict";var a=t(41),r=t(72),i=t(30),o=t(127)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.f(e,o,{configurable:!0,get:function(){return this}})}},{127:127,30:30,41:41,72:72}],99:[function(t,e,n){var a=t(72).f,r=t(42),i=t(127)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{127:127,42:42,72:72}],100:[function(t,e,n){var a=t(101)("keys"),r=t(122);e.exports=function(t){return a[t]||(a[t]=r(t))}},{101:101,122:122}],101:[function(t,e,n){var a=t(24),r=t(41),i="__core-js_shared__",o=r[i]||(r[i]={});(e.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:a.version,mode:t(60)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},{24:24,41:41,60:60}],102:[function(t,e,n){var a=t(8),r=t(4),i=t(127)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{127:127,4:4,8:8}],103:[function(t,e,n){"use strict";var a=t(36);e.exports=function(t,e){return!!t&&a(function(){e?t.call(null,function(){},1):t.call(null)})}},{36:36}],104:[function(t,e,n){var a=t(114),r=t(29);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",p=a(n),u=s.length;return 0>p||p>=u?t?"":void 0:(i=s.charCodeAt(p),55296>i||i>56319||p+1===u||(o=s.charCodeAt(p+1))<56320||o>57343?t?s.charAt(p):i:t?s.slice(p,p+2):(i-55296<<10)+(o-56320)+65536)}}},{114:114,29:29}],105:[function(t,e,n){var a=t(53),r=t(29);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{29:29,53:53}],106:[function(t,e,n){var a=t(34),r=t(36),i=t(29),o=/"/g,s=function(t,e,n,a){var r=i(t)+"",s="<"+e;return""!==n&&(s+=" "+n+'="'+(a+"").replace(o,""")+'"'),s+">"+r+""};e.exports=function(t,e){var n={};n[t]=e(s),a(a.P+a.F*r(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},{29:29,34:34,36:36}],107:[function(t,e,n){var a=t(116),r=t(108),i=t(29);e.exports=function(t,e,n,o){var s=i(t)+"",p=s.length,u=void 0===n?" ":n+"",c=a(e);if(p>=c||""==u)return s;var l=c-p,d=r.call(u,Math.ceil(l/u.length));return d.length>l&&(d=d.slice(0,l)),o?d+s:s+d}},{108:108,116:116,29:29}],108:[function(t,e,n){"use strict";var a=t(114),r=t(29);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{114:114,29:29}],109:[function(t,e,n){var a=t(34),r=t(29),i=t(36),o=t(110),s="["+o+"]",p="​…",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e,n){var r={},s=i(function(){return!!o[t]()||p[t]()!=p}),u=r[t]=s?e(d):o[t];n&&(r[n]=u),a(a.P+a.F*s,"String",r)},d=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{110:110,29:29,34:34,36:36}],110:[function(t,e,n){e.exports=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff"},{}],111:[function(t,e,n){var a,r,i,o=t(26),s=t(47),p=t(44),u=t(31),c=t(41),l=c.process,d=c.setImmediate,f=c.clearImmediate,h=c.MessageChannel,m=c.Dispatch,g=0,v={},b="onreadystatechange",y=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},_=function(t){y.call(t.data)};d&&f||(d=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++g]=function(){s("function"==typeof t?t:Function(t),e)},a(g),g},f=function(t){delete v[t]},"process"==t(19)(l)?a=function(t){l.nextTick(o(y,t,1))}:m&&m.now?a=function(t){m.now(o(y,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=_,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",_,!1)):a=b in u("script")?function(t){p.appendChild(u("script"))[b]=function(){p.removeChild(this),y.call(t)}}:function(t){setTimeout(o(y,t,1),0)}),e.exports={set:d,clear:f}},{19:19,26:26,31:31,41:41,44:44,47:47}],112:[function(t,e,n){var a=t(114),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{114:114}],113:[function(t,e,n){var a=t(114),r=t(116);e.exports=function(t){if(void 0===t)return 0;var e=a(t),n=r(e);if(e!==n)throw RangeError("Wrong length!");return n}},{114:114,116:116}],114:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],115:[function(t,e,n){var a=t(48),r=t(29);e.exports=function(t){return a(r(t))}},{29:29,48:48}],116:[function(t,e,n){var a=t(114),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{114:114}],117:[function(t,e,n){var a=t(29);e.exports=function(t){return Object(a(t))}},{29:29}],118:[function(t,e,n){var a=t(52);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{52:52}],119:[function(t,e,n){"use strict";if(t(30)){var a=t(60),r=t(41),i=t(36),o=t(34),s=t(121),p=t(120),u=t(26),c=t(7),l=t(90),d=t(43),f=t(91),h=t(114),m=t(116),g=t(113),v=t(112),b=t(118),y=t(42),_=t(18),x=t(52),w=t(117),k=t(49),S=t(71),E=t(79),C=t(77).f,P=t(128),A=t(122),O=t(127),T=t(13),R=t(12),M=t(102),L=t(140),j=t(59),D=t(57),N=t(98),F=t(10),I=t(9),B=t(72),U=t(75),V=B.f,q=U.f,G=r.RangeError,z=r.TypeError,W=r.Uint8Array,H="ArrayBuffer",K="Shared"+H,Q="BYTES_PER_ELEMENT",Y="prototype",$=Array[Y],J=p.ArrayBuffer,X=p.DataView,Z=T(0),tt=T(2),et=T(3),nt=T(4),at=T(5),rt=T(6),it=R(!0),ot=R(!1),st=L.values,pt=L.keys,ut=L.entries,ct=$.lastIndexOf,lt=$.reduce,dt=$.reduceRight,ft=$.join,ht=$.sort,mt=$.slice,gt=$.toString,vt=$.toLocaleString,bt=O("iterator"),yt=O("toStringTag"),_t=A("typed_constructor"),xt=A("def_constructor"),wt=s.CONSTR,kt=s.TYPED,St=s.VIEW,Et="Wrong length!",Ct=T(1,function(t,e){return Rt(M(t,t[xt]),e)}),Pt=i(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),At=!!W&&!!W[Y].set&&i(function(){new W(1).set({})}),Ot=function(t,e){var n=h(t);if(0>n||n%e)throw G("Wrong offset!");return n},Tt=function(t){if(x(t)&&kt in t)return t;throw z(t+" is not a typed array!")},Rt=function(t,e){if(!(x(t)&&_t in t))throw z("It is not a typed array constructor!");return new t(e)},Mt=function(t,e){return Lt(M(t,t[xt]),e)},Lt=function(t,e){for(var n=0,a=e.length,r=Rt(t,a);a>n;)r[n]=e[n++];return r},jt=function(t,e,n){V(t,e,{get:function(){return this._d[n]}})},Dt=function(t){var e,n,a,r,i,o,s=w(t),p=arguments.length,c=p>1?arguments[1]:void 0,l=void 0!==c,d=P(s);if(void 0!=d&&!k(d)){for(o=d.call(s),a=[],e=0;!(i=o.next()).done;e++)a.push(i.value);s=a}for(l&&p>2&&(c=u(c,arguments[2],2)),e=0,n=m(s.length),r=Rt(this,n);n>e;e++)r[e]=l?c(s[e],e):s[e];return r},Nt=function(){for(var t=0,e=arguments.length,n=Rt(this,e);e>t;)n[t]=arguments[t++];return n},Ft=!!W&&i(function(){vt.call(new W(1))}),It=function(){return vt.apply(Ft?mt.call(Tt(this)):Tt(this),arguments)},Bt={copyWithin:function(t,e){return I.call(Tt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return nt(Tt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return F.apply(Tt(this),arguments)},filter:function(t){return Mt(this,tt(Tt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return at(Tt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return rt(Tt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){Z(Tt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return ot(Tt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return it(Tt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ft.apply(Tt(this),arguments)},lastIndexOf:function(t){return ct.apply(Tt(this),arguments)},map:function(t){return Ct(Tt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return lt.apply(Tt(this),arguments)},reduceRight:function(t){return dt.apply(Tt(this),arguments)},reverse:function(){for(var t,e=this,n=Tt(e).length,a=Math.floor(n/2),r=0;a>r;)t=e[r],e[r++]=e[--n],e[n]=t;return e},some:function(t){return et(Tt(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return ht.call(Tt(this),t)},subarray:function(t,e){var n=Tt(this),a=n.length,r=v(t,a);return new(M(n,n[xt]))(n.buffer,n.byteOffset+r*n.BYTES_PER_ELEMENT,m((void 0===e?a:v(e,a))-r))}},Ut=function(t,e){return Mt(this,mt.call(Tt(this),t,e))},Vt=function(t){Tt(this);var e=Ot(arguments[1],1),n=this.length,a=w(t),r=m(a.length),i=0;if(r+e>n)throw G(Et);for(;r>i;)this[e+i]=a[i++]},qt={entries:function(){return ut.call(Tt(this))},keys:function(){return pt.call(Tt(this))},values:function(){return st.call(Tt(this))}},Gt=function(t,e){return x(t)&&t[kt]&&"symbol"!=typeof e&&e in t&&+e+""==e+""},zt=function(t,e){return Gt(t,e=b(e,!0))?l(2,t[e]):q(t,e)},Wt=function(t,e,n){return!(Gt(t,e=b(e,!0))&&x(n)&&y(n,"value"))||y(n,"get")||y(n,"set")||n.configurable||y(n,"writable")&&!n.writable||y(n,"enumerable")&&!n.enumerable?V(t,e,n):(t[e]=n.value,t)};wt||(U.f=zt,B.f=Wt),o(o.S+o.F*!wt,"Object",{getOwnPropertyDescriptor:zt,defineProperty:Wt}),i(function(){gt.call({})})&&(gt=vt=function(){return ft.call(this)});var Ht=f({},Bt);f(Ht,qt),d(Ht,bt,qt.values),f(Ht,{slice:Ut,set:Vt,constructor:function(){},toString:gt,toLocaleString:It}),jt(Ht,"buffer","b"),jt(Ht,"byteOffset","o"),jt(Ht,"byteLength","l"),jt(Ht,"length","e"),V(Ht,yt,{get:function(){return this[kt]}}),e.exports=function(t,e,n,p){p=!!p;var u=t+(p?"Clamped":"")+"Array",l="get"+t,f="set"+t,h=r[u],v=h||{},b=h&&E(h),y=!h||!s.ABV,w={},k=h&&h[Y],P=function(t,n){var a=t._d;return a.v[l](n*e+a.o,Pt)},A=function(t,n,a){var r=t._d;p&&(a=(a=Math.round(a))<0?0:a>255?255:255&a),r.v[f](n*e+r.o,a,Pt)},O=function(t,e){V(t,e,{get:function(){return P(this,e)},set:function(t){return A(this,e,t)},enumerable:!0})};y?(h=n(function(t,n,a,r){c(t,h,u,"_d");var i,o,s,p,l=0,f=0;if(x(n)){if(!(n instanceof J||(p=_(n))==H||p==K))return kt in n?Lt(h,n):Dt.call(h,n);i=n,f=Ot(a,e);var v=n.byteLength;if(void 0===r){if(v%e)throw G(Et);if(o=v-f,0>o)throw G(Et)}else if(o=m(r)*e,o+f>v)throw G(Et);s=o/e}else s=g(n),o=s*e,i=new J(o);for(d(t,"_d",{b:i,o:f,l:o,e:s,v:new X(i)});s>l;)O(t,l++)}),k=h[Y]=S(Ht),d(k,"constructor",h)):i(function(){h(1)})&&i(function(){new h(-1)})&&D(function(t){new h,new h(null),new h(1.5),new h(t)},!0)||(h=n(function(t,n,a,r){c(t,h,u);var i;return x(n)?n instanceof J||(i=_(n))==H||i==K?void 0!==r?new v(n,Ot(a,e),r):void 0!==a?new v(n,Ot(a,e)):new v(n):kt in n?Lt(h,n):Dt.call(h,n):new v(g(n))}),Z(b!==Function.prototype?C(v).concat(C(b)):C(v),function(t){t in h||d(h,t,v[t])}),h[Y]=k,a||(k.constructor=h));var T=k[bt],R=!!T&&("values"==T.name||void 0==T.name),M=qt.values;d(h,_t,!0),d(k,kt,u),d(k,St,!0),d(k,xt,h),(p?new h(1)[yt]==u:yt in k)||V(k,yt,{get:function(){return u}}),w[u]=h,o(o.G+o.W+o.F*(h!=v),w),o(o.S,u,{BYTES_PER_ELEMENT:e}),o(o.S+o.F*i(function(){v.of.call(h,1)}),u,{from:Dt,of:Nt}),Q in k||d(k,Q,e),o(o.P,u,Bt),N(u),o(o.P+o.F*At,u,{set:Vt}),o(o.P+o.F*!R,u,qt),a||k.toString==gt||(k.toString=gt),o(o.P+o.F*i(function(){new h(1).slice()}),u,{slice:Ut}),o(o.P+o.F*(i(function(){return[1,2].toLocaleString()!=new h([1,2]).toLocaleString()})||!i(function(){k.toLocaleString.call([1,2])})),u,{toLocaleString:It}),j[u]=R?T:M,a||R||d(k,bt,M)}}else e.exports=function(){}},{10:10,102:102,112:112,113:113,114:114,116:116,117:117,118:118,12:12,120:120,121:121,122:122,127:127,128:128,13:13,140:140,18:18,26:26,30:30,34:34,36:36,41:41,42:42,43:43,49:49,52:52,57:57,59:59,60:60,7:7,71:71,72:72,75:75,77:77,79:79,9:9,90:90,91:91,98:98}],120:[function(t,e,n){"use strict";function a(t,e,n){var a,r,i,o=Array(n),s=8*n-e-1,p=(1<>1,c=23===e?V(2,-24)-V(2,-77):0,l=0,d=0>t||0===t&&0>1/t?1:0;for(t=U(t),t!=t||t===I?(r=t!=t?1:0,a=p):(a=q(G(t)/z),t*(i=V(2,-a))<1&&(a--,i*=2),t+=a+u>=1?c/i:c*V(2,1-u),t*i>=2&&(a++,i/=2),a+u>=p?(r=0,a=p):a+u>=1?(r=(t*i-1)*V(2,e),a+=u):(r=t*V(2,u-1)*V(2,e),a=0));e>=8;o[l++]=255&r,r/=256,e-=8);for(a=a<0;o[l++]=255&a,a/=256,s-=8);return o[--l]|=128*d,o}function r(t,e,n){var a,r=8*n-e-1,i=(1<>1,s=r-7,p=n-1,u=t[p--],c=127&u;for(u>>=7;s>0;c=256*c+t[p],p--,s-=8);for(a=c&(1<<-s)-1,c>>=-s,s+=e;s>0;a=256*a+t[p],p--,s-=8);if(0===c)c=1-o;else{if(c===i)return a?NaN:u?-I:I;a+=V(2,e),c-=o}return(u?-1:1)*a*V(2,c-e)}function i(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function o(t){return[255&t]}function s(t){return[255&t,t>>8&255]}function p(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function u(t){return a(t,52,8)}function c(t){return a(t,23,4)}function l(t,e,n){C(t[R],e,{get:function(){return this[n]}})}function d(t,e,n,a){var r=+n,i=S(r);if(i+e>t[Y])throw F(L);var o=t[Q]._b,s=i+t[$],p=o.slice(s,s+e);return a?p:p.reverse()}function f(t,e,n,a,r,i){var o=+n,s=S(o);if(s+e>t[Y])throw F(L);for(var p=t[Q]._b,u=s+t[$],c=a(+r),l=0;e>l;l++)p[u+l]=c[i?l:e-l-1]}var h=t(41),m=t(30),g=t(60),v=t(121),b=t(43),y=t(91),_=t(36),x=t(7),w=t(114),k=t(116),S=t(113),E=t(77).f,C=t(72).f,P=t(10),A=t(99),O="ArrayBuffer",T="DataView",R="prototype",M="Wrong length!",L="Wrong index!",j=h[O],D=h[T],N=h.Math,F=h.RangeError,I=h.Infinity,B=j,U=N.abs,V=N.pow,q=N.floor,G=N.log,z=N.LN2,W="buffer",H="byteLength",K="byteOffset",Q=m?"_b":W,Y=m?"_l":H,$=m?"_o":K;if(v.ABV){if(!_(function(){j(1)})||!_(function(){new j(-1)})||_(function(){return new j,new j(1.5),new j(NaN),j.name!=O})){j=function(t){return x(this,j),new B(S(t))};for(var J,X=j[R]=B[R],Z=E(B),tt=0;Z.length>tt;)(J=Z[tt++])in j||b(j,J,B[J]);g||(X.constructor=j)}var et=new D(new j(2)),nt=D[R].setInt8;et.setInt8(0,2147483648),et.setInt8(1,2147483649),(et.getInt8(0)||!et.getInt8(1))&&y(D[R],{setInt8:function(t,e){nt.call(this,t,e<<24>>24)},setUint8:function(t,e){nt.call(this,t,e<<24>>24)}},!0)}else j=function(t){x(this,j,O);var e=S(t);this._b=P.call(Array(e),0),this[Y]=e},D=function(t,e,n){x(this,D,T),x(t,j,T);var a=t[Y],r=w(e);if(0>r||r>a)throw F("Wrong offset!");if(n=void 0===n?a-r:k(n),r+n>a)throw F(M);this[Q]=t,this[$]=r,this[Y]=n},m&&(l(j,H,"_l"),l(D,W,"_b"),l(D,H,"_l"),l(D,K,"_o")),y(D[R],{getInt8:function(t){return d(this,1,t)[0]<<24>>24},getUint8:function(t){return d(this,1,t)[0]},getInt16:function(t){var e=d(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=d(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return i(d(this,4,t,arguments[1]))},getUint32:function(t){return i(d(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return r(d(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return r(d(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){f(this,1,t,o,e)},setUint8:function(t,e){f(this,1,t,o,e)},setInt16:function(t,e){f(this,2,t,s,e,arguments[2])},setUint16:function(t,e){f(this,2,t,s,e,arguments[2])},setInt32:function(t,e){f(this,4,t,p,e,arguments[2])},setUint32:function(t,e){f(this,4,t,p,e,arguments[2])},setFloat32:function(t,e){f(this,4,t,c,e,arguments[2])},setFloat64:function(t,e){f(this,8,t,u,e,arguments[2])}});A(j,O),A(D,T),b(D[R],v.VIEW,!0),n[O]=j,n[T]=D},{10:10,113:113,114:114,116:116,121:121,30:30,36:36,41:41,43:43,60:60,7:7,72:72,77:77,91:91,99:99}],121:[function(t,e,n){for(var a,r=t(41),i=t(43),o=t(122),s=o("typed_array"),p=o("view"),u=!(!r.ArrayBuffer||!r.DataView),c=u,l=0,d=9,f="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");d>l;)(a=r[f[l++]])?(i(a.prototype,s,!0),i(a.prototype,p,!0)):c=!1;e.exports={ABV:u,CONSTR:c,TYPED:s,VIEW:p}},{122:122,41:41,43:43}],122:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],123:[function(t,e,n){var a=t(41),r=a.navigator;e.exports=r&&r.userAgent||""},{41:41}],124:[function(t,e,n){var a=t(52);e.exports=function(t,e){if(!a(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},{52:52}],125:[function(t,e,n){var a=t(41),r=t(24),i=t(60),o=t(126),s=t(72).f;e.exports=function(t){var e=r.Symbol||(r.Symbol=i?{}:a.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:o.f(t)})}},{126:126,24:24,41:41,60:60,72:72}],126:[function(t,e,n){n.f=t(127)},{127:127}],127:[function(t,e,n){var a=t(101)("wks"),r=t(122),i=t(41).Symbol,o="function"==typeof i,s=e.exports=function(t){return a[t]||(a[t]=o&&i[t]||(o?i:r)("Symbol."+t))};s.store=a},{101:101,122:122,41:41}],128:[function(t,e,n){var a=t(18),r=t(127)("iterator"),i=t(59);e.exports=t(24).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{127:127,18:18,24:24,59:59}],129:[function(t,e,n){var a=t(34),r=t(93)(/[\\^$*+?.()|[\]{}]/g,"\\$&");a(a.S,"RegExp",{escape:function(t){return r(t)}})},{34:34,93:93}],130:[function(t,e,n){var a=t(34);a(a.P,"Array",{copyWithin:t(9)}),t(6)("copyWithin")},{34:34,6:6,9:9}],131:[function(t,e,n){"use strict";var a=t(34),r=t(13)(4);a(a.P+a.F*!t(103)([].every,!0),"Array",{every:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],132:[function(t,e,n){var a=t(34);a(a.P,"Array",{fill:t(10)}),t(6)("fill")},{10:10,34:34,6:6}],133:[function(t,e,n){"use strict";var a=t(34),r=t(13)(2);a(a.P+a.F*!t(103)([].filter,!0),"Array",{filter:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],134:[function(t,e,n){"use strict";var a=t(34),r=t(13)(6),i="findIndex",o=!0;i in[]&&Array(1)[i](function(){o=!1}),a(a.P+a.F*o,"Array",{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)(i)},{13:13,34:34,6:6}],135:[function(t,e,n){"use strict";var a=t(34),r=t(13)(5),i="find",o=!0;i in[]&&Array(1)[i](function(){o=!1}),a(a.P+a.F*o,"Array",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)(i)},{13:13,34:34,6:6}],136:[function(t,e,n){"use strict";var a=t(34),r=t(13)(0),i=t(103)([].forEach,!0);a(a.P+a.F*!i,"Array",{forEach:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],137:[function(t,e,n){"use strict";var a=t(26),r=t(34),i=t(117),o=t(54),s=t(49),p=t(116),u=t(25),c=t(128);r(r.S+r.F*!t(57)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,r,l,d=i(t),f="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,g=void 0!==m,v=0,b=c(d);if(g&&(m=a(m,h>2?arguments[2]:void 0,2)),void 0==b||f==Array&&s(b))for(e=p(d.length),n=new f(e);e>v;v++)u(n,v,g?m(d[v],v):d[v]);else for(l=b.call(d),n=new f;!(r=l.next()).done;v++)u(n,v,g?o(l,m,[r.value,v],!0):r.value);return n.length=v,n}})},{116:116,117:117,128:128,25:25,26:26,34:34,49:49,54:54,57:57}],138:[function(t,e,n){"use strict";var a=t(34),r=t(12)(!1),i=[].indexOf,o=!!i&&1/[1].indexOf(1,-0)<0;a(a.P+a.F*(o||!t(103)(i)),"Array",{indexOf:function(t){return o?i.apply(this,arguments)||0:r(this,t,arguments[1])}})},{103:103,12:12,34:34}],139:[function(t,e,n){var a=t(34);a(a.S,"Array",{isArray:t(50)})},{34:34,50:50}],140:[function(t,e,n){"use strict";var a=t(6),r=t(58),i=t(59),o=t(115);e.exports=t(56)(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},{115:115,56:56,58:58,59:59,6:6}],141:[function(t,e,n){"use strict";var a=t(34),r=t(115),i=[].join;a(a.P+a.F*(t(48)!=Object||!t(103)(i)),"Array",{join:function(t){return i.call(r(this),void 0===t?",":t)}})},{103:103,115:115,34:34,48:48}],142:[function(t,e,n){"use strict";var a=t(34),r=t(115),i=t(114),o=t(116),s=[].lastIndexOf,p=!!s&&1/[1].lastIndexOf(1,-0)<0;a(a.P+a.F*(p||!t(103)(s)),"Array",{lastIndexOf:function(t){if(p)return s.apply(this,arguments)||0;var e=r(this),n=o(e.length),a=n-1;for(arguments.length>1&&(a=Math.min(a,i(arguments[1]))),0>a&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}})},{103:103,114:114,115:115,116:116,34:34}],143:[function(t,e,n){"use strict";var a=t(34),r=t(13)(1);a(a.P+a.F*!t(103)([].map,!0),"Array",{map:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],144:[function(t,e,n){"use strict";var a=t(34),r=t(25);a(a.S+a.F*t(36)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)r(n,t,arguments[t++]);return n.length=e,n}})},{25:25,34:34,36:36}],145:[function(t,e,n){"use strict";var a=t(34),r=t(14);a(a.P+a.F*!t(103)([].reduceRight,!0),"Array",{reduceRight:function(t){return r(this,t,arguments.length,arguments[1],!0)}})},{103:103,14:14,34:34}],146:[function(t,e,n){"use strict";var a=t(34),r=t(14);a(a.P+a.F*!t(103)([].reduce,!0),"Array",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},{103:103,14:14,34:34}],147:[function(t,e,n){"use strict";var a=t(34),r=t(44),i=t(19),o=t(112),s=t(116),p=[].slice;a(a.P+a.F*t(36)(function(){r&&p.call(r)}),"Array",{slice:function(t,e){var n=s(this.length),a=i(this);if(e=void 0===e?n:e,"Array"==a)return p.call(this,t,e);for(var r=o(t,n),u=o(e,n),c=s(u-r),l=Array(c),d=0;c>d;d++)l[d]="String"==a?this.charAt(r+d):this[r+d];return l}})},{112:112,116:116,19:19,34:34,36:36,44:44}],148:[function(t,e,n){"use strict";var a=t(34),r=t(13)(3);a(a.P+a.F*!t(103)([].some,!0),"Array",{some:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],149:[function(t,e,n){"use strict";var a=t(34),r=t(4),i=t(117),o=t(36),s=[].sort,p=[1,2,3];a(a.P+a.F*(o(function(){p.sort(void 0)})||!o(function(){p.sort(null)})||!t(103)(s)),"Array",{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),r(t))}})},{103:103,117:117,34:34,36:36,4:4}],150:[function(t,e,n){t(98)("Array")},{98:98}],151:[function(t,e,n){var a=t(34);a(a.S,"Date",{now:function(){return(new Date).getTime()}})},{34:34}],152:[function(t,e,n){var a=t(34),r=t(27);a(a.P+a.F*(Date.prototype.toISOString!==r),"Date",{toISOString:r})},{27:27,34:34}],153:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118);a(a.P+a.F*t(36)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=r(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},{117:117,118:118,34:34,36:36}],154:[function(t,e,n){var a=t(127)("toPrimitive"),r=Date.prototype;a in r||t(43)(r,a,t(28))},{127:127,28:28,43:43}],155:[function(t,e,n){var a=Date.prototype,r="Invalid Date",i="toString",o=a[i],s=a.getTime;new Date(NaN)+""!=r&&t(92)(a,i,function(){var t=s.call(this);return t===t?o.call(this):r})},{92:92}],156:[function(t,e,n){var a=t(34);a(a.P,"Function",{bind:t(17)})},{17:17,34:34}],157:[function(t,e,n){"use strict";var a=t(52),r=t(79),i=t(127)("hasInstance"),o=Function.prototype;i in o||t(72).f(o,i,{value:function(t){if("function"!=typeof this||!a(t))return!1;if(!a(this.prototype))return t instanceof this;for(;t=r(t);)if(this.prototype===t)return!0;return!1}})},{127:127,52:52,72:72,79:79}],158:[function(t,e,n){var a=t(72).f,r=Function.prototype,i=/^\s*function ([^ (]*)/,o="name";o in r||t(30)&&a(r,o,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},{30:30,72:72}],159:[function(t,e,n){"use strict";var a=t(20),r=t(124),i="Map";e.exports=t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=a.getEntry(r(this,i),t);return e&&e.v},set:function(t,e){return a.def(r(this,i),0===t?0:t,e)}},a,!0)},{124:124,20:20,23:23}],160:[function(t,e,n){var a=t(34),r=t(63),i=Math.sqrt,o=Math.acosh;a(a.S+a.F*!(o&&710==Math.floor(o(Number.MAX_VALUE))&&o(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:r(t-1+i(t-1)*i(t+1))}})},{34:34,63:63}],161:[function(t,e,n){function a(t){return isFinite(t=+t)&&0!=t?0>t?-a(-t):Math.log(t+Math.sqrt(t*t+1)):t}var r=t(34),i=Math.asinh;r(r.S+r.F*!(i&&1/i(0)>0),"Math",{asinh:a})},{34:34}],162:[function(t,e,n){var a=t(34),r=Math.atanh;a(a.S+a.F*!(r&&1/r(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{34:34}],163:[function(t,e,n){var a=t(34),r=t(65);a(a.S,"Math",{cbrt:function(t){return r(t=+t)*Math.pow(Math.abs(t),1/3)}})},{34:34,65:65}],164:[function(t,e,n){var a=t(34);a(a.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{34:34}],165:[function(t,e,n){var a=t(34),r=Math.exp;a(a.S,"Math",{cosh:function(t){return(r(t=+t)+r(-t))/2}})},{34:34}],166:[function(t,e,n){var a=t(34),r=t(61);a(a.S+a.F*(r!=Math.expm1),"Math",{expm1:r})},{34:34,61:61}],167:[function(t,e,n){var a=t(34);a(a.S,"Math",{fround:t(62)})},{34:34,62:62}],168:[function(t,e,n){var a=t(34),r=Math.abs;a(a.S,"Math",{hypot:function(t,e){for(var n,a,i=0,o=0,s=arguments.length,p=0;s>o;)n=r(arguments[o++]),n>p?(a=p/n,i=i*a*a+1,p=n):n>0?(a=n/p,i+=a*a):i+=n;return p===1/0?1/0:p*Math.sqrt(i)}})},{34:34}],169:[function(t,e,n){var a=t(34),r=Math.imul;a(a.S+a.F*t(36)(function(){return-5!=r(4294967295,5)||2!=r.length}),"Math",{imul:function(t,e){var n=65535,a=+t,r=+e,i=n&a,o=n&r;return 0|i*o+((n&a>>>16)*o+i*(n&r>>>16)<<16>>>0)}})},{34:34,36:36}],170:[function(t,e,n){var a=t(34);a(a.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},{34:34}],171:[function(t,e,n){var a=t(34);a(a.S,"Math",{log1p:t(63)})},{34:34,63:63}],172:[function(t,e,n){var a=t(34);a(a.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},{34:34}],173:[function(t,e,n){var a=t(34);a(a.S,"Math",{sign:t(65)})},{34:34,65:65}],174:[function(t,e,n){var a=t(34),r=t(61),i=Math.exp;a(a.S+a.F*t(36)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(r(t)-r(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},{34:34,36:36,61:61}],175:[function(t,e,n){var a=t(34),r=t(61),i=Math.exp;a(a.S,"Math",{tanh:function(t){var e=r(t=+t),n=r(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},{34:34,61:61}],176:[function(t,e,n){var a=t(34);a(a.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},{34:34}],177:[function(t,e,n){"use strict";var a=t(41),r=t(42),i=t(19),o=t(46),s=t(118),p=t(36),u=t(77).f,c=t(75).f,l=t(72).f,d=t(109).trim,f="Number",h=a[f],m=h,g=h.prototype,v=i(t(71)(g))==f,b="trim"in String.prototype,y=function(t){var e=s(t,!1);if("string"==typeof e&&e.length>2){e=b?e.trim():d(e,3);var n,a,r,i=e.charCodeAt(0);if(43===i||45===i){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:a=2,r=49;break;case 79:case 111:a=8,r=55;break;default:return+e}for(var o,p=e.slice(2),u=0,c=p.length;c>u;u++)if(o=p.charCodeAt(u),48>o||o>r)return NaN;return parseInt(p,a)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(v?p(function(){g.valueOf.call(n)}):i(n)!=f)?o(new m(y(e)),n,h):y(e)};for(var _,x=t(30)?u(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;x.length>w;w++)r(m,_=x[w])&&!r(h,_)&&l(h,_,c(m,_));h.prototype=g,g.constructor=h,t(92)(a,f,h)}},{109:109,118:118,19:19,30:30,36:36,41:41,42:42,46:46,71:71,72:72,75:75,77:77,92:92}],178:[function(t,e,n){var a=t(34);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},{34:34}],179:[function(t,e,n){var a=t(34),r=t(41).isFinite;a(a.S,"Number",{isFinite:function(t){return"number"==typeof t&&r(t)}})},{34:34,41:41}],180:[function(t,e,n){var a=t(34);a(a.S,"Number",{isInteger:t(51)})},{34:34,51:51}],181:[function(t,e,n){var a=t(34);a(a.S,"Number",{isNaN:function(t){return t!=t}})},{34:34}],182:[function(t,e,n){var a=t(34),r=t(51),i=Math.abs;a(a.S,"Number",{isSafeInteger:function(t){return r(t)&&i(t)<=9007199254740991}})},{34:34,51:51}],183:[function(t,e,n){var a=t(34);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{34:34}],184:[function(t,e,n){var a=t(34);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{34:34}],185:[function(t,e,n){var a=t(34),r=t(86);a(a.S+a.F*(Number.parseFloat!=r),"Number",{parseFloat:r})},{34:34,86:86}],186:[function(t,e,n){var a=t(34),r=t(87);a(a.S+a.F*(Number.parseInt!=r),"Number",{parseInt:r})},{34:34,87:87}],187:[function(t,e,n){"use strict";var a=t(34),r=t(114),i=t(5),o=t(108),s=1..toFixed,p=Math.floor,u=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",l="0",d=function(t,e){for(var n=-1,a=e;++n<6;)a+=t*u[n],u[n]=a%1e7,a=p(a/1e7)},f=function(t){for(var e=6,n=0;--e>=0;)n+=u[e],u[e]=p(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==u[t]){var n=u[t]+"";e=""===e?n:e+o.call(l,7-n.length)+n}return e},m=function(t,e,n){return 0===e?n:e%2===1?m(t,e-1,n*t):m(t*t,e/2,n)},g=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e};a(a.P+a.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==0xde0b6b3a7640080.toFixed(0))||!t(36)(function(){s.call({})})),"Number",{toFixed:function(t){var e,n,a,s,p=i(this,c),u=r(t),v="",b=l;if(0>u||u>20)throw RangeError(c);if(p!=p)return"NaN";if(-1e21>=p||p>=1e21)return p+"";if(0>p&&(v="-",p=-p),p>1e-21)if(e=g(p*m(2,69,1))-69,n=0>e?p*m(2,-e,1):p/m(2,e,1),n*=4503599627370496,e=52-e,e>0){for(d(0,n),a=u;a>=7;)d(1e7,0),a-=7;for(d(m(10,a,1),0),a=e-1;a>=23;)f(1<<23),a-=23;f(1<0?(s=b.length,b=v+(u>=s?"0."+o.call(l,u-s)+b:b.slice(0,s-u)+"."+b.slice(s-u))):b=v+b,b}})},{108:108,114:114,34:34,36:36,5:5}],188:[function(t,e,n){"use strict";var a=t(34),r=t(36),i=t(5),o=1..toPrecision;a(a.P+a.F*(r(function(){return"1"!==o.call(1,void 0)})||!r(function(){o.call({})})),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?o.call(e):o.call(e,t)}})},{34:34,36:36,5:5}],189:[function(t,e,n){var a=t(34);a(a.S+a.F,"Object",{assign:t(70)})},{34:34,70:70}],190:[function(t,e,n){var a=t(34);a(a.S,"Object",{create:t(71)})},{34:34,71:71}],191:[function(t,e,n){var a=t(34);a(a.S+a.F*!t(30),"Object",{defineProperties:t(73)})},{30:30,34:34,73:73}],192:[function(t,e,n){var a=t(34);a(a.S+a.F*!t(30),"Object",{defineProperty:t(72).f})},{30:30,34:34,72:72}],193:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("freeze",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],194:[function(t,e,n){var a=t(115),r=t(75).f;t(83)("getOwnPropertyDescriptor",function(){return function(t,e){return r(a(t),e)}})},{115:115,75:75,83:83}],195:[function(t,e,n){t(83)("getOwnPropertyNames",function(){return t(76).f})},{76:76,83:83}],196:[function(t,e,n){var a=t(117),r=t(79);t(83)("getPrototypeOf",function(){return function(t){return r(a(t))}})},{117:117,79:79,83:83}],197:[function(t,e,n){var a=t(52);t(83)("isExtensible",function(t){return function(e){return a(e)?t?t(e):!0:!1}}); -},{52:52,83:83}],198:[function(t,e,n){var a=t(52);t(83)("isFrozen",function(t){return function(e){return a(e)?t?t(e):!1:!0}})},{52:52,83:83}],199:[function(t,e,n){var a=t(52);t(83)("isSealed",function(t){return function(e){return a(e)?t?t(e):!1:!0}})},{52:52,83:83}],200:[function(t,e,n){var a=t(34);a(a.S,"Object",{is:t(94)})},{34:34,94:94}],201:[function(t,e,n){var a=t(117),r=t(81);t(83)("keys",function(){return function(t){return r(a(t))}})},{117:117,81:81,83:83}],202:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("preventExtensions",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],203:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("seal",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],204:[function(t,e,n){var a=t(34);a(a.S,"Object",{setPrototypeOf:t(97).set})},{34:34,97:97}],205:[function(t,e,n){"use strict";var a=t(18),r={};r[t(127)("toStringTag")]="z",r+""!="[object z]"&&t(92)(Object.prototype,"toString",function(){return"[object "+a(this)+"]"},!0)},{127:127,18:18,92:92}],206:[function(t,e,n){var a=t(34),r=t(86);a(a.G+a.F*(parseFloat!=r),{parseFloat:r})},{34:34,86:86}],207:[function(t,e,n){var a=t(34),r=t(87);a(a.G+a.F*(parseInt!=r),{parseInt:r})},{34:34,87:87}],208:[function(t,e,n){"use strict";var a,r,i,o,s=t(60),p=t(41),u=t(26),c=t(18),l=t(34),d=t(52),f=t(4),h=t(7),m=t(40),g=t(102),v=t(111).set,b=t(68)(),y=t(69),_=t(88),x=t(123),w=t(89),k="Promise",S=p.TypeError,E=p.process,C=E&&E.versions,P=C&&C.v8||"",A=p[k],O="process"==c(E),T=function(){},R=r=y.f,M=!!function(){try{var e=A.resolve(1),n=(e.constructor={})[t(127)("species")]=function(t){t(T,T)};return(O||"function"==typeof PromiseRejectionEvent)&&e.then(T)instanceof n&&0!==P.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(a){}}(),L=function(t){var e;return d(t)&&"function"==typeof(e=t.then)?e:!1},j=function(t,e){if(!t._n){t._n=!0;var n=t._c;b(function(){for(var a=t._v,r=1==t._s,i=0,o=function(e){var n,i,o,s=r?e.ok:e.fail,p=e.resolve,u=e.reject,c=e.domain;try{s?(r||(2==t._h&&F(t),t._h=1),s===!0?n=a:(c&&c.enter(),n=s(a),c&&(c.exit(),o=!0)),n===e.promise?u(S("Promise-chain cycle")):(i=L(n))?i.call(n,p,u):p(n)):u(a)}catch(l){c&&!o&&c.exit(),u(l)}};n.length>i;)o(n[i++]);t._c=[],t._n=!1,e&&!t._h&&D(t)})}},D=function(t){v.call(p,function(){var e,n,a,r=t._v,i=N(t);if(i&&(e=_(function(){O?E.emit("unhandledRejection",r,t):(n=p.onunhandledrejection)?n({promise:t,reason:r}):(a=p.console)&&a.error&&a.error("Unhandled promise rejection",r)}),t._h=O||N(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},N=function(t){return 1!==t._h&&0===(t._a||t._c).length},F=function(t){v.call(p,function(){var e;O?E.emit("rejectionHandled",t):(e=p.onrejectionhandled)&&e({promise:t,reason:t._v})})},I=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),j(e,!0))},B=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=L(t))?b(function(){var a={_w:n,_d:!1};try{e.call(t,u(B,a,1),u(I,a,1))}catch(r){I.call(a,r)}}):(n._v=t,n._s=1,j(n,!1))}catch(a){I.call({_w:n,_d:!1},a)}}};M||(A=function(t){h(this,A,k,"_h"),f(t),a.call(this);try{t(u(B,this,1),u(I,this,1))}catch(e){I.call(this,e)}},a=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},a.prototype=t(91)(A.prototype,{then:function(t,e){var n=R(g(this,A));return n.ok="function"==typeof t?t:!0,n.fail="function"==typeof e&&e,n.domain=O?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&j(this,!1),n.promise},"catch":function(t){return this.then(void 0,t)}}),i=function(){var t=new a;this.promise=t,this.resolve=u(B,t,1),this.reject=u(I,t,1)},y.f=R=function(t){return t===A||t===o?new i(t):r(t)}),l(l.G+l.W+l.F*!M,{Promise:A}),t(99)(A,k),t(98)(k),o=t(24)[k],l(l.S+l.F*!M,k,{reject:function(t){var e=R(this),n=e.reject;return n(t),e.promise}}),l(l.S+l.F*(s||!M),k,{resolve:function(t){return w(s&&this===o?A:this,t)}}),l(l.S+l.F*!(M&&t(57)(function(t){A.all(t)["catch"](T)})),k,{all:function(t){var e=this,n=R(e),a=n.resolve,r=n.reject,i=_(function(){var n=[],i=0,o=1;m(t,!1,function(t){var s=i++,p=!1;n.push(void 0),o++,e.resolve(t).then(function(t){p||(p=!0,n[s]=t,--o||a(n))},r)}),--o||a(n)});return i.e&&r(i.v),n.promise},race:function(t){var e=this,n=R(e),a=n.reject,r=_(function(){m(t,!1,function(t){e.resolve(t).then(n.resolve,a)})});return r.e&&a(r.v),n.promise}})},{102:102,111:111,123:123,127:127,18:18,24:24,26:26,34:34,4:4,40:40,41:41,52:52,57:57,60:60,68:68,69:69,7:7,88:88,89:89,91:91,98:98,99:99}],209:[function(t,e,n){var a=t(34),r=t(4),i=t(8),o=(t(41).Reflect||{}).apply,s=Function.apply;a(a.S+a.F*!t(36)(function(){o(function(){})}),"Reflect",{apply:function(t,e,n){var a=r(t),p=i(n);return o?o(a,e,p):s.call(a,e,p)}})},{34:34,36:36,4:4,41:41,8:8}],210:[function(t,e,n){var a=t(34),r=t(71),i=t(4),o=t(8),s=t(52),p=t(36),u=t(17),c=(t(41).Reflect||{}).construct,l=p(function(){function t(){}return!(c(function(){},[],t)instanceof t)}),d=!p(function(){c(function(){})});a(a.S+a.F*(l||d),"Reflect",{construct:function(t,e){i(t),o(e);var n=arguments.length<3?t:i(arguments[2]);if(d&&!l)return c(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var a=[null];return a.push.apply(a,e),new(u.apply(t,a))}var p=n.prototype,f=r(s(p)?p:Object.prototype),h=Function.apply.call(t,f,e);return s(h)?h:f}})},{17:17,34:34,36:36,4:4,41:41,52:52,71:71,8:8}],211:[function(t,e,n){var a=t(72),r=t(34),i=t(8),o=t(118);r(r.S+r.F*t(36)(function(){Reflect.defineProperty(a.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){i(t),e=o(e,!0),i(n);try{return a.f(t,e,n),!0}catch(r){return!1}}})},{118:118,34:34,36:36,72:72,8:8}],212:[function(t,e,n){var a=t(34),r=t(75).f,i=t(8);a(a.S,"Reflect",{deleteProperty:function(t,e){var n=r(i(t),e);return n&&!n.configurable?!1:delete t[e]}})},{34:34,75:75,8:8}],213:[function(t,e,n){"use strict";var a=t(34),r=t(8),i=function(t){this._t=r(t),this._i=0;var e,n=this._k=[];for(e in t)n.push(e)};t(55)(i,"Object",function(){var t,e=this,n=e._k;do if(e._i>=n.length)return{value:void 0,done:!0};while(!((t=n[e._i++])in e._t));return{value:t,done:!1}}),a(a.S,"Reflect",{enumerate:function(t){return new i(t)}})},{34:34,55:55,8:8}],214:[function(t,e,n){var a=t(75),r=t(34),i=t(8);r(r.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return a.f(i(t),e)}})},{34:34,75:75,8:8}],215:[function(t,e,n){var a=t(34),r=t(79),i=t(8);a(a.S,"Reflect",{getPrototypeOf:function(t){return r(i(t))}})},{34:34,79:79,8:8}],216:[function(t,e,n){function a(t,e){var n,s,c=arguments.length<3?t:arguments[2];return u(t)===c?t[e]:(n=r.f(t,e))?o(n,"value")?n.value:void 0!==n.get?n.get.call(c):void 0:p(s=i(t))?a(s,e,c):void 0}var r=t(75),i=t(79),o=t(42),s=t(34),p=t(52),u=t(8);s(s.S,"Reflect",{get:a})},{34:34,42:42,52:52,75:75,79:79,8:8}],217:[function(t,e,n){var a=t(34);a(a.S,"Reflect",{has:function(t,e){return e in t}})},{34:34}],218:[function(t,e,n){var a=t(34),r=t(8),i=Object.isExtensible;a(a.S,"Reflect",{isExtensible:function(t){return r(t),i?i(t):!0}})},{34:34,8:8}],219:[function(t,e,n){var a=t(34);a(a.S,"Reflect",{ownKeys:t(85)})},{34:34,85:85}],220:[function(t,e,n){var a=t(34),r=t(8),i=Object.preventExtensions;a(a.S,"Reflect",{preventExtensions:function(t){r(t);try{return i&&i(t),!0}catch(e){return!1}}})},{34:34,8:8}],221:[function(t,e,n){var a=t(34),r=t(97);r&&a(a.S,"Reflect",{setPrototypeOf:function(t,e){r.check(t,e);try{return r.set(t,e),!0}catch(n){return!1}}})},{34:34,97:97}],222:[function(t,e,n){function a(t,e,n){var p,d,f=arguments.length<4?t:arguments[3],h=i.f(c(t),e);if(!h){if(l(d=o(t)))return a(d,e,n,f);h=u(0)}if(s(h,"value")){if(h.writable===!1||!l(f))return!1;if(p=i.f(f,e)){if(p.get||p.set||p.writable===!1)return!1;p.value=n,r.f(f,e,p)}else r.f(f,e,u(0,n));return!0}return void 0===h.set?!1:(h.set.call(f,n),!0)}var r=t(72),i=t(75),o=t(79),s=t(42),p=t(34),u=t(90),c=t(8),l=t(52);p(p.S,"Reflect",{set:a})},{34:34,42:42,52:52,72:72,75:75,79:79,8:8,90:90}],223:[function(t,e,n){var a=t(41),r=t(46),i=t(72).f,o=t(77).f,s=t(53),p=t(38),u=a.RegExp,c=u,l=u.prototype,d=/a/g,f=/a/g,h=new u(d)!==d;if(t(30)&&(!h||t(36)(function(){return f[t(127)("match")]=!1,u(d)!=d||u(f)==f||"/a/i"!=u(d,"i")}))){u=function(t,e){var n=this instanceof u,a=s(t),i=void 0===e;return!n&&a&&t.constructor===u&&i?t:r(h?new c(a&&!i?t.source:t,e):c((a=t instanceof u)?t.source:t,a&&i?p.call(t):e),n?this:l,u)};for(var m=(function(t){t in u||i(u,t,{configurable:!0,get:function(){return c[t]},set:function(e){c[t]=e}})}),g=o(c),v=0;g.length>v;)m(g[v++]);l.constructor=u,u.prototype=l,t(92)(a,"RegExp",u)}t(98)("RegExp")},{127:127,30:30,36:36,38:38,41:41,46:46,53:53,72:72,77:77,92:92,98:98}],224:[function(t,e,n){t(30)&&"g"!=/./g.flags&&t(72).f(RegExp.prototype,"flags",{configurable:!0,get:t(38)})},{30:30,38:38,72:72}],225:[function(t,e,n){t(37)("match",1,function(t,e,n){return[function(n){"use strict";var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):RegExp(n)[e](a+"")},n]})},{37:37}],226:[function(t,e,n){t(37)("replace",2,function(t,e,n){return[function(a,r){"use strict";var i=t(this),o=void 0==a?void 0:a[e];return void 0!==o?o.call(a,i,r):n.call(i+"",a,r)},n]})},{37:37}],227:[function(t,e,n){t(37)("search",1,function(t,e,n){return[function(n){"use strict";var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):RegExp(n)[e](a+"")},n]})},{37:37}],228:[function(t,e,n){t(37)("split",2,function(e,n,a){"use strict";var r=t(53),i=a,o=[].push,s="split",p="length",u="lastIndex";if("c"=="abbc"[s](/(b)*/)[1]||4!="test"[s](/(?:)/,-1)[p]||2!="ab"[s](/(?:ab)*/)[p]||4!="."[s](/(.?)(.?)/)[p]||"."[s](/()()/)[p]>1||""[s](/.?/)[p]){var c=void 0===/()??/.exec("")[1];a=function(t,e){var n=this+"";if(void 0===t&&0===e)return[];if(!r(t))return i.call(n,t,e);var a,s,l,d,f,h=[],m=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),g=0,v=void 0===e?4294967295:e>>>0,b=RegExp(t.source,m+"g");for(c||(a=RegExp("^"+b.source+"$(?!\\s)",m));(s=b.exec(n))&&(l=s.index+s[0][p],!(l>g&&(h.push(n.slice(g,s.index)),!c&&s[p]>1&&s[0].replace(a,function(){for(f=1;f1&&s.index=v)));)b[u]===s.index&&b[u]++;return g===n[p]?(d||!b.test(""))&&h.push(""):h.push(n.slice(g)),h[p]>v?h.slice(0,v):h}}else"0"[s](void 0,0)[p]&&(a=function(t,e){return void 0===t&&0===e?[]:i.call(this,t,e)});return[function(t,r){var i=e(this),o=void 0==t?void 0:t[n];return void 0!==o?o.call(t,i,r):a.call(i+"",t,r)},a]})},{37:37,53:53}],229:[function(t,e,n){"use strict";t(224);var a=t(8),r=t(38),i=t(30),o="toString",s=/./[o],p=function(e){t(92)(RegExp.prototype,o,e,!0)};t(36)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?p(function(){var t=a(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?r.call(t):void 0)}):s.name!=o&&p(function(){return s.call(this)})},{224:224,30:30,36:36,38:38,8:8,92:92}],230:[function(t,e,n){"use strict";var a=t(20),r=t(124),i="Set";e.exports=t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return a.def(r(this,i),t=0===t?0:t,t)}},a)},{124:124,20:20,23:23}],231:[function(t,e,n){"use strict";t(106)("anchor",function(t){return function(e){return t(this,"a","name",e)}})},{106:106}],232:[function(t,e,n){"use strict";t(106)("big",function(t){return function(){return t(this,"big","","")}})},{106:106}],233:[function(t,e,n){"use strict";t(106)("blink",function(t){return function(){return t(this,"blink","","")}})},{106:106}],234:[function(t,e,n){"use strict";t(106)("bold",function(t){return function(){return t(this,"b","","")}})},{106:106}],235:[function(t,e,n){"use strict";var a=t(34),r=t(104)(!1);a(a.P,"String",{codePointAt:function(t){return r(this,t)}})},{104:104,34:34}],236:[function(t,e,n){"use strict";var a=t(34),r=t(116),i=t(105),o="endsWith",s=""[o];a(a.P+a.F*t(35)(o),"String",{endsWith:function(t){var e=i(this,t,o),n=arguments.length>1?arguments[1]:void 0,a=r(e.length),p=void 0===n?a:Math.min(r(n),a),u=t+"";return s?s.call(e,u,p):e.slice(p-u.length,p)===u}})},{105:105,116:116,34:34,35:35}],237:[function(t,e,n){"use strict";t(106)("fixed",function(t){return function(){return t(this,"tt","","")}})},{106:106}],238:[function(t,e,n){"use strict";t(106)("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},{106:106}],239:[function(t,e,n){"use strict";t(106)("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},{106:106}],240:[function(t,e,n){var a=t(34),r=t(112),i=String.fromCharCode,o=String.fromCodePoint;a(a.S+a.F*(!!o&&1!=o.length),"String",{fromCodePoint:function(t){for(var e,n=[],a=arguments.length,o=0;a>o;){if(e=+arguments[o++],r(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(65536>e?i(e):i(((e-=65536)>>10)+55296,e%1024+56320))}return n.join("")}})},{112:112,34:34}],241:[function(t,e,n){"use strict";var a=t(34),r=t(105),i="includes";a(a.P+a.F*t(35)(i),"String",{includes:function(t){return!!~r(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},{105:105,34:34,35:35}],242:[function(t,e,n){"use strict";t(106)("italics",function(t){return function(){return t(this,"i","","")}})},{106:106}],243:[function(t,e,n){"use strict";var a=t(104)(!0);t(56)(String,"String",function(t){this._t=t+"",this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=a(e,n),this._i+=t.length,{value:t,done:!1})})},{104:104,56:56}],244:[function(t,e,n){"use strict";t(106)("link",function(t){return function(e){return t(this,"a","href",e)}})},{106:106}],245:[function(t,e,n){var a=t(34),r=t(115),i=t(116);a(a.S,"String",{raw:function(t){for(var e=r(t.raw),n=i(e.length),a=arguments.length,o=[],s=0;n>s;)o.push(e[s++]+""),a>s&&o.push(arguments[s]+"");return o.join("")}})},{115:115,116:116,34:34}],246:[function(t,e,n){var a=t(34);a(a.P,"String",{repeat:t(108)})},{108:108,34:34}],247:[function(t,e,n){"use strict";t(106)("small",function(t){return function(){return t(this,"small","","")}})},{106:106}],248:[function(t,e,n){"use strict";var a=t(34),r=t(116),i=t(105),o="startsWith",s=""[o];a(a.P+a.F*t(35)(o),"String",{startsWith:function(t){var e=i(this,t,o),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),a=t+"";return s?s.call(e,a,n):e.slice(n,n+a.length)===a}})},{105:105,116:116,34:34,35:35}],249:[function(t,e,n){"use strict";t(106)("strike",function(t){return function(){return t(this,"strike","","")}})},{106:106}],250:[function(t,e,n){"use strict";t(106)("sub",function(t){return function(){return t(this,"sub","","")}})},{106:106}],251:[function(t,e,n){"use strict";t(106)("sup",function(t){return function(){return t(this,"sup","","")}})},{106:106}],252:[function(t,e,n){"use strict";t(109)("trim",function(t){return function(){return t(this,3)}})},{109:109}],253:[function(t,e,n){"use strict";var a=t(41),r=t(42),i=t(30),o=t(34),s=t(92),p=t(66).KEY,u=t(36),c=t(101),l=t(99),d=t(122),f=t(127),h=t(126),m=t(125),g=t(33),v=t(50),b=t(8),y=t(52),_=t(115),x=t(118),w=t(90),k=t(71),S=t(76),E=t(75),C=t(72),P=t(81),A=E.f,O=C.f,T=S.f,R=a.Symbol,M=a.JSON,L=M&&M.stringify,j="prototype",D=f("_hidden"),N=f("toPrimitive"),F={}.propertyIsEnumerable,I=c("symbol-registry"),B=c("symbols"),U=c("op-symbols"),V=Object[j],q="function"==typeof R,G=a.QObject,z=!G||!G[j]||!G[j].findChild,W=i&&u(function(){return 7!=k(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,n){var a=A(V,e);a&&delete V[e],O(t,e,n),a&&t!==V&&O(V,e,a)}:O,H=function(t){var e=B[t]=k(R[j]);return e._k=t,e},K=q&&"symbol"==typeof R.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof R},Q=function(t,e,n){return t===V&&Q(U,e,n),b(t),e=x(e,!0),b(n),r(B,e)?(n.enumerable?(r(t,D)&&t[D][e]&&(t[D][e]=!1),n=k(n,{enumerable:w(0,!1)})):(r(t,D)||O(t,D,w(1,{})),t[D][e]=!0),W(t,e,n)):O(t,e,n)},Y=function(t,e){b(t);for(var n,a=g(e=_(e)),r=0,i=a.length;i>r;)Q(t,n=a[r++],e[n]);return t},$=function(t,e){return void 0===e?k(t):Y(k(t),e)},J=function(t){var e=F.call(this,t=x(t,!0));return this===V&&r(B,t)&&!r(U,t)?!1:e||!r(this,t)||!r(B,t)||r(this,D)&&this[D][t]?e:!0},X=function(t,e){if(t=_(t),e=x(e,!0),t!==V||!r(B,e)||r(U,e)){var n=A(t,e);return!n||!r(B,e)||r(t,D)&&t[D][e]||(n.enumerable=!0),n}},Z=function(t){for(var e,n=T(_(t)),a=[],i=0;n.length>i;)r(B,e=n[i++])||e==D||e==p||a.push(e);return a},tt=function(t){for(var e,n=t===V,a=T(n?U:_(t)),i=[],o=0;a.length>o;)r(B,e=a[o++])&&(n?r(V,e):!0)&&i.push(B[e]);return i};q||(R=function(){if(this instanceof R)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===V&&e.call(U,n),r(this,D)&&r(this[D],t)&&(this[D][t]=!1),W(this,t,w(1,n))};return i&&z&&W(V,t,{configurable:!0,set:e}),H(t)},s(R[j],"toString",function(){return this._k}),E.f=X,C.f=Q,t(77).f=S.f=Z,t(82).f=J,t(78).f=tt,i&&!t(60)&&s(V,"propertyIsEnumerable",J,!0),h.f=function(t){return H(f(t))}),o(o.G+o.W+o.F*!q,{Symbol:R});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)f(et[nt++]);for(var at=P(f.store),rt=0;at.length>rt;)m(at[rt++]);o(o.S+o.F*!q,"Symbol",{"for":function(t){return r(I,t+="")?I[t]:I[t]=R(t)},keyFor:function(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var e in I)if(I[e]===t)return e},useSetter:function(){z=!0},useSimple:function(){z=!1}}),o(o.S+o.F*!q,"Object",{create:$,defineProperty:Q,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:tt}),M&&o(o.S+o.F*(!q||u(function(){var t=R();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))})),"JSON",{stringify:function(t){for(var e,n,a=[t],r=1;arguments.length>r;)a.push(arguments[r++]);return n=e=a[1],!y(e)&&void 0===t||K(t)?void 0:(v(e)||(e=function(t,e){return"function"==typeof n&&(e=n.call(this,t,e)),K(e)?void 0:e}),a[1]=e,L.apply(M,a))}}),R[j][N]||t(43)(R[j],N,R[j].valueOf),l(R,"Symbol"),l(Math,"Math",!0),l(a.JSON,"JSON",!0)},{101:101,115:115,118:118,122:122,125:125,126:126,127:127,30:30,33:33,34:34,36:36,41:41,42:42,43:43,50:50,52:52,60:60,66:66,71:71,72:72,75:75,76:76,77:77,78:78,8:8,81:81,82:82,90:90,92:92,99:99}],254:[function(t,e,n){"use strict";var a=t(34),r=t(121),i=t(120),o=t(8),s=t(112),p=t(116),u=t(52),c=t(41).ArrayBuffer,l=t(102),d=i.ArrayBuffer,f=i.DataView,h=r.ABV&&c.isView,m=d.prototype.slice,g=r.VIEW,v="ArrayBuffer";a(a.G+a.W+a.F*(c!==d),{ArrayBuffer:d}),a(a.S+a.F*!r.CONSTR,v,{isView:function(t){return h&&h(t)||u(t)&&g in t}}),a(a.P+a.U+a.F*t(36)(function(){return!new d(2).slice(1,void 0).byteLength}),v,{slice:function(t,e){if(void 0!==m&&void 0===e)return m.call(o(this),t);for(var n=o(this).byteLength,a=s(t,n),r=s(void 0===e?n:e,n),i=new(l(this,d))(p(r-a)),u=new f(this),c=new f(i),h=0;r>a;)c.setUint8(h++,u.getUint8(a++));return i}}),t(98)(v)},{102:102,112:112,116:116,120:120,121:121,34:34,36:36,41:41,52:52,8:8,98:98}],255:[function(t,e,n){var a=t(34);a(a.G+a.W+a.F*!t(121).ABV,{DataView:t(120).DataView})},{120:120,121:121,34:34}],256:[function(t,e,n){t(119)("Float32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],257:[function(t,e,n){t(119)("Float64",8,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],258:[function(t,e,n){t(119)("Int16",2,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],259:[function(t,e,n){t(119)("Int32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],260:[function(t,e,n){t(119)("Int8",1,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],261:[function(t,e,n){t(119)("Uint16",2,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],262:[function(t,e,n){t(119)("Uint32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],263:[function(t,e,n){t(119)("Uint8",1,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],264:[function(t,e,n){t(119)("Uint8",1,function(t){return function(e,n,a){return t(this,e,n,a)}},!0)},{119:119}],265:[function(t,e,n){"use strict";var a,r=t(13)(0),i=t(92),o=t(66),s=t(70),p=t(22),u=t(52),c=t(36),l=t(124),d="WeakMap",f=o.getWeak,h=Object.isExtensible,m=p.ufstore,g={},v=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},b={get:function(t){if(u(t)){var e=f(t);return e===!0?m(l(this,d)).get(t):e?e[this._i]:void 0}},set:function(t,e){return p.def(l(this,d),t,e)}},y=e.exports=t(23)(d,v,b,p,!0,!0);c(function(){return 7!=(new y).set((Object.freeze||Object)(g),7).get(g)})&&(a=p.getConstructor(v,d),s(a.prototype,b),o.NEED=!0,r(["delete","has","get","set"],function(t){var e=y.prototype,n=e[t];i(e,t,function(e,r){if(u(e)&&!h(e)){this._f||(this._f=new a);var i=this._f[t](e,r);return"set"==t?this:i}return n.call(this,e,r)})}))},{124:124,13:13,22:22,23:23,36:36,52:52,66:66,70:70,92:92}],266:[function(t,e,n){"use strict";var a=t(22),r=t(124),i="WeakSet";t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return a.def(r(this,i),t,!0)}},a,!1,!0)},{124:124,22:22,23:23}],267:[function(t,e,n){"use strict";var a=t(34),r=t(39),i=t(117),o=t(116),s=t(4),p=t(16);a(a.P,"Array",{flatMap:function(t){var e,n,a=i(this);return s(t),e=o(a.length),n=p(a,0),r(n,a,a,e,0,1,t,arguments[1]),n}}),t(6)("flatMap")},{116:116,117:117,16:16,34:34,39:39,4:4,6:6}],268:[function(t,e,n){"use strict";var a=t(34),r=t(39),i=t(117),o=t(116),s=t(114),p=t(16);a(a.P,"Array",{flatten:function(){var t=arguments[0],e=i(this),n=o(e.length),a=p(e,0);return r(a,e,e,n,0,void 0===t?1:s(t)),a}}),t(6)("flatten")},{114:114,116:116,117:117,16:16,34:34,39:39,6:6}],269:[function(t,e,n){"use strict";var a=t(34),r=t(12)(!0);a(a.P,"Array",{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)("includes")},{12:12,34:34,6:6}],270:[function(t,e,n){var a=t(34),r=t(68)(),i=t(41).process,o="process"==t(19)(i);a(a.G,{asap:function(t){var e=o&&i.domain;r(e?e.bind(t):t)}})},{19:19,34:34,41:41,68:68}],271:[function(t,e,n){var a=t(34),r=t(19);a(a.S,"Error",{isError:function(t){return"Error"===r(t)}})},{19:19,34:34}],272:[function(t,e,n){var a=t(34);a(a.G,{global:t(41)})},{34:34,41:41}],273:[function(t,e,n){t(95)("Map")},{95:95}],274:[function(t,e,n){t(96)("Map")},{96:96}],275:[function(t,e,n){var a=t(34);a(a.P+a.R,"Map",{toJSON:t(21)("Map")})},{21:21,34:34}],276:[function(t,e,n){var a=t(34);a(a.S,"Math",{clamp:function(t,e,n){return Math.min(n,Math.max(e,t))}})},{34:34}],277:[function(t,e,n){var a=t(34);a(a.S,"Math",{DEG_PER_RAD:Math.PI/180})},{34:34}],278:[function(t,e,n){var a=t(34),r=180/Math.PI;a(a.S,"Math",{degrees:function(t){return t*r}})},{34:34}],279:[function(t,e,n){var a=t(34),r=t(64),i=t(62);a(a.S,"Math",{fscale:function(t,e,n,a,o){return i(r(t,e,n,a,o))}})},{34:34,62:62,64:64}],280:[function(t,e,n){var a=t(34);a(a.S,"Math",{iaddh:function(t,e,n,a){var r=t>>>0,i=e>>>0,o=n>>>0;return i+(a>>>0)+((r&o|(r|o)&~(r+o>>>0))>>>31)|0}})},{34:34}],281:[function(t,e,n){var a=t(34);a(a.S,"Math",{imulh:function(t,e){var n=65535,a=+t,r=+e,i=a&n,o=r&n,s=a>>16,p=r>>16,u=(s*o>>>0)+(i*o>>>16);return s*p+(u>>16)+((i*p>>>0)+(u&n)>>16)}})},{34:34}],282:[function(t,e,n){var a=t(34);a(a.S,"Math",{isubh:function(t,e,n,a){var r=t>>>0,i=e>>>0,o=n>>>0;return i-(a>>>0)-((~r&o|~(r^o)&r-o>>>0)>>>31)|0}})},{34:34}],283:[function(t,e,n){var a=t(34);a(a.S,"Math",{RAD_PER_DEG:180/Math.PI})},{34:34}],284:[function(t,e,n){var a=t(34),r=Math.PI/180;a(a.S,"Math",{radians:function(t){return t*r}})},{34:34}],285:[function(t,e,n){var a=t(34);a(a.S,"Math",{scale:t(64)})},{34:34,64:64}],286:[function(t,e,n){var a=t(34);a(a.S,"Math",{signbit:function(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},{34:34}],287:[function(t,e,n){var a=t(34);a(a.S,"Math",{umulh:function(t,e){var n=65535,a=+t,r=+e,i=a&n,o=r&n,s=a>>>16,p=r>>>16,u=(s*o>>>0)+(i*o>>>16);return s*p+(u>>>16)+((i*p>>>0)+(u&n)>>>16)}})},{34:34}],288:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(4),o=t(72);t(30)&&a(a.P+t(74),"Object",{__defineGetter__:function(t,e){o.f(r(this),t,{get:i(e),enumerable:!0,configurable:!0})}})},{117:117,30:30,34:34,4:4,72:72,74:74}],289:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(4),o=t(72);t(30)&&a(a.P+t(74),"Object",{__defineSetter__:function(t,e){o.f(r(this),t,{set:i(e),enumerable:!0,configurable:!0})}})},{117:117,30:30,34:34,4:4,72:72,74:74}],290:[function(t,e,n){var a=t(34),r=t(84)(!0);a(a.S,"Object",{entries:function(t){return r(t)}})},{34:34,84:84}],291:[function(t,e,n){var a=t(34),r=t(85),i=t(115),o=t(75),s=t(25);a(a.S,"Object",{getOwnPropertyDescriptors:function(t){for(var e,n,a=i(t),p=o.f,u=r(a),c={},l=0;u.length>l;)n=p(a,e=u[l++]),void 0!==n&&s(c,e,n);return c}})},{115:115,25:25,34:34,75:75,85:85}],292:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118),o=t(79),s=t(75).f;t(30)&&a(a.P+t(74),"Object",{__lookupGetter__:function(t){var e,n=r(this),a=i(t,!0);do if(e=s(n,a))return e.get;while(n=o(n))}})},{117:117,118:118,30:30,34:34,74:74,75:75,79:79}],293:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118),o=t(79),s=t(75).f;t(30)&&a(a.P+t(74),"Object",{__lookupSetter__:function(t){var e,n=r(this),a=i(t,!0);do if(e=s(n,a))return e.set;while(n=o(n))}})},{117:117,118:118,30:30,34:34,74:74,75:75,79:79}],294:[function(t,e,n){var a=t(34),r=t(84)(!1);a(a.S,"Object",{values:function(t){return r(t)}})},{34:34,84:84}],295:[function(t,e,n){"use strict";var a=t(34),r=t(41),i=t(24),o=t(68)(),s=t(127)("observable"),p=t(4),u=t(8),c=t(7),l=t(91),d=t(43),f=t(40),h=f.RETURN,m=function(t){return null==t?void 0:p(t)},g=function(t){var e=t._c;e&&(t._c=void 0,e())},v=function(t){return void 0===t._o},b=function(t){v(t)||(t._o=void 0,g(t))},y=function(t,e){u(t),this._c=void 0,this._o=t,t=new _(this);try{var n=e(t),a=n;null!=n&&("function"==typeof n.unsubscribe?n=function(){a.unsubscribe()}:p(n),this._c=n)}catch(r){return void t.error(r)}v(this)&&g(this)};y.prototype=l({},{unsubscribe:function(){b(this)}});var _=function(t){this._s=t};_.prototype=l({},{next:function(t){var e=this._s;if(!v(e)){var n=e._o;try{var a=m(n.next);if(a)return a.call(n,t)}catch(r){try{b(e)}finally{throw r}}}},error:function(t){var e=this._s;if(v(e))throw t;var n=e._o;e._o=void 0;try{var a=m(n.error);if(!a)throw t;t=a.call(n,t)}catch(r){try{g(e)}finally{throw r}}return g(e),t},complete:function(t){var e=this._s;if(!v(e)){var n=e._o;e._o=void 0;try{var a=m(n.complete);t=a?a.call(n,t):void 0}catch(r){try{g(e)}finally{throw r}}return g(e),t}}});var x=function(t){c(this,x,"Observable","_f")._f=p(t)};l(x.prototype,{subscribe:function(t){return new y(t,this._f)},forEach:function(t){var e=this;return new(i.Promise||r.Promise)(function(n,a){p(t);var r=e.subscribe({next:function(e){try{return t(e)}catch(n){a(n),r.unsubscribe()}},error:a,complete:n})})}}),l(x,{from:function(t){var e="function"==typeof this?this:x,n=m(u(t)[s]);if(n){var a=u(n.call(t));return a.constructor===e?a:new e(function(t){return a.subscribe(t)})}return new e(function(e){var n=!1;return o(function(){if(!n){try{if(f(t,!1,function(t){return e.next(t),n?h:void 0})===h)return}catch(a){if(n)throw a;return void e.error(a)}e.complete()}}),function(){n=!0}})},of:function(){for(var t=0,e=arguments.length,n=Array(e);e>t;)n[t]=arguments[t++];return new("function"==typeof this?this:x)(function(t){var e=!1;return o(function(){if(!e){for(var a=0;a1?arguments[1]:void 0,!1)}})},{107:107,123:123,34:34}],313:[function(t,e,n){"use strict";var a=t(34),r=t(107),i=t(123);a(a.P+a.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(i),"String",{padStart:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},{107:107,123:123,34:34}],314:[function(t,e,n){"use strict";t(109)("trimLeft",function(t){return function(){return t(this,1)}},"trimStart")},{109:109}],315:[function(t,e,n){"use strict";t(109)("trimRight",function(t){return function(){return t(this,2)}},"trimEnd")},{109:109}],316:[function(t,e,n){t(125)("asyncIterator")},{125:125}],317:[function(t,e,n){t(125)("observable")},{125:125}],318:[function(t,e,n){var a=t(34);a(a.S,"System",{global:t(41) -})},{34:34,41:41}],319:[function(t,e,n){t(95)("WeakMap")},{95:95}],320:[function(t,e,n){t(96)("WeakMap")},{96:96}],321:[function(t,e,n){t(95)("WeakSet")},{95:95}],322:[function(t,e,n){t(96)("WeakSet")},{96:96}],323:[function(t,e,n){for(var a=t(140),r=t(81),i=t(92),o=t(41),s=t(43),p=t(59),u=t(127),c=u("iterator"),l=u("toStringTag"),d=p.Array,f={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=r(f),m=0;m2,r=a?o.call(arguments,2):!1;return t(a?function(){("function"==typeof e?e:Function(e)).apply(this,r)}:e,n)}};r(r.G+r.B+r.F*s,{setTimeout:p(a.setTimeout),setInterval:p(a.setInterval)})},{123:123,34:34,41:41}],326:[function(t,e,n){t(253),t(190),t(192),t(191),t(194),t(196),t(201),t(195),t(193),t(203),t(202),t(198),t(199),t(197),t(189),t(200),t(204),t(205),t(156),t(158),t(157),t(207),t(206),t(177),t(187),t(188),t(178),t(179),t(180),t(181),t(182),t(183),t(184),t(185),t(186),t(160),t(161),t(162),t(163),t(164),t(165),t(166),t(167),t(168),t(169),t(170),t(171),t(172),t(173),t(174),t(175),t(176),t(240),t(245),t(252),t(243),t(235),t(236),t(241),t(246),t(248),t(231),t(232),t(233),t(234),t(237),t(238),t(239),t(242),t(244),t(247),t(249),t(250),t(251),t(151),t(153),t(152),t(155),t(154),t(139),t(137),t(144),t(141),t(147),t(149),t(136),t(143),t(133),t(148),t(131),t(146),t(145),t(138),t(142),t(130),t(132),t(135),t(134),t(150),t(140),t(223),t(229),t(224),t(225),t(226),t(227),t(228),t(208),t(159),t(230),t(265),t(266),t(254),t(255),t(260),t(263),t(264),t(258),t(261),t(259),t(262),t(256),t(257),t(209),t(210),t(211),t(212),t(213),t(216),t(214),t(215),t(217),t(218),t(219),t(220),t(222),t(221),t(269),t(267),t(268),t(310),t(313),t(312),t(314),t(315),t(311),t(316),t(317),t(291),t(294),t(290),t(288),t(289),t(292),t(293),t(275),t(309),t(274),t(308),t(320),t(322),t(273),t(307),t(319),t(321),t(272),t(318),t(271),t(276),t(277),t(278),t(279),t(280),t(282),t(281),t(283),t(284),t(285),t(287),t(286),t(296),t(297),t(298),t(299),t(301),t(300),t(303),t(302),t(304),t(305),t(306),t(270),t(295),t(325),t(324),t(323),e.exports=t(24)},{130:130,131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,24:24,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,307:307,308:308,309:309,310:310,311:311,312:312,313:313,314:314,315:315,316:316,317:317,318:318,319:319,320:320,321:321,322:322,323:323,324:324,325:325}],327:[function(t,e,n){!function(t){"use strict";function e(){return c.createDocumentFragment()}function n(t){return c.createElement(t)}function a(t){if(1===t.length)return r(t[0]);for(var n=e(),a=B.call(t),i=0;i-1}}([].indexOf||function(t){for(U=this.length;U--&&this[U]!==t;);return U}),item:function(t){return this[t]||null},remove:function(){for(var t,e=0;e=p?e(i):document.fonts.load(u(i,i.family),s).then(function(e){1<=e.length?t(i):setTimeout(d,25)},function(){e(i)})};d()}else n(function(){function n(){var e;(e=-1!=g&&-1!=v||-1!=g&&-1!=b||-1!=v&&-1!=b)&&((e=g!=v&&g!=b&&v!=b)||(null===l&&(e=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),l=!!e&&(536>parseInt(e[1],10)||536===parseInt(e[1],10)&&11>=parseInt(e[2],10))),e=l&&(g==y&&v==y&&b==y||g==_&&v==_&&b==_||g==x&&v==x&&b==x)),e=!e),e&&(null!==w.parentNode&&w.parentNode.removeChild(w),clearTimeout(k),t(i))}function d(){if((new Date).getTime()-c>=p)null!==w.parentNode&&w.parentNode.removeChild(w),e(i);else{var t=document.hidden;(!0===t||void 0===t)&&(g=f.a.offsetWidth,v=h.a.offsetWidth,b=m.a.offsetWidth,n()),k=setTimeout(d,50)}}var f=new a(s),h=new a(s),m=new a(s),g=-1,v=-1,b=-1,y=-1,_=-1,x=-1,w=document.createElement("div"),k=0;w.dir="ltr",r(f,u(i,"sans-serif")),r(h,u(i,"serif")),r(m,u(i,"monospace")),w.appendChild(f.a),w.appendChild(h.a),w.appendChild(m.a),document.body.appendChild(w),y=f.a.offsetWidth,_=h.a.offsetWidth,x=m.a.offsetWidth,d(),o(f,function(t){g=t,n()}),r(f,u(i,'"'+i.family+'",sans-serif')),o(h,function(t){v=t,n()}),r(h,u(i,'"'+i.family+'",serif')),o(m,function(t){b=t,n()}),r(m,u(i,'"'+i.family+'",monospace'))})})},window.FontFaceObserver=s,window.FontFaceObserver.prototype.check=s.prototype.a,void 0!==e&&(e.exports=window.FontFaceObserver)}()},{}],330:[function(t,e,n){!function(t,n){function a(t,e){var n=t.createElement("p"),a=t.getElementsByTagName("head")[0]||t.documentElement;return n.innerHTML="x",a.insertBefore(n.lastChild,a.firstChild)}function r(){var t=_.elements;return"string"==typeof t?t.split(" "):t}function i(t,e){var n=_.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof t&&(t=t.join(" ")),_.elements=n+" "+t,c(e)}function o(t){var e=y[t[v]];return e||(e={},b++,t[v]=b,y[b]=e),e}function s(t,e,a){if(e||(e=n),d)return e.createElement(t);a||(a=o(e));var r;return r=a.cache[t]?a.cache[t].cloneNode():g.test(t)?(a.cache[t]=a.createElem(t)).cloneNode():a.createElem(t),!r.canHaveChildren||m.test(t)||r.tagUrn?r:a.frag.appendChild(r)}function p(t,e){if(t||(t=n),d)return t.createDocumentFragment();e=e||o(t);for(var a=e.frag.cloneNode(),i=0,s=r(),p=s.length;p>i;i++)a.createElement(s[i]);return a}function u(t,e){e.cache||(e.cache={},e.createElem=t.createElement,e.createFrag=t.createDocumentFragment,e.frag=e.createFrag()),t.createElement=function(n){return _.shivMethods?s(n,t,e):e.createElem(n)},t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(t){return e.createElem(t),e.frag.createElement(t),'c("'+t+'")'})+");return n}")(_,e.frag)}function c(t){t||(t=n);var e=o(t);return!_.shivCSS||l||e.hasCSS||(e.hasCSS=!!a(t,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),d||u(t,e),t}var l,d,f="3.7.3-pre",h=t.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,g=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",b=0,y={};!function(){try{var t=n.createElement("a");t.innerHTML="",l="hidden"in t,d=1==t.childNodes.length||function(){n.createElement("a");var t=n.createDocumentFragment();return void 0===t.cloneNode||void 0===t.createDocumentFragment||void 0===t.createElement}()}catch(e){l=!0,d=!0}}();var _={elements:h.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:f,shivCSS:h.shivCSS!==!1,supportsUnknownElements:d,shivMethods:h.shivMethods!==!1,type:"default",shivDocument:c,createElement:s,createDocumentFragment:p,addElements:i};t.html5=_,c(n),"object"==typeof e&&e.exports&&(e.exports=_)}("undefined"!=typeof window?window:this,document)},{}],331:[function(t,e,n){(function(t){(function(t){!function(t){function e(t,e,n,a){for(var i,o,s=n.slice(),p=r(e,t),u=0,c=s.length;c>u&&(i=s[u],"object"==typeof i?"function"==typeof i.handleEvent&&i.handleEvent(p):i.call(t,p),!p.stoppedImmediatePropagation);u++);return o=!p.stoppedPropagation,a&&o&&t.parentNode?t.parentNode.dispatchEvent(p):!p.defaultPrevented}function n(t,e){return{configurable:!0,get:t,set:e}}function a(t,e,a){var r=y(e||t,a);v(t,"textContent",n(function(){return r.get.call(this)},function(t){r.set.call(this,t)}))}function r(t,e){return t.currentTarget=e,t.eventPhase=t.target===t.currentTarget?2:3,t}function i(t,e){for(var n=t.length;n--&&t[n]!==e;);return n}function o(){if("BR"===this.tagName)return"\n";for(var t=this.firstChild,e=[];t;)8!==t.nodeType&&7!==t.nodeType&&e.push(t.textContent),t=t.nextSibling;return e.join("")}function s(t){var e=document.createEvent("Event");e.initEvent("input",!0,!0),(t.srcElement||t.fromElement||document).dispatchEvent(e)}function p(t){!f&&S.test(document.readyState)&&(f=!f,document.detachEvent(h,p),t=document.createEvent("Event"),t.initEvent(m,!0,!0),document.dispatchEvent(t))}function u(t){return function(){return P[t]||document.body&&document.body[t]||0}}function c(t){for(var e;e=this.lastChild;)this.removeChild(e);null!=t&&this.appendChild(document.createTextNode(t))}function l(e,n){return n||(n=t.event),n.target||(n.target=n.srcElement||n.fromElement||document),n.timeStamp||(n.timeStamp=(new Date).getTime()),n}if(!document.createEvent){var d=!0,f=!1,h="onreadystatechange",m="DOMContentLoaded",g="__IE8__"+Math.random(),v=Object.defineProperty||function(t,e,n){t[e]=n.value},b=Object.defineProperties||function(e,n){for(var a in n)if(_.call(n,a))try{v(e,a,n[a])}catch(r){t.console&&console.log(a+" failed on object:",e,r.message)}},y=Object.getOwnPropertyDescriptor,_=Object.prototype.hasOwnProperty,x=t.Element.prototype,w=t.Text.prototype,k=/^[a-z]+$/,S=/loaded|complete/,E={},C=document.createElement("div"),P=document.documentElement,A=P.removeAttribute,O=P.setAttribute,T=function(t){return{enumerable:!0,writable:!0,configurable:!0,value:t}};a(t.HTMLCommentElement.prototype,x,"nodeValue"),a(t.HTMLScriptElement.prototype,null,"text"),a(w,null,"nodeValue"),a(t.HTMLTitleElement.prototype,null,"text"),v(t.HTMLStyleElement.prototype,"textContent",function(t){return n(function(){return t.get.call(this.styleSheet)},function(e){t.set.call(this.styleSheet,e)})}(y(t.CSSStyleSheet.prototype,"cssText")));var R=/\b\s*alpha\s*\(\s*opacity\s*=\s*(\d+)\s*\)/;v(t.CSSStyleDeclaration.prototype,"opacity",{get:function(){var t=this.filter.match(R);return t?""+t[1]/100:""},set:function(t){this.zoom=1;var e=!1;t=1>t?" alpha(opacity="+Math.round(100*t)+")":"",this.filter=this.filter.replace(R,function(){return e=!0,t}),!e&&t&&(this.filter+=t)}}),b(x,{textContent:{get:o,set:c},firstElementChild:{get:function(){for(var t=this.childNodes||[],e=0,n=t.length;n>e;e++)if(1==t[e].nodeType)return t[e]}},lastElementChild:{get:function(){for(var t=this.childNodes||[],e=t.length;e--;)if(1==t[e].nodeType)return t[e]}},oninput:{get:function(){return this._oninput||null},set:function(t){this._oninput&&(this.removeEventListener("input",this._oninput),this._oninput=t,t&&this.addEventListener("input",t))}},previousElementSibling:{get:function(){for(var t=this.previousSibling;t&&1!=t.nodeType;)t=t.previousSibling;return t}},nextElementSibling:{get:function(){for(var t=this.nextSibling;t&&1!=t.nodeType;)t=t.nextSibling;return t}},childElementCount:{get:function(){for(var t=0,e=this.childNodes||[],n=e.length;n--;t+=1==e[n].nodeType);return t}},addEventListener:T(function(t,n,a){if("function"==typeof n||"object"==typeof n){var r,o,p=this,u="on"+t,c=p[g]||v(p,g,{value:{}})[g],d=c[u]||(c[u]={}),f=d.h||(d.h=[]);if(!_.call(d,"w")){if(d.w=function(t){return t[g]||e(p,l(p,t),f,!1)},!_.call(E,u))if(k.test(t)){try{r=document.createEventObject(),r[g]=!0,9!=p.nodeType&&(null==p.parentNode&&C.appendChild(p),(o=p.getAttribute(u))&&A.call(p,u)),p.fireEvent(u,r),E[u]=!0}catch(h){for(E[u]=!1;C.hasChildNodes();)C.removeChild(C.firstChild)}null!=o&&O.call(p,u,o)}else E[u]=!1;(d.n=E[u])&&p.attachEvent(u,d.w)}i(f,n)<0&&f[a?"unshift":"push"](n),"input"===t&&p.attachEvent("onkeyup",s)}}),dispatchEvent:T(function(t){var n,a=this,r="on"+t.type,i=a[g],o=i&&i[r],s=!!o;return t.target||(t.target=a),s?o.n?a.fireEvent(r,t):e(a,t,o.h,!0):(n=a.parentNode)?n.dispatchEvent(t):!0,!t.defaultPrevented}),removeEventListener:T(function(t,e,n){if("function"==typeof e||"object"==typeof e){var a=this,r="on"+t,o=a[g],s=o&&o[r],p=s&&s.h,u=p?i(p,e):-1;u>-1&&p.splice(u,1)}})}),b(w,{addEventListener:T(x.addEventListener),dispatchEvent:T(x.dispatchEvent),removeEventListener:T(x.removeEventListener)}),b(t.XMLHttpRequest.prototype,{addEventListener:T(function(t,e,n){var a=this,r="on"+t,o=a[g]||v(a,g,{value:{}})[g],s=o[r]||(o[r]={}),p=s.h||(s.h=[]);i(p,e)<0&&(a[r]||(a[r]=function(){var e=document.createEvent("Event");e.initEvent(t,!0,!0),a.dispatchEvent(e)}),p[n?"unshift":"push"](e))}),dispatchEvent:T(function(t){var n=this,a="on"+t.type,r=n[g],i=r&&r[a],o=!!i;return o&&(i.n?n.fireEvent(a,t):e(n,t,i.h,!0))}),removeEventListener:T(x.removeEventListener)});var M=y(Event.prototype,"button").get;b(t.Event.prototype,{bubbles:T(!0),cancelable:T(!0),preventDefault:T(function(){this.cancelable&&(this.returnValue=!1)}),stopPropagation:T(function(){this.stoppedPropagation=!0,this.cancelBubble=!0}),stopImmediatePropagation:T(function(){this.stoppedImmediatePropagation=!0,this.stopPropagation()}),initEvent:T(function(t,e,n){this.type=t,this.bubbles=!!e,this.cancelable=!!n,this.bubbles||this.stopPropagation()}),pageX:{get:function(){return this._pageX||(this._pageX=this.clientX+t.scrollX-(P.clientLeft||0))}},pageY:{get:function(){return this._pageY||(this._pageY=this.clientY+t.scrollY-(P.clientTop||0))}},which:{get:function(){return this.keyCode?this.keyCode:isNaN(this.button)?void 0:this.button+1}},charCode:{get:function(){return this.keyCode&&"keypress"==this.type?this.keyCode:0}},buttons:{get:function(){return M.call(this)}},button:{get:function(){var t=this.buttons;return 1&t?0:2&t?2:4&t?1:void 0}},defaultPrevented:{get:function(){var t,e=this.returnValue;return!(e===t||e)}},relatedTarget:{get:function(){var t=this.type;return"mouseover"===t?this.fromElement:"mouseout"===t?this.toElement:null}}}),b(t.HTMLDocument.prototype,{defaultView:{get:function(){return this.parentWindow}},textContent:{get:function(){return 11===this.nodeType?o.call(this):null},set:function(t){11===this.nodeType&&c.call(this,t)}},addEventListener:T(function(e,n,a){var r=this;x.addEventListener.call(r,e,n,a),d&&e===m&&!S.test(r.readyState)&&(d=!1,r.attachEvent(h,p),t==top&&!function i(t){try{r.documentElement.doScroll("left"),p()}catch(e){setTimeout(i,50)}}())}),dispatchEvent:T(x.dispatchEvent),removeEventListener:T(x.removeEventListener),createEvent:T(function(t){var e;if("Event"!==t)throw Error("unsupported "+t);return e=document.createEventObject(),e.timeStamp=(new Date).getTime(),e})}),b(t.Window.prototype,{getComputedStyle:T(function(){function t(t){this._=t}function e(){}var n=/^(?:[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/,a=/^(top|right|bottom|left)$/,r=/\-([a-z])/g,i=function(t,e){return e.toUpperCase()};return t.prototype.getPropertyValue=function(t){var e,o,s,p=this._,u=p.style,c=p.currentStyle,l=p.runtimeStyle;return"opacity"==t?u.opacity||"1":(t=("float"===t?"style-float":t).replace(r,i),e=c?c[t]:u[t],n.test(e)&&!a.test(t)&&(o=u.left,s=l&&l.left,s&&(l.left=c.left),u.left="fontSize"===t?"1em":e,e=u.pixelLeft+"px",u.left=o,s&&(l.left=s)),null==e?e:e+""||"auto")},e.prototype.getPropertyValue=function(){return null},function(n,a){return a?new e(n):new t(n)}}()),addEventListener:T(function(n,a,r){var o,s=t,p="on"+n;s[p]||(s[p]=function(t){return e(s,l(s,t),o,!1)&&void 0}),o=s[p][g]||(s[p][g]=[]),i(o,a)<0&&o[r?"unshift":"push"](a)}),dispatchEvent:T(function(e){var n=t["on"+e.type];return n?n.call(t,e)!==!1&&!e.defaultPrevented:!0}),removeEventListener:T(function(e,n,a){var r="on"+e,o=(t[r]||Object)[g],s=o?i(o,n):-1;s>-1&&o.splice(s,1)}),pageXOffset:{get:u("scrollLeft")},pageYOffset:{get:u("scrollTop")},scrollX:{get:u("scrollLeft")},scrollY:{get:u("scrollTop")},innerWidth:{get:u("clientWidth")},innerHeight:{get:u("clientHeight")}}),t.HTMLElement=t.Element,function(t,e,n){for(n=0;na;a++)e.appendChild(n[a].cloneNode(!0));return e},n.cloneRange=function(){var t=new e;return t._start=this._start,t._end=this._end,t},n.deleteContents=function(){for(var e=this._start.parentNode,n=t(this._start,this._end),a=0,r=n.length;r>a;a++)e.removeChild(n[a])},n.extractContents=function(){for(var e=this._start.ownerDocument.createDocumentFragment(),n=t(this._start,this._end),a=0,r=n.length;r>a;a++)e.appendChild(n[a]);return e},n.setEndAfter=function(t){this._end=t},n.setEndBefore=function(t){this._end=t.previousSibling},n.setStartAfter=function(t){this._start=t.nextSibling},n.setStartBefore=function(t){this._start=t}}}()}}(this.window||t)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],332:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e=s)return(0,p["default"])({points:n});for(var l=1;s-1>=l;l++)i.push((0,u.times)(a,(0,u.minus)(n[l],n[l-1])));for(var d=[(0,u.plus)(n[0],c(i[0],i[1]))],l=1;s-2>=l;l++)d.push((0,u.minus)(n[l],(0,u.average)([i[l],i[l-1]])));d.push((0,u.minus)(n[s-1],c(i[s-2],i[s-3])));var f=d[0],h=d[1],m=n[0],g=n[1],v=(e=(0,o["default"])()).moveto.apply(e,r(m)).curveto(f[0],f[1],h[0],h[1],g[0],g[1]);return{path:(0,u.range)(2,s).reduce(function(t,e){var a=d[e],r=n[e];return t.smoothcurveto(a[0],a[1],r[0],r[1])},v),centroid:(0,u.average)(n)}},e.exports=n["default"]},{335:335,336:336,337:337}],333:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=t(334),o=a(i),s=t(335),p=1e-5,u=function(t,e){var n=t.map(e),a=n.sort(function(t,e){var n=r(t,2),a=n[0],i=(n[1],r(e,2)),o=i[0];i[1];return a-o}),i=a.length,o=a[0][0],u=a[i-1][0],c=(0,s.minBy)(a,function(t){return t[1]}),l=(0,s.maxBy)(a,function(t){return t[1]});return o==u&&(u+=p),c==l&&(l+=p),{points:a,xmin:o,xmax:u,ymin:c,ymax:l}};n["default"]=function(t){var e=t.data,n=t.xaccessor,a=t.yaccessor,i=t.width,p=t.height,c=t.closed,l=t.min,d=t.max;n||(n=function(t){var e=r(t,2),n=e[0];e[1];return n}),a||(a=function(t){var e=r(t,2),n=(e[0],e[1]);return n});var f=function(t){return[n(t),a(t)]},h=e.map(function(t){return u(t,f)}),m=(0,s.minBy)(h,function(t){return t.xmin}),g=(0,s.maxBy)(h,function(t){return t.xmax}),v=null==l?(0,s.minBy)(h,function(t){return t.ymin}):l,b=null==d?(0,s.maxBy)(h,function(t){return t.ymax}):d;c&&(v=Math.min(v,0),b=Math.max(b,0));var y=c?0:v,_=(0,o["default"])([m,g],[0,i]),x=(0,o["default"])([v,b],[p,0]),w=function(t){var e=r(t,2),n=e[0],a=e[1];return[_(n),x(a)]};return{arranged:h,scale:w,xscale:_,yscale:x,base:y}},e.exports=n["default"]},{334:334,335:335}],334:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function i(t,e){var n=a(t,2),r=n[0],o=n[1],s=a(e,2),p=s[0],u=s[1],c=function(t){return p+(u-p)*(t-r)/(o-r)};return c.inverse=function(){return i([p,u],[r,o])},c};n["default"]=r,e.exports=n["default"]},{}],335:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(t){return t.reduce(function(t,e){return t+e},0)},i=function(t){return t.reduce(function(t,e){return Math.min(t,e)})},o=function(t){return t.reduce(function(t,e){return Math.max(t,e)})},s=function(t,e){return t.reduce(function(t,n){return t+e(n)},0)},p=function(t,e){return t.reduce(function(t,n){return Math.min(t,e(n))},1/0)},u=function(t,e){return t.reduce(function(t,n){return Math.max(t,e(n))},-(1/0))},c=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],p=o[1];return[r+s,i+p]},l=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],p=o[1];return[r-s,i-p]},d=function(t,e){var n=a(e,2),r=n[0],i=n[1];return[t*r,t*i]},f=function(t){var e=a(t,2),n=e[0],r=e[1];return Math.sqrt(n*n+r*r)},h=function(t){return t.reduce(c,[0,0])},m=function(t){return d(1/t.length,t.reduce(c))},g=function(t,e){return d(t,[Math.sin(e),-Math.cos(e)])},v=function(t,e){var n=t||{};for(var a in n){var r=n[a];e[a]=r(e.index,e.item,e.group)}return e},b=function(t,e,n){for(var a=[],r=t;e>r;r++)a.push(r);return n&&a.push(e),a},y=function(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=Object.keys(t)[Symbol.iterator]();!(a=(o=s.next()).done);a=!0){var p=o.value,u=t[p];n.push(e(p,u))}}catch(c){r=!0,i=c}finally{ -try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n},_=function(t){return y(t,function(t,e){return[t,e]})},x=function(t){return t};n.sum=r,n.min=i,n.max=o,n.sumBy=s,n.minBy=p,n.maxBy=u,n.plus=c,n.minus=l,n.times=d,n.id=x,n.length=f,n.sumVectors=h,n.average=m,n.onCircle=g,n.enhance=v,n.range=b,n.mapObject=y,n.pairs=_,n["default"]={sum:r,min:i,max:o,sumBy:s,minBy:p,maxBy:u,plus:c,minus:l,times:d,id:x,length:f,sumVectors:h,average:m,onCircle:g,enhance:v,range:b,mapObject:y,pairs:_}},{}],336:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function i(t){var e=t||[],n=function(t,e){var n=t.slice(0,t.length);return n.push(e),n},r=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],p=o[1];return r===s&&i===p},o=function(t,e){for(var n=t.length;"0"===t.charAt(n-1);)n-=1;return"."===t.charAt(n-1)&&(n-=1),t.substr(0,n)},s=function(t,e){var n=t.toFixed(e);return o(n)},p=function(t){var e=t.command,n=t.params,a=n.map(function(t){return s(t,6)});return e+" "+a.join(" ")},u=function(t,e){var n=t.command,r=t.params,i=a(e,2),o=i[0],s=i[1];switch(n){case"M":return[r[0],r[1]];case"L":return[r[0],r[1]];case"H":return[r[0],s];case"V":return[o,r[0]];case"Z":return null;case"C":return[r[4],r[5]];case"S":return[r[2],r[3]];case"Q":return[r[2],r[3]];case"T":return[r[0],r[1]];case"A":return[r[5],r[6]]}},c=function(t,e){return function(n){var a="object"==typeof n?t.map(function(t){return n[t]}):arguments;return e.apply(null,a)}},l=function(t){return i(n(e,t))};return{moveto:c(["x","y"],function(t,e){return l({command:"M",params:[t,e]})}),lineto:c(["x","y"],function(t,e){return l({command:"L",params:[t,e]})}),hlineto:c(["x"],function(t){return l({command:"H",params:[t]})}),vlineto:c(["y"],function(t){return l({command:"V",params:[t]})}),closepath:function(){return l({command:"Z",params:[]})},curveto:c(["x1","y1","x2","y2","x","y"],function(t,e,n,a,r,i){return l({command:"C",params:[t,e,n,a,r,i]})}),smoothcurveto:c(["x2","y2","x","y"],function(t,e,n,a){return l({command:"S",params:[t,e,n,a]})}),qcurveto:c(["x1","y1","x","y"],function(t,e,n,a){return l({command:"Q",params:[t,e,n,a]})}),smoothqcurveto:c(["x","y"],function(t,e){return l({command:"T",params:[t,e]})}),arc:c(["rx","ry","xrot","largeArcFlag","sweepFlag","x","y"],function(t,e,n,a,r,i,o){return l({command:"A",params:[t,e,n,a,r,i,o]})}),print:function(){return e.map(p).join(" ")},points:function(){var t=[],n=[0,0],a=!0,r=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(a=(o=s.next()).done);a=!0){var p=o.value,c=u(p,n);n=c,c&&t.push(c)}}catch(l){r=!0,i=l}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return t},instructions:function(){return e.slice(0,e.length)},connect:function(t){var e=this.points(),n=e[e.length-1],a=t.points()[0],o=t.instructions().slice(1);return r(n,a)||o.unshift({command:"L",params:a}),i(this.instructions().concat(o))}}};n["default"]=function(){return r()},e.exports=n["default"]},{}],337:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];for(var r,i;i=n.shift();)for(r in i)Mo.call(i,r)&&(t[r]=i[r]);return t}function r(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];return n.forEach(function(e){for(var n in e)!e.hasOwnProperty(n)||n in t||(t[n]=e[n])}),t}function i(t){return"[object Array]"===Lo.call(t)}function o(t){return jo.test(Lo.call(t))}function s(t,e){return null===t&&null===e?!0:"object"==typeof t||"object"==typeof e?!1:t===e}function p(t){return!isNaN(parseFloat(t))&&isFinite(t)}function u(t){return t&&"[object Object]"===Lo.call(t)}function c(t,e){return t.replace(/%s/g,function(){return e.shift()})}function l(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];throw t=c(t,n),Error(t)}function d(){Mg.DEBUG&&Oo.apply(null,arguments)}function f(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];t=c(t,n),To(t,n)}function h(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];t=c(t,n),Do[t]||(Do[t]=!0,To(t,n))}function m(){Mg.DEBUG&&f.apply(null,arguments)}function g(){Mg.DEBUG&&h.apply(null,arguments)}function v(t,e,n){var a=b(t,e,n);return a?a[t][n]:null}function b(t,e,n){for(;e;){if(n in e[t])return e;if(e.isolated)return null;e=e.parent}}function y(t){return function(){return t}}function _(t){var e,n,a,r,i,o;for(e=t.split("."),(n=zo[e.length])||(n=x(e.length)),i=[],a=function(t,n){return t?"*":e[n]},r=n.length;r--;)o=n[r].map(a).join("."),i.hasOwnProperty(o)||(i.push(o),i[o]=!0);return i}function x(t){var e,n,a,r,i,o,s,p,u="";if(!zo[t]){for(a=[];u.length=i;i+=1){for(n=i.toString(2);n.lengtho;o++)p.push(r(n[o]));a[i]=p}zo[t]=a}return zo[t]}function w(t,e,n,a){var r=t[e];if(!r||!r.equalsOrStartsWith(a)&&r.equalsOrStartsWith(n))return t[e]=r?r.replace(n,a):a,!0}function k(t){var e=t.slice(2);return"i"===t[1]&&p(e)?+e:e}function S(t){return null==t?t:(Ko.hasOwnProperty(t)||(Ko[t]=new Qo(t)),Ko[t])}function E(t,e){function n(e,n){var a,r,o;return n.isRoot?o=[].concat(Object.keys(t.viewmodel.data),Object.keys(t.viewmodel.mappings),Object.keys(t.viewmodel.computations)):(a=t.viewmodel.wrapped[n.str],r=a?a.get():t.viewmodel.get(n),o=r?Object.keys(r):null),o&&o.forEach(function(t){"_ractive"===t&&i(r)||e.push(n.join(t))}),e}var a,r,o;for(a=e.str.split("."),o=[$o];r=a.shift();)"*"===r?o=o.reduce(n,[]):o[0]===$o?o[0]=S(r):o=o.map(C(r));return o}function C(t){return function(e){return e.join(t)}}function P(t){return t?t.replace(Wo,".$1"):""}function A(t,e,n){if("string"!=typeof e||!p(n))throw Error("Bad arguments");var a=void 0,r=void 0;if(/\*/.test(e))return r={},E(t,S(P(e))).forEach(function(e){var a=t.viewmodel.get(e);if(!p(a))throw Error(Xo);r[e.str]=a+n}),t.set(r);if(a=t.get(e),!p(a))throw Error(Xo);return t.set(e,+a+n)}function O(t,e){return Jo(this,t,void 0===e?1:+e)}function T(t){this.event=t,this.method="on"+t,this.deprecate=as[t]}function R(t,e){var n=t.indexOf(e);-1===n&&t.push(e)}function M(t,e){for(var n=0,a=t.length;a>n;n++)if(t[n]==e)return!0;return!1}function L(t,e){var n;if(!i(t)||!i(e))return!1;if(t.length!==e.length)return!1;for(n=t.length;n--;)if(t[n]!==e[n])return!1;return!0}function j(t){return"string"==typeof t?[t]:void 0===t?[]:t}function D(t){return t[t.length-1]}function N(t,e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}function F(t){for(var e=[],n=t.length;n--;)e[n]=t[n];return e}function I(t){setTimeout(t,0)}function B(t,e){return function(){for(var n;n=t.shift();)n(e)}}function U(t,e,n,a){var r;if(e===t)throw new TypeError("A promise's fulfillment handler cannot return the same promise");if(e instanceof rs)e.then(n,a);else if(!e||"object"!=typeof e&&"function"!=typeof e)n(e);else{try{r=e.then}catch(i){return void a(i)}if("function"==typeof r){var o,s,p;s=function(e){o||(o=!0,U(t,e,n,a))},p=function(t){o||(o=!0,a(t))};try{r.call(e,s,p)}catch(i){if(!o)return a(i),void(o=!0)}}else n(e)}}function V(t,e,n){var a;return e=P(e),"~/"===e.substr(0,2)?(a=S(e.substring(2)),z(t,a.firstKey,n)):"."===e[0]?(a=q(cs(n),e),a&&z(t,a.firstKey,n)):a=G(t,S(e),n),a}function q(t,e){var n;if(void 0!=t&&"string"!=typeof t&&(t=t.str),"."===e)return S(t);if(n=t?t.split("."):[],"../"===e.substr(0,3)){for(;"../"===e.substr(0,3);){if(!n.length)throw Error('Could not resolve reference - too many "../" prefixes');n.pop(),e=e.substring(3)}return n.push(e),S(n.join("."))}return S(t?t+e.replace(/^\.\//,"."):e.replace(/^\.\/?/,""))}function G(t,e,n,a){var r,i,o,s,p;if(e.isRoot)return e;for(i=e.firstKey;n;)if(r=n.context,n=n.parent,r&&(s=!0,o=t.viewmodel.get(r),o&&("object"==typeof o||"function"==typeof o)&&i in o))return r.join(e.str);return W(t.viewmodel,i)?e:t.parent&&!t.isolated&&(s=!0,n=t.component.parentFragment,i=S(i),p=G(t.parent,i,n,!0))?(t.viewmodel.map(i,{origin:t.parent.viewmodel,keypath:p}),e):a||s?void 0:(t.viewmodel.set(e,void 0),e)}function z(t,e){var n;!t.parent||t.isolated||W(t.viewmodel,e)||(e=S(e),(n=G(t.parent,e,t.component.parentFragment,!0))&&t.viewmodel.map(e,{origin:t.parent.viewmodel,keypath:n}))}function W(t,e){return""===e||e in t.data||e in t.computations||e in t.mappings}function H(t){t.teardown()}function K(t){t.unbind()}function Q(t){t.unrender()}function Y(t){t.cancel()}function $(t){t.detach()}function J(t){t.detachNodes()}function X(t){!t.ready||t.outros.length||t.outroChildren||(t.outrosComplete||(t.parent?t.parent.decrementOutros(t):t.detachNodes(),t.outrosComplete=!0),t.intros.length||t.totalChildren||("function"==typeof t.callback&&t.callback(),t.parent&&t.parent.decrementTotal()))}function Z(){for(var t,e,n;fs.ractives.length;)e=fs.ractives.pop(),n=e.viewmodel.applyChanges(),n&&vs.fire(e,n);for(tt(),t=0;t=0;i--)r=t._subs[e[i]],r&&(s=vt(t,r,n,a)&&s);if(Gs.dequeue(t),t.parent&&s){if(o&&t.component){var p=t.component.name+"."+e[e.length-1];e=S(p).wildcardMatches(),n&&(n.component=t)}gt(t.parent,e,n,a)}}function vt(t,e,n,a){var r=null,i=!1;n&&!n._noArg&&(a=[n].concat(a)),e=e.slice();for(var o=0,s=e.length;s>o;o+=1)e[o].apply(t,a)===!1&&(i=!0);return n&&!n._noArg&&i&&(r=n.original)&&(r.preventDefault&&r.preventDefault(),r.stopPropagation&&r.stopPropagation()),!i}function bt(t){var e={args:Array.prototype.slice.call(arguments,1)};zs(this,t,e)}function yt(t){var e;return t=S(P(t)),e=this.viewmodel.get(t,Ks),void 0===e&&this.parent&&!this.isolated&&ls(this,t.str,this.component.parentFragment)&&(e=this.viewmodel.get(t)),e}function _t(e,n){if(!this.fragment.rendered)throw Error("The API has changed - you must call `ractive.render(target[, anchor])` to render your Ractive instance. Once rendered you can use `ractive.insert()`.");if(e=t(e),n=t(n)||null,!e)throw Error("You must specify a valid target to insert into");e.insertBefore(this.detach(),n),this.el=e,(e.__ractive_instances__||(e.__ractive_instances__=[])).push(this),this.detached=null,xt(this)}function xt(t){Ys.fire(t),t.findAllComponents("*").forEach(function(t){xt(t.instance)})}function wt(t,e,n){var a,r;return t=S(P(t)),a=this.viewmodel.get(t),i(a)&&i(e)?(r=bs.start(this,!0),this.viewmodel.merge(t,a,e,n),bs.end(),r):this.set(t,e,n&&n.complete)}function kt(t,e){var n,a;return n=E(t,e),a={},n.forEach(function(e){a[e.str]=t.get(e.str)}),a}function St(t,e,n,a){var r,i,o;e=S(P(e)),a=a||cp,e.isPattern?(r=new pp(t,e,n,a),t.viewmodel.patternObservers.push(r),i=!0):r=new Zs(t,e,n,a),r.init(a.init),t.viewmodel.register(e,r,i?"patternObservers":"observers"),r.ready=!0;var s={cancel:function(){var n;o||(i?(n=t.viewmodel.patternObservers.indexOf(r),t.viewmodel.patternObservers.splice(n,1),t.viewmodel.unregister(e,r,"patternObservers")):t.viewmodel.unregister(e,r,"observers"),o=!0)}};return t._observers.push(s),s}function Et(t,e,n){var a,r,i,o;if(u(t)){n=e,r=t,a=[];for(t in r)r.hasOwnProperty(t)&&(e=r[t],a.push(this.observe(t,e,n)));return{cancel:function(){for(;a.length;)a.pop().cancel()}}}if("function"==typeof t)return n=e,e=t,t="",up(this,t,e,n);if(i=t.split(" "),1===i.length)return up(this,t,e,n);for(a=[],o=i.length;o--;)t=i[o],t&&a.push(up(this,t,e,n));return{cancel:function(){for(;a.length;)a.pop().cancel()}}}function Ct(t,e,n){var a=this.observe(t,function(){e.apply(this,arguments),a.cancel()},{init:!1,defer:n&&n.defer});return a}function Pt(t,e){var n,a=this;if(t)n=t.split(" ").map(fp).filter(hp),n.forEach(function(t){var n,r;(n=a._subs[t])&&(e?(r=n.indexOf(e),-1!==r&&n.splice(r,1)):a._subs[t]=[])});else for(t in this._subs)delete this._subs[t];return this}function At(t,e){var n,a,r,i=this;if("object"==typeof t){n=[];for(a in t)t.hasOwnProperty(a)&&n.push(this.on(a,t[a]));return{cancel:function(){for(var t;t=n.pop();)t.cancel()}}}return r=t.split(" ").map(fp).filter(hp),r.forEach(function(t){(i._subs[t]||(i._subs[t]=[])).push(e)}),{cancel:function(){return i.off(t,e)}}}function Ot(t,e){var n=this.on(t,function(){e.apply(this,arguments),n.cancel()});return n}function Tt(t,e,n){var a,r,i,o,s,p,u=[];if(a=Rt(t,e,n),!a)return null;for(r=t.length,s=a.length-2-a[1],i=Math.min(r,a[0]),o=i+a[1],p=0;i>p;p+=1)u.push(p);for(;o>p;p+=1)u.push(-1);for(;r>p;p+=1)u.push(p+s);return 0!==s?u.touchedFrom=a[0]:u.touchedFrom=t.length,u}function Rt(t,e,n){switch(e){case"splice":for(void 0!==n[0]&&n[0]<0&&(n[0]=t.length+Math.max(n[0],-t.length));n.length<2;)n.push(0);return n[1]=Math.min(n[1],t.length-n[0]),n;case"sort":case"reverse":return null;case"pop":return t.length?[t.length-1,1]:[0,0];case"push":return[t.length,0].concat(n);case"shift":return[0,t.length?1:0];case"unshift":return[0,0].concat(n)}}function Mt(e,n){var a,r,i,o=this;if(i=this.transitionsEnabled,this.noIntro&&(this.transitionsEnabled=!1),a=bs.start(this,!0),bs.scheduleTask(function(){return Rp.fire(o)},!0),this.fragment.rendered)throw Error("You cannot call ractive.render() on an already rendered instance! Call ractive.unrender() first");if(e=t(e)||this.el,n=t(n)||this.anchor,this.el=e,this.anchor=n,!this.append&&e){var s=e.__ractive_instances__;s&&s.length&&Lt(s),e.innerHTML=""}return this.cssId&&Op.apply(),e&&((r=e.__ractive_instances__)?r.push(this):e.__ractive_instances__=[this],n?e.insertBefore(this.fragment.render(),n):e.appendChild(this.fragment.render())),bs.end(),this.transitionsEnabled=i,a.then(function(){return Mp.fire(o)})}function Lt(t){t.splice(0,t.length).forEach(H)}function jt(t,e){for(var n=t.slice(),a=e.length;a--;)~n.indexOf(e[a])||n.push(e[a]);return n}function Dt(t,e){var n,a,r;return a='[data-ractive-css~="{'+e+'}"]',r=function(t){var e,n,r,i,o,s,p,u=[];for(e=[];n=Ip.exec(t);)e.push({str:n[0],base:n[1],modifiers:n[2]});for(i=e.map(Ft),p=e.length;p--;)s=i.slice(),r=e[p],s[p]=r.base+a+r.modifiers||"",o=i.slice(),o[p]=a+" "+o[p],u.push(s.join(" "),o.join(" "));return u.join(", ")},n=Up.test(t)?t.replace(Up,a):t.replace(Fp,"").replace(Np,function(t,e){var n,a;return Bp.test(e)?t:(n=e.split(",").map(Nt),a=n.map(r).join(", ")+" ",t.replace(e,a))})}function Nt(t){return t.trim?t.trim():t.replace(/^\s+/,"").replace(/\s+$/,"")}function Ft(t){return t.str}function It(t){t&&t.constructor!==Object&&("function"==typeof t||("object"!=typeof t?l("data option must be an object or a function, `"+t+"` is not valid"):m("If supplied, options.data should be a plain JavaScript object - using a non-POJO as the root object may work, but is discouraged")))}function Bt(t,e){It(e);var n="function"==typeof t,a="function"==typeof e;return e||n||(e={}),n||a?function(){var r=a?Ut(e,this):e,i=n?Ut(t,this):t;return Vt(r,i)}:Vt(e,t)}function Ut(t,e){var n=t.call(e);if(n)return"object"!=typeof n&&l("Data function must return an object"),n.constructor!==Object&&g("Data function returned something other than a plain JavaScript object. This might work, but is strongly discouraged"),n}function Vt(t,e){if(t&&e){for(var n in e)n in t||(t[n]=e[n]);return t}return t||e}function qt(t){var e=So(Qp);return e.parse=function(e,n){return Gt(e,n||t)},e}function Gt(t,e){if(!Hp)throw Error("Missing Ractive.parse - cannot parse template. Either preparse or use the version that includes the parser");return Hp(t,e||this.options)}function zt(t,e){var n;if(!Xi){if(e&&e.noThrow)return;throw Error("Cannot retrieve template #"+t+" as Ractive is not running in a browser.")}if(Wt(t)&&(t=t.substring(1)),!(n=document.getElementById(t))){if(e&&e.noThrow)return;throw Error("Could not find template element with id #"+t)}if("SCRIPT"!==n.tagName.toUpperCase()){if(e&&e.noThrow)return;throw Error("Template element with id #"+t+", must be a