From 3f89a00415a7753c093d8274f6776d77d3844aaa Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 9 Jan 2020 17:59:34 +1100 Subject: [PATCH 01/35] Adds IPC plushie and toast, toast is made via IPC plushie. --- code/game/objects/items/toys.dm | 13 ++++++++++++ .../food_and_drinks/food/foods/bread.dm | 19 ++++++++++++++++++ icons/obj/food/food.dmi | Bin 97979 -> 98385 bytes icons/obj/toy.dmi | Bin 77735 -> 78263 bytes 4 files changed, 32 insertions(+) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 0ad64e24f23..66f5ebbf874 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1085,6 +1085,19 @@ obj/item/toy/cards/deck/syndicate/black return ..() +/obj/item/toy/plushie/ipcplushie + name = "ipc plushie" + desc = "An adorable ipc plushie, straight from New Canaan. Arguably more durable than the real deal. Toaster functionality included." + icon_state = "plushie_ipc" + item_state = "plushie_ipc" + +/obj/item/toy/plushie/ipcplushie/attackby(obj/item/B, mob/user, params) + if(istype(B, /obj/item/reagent_containers/food/snacks/breadslice)) + new /obj/item/reagent_containers/food/snacks/toast(get_turf(loc)) + to_chat(user, " You insert bread into the toaster. ") + playsound(loc, 'sound/machines/ding.ogg', 50, 1) + qdel(B) + //New generation TG plushies /obj/item/toy/plushie/lizardplushie diff --git a/code/modules/food_and_drinks/food/foods/bread.dm b/code/modules/food_and_drinks/food/foods/bread.dm index d888a532c01..e26a45ca88b 100644 --- a/code/modules/food_and_drinks/food/foods/bread.dm +++ b/code/modules/food_and_drinks/food/foods/bread.dm @@ -166,6 +166,23 @@ list_reagents = list("nutriment" = 2, "vitamin" = 2) tastes = list("bread" = 2) +/obj/item/reagent_containers/food/snacks/toast + name = "Toast" + desc = "Yeah! Toast!" + icon_state = "toast" + filling_color = "#B2580E" + bitesize = 3 + list_reagents = list("nutriment" = 3) + tastes = list("toast" = 2) + + /*name = "Toast" + desc = "Yeah! Toast!" + icon_state = "toast" + filling_color = "#b2580e" + bitesize = 3 + list_reagents = list("nutriment" = 3) + tastes = list("toast" = 2)*/ + /obj/item/reagent_containers/food/snacks/jelliedtoast name = "Jellied Toast" desc = "A slice of bread covered with delicious jam." @@ -198,3 +215,5 @@ trash = /obj/item/trash/waffles filling_color = "#E6DEB5" list_reagents = list("nutriment" = 8, "vitamin" = 1) + + diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index aea237f5bed3be518b1bbceef927798252caaf94..fdd520c1b145359ebde99d91706c5f0f3975d49a 100644 GIT binary patch delta 7915 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 UWAN_<(9NTx@mRf9)h6oy08Lt!bpQYW diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 511b578ad4a29b89a1ae13de6c8aeda120ee1540..1ef7016307de59d80f1054b932a070b35c98960f 100644 GIT binary patch delta 18760 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 delta 18228 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 e6ciem{|EdI;1Li(u~^Rl0000 Date: Fri, 10 Jan 2020 13:44:46 +1100 Subject: [PATCH 02/35] made IPC capital, added return statement, and deleted usless taost comment. --- code/game/objects/items/toys.dm | 4 +++- code/modules/food_and_drinks/food/foods/bread.dm | 8 -------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 66f5ebbf874..e414eb3d53c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1086,7 +1086,7 @@ obj/item/toy/cards/deck/syndicate/black ..() /obj/item/toy/plushie/ipcplushie - name = "ipc plushie" + name = "IPC plushie" desc = "An adorable ipc plushie, straight from New Canaan. Arguably more durable than the real deal. Toaster functionality included." icon_state = "plushie_ipc" item_state = "plushie_ipc" @@ -1097,6 +1097,8 @@ obj/item/toy/cards/deck/syndicate/black to_chat(user, " You insert bread into the toaster. ") playsound(loc, 'sound/machines/ding.ogg', 50, 1) qdel(B) + else + return ..() //New generation TG plushies diff --git a/code/modules/food_and_drinks/food/foods/bread.dm b/code/modules/food_and_drinks/food/foods/bread.dm index e26a45ca88b..55255658233 100644 --- a/code/modules/food_and_drinks/food/foods/bread.dm +++ b/code/modules/food_and_drinks/food/foods/bread.dm @@ -174,14 +174,6 @@ bitesize = 3 list_reagents = list("nutriment" = 3) tastes = list("toast" = 2) - - /*name = "Toast" - desc = "Yeah! Toast!" - icon_state = "toast" - filling_color = "#b2580e" - bitesize = 3 - list_reagents = list("nutriment" = 3) - tastes = list("toast" = 2)*/ /obj/item/reagent_containers/food/snacks/jelliedtoast name = "Jellied Toast" From e2d046ee6f8483d029b8ef406cf6464e8ef09e4a Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 8 Mar 2020 11:48:11 -0500 Subject: [PATCH 03/35] code refactor/cleanup --- .../game/objects/structures/tank_dispenser.dm | 99 +++++++++++-------- 1 file changed, 56 insertions(+), 43 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 854bc18ce00..4d9f82abbbd 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -5,28 +5,40 @@ icon_state = "dispenser" density = 1 anchored = 1.0 - var/oxygentanks = 10 - var/plasmatanks = 10 - var/list/oxytanks = list() //sorry for the similar var names - var/list/platanks = list() + var/starting_oxygen_tanks = 10 // The starting amount of oxygen tanks the dispenser gets when it's spawned + var/starting_plasma_tanks = 10 // Starting amount of plasma tanks + var/list/stored_oxygen_tanks = list() // List of currently stored oxygen tanks + var/list/stored_plasma_tanks = list() // And plasma tanks /obj/structure/dispenser/oxygen - plasmatanks = 0 + starting_plasma_tanks = 0 /obj/structure/dispenser/plasma - oxygentanks = 0 + starting_oxygen_tanks = 0 /obj/structure/dispenser/New() ..() + initialize_tanks() update_icon() +/obj/structure/dispenser/proc/initialize_tanks() + for(var/I in 1 to starting_plasma_tanks) + var/obj/item/tank/plasma/P = new(src) + stored_plasma_tanks.Add(P) + + for(var/I in 1 to starting_oxygen_tanks) + var/obj/item/tank/oxygen/O = new(src) + stored_oxygen_tanks.Add(O) + /obj/structure/dispenser/update_icon() overlays.Cut() - switch(oxygentanks) - if(1 to 3) overlays += "oxygen-[oxygentanks]" + var/oxy_tank_amount = stored_oxygen_tanks.len + switch(oxy_tank_amount) + if(1 to 3) overlays += "oxygen-[oxy_tank_amount]" if(4 to INFINITY) overlays += "oxygen-4" - switch(plasmatanks) - if(1 to 4) overlays += "plasma-[plasmatanks]" + var/pla_tank_amount = stored_plasma_tanks.len + switch(pla_tank_amount) + if(1 to 4) overlays += "plasma-[pla_tank_amount]" if(5 to INFINITY) overlays += "plasma-5" /obj/structure/dispenser/attack_hand(mob/user) @@ -38,7 +50,7 @@ /obj/structure/dispenser/attack_ghost(mob/user) ui_interact(user) -/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = GLOB.default_state) +/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) user.set_machine(src) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) @@ -47,17 +59,16 @@ /obj/structure/dispenser/ui_data(user) var/list/data = list() - data["o_tanks"] = oxygentanks - data["p_tanks"] = plasmatanks + data["o_tanks"] = stored_oxygen_tanks.len + data["p_tanks"] = stored_plasma_tanks.len return data /obj/structure/dispenser/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/tank/oxygen) || istype(I, /obj/item/tank/air) || istype(I, /obj/item/tank/anesthetic)) - if(oxygentanks < 10) + if(stored_oxygen_tanks.len < 10) user.drop_item() I.forceMove(src) - oxytanks.Add(I) - oxygentanks++ + stored_oxygen_tanks.Add(I) update_icon() to_chat(user, "You put [I] in [src].") else @@ -65,11 +76,10 @@ SSnanoui.update_uis(src) return if(istype(I, /obj/item/tank/plasma)) - if(plasmatanks < 10) + if(stored_plasma_tanks.len < 10) user.drop_item() I.forceMove(src) - platanks.Add(I) - plasmatanks++ + stored_plasma_tanks.Add(I) update_icon() to_chat(user, "You put [I] in [src].") else @@ -88,40 +98,43 @@ /obj/structure/dispenser/Topic(href, href_list) if(..()) - return 1 + return TRUE if(Adjacent(usr)) usr.set_machine(src) + + // The oxygen tank button if(href_list["oxygen"]) - if(oxygentanks > 0) - var/obj/item/tank/oxygen/O - if(oxytanks.len == oxygentanks) - O = oxytanks[1] - oxytanks.Remove(O) - else - O = new /obj/item/tank/oxygen(loc) - O.loc = loc - to_chat(usr, "You take [O] out of [src].") - oxygentanks-- - update_icon() + if(!stored_oxygen_tanks.len) // No more tanks in the machine + return + + var/obj/item/tank/O = stored_oxygen_tanks[1] // Get the first tank in the list + stored_oxygen_tanks.Remove(O) // remove it from the list since we are ejecting the tank + + if(!usr.put_in_hands(O)) // Try to place it in the user's hands first + O.forceMove(loc) // If hands are full, place it at the location of the tank dispenser + to_chat(usr, "You take [O] out of [src].") + update_icon() + + // The plasma tank button if(href_list["plasma"]) - if(plasmatanks > 0) - var/obj/item/tank/plasma/P - if(platanks.len == plasmatanks) - P = platanks[1] - platanks.Remove(P) - else - P = new /obj/item/tank/plasma(loc) - P.loc = loc - to_chat(usr, "You take [P] out of [src].") - plasmatanks-- - update_icon() + if(!stored_plasma_tanks.len) + return + + var/obj/item/tank/P = stored_plasma_tanks[1] + stored_plasma_tanks.Remove(P) + + if(!usr.put_in_hands(P)) + P.forceMove(loc) + to_chat(usr, "You take [P] out of [src].") + update_icon() + add_fingerprint(usr) updateUsrDialog() SSnanoui.update_uis(src) else SSnanoui.close_user_uis(usr,src) - return 1 + return TRUE /obj/structure/tank_dispenser/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) From 3db924a2026a78a0c8fe025c98dbf0e4d663f95c Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 8 Mar 2020 12:02:13 -0500 Subject: [PATCH 04/35] fucking map variables, compiler doesn't catch them --- _maps/map_files/RandomZLevels/evil_santa.dmm | 2 +- _maps/map_files/RandomZLevels/moonoutpost19.dmm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/RandomZLevels/evil_santa.dmm b/_maps/map_files/RandomZLevels/evil_santa.dmm index ff5d4df54b9..0a92eaa1b29 100644 --- a/_maps/map_files/RandomZLevels/evil_santa.dmm +++ b/_maps/map_files/RandomZLevels/evil_santa.dmm @@ -650,7 +650,7 @@ /area/awaymission/challenge/start) "bT" = ( /obj/structure/dispenser/oxygen{ - oxygentanks = 9 + starting_oxygen_tanks = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, diff --git a/_maps/map_files/RandomZLevels/moonoutpost19.dmm b/_maps/map_files/RandomZLevels/moonoutpost19.dmm index affcac8c979..26ff48b4d88 100644 --- a/_maps/map_files/RandomZLevels/moonoutpost19.dmm +++ b/_maps/map_files/RandomZLevels/moonoutpost19.dmm @@ -2432,7 +2432,7 @@ }) "dy" = ( /obj/structure/dispenser/oxygen{ - oxygentanks = 9 + starting_oxygen_tanks = 9 }, /obj/machinery/light/small{ active_power_usage = 0; From 9c4274690cfd613d86b39d73fa1fd58e65f0f603 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 14 Mar 2020 15:15:42 -0500 Subject: [PATCH 05/35] review changes --- .../game/objects/structures/tank_dispenser.dm | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 4d9f82abbbd..35557cd0274 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -21,6 +21,17 @@ initialize_tanks() update_icon() +/obj/structure/dispenser/Destroy() + ..() + remove_all_tanks() + +/obj/structure/dispenser/proc/remove_all_tanks() + for(var/P in stored_plasma_tanks) + qdel(P) + + for(var/O in stored_oxygen_tanks) + qdel(O) + /obj/structure/dispenser/proc/initialize_tanks() for(var/I in 1 to starting_plasma_tanks) var/obj/item/tank/plasma/P = new(src) @@ -34,12 +45,17 @@ overlays.Cut() var/oxy_tank_amount = stored_oxygen_tanks.len switch(oxy_tank_amount) - if(1 to 3) overlays += "oxygen-[oxy_tank_amount]" - if(4 to INFINITY) overlays += "oxygen-4" + if(1 to 3) + overlays += "oxygen-[oxy_tank_amount]" + if(4 to INFINITY) + overlays += "oxygen-4" + var/pla_tank_amount = stored_plasma_tanks.len switch(pla_tank_amount) - if(1 to 4) overlays += "plasma-[pla_tank_amount]" - if(5 to INFINITY) overlays += "plasma-5" + if(1 to 4) + overlays += "plasma-[pla_tank_amount]" + if(5 to INFINITY) + overlays += "plasma-5" /obj/structure/dispenser/attack_hand(mob/user) if(..()) From ffdace086df36b72da9ff4ddfd4d29c7c672d244 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 14 Mar 2020 23:02:32 -0500 Subject: [PATCH 06/35] QDEL_LIST --- code/game/objects/structures/tank_dispenser.dm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 35557cd0274..878e74eaf5d 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -23,14 +23,8 @@ /obj/structure/dispenser/Destroy() ..() - remove_all_tanks() - -/obj/structure/dispenser/proc/remove_all_tanks() - for(var/P in stored_plasma_tanks) - qdel(P) - - for(var/O in stored_oxygen_tanks) - qdel(O) + QDEL_LIST(stored_plasma_tanks) + QDEL_LIST(stored_oxygen_tanks) /obj/structure/dispenser/proc/initialize_tanks() for(var/I in 1 to starting_plasma_tanks) From 355eb2a26830dd4de85506363ec5135f3aeaaa90 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Fri, 24 Apr 2020 15:38:58 -0500 Subject: [PATCH 07/35] add some procs for duplicate code + antidrop check --- .../game/objects/structures/tank_dispenser.dm | 76 +++++++++---------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 878e74eaf5d..12dbb486a26 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -75,27 +75,13 @@ /obj/structure/dispenser/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/tank/oxygen) || istype(I, /obj/item/tank/air) || istype(I, /obj/item/tank/anesthetic)) - if(stored_oxygen_tanks.len < 10) - user.drop_item() - I.forceMove(src) - stored_oxygen_tanks.Add(I) - update_icon() - to_chat(user, "You put [I] in [src].") - else - to_chat(user, "[src] is full.") - SSnanoui.update_uis(src) + try_insert_tank(user, stored_oxygen_tanks, I) return + if(istype(I, /obj/item/tank/plasma)) - if(stored_plasma_tanks.len < 10) - user.drop_item() - I.forceMove(src) - stored_plasma_tanks.Add(I) - update_icon() - to_chat(user, "You put [I] in [src].") - else - to_chat(user, "[src] is full.") - SSnanoui.update_uis(src) + try_insert_tank(user, stored_plasma_tanks, I) return + if(istype(I, /obj/item/wrench)) if(anchored) to_chat(user, "You lean down and unwrench [src].") @@ -115,37 +101,49 @@ // The oxygen tank button if(href_list["oxygen"]) - if(!stored_oxygen_tanks.len) // No more tanks in the machine - return - - var/obj/item/tank/O = stored_oxygen_tanks[1] // Get the first tank in the list - stored_oxygen_tanks.Remove(O) // remove it from the list since we are ejecting the tank - - if(!usr.put_in_hands(O)) // Try to place it in the user's hands first - O.forceMove(loc) // If hands are full, place it at the location of the tank dispenser - to_chat(usr, "You take [O] out of [src].") - update_icon() + try_remove_tank(usr, stored_oxygen_tanks) // The plasma tank button if(href_list["plasma"]) - if(!stored_plasma_tanks.len) - return - - var/obj/item/tank/P = stored_plasma_tanks[1] - stored_plasma_tanks.Remove(P) - - if(!usr.put_in_hands(P)) - P.forceMove(loc) - to_chat(usr, "You take [P] out of [src].") - update_icon() + try_remove_tank(usr, stored_plasma_tanks) add_fingerprint(usr) updateUsrDialog() - SSnanoui.update_uis(src) + SSnanoui.try_update_ui(usr, src) else SSnanoui.close_user_uis(usr,src) return TRUE +/// Called when the user clicks on the oxygen or plasma tank UI buttons, and tries to withdraw a tank. +/obj/structure/dispenser/proc/try_remove_tank(mob/living/user, list/tank_list) + if(!tank_list.len) + return // There are no tanks left to withdraw. + + var/obj/item/tank/T = tank_list[1] + tank_list.Remove(T) + + if(!user.put_in_hands(T)) + T.forceMove(loc) // If the user's hands are full, place it on the tile of the dispenser. + + to_chat(user, "You take [T] out of [src].") + update_icon() + +/// Called when the user clicks on the dispenser with a tank. Tries to insert the tank into the dispenser, and updates the UI if successful. +/obj/structure/dispenser/proc/try_insert_tank(mob/living/user, list/tank_list, obj/item/tank/T) + if(!tank_list.len >= 10) + to_chat(user, "[src] is full.") + return + + if(!user.drop_item()) // Antidrop check + to_chat(user, "[T] is stuck to your hand!") + return + + T.forceMove(src) + tank_list.Add(T) + update_icon() + to_chat(user, "You put [T] in [src].") + SSnanoui.try_update_ui(user, src) + /obj/structure/tank_dispenser/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) for(var/X in src) From 4ef41cbb6ce711aee6e2ee0528be541ea13a9ca8 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 26 Apr 2020 03:19:31 -0500 Subject: [PATCH 08/35] define and LAZYLEN --- .../game/objects/structures/tank_dispenser.dm | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 12dbb486a26..f430f94ab87 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -1,3 +1,5 @@ +#define MAX_TANK_STORAGE 10 + /obj/structure/dispenser name = "tank storage unit" desc = "A simple yet bulky storage device for gas tanks. Has room for up to ten oxygen tanks, and ten plasma tanks." @@ -5,8 +7,8 @@ icon_state = "dispenser" density = 1 anchored = 1.0 - var/starting_oxygen_tanks = 10 // The starting amount of oxygen tanks the dispenser gets when it's spawned - var/starting_plasma_tanks = 10 // Starting amount of plasma tanks + var/starting_oxygen_tanks = MAX_TANK_STORAGE // The starting amount of oxygen tanks the dispenser gets when it's spawned + var/starting_plasma_tanks = MAX_TANK_STORAGE // Starting amount of plasma tanks var/list/stored_oxygen_tanks = list() // List of currently stored oxygen tanks var/list/stored_plasma_tanks = list() // And plasma tanks @@ -37,14 +39,14 @@ /obj/structure/dispenser/update_icon() overlays.Cut() - var/oxy_tank_amount = stored_oxygen_tanks.len + var/oxy_tank_amount = LAZYLEN(stored_oxygen_tanks) switch(oxy_tank_amount) if(1 to 3) overlays += "oxygen-[oxy_tank_amount]" if(4 to INFINITY) overlays += "oxygen-4" - var/pla_tank_amount = stored_plasma_tanks.len + var/pla_tank_amount = LAZYLEN(stored_plasma_tanks) switch(pla_tank_amount) if(1 to 4) overlays += "plasma-[pla_tank_amount]" @@ -69,8 +71,8 @@ /obj/structure/dispenser/ui_data(user) var/list/data = list() - data["o_tanks"] = stored_oxygen_tanks.len - data["p_tanks"] = stored_plasma_tanks.len + data["o_tanks"] = LAZYLEN(stored_oxygen_tanks) + data["p_tanks"] = LAZYLEN(stored_plasma_tanks) return data /obj/structure/dispenser/attackby(obj/item/I, mob/user, params) @@ -116,7 +118,7 @@ /// Called when the user clicks on the oxygen or plasma tank UI buttons, and tries to withdraw a tank. /obj/structure/dispenser/proc/try_remove_tank(mob/living/user, list/tank_list) - if(!tank_list.len) + if(!LAZYLEN(tank_list)) return // There are no tanks left to withdraw. var/obj/item/tank/T = tank_list[1] @@ -130,7 +132,7 @@ /// Called when the user clicks on the dispenser with a tank. Tries to insert the tank into the dispenser, and updates the UI if successful. /obj/structure/dispenser/proc/try_insert_tank(mob/living/user, list/tank_list, obj/item/tank/T) - if(!tank_list.len >= 10) + if(LAZYLEN(tank_list) >= MAX_TANK_STORAGE) to_chat(user, "[src] is full.") return @@ -151,3 +153,5 @@ I.forceMove(loc) new /obj/item/stack/sheet/metal(loc, 2) qdel(src) + +#undef MAX_TANK_STORAGE From cf93b2315805e078b4749220ce788531765bed5b Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Mon, 27 Apr 2020 12:23:48 -0500 Subject: [PATCH 09/35] rebase and remove some var from proc args --- code/game/objects/structures/tank_dispenser.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index f430f94ab87..9fc69686953 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -62,7 +62,7 @@ /obj/structure/dispenser/attack_ghost(mob/user) ui_interact(user) -/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) +/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, master_ui = null, datum/topic_state/state = GLOB.default_state) user.set_machine(src) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) From 18551d633a93ee4c335306cfd9b9c8ac32800a21 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 16 May 2020 17:37:45 -0500 Subject: [PATCH 10/35] cut_overlays and return ..() --- code/game/objects/structures/tank_dispenser.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 9fc69686953..692d15d79ec 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -24,9 +24,9 @@ update_icon() /obj/structure/dispenser/Destroy() - ..() QDEL_LIST(stored_plasma_tanks) QDEL_LIST(stored_oxygen_tanks) + return ..() /obj/structure/dispenser/proc/initialize_tanks() for(var/I in 1 to starting_plasma_tanks) @@ -38,7 +38,7 @@ stored_oxygen_tanks.Add(O) /obj/structure/dispenser/update_icon() - overlays.Cut() + cut_overlays() var/oxy_tank_amount = LAZYLEN(stored_oxygen_tanks) switch(oxy_tank_amount) if(1 to 3) From 8e2b69f5dbb79802e4a4d34ab7a2c2ff07dec9d7 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sat, 6 Jun 2020 09:55:00 +0200 Subject: [PATCH 11/35] Fixes the steal objective from runtiming --- code/game/gamemodes/objective.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index bedc3c4809b..0da5d8a3a0a 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -399,6 +399,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) if(!steal_target) return 1 // Free Objective + if(!owner.current) + return FALSE + var/list/all_items = owner.current.GetAllContents() for(var/obj/I in all_items) From 7088de6bab9f49a3a779c5eb71bafe01801909bb Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 6 Jun 2020 15:21:13 -0500 Subject: [PATCH 12/35] slippery component --- code/__DEFINES/inventory.dm | 3 -- code/datums/components/slippery.dm | 54 +++++++++++++++++++ code/game/atoms_movable.dm | 10 ++++ code/game/objects/items.dm | 19 ------- .../items/weapons/grenades/clowngrenade.dm | 34 ++++-------- code/game/objects/items/weapons/soap.dm | 10 ++-- code/modules/hydroponics/grown.dm | 10 ++-- code/modules/hydroponics/grown/banana.dm | 14 +++-- code/modules/hydroponics/growninedible.dm | 10 ++-- code/modules/hydroponics/plant_genes.dm | 6 +-- code/modules/mob/living/carbon/carbon.dm | 19 ++++--- code/modules/pda/pdas.dm | 9 ++-- paradise.dme | 1 + 13 files changed, 110 insertions(+), 89 deletions(-) create mode 100644 code/datums/components/slippery.dm diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index cec707b8196..23ac017f1ec 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -5,6 +5,3 @@ #define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in an inventory, ex: Defibrillator, Backpack, Space Suits #define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons #define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - -#define TV_TRIP "trip" -#define TV_SLIP "slip" diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm new file mode 100644 index 00000000000..0ea8e313378 --- /dev/null +++ b/code/datums/components/slippery.dm @@ -0,0 +1,54 @@ +/** + This is a component that can be applied to any movable atom (mob or obj). + + While the atom has this component, any carbon mob that walks over it will slip. + Duration, tiles moved, and so on, depend on what variables are passed in when the component is added. +*/ +/datum/component/slippery + /// Text that gets displayed in the slip proc, i.e. "user slips on [description]" + var/description + /// The amount of stun to apply after slip. + var/stun + /// The amount of weaken to apply after slip. + var/weaken + /// The chance that walking over the parent will slip you. + var/slip_chance + /// The amount of tiles someone will be moved after slip. + var/slip_tiles + /// TRUE If this slip can be avoided by walking. + var/walking_is_safe + /// TRUE if having no slip shoes makes you immune to this slip. + var/noslip_is_immune + /// The verb that players will see when someone slips on the parent. In the form of "You [slip_verb]ped on". + var/slip_verb + +/datum/component/slippery/Initialize(_description, _stun = 0, _weaken = 0, _slip_chance = 100, _slip_tiles = 0, \ + _walking_is_safe = TRUE, _noslip_is_immune = TRUE, _slip_verb = "slip") + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + description = _description + stun = max(0, _stun) + weaken = max(0, _weaken) + slip_chance = max(0, _slip_chance) + slip_tiles = max(0, _slip_tiles) + walking_is_safe = _walking_is_safe + noslip_is_immune = _noslip_is_immune + slip_verb = _slip_verb + +/datum/component/slippery/RegisterWithParent() + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), .proc/Slip) + +/datum/component/slippery/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED)) + +/** + Called whenever the parent recieves either the `MOVABLE_CROSSED` signal or the `ATOM_ENTERED` signal. + + Calls the `victim`'s `slip()` proc with the component's variables as arguments. + Additionally calls the parent's `after_slip()` proc on the `victim`. +*/ +/datum/component/slippery/proc/Slip(datum/source, mob/living/carbon/human/victim) + if(istype(victim) && prob(slip_chance) && victim.slip(description, stun, weaken, slip_tiles, walking_is_safe, noslip_is_immune, slip_verb)) + var/atom/movable/owner = parent + owner.after_slip(victim) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index ac77d3d4553..dff58d485f5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -330,6 +330,16 @@ SSspacedrift.processing[src] = src return 1 +/** + Base proc, intended to be overriden. + + This should only be called from one place: inside the slippery component. + Called after a human mob slips on this atom. + + If you want the person who slipped to have something special done to them, put it here. +*/ +/atom/movable/proc/after_slip(mob/living/carbon/human/H) + return //called when src is thrown into hit_atom /atom/movable/proc/throw_impact(atom/hit_atom, throwingdatum) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fba55ba0557..ab6ebe6a0fe 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -98,15 +98,6 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc. var/sprite_sheets_obj = null //Used to override hardcoded clothing inventory object dmis in human clothing proc. - var/trip_verb = TV_TRIP - var/trip_chance = 0 - - var/trip_stun = 0 - var/trip_weaken = 0 - var/trip_any = FALSE - var/trip_walksafe = TRUE - var/trip_tiles = 0 - //Tooltip vars var/in_inventory = FALSE //is this item equipped into an inventory slot or hand of a mob? var/tip_timer = 0 @@ -606,16 +597,6 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect /obj/item/proc/is_equivalent(obj/item/I) return I == src -/obj/item/Crossed(atom/movable/AM, oldloc) - . = ..() - if(prob(trip_chance) && ishuman(AM)) - var/mob/living/carbon/human/H = AM - on_trip(H) - -/obj/item/proc/on_trip(mob/living/carbon/human/H) - if(H.slip(src, trip_stun, trip_weaken, trip_tiles, trip_walksafe, trip_any, trip_verb)) - return TRUE - /obj/item/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) return diff --git a/code/game/objects/items/weapons/grenades/clowngrenade.dm b/code/game/objects/items/weapons/grenades/clowngrenade.dm index cfb2e1cad3d..1dcf250dfe4 100644 --- a/code/game/objects/items/weapons/grenades/clowngrenade.dm +++ b/code/game/objects/items/weapons/grenades/clowngrenade.dm @@ -13,22 +13,12 @@ /obj/item/grenade/clown_grenade/prime() ..() playsound(src.loc, 'sound/items/bikehorn.ogg', 25, -3) - /* - for(var/turf/simulated/floor/T in view(affected_area, src.loc)) - if(prob(75)) - banana(T) - */ var/i = 0 var/number = 0 for(var/direction in GLOB.alldirs) for(i = 0; i < 2; i++) number++ var/obj/item/grown/bananapeel/traitorpeel/peel = new /obj/item/grown/bananapeel/traitorpeel(get_turf(src.loc)) - /* var/direction = pick(alldirs) - var/spaces = pick(1;150, 2) - var/a = 0 - for(a = 0; a < spaces; a++) - step(peel,direction)*/ var/a = 1 if(number & 2) for(a = 1; a <= 2; a++) @@ -39,21 +29,17 @@ qdel(src) return -/obj/item/grown/bananapeel/traitorpeel - trip_stun = 0 - trip_weaken = 7 - trip_tiles = 4 - trip_walksafe = FALSE - - trip_chance = 100 - - -/obj/item/grown/bananapeel/traitorpeel/on_trip(mob/living/carbon/human/H) +/obj/item/grown/bananapeel/traitorpeel/New(newloc, obj/item/seeds/new_seed) . = ..() - if(.) - to_chat(H, "Your feet feel like they're on fire!") - H.take_overall_damage(0, rand(2,8)) - H.take_organ_damage(2) // Was 5 -- TLE + // The reason this AddComponent is here and not in ComponentInitialize() is because if it's put there, it will be ran before the parent New proc for /grown types. + // And then be overriden by the generic component placed onto it by the `/datum/plant_gene/trait/slip`. + AddComponent(/datum/component/slippery, src, 0, 7, 100, 4, FALSE) + +/obj/item/grown/bananapeel/traitorpeel/after_slip(mob/living/carbon/human/H) + to_chat(H, "Your feet feel like they're on fire!") + H.take_overall_damage(0, rand(2,8)) + H.take_organ_damage(2) + return ..() /obj/item/grown/bananapeel/traitorpeel/throw_impact(atom/hit_atom) var/burned = rand(1,3) diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index 62f65b5a6cc..cb220ff9565 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -11,15 +11,11 @@ throw_speed = 4 throw_range = 20 discrete = 1 - - trip_stun = 4 - trip_weaken = 2 - trip_chance = 100 - trip_walksafe = FALSE - trip_verb = TV_SLIP - var/cleanspeed = 50 //slower than mop +/obj/item/soap/ComponentInitialize() + AddComponent(/datum/component/slippery, src, 4, 2, 100, 0, FALSE) + /obj/item/soap/afterattack(atom/target, mob/user, proximity) if(!proximity) return //I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing. diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index d86f6f8f4c5..f4a6a18e417 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -160,11 +160,11 @@ T.on_cross(src, AM) ..() -/obj/item/reagent_containers/food/snacks/grown/on_trip(mob/living/carbon/human/H) - . = ..() - if(. && seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_slip(src, H) +/obj/item/reagent_containers/food/snacks/grown/after_slip(mob/living/carbon/human/H) + if(!seed) + return + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_slip(src, H) // Glow gene procs /obj/item/reagent_containers/food/snacks/grown/generate_trash(atom/location) diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index dc78ff71335..0552f78ee92 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -118,12 +118,10 @@ /obj/item/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes name = "synthesized banana peel" desc = "A synthetic banana peel." - trip_stun = 2 - trip_weaken = 2 - trip_chance = 100 - trip_walksafe = FALSE - trip_verb = TV_SLIP -/obj/item/grown/bananapeel/specialpeel/on_trip(mob/living/carbon/human/H) - if(..()) - qdel(src) +/obj/item/grown/bananapeel/specialpeel/ComponentInitialize() + AddComponent(/datum/component/slippery, src, 2, 2, 100, 0, FALSE) + +/obj/item/grown/bananapeel/specialpeel/after_slip(mob/living/carbon/human/H) + . = ..() + qdel(src) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 14a4b42ca5f..13263b4cc75 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -57,11 +57,11 @@ T.on_cross(src, AM) ..() -/obj/item/grown/on_trip(mob/living/carbon/human/H) - . = ..() - if(. && seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_slip(src, H) +/obj/item/grown/after_slip(mob/living/carbon/human/H) + if(!seed) + return + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_slip(src, H) /obj/item/grown/throw_impact(atom/hit_atom) if(!..()) //was it caught by a mob? diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index d20413d6331..19209a680ad 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -217,11 +217,7 @@ stun_len = min(stun_len, 7) // No fun allowed - G.trip_stun = stun_len - G.trip_weaken = stun_len - G.trip_chance = 100 - G.trip_verb = TV_SLIP - G.trip_walksafe = FALSE + G.AddComponent(/datum/component/slippery, G, stun_len, stun_len, 100, 0, FALSE) /datum/plant_gene/trait/cell_charge // Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten. diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 74c5a71c94b..4b6d6c68603 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -977,25 +977,30 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven /mob/living/carbon/proc/slip(description, stun, weaken, tilesSlipped, walkSafely, slipAny, slipVerb = "slip") if(flying || buckled || (walkSafely && m_intent == MOVE_INTENT_WALK)) - return 0 + return FALSE + if((lying) && (!(tilesSlipped))) - return 0 + return FALSE + if(!(slipAny)) if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src if(isobj(H.shoes) && H.shoes.flags & NOSLIP) - return 0 + return FALSE + if(tilesSlipped) - for(var/t = 0, t<=tilesSlipped, t++) - spawn (t) step(src, src.dir) + for(var/i in 1 to tilesSlipped) + spawn(i) + step(src, dir) + stop_pulling() to_chat(src, "You [slipVerb]ped on [description]!") - playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3) + playsound(loc, 'sound/misc/slip.ogg', 50, 1, -3) // Something something don't run with scissors moving_diagonally = 0 //If this was part of diagonal move slipping will stop it. Stun(stun) Weaken(weaken) - return 1 + return TRUE /mob/living/carbon/proc/can_eat(flags = 255) return 1 diff --git a/code/modules/pda/pdas.dm b/code/modules/pda/pdas.dm index 0e5c58f968a..f6f02e3457f 100644 --- a/code/modules/pda/pdas.dm +++ b/code/modules/pda/pdas.dm @@ -38,11 +38,8 @@ desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings." ttone = "honk" - trip_stun = 8 - trip_weaken = 5 - trip_chance = 100 - trip_walksafe = TRUE - trip_verb = TV_SLIP +/obj/item/pda/clown/ComponentInitialize() + AddComponent(/datum/component/slippery, src, 8, 5, 100) /obj/item/pda/mime default_cartridge = /obj/item/cartridge/mime @@ -191,7 +188,7 @@ var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger) if(M) M.m_hidden = 1 - + //Some spare PDAs in a box /obj/item/storage/box/PDAs name = "spare PDAs" diff --git a/paradise.dme b/paradise.dme index c3dcfbd3c2d..a9165f49a76 100644 --- a/paradise.dme +++ b/paradise.dme @@ -300,6 +300,7 @@ #include "code\datums\components\label.dm" #include "code\datums\components\material_container.dm" #include "code\datums\components\paintable.dm" +#include "code\datums\components\slippery.dm" #include "code\datums\components\spawner.dm" #include "code\datums\components\squeak.dm" #include "code\datums\components\waddling.dm" From b0264e9f6e1f166bb74d3360df72e77b6644d270 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 6 Jun 2020 16:08:24 -0500 Subject: [PATCH 13/35] autodoc stuff --- code/datums/components/slippery.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 0ea8e313378..baa93513f0a 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -1,9 +1,12 @@ /** - This is a component that can be applied to any movable atom (mob or obj). - - While the atom has this component, any carbon mob that walks over it will slip. - Duration, tiles moved, and so on, depend on what variables are passed in when the component is added. -*/ + * # Slip Component + * + * This is a component that can be applied to any movable atom (mob or obj). + * + * While the atom has this component, any human mob that walks over it will have a chance to slip. + * Duration, tiles moved, and so on, depend on what variables are passed in when the component is added. + * + */ /datum/component/slippery /// Text that gets displayed in the slip proc, i.e. "user slips on [description]" var/description From 44e3713c6f35159c2562677fd498af93d3c01d5c Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Mon, 8 Jun 2020 01:39:33 -0500 Subject: [PATCH 14/35] repair droid fix --- code/game/mecha/equipment/tools/other_tools.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 43937ab1111..61ba683ad18 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -206,6 +206,7 @@ /obj/item/mecha_parts/mecha_equipment/repair_droid/detach() chassis.overlays -= droid_overlay STOP_PROCESSING(SSobj, src) + return ..() /obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info() if(!chassis) return From 01a5723f8c3b8d01af29406de592517f06260eaf Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Mon, 8 Jun 2020 21:57:07 -0400 Subject: [PATCH 15/35] [s] Fixes Ghost Exploit (#13580) --- code/modules/shuttle/supply.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index e1aa537f8a8..50cf7ff7d28 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -102,7 +102,10 @@ var/pointsEarned for(var/atom/movable/MA in areaInstance) - if(MA.anchored) continue + if(MA.anchored) + continue + if(istype(MA, /mob/dead)) + continue SSshuttle.sold_atoms += " [MA.name]" // Must be in a crate (or a critter crate)! From 2c08ce843f458426d44a0205ab8386fbedfd4281 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Mon, 8 Jun 2020 22:33:29 -0500 Subject: [PATCH 16/35] personal locker fix --- .../structures/crates_lockers/closets/secure/personal.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index df7e1384ed9..7eab5858772 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -55,7 +55,7 @@ new /obj/item/radio/headset( src ) /obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params) - if(!istype(W, /obj/item/card/id)) + if(opened || !istype(W, /obj/item/card/id)) return ..() if(broken) From 1b09dd7972ed077c5861f2be5075dbccdb7c6e1d Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Tue, 9 Jun 2020 12:47:05 -0400 Subject: [PATCH 17/35] Brigtimer runtime fix --- code/game/machinery/doors/brigdoors.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index fc758d446f9..8d842179db5 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -338,10 +338,9 @@ F.flash() if(href_list["release"]) - var/obj/machinery/door_timer/T = locate(href_list["release"]) if(timing) - T.timer_end() - T.Radio.autosay("Timer stopped manually from cell control.", T.name, "Security", list(z)) + timer_end() + Radio.autosay("Timer stopped manually from cell control.", name, "Security", list(z)) ui_interact(usr) if(href_list["prisoner_name"]) From bcc45f03b70665c410a53b87cb41363f0d6eae4f Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Tue, 9 Jun 2020 15:31:10 -0400 Subject: [PATCH 18/35] Cuts down on Pointless Status Effect Processing (#13582) --- code/datums/status_effects/status_effect.dm | 5 +++-- code/modules/mining/equipment/kinetic_crusher.dm | 4 ++++ .../mob/living/simple_animal/hostile/megafauna/megafauna.dm | 1 - .../mob/living/simple_animal/hostile/mining/mining.dm | 4 ---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 74abf104465..2580b1c9935 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -5,7 +5,7 @@ /datum/status_effect var/id = "effect" //Used for screen alerts. var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. - var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. + var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. Setting this to -1 will stop processing if duration is also unlimited. var/mob/living/owner //The mob affected by the status effect. var/status_type = STATUS_EFFECT_UNIQUE //How many of the effect can be on one mob, and what happens when you try to add another var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted @@ -31,7 +31,8 @@ var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to linked_alert = A //so we can reference the alert, if we need to - START_PROCESSING(SSfastprocess, src) + if(duration > 0 || initial(tick_interval) > 0) //don't process if we don't care + START_PROCESSING(SSfastprocess, src) return TRUE /datum/status_effect/Destroy() diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index f21978db625..4af48e7050a 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -65,6 +65,8 @@ user.drop_l_hand() return var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + if(!C) + C = target.apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = target.health ..() for(var/t in trophies) @@ -101,6 +103,8 @@ if(!CM || CM.hammer_synced != src || !L.remove_status_effect(STATUS_EFFECT_CRUSHERMARK)) return var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + if(!C) + C = L.apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = L.health for(var/t in trophies) var/obj/item/crusher_trophy/T = t diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 4ce66ccd1d5..eed05d55e91 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -43,7 +43,6 @@ . = ..() if(internal_type && true_spawn) internal = new internal_type(src) - apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) for(var/action_type in attack_action_types) var/datum/action/innate/megafauna_attack/attack_action = new action_type() attack_action.Grant(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mining/mining.dm b/code/modules/mob/living/simple_animal/hostile/mining/mining.dm index 7c7200e8588..a888fa7ee9a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/mining.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/mining.dm @@ -23,10 +23,6 @@ var/icon_aggro = null var/crusher_drop_mod = 25 -/mob/living/simple_animal/hostile/asteroid/Initialize(mapload) - . = ..() - apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) - /mob/living/simple_animal/hostile/asteroid/Aggro() ..() if(vision_range != aggro_vision_range) From 6bf7df8131428c6606abe0392017408d2fb39518 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Tue, 9 Jun 2020 16:56:29 -0500 Subject: [PATCH 19/35] review tweaks --- code/datums/components/slippery.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index baa93513f0a..3e505eb0a8a 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -25,9 +25,8 @@ /// The verb that players will see when someone slips on the parent. In the form of "You [slip_verb]ped on". var/slip_verb -/datum/component/slippery/Initialize(_description, _stun = 0, _weaken = 0, _slip_chance = 100, _slip_tiles = 0, \ - _walking_is_safe = TRUE, _noslip_is_immune = TRUE, _slip_verb = "slip") - if(!ismovable(parent)) +/datum/component/slippery/Initialize(_description, _stun = 0, _weaken = 0, _slip_chance = 100, _slip_tiles = 0, _walking_is_safe = TRUE, _noslip_is_immune = TRUE, _slip_verb = "slip") + if(!isatom(parent)) return COMPONENT_INCOMPATIBLE description = _description From a3be213089dbba66c18bf3167df787aaea391106 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Tue, 9 Jun 2020 21:13:12 -0500 Subject: [PATCH 20/35] after_slip /atom level --- code/game/atoms.dm | 11 +++++++++++ code/game/atoms_movable.dm | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 365e06aca4b..abd224e409b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -395,6 +395,17 @@ /atom/proc/get_spooked() return +/** + Base proc, intended to be overriden. + + This should only be called from one place: inside the slippery component. + Called after a human mob slips on this atom. + + If you want the person who slipped to have something special done to them, put it here. +*/ +/atom/proc/after_slip(mob/living/carbon/human/H) + return + /atom/proc/add_hiddenprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index dff58d485f5..70926d7ba2b 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -330,17 +330,6 @@ SSspacedrift.processing[src] = src return 1 -/** - Base proc, intended to be overriden. - - This should only be called from one place: inside the slippery component. - Called after a human mob slips on this atom. - - If you want the person who slipped to have something special done to them, put it here. -*/ -/atom/movable/proc/after_slip(mob/living/carbon/human/H) - return - //called when src is thrown into hit_atom /atom/movable/proc/throw_impact(atom/hit_atom, throwingdatum) set waitfor = 0 From 29ff5543b61b3599f234a38e77c5ef7307cc1737 Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Wed, 10 Jun 2020 11:53:41 +0100 Subject: [PATCH 21/35] Updates nano dependencies --- nano/assets/libraries.min.js | 4 +- nano/assets/nano.js | 4 +- nano/assets/nanoui.css | 4 +- nano/package-lock.json | 691 +++++++++++++++++++++++------------ nano/package.json | 13 +- 5 files changed, 470 insertions(+), 246 deletions(-) diff --git a/nano/assets/libraries.min.js b/nano/assets/libraries.min.js index d0c1ef9a46f..7dff02479a9 100644 --- a/nano/assets/libraries.min.js +++ b/nano/assets/libraries.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(d,e){function t(e,t){return t.toUpperCase()}var f=[],c=f.slice,g=f.concat,a=f.push,r=f.indexOf,n={},i=n.toString,m=n.hasOwnProperty,v={},o="1.11.3",C=function(e,t){return new C.fn.init(e,t)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,l=/^-ms-/,u=/-([\da-z])/gi;function p(e){var t="length"in e&&e.length,n=C.type(e);return"function"!==n&&!C.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&i|56320)}function i(){v()}var e,d,x,o,r,g,p,m,w,u,c,v,T,s,y,b,a,h,C,_="sizzle"+1*new Date,E=n.document,S=0,N=0,l=oe(),D=oe(),k=oe(),j=function(e,t){return e===t&&(c=!0),0},A={}.hasOwnProperty,t=[],P=t.pop,H=t.push,M=t.push,L=t.slice,O=function(e,t){for(var n=0,i=e.length;n+~]|"+F+")"+F+"*"),Y=new RegExp("="+F+"*([^\\]'\"]*?)"+F+"*\\]","g"),Q=new RegExp($),J=new RegExp("^"+q+"$"),V={ID:new RegExp("^#("+W+")"),CLASS:new RegExp("^\\.("+W+")"),TAG:new RegExp("^("+W.replace("w","w*")+")"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,ee=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,te=/[+~]/,ne=/'|\\/g,ie=new RegExp("\\\\([\\da-f]{1,6}"+F+"?|("+F+")|.)","ig");try{M.apply(t=L.call(E.childNodes),E.childNodes),t[E.childNodes.length].nodeType}catch(e){M={apply:t.length?function(e,t){H.apply(e,L.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}function re(e,t,n,i){var r,o,s,a,l,u,c,f,p,h;if((t?t.ownerDocument||t:E)!==T&&v(t),n=n||[],a=(t=t||T).nodeType,"string"!=typeof e||!e||1!==a&&9!==a&&11!==a)return n;if(!i&&y){if(11!==a&&(r=ee.exec(e)))if(s=r[1]){if(9===a){if(!(o=t.getElementById(s))||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&C(t,o)&&o.id===s)return n.push(o),n}else{if(r[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=r[3])&&d.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(d.qsa&&(!b||!b.test(e))){if(f=c=_,p=t,h=1!==a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(u=g(e),(c=t.getAttribute("id"))?f=c.replace(ne,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",l=u.length;l--;)u[l]=f+ge(u[l]);p=te.test(e)&&he(t.parentNode)||t,h=u.join(",")}if(h)try{return M.apply(n,p.querySelectorAll(h)),n}catch(e){}finally{c||t.removeAttribute("id")}}}return m(e.replace(z,"$1"),t,n,i)}function oe(){var i=[];return function e(t,n){return i.push(t+" ")>x.cacheLength&&delete e[i.shift()],e[t+" "]=n}}function se(e){return e[_]=!0,e}function ae(e){var t=T.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){for(var n=e.split("|"),i=e.length;i--;)x.attrHandle[n[i]]=t}function ue(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ce(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function fe(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function pe(s){return se(function(o){return o=+o,se(function(e,t){for(var n,i=s([],e.length,o),r=i.length;r--;)e[n=i[r]]&&(e[n]=!(t[n]=e[n]))})})}function he(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=re.support={},r=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},v=re.setDocument=function(e){var t,n,l=e?e.ownerDocument||e:E;return l!==T&&9===l.nodeType&&l.documentElement?(s=(T=l).documentElement,(n=l.defaultView)&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",i,!1):n.attachEvent&&n.attachEvent("onunload",i)),y=!r(l),d.attributes=ae(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ae(function(e){return e.appendChild(l.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=Z.test(l.getElementsByClassName),d.getById=ae(function(e){return s.appendChild(e).id=_,!l.getElementsByName||!l.getElementsByName(_).length}),d.getById?(x.find.ID=function(e,t){if(void 0!==t.getElementById&&y){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},x.filter.ID=function(e){var t=e.replace(ie,f);return function(e){return e.getAttribute("id")===t}}):(delete x.find.ID,x.filter.ID=function(e){var n=e.replace(ie,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}}),x.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[r++];)1===n.nodeType&&i.push(n);return i},x.find.CLASS=d.getElementsByClassName&&function(e,t){if(y)return t.getElementsByClassName(e)},a=[],b=[],(d.qsa=Z.test(l.querySelectorAll))&&(ae(function(e){s.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&b.push("[*^$]="+F+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||b.push("\\["+F+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+_+"-]").length||b.push("~="),e.querySelectorAll(":checked").length||b.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||b.push(".#.+[+~]")}),ae(function(e){var t=l.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&b.push("name"+F+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||b.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),b.push(",.*:")})),(d.matchesSelector=Z.test(h=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ae(function(e){d.disconnectedMatch=h.call(e,"div"),h.call(e,"[s!='']:x"),a.push("!=",$)}),b=b.length&&new RegExp(b.join("|")),a=a.length&&new RegExp(a.join("|")),t=Z.test(s.compareDocumentPosition),C=t||Z.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument===E&&C(E,e)?-1:t===l||t.ownerDocument===E&&C(E,t)?1:u?O(u,e)-O(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!r||!o)return e===l?-1:t===l?1:r?-1:o?1:u?O(u,e)-O(u,t):0;if(r===o)return ue(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[i]===a[i];)i++;return i?ue(s[i],a[i]):s[i]===E?-1:a[i]===E?1:0},l):T},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&v(e),t=t.replace(Y,"='$1']"),d.matchesSelector&&y&&(!a||!a.test(t))&&(!b||!b.test(t)))try{var n=h.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ie,f),e[3]=(e[3]||e[4]||e[5]||"").replace(ie,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Q.test(n)&&(t=g(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ie,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=l[e+" "];return t||(t=new RegExp("(^|"+F+")"+e+"("+F+"|$)"))&&l(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,i,r){return function(e){var t=re.attr(e,n);return null==t?"!="===i:!i||(t+="","="===i?t===r:"!="===i?t!==r:"^="===i?r&&0===t.indexOf(r):"*="===i?r&&-1(?:<\/\1>|)$/,x=/^.[^:#\[\.,]*$/;function w(e,n,i){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==i});if(n.nodeType)return C.grep(e,function(e){return e===n!==i});if("string"==typeof n){if(x.test(n))return C.filter(n,e,i);n=C.filter(n,e)}return C.grep(e,function(e){return 0<=C.inArray(e,n)!==i})}C.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?C.find.matchesSelector(i,e)?[i]:[]:C.find.matches(e,C.grep(t,function(e){return 1===e.nodeType}))},C.fn.extend({find:function(e){var t,n=[],i=this,r=i.length;if("string"!=typeof e)return this.pushStack(C(e).filter(function(){for(t=0;t)[^>]*|#([\w-]*))$/;(C.fn.init=function(e,t){var n,i;if(!e)return this;if("string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?void 0!==T.ready?T.ready(e):e(C):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:E.exec(e))||!n[1]&&t)return!t||t.jquery?(t||T).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:_,!0)),b.test(n[1])&&C.isPlainObject(t))for(n in t)C.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if((i=_.getElementById(n[2]))&&i.parentNode){if(i.id!==n[2])return T.find(e);this.length=1,this[0]=i}return this.context=_,this.selector=e,this}).prototype=C.fn,T=C(_);var S=/^(?:parents|prev(?:Until|All))/,N={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.extend({dir:function(e,t,n){for(var i=[],r=e[t];r&&9!==r.nodeType&&(void 0===n||1!==r.nodeType||!C(r).is(n));)1===r.nodeType&&i.push(r),r=r[t];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),C.fn.extend({has:function(e){var t,n=C(e,this),i=n.length;return this.filter(function(){for(t=0;t
a",v.leadingWhitespace=3===t.firstChild.nodeType,v.tbody=!t.getElementsByTagName("tbody").length,v.htmlSerialize=!!t.getElementsByTagName("link").length,v.html5Clone="<:nav>"!==_.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),v.appendChecked=e.checked,t.innerHTML="",v.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="",v.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,v.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){v.noCloneEvent=!1}),t.cloneNode(!0).click()),null==v.deleteExpando){v.deleteExpando=!0;try{delete t.test}catch(e){v.deleteExpando=!1}}}(),function(){var e,t,n=_.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(v[e+"Bubbles"]=t in d)||(n.setAttribute(t,"t"),v[e+"Bubbles"]=!1===n.attributes[t].expando);n=null}();var Y=/^(?:input|select|textarea)$/i,Q=/^key/,J=/^(?:mouse|pointer|contextmenu)|click/,V=/^(?:focusinfocus|focusoutblur)$/,G=/^([^.]*)(?:\.(.+)|)$/;function K(){return!0}function Z(){return!1}function ee(){try{return _.activeElement}catch(e){}}function te(e){var t=ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}C.event={global:{},add:function(e,t,n,i,r){var o,s,a,l,u,c,f,p,h,d,g,m=C._data(e);if(m){for(n.handler&&(n=(l=n).handler,r=l.selector),n.guid||(n.guid=C.guid++),(s=m.events)||(s=m.events={}),(c=m.handle)||((c=m.handle=function(e){return typeof C===L||e&&C.event.triggered===e.type?void 0:C.event.dispatch.apply(c.elem,arguments)}).elem=e),a=(t=(t||"").match(j)||[""]).length;a--;)h=g=(o=G.exec(t[a])||[])[1],d=(o[2]||"").split(".").sort(),h&&(u=C.event.special[h]||{},h=(r?u.delegateType:u.bindType)||h,u=C.event.special[h]||{},f=C.extend({type:h,origType:g,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&C.expr.match.needsContext.test(r),namespace:d.join(".")},l),(p=s[h])||((p=s[h]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,i,d,c)||(e.addEventListener?e.addEventListener(h,c,!1):e.attachEvent&&e.attachEvent("on"+h,c))),u.add&&(u.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,f):p.push(f),C.event.global[h]=!0);e=null}},remove:function(e,t,n,i,r){var o,s,a,l,u,c,f,p,h,d,g,m=C.hasData(e)&&C._data(e);if(m&&(c=m.events)){for(u=(t=(t||"").match(j)||[""]).length;u--;)if(h=g=(a=G.exec(t[u])||[])[1],d=(a[2]||"").split(".").sort(),h){for(f=C.event.special[h]||{},p=c[h=(i?f.delegateType:f.bindType)||h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=p.length;o--;)s=p[o],!r&&g!==s.origType||n&&n.guid!==s.guid||a&&!a.test(s.namespace)||i&&i!==s.selector&&("**"!==i||!s.selector)||(p.splice(o,1),s.selector&&p.delegateCount--,f.remove&&f.remove.call(e,s));l&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,d,m.handle)||C.removeEvent(e,h,m.handle),delete c[h])}else for(h in c)C.event.remove(e,h+t[u],n,i,!0);C.isEmptyObject(c)&&(delete m.handle,C._removeData(e,"events"))}},trigger:function(e,t,n,i){var r,o,s,a,l,u,c,f=[n||_],p=m.call(e,"type")?e.type:e,h=m.call(e,"namespace")?e.namespace.split("."):[];if(s=u=n=n||_,3!==n.nodeType&&8!==n.nodeType&&!V.test(p+C.event.triggered)&&(0<=p.indexOf(".")&&(p=(h=p.split(".")).shift(),h.sort()),o=p.indexOf(":")<0&&"on"+p,(e=e[C.expando]?e:new C.Event(p,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),l=C.event.special[p]||{},i||!l.trigger||!1!==l.trigger.apply(n,t))){if(!i&&!l.noBubble&&!C.isWindow(n)){for(a=l.delegateType||p,V.test(a+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),u=s;u===(n.ownerDocument||_)&&f.push(u.defaultView||u.parentWindow||d)}for(c=0;(s=f[c++])&&!e.isPropagationStopped();)e.type=1]","i"),oe=/^\s+/,se=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ae=/<([\w:]+)/,le=/\s*$/g,ge={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:v.htmlSerialize?[0,"",""]:[1,"X
","
"]},me=te(_).appendChild(_.createElement("div"));function ve(e,t){var n,i,r=0,o=typeof e.getElementsByTagName!==L?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==L?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||C.nodeName(i,t)?o.push(i):C.merge(o,ve(i,t));return void 0===t||t&&C.nodeName(e,t)?C.merge([e],o):o}function ye(e){X.test(e.type)&&(e.defaultChecked=e.checked)}function be(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function xe(e){return e.type=(null!==C.find.attr(e,"type"))+"/"+e.type,e}function we(e){var t=he.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Te(e,t){for(var n,i=0;null!=(n=e[i]);i++)C._data(n,"globalEval",!t||C._data(t[i],"globalEval"))}function Ce(e,t){if(1===t.nodeType&&C.hasData(e)){var n,i,r,o=C._data(e),s=C._data(t,o),a=o.events;if(a)for(n in delete s.handle,s.events={},a)for(i=0,r=a[n].length;i")?o=e.cloneNode(!0):(me.innerHTML=e.outerHTML,me.removeChild(o=me.firstChild)),!(v.noCloneEvent&&v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(i=ve(o),a=ve(e),s=0;null!=(r=a[s]);++s)i[s]&&_e(r,i[s]);if(t)if(n)for(a=a||ve(e),i=i||ve(o),s=0;null!=(r=a[s]);s++)Ce(r,i[s]);else Ce(e,o);return 0<(i=ve(o,"script")).length&&Te(i,!l&&ve(e,"script")),i=a=r=null,o},buildFragment:function(e,t,n,i){for(var r,o,s,a,l,u,c,f=e.length,p=te(t),h=[],d=0;d")+c[2],r=c[0];r--;)a=a.lastChild;if(!v.leadingWhitespace&&oe.test(o)&&h.push(t.createTextNode(oe.exec(o)[0])),!v.tbody)for(r=(o="table"!==l||le.test(o)?""!==c[1]||le.test(o)?0:a:a.firstChild)&&o.childNodes.length;r--;)C.nodeName(u=o.childNodes[r],"tbody")&&!u.childNodes.length&&o.removeChild(u);for(C.merge(h,a.childNodes),a.textContent="";a.firstChild;)a.removeChild(a.firstChild);a=p.lastChild}else h.push(t.createTextNode(o));for(a&&p.removeChild(a),v.appendChecked||C.grep(ve(h,"input"),ye),d=0;o=h[d++];)if((!i||-1===C.inArray(o,i))&&(s=C.contains(o.ownerDocument,o),a=ve(p.appendChild(o),"script"),s&&Te(a),n))for(r=0;o=a[r++];)pe.test(o.type||"")&&n.push(o);return a=null,p},cleanData:function(e,t){for(var n,i,r,o,s=0,a=C.expando,l=C.cache,u=v.deleteExpando,c=C.event.special;null!=(n=e[s]);s++)if((t||C.acceptData(n))&&(o=(r=n[a])&&l[r])){if(o.events)for(i in o.events)c[i]?C.event.remove(n,i):C.removeEvent(n,i,o.handle);l[r]&&(delete l[r],u?delete n[a]:typeof n.removeAttribute!==L?n.removeAttribute(a):n[a]=null,f.push(r))}}}),C.fn.extend({text:function(e){return U(this,function(e){return void 0===e?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||_).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||be(this,e).appendChild(e)})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=be(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,i=e?C.filter(e,this):this,r=0;null!=(n=i[r]);r++)t||1!==n.nodeType||C.cleanData(ve(n)),n.parentNode&&(t&&C.contains(n.ownerDocument,n)&&Te(ve(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&C.cleanData(ve(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&C.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return U(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(ie,""):void 0;if("string"==typeof e&&!ce.test(e)&&(v.htmlSerialize||!re.test(e))&&(v.leadingWhitespace||!oe.test(e))&&!ge[(ae.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(se,"<$1>");try{for(;n")).appendTo(t.documentElement))[0].contentWindow||Ee[0].contentDocument).document).write(),t.close(),n=De(e,t),Ee.detach()),Ne[e]=n),n}v.shrinkWrapBlocks=function(){return null!=Se?Se:(Se=!1,(t=_.getElementsByTagName("body")[0])&&t.style?(e=_.createElement("div"),(n=_.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),typeof e.style.zoom!==L&&(e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",e.appendChild(_.createElement("div")).style.width="5px",Se=3!==e.offsetWidth),t.removeChild(n),Se):void 0);var e,t,n};var je,Ae,Pe,He,Me,Le,Oe,Ie,Fe,We=/^margin/,qe=new RegExp("^("+B+")(?!px)[a-z%]+$","i"),Re=/^(top|right|bottom|left)$/;function $e(t,n){return{get:function(){var e=t();if(null!=e){if(!e)return(this.get=n).apply(this,arguments);delete this.get}}}}function Be(){var e,t,n,i;(t=_.getElementsByTagName("body")[0])&&t.style&&(e=_.createElement("div"),(n=_.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),e.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",Le=Oe=!1,Fe=!0,d.getComputedStyle&&(Le="1%"!==(d.getComputedStyle(e,null)||{}).top,Oe="4px"===(d.getComputedStyle(e,null)||{width:"4px"}).width,(i=e.appendChild(_.createElement("div"))).style.cssText=e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",e.style.width="1px",Fe=!parseFloat((d.getComputedStyle(i,null)||{}).marginRight),e.removeChild(i)),e.innerHTML="
t
",(i=e.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(Ie=0===i[0].offsetHeight)&&(i[0].style.display="",i[1].style.display="none",Ie=0===i[0].offsetHeight),t.removeChild(n))}d.getComputedStyle?(je=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):d.getComputedStyle(e,null)},Ae=function(e,t,n){var i,r,o,s,a=e.style;return s=(n=n||je(e))?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==s||C.contains(e.ownerDocument,e)||(s=C.style(e,t)),qe.test(s)&&We.test(t)&&(i=a.width,r=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=i,a.minWidth=r,a.maxWidth=o)),void 0===s?s:s+""}):_.documentElement.currentStyle&&(je=function(e){return e.currentStyle},Ae=function(e,t,n){var i,r,o,s,a=e.style;return null==(s=(n=n||je(e))?n[t]:void 0)&&a&&a[t]&&(s=a[t]),qe.test(s)&&!Re.test(t)&&(i=a.left,(o=(r=e.runtimeStyle)&&r.left)&&(r.left=e.currentStyle.left),a.left="fontSize"===t?"1em":s,s=a.pixelLeft+"px",a.left=i,o&&(r.left=o)),void 0===s?s:s+""||"auto"}),(Pe=_.createElement("div")).innerHTML="
a",(He=(Me=Pe.getElementsByTagName("a")[0])&&Me.style)&&(He.cssText="float:left;opacity:.5",v.opacity="0.5"===He.opacity,v.cssFloat=!!He.cssFloat,Pe.style.backgroundClip="content-box",Pe.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===Pe.style.backgroundClip,v.boxSizing=""===He.boxSizing||""===He.MozBoxSizing||""===He.WebkitBoxSizing,C.extend(v,{reliableHiddenOffsets:function(){return null==Ie&&Be(),Ie},boxSizingReliable:function(){return null==Oe&&Be(),Oe},pixelPosition:function(){return null==Le&&Be(),Le},reliableMarginRight:function(){return null==Fe&&Be(),Fe}})),C.swap=function(e,t,n,i){var r,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in r=n.apply(e,i||[]),t)e.style[o]=s[o];return r};var ze=/alpha\([^)]*\)/i,Ue=/opacity\s*=\s*([^)]*)/,Xe=/^(none|table(?!-c[ea]).+)/,Ye=new RegExp("^("+B+")(.*)$","i"),Qe=new RegExp("^([+-])=("+B+")","i"),Je={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","O","Moz","ms"];function Ke(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),i=t,r=Ge.length;r--;)if((t=Ge[r]+n)in e)return t;return i}function Ze(e,t){for(var n,i,r,o=[],s=0,a=e.length;s
a",ut=at.getElementsByTagName("a")[0],ct=(lt=_.createElement("select")).appendChild(_.createElement("option")),st=at.getElementsByTagName("input")[0],ut.style.cssText="top:1px",v.getSetAttribute="t"!==at.className,v.style=/top/.test(ut.getAttribute("style")),v.hrefNormalized="/a"===ut.getAttribute("href"),v.checkOn=!!st.value,v.optSelected=ct.selected,v.enctype=!!_.createElement("form").enctype,lt.disabled=!0,v.optDisabled=!ct.disabled,(st=_.createElement("input")).setAttribute("value",""),v.input=""===st.getAttribute("value"),st.value="t",st.setAttribute("type","radio"),v.radioValue="t"===st.value;var xt=/\r/g;C.fn.extend({val:function(n){var i,e,r,t=this[0];return arguments.length?(r=C.isFunction(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=r?n.call(this,e,C(this).val()):n)?t="":"number"==typeof t?t+="":C.isArray(t)&&(t=C.map(t,function(e){return null==e?"":e+""})),(i=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in i&&void 0!==i.set(this,t,"value")||(this.value=t))})):t?(i=C.valHooks[t.type]||C.valHooks[t.nodeName.toLowerCase()])&&"get"in i&&void 0!==(e=i.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e))}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||r<0,s=o?null:[],a=o?r+1:i.length,l=r<0?a:o?r:0;l").append(C.parseHTML(e)).find(i):e)}).complete(n&&function(e,t){s.each(n,r||[e.responseText,t,e])}),this},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length};var cn=d.document.documentElement;function fn(e){return C.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}C.offset={setOffset:function(e,t,n){var i,r,o,s,a,l,u=C.css(e,"position"),c=C(e),f={};"static"===u&&(e.style.position="relative"),a=c.offset(),o=C.css(e,"top"),l=C.css(e,"left"),r=("absolute"===u||"fixed"===u)&&-1").outerWidth(1).jquery||D.each(["Width","Height"],function(e,n){var r="Width"===n?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),o={innerWidth:D.fn.innerWidth,innerHeight:D.fn.innerHeight,outerWidth:D.fn.outerWidth,outerHeight:D.fn.outerHeight};function s(e,t,n,i){return D.each(r,function(){t-=parseFloat(D.css(e,"padding"+this))||0,n&&(t-=parseFloat(D.css(e,"border"+this+"Width"))||0),i&&(t-=parseFloat(D.css(e,"margin"+this))||0)}),t}D.fn["inner"+n]=function(e){return void 0===e?o["inner"+n].call(this):this.each(function(){D(this).css(i,s(this,e)+"px")})},D.fn["outer"+n]=function(e,t){return"number"!=typeof e?o["outer"+n].call(this,e):this.each(function(){D(this).css(i,s(this,e,!0,t)+"px")})}}),D.fn.addBack||(D.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),D("").data("a-b","a").removeData("a-b").data("a-b")&&(D.fn.removeData=(t=D.fn.removeData,function(e){return arguments.length?t.call(this,D.camelCase(e)):t.call(this)})),D.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),D.fn.extend({focus:(i=D.fn.focus,function(t,n){return"number"==typeof t?this.each(function(){var e=this;setTimeout(function(){D(e).focus(),n&&n.call(e)},t)}):i.apply(this,arguments)}),disableSelection:(n="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.bind(n+".ui-disableSelection",function(e){e.preventDefault()})}),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var t,n,i=D(this[0]);i.length&&i[0]!==document;){if(("absolute"===(t=i.css("position"))||"relative"===t||"fixed"===t)&&(n=parseInt(i.css("zIndex"),10),!isNaN(n)&&0!==n))return n;i=i.parent()}return 0}}),D.ui.plugin={add:function(e,t,n){var i,r=D.ui[e].prototype;for(i in n)r.plugins[i]=r.plugins[i]||[],r.plugins[i].push([t,n[i]])},call:function(e,t,n,i){var r,o=e.plugins[t];if(o&&(i||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(r=0;r",options:{disabled:!1,create:null},_createWidget:function(e,t){t=D(t||this.defaultElement||this)[0],this.element=D(t),this.uuid=a++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=D(),this.hoverable=D(),this.focusable=D(),t!==this&&(D.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=D(t.style?t.ownerDocument:t.document||t),this.window=D(this.document[0].defaultView||this.document[0].parentWindow)),this.options=D.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:D.noop,_getCreateEventData:D.noop,_create:D.noop,_init:D.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(D.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:D.noop,widget:function(){return this.element},option:function(e,t){var n,i,r,o=e;if(0===arguments.length)return D.widget.extend({},this.options);if("string"==typeof e)if(o={},e=(n=e.split(".")).shift(),n.length){for(i=o[e]=D.widget.extend({},this.options[e]),r=0;r=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){D.ui=D.ui||{};var r,T,C=Math.max,_=Math.abs,E=Math.round,i=/left|center|right/,o=/top|center|bottom/,s=/[\+\-]\d+(\.[\d]+)?%?/,a=/^\w+/,l=/%$/,t=D.fn.position;function S(e,t,n){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?n/100:1)]}function N(e,t){return parseInt(D.css(e,t),10)||0}D.position={scrollbarWidth:function(){if(void 0!==r)return r;var e,t,n=D("
"),i=n.children()[0];return D("body").append(n),e=i.offsetWidth,n.css("overflow","scroll"),e===(t=i.offsetWidth)&&(t=n[0].clientWidth),n.remove(),r=e-t},getScrollInfo:function(e){var t=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),n=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),i="scroll"===t||"auto"===t&&e.widthC(_(i),_(r))?o.important="horizontal":o.important="vertical",f.using.call(this,e,o)}),s.offset(D.extend(u,{using:e}))})},D.ui.position={fit:{left:function(e,t){var n,i=t.within,r=i.isWindow?i.scrollLeft:i.offset.left,o=i.width,s=e.left-t.collisionPosition.marginLeft,a=r-s,l=s+t.collisionWidth-o-r;t.collisionWidth>o?0o?0").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var t=this.document[0];if(this.handleElement.is(e.target))try{t.activeElement&&"body"!==t.activeElement.nodeName.toLowerCase()&&D(t.activeElement).blur()}catch(e){}},_mouseStart:function(e){var t=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),D.ui.ddmanager&&(D.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0n[2]&&(l=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(u=n[3]+this.offset.click.top)),s.grid&&(r=s.grid[1]?this.originalPageY+Math.round((u-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,u=n?r-this.offset.click.top>=n[1]||r-this.offset.click.top>n[3]?r:r-this.offset.click.top>=n[1]?r-s.grid[1]:r+s.grid[1]:r,o=s.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,l=n?o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-s.grid[0]:o+s.grid[0]:o),"y"===s.axis&&(l=this.originalPageX),"x"===s.axis&&(u=this.originalPageY)),{top:u-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(e,t,n){return n=n||this._uiHash(),D.ui.plugin.call(this,e,[t,n,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),n.offset=this.positionAbs),D.Widget.prototype._trigger.call(this,e,t,n)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),D.ui.plugin.add("draggable","connectToSortable",{start:function(t,e,n){var i=D.extend({},e,{item:n.element});n.sortables=[],D(n.options.connectToSortable).each(function(){var e=D(this).sortable("instance");e&&!e.options.disabled&&(n.sortables.push(e),e.refreshPositions(),e._trigger("activate",t,i))})},stop:function(t,e,n){var i=D.extend({},e,{item:n.element});n.cancelHelperRemoval=!1,D.each(n.sortables,function(){var e=this;e.isOver?(e.isOver=0,n.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(n,i,r){D.each(r.sortables,function(){var e=!1,t=this;t.positionAbs=r.positionAbs,t.helperProportions=r.helperProportions,t.offset.click=r.offset.click,t._intersectsWith(t.containerCache)&&(e=!0,D.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==t&&this._intersectsWith(this.containerCache)&&D.contains(t.element[0],this.element[0])&&(e=!1),e})),e?(t.isOver||(t.isOver=1,r._parent=i.helper.parent(),t.currentItem=i.helper.appendTo(t.element).data("ui-sortable-item",!0),t.options._helper=t.options.helper,t.options.helper=function(){return i.helper[0]},n.target=t.currentItem[0],t._mouseCapture(n,!0),t._mouseStart(n,!0,!0),t.offset.click.top=r.offset.click.top,t.offset.click.left=r.offset.click.left,t.offset.parent.left-=r.offset.parent.left-t.offset.parent.left,t.offset.parent.top-=r.offset.parent.top-t.offset.parent.top,r._trigger("toSortable",n),r.dropped=t.element,D.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,t.fromOutside=r),t.currentItem&&(t._mouseDrag(n),i.position=t.position)):t.isOver&&(t.isOver=0,t.cancelHelperRemoval=!0,t.options._revert=t.options.revert,t.options.revert=!1,t._trigger("out",n,t._uiHash(t)),t._mouseStop(n,!0),t.options.revert=t.options._revert,t.options.helper=t.options._helper,t.placeholder&&t.placeholder.remove(),i.helper.appendTo(r._parent),r._refreshOffsets(n),i.position=r._generatePosition(n,!0),r._trigger("fromSortable",n),r.dropped=!1,D.each(r.sortables,function(){this.refreshPositions()}))})}}),D.ui.plugin.add("draggable","cursor",{start:function(e,t,n){var i=D("body"),r=n.options;i.css("cursor")&&(r._cursor=i.css("cursor")),i.css("cursor",r.cursor)},stop:function(e,t,n){var i=n.options;i._cursor&&D("body").css("cursor",i._cursor)}}),D.ui.plugin.add("draggable","opacity",{start:function(e,t,n){var i=D(t.helper),r=n.options;i.css("opacity")&&(r._opacity=i.css("opacity")),i.css("opacity",r.opacity)},stop:function(e,t,n){var i=n.options;i._opacity&&D(t.helper).css("opacity",i._opacity)}}),D.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(e,t,n){var i=n.options,r=!1,o=n.scrollParentNotHidden[0],s=n.document[0];o!==s&&"HTML"!==o.tagName?(i.axis&&"x"===i.axis||(n.overflowOffset.top+o.offsetHeight-e.pageY")[0],x=c.each,b.style.cssText="background-color:rgba(1,1,1,.5)",y.rgba=-1o.mod/2?i+=o.mod:i-r>o.mod/2&&(i-=o.mod)),u[n]=H((r-i)*s+i,t)))}),this[t](u)},blend:function(e){if(1===this._rgba[3])return this;var t=this._rgba.slice(),n=t.pop(),i=g(e)._rgba;return g(c.map(t,function(e,t){return(1-n)*i[t]+n*e}))},toRgbaString:function(){var e="rgba(",t=c.map(this._rgba,function(e,t){return null==e?2").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),t={width:n.width(),height:n.height()},r=document.activeElement;try{r.id}catch(e){r=document.body}return n.wrap(e),n[0]!==r&&!D.contains(n[0],r)||D(r).focus(),e=n.parent(),"static"===n.css("position")?(e.css({position:"relative"}),n.css({position:"relative"})):(D.extend(i,{position:n.css("position"),zIndex:n.css("z-index")}),D.each(["top","left","bottom","right"],function(e,t){i[t]=n.css(t),isNaN(parseInt(i[t],10))&&(i[t]="auto")}),n.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),n.css(t),e.css(i).show()},removeWrapper:function(e){var t=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),e[0]!==t&&!D.contains(e[0],t)||D(t).focus()),e},setTransition:function(i,e,r,o){return o=o||{},D.each(e,function(e,t){var n=i.cssUnit(t);0r&&0!==r||!1===i.call(e,o))&&jQuery.timer.remove(e,n,i)}a.timerID=i.timerID,s[n][i.timerID]||(s[n][i.timerID]=window.setInterval(a,t)),this.global.push(e)}},remove:function(e,t,n){var i,r=jQuery.data(e,this.dataKey);if(r){if(t){if(r[t]){if(n)n.timerID&&(window.clearInterval(r[t][n.timerID]),delete r[t][n.timerID]);else for(var n in r[t])window.clearInterval(r[t][n]),delete r[t][n];for(i in r[t])break;i||(i=null,delete r[t])}}else for(t in r)this.remove(e,t,n);for(i in r)break;i||jQuery.removeData(e,this.dataKey)}}}}),jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(e,t){jQuery.timer.remove(t)})}),function(){"use strict";var a={version:"1.0.1-nanoui",templateSettings:{evaluate:/\{\{([\s\S]+?)\}\}/g,interpolate:/\{\{:([\s\S]+?)\}\}/g,encode:/\{\{>([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,conditional:/\{\{\/?if\s*([\s\S]*?)\s*\}\}/g,conditionalElse:/\{\{else\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{\/?for\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,props:/\{\{\/?props\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,empty:/\{\{empty\}\}/g,varname:"data, config, helper",strip:!0,append:!0,selfcontained:!1},template:void 0,compile:void 0};function l(){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},e=/&(?!#?\w+;)|<|>|"|'|\//g;return function(){return this?this.replace(e,function(e){return t[e]||e}):this}}"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):function(){return this||(0,eval)("this")}().doT=a,String.prototype.encodeHTML=l();var u={append:{start:"'+(",end:")+'",endencode:"||'').toString().encodeHTML()+'"},split:{start:"';out+=(",end:");out+='",endencode:"||'').toString().encodeHTML();out+='"}},c=/$^/;function f(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}a.template=function(e,t,n){var i,r=(t=t||a.templateSettings).append?u.append:u.split,o=0,s=t.use||t.define?function i(r,e,o){return("string"==typeof e?e:e.toString()).replace(r.define||c,function(e,i,t,n){return 0===i.indexOf("def.")&&(i=i.substring(4)),i in o||(":"===t?(r.defineParams&&n.replace(r.defineParams,function(e,t,n){o[i]={arg:t,text:n}}),i in o||(o[i]=n)):new Function("def","def['"+i+"']="+n)(o)),""}).replace(r.use||c,function(e,t){r.useParams&&(t=t.replace(r.useParams,function(e,t,n,i){if(o[n]&&o[n].arg&&i){var r=(n+":"+i).replace(/'|\\/g,"_");return o.__exp=o.__exp||{},o.__exp[r]=o[n].text.replace(new RegExp("(^|[^\\w$])"+o[n].arg+"([^\\w$])","g"),"$1"+i+"$2"),t+"def.__exp['"+r+"']"}}));var n=new Function("def","return "+t)(o);return n?i(r,n,o):n})}(t,e,n||{}):e;s=("var out='"+(t.strip?s.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):s).replace(/'|\\/g,"\\$&").replace(t.interpolate||c,function(e,t){return r.start+f(t)+r.end}).replace(t.encode||c,function(e,t){return i=!0,r.start+f(t)+r.endencode}).replace(t.conditional||c,function(e,t){return t?"';if("+f(t)+"){out+='":"';}out+='"}).replace(t.conditionalElse||c,function(e,t){return t?"';}else if("+f(t)+"){out+='":"';}else{out+='"}).replace(t.iterate||c,function(e,t,n,i){if(!t)return"';} } out+='";o+=1,n=n||"value",i=i||"index",t=f(t);var r="arr"+o;return"';var "+r+"="+t+";if("+r+" && "+r+".length > 0){var "+n+","+i+"=-1,l"+o+"="+r+".length-1;while("+i+" 0){var "+n+";for( var "+i+" in "+r+"){ if (!"+r+".hasOwnProperty("+i+")) continue; "+n+"="+r+"["+i+"];out+='"}).replace(t.empty||c,function(e){return"';}}else{if(true){out+='"}).replace(t.evaluate||c,function(e,t){return"';"+f(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"").replace(/(\s|;|\}|^|\{)out\+=''\+/g,"$1out+="),i&&t.selfcontained&&(s="String.prototype.encodeHTML=("+l.toString()+"());"+s);try{return new Function(t.varname,s)}catch(e){throw"undefined"!=typeof console&&console.log("Could not create a template function: "+s),e}},a.compile=function(e,t){return a.template(e,null,t)}}(),function(e,t){"use strict";"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.returnExports=t()}(this,function(){function n(e){try{var t=S.call(e).replace(/\/\/.*\n/g,"").replace(/\/\*[.\s\S]*\*\//g,"").replace(/\n/gm," ").replace(/ {2}/g," ");return N.test(t)}catch(e){return!1}}function p(e){if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(E)return function(e){try{return!n(e)&&(S.call(e),!0)}catch(e){return!1}}(e);if(n(e))return!1;var t=_.call(e);return"[object Function]"===t||"[object GeneratorFunction]"===t}var h,d,l=Array,e=l.prototype,a=Object,t=a.prototype,u=Function,i=u.prototype,v=String,r=v.prototype,y=Number,o=y.prototype,c=e.slice,s=e.splice,g=e.push,f=e.unshift,m=e.concat,b=e.join,x=i.call,w=i.apply,T=Math.max,C=Math.min,_=t.toString,E="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,S=Function.prototype.toString,N=/^\s*class /,D=RegExp.prototype.exec;h=function(e){return"object"==typeof e&&(E?function(e){try{return D.call(e),!0}catch(e){return!1}}(e):"[object RegExp]"===_.call(e))};var k=String.prototype.valueOf;d=function(e){return"string"==typeof e||"object"==typeof e&&(E?function(e){try{return k.call(e),!0}catch(e){return!1}}(e):"[object String]"===_.call(e))};function j(e){var t=typeof e;return null===e||"object"!=t&&"function"!=t}function A(){}var P,H,M=a.defineProperty&&function(){try{var e={};for(var t in a.defineProperty(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),L=(P=t.hasOwnProperty,H=M?function(e,t,n,i){!i&&t in e||a.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:!0,value:n})}:function(e,t,n,i){!i&&t in e||(e[t]=n)},function(e,t,n){for(var i in t)P.call(t,i)&&H(e,i,t[i],n)}),O=y.isNaN||function(e){return e!=e},I=function(e){var t=+e;return O(t)?t=0:0!==t&&t!==1/0&&t!==-1/0&&(t=(0>>0};L(i,{bind:function(t){var n=this;if(!p(n))throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var i,r=c.call(arguments,1),e=T(0,n.length-r.length),o=[],s=0;s=r)throw new TypeError("reduce of empty array with no initial value")}for(;s>10|55296,1023&i|56320)}function i(){v()}var e,d,x,o,r,g,p,m,w,u,c,v,T,s,y,b,a,h,C,_="sizzle"+ +new Date,E=n.document,S=0,N=0,l=oe(),D=oe(),k=oe(),j=function(e,t){return e===t&&(c=!0),0},A={}.hasOwnProperty,t=[],P=t.pop,H=t.push,M=t.push,L=t.slice,O=function(e,t){for(var n=0,i=e.length;n+~]|"+F+")"+F+"*"),Y=new RegExp("="+F+"*([^\\]'\"]*?)"+F+"*\\]","g"),Q=new RegExp($),J=new RegExp("^"+q+"$"),V={ID:new RegExp("^#("+W+")"),CLASS:new RegExp("^\\.("+W+")"),TAG:new RegExp("^("+W.replace("w","w*")+")"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,ee=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,te=/[+~]/,ne=/'|\\/g,ie=new RegExp("\\\\([\\da-f]{1,6}"+F+"?|("+F+")|.)","ig");try{M.apply(t=L.call(E.childNodes),E.childNodes),t[E.childNodes.length].nodeType}catch(e){M={apply:t.length?function(e,t){H.apply(e,L.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}function re(e,t,n,i){var r,o,s,a,l,u,c,f,p,h;if((t?t.ownerDocument||t:E)!==T&&v(t),n=n||[],a=(t=t||T).nodeType,"string"!=typeof e||!e||1!==a&&9!==a&&11!==a)return n;if(!i&&y){if(11!==a&&(r=ee.exec(e)))if(s=r[1]){if(9===a){if(!(o=t.getElementById(s))||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&C(t,o)&&o.id===s)return n.push(o),n}else{if(r[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=r[3])&&d.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(d.qsa&&(!b||!b.test(e))){if(f=c=_,p=t,h=1!==a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(u=g(e),(c=t.getAttribute("id"))?f=c.replace(ne,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",l=u.length;l--;)u[l]=f+ge(u[l]);p=te.test(e)&&he(t.parentNode)||t,h=u.join(",")}if(h)try{return M.apply(n,p.querySelectorAll(h)),n}catch(e){}finally{c||t.removeAttribute("id")}}}return m(e.replace(z,"$1"),t,n,i)}function oe(){var i=[];return function e(t,n){return i.push(t+" ")>x.cacheLength&&delete e[i.shift()],e[t+" "]=n}}function se(e){return e[_]=!0,e}function ae(e){var t=T.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){for(var n=e.split("|"),i=e.length;i--;)x.attrHandle[n[i]]=t}function ue(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ce(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function fe(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function pe(s){return se(function(o){return o=+o,se(function(e,t){for(var n,i=s([],e.length,o),r=i.length;r--;)e[n=i[r]]&&(e[n]=!(t[n]=e[n]))})})}function he(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=re.support={},r=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},v=re.setDocument=function(e){var t,n,l=e?e.ownerDocument||e:E;return l!==T&&9===l.nodeType&&l.documentElement?(s=(T=l).documentElement,(n=l.defaultView)&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",i,!1):n.attachEvent&&n.attachEvent("onunload",i)),y=!r(l),d.attributes=ae(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ae(function(e){return e.appendChild(l.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=Z.test(l.getElementsByClassName),d.getById=ae(function(e){return s.appendChild(e).id=_,!l.getElementsByName||!l.getElementsByName(_).length}),d.getById?(x.find.ID=function(e,t){if(void 0!==t.getElementById&&y){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},x.filter.ID=function(e){var t=e.replace(ie,f);return function(e){return e.getAttribute("id")===t}}):(delete x.find.ID,x.filter.ID=function(e){var n=e.replace(ie,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}}),x.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[r++];)1===n.nodeType&&i.push(n);return i},x.find.CLASS=d.getElementsByClassName&&function(e,t){if(y)return t.getElementsByClassName(e)},a=[],b=[],(d.qsa=Z.test(l.querySelectorAll))&&(ae(function(e){s.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&b.push("[*^$]="+F+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||b.push("\\["+F+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+_+"-]").length||b.push("~="),e.querySelectorAll(":checked").length||b.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||b.push(".#.+[+~]")}),ae(function(e){var t=l.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&b.push("name"+F+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||b.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),b.push(",.*:")})),(d.matchesSelector=Z.test(h=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ae(function(e){d.disconnectedMatch=h.call(e,"div"),h.call(e,"[s!='']:x"),a.push("!=",$)}),b=b.length&&new RegExp(b.join("|")),a=a.length&&new RegExp(a.join("|")),t=Z.test(s.compareDocumentPosition),C=t||Z.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument===E&&C(E,e)?-1:t===l||t.ownerDocument===E&&C(E,t)?1:u?O(u,e)-O(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!r||!o)return e===l?-1:t===l?1:r?-1:o?1:u?O(u,e)-O(u,t):0;if(r===o)return ue(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[i]===a[i];)i++;return i?ue(s[i],a[i]):s[i]===E?-1:a[i]===E?1:0},l):T},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&v(e),t=t.replace(Y,"='$1']"),d.matchesSelector&&y&&(!a||!a.test(t))&&(!b||!b.test(t)))try{var n=h.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ie,f),e[3]=(e[3]||e[4]||e[5]||"").replace(ie,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Q.test(n)&&(t=g(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ie,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=l[e+" "];return t||(t=new RegExp("(^|"+F+")"+e+"("+F+"|$)"))&&l(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,i,r){return function(e){var t=re.attr(e,n);return null==t?"!="===i:!i||(t+="","="===i?t===r:"!="===i?t!==r:"^="===i?r&&0===t.indexOf(r):"*="===i?r&&-1(?:<\/\1>|)$/,x=/^.[^:#\[\.,]*$/;function w(e,n,i){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==i});if(n.nodeType)return C.grep(e,function(e){return e===n!==i});if("string"==typeof n){if(x.test(n))return C.filter(n,e,i);n=C.filter(n,e)}return C.grep(e,function(e){return 0<=C.inArray(e,n)!==i})}C.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?C.find.matchesSelector(i,e)?[i]:[]:C.find.matches(e,C.grep(t,function(e){return 1===e.nodeType}))},C.fn.extend({find:function(e){var t,n=[],i=this,r=i.length;if("string"!=typeof e)return this.pushStack(C(e).filter(function(){for(t=0;t)[^>]*|#([\w-]*))$/;(C.fn.init=function(e,t){var n,i;if(!e)return this;if("string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?void 0!==T.ready?T.ready(e):e(C):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:E.exec(e))||!n[1]&&t)return!t||t.jquery?(t||T).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:_,!0)),b.test(n[1])&&C.isPlainObject(t))for(n in t)C.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if((i=_.getElementById(n[2]))&&i.parentNode){if(i.id!==n[2])return T.find(e);this.length=1,this[0]=i}return this.context=_,this.selector=e,this}).prototype=C.fn,T=C(_);var S=/^(?:parents|prev(?:Until|All))/,N={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.extend({dir:function(e,t,n){for(var i=[],r=e[t];r&&9!==r.nodeType&&(void 0===n||1!==r.nodeType||!C(r).is(n));)1===r.nodeType&&i.push(r),r=r[t];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),C.fn.extend({has:function(e){var t,n=C(e,this),i=n.length;return this.filter(function(){for(t=0;t
a",v.leadingWhitespace=3===t.firstChild.nodeType,v.tbody=!t.getElementsByTagName("tbody").length,v.htmlSerialize=!!t.getElementsByTagName("link").length,v.html5Clone="<:nav>"!==_.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),v.appendChecked=e.checked,t.innerHTML="",v.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="",v.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,v.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){v.noCloneEvent=!1}),t.cloneNode(!0).click()),null==v.deleteExpando){v.deleteExpando=!0;try{delete t.test}catch(e){v.deleteExpando=!1}}}(),function(){var e,t,n=_.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(v[e+"Bubbles"]=t in d)||(n.setAttribute(t,"t"),v[e+"Bubbles"]=!1===n.attributes[t].expando);n=null}();var Y=/^(?:input|select|textarea)$/i,Q=/^key/,J=/^(?:mouse|pointer|contextmenu)|click/,V=/^(?:focusinfocus|focusoutblur)$/,G=/^([^.]*)(?:\.(.+)|)$/;function K(){return!0}function Z(){return!1}function ee(){try{return _.activeElement}catch(e){}}function te(e){var t=ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}C.event={global:{},add:function(e,t,n,i,r){var o,s,a,l,u,c,f,p,h,d,g,m=C._data(e);if(m){for(n.handler&&(n=(l=n).handler,r=l.selector),n.guid||(n.guid=C.guid++),(s=m.events)||(s=m.events={}),(c=m.handle)||((c=m.handle=function(e){return typeof C===L||e&&C.event.triggered===e.type?void 0:C.event.dispatch.apply(c.elem,arguments)}).elem=e),a=(t=(t||"").match(j)||[""]).length;a--;)h=g=(o=G.exec(t[a])||[])[1],d=(o[2]||"").split(".").sort(),h&&(u=C.event.special[h]||{},h=(r?u.delegateType:u.bindType)||h,u=C.event.special[h]||{},f=C.extend({type:h,origType:g,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&C.expr.match.needsContext.test(r),namespace:d.join(".")},l),(p=s[h])||((p=s[h]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,i,d,c)||(e.addEventListener?e.addEventListener(h,c,!1):e.attachEvent&&e.attachEvent("on"+h,c))),u.add&&(u.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,f):p.push(f),C.event.global[h]=!0);e=null}},remove:function(e,t,n,i,r){var o,s,a,l,u,c,f,p,h,d,g,m=C.hasData(e)&&C._data(e);if(m&&(c=m.events)){for(u=(t=(t||"").match(j)||[""]).length;u--;)if(h=g=(a=G.exec(t[u])||[])[1],d=(a[2]||"").split(".").sort(),h){for(f=C.event.special[h]||{},p=c[h=(i?f.delegateType:f.bindType)||h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=p.length;o--;)s=p[o],!r&&g!==s.origType||n&&n.guid!==s.guid||a&&!a.test(s.namespace)||i&&i!==s.selector&&("**"!==i||!s.selector)||(p.splice(o,1),s.selector&&p.delegateCount--,f.remove&&f.remove.call(e,s));l&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,d,m.handle)||C.removeEvent(e,h,m.handle),delete c[h])}else for(h in c)C.event.remove(e,h+t[u],n,i,!0);C.isEmptyObject(c)&&(delete m.handle,C._removeData(e,"events"))}},trigger:function(e,t,n,i){var r,o,s,a,l,u,c,f=[n||_],p=m.call(e,"type")?e.type:e,h=m.call(e,"namespace")?e.namespace.split("."):[];if(s=u=n=n||_,3!==n.nodeType&&8!==n.nodeType&&!V.test(p+C.event.triggered)&&(0<=p.indexOf(".")&&(p=(h=p.split(".")).shift(),h.sort()),o=p.indexOf(":")<0&&"on"+p,(e=e[C.expando]?e:new C.Event(p,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),l=C.event.special[p]||{},i||!l.trigger||!1!==l.trigger.apply(n,t))){if(!i&&!l.noBubble&&!C.isWindow(n)){for(a=l.delegateType||p,V.test(a+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),u=s;u===(n.ownerDocument||_)&&f.push(u.defaultView||u.parentWindow||d)}for(c=0;(s=f[c++])&&!e.isPropagationStopped();)e.type=1]","i"),oe=/^\s+/,se=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ae=/<([\w:]+)/,le=/\s*$/g,ge={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:v.htmlSerialize?[0,"",""]:[1,"X
","
"]},me=te(_).appendChild(_.createElement("div"));function ve(e,t){var n,i,r=0,o=typeof e.getElementsByTagName!==L?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==L?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||C.nodeName(i,t)?o.push(i):C.merge(o,ve(i,t));return void 0===t||t&&C.nodeName(e,t)?C.merge([e],o):o}function ye(e){X.test(e.type)&&(e.defaultChecked=e.checked)}function be(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function xe(e){return e.type=(null!==C.find.attr(e,"type"))+"/"+e.type,e}function we(e){var t=he.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Te(e,t){for(var n,i=0;null!=(n=e[i]);i++)C._data(n,"globalEval",!t||C._data(t[i],"globalEval"))}function Ce(e,t){if(1===t.nodeType&&C.hasData(e)){var n,i,r,o=C._data(e),s=C._data(t,o),a=o.events;if(a)for(n in delete s.handle,s.events={},a)for(i=0,r=a[n].length;i")?o=e.cloneNode(!0):(me.innerHTML=e.outerHTML,me.removeChild(o=me.firstChild)),!(v.noCloneEvent&&v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(i=ve(o),a=ve(e),s=0;null!=(r=a[s]);++s)i[s]&&_e(r,i[s]);if(t)if(n)for(a=a||ve(e),i=i||ve(o),s=0;null!=(r=a[s]);s++)Ce(r,i[s]);else Ce(e,o);return 0<(i=ve(o,"script")).length&&Te(i,!l&&ve(e,"script")),i=a=r=null,o},buildFragment:function(e,t,n,i){for(var r,o,s,a,l,u,c,f=e.length,p=te(t),h=[],d=0;d")+c[2],r=c[0];r--;)a=a.lastChild;if(!v.leadingWhitespace&&oe.test(o)&&h.push(t.createTextNode(oe.exec(o)[0])),!v.tbody)for(r=(o="table"!==l||le.test(o)?""!==c[1]||le.test(o)?0:a:a.firstChild)&&o.childNodes.length;r--;)C.nodeName(u=o.childNodes[r],"tbody")&&!u.childNodes.length&&o.removeChild(u);for(C.merge(h,a.childNodes),a.textContent="";a.firstChild;)a.removeChild(a.firstChild);a=p.lastChild}else h.push(t.createTextNode(o));for(a&&p.removeChild(a),v.appendChecked||C.grep(ve(h,"input"),ye),d=0;o=h[d++];)if((!i||-1===C.inArray(o,i))&&(s=C.contains(o.ownerDocument,o),a=ve(p.appendChild(o),"script"),s&&Te(a),n))for(r=0;o=a[r++];)pe.test(o.type||"")&&n.push(o);return a=null,p},cleanData:function(e,t){for(var n,i,r,o,s=0,a=C.expando,l=C.cache,u=v.deleteExpando,c=C.event.special;null!=(n=e[s]);s++)if((t||C.acceptData(n))&&(o=(r=n[a])&&l[r])){if(o.events)for(i in o.events)c[i]?C.event.remove(n,i):C.removeEvent(n,i,o.handle);l[r]&&(delete l[r],u?delete n[a]:typeof n.removeAttribute!==L?n.removeAttribute(a):n[a]=null,f.push(r))}}}),C.fn.extend({text:function(e){return U(this,function(e){return void 0===e?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||_).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||be(this,e).appendChild(e)})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=be(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,i=e?C.filter(e,this):this,r=0;null!=(n=i[r]);r++)t||1!==n.nodeType||C.cleanData(ve(n)),n.parentNode&&(t&&C.contains(n.ownerDocument,n)&&Te(ve(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&C.cleanData(ve(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&C.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return U(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(ie,""):void 0;if("string"==typeof e&&!ce.test(e)&&(v.htmlSerialize||!re.test(e))&&(v.leadingWhitespace||!oe.test(e))&&!ge[(ae.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(se,"<$1>");try{for(;n")).appendTo(t.documentElement))[0].contentWindow||Ee[0].contentDocument).document).write(),t.close(),n=De(e,t),Ee.detach()),Ne[e]=n),n}v.shrinkWrapBlocks=function(){return null!=Se?Se:(Se=!1,(t=_.getElementsByTagName("body")[0])&&t.style?(e=_.createElement("div"),(n=_.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),typeof e.style.zoom!==L&&(e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",e.appendChild(_.createElement("div")).style.width="5px",Se=3!==e.offsetWidth),t.removeChild(n),Se):void 0);var e,t,n};var je,Ae,Pe,He,Me,Le,Oe,Ie,Fe,We=/^margin/,qe=new RegExp("^("+B+")(?!px)[a-z%]+$","i"),Re=/^(top|right|bottom|left)$/;function $e(t,n){return{get:function(){var e=t();if(null!=e){if(!e)return(this.get=n).apply(this,arguments);delete this.get}}}}function Be(){var e,t,n,i;(t=_.getElementsByTagName("body")[0])&&t.style&&(e=_.createElement("div"),(n=_.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),e.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",Le=Oe=!1,Fe=!0,d.getComputedStyle&&(Le="1%"!==(d.getComputedStyle(e,null)||{}).top,Oe="4px"===(d.getComputedStyle(e,null)||{width:"4px"}).width,(i=e.appendChild(_.createElement("div"))).style.cssText=e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",e.style.width="1px",Fe=!parseFloat((d.getComputedStyle(i,null)||{}).marginRight),e.removeChild(i)),e.innerHTML="
t
",(i=e.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(Ie=0===i[0].offsetHeight)&&(i[0].style.display="",i[1].style.display="none",Ie=0===i[0].offsetHeight),t.removeChild(n))}d.getComputedStyle?(je=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):d.getComputedStyle(e,null)},Ae=function(e,t,n){var i,r,o,s,a=e.style;return s=(n=n||je(e))?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==s||C.contains(e.ownerDocument,e)||(s=C.style(e,t)),qe.test(s)&&We.test(t)&&(i=a.width,r=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=i,a.minWidth=r,a.maxWidth=o)),void 0===s?s:s+""}):_.documentElement.currentStyle&&(je=function(e){return e.currentStyle},Ae=function(e,t,n){var i,r,o,s,a=e.style;return null==(s=(n=n||je(e))?n[t]:void 0)&&a&&a[t]&&(s=a[t]),qe.test(s)&&!Re.test(t)&&(i=a.left,(o=(r=e.runtimeStyle)&&r.left)&&(r.left=e.currentStyle.left),a.left="fontSize"===t?"1em":s,s=a.pixelLeft+"px",a.left=i,o&&(r.left=o)),void 0===s?s:s+""||"auto"}),(Pe=_.createElement("div")).innerHTML="
a",(He=(Me=Pe.getElementsByTagName("a")[0])&&Me.style)&&(He.cssText="float:left;opacity:.5",v.opacity="0.5"===He.opacity,v.cssFloat=!!He.cssFloat,Pe.style.backgroundClip="content-box",Pe.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===Pe.style.backgroundClip,v.boxSizing=""===He.boxSizing||""===He.MozBoxSizing||""===He.WebkitBoxSizing,C.extend(v,{reliableHiddenOffsets:function(){return null==Ie&&Be(),Ie},boxSizingReliable:function(){return null==Oe&&Be(),Oe},pixelPosition:function(){return null==Le&&Be(),Le},reliableMarginRight:function(){return null==Fe&&Be(),Fe}})),C.swap=function(e,t,n,i){var r,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in r=n.apply(e,i||[]),t)e.style[o]=s[o];return r};var ze=/alpha\([^)]*\)/i,Ue=/opacity\s*=\s*([^)]*)/,Xe=/^(none|table(?!-c[ea]).+)/,Ye=new RegExp("^("+B+")(.*)$","i"),Qe=new RegExp("^([+-])=("+B+")","i"),Je={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","O","Moz","ms"];function Ke(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),i=t,r=Ge.length;r--;)if((t=Ge[r]+n)in e)return t;return i}function Ze(e,t){for(var n,i,r,o=[],s=0,a=e.length;s
a",ut=at.getElementsByTagName("a")[0],ct=(lt=_.createElement("select")).appendChild(_.createElement("option")),st=at.getElementsByTagName("input")[0],ut.style.cssText="top:1px",v.getSetAttribute="t"!==at.className,v.style=/top/.test(ut.getAttribute("style")),v.hrefNormalized="/a"===ut.getAttribute("href"),v.checkOn=!!st.value,v.optSelected=ct.selected,v.enctype=!!_.createElement("form").enctype,lt.disabled=!0,v.optDisabled=!ct.disabled,(st=_.createElement("input")).setAttribute("value",""),v.input=""===st.getAttribute("value"),st.value="t",st.setAttribute("type","radio"),v.radioValue="t"===st.value;var xt=/\r/g;C.fn.extend({val:function(n){var i,e,r,t=this[0];return arguments.length?(r=C.isFunction(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=r?n.call(this,e,C(this).val()):n)?t="":"number"==typeof t?t+="":C.isArray(t)&&(t=C.map(t,function(e){return null==e?"":e+""})),(i=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in i&&void 0!==i.set(this,t,"value")||(this.value=t))})):t?(i=C.valHooks[t.type]||C.valHooks[t.nodeName.toLowerCase()])&&"get"in i&&void 0!==(e=i.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e))}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||r<0,s=o?null:[],a=o?r+1:i.length,l=r<0?a:o?r:0;l").append(C.parseHTML(e)).find(i):e)}).complete(n&&function(e,t){s.each(n,r||[e.responseText,t,e])}),this},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length};var cn=d.document.documentElement;function fn(e){return C.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}C.offset={setOffset:function(e,t,n){var i,r,o,s,a,l,u=C.css(e,"position"),c=C(e),f={};"static"===u&&(e.style.position="relative"),a=c.offset(),o=C.css(e,"top"),l=C.css(e,"left"),r=("absolute"===u||"fixed"===u)&&-1").outerWidth(1).jquery||D.each(["Width","Height"],function(e,n){var r="Width"===n?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),o={innerWidth:D.fn.innerWidth,innerHeight:D.fn.innerHeight,outerWidth:D.fn.outerWidth,outerHeight:D.fn.outerHeight};function s(e,t,n,i){return D.each(r,function(){t-=parseFloat(D.css(e,"padding"+this))||0,n&&(t-=parseFloat(D.css(e,"border"+this+"Width"))||0),i&&(t-=parseFloat(D.css(e,"margin"+this))||0)}),t}D.fn["inner"+n]=function(e){return void 0===e?o["inner"+n].call(this):this.each(function(){D(this).css(i,s(this,e)+"px")})},D.fn["outer"+n]=function(e,t){return"number"!=typeof e?o["outer"+n].call(this,e):this.each(function(){D(this).css(i,s(this,e,!0,t)+"px")})}}),D.fn.addBack||(D.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),D("").data("a-b","a").removeData("a-b").data("a-b")&&(D.fn.removeData=(t=D.fn.removeData,function(e){return arguments.length?t.call(this,D.camelCase(e)):t.call(this)})),D.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),D.fn.extend({focus:(i=D.fn.focus,function(t,n){return"number"==typeof t?this.each(function(){var e=this;setTimeout(function(){D(e).focus(),n&&n.call(e)},t)}):i.apply(this,arguments)}),disableSelection:(n="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.bind(n+".ui-disableSelection",function(e){e.preventDefault()})}),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var t,n,i=D(this[0]);i.length&&i[0]!==document;){if(("absolute"===(t=i.css("position"))||"relative"===t||"fixed"===t)&&(n=parseInt(i.css("zIndex"),10),!isNaN(n)&&0!==n))return n;i=i.parent()}return 0}}),D.ui.plugin={add:function(e,t,n){var i,r=D.ui[e].prototype;for(i in n)r.plugins[i]=r.plugins[i]||[],r.plugins[i].push([t,n[i]])},call:function(e,t,n,i){var r,o=e.plugins[t];if(o&&(i||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(r=0;r",options:{disabled:!1,create:null},_createWidget:function(e,t){t=D(t||this.defaultElement||this)[0],this.element=D(t),this.uuid=a++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=D(),this.hoverable=D(),this.focusable=D(),t!==this&&(D.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=D(t.style?t.ownerDocument:t.document||t),this.window=D(this.document[0].defaultView||this.document[0].parentWindow)),this.options=D.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:D.noop,_getCreateEventData:D.noop,_create:D.noop,_init:D.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(D.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:D.noop,widget:function(){return this.element},option:function(e,t){var n,i,r,o=e;if(0===arguments.length)return D.widget.extend({},this.options);if("string"==typeof e)if(o={},e=(n=e.split(".")).shift(),n.length){for(i=o[e]=D.widget.extend({},this.options[e]),r=0;r=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){D.ui=D.ui||{};var r,T,C=Math.max,_=Math.abs,E=Math.round,i=/left|center|right/,o=/top|center|bottom/,s=/[\+\-]\d+(\.[\d]+)?%?/,a=/^\w+/,l=/%$/,u=D.fn.position;function S(e,t,n){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?n/100:1)]}function N(e,t){return parseInt(D.css(e,t),10)||0}D.position={scrollbarWidth:function(){if(void 0!==r)return r;var e,t,n=D("
"),i=n.children()[0];return D("body").append(n),e=i.offsetWidth,n.css("overflow","scroll"),e===(t=i.offsetWidth)&&(t=n[0].clientWidth),n.remove(),r=e-t},getScrollInfo:function(e){var t=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),n=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),i="scroll"===t||"auto"===t&&e.widthC(_(i),_(r))?o.important="horizontal":o.important="vertical",f.using.call(this,e,o)}),s.offset(D.extend(u,{using:e}))})},D.ui.position={fit:{left:function(e,t){var n,i=t.within,r=i.isWindow?i.scrollLeft:i.offset.left,o=i.width,s=e.left-t.collisionPosition.marginLeft,a=r-s,l=s+t.collisionWidth-o-r;t.collisionWidth>o?0o?0").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var t=this.document[0];if(this.handleElement.is(e.target))try{t.activeElement&&"body"!==t.activeElement.nodeName.toLowerCase()&&D(t.activeElement).blur()}catch(e){}},_mouseStart:function(e){var t=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),D.ui.ddmanager&&(D.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0n[2]&&(l=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(u=n[3]+this.offset.click.top)),s.grid&&(r=s.grid[1]?this.originalPageY+Math.round((u-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,u=!n||r-this.offset.click.top>=n[1]||r-this.offset.click.top>n[3]?r:r-this.offset.click.top>=n[1]?r-s.grid[1]:r+s.grid[1],o=s.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,l=!n||o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-s.grid[0]:o+s.grid[0]),"y"===s.axis&&(l=this.originalPageX),"x"===s.axis&&(u=this.originalPageY)),{top:u-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(e,t,n){return n=n||this._uiHash(),D.ui.plugin.call(this,e,[t,n,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),n.offset=this.positionAbs),D.Widget.prototype._trigger.call(this,e,t,n)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),D.ui.plugin.add("draggable","connectToSortable",{start:function(t,e,n){var i=D.extend({},e,{item:n.element});n.sortables=[],D(n.options.connectToSortable).each(function(){var e=D(this).sortable("instance");e&&!e.options.disabled&&(n.sortables.push(e),e.refreshPositions(),e._trigger("activate",t,i))})},stop:function(t,e,n){var i=D.extend({},e,{item:n.element});n.cancelHelperRemoval=!1,D.each(n.sortables,function(){var e=this;e.isOver?(e.isOver=0,n.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(n,i,r){D.each(r.sortables,function(){var e=!1,t=this;t.positionAbs=r.positionAbs,t.helperProportions=r.helperProportions,t.offset.click=r.offset.click,t._intersectsWith(t.containerCache)&&(e=!0,D.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==t&&this._intersectsWith(this.containerCache)&&D.contains(t.element[0],this.element[0])&&(e=!1),e})),e?(t.isOver||(t.isOver=1,r._parent=i.helper.parent(),t.currentItem=i.helper.appendTo(t.element).data("ui-sortable-item",!0),t.options._helper=t.options.helper,t.options.helper=function(){return i.helper[0]},n.target=t.currentItem[0],t._mouseCapture(n,!0),t._mouseStart(n,!0,!0),t.offset.click.top=r.offset.click.top,t.offset.click.left=r.offset.click.left,t.offset.parent.left-=r.offset.parent.left-t.offset.parent.left,t.offset.parent.top-=r.offset.parent.top-t.offset.parent.top,r._trigger("toSortable",n),r.dropped=t.element,D.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,t.fromOutside=r),t.currentItem&&(t._mouseDrag(n),i.position=t.position)):t.isOver&&(t.isOver=0,t.cancelHelperRemoval=!0,t.options._revert=t.options.revert,t.options.revert=!1,t._trigger("out",n,t._uiHash(t)),t._mouseStop(n,!0),t.options.revert=t.options._revert,t.options.helper=t.options._helper,t.placeholder&&t.placeholder.remove(),i.helper.appendTo(r._parent),r._refreshOffsets(n),i.position=r._generatePosition(n,!0),r._trigger("fromSortable",n),r.dropped=!1,D.each(r.sortables,function(){this.refreshPositions()}))})}}),D.ui.plugin.add("draggable","cursor",{start:function(e,t,n){var i=D("body"),r=n.options;i.css("cursor")&&(r._cursor=i.css("cursor")),i.css("cursor",r.cursor)},stop:function(e,t,n){var i=n.options;i._cursor&&D("body").css("cursor",i._cursor)}}),D.ui.plugin.add("draggable","opacity",{start:function(e,t,n){var i=D(t.helper),r=n.options;i.css("opacity")&&(r._opacity=i.css("opacity")),i.css("opacity",r.opacity)},stop:function(e,t,n){var i=n.options;i._opacity&&D(t.helper).css("opacity",i._opacity)}}),D.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(e,t,n){var i=n.options,r=!1,o=n.scrollParentNotHidden[0],s=n.document[0];o!==s&&"HTML"!==o.tagName?(i.axis&&"x"===i.axis||(n.overflowOffset.top+o.offsetHeight-e.pageY")[0],x=c.each,b.style.cssText="background-color:rgba(1,1,1,.5)",y.rgba=-1").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),t={width:n.width(),height:n.height()},r=document.activeElement;try{r.id}catch(e){r=document.body}return n.wrap(e),n[0]!==r&&!D.contains(n[0],r)||D(r).focus(),e=n.parent(),"static"===n.css("position")?(e.css({position:"relative"}),n.css({position:"relative"})):(D.extend(i,{position:n.css("position"),zIndex:n.css("z-index")}),D.each(["top","left","bottom","right"],function(e,t){i[t]=n.css(t),isNaN(parseInt(i[t],10))&&(i[t]="auto")}),n.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),n.css(t),e.css(i).show()},removeWrapper:function(e){var t=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),e[0]!==t&&!D.contains(e[0],t)||D(t).focus()),e},setTransition:function(i,e,r,o){return o=o||{},D.each(e,function(e,t){var n=i.cssUnit(t);0r&&0!==r||!1===i.call(e,o))&&jQuery.timer.remove(e,n,i)}a.timerID=i.timerID,s[n][i.timerID]||(s[n][i.timerID]=window.setInterval(a,t)),this.global.push(e)}},remove:function(e,t,n){var i,r=jQuery.data(e,this.dataKey);if(r){if(t){if(r[t]){if(n)n.timerID&&(window.clearInterval(r[t][n.timerID]),delete r[t][n.timerID]);else for(var n in r[t])window.clearInterval(r[t][n]),delete r[t][n];for(i in r[t])break;i||(i=null,delete r[t])}}else for(t in r)this.remove(e,t,n);for(i in r)break;i||jQuery.removeData(e,this.dataKey)}}}}),jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(e,t){jQuery.timer.remove(t)})}),function(){"use strict";var a={version:"1.0.1-nanoui",templateSettings:{evaluate:/\{\{([\s\S]+?)\}\}/g,interpolate:/\{\{:([\s\S]+?)\}\}/g,encode:/\{\{>([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,conditional:/\{\{\/?if\s*([\s\S]*?)\s*\}\}/g,conditionalElse:/\{\{else\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{\/?for\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,props:/\{\{\/?props\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,empty:/\{\{empty\}\}/g,varname:"data, config, helper",strip:!0,append:!0,selfcontained:!1},template:void 0,compile:void 0};function l(){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},e=/&(?!#?\w+;)|<|>|"|'|\//g;return function(){return this?this.replace(e,function(e){return t[e]||e}):this}}"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):function(){return this||(0,eval)("this")}().doT=a,String.prototype.encodeHTML=l();var u={append:{start:"'+(",end:")+'",endencode:"||'').toString().encodeHTML()+'"},split:{start:"';out+=(",end:");out+='",endencode:"||'').toString().encodeHTML();out+='"}},c=/$^/;function f(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}a.template=function(e,t,n){var i,r=(t=t||a.templateSettings).append?u.append:u.split,o=0,s=t.use||t.define?function i(r,e,o){return("string"==typeof e?e:e.toString()).replace(r.define||c,function(e,i,t,n){return 0===i.indexOf("def.")&&(i=i.substring(4)),i in o||(":"===t?(r.defineParams&&n.replace(r.defineParams,function(e,t,n){o[i]={arg:t,text:n}}),i in o||(o[i]=n)):new Function("def","def['"+i+"']="+n)(o)),""}).replace(r.use||c,function(e,t){r.useParams&&(t=t.replace(r.useParams,function(e,t,n,i){if(o[n]&&o[n].arg&&i){var r=(n+":"+i).replace(/'|\\/g,"_");return o.__exp=o.__exp||{},o.__exp[r]=o[n].text.replace(new RegExp("(^|[^\\w$])"+o[n].arg+"([^\\w$])","g"),"$1"+i+"$2"),t+"def.__exp['"+r+"']"}}));var n=new Function("def","return "+t)(o);return n?i(r,n,o):n})}(t,e,n||{}):e;s=("var out='"+(t.strip?s.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):s).replace(/'|\\/g,"\\$&").replace(t.interpolate||c,function(e,t){return r.start+f(t)+r.end}).replace(t.encode||c,function(e,t){return i=!0,r.start+f(t)+r.endencode}).replace(t.conditional||c,function(e,t){return t?"';if("+f(t)+"){out+='":"';}out+='"}).replace(t.conditionalElse||c,function(e,t){return t?"';}else if("+f(t)+"){out+='":"';}else{out+='"}).replace(t.iterate||c,function(e,t,n,i){if(!t)return"';} } out+='";o+=1,n=n||"value",i=i||"index",t=f(t);var r="arr"+o;return"';var "+r+"="+t+";if("+r+" && "+r+".length > 0){var "+n+","+i+"=-1,l"+o+"="+r+".length-1;while("+i+" 0){var "+n+";for( var "+i+" in "+r+"){ if (!"+r+".hasOwnProperty("+i+")) continue; "+n+"="+r+"["+i+"];out+='"}).replace(t.empty||c,function(e){return"';}}else{if(true){out+='"}).replace(t.evaluate||c,function(e,t){return"';"+f(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"").replace(/(\s|;|\}|^|\{)out\+=''\+/g,"$1out+="),i&&t.selfcontained&&(s="String.prototype.encodeHTML=("+l.toString()+"());"+s);try{return new Function(t.varname,s)}catch(e){throw"undefined"!=typeof console&&console.log("Could not create a template function: "+s),e}},a.compile=function(e,t){return a.template(e,null,t)}}(),function(e,t){"use strict";"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.returnExports=t()}(this,function(){function n(e){try{var t=S.call(e).replace(/\/\/.*\n/g,"").replace(/\/\*[.\s\S]*\*\//g,"").replace(/\n/gm," ").replace(/ {2}/g," ");return N.test(t)}catch(e){return}}function p(e){if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(E)return function(e){try{return n(e)?!1:(S.call(e),!0)}catch(e){return!1}}(e);if(n(e))return!1;var t=_.call(e);return"[object Function]"===t||"[object GeneratorFunction]"===t}var h,d,l=Array,e=l.prototype,a=Object,t=a.prototype,u=Function,i=u.prototype,v=String,r=v.prototype,y=Number,o=y.prototype,c=e.slice,s=e.splice,g=e.push,f=e.unshift,m=e.concat,b=e.join,x=i.call,w=i.apply,T=Math.max,C=Math.min,_=t.toString,E="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,S=Function.prototype.toString,N=/^\s*class /,D=RegExp.prototype.exec;h=function(e){return"object"==typeof e&&(E?function(e){try{return D.call(e),!0}catch(e){return!1}}(e):"[object RegExp]"===_.call(e))};var k=String.prototype.valueOf;d=function(e){return"string"==typeof e||"object"==typeof e&&(E?function(e){try{return k.call(e),!0}catch(e){return!1}}(e):"[object String]"===_.call(e))};function j(e){var t=typeof e;return null===e||"object"!=t&&"function"!=t}function A(){}var P,H,M=a.defineProperty&&function(){try{var e={};for(var t in a.defineProperty(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),L=(P=t.hasOwnProperty,H=M?function(e,t,n,i){!i&&t in e||a.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:!0,value:n})}:function(e,t,n,i){!i&&t in e||(e[t]=n)},function(e,t,n){for(var i in t)P.call(t,i)&&H(e,i,t[i],n)}),O=y.isNaN||function(e){return e!=e},I=function(e){var t=+e;return O(t)?t=0:0!==t&&t!==1/0&&t!==-1/0&&(t=(0>>0};L(i,{bind:function(t){var n=this;if(!p(n))throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var i,r=c.call(arguments,1),e=T(0,n.length-r.length),o=[],s=0;s=r)throw new TypeError("reduce of empty array with no initial value")}for(;sError name: "+e.name+"
Error Message: "+e.message)}t.hasOwnProperty("data")||(a&&a.hasOwnProperty("data")?t.data=a.data:t.data={}),n?l(t):a=t}(e)},addBeforeUpdateCallback:function(e,t){r[e]=t},addBeforeUpdateCallbacks:function(e){for(var t in e)e.hasOwnProperty(t)&&NanoStateManager.addBeforeUpdateCallback(t,e[t])},removeBeforeUpdateCallback:function(e){r.hasOwnProperty(e)&&delete r[e]},executeBeforeUpdateCallbacks:function(e){return t(r,e)},addAfterUpdateCallback:function(e,t){o[e]=t},addAfterUpdateCallbacks:function(e){for(var t in e)e.hasOwnProperty(t)&&NanoStateManager.addAfterUpdateCallback(t,e[t])},removeAfterUpdateCallback:function(e){o.hasOwnProperty(e)&&delete o[e]},executeAfterUpdateCallbacks:function(e){return t(o,e)},addState:function(e){e instanceof NanoStateClass?e.key?i[e.key]=e:reportError("ERROR: Attempted to add a state with an invalid stateKey"):reportError("ERROR: Attempted to add a state which is not instanceof NanoStateClass")},setCurrentState:function(e){if(void 0===e||!e)return reportError("ERROR: No state key was passed!"),!1;if(!i.hasOwnProperty(e))return reportError("ERROR: Attempted to set a current state which does not exist: "+e),!1;var t=s;return s=i[e],null!=t&&t.onRemove(s),s.onAdd(t),!0},getCurrentState:function(){return s},getData:function(){return a}}}(),NanoBaseCallbacks=function(){var a=!0,t={},n={status:function(n){var e;return 2==n.config.status?(e="good",$(".linkActive").removeClass("inactive")):(e=1==n.config.status?"average":"bad",$(".linkActive").addClass("inactive")),$(".statusicon").removeClass("good bad average").addClass(e),$(".linkActive").stopTime("linkPending"),$(".linkActive").removeClass("linkPending"),$(".linkActive").off("click").on("click",function(e){e.preventDefault();var t=$(this).data("href");null!=t&&a&&(a=!1,$("body").oneTime(300,"enableClick",function(){a=!0}),2==n.config.status&&$(this).oneTime(300,"linkPending",function(){$(this).addClass("linkPending")}),window.location.href=t)}),n},nanomap:function(e){return $(".mapIcon").off("mouseenter mouseleave").on("mouseenter",function(e){$("#uiMapTooltip").html($(this).children(".tooltip").html()).show().stopTime().oneTime(5e3,"hideTooltip",function(){$(this).fadeOut(500)})}),$(".zoomLink").off("click").on("click",function(e){e.preventDefault();var t=$(this).data("zoomLevel"),n=$("#uiMap"),a=n.width()*t,r=n.height()*t;n.css({zoom:t,left:"50%",top:"50%",marginLeft:"-"+Math.floor(a/2)+"px",marginTop:"-"+Math.floor(r/2)+"px"})}),$("#uiMapImage").attr("src",e.config.map+"_nanomap_z"+e.config.mapZLevel+".png"),e}};return{addCallbacks:function(){NanoStateManager.addBeforeUpdateCallbacks(t),NanoStateManager.addAfterUpdateCallbacks(n)},removeCallbacks:function(){for(var e in t)t.hasOwnProperty(e)&&NanoStateManager.removeBeforeUpdateCallback(e);for(var e in n)n.hasOwnProperty(e)&&NanoStateManager.removeAfterUpdateCallback(e)}}}(),NanoBaseHelpers=function(){var t={syndicateMode:function(){return $(".mainBG").css("background","url('syndicate.png') no-repeat fixed center/50% 50%, linear-gradient(to bottom, #8f1414 0%, #4B0A0A 100%) no-repeat fixed center;"),$("#uiTitleFluff").css("background-image","url('uiTitleFluff-Syndicate.png')"),$("#uiTitleFluff").css("background-position","50% 50%"),$("#uiTitleFluff").css("background-repeat","no-repeat"),""},combine:function(e,t){return e&&t?e.concat(t):e||t},dump:function(e){return JSON.stringify(e)},link:function(e,t,n,a,r,o){var i="",s="noIcon";void 0!==t&&t&&(i='
',s="hasIcon"),void 0!==r&&r||(r="link");var l="";void 0!==o&&o&&(l='id="'+o+'"');var c=NanoTransition.allocID(l+"_"+e.toString().replace(/[^a-z0-9_]/gi,"_")+"_"+t);return void 0!==a&&a?'