diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 400d6961ae7..1ab93c49bad 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -239,25 +239,35 @@ var/list/blood_splatter_icons = list() /atom/proc/blood_splatter_index() return "\ref[initial(icon)]-[initial(icon_state)]" +/atom/proc/add_blood_list(mob/living/carbon/M) + // Returns 1 if we had blood already + if(!istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. + blood_DNA = list() + //if this blood isn't already in the list, add it + if(blood_DNA[M.dna.unique_enzymes]) + return 0 //already bloodied with this blood. Cannot add more. + blood_DNA[M.dna.unique_enzymes] = M.dna.blood_type + return 1 + //returns 1 if made bloody, returns 0 otherwise /atom/proc/add_blood(mob/living/carbon/M) if(rejects_blood()) return 0 - if(!initial(icon) || !initial(icon_state)) - return 0 if(!istype(M)) return 0 if(!check_dna_integrity(M)) //check dna is valid and create/setup if necessary return 0 //no dna! - if(!istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. - blood_DNA = list() return -/obj/item/add_blood(mob/living/carbon/M) - if(..() == 0) return 0 +/obj/add_blood(mob/living/carbon/M) + if(..() == 0) return 0 + return add_blood_list(M) +/obj/item/add_blood(mob/living/carbon/M) + var/blood_count = blood_DNA == null ? 0 : blood_DNA.len + if(..() == 0) return 0 //apply the blood-splatter overlay if it isn't already in there - if(!blood_DNA.len) + if(!blood_count && initial(icon) && initial(icon_state)) //try to find a pre-processed blood-splatter. otherwise, make a new one var/index = blood_splatter_index() var/icon/blood_splatter_icon = blood_splatter_icons[index] @@ -268,11 +278,6 @@ var/list/blood_splatter_icons = list() blood_splatter_icon = fcopy_rsc(blood_splatter_icon) blood_splatter_icons[index] = blood_splatter_icon overlays += blood_splatter_icon - - //if this blood isn't already in the list, add it - if(blood_DNA[M.dna.unique_enzymes]) - return 0 //already bloodied with this blood. Cannot add more. - blood_DNA[M.dna.unique_enzymes] = M.dna.blood_type return 1 //we applied blood to the item /turf/simulated/add_blood(mob/living/carbon/M) @@ -280,15 +285,12 @@ var/list/blood_splatter_icons = list() var/obj/effect/decal/cleanable/blood/B = locate() in contents //check for existing blood splatter if(!B) B = new /obj/effect/decal/cleanable/blood(src) //make a bloood splatter if we couldn't find one - B.blood_DNA[M.dna.unique_enzymes] = M.dna.blood_type + B.add_blood_list(M) return 1 //we bloodied the floor /mob/living/carbon/human/add_blood(mob/living/carbon/M) if(..() == 0) return 0 - - if(blood_DNA[M.dna.unique_enzymes]) - return 0 //already bloodied with this blood. Cannot add more. - blood_DNA[M.dna.unique_enzymes] = M.dna.blood_type + add_blood_list(M) update_inv_gloves() //handles bloody hands overlays and updating return 1 //we applied blood to the item diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 5d111fa7cdf..466a2f52338 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -12,7 +12,7 @@ var/const/SAFETY_COOLDOWN = 100 var/grinding = 0 var/icon_name = "grinder-o" var/blood = 0 - var/eat_from = WEST + var/eat_dir = WEST /obj/machinery/recycler/New() // On us @@ -30,7 +30,7 @@ var/const/SAFETY_COOLDOWN = 100 ..() update_icon() -/* + /obj/machinery/recycler/attackby(var/obj/item/I, var/mob/user) if(istype(I, /obj/item/weapon/card/emag) && !emagged) emagged = 1 @@ -44,7 +44,8 @@ var/const/SAFETY_COOLDOWN = 100 user << "You reset the crusher to its default factory settings." else ..() -*/ + return + add_fingerprint(user) /obj/machinery/recycler/update_icon() ..() @@ -53,9 +54,15 @@ var/const/SAFETY_COOLDOWN = 100 is_powered = 0 icon_state = icon_name + "[is_powered]" + "[(blood ? "bld" : "")]" // add the blood tag at the end +// This is purely for admin possession !FUN!. +/obj/machinery/recycler/Bump(var/atom/movable/AM) + ..() + if(AM) + Bumped(AM) + + /obj/machinery/recycler/Bumped(var/atom/movable/AM) - // Crossed didn't like people lying down. if(stat & (BROKEN|NOPOWER)) return if(safety_mode) @@ -69,7 +76,7 @@ var/const/SAFETY_COOLDOWN = 100 return var/move_dir = get_dir(loc, AM.loc) - if(move_dir == eat_from) + if(move_dir == eat_dir) if(isliving(AM)) if(emagged) eat(AM) @@ -81,7 +88,7 @@ var/const/SAFETY_COOLDOWN = 100 playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) AM.loc = src.loc -/obj/machinery/recycler/proc/recycle(var/obj/item/I) +/obj/machinery/recycler/proc/recycle(var/obj/item/I, var/sound = 1) I.loc = src.loc if(!istype(I, /obj/item/weapon/disk/nuclear)) del(I) @@ -93,7 +100,8 @@ var/const/SAFETY_COOLDOWN = 100 new /obj/item/stack/sheet/plasteel(loc) if(prob(1)) new /obj/item/stack/sheet/rglass(loc) - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(sound) + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) /obj/machinery/recycler/proc/stop(var/mob/living/L) @@ -110,20 +118,39 @@ var/const/SAFETY_COOLDOWN = 100 /obj/machinery/recycler/proc/eat(var/mob/living/L) L.loc = src.loc + if(issilicon(L)) playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) else playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - if(ishuman(L)) - L.say("ARRRRRRRRRRRGH!!!") + var/gib = 1 + // By default, the emagged recycler will gib all non-carbons. (human simple animal mobs don't count) + if(iscarbon(L)) + gib = 0 + if(L.stat == CONSCIOUS) + L.say("ARRRRRRRRRRRGH!!!") + add_blood(L) - L.gib() - - if(!blood) + if(!blood && !issilicon(L)) blood = 1 update_icon() + // Remove and recycle the equipped items. + for(var/obj/item/I in L.get_equipped_items()) + L.drop_from_inventory(I) + recycle(I, 0) + + // Instantly lie down, also go unconscious from the pain, before you die. + L.Paralyse(5) + + // For admin fun, var edit emagged to 2. + if(gib || emagged == 2) + L.gib() + else if(emagged == 1) + L.adjustBruteLoss(1000) + + /obj/item/weapon/paper/recycler name = "paper - 'garbage duty instructions'" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 87930516848..bf2afb319a8 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -88,7 +88,7 @@ T.Entered(W) W.dropped(src) - update_icons() + //update_icons() // Redundant as u_equip will handle updating the specific overlay return 1 return 0 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f6da8c3b022..058f20b00db 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -770,16 +770,19 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/Stun(amount) if(status_flags & CANSTUN) stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun + update_canmove() return /mob/proc/SetStunned(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" if(status_flags & CANSTUN) stunned = max(amount,0) + update_canmove() return /mob/proc/AdjustStunned(amount) if(status_flags & CANSTUN) stunned = max(stunned + amount,0) + update_canmove() return /mob/proc/Weaken(amount) @@ -803,38 +806,47 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/Paralyse(amount) if(status_flags & CANPARALYSE) paralysis = max(max(paralysis,amount),0) + update_canmove() return /mob/proc/SetParalysis(amount) if(status_flags & CANPARALYSE) paralysis = max(amount,0) + update_canmove() return /mob/proc/AdjustParalysis(amount) if(status_flags & CANPARALYSE) paralysis = max(paralysis + amount,0) + update_canmove() return /mob/proc/Sleeping(amount) sleeping = max(max(sleeping,amount),0) + update_canmove() return /mob/proc/SetSleeping(amount) sleeping = max(amount,0) + update_canmove() return /mob/proc/AdjustSleeping(amount) sleeping = max(sleeping + amount,0) + update_canmove() return /mob/proc/Resting(amount) resting = max(max(resting,amount),0) + update_canmove() return /mob/proc/SetResting(amount) resting = max(amount,0) + update_canmove() return /mob/proc/AdjustResting(amount) resting = max(resting + amount,0) + update_canmove() return \ No newline at end of file diff --git a/maps/tgstation.2.1.2.dmm b/maps/tgstation.2.1.2.dmm index 9b0ffbea8ce..e9c4f343e6f 100644 --- a/maps/tgstation.2.1.2.dmm +++ b/maps/tgstation.2.1.2.dmm @@ -2714,7 +2714,7 @@ "baj" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bak" = (/turf/simulated/wall,/area/maintenance/asmaint2) "bal" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bam" = (/obj/machinery/mineral/stacking_machine{input_dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) +"bam" = (/obj/machinery/mineral/stacking_machine{input_dir = 1; stack_amt = 10},/turf/simulated/floor/plating,/area/maintenance/disposal) "ban" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "bao" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8},/turf/simulated/wall,/area/maintenance/disposal) "bap" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/port) @@ -2869,6 +2869,7 @@ "bdi" = (/obj/machinery/power/apc{dir = 8; name = "Disposal APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "bdj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/port) "bdk" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/disposal) +"bdl" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) "bdm" = (/obj/machinery/conveyor{dir = 9; id = "garbage"; verted = -1},/turf/simulated/floor/plating,/area/maintenance/disposal) "bdn" = (/obj/structure/closet/crate,/obj/item/weapon/coin/twoheaded,/turf/simulated/floor/plating,/area/maintenance/port) "bdo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/port) @@ -7620,7 +7621,7 @@ "cQC" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/mine/north_outpost) "cQD" = (/turf/simulated/floor,/area/mine/north_outpost) "cQE" = (/obj/machinery/conveyor{dir = 4; id = "mining_north"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/north_outpost) -"cQF" = (/obj/machinery/mineral/unloading_machine{dir = 1; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/north_outpost) +"cQF" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/north_outpost) "cQG" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production) "cQH" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/north_outpost) "cQI" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/abandoned) @@ -7796,14 +7797,14 @@ "cTW" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "cTX" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "cTY" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"cTZ" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) +"cTZ" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cUa" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) "cUb" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "cUc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp) "cUd" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp) "cUe" = (/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "cUf" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"cUg" = (/obj/machinery/mineral/unloading_machine{dir = 1; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) +"cUg" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "cUh" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/mine/production) "cUi" = (/turf/simulated/floor{icon_state = "loadingarea"},/area/mine/production) "cUj" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) @@ -7839,7 +7840,7 @@ "cUN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "cUO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "cUP" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp) -"cUQ" = (/obj/machinery/mineral/unloading_machine{dir = 1},/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) +"cUQ" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cUR" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cUS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) "cUT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) @@ -8035,7 +8036,7 @@ "cYB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor,/area/mine/west_outpost) "cYC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/west_outpost) "cYD" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/mine/west_outpost) -"cYE" = (/obj/machinery/mineral/unloading_machine{dir = 1; output_dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) +"cYE" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cYF" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cYH" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "cYI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) @@ -9370,7 +9371,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacSccSccSccSycSWcSXcSWcSycSYcSZcS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOZaafaafaafaafaafcSccTgcThcSycTicSAcSzcTjdcTcSAdcScSycTmcTmcTmcSBcSTcSTcSncSncRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcOWcTncSCcTocOWcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTpcQlcQlcQlcQlcQlcOTcOTcOTaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcTfcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccTrcTscTtcTucTvcTwcSAcTicSAcSAcTycTmcTmcSTcSTcSTcSTcSOcSncRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcTzcTAcTBcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcRacOTcQlcQlcRbcRbcOTcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTfcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccTCcTDcTEcTFcTvcTGcSAcTidcRcSAcSydcQdcPdcPcSTcSTcSBcSBcSncSncRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcTLcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOTcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccSycSycSycTMcSAcTNcTvcTOcUccTIcUPcUjcUjcUQcOCcSTcSBcSBcTScSncRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcTLcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaacOEcOEaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcTTcTUcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccSycSycSycTMcSAcTNcTvcTOcUccTIcUPcUjcUjbdlcOCcSTcSBcSBcTScSncRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcTLcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaacOEcOEaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcTTcTUcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcTKcTWcTVcTXcTRcSAcTicSAcSAcTPcOecSycUfcUecTYcSTcSTcSBcSBcUacSncRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcTLcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaacOEcOEcOEaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccSccSccSccSAcSAcTicUccUdcSybEKcSycTmcTmcTmcSBcSBcSBcSBcTJcRacRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaacOEcOEaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqaaaaaacSccUbcSAcSAcTibPbbmdbPbbOjcSycTlcTkcSBcSBcSBcSBcSOcSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcUkcUkcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9475,13 +9476,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocOEcOEcOEcOTcOTcQlcQlcQlcQlcQlcWFcZHcZIcZJcZKcWFcRjcZLcWdcQlcQlcQlcQlcQlcTpcQlcQlcQlcTTcUTcUTcTUcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcVvcUTcVwcQlcQlcQlcQlcOTcQlcQlcTpcQlcQlcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcQlcQlcWwcQlcOTcOTcOTcOTcOTcWgcXBcZMcZNcZOcZOcZNcZPcZQcZRcZOcZOcZScZNcZTcZUcZVcZWcZXcZXcZXcZXcZXcZXcZXcZXcZYcZYcZYcZYcZYcZYcZZdaadabdacdaddaedafdagdahcXTcXTcXTcXTcXTcXTcXTcXTdaicSFdajcSFcWdcRbcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOTcOTcQlcQlcQlcQlcWFdakdaldamdancWFcQlcQlcQlcQlcQlcQlcOTcOTcRacOTcQlcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcQlcVvcVwcQlcQlcQlcOTcOTcOTcOTcOTcOTcRacQlcQlcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOTcWgcWgdaodapdaocWgcWgdaqdardascWgcWgdaodatdaocWgdaucQlcQlcQlaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadavcXVcYodawdaxdaydazdaAdaAdaBcXTcURcTQdaEdaFdaFdaFdaFcWdcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcOTcQlcQlcQlcWFcWFcWFcWFcWFcWFcQlcQlcOTcOTcOTcOTcOTcOEcOEcOTcOTcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcQlcOTcOTcOTcOTcOTcOTcQlcQlcQlcQlcQlcTfcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOTcQlcQlcQlcQlcQlcQlcTfcQlcQlcQlcVrcSJcQlcQlcQlcQlcQlcQlcQlcOTcWgdaGdaHdaIdaHcWgdaJdaKdaLdaMdaNcWgdaOdaPdaQcWgcQlcQlcQlcQlcQlcQlaaaaaaaafaaaaaaaaaaafaafaafaafaafaafaafaafaafcXTdaRdaScZzcXTcXTcXTcXTdaTcXTdaTcXTcXTdaVcWdcWdcWdcWdcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcTTcUTcUTcUTcTUcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcTfcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcQlcQlcTTcUTcUTcUTcVCcVDcUTcUTcUTcTUcQlcQlcQlcQlcWgdaWdaXdaYdaZcWgdbadaNdaNdbbdbccWgdbddbedbfcWgcQlcQlcQlcQlcQlcQlaafaafaafaafaafaafaafdbgdbgdbgdbgdbgaafaaaaaacXTdbhdbicZzcUhcYEdaAdaAdaAdbmdaAdaBcXTcQlcQlcQlcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcTTcTUcQlcQlcVrcSJcQlcQlcVvcUTcUTcUTcUTcUTcVwcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcSEcSGcQlcQlcQlcTfcQlcQlcQlcQlcWgcWgcWgcWgcWgcWgdbndbodbpdbqdbccWgdaodbrdaocWgcQlcQlcQlcQlcQlcQlaaaaaaaafaaaaaaaaaaafdbgdbgdbgdbgdbgaafaaacYmcXVdbsdbtdbucXTcXTcXTcXTcXTcXTdbvdbwcXTcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcTTcUTcUTcUTcTUcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcTfcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcQlcQlcTTcUTcUTcUTcVCcVDcUTcUTcUTcTUcQlcQlcQlcQlcWgdaWdaXdaYdaZcWgdbadaNdaNdbbdbccWgdbddbedbfcWgcQlcQlcQlcQlcQlcQlaafaafaafaafaafaafaafdbgdbgdbgdbgdbgaafaaaaaacXTdbhdbicZzcUhcUQdaAdaAdaAdbmdaAdaBcXTcQlcQlcQlcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcTTcTUcQlcQlcVrcSJcQlcQlcVvcUTcUTcUTcUTcUTcVwcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcSEcSGcQlcQlcQlcTfcQlcQlcQlcQlcWgcWgcWgcWgcWgcWgdbndbodbpdbqdbccWgdaodbrdaocWgcQlcQlcQlcQlcQlcQlaaaaaaaafaaaaaaaaaaafdbgdbgdbgdbgdbgaafaaacYmcXVdbsdbtdbucXTcXTcXTcXTcXTcXTdbvcYEcXTcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOTcOTcOTcOTcQlcQlcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcTpcQlcQlcTTcUTcUTcVCcVDcUTcUTcVwcQlcQlcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcTTcUTcUTcTUcQlcQlcQlcQlcQlcQlcWgcWgcWgcWgcWgcWgcWgdbxdbycXvdbzcQlcQlcQlcQlcQlaaaaaaaaaaafaaaaaaaaaaafdbgdbgdbgdbgdbgdbAcYUdbBdbCcYodbDcZzdbEdbFdbGdbHdbIdbJdbKdbwcXTcQlcQlcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcRacOTcQlcQlcQlcQlcSEcSGcQlcQlcQlcQlcTpcQlcOTcOTcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOTcOTcOTcQlcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcQlcQlcQlcSEdbLdbMdbMdbMdbMdbNcSGcQlcQlcQlcQlcQlcQlaafaafaafaafaafaafaafaafdbgdbgdbgdbgdbgdbOcYodbOcYocYodbDcZzcYocYodbPcYocYodbQdbRcUicXTcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcRacOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcQlcTfcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlaaaaaaaaaaaaaaaaaaaafdbgdbgdbgdbgdbgcXUcYUdbTdbUcYodbDdbVdaedaedbWdaedaedbXdbYcYFcXTcQlcQlcQlcVccRacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcOTcOTcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcQlcTTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcUTcTUcQlcQlcQlcQlcQlcQlaaaaaaaaaaaaaaaaafdbgdbgdbgdbgdbgaafaaadavcXVdcadbDcZzcYocYodcbdbFcYocYodbvdbwcXTcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcTfcQlcVrcSJcQlcQlcQlcTbcTbaaaaaaaaaaafdbgdbgdbgdbgdbgaafaaaaaadcddcddcedcfdaedcgdchdcidcjdckdbRdbwcXTcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcTfcQlcVrcSJcQlcQlcQlcTbcTbaaaaaaaaaaafdbgdbgdbgdbgdbgaafaaaaaadcddcddcedcfdaedcgdchdcidcjdckdbRcYEcXTcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcTTcUTcVCcVDcUTcUTcUTdcldcmdcndcndcndcndcndcndcndcndcndcndcndcndcodcpdcqcYocYocYodcrdcsdctdctcTZcQGcXTcQlcQlcOTcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcQlcQlcQlcQlcQlcQlcQlcOTcOTcQlcQlcQlcQlcQlcQlcQlcQlcQlcSEcSGcQlcQlcQlcTbcTbaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcddcdcXTcXUcXVcXTcXTcXTcXTcXTcXTcXTcXTcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcOTcOTcOTcOTcOTcOTcOTcOTcRacVucQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa