diff --git a/baystation12.dme b/baystation12.dme
index 677d4ed90c..ff370aa446 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -323,6 +323,7 @@
#include "code\game\machinery\spaceheater.dm"
#include "code\game\machinery\status_display.dm"
#include "code\game\machinery\suit_storage_unit.dm"
+#include "code\game\machinery\supply_display.dm"
#include "code\game\machinery\syndicatebeacon.dm"
#include "code\game\machinery\teleporter.dm"
#include "code\game\machinery\turrets.dm"
diff --git a/code/WorkInProgress/computer3/computers/communications.dm b/code/WorkInProgress/computer3/computers/communications.dm
index 16123e42e7..b2a7e55f72 100644
--- a/code/WorkInProgress/computer3/computers/communications.dm
+++ b/code/WorkInProgress/computer3/computers/communications.dm
@@ -183,6 +183,8 @@
if("setmsg2" in href_list)
stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40)
computer.updateDialog()
+ if("settime")
+ post_status(href_list["time"])
// OMG CENTCOMM LETTERHEAD
if("MessageCentcomm" in href_list)
@@ -348,6 +350,7 @@
dat += "\[ Back \]
"
dat += "Set Status Displays
"
dat += "\[ Clear \]
"
+ dat += "\[ Station Time \]"
dat += "\[ Shuttle ETA \]
"
dat += "\[ Message \]"
dat += "
- Line 1: [ stat_msg1 ? stat_msg1 : "(none)"]"
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index ad18204a2a..03c8ca85a0 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -180,6 +180,8 @@
if("setmsg2")
stat_msg2 = input("Line 2", "Enter Message Text", stat_msg2) as text|null
src.updateDialog()
+ if("settime")
+ post_status(href_list["time"])
// OMG CENTCOMM LETTERHEAD
if("MessageCentcomm")
@@ -352,6 +354,7 @@
if(STATE_STATUSDISPLAY)
dat += "Set Status Displays
"
dat += "\[ Clear \]
"
+ dat += "\[ Station Time \]
"
dat += "\[ Shuttle ETA \]
"
dat += "\[ Message \]"
dat += "- Line 1: [ stat_msg1 ? stat_msg1 : "(none)"]"
@@ -412,6 +415,7 @@
if(STATE_STATUSDISPLAY)
dat += "Set Status Displays
"
dat += "\[ Clear \]
"
+ dat += "\[ Station Time \]
"
dat += "\[ Shuttle ETA \]
"
dat += "\[ Message \]"
dat += "- Line 1: [ stat_msg1 ? stat_msg1 : "(none)"]"
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 6ffb72f88a..6ba22a1e75 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -1,4 +1,3 @@
-#define CHARS_PER_LINE 5
#define FONT_SIZE "5pt"
#define FONT_COLOR "#09f"
#define FONT_STYLE "Arial Black"
@@ -31,13 +30,21 @@
var/index2
var/frequency = 1435 // radio frequency
- var/supply_display = 0 // true if a supply shuttle display
var/friendc = 0 // track if Friend Computer mode
+ var/ignore_friendc = 0
maptext_height = 26
maptext_width = 32
+ var/const/CHARS_PER_LINE = 5
+ var/const/STATUS_DISPLAY_BLANK = 0
+ var/const/STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME = 1
+ var/const/STATUS_DISPLAY_MESSAGE = 2
+ var/const/STATUS_DISPLAY_ALERT = 3
+ var/const/STATUS_DISPLAY_TIME = 4
+ var/const/STATUS_DISPLAY_CUSTOM = 99
+
// new display
// register for radio system
/obj/machinery/status_display/New()
@@ -63,33 +70,34 @@
// set what is displayed
/obj/machinery/status_display/proc/update()
- if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist
+ if(friendc && !ignore_friendc)
set_picture("ai_friend")
- return
+ return 1
switch(mode)
- if(0) //blank
+ if(STATUS_DISPLAY_BLANK) //blank
remove_display()
- if(1) //emergency shuttle timer
+ return 1
+ if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
if(emergency_shuttle.waiting_to_leave())
- var/line1 = "-ETD-"
- var/line2
+ message1 = "-ETD-"
if (emergency_shuttle.shuttle.is_launching())
- line2 = "Launch"
+ message2 = "Launch"
else
- line2 = get_shuttle_timer_departure()
- if(length(line2) > CHARS_PER_LINE)
- line2 = "Error!"
- update_display(line1, line2)
+ message2 = get_shuttle_timer_departure()
+ if(length(message2) > CHARS_PER_LINE)
+ message2 = "Error"
+ update_display(message1, message2)
else if(emergency_shuttle.has_eta())
- var/line1 = "-ETA-"
- var/line2 = get_shuttle_timer_arrival()
- if(length(line2) > CHARS_PER_LINE)
- line2 = "Error!"
- update_display(line1, line2)
+ message1 = "-ETA-"
+ message2 = get_shuttle_timer_arrival()
+ if(length(message2) > CHARS_PER_LINE)
+ message2 = "Error"
+ update_display(message1, message2)
else
remove_display()
- if(2) //custom messages
+ return 1
+ if(STATUS_DISPLAY_MESSAGE) //custom messages
var/line1
var/line2
@@ -111,37 +119,18 @@
if(index2 > message2_len)
index2 -= message2_len
update_display(line1, line2)
- if(4) // supply shuttle timer
- var/line1 = "SUPPLY"
- var/line2 = ""
-
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
- if (!shuttle)
- line2 = "Error"
- else if(shuttle.has_arrive_time())
- line2 = get_supply_shuttle_timer()
- if(lentext(line2) > CHARS_PER_LINE)
- line2 = "Error"
- else if (shuttle.is_launching())
- if (shuttle.at_station())
- line2 = "Launch"
- else
- line2 = "ETA"
- else
- if(shuttle.at_station())
- line2 = "Docked"
- else
- line1 = ""
- update_display(line1, line2)
+ return 1
+ if(STATUS_DISPLAY_TIME)
+ update_display("TIME", worldtime2text())
+ return 0
/obj/machinery/status_display/examine()
set src in view()
. = ..()
switch(mode)
- if(1,2,4)
+ if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME,2)
usr << "The display says:
\t[message1]
\t[message2]"
-
/obj/machinery/status_display/proc/set_message(m1, m2)
if(m1)
index1 = (length(m1) > CHARS_PER_LINE)
@@ -200,22 +189,21 @@
/obj/machinery/status_display/receive_signal(datum/signal/signal)
switch(signal.data["command"])
if("blank")
- mode = 0
+ mode = STATUS_DISPLAY_BLANK
if("shuttle")
- mode = 1
+ mode = STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME
if("message")
- mode = 2
+ mode = STATUS_DISPLAY_MESSAGE
set_message(signal.data["msg1"], signal.data["msg2"])
if("alert")
- mode = 3
+ mode = STATUS_DISPLAY_ALERT
set_picture(signal.data["picture_state"])
- if("supply")
- if(supply_display)
- mode = 4
+ if("time")
+ mode = STATUS_DISPLAY_TIME
/obj/machinery/ai_status_display
icon = 'icons/obj/status_display.dmi'
diff --git a/code/game/machinery/supply_display.dm b/code/game/machinery/supply_display.dm
new file mode 100644
index 0000000000..e9a5065907
--- /dev/null
+++ b/code/game/machinery/supply_display.dm
@@ -0,0 +1,40 @@
+/obj/machinery/status_display/supply_display
+ ignore_friendc = 1
+
+/obj/machinery/status_display/supply_display/update()
+ if(!..() && mode == STATUS_DISPLAY_CUSTOM)
+ message1 = "SUPPLY"
+ message2 = ""
+
+ var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ if (!shuttle)
+ message2 = "Error"
+ else if(shuttle.has_arrive_time())
+ message2 = get_supply_shuttle_timer()
+ if(lentext(message2) > CHARS_PER_LINE)
+ message2 = "Error"
+ else if (shuttle.is_launching())
+ if (shuttle.at_station())
+ message2 = "Launch"
+ else
+ message2 = "ETA"
+ else
+ if(shuttle.at_station())
+ message2 = "Docked"
+ else
+ message1 = ""
+ update_display(message1, message2)
+ return 1
+ return 0
+
+/obj/machinery/status_display/supply_display/examine()
+ if(mode == STATUS_DISPLAY_CUSTOM)
+ usr << "The display says:
\t[message1]
\t[message2]"
+ else
+ ..()
+
+/obj/machinery/status_display/supply_display/receive_signal/(datum/signal/signal)
+ if(signal.data["command"] == "supply")
+ mode = STATUS_DISPLAY_CUSTOM
+ else
+ ..(signal)
diff --git a/code/unused/pda2/smallprogs.dm b/code/unused/pda2/smallprogs.dm
index 549e8fc0f5..07ff6f0e5b 100644
--- a/code/unused/pda2/smallprogs.dm
+++ b/code/unused/pda2/smallprogs.dm
@@ -40,6 +40,7 @@
dat += "Station Status Display Interlink
"
dat += "\[ Clear \]
"
+ dat += "\[ Station Time \]
"
dat += "\[ Shuttle ETA \]
"
dat += "\[ Message \]"
@@ -64,6 +65,8 @@
post_status("message", message1, message2)
if("alert")
post_status("alert", href_list["alert"])
+ if("time")
+ post_status("alert")
if("setmsg1")
message1 = input("Line 1", "Enter Message Text", message1) as text|null
diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm
index b13c0978bc..1b4a4308fc 100644
--- a/maps/tgstation2.dmm
+++ b/maps/tgstation2.dmm
@@ -3286,7 +3286,7 @@
"blj" = (/obj/structure/table,/obj/item/clothing/head/soft,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/soft,/turf/simulated/floor,/area/quartermaster/storage)
"blk" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/quartermaster/storage)
"bll" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor{dir = 2; icon_state = "yellowpatch"},/area/hallway/primary/aft)
-"blm" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/secure_closet/cargotech,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/quartermaster/storage)
+"blm" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/office)
"bln" = (/obj/structure/closet/secure_closet/cargotech,/turf/simulated/floor,/area/quartermaster/storage)
"blo" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/quartermaster/storage)
"blp" = (/turf/simulated/floor,/area/quartermaster/storage)
@@ -3454,13 +3454,13 @@
"bov" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal)
"bow" = (/turf/space,/area/supply/station)
"box" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage)
-"boy" = (/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage)
+"boy" = (/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage)
"boz" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/quartermaster/storage)
"boA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/quartermaster/storage)
"boB" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/turf/simulated/floor,/area/quartermaster/storage)
"boC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/quartermaster/office)
"boD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "Robotics"; name = "Robotics"},/turf/simulated/floor/plating,/area/storage/emergency3)
-"boE" = (/obj/machinery/status_display{density = 0; pixel_y = 2; supply_display = 1},/turf/simulated/wall,/area/quartermaster/office)
+"boE" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/storage)
"boF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/office)
"boG" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"boH" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central)
@@ -4006,7 +4006,7 @@
"bzb" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holosign/surgery,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Pre-Op Prep Room"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgeryprep)
"bzc" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/medical/surgeryobs)
"bzd" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage)
-"bze" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/status_display{density = 0; pixel_y = -30; supply_display = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage)
+"bze" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/status_display{density = 0; pixel_y = -30},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage)
"bzf" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage)
"bzg" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage)
"bzh" = (/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/quartermaster/storage)
@@ -11081,6 +11081,7 @@
"efe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
"eff" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor,/area/tcommsat/entrance)
"efg" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance)
+"efh" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/secure_closet/cargotech,/turf/simulated/floor,/area/quartermaster/storage)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11213,17 +11214,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMaKRcbnbUVbePbePbeQbePbePbePbeRaPBaPBaPBaPBaOlaCSaZYbeSbeTcbqaYybeVbeWbUWaPEaPEaPEaPEbUmaPEbUybfabalbUqbbHbcQbUicbpbalbbJbarbfcbcSbcSbPhbfebarbULaIOaYVbTrbfhbgCbembfibfjbepaGibfkbaAbflbfmbfnbetbfobetbdfbfpbfqaCVbfrcbvbftbfubfubfvbclbfwawGcCTcuScbAcvvcxRdPwdPxdTPbmZcFsdPxcbCcbEbTtdTSctbctbctaaZFaZFaZFaZFaZFbfDbfybEuaZFctccbwctdcGebWUbGabFebMfdTUdTVdTWaZFaZFaZFaZFcbFbfOcbGbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUcGxcGybfWaaeaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQcrWcrQcbdcbibfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebTIbPBbUubUrbUrbUtbUsbUrbUobUobUpbUobUnbUlbUlbSbbRubTJbTRbUCbTQbUBbUBbTPcslbalbTKbarbgybcSbcSbPhbgzbgAbffaIOaYVbaAbgCbTpbdabdabdabdaaGibgEbaAbaBbgFbgGbWJbgIbgJbgGbgKbaBaCVbURbUQbgNbgObgPbgQbgRbgSawGcsoaHfcsnawGbTqbTqbgUbgUbgUbgUcmTcmTcsUcsVcsrcsscsVcsUcmTcmTcmTckbckbckbckbckbbcqbcqcsJbhbbhbbhbbhbbhbbktcsXbcqcsYcsZcbmbhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbTqcuRcuRbNtbhrbhgcBhaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMaKRcaGbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbTHaYyaZYbhzbcJbhAaYybUabTZbXXbTSbMubTUbTXbTWbTzbTXbTMbTNbLkbTCbLkbLkbKEbTDblqbTbcaKbcSbcSbTLbhUbtxbffaIObTVbaAbhXbaAbhZbVnbibcaJbTYbaAbaAbaBbiebifbigbihbiibijbikbaBaCVbTybimckrbiobipbgQbclbiqawGcrtcbbbDbawGcqlcqncqSbTncrDcrGcrMcrFcqUcqVcrAcrBcogcofcpscoYcmTcmIcrocmUcpMckbcrscpNcrpcptbVUcktcktclSbktcggbiSbiScbabiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbNtbSQbTibSQbNtbThbTgbNtbjebTEcrKbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaacdlaMYbZRaIQaxTbePbjibePbjjbjkbjlbQYbePbjnbTTaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsbUFbWfbalbalbalbalbalbalbalbrnbalbalbalbMVbalblubRFbjzbcSbcSbPhbjAbgAbZXaIOcalbaAbjCbaAbaAbaAbaAbxBbTkbaAcdmbTlbZWbjHbbXbjIbbXbjJcarbTvceTbTybjNbclbjObjPbgQcapbjRbaDbSNaIObDbcgQcqOcgPcawcqNcrfbIKcqPcaxchochocgRcgScjtcjpcjtciEciDcazciBciAckcckbcjDcgecrncgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlblFbKAcatbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWcRSceqbePbkWbkXbkYbkZblablbcerbldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhbWEbWIbalbljblkcrwblmblnbloblpcQkblrblschfckRcnZbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTcmFbXmbWTbXkbXjclkbTvbTvbTvbTvbWHbTvbTvbTvbTvckkbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcVhcUBbgUcUZdUTcjtcjtcjtcjtcjtcjpcezdVydVBdVAdVDdVCdVuckbdVwceucRYcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXyceZcfhcffbXhbXgceNbNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaacdlaMYbZRaIQaxTbePbjibePbjjbjkbjlbQYbePbjnbTTaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsbUFbWfbalbalbalbalboEbalbalbrnbalbalbalbMVbalblubRFbjzbcSbcSbPhbjAbgAbZXaIOcalbaAbjCbaAbaAbaAbaAbxBbTkbaAcdmbTlbZWbjHbbXbjIbbXbjJcarbTvceTbTybjNbclbjObjPbgQcapbjRbaDbSNaIObDbcgQcqOcgPcawcqNcrfbIKcqPcaxchochocgRcgScjtcjpcjtciEciDcazciBciAckcckbcjDcgecrncgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlblFbKAcatbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWcRSceqbePbkWbkXbkYbkZblablbcerbldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhbWEbWIbalbljblkcrwefhblnbloblpcQkblrblschfckRcnZbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTcmFbXmbWTbXkbXjclkbTvbTvbTvbTvbWHbTvbTvbTvbTvckkbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcVhcUBbgUcUZdUTcjtcjtcjtcjtcjtcjpcezdVydVBdVAdVDdVCdVuckbdVwceucRYcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXyceZcfhcffbXhbXgceNbNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQcOfccGccPccHccZccZcdbcdkaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalcFHbalblpblpblpblpblpblpblpblpbnbbVobndbcSbWebWdbWdbWdbWabWcbVYbVcbVgbWibWncrRcoecmGbWhbWgbWqbWpbVsbWrcjVbnxbnybnzbnAbnBbnCbnzbnDbnxcbfbTybnFbnGbnFbaDbaDbaDbWAbaDdUZaIObDbcgQcqOcgPcdDdVbbWBbgUdUSdUTdUXdUYdUVdUWdVndVmceddVkcmTdVpdUEcegdVfdVedVddVccONdVidVhdVgdVidVqbUedVrdVsdTXbnYdTYboaceibocbodboebofbofcejbkCbohbhlcekbhTddlbNtbVZbVAbVzbUJbVVbVXbNtbmPbkSborbhgaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabmQcLFcIHcInaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaaeaaebowbowbowbowbowbowbowaaaaaaboxboybozdzaboBblpblpblpblpblpblpblpblpbUNbjzbUOdYAboEboFbarbarbVGbVHbaraUnboHboIbVEaUnboLboMboMbNsboMbVFbUGboMchdboQboRbnzboSbnBboSbnzboTboQcbfbVkboVbfuccvbVybVBbVDcolbnFdzjaIObvUbgUbWmcqndUQdURdUNbixdUOdUPdUJdUKdULbVWdUGdUFdUIdUHcmTckbdUEdUDdUAckbdUCdUBdUydUxdUzdUzccAdUwbktcggbiSdUubkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlccybhTccwbNtbUYbUTbUPbUJbNHbUIbNtbkRbkSbpMbhgaaaaaaaaaaaaaaebpNbpObMebpObMebpObpQaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabmQcLFcIHcInaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaaeaaebowbowbowbowbowbowbowaaaaaaboxboybozdzaboBblpblpblpblpblpblpblpblpbUNbjzbUOdYAblmboFbarbarbVGbVHbaraUnboHboIbVEaUnboLboMboMbNsboMbVFbUGboMchdboQboRbnzboSbnBboSbnzboTboQcbfbVkboVbfuccvbVybVBbVDcolbnFdzjaIObvUbgUbWmcqndUQdURdUNbixdUOdUPdUJdUKdULbVWdUGdUFdUIdUHcmTckbdUEdUDdUAckbdUCdUBdUydUxdUzdUzccAdUwbktcggbiSdUubkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlccybhTccwbNtbUYbUTbUPbUJbNHbUIbNtbkRbkSbpMbhgaaaaaaaaaaaaaaebpNbpObMebpObMebpObpQaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaxRcHMcHMbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpdzKbqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbUHbqhbqibarbqjbPhcbObqlbtfbffbqncbHaUnaUnboMbqpbVdbqrbXdbTuboMcgLbVfbVhcbIbqybqzbqycbKbVibVjceTbVkbqEbfubqFbaDbqGbnFcqbbnFdzVaIOcHTbgUdUjdUkdUhdUiccibixdUedUfdUcdUdccadUbbZzdUsdUrdUqdUpbPZccjdUnbPZbPZbPZbPZdUmdUlbPZbPZbktbktbktcggbiSdTXbnYdTYbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbkJbKAcbZbNtbUEcbQbUzbUDbNHbUvbNtbUwbmrbhgbhgaaaaaaaaaaaaaaebrobrpbrqbrrbrrbrsbroaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpbPHblpbPnbPnbPnbPCboAblpblpblpbnbbqgbqTbrzboZbrCbrDbrEbPhbcSbrFbRgbffbqnbrHbrIbrJbNNbrLbPPbrNbPObNMboMaaebrQbrRbnzbqybrSbqybnzbrTbrUcbfbPWbPSbrXbrYbaDbrZbnFcrXaUnbpcbNycfEbNzbNAbNCbNDbPKbIibixbPMbPQbLDbPRbPubORbLDbLDbPYbPUbPZbPZbQxbQpbQFbIrbQIbQHbQSbQJbQVbPZcGmbRabOVbQXbRfbRhbRbbRbbPGbOWbkBbsFbrebrebrebOZbkCbsHbkJbKGbKGcelbkJbNEbNKbNJbNIbNHbNLbNtbmPbsPbhgaaaaaaaaaaaaaaaaaebsQbsRbrqbrrbrqcfLbMeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcfDbsUcfDbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbndboCbtabtbbtcbPhbcSbcSbtdaIObqnbtebtfbtgbPrbtibOObtkbPqbNxboMaaebrUbrUbIgbtobtpbnzbtqbOvbNgcaqbNqbtvbtvbtvbtvbtvbtvbXJawGbLTaHfaHfawGbMcbMmbLUcfbbPfbixcfdbOYbPubPvbPsbPtbOibOhcdQbNUbOybOubOkbOjbOCbOBbOAbOzceFbOFbOEbYAdBEbPAbPAboDcahbPDbPDbPDbtZbHWbkBbubbkCbkCbucbPgbkCbueblFbMYbOebMZblFbMtbMCbMvbOfbxcbkJbNtccpbhgbhgbHYbJmbJmbJmbJublFbrobrrbrqbrrbrrcfjbroaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaafaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbndboCbuybuzbtcbOxbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbOmdAeboMbOpbOobNBbOnbuRbrSbuRbOvcdpcdacdabNqbuUbuVbuWbuXbuYbMTbMkawGbvcaIOaIOawGbLSbMnbMrbMBbLrbLtbMUbnebLhbMPbZGbMRbNabLFbwubNbbApbHvbLvbMWbNlbNkbNGbNobNfbNebNibNhbMjbMlbMhbMibiSbvybvzbMgbvBbvBbkBbvCbvDbvEbkBbNVbkCbvGbKsbKrbKkbKjbKdbKabKXbKPbKLbKHbKGbKAbKvbKubLObMobMpbMqbMqbMLbMSbvXbpObMeccRbMebpObvZaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbXSblpblpblpblpblpblpblpboAblpbuvbwdbalbweaLHbndbncbqfbwgbqfbNFbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbJTbMdboMbwpbwnbJVbzzbNgbNjbNmbUSbJKbVebXubNqbGCbwybwzbwAbwBbwBbnTbUcbambdDaIRbgUbSkbLRbLNbLPbeZbixbLYbLZbLDbLXbHsbLWbFNbLDbLAbLzbPZbPZbPZbDcbDcbHfbIIbHfbAqbLJbLGbAqbAqbAqbAqedtbiSbiSblFblFblFbxbbkBbkBbkBbkBbkBbMMbxebxfbxgbGWbGPbGMbGSbGRbHpbhTbhTbHqbHhbHabHnbHjbHNbHQbGRbHFbGRbInblFbHYbJmbJubJgblFbZYaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbxubxvblpblpbZMbSRbSSbSRbSXbSRbSYbTabSTbSUbSVbzmbFnbSWbTcbTdbSVbZNbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbSdbRzbXwbSfbRUcqibSubSvbSscqLcqxcqKcqkbShbZObycbycbydbyebyfbQEbtvcbPbDNbONbWvbymbXebXobXpbVtbVwcaWbVIbPucbccbebLWcpzbPubXxbWubRSceEceJcqebDccckccFccEbAqedubTscpybRvdFnbAqbwNbRybZlbYPbZkbYubYubXDbXEbYubYHbYBbYEbZvbZubYubZobZKbZFbyPbyQbSLbySbkJbkJbkJbyScqgcqfbyVbHYbJublFbhTbMqbVlbVpbTGbUkbUAbUZaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcoMbzdcoMbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXcoCbwfbzoboEbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwcoZbwjbQTboMbRGbRAbTobOpbSObzEbSPcdabSKcoOcoXbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHcoabOMbOJbOKbEpbXtbXrbXsbPZbPZbLDbSebWzbLDbWybWubXqbRRbRQbOSbDccnsbVRbVQbWtbRcbQUbRPbRjedvbYcdFTbYObStbSwbSybKabKabSqbKabSrbKabKXbSibSibSibSnbSlbSpbSobAwbAxbRTbAzbAAbABbACbySbHMchObAFaaeaaeblFbRJbRObRHbRHbRDbREbRCblFaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcoMbzdcoMbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXcoCbwfbzoblmbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwcoZbwjbQTboMbRGbRAbTobOpbSObzEbSPcdabSKcoOcoXbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHcoabOMbOJbOKbEpbXtbXrbXsbPZbPZbLDbSebWzbLDbWybWubXqbRRbRQbOSbDccnsbVRbVQbWtbRcbQUbRPbRjedvbYcdFTbYObStbSwbSybKabKabSqbKabSrbKabKXbSibSibSibSnbSlbSpbSobAwbAxbRTbAzbAAbABbACbySbHMchObAFaaeaaeblFbRJbRObRHbRHbRDbREbRCblFaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbRKbASbAUbRLbAWbAXbAYbAUbffaIOclFbBaaUnboMawGawGawGawGbQlboMbOpbQObOpbOpbQnbQobQncdacdacdacdabNqawGawGawGawGawGbtvbPobtvbpcbVabuDbVbbRsbQkbUUckLbUdbUfbUgbrAbTFbRpbUbbRrbVKbVJbVMbVLbVxbRxbRBbVCbQcbRtbVvbRwbVmbPTbQbbQaedwbPEbAqchNbSJbzCbkJbkJbkJbzCbQjbzCbzCbELbQhbQiblTblTbRobFybQdbwQbAwbRnbQZbBZbCabCbbCcbySbHMchObCdaaaaaablFbRlbRmblFbMSblFblFbMSblFaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbyaaeaaaaaaaaaaaabASbChbNpbQRbCkbAUbQQbCmbRibCobAUbffaIObQMbQLbQNdAfbPzbPebPIbPFbPNbPJbRebQWaXNbCzbQDbCBbCCbCDaIObQKaIObDbaIOaNsbCubCGbCHbQPbPdcgkbpcbDNbSHbymbymbSBbSBbSBbymbymbSmbSxbRXbRYbScbSgbRYbRXbRWbRVbRSbQwbQubQtbDcbQsbRNbRMbRIbOtbOredxedybNrbAqbRkbCTbzCbPbbQrbQgbQmbQqbPabQfbELbOPbOTbIZblTblTbQebQdbwQbDubDvbPXbDxbLubDzbJdbySbHMcfMbyVbyVbyVbyVbyVblFblFaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDmbDFbDGbDnbDIbDlbDKbAUbffbDLbDiaIOaIOaIObDbaNsbCubCGbDNaIOaIObDdaIOaIObDPbDQbDRaIOaIOaIOaIObDbaIOaNsbCubCGbDSaXNbDYaXNbFrbENbJfbymbEbbBxbBxbBxbEebEdbEgbEfbytbypbzGbEjbCUbCYbCZbDabDcbyibykbJebDcbDhbDkbDwbDEbAgbCQbyledybAgbAqedBedHbzCbEqbEobEybEtbxFbxwbybbELbEBbEzbEmbEmblTbxibxnbxobEDbEEbxqbDzbDtbxpbDAbySbHMbINbyybyxbyNbKfbyVaaeaaeaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebEPbEQbEQbFgbtybtybjBbjBbjBbjBbEOaaeaaeaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa