From 461e95114cc8edd6045d351c9d0e6fa24f562de9 Mon Sep 17 00:00:00 2001 From: Rares Bozga Date: Sat, 29 Nov 2025 22:53:32 +0200 Subject: [PATCH] Initial commit --- README.md | 5 +- data/.DS_Store | Bin 0 -> 6148 bytes data/phones/.DS_Store | Bin 0 -> 8196 bytes data/phones/songs/.DS_Store | Bin 0 -> 6148 bytes data/phones/songs/A DARK ZONE.nbs | Bin 0 -> 102716 bytes data/phones/songs/ASGORE.nbs | Bin 0 -> 124963 bytes data/phones/songs/Adventure Board.nbs | Bin 0 -> 17159 bytes data/phones/songs/Africa.nbs | Bin 0 -> 32165 bytes data/phones/songs/An Enigmatic Encounter.nbs | Bin 0 -> 178914 bytes .../songs/Another One Bites the Dust.nbs | Bin 0 -> 14685 bytes .../songs/Attack of the Killer Queen.nbs | Bin 0 -> 61758 bytes data/phones/songs/Bad Apple.nbs | Bin 0 -> 20589 bytes .../songs/Battle! Vs Championship Trainer.nbs | Bin 0 -> 443247 bytes .../songs/Beware the Forest's Mushrooms.nbs | Bin 0 -> 30619 bytes data/phones/songs/Big Shot.nbs | Bin 0 -> 43048 bytes data/phones/songs/Bohemian Rhapsody.nbs | Bin 0 -> 13888 bytes data/phones/songs/Bonetrousle.nbs | Bin 0 -> 38269 bytes data/phones/songs/Bowser's Road.nbs | Bin 0 -> 24584 bytes data/phones/songs/Cyber World?.nbs | Bin 0 -> 98009 bytes data/phones/songs/Death by Glamour.nbs | Bin 0 -> 57657 bytes .../songs/Field of Hopes and Dreams.nbs | Bin 0 -> 50481 bytes data/phones/songs/Finale.nbs | Bin 0 -> 17861 bytes data/phones/songs/Flight of The Bumblebee.nbs | Bin 0 -> 8439 bytes data/phones/songs/GLACEIR.nbs | Bin 0 -> 40604 bytes data/phones/songs/He's A Pirate.nbs | Bin 0 -> 6962 bytes data/phones/songs/Hotel California.nbs | Bin 0 -> 31587 bytes data/phones/songs/Icirrus City.nbs | Bin 0 -> 21323 bytes data/phones/songs/It's TV Time!.nbs | Bin 0 -> 97435 bytes data/phones/songs/Kirby's Dreamland.nbs | Bin 0 -> 4096 bytes data/phones/songs/Madness.nbs | Bin 0 -> 47904 bytes data/phones/songs/Moonlight Sonata.nbs | Bin 0 -> 65536 bytes data/phones/songs/Papers Please.nbs | Bin 0 -> 4814 bytes data/phones/songs/Pokemon Theme.nbs | Bin 0 -> 7859 bytes data/phones/songs/Princess of China.nbs | Bin 0 -> 8022 bytes data/phones/songs/Rat Dance.nbs | Bin 0 -> 37552 bytes data/phones/songs/Ruins.nbs | Bin 0 -> 63054 bytes data/phones/songs/SMB3 Athletic.nbs | Bin 0 -> 4180 bytes data/phones/songs/Servants of the Scourge.nbs | Bin 0 -> 1126810 bytes data/phones/songs/Slider.nbs | Bin 0 -> 25353 bytes data/phones/songs/Smells Like Teen Spirit.nbs | Bin 0 -> 46957 bytes .../phones/songs/Stardust Speedway (Past).nbs | Bin 0 -> 32237 bytes data/phones/songs/TV WORLD.nbs | Bin 0 -> 52744 bytes data/phones/songs/The Entertainer.nbs | Bin 0 -> 12616 bytes .../songs/Through the Fire and Flames.nbs | Bin 0 -> 86368 bytes data/phones/songs/Wii Shop.nbs | Bin 0 -> 38376 bytes data/phones/texts/.DS_Store | Bin 0 -> 6148 bytes ...e_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 7 + ...e_b78fb3c7-4d0c-43d6-8959-91904e8e02ab.yml | 10 + ...0_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 10 + ...7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 7 + ...1_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml | 7 + ...1_136dd01d-b56c-4f1b-b21b-13e2be636fb0.yml | 10 + ...1_366837a1-3777-4484-bcdd-ae1de590dc07.yml | 7 + ...1_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 28 + ...1_678a58f0-d9e1-4349-9e40-1b7bb01f7da4.yml | 4 + ...1_9975efa7-ba0c-42fb-ac32-97af181e6495.yml | 37 ++ ...1_b421a0ff-8813-450b-935b-253273d60860.yml | 31 + ...1_b6de9919-dbb6-41ba-ae60-42dc9607c9ab.yml | 23 + ...1_b6fd1de5-b171-4dc8-9ffd-b8daed7683b7.yml | 5 + ...1_b78fb3c7-4d0c-43d6-8959-91904e8e02ab.yml | 16 + ...1_b98fac04-bd68-4fcc-beea-3329c5889538.yml | 25 + ...1_c59ee3a6-a066-4de4-bd0e-d22db1b6d818.yml | 13 + ...1_c619da4e-a039-4567-8bef-8f0119b86d17.yml | 7 + ...1_f6042456-6429-4a18-bcf1-7b2bbd83b650.yml | 10 + ...4_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 4 + ...5_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 37 ++ ...0_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 31 + ...b_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 23 + ...7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 5 + ...b_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml | 10 + ...b_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 16 + ...8_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 25 + ...8_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 13 + ...7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 7 + ...7_f5e06a85-c689-4bcb-9b77-cb1ac5cc0133.yml | 4 + ...3_c619da4e-a039-4567-8bef-8f0119b86d17.yml | 4 + ...0_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml | 10 + scripts/.DS_Store | Bin 0 -> 8196 bytes scripts/animations/animations_commands.dsc | 80 +++ scripts/animations/animations_world.dsc | 34 ++ scripts/announcers/announcers_commands.dsc | 57 ++ scripts/apartments/apartments_commands.dsc | 147 +++++ scripts/apartments/apartments_tasks.dsc | 111 ++++ scripts/apartments/apartments_world.dsc | 156 +++++ scripts/automoney/automoney_world.dsc | 12 + scripts/carry/carry_commands.dsc | 66 +++ scripts/character/character_commands.dsc | 102 ++++ scripts/character/character_tasks.dsc | 13 + scripts/character/character_world.dsc | 15 + scripts/chat/chat_commands.dsc | 418 ++++++++++++++ scripts/chat/chat_data.dsc | 142 +++++ scripts/chat/chat_tasks.dsc | 266 +++++++++ scripts/chat/chat_world.dsc | 11 + scripts/furniture/furniture_commands.dsc | 14 + scripts/furniture/furniture_config.dsc | 47 ++ scripts/furniture/furniture_tasks.dsc | 92 +++ scripts/furniture/furniture_world.dsc | 105 ++++ scripts/guns/guns_commands.dsc | 29 + scripts/guns/guns_tasks.dsc | 10 + scripts/guns/guns_world.dsc | 65 +++ scripts/lib/anvil_input.dsc | 62 ++ scripts/lib/ball.dsc | 149 +++++ scripts/lib/custom_block.dsc | 179 ++++++ scripts/lib/formats.dsc | 8 + scripts/lib/gui_restore.dsc | 63 ++ scripts/lib/menu.dsc | 100 ++++ scripts/lib/textbox.dsc | 317 ++++++++++ .../liteprofilesutils_command.dsc | 26 + .../liteprofilesutils_data.dsc | 12 + .../liteprofilesutils_tasks.dsc | 126 ++++ .../liteprofilesutils_world.dsc | 95 +++ scripts/misc/compatibility_check.dsc | 38 ++ scripts/payto/.DS_Store | Bin 0 -> 6148 bytes scripts/payto/payto_commands.dsc | 34 ++ scripts/phones/phones_commands.dsc | 544 ++++++++++++++++++ scripts/phones/phones_tasks.dsc | 455 +++++++++++++++ scripts/phones/phones_world.dsc | 185 ++++++ scripts/rankup/rankup_commands.dsc | 40 ++ scripts/rankup/rankup_world.dsc | 10 + .../requestsearch/requestsearch_commands.dsc | 33 ++ scripts/rolls/rolls_commands.dsc | 26 + .../sports/football/sports_football_tasks.dsc | 113 ++++ .../sports/football/sports_football_world.dsc | 55 ++ scripts/sports/sports_tasks.dsc | 217 +++++++ scripts/sports/sports_world.dsc | 83 +++ .../volleyball/sports_volleyball_tasks.dsc | 100 ++++ .../volleyball/sports_volleyball_world.dsc | 67 +++ scripts/storyboard/ch1/ch1_1_preassign.dsc | 238 ++++++++ .../storyboard/data/storyboard_npc_dump.dsc | 24 + .../dialogue/dialogue_npc_kobayashi.dsc | 47 ++ .../dialogue/dialogue_npc_patchouli.dsc | 25 + .../dialogue/dialogue_npc_ryuko.dsc | 31 + scripts/storyboard/intro/intro_books.dsc | 10 + .../storyboard/intro/intro_interactions.dsc | 200 +++++++ scripts/storyboard/intro/intro_world.dsc | 18 + .../storyboard/tasks/storyboard_npc_tasks.dsc | 255 ++++++++ .../tasks/storyboard_player_tasks.dsc | 70 +++ .../util/storyboard_player_utils.dsc | 27 + scripts/stroll/stroll_commands.dsc | 16 + scripts/stroll/stroll_world.dsc | 12 + scripts/suspension/suspension_commands.dsc | 17 + scripts/tabcomplete/tabcomplete_data.dsc | 78 +++ scripts/tabcomplete/tabcomplete_tasks.dsc | 11 + scripts/tabcomplete/tabcomplete_world.dsc | 9 + .../templatetools/templatetools_commands.dsc | 130 +++++ .../templatetools/templatetools_formats.dsc | 4 + scripts/templatetools/templatetools_tasks.dsc | 183 ++++++ scripts/templatetools/templatetools_world.dsc | 98 ++++ scripts/timebar/timebar_data.dsc | 8 + scripts/timebar/timebar_tasks.dsc | 52 ++ scripts/timebar/timebar_world.dsc | 6 + scripts/vehicles/vehicles_config.dsc | 14 + scripts/vehicles/vehicles_tasks.dsc | 118 ++++ scripts/vehicles/vehicles_world.dsc | 146 +++++ scripts/wardrobe/wardrobe_commands.dsc | 14 + scripts/wardrobe/wardrobe_tasks.dsc | 127 ++++ scripts/wardrobe/wardrobe_world.dsc | 30 + 157 files changed, 7597 insertions(+), 1 deletion(-) create mode 100644 data/.DS_Store create mode 100644 data/phones/.DS_Store create mode 100644 data/phones/songs/.DS_Store create mode 100644 data/phones/songs/A DARK ZONE.nbs create mode 100644 data/phones/songs/ASGORE.nbs create mode 100644 data/phones/songs/Adventure Board.nbs create mode 100644 data/phones/songs/Africa.nbs create mode 100644 data/phones/songs/An Enigmatic Encounter.nbs create mode 100644 data/phones/songs/Another One Bites the Dust.nbs create mode 100644 data/phones/songs/Attack of the Killer Queen.nbs create mode 100644 data/phones/songs/Bad Apple.nbs create mode 100644 data/phones/songs/Battle! Vs Championship Trainer.nbs create mode 100644 data/phones/songs/Beware the Forest's Mushrooms.nbs create mode 100644 data/phones/songs/Big Shot.nbs create mode 100644 data/phones/songs/Bohemian Rhapsody.nbs create mode 100644 data/phones/songs/Bonetrousle.nbs create mode 100644 data/phones/songs/Bowser's Road.nbs create mode 100644 data/phones/songs/Cyber World?.nbs create mode 100644 data/phones/songs/Death by Glamour.nbs create mode 100644 data/phones/songs/Field of Hopes and Dreams.nbs create mode 100644 data/phones/songs/Finale.nbs create mode 100644 data/phones/songs/Flight of The Bumblebee.nbs create mode 100644 data/phones/songs/GLACEIR.nbs create mode 100644 data/phones/songs/He's A Pirate.nbs create mode 100644 data/phones/songs/Hotel California.nbs create mode 100644 data/phones/songs/Icirrus City.nbs create mode 100644 data/phones/songs/It's TV Time!.nbs create mode 100644 data/phones/songs/Kirby's Dreamland.nbs create mode 100644 data/phones/songs/Madness.nbs create mode 100644 data/phones/songs/Moonlight Sonata.nbs create mode 100644 data/phones/songs/Papers Please.nbs create mode 100644 data/phones/songs/Pokemon Theme.nbs create mode 100644 data/phones/songs/Princess of China.nbs create mode 100644 data/phones/songs/Rat Dance.nbs create mode 100644 data/phones/songs/Ruins.nbs create mode 100644 data/phones/songs/SMB3 Athletic.nbs create mode 100644 data/phones/songs/Servants of the Scourge.nbs create mode 100644 data/phones/songs/Slider.nbs create mode 100644 data/phones/songs/Smells Like Teen Spirit.nbs create mode 100644 data/phones/songs/Stardust Speedway (Past).nbs create mode 100644 data/phones/songs/TV WORLD.nbs create mode 100644 data/phones/songs/The Entertainer.nbs create mode 100644 data/phones/songs/Through the Fire and Flames.nbs create mode 100644 data/phones/songs/Wii Shop.nbs create mode 100644 data/phones/texts/.DS_Store create mode 100644 data/phones/texts/0014a4d4-3beb-4165-b819-9f2f0fe11bae_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/0014a4d4-3beb-4165-b819-9f2f0fe11bae_b78fb3c7-4d0c-43d6-8959-91904e8e02ab.yml create mode 100644 data/phones/texts/136dd01d-b56c-4f1b-b21b-13e2be636fb0_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/366837a1-3777-4484-bcdd-ae1de590dc07_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_136dd01d-b56c-4f1b-b21b-13e2be636fb0.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_366837a1-3777-4484-bcdd-ae1de590dc07.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_678a58f0-d9e1-4349-9e40-1b7bb01f7da4.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_9975efa7-ba0c-42fb-ac32-97af181e6495.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b421a0ff-8813-450b-935b-253273d60860.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b6de9919-dbb6-41ba-ae60-42dc9607c9ab.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b6fd1de5-b171-4dc8-9ffd-b8daed7683b7.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b78fb3c7-4d0c-43d6-8959-91904e8e02ab.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b98fac04-bd68-4fcc-beea-3329c5889538.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c59ee3a6-a066-4de4-bd0e-d22db1b6d818.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c619da4e-a039-4567-8bef-8f0119b86d17.yml create mode 100644 data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_f6042456-6429-4a18-bcf1-7b2bbd83b650.yml create mode 100644 data/phones/texts/678a58f0-d9e1-4349-9e40-1b7bb01f7da4_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/9975efa7-ba0c-42fb-ac32-97af181e6495_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/b421a0ff-8813-450b-935b-253273d60860_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/b6de9919-dbb6-41ba-ae60-42dc9607c9ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/b6fd1de5-b171-4dc8-9ffd-b8daed7683b7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml create mode 100644 data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/b98fac04-bd68-4fcc-beea-3329c5889538_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/c59ee3a6-a066-4de4-bd0e-d22db1b6d818_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_f5e06a85-c689-4bcb-9b77-cb1ac5cc0133.yml create mode 100644 data/phones/texts/f5e06a85-c689-4bcb-9b77-cb1ac5cc0133_c619da4e-a039-4567-8bef-8f0119b86d17.yml create mode 100644 data/phones/texts/f6042456-6429-4a18-bcf1-7b2bbd83b650_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml create mode 100644 scripts/.DS_Store create mode 100644 scripts/animations/animations_commands.dsc create mode 100644 scripts/animations/animations_world.dsc create mode 100644 scripts/announcers/announcers_commands.dsc create mode 100644 scripts/apartments/apartments_commands.dsc create mode 100644 scripts/apartments/apartments_tasks.dsc create mode 100644 scripts/apartments/apartments_world.dsc create mode 100644 scripts/automoney/automoney_world.dsc create mode 100644 scripts/carry/carry_commands.dsc create mode 100644 scripts/character/character_commands.dsc create mode 100644 scripts/character/character_tasks.dsc create mode 100644 scripts/character/character_world.dsc create mode 100644 scripts/chat/chat_commands.dsc create mode 100644 scripts/chat/chat_data.dsc create mode 100644 scripts/chat/chat_tasks.dsc create mode 100644 scripts/chat/chat_world.dsc create mode 100644 scripts/furniture/furniture_commands.dsc create mode 100644 scripts/furniture/furniture_config.dsc create mode 100644 scripts/furniture/furniture_tasks.dsc create mode 100644 scripts/furniture/furniture_world.dsc create mode 100644 scripts/guns/guns_commands.dsc create mode 100644 scripts/guns/guns_tasks.dsc create mode 100644 scripts/guns/guns_world.dsc create mode 100644 scripts/lib/anvil_input.dsc create mode 100644 scripts/lib/ball.dsc create mode 100644 scripts/lib/custom_block.dsc create mode 100644 scripts/lib/formats.dsc create mode 100644 scripts/lib/gui_restore.dsc create mode 100644 scripts/lib/menu.dsc create mode 100644 scripts/lib/textbox.dsc create mode 100644 scripts/liteprofilesutils/liteprofilesutils_command.dsc create mode 100644 scripts/liteprofilesutils/liteprofilesutils_data.dsc create mode 100644 scripts/liteprofilesutils/liteprofilesutils_tasks.dsc create mode 100644 scripts/liteprofilesutils/liteprofilesutils_world.dsc create mode 100644 scripts/misc/compatibility_check.dsc create mode 100644 scripts/payto/.DS_Store create mode 100644 scripts/payto/payto_commands.dsc create mode 100644 scripts/phones/phones_commands.dsc create mode 100644 scripts/phones/phones_tasks.dsc create mode 100644 scripts/phones/phones_world.dsc create mode 100644 scripts/rankup/rankup_commands.dsc create mode 100644 scripts/rankup/rankup_world.dsc create mode 100644 scripts/requestsearch/requestsearch_commands.dsc create mode 100644 scripts/rolls/rolls_commands.dsc create mode 100644 scripts/sports/football/sports_football_tasks.dsc create mode 100644 scripts/sports/football/sports_football_world.dsc create mode 100644 scripts/sports/sports_tasks.dsc create mode 100644 scripts/sports/sports_world.dsc create mode 100644 scripts/sports/volleyball/sports_volleyball_tasks.dsc create mode 100644 scripts/sports/volleyball/sports_volleyball_world.dsc create mode 100644 scripts/storyboard/ch1/ch1_1_preassign.dsc create mode 100644 scripts/storyboard/data/storyboard_npc_dump.dsc create mode 100644 scripts/storyboard/dialogue/dialogue_npc_kobayashi.dsc create mode 100644 scripts/storyboard/dialogue/dialogue_npc_patchouli.dsc create mode 100644 scripts/storyboard/dialogue/dialogue_npc_ryuko.dsc create mode 100644 scripts/storyboard/intro/intro_books.dsc create mode 100644 scripts/storyboard/intro/intro_interactions.dsc create mode 100644 scripts/storyboard/intro/intro_world.dsc create mode 100644 scripts/storyboard/tasks/storyboard_npc_tasks.dsc create mode 100644 scripts/storyboard/tasks/storyboard_player_tasks.dsc create mode 100644 scripts/storyboard/util/storyboard_player_utils.dsc create mode 100644 scripts/stroll/stroll_commands.dsc create mode 100644 scripts/stroll/stroll_world.dsc create mode 100644 scripts/suspension/suspension_commands.dsc create mode 100644 scripts/tabcomplete/tabcomplete_data.dsc create mode 100644 scripts/tabcomplete/tabcomplete_tasks.dsc create mode 100644 scripts/tabcomplete/tabcomplete_world.dsc create mode 100644 scripts/templatetools/templatetools_commands.dsc create mode 100644 scripts/templatetools/templatetools_formats.dsc create mode 100644 scripts/templatetools/templatetools_tasks.dsc create mode 100644 scripts/templatetools/templatetools_world.dsc create mode 100644 scripts/timebar/timebar_data.dsc create mode 100644 scripts/timebar/timebar_tasks.dsc create mode 100644 scripts/timebar/timebar_world.dsc create mode 100644 scripts/vehicles/vehicles_config.dsc create mode 100644 scripts/vehicles/vehicles_tasks.dsc create mode 100644 scripts/vehicles/vehicles_world.dsc create mode 100644 scripts/wardrobe/wardrobe_commands.dsc create mode 100644 scripts/wardrobe/wardrobe_tasks.dsc create mode 100644 scripts/wardrobe/wardrobe_world.dsc diff --git a/README.md b/README.md index adb7c2e..0d35f9f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # denizen-scripts +DenizenScript scripts (and data) folders of SakuraFalls. -DenizenScript "scripts" folder of SakuraFalls \ No newline at end of file +# How to use +You should just be able to drag & drop this into your +DenizenScript folder on your server. Enjoy! diff --git a/data/.DS_Store b/data/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6cb1ce34e05485ab168ed06f428b6597450d69b0 GIT binary patch literal 6148 zcmeHK%}T>S5Z-O8O({YS3Oz1(E!fr~1ur4i7cim+m70)XgE3p0)Er77XMG``#OHBl zcXJ39youNu*!^bbXE*af_J=XX-Bmbb%w~*P&=5H)TLjHpT@4eA$kiMX%Yq_X1c?l` zO!OB``0e{_!RAb|l-0lgBUmJHmJbG>ywPm!?YFJA)wLeHxh%Zg&sUl2FYj=4EoBl^ zx*y!cQ8BX*FJzkgaT+aELL5dAa(^4Ap)6dvO2bU$dfH)itj^5tt=FURs4s?-(WWof zlku=G#;0eSO~*PqJ~_XdJtr@zeA7g7;9SXp!3y3%snzuAEz?A%PhhWds#ro|fEXYK zh=JW>z?=nEclS!CiirVY;0Fe9e-O|R9fPGtwRJ#;*Jt#%5K%zKw*;av=olU74{$}o>vxq7^CwK~{^3TNEWNIfw?4AdED>Y&R*S}DV?CJAL|O_VF@{oVlo$h2f)K#EZHKa9yVLA$DIX!} zSx+83`UiONY~tC(i&t;PKSAT&=$oA_^g}e!L?zB7GrzYp@4cD#>+bBnDFBdEr4R!M z1Au~+quPtjcM2cpwXJmcJpn|5_5e<<>XdUP%eCps4#|LIKr$d1kPJu${tX83oz07K z%zIyq%2qNU8Tc<5;QNDym1EM!nm}*sz{X1f5WBG3D=1?g;Mr(CCVi|4^i0vG$R3Dq zO8gXq2y-0QxH@9e$C^N44n&v(@nXPXfNN-792y7? zghJ=eheN{`E)Hkap`4!ID%yOlGt6Xm%B;}UqHPp1Wj$|L#buZ7xEW)QX4SzK)dgC3 zaMZQ9TSlGWQHSU5mQAVU`J3C=aHzZ7Ag^TAekX4;)0}6H;Tp_ZS#yx-S(lb(tqq1V zZX?TcWj^FAQQJXmvsqp@^&BMj{47hsd*;i;B~`|YZhafJS&wOv>HZB zES>g`rIgPvzCIm4`+BsW;^}};*4eLX!yl}mmK+gmlFC9npJ_HaC|1d;ZLsf2*^sy!od$7oZ0FMUQNCy5W G1K$8yO(u{4 literal 0 HcmV?d00001 diff --git a/data/phones/songs/.DS_Store b/data/phones/songs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0+~jfN={L%>*-21Oww>F6_V-F&D-m z2f>B?27UtH`$7B;ehR;a{pH&0+dJ1+E32|{SM767(|ysoD{KA#<;tu&dmj!jeC~h0 z{J##b9S(;d{rK;G_T;BO|LDh$zxnvd;~zcw=}#X2)5jnE_z`aX^KX9j%isR3{o2eE#s`#~(cT;ZNRq=bgvD`1t2Pef+a0Kl$5_K79PM zk3W9=cOQTBVQc=4mtX$*fBp5Rzx?D^pFIBUr;k7S^tZoy{K2n3{ZIe-@xS}@H^2Vm z|GfC%<%j>{!Qt@#UOgPX3pW4vIsE7UFnxG%c=_z{m5rug}L)#rbzKL5|^^P4~> z{BNqy?}I+)zhs{u9A0^+(0~5$%GZ5-v%Uth%@@2D>>l?ZkI4o8HtxY=jwbm3S+N87 z+c*ci$35`>w)3}f4<3c)a}EDv{x6-sjdQSj+ynn_Ie#1X;4w!N{4MV5_;1;2j?U;k z@~Y#XbDFE8JPIE3Olcz5C-L8coue~)5Bw+be`WrY_;2z5_lM7Z?O?THn{m!&f4?!W z2ls^DoK1dmPjtB1Sk5_{Ab&#r{F?>dy|TT!K!@=(C)?jPXuR2&CryrXv|D<^EHvJb>)IAAd0Y1W ztkY6k%*pp*ga7aOe9LEZG+DE`j(*VK@%uinHkhN`^3CTOJZMjjuM6B9uOA95X>k0P za{o(mJxBYAz>=npuQlNQmCVoaf0>Ux$9dz5rt z!+hwc|H^%^UdE%$%(s?|t+*^cZOQmuiHoyrYNz~~_2e@`N8?THw}(s*U4|uDT0Y%U zCiX{^MfKO~Io|MH=xe_tw(j+r%A|HsnRtIrHm!|Ivb^ZBYn?vh9rH?Kd5sJjdk+qI z>@LZoYsZ)jIdAIEk+!BClsE6s$-o?EAFXk6w#&Rsj9Kzr8dZl8*;yNv7uVGD{JiY6 zpUU)yk~4F5T$Ux5fpJFOd&sin!zCI1#R@whp2B(byMo&*3uR)y(Js8EZ`a7CK3Xda zWnxdNvQVbpaT=$~{lQi`P#2D@^OT*koo#fKjq`+ClM`oJ^SMBodPlC|lO8NDKU%uIcVRB7jO(wD{-CVXg(K&+kLLWGZf}cj z#A%JXUj1HUyHTRi?m>Jj6O z_S1OVlGYaTX^zdwhu$pgkCyDYhPK-A%VJmRy4T3HiGEYr$#>2^s)N>0(k89tk?ZK% zF<*DdU)P5F?-H9S&82ItRa@DHbX&Gqihs2M^_Z(S z-)Pi*-B+J=To?O{lP?G#>Z&g#^zB#A^ zX)~vI-KzuP^sJCNP3azESMV&UZR`E`&q|zc|<>P z-6S367iHzh=YG5{Iv{U&Uh)+`FX3qOJU8K)25~u(CuQj$WB)=wkS_Cx*Bn&`&d=%c zjm}t8*)`79Zwi0Dj=G&~6z3_sj{1(L-k;O8x9*)~&0|jU;k>@&@G7JFQ}63_%ddp% z(fK9!v&v2yXaCLXpnfO5j-PMz`U*EEJJz$XZhg&lpe`!QSqH`vbva%uyvo9B-TQEU zPS&krt0m)9x2O~A9A)J=qRVJa&|E&}MU<7YacsP&oz`A`pZPV3vqnFf(nA0KuJ=VY zGQO7bzjeRmqgKsYBWrIT+LDd)Dx=Ew$70VC^RQEDzd!eURGRdwzQ3b?yU;^hV~Di1 z_jn_b8}%c|4LxlA#u&~eF7-QYtGzkTh1SS+sh_onroA}N9#3PBaK$GryL})wCeF8H zevZba`q9=87h+FiGV=lYyKj{If63zl*MH&lz{aiOg0i+^S^I%E6ML$x+#`@S*F@T9 zbksc`eaya@@xytJYG2NmSh$w#JS!t_9d*y9YvvlekJ^`b^qbbPC7F3&W#zov+s*;1 zxDI{PTb?_Vh2wLLdETeYTG!vo<2A_eHv&U>wI9`9fN+^!?=HwoxpmaquoO3xfur^u zoadOy`t3nkRd(&M$n&X_RnkS zD157SDqQP&&Nkl>TeQ{^rF~c9rAJqd{k7L$ZPXmK(bDyttnUrx^&Cy~Uz6|Mz#5w7 z4ELR{>>vkeKN_U1{+iR7ycB2cHPy zudnBL(Vo4uT5vr)7;9@`vHwhS8T0b~7|*XR8;g7`o|oEdj`rNWt@nW~KlaYg$qL(r z_}#ir^vc+Ro0I(=uic;XaSpck+>d`xF-L33ze{@!*29_y{J`%CdBgigyGFlgqx$7W z)~z0zbNrYqtm`ib{g!`pehm-S7^SiHdXA^|8*0b3ya-R(X|FjMXj|frjw3uNA8|){ z6R$^4^1LL5&VHNZML5SQ^0Z*LwmWSwIzBD3>iY?wm0B^Ur}m}lqcyY?choOi=El`Hdc}EIcc(mw@-h&)r-!)2S6c7AE ze2vl>#RLEFJam-K5+3p>^(p4V-#r#OE!aKofmhhy?ZIP?CiqX{|H}GL;(rhR%rlHU z|FHZ=K2PGm1zYU6^*!*P#Q)Yj=Hv$dN&H`#|0MqR;1501@8tk5o5w!h#$u}$>>l^1 zEBIR;?7?G>CiqX{|H}GL;(rhRs41!cF+Yj_7HqNO*7rbf68~HCn3J2l>iFjzVuNR1 z_T9L1bVl!iS62U1Uybr8c+7Lv39&Yb{}${VozZ*XKZ*Y<^Pj~3mHAKNe-Hk!bNcrw z;AQXWA^vSFer&<+aS!|_@qcChllb3*Kk_`aKjtU#--0dn-})ZtP4wTIhu4Nwf7m*_ zA2kPi$vyB1@1r8_(!VDuJX)}O+=Cnw{rBJxpQid_KD>urbZo(1a*uU}b_b92ec-~Q z1$)Uo*mU-N(?VNeR?dZY?m#Q^Yk+b3y>r~R&AzwgG*j3;?!i}+{WEmGCjUwOx-$RC z`n?B#ZdJcAvd*}F1*KzZi%6y3&Oscl8h*w*C~JihIf2O;VS7=tEvVmpqQ=csl+L9^|!t zr6n8SgZ>4sXYPf(4_~D9+~JYGH+>wzE9@t0`}WAuD{n6x(iw#ESz*p_^O|KI^p5ttk$A$7~T$$Z?PP*1EH&vcrqL0Ri#@EA&kHTg# zi@dYC4ZVCk+r0-rqnXWt&*YpVqmLRTXK#<}8u4NyaQymsUS9h_af=+IbB+2LWXtHU zte+El)DJOY{%~6^!ZqsWBHqgSxk#^9-d;G3Z`fz9e(o+G{1SLDE;&NJx%wG!iw%@s z?;QAfJ{?E!{VT7ZKA!V5)(B=dc|$zcjw2eopu({)<&V zr1y$lww^;hvwjga^YgPub`5*m2!4Kj@bPSC#VzuU&Nb?z@uX}Sebh&j8}jn}DV!f5 zBkKNgLXY~@JbLCD^>L9t;zRQ+oY&RsPmdfP6N`L%;UJ&dGn{AF_PmCCh$lJcoWy6d zJ}R!qPoUR3m&94qE|>6yO(*j8%q4Nvv`Y^?)FF#0kDDQx+_rX3doztI&C?S<*w1ik z{Lf6+!8)&N_?ph-Gw1}q&ZCC2eFW;k>t%g`-*vy;+z&$Tfa|oo=HQbFT+f`YH^5Q( zPIl^{S7g2f4mRMq&11KpuG`JHR9vhHK^M1Ypr6eFFYs`k0v_u3Bo3f=fXVO@d+R=~ zws)Who))Lr8=c~{hi4`SXa&9*OqqjC&HjjIkFOZdb$_C;8GdUHdIUa+owQ%8?G$ib zmoNu?C$XSBGrZn8$ZP!AXM%Q!Az7D$Y;F_QNV79yFvM4l4?73g48Ju8xdLut=MWb) zU&VFX1bUhmvfc;S48L~{e1d&jc(9e}gZQ;NoYdp={PV%##_?|Kexa|lK66DF?Qfsk zh&SwE@rJmy5kA(qvpgHM2j~U+XEqywf&WAQ^n7BE5xPkphq}Rh$m~DDZ!3FjMJK5T z>G{UfqCe_Fh)?8!_G_We(El25u!q5wI-xW(-|Pj$Jm!d)OwX|s`3>&2<=@Iy&|lYM z^Ru3pCw4HnQ9JNlNa>E!8?}elBF$^|ZCm9r>aq2zdTzfJ{mc%kV-F1Ev>pUa)7YJu@SV!#|ac3iF_;q|PfOXXIZp>aKE|eDZxEf5-S8T$2MPD(*kM>0!H9KZD z8-Ypsiivz9bXW8hoABGp9$V4T`U4xb`iiGQf5fHh!MZr953Rl;=r4Umpqcqb`ECV+ zy5@Cr{`n5pJ(b^{|M>cMYw~Ys2kk5LT*A%*6FV5(s2!@lBG`A7-l#pa_Gw;MeZ@ph z#m!_;7(UNJ9&AFdhv%L!SnEAL);%vn-@v%C=PTYf1X_^$YA{LPunBMU4f_13bsjOq z5An5Vvk{o2ZJzf&Ll~;oOJki%*OGs1Lp` zY1W6dZ$N$Ee#Y$eusV-Wn($44^;#16ZUvL%bLziDeuLXnwoFIF`l201V3Ise{fIaY zzCj;xI#(Lu%jd94x7c-r-l)wGgZ9j-_c<=&!Qfv!+*tkhIIy`#ey^TuJ>RY9oa{(h zgpSou%-QI)n{)acnDs~G&G7v>+Pde%(8KX=?71@X+s>t3&Oj4B3b0$kAZ8YMjlgIh z2^xCtZtETF9CSl|oa`{dH?!3>=^z&E`~v&7RnNN-4~}jBXbW7WC(gBGBoAS=)>>fnKahz@EnBuI>epB9rMuRA>e}kZZNQC z;Fb7S_v7^ML?)$`$*nN3d&ni&eG|GpynA3^50i(_KOld|O+LRujt$_=|rWKvq0+zO+0t=gw-Lcd3b9vH|O;sfzK zB;TXc`+g4(FCHG*nuHj%5w>~N-?g^!fT{=>iwnTm2$;`1jE{Wp_NKsUOn<>)edN1_ z25a*3yb^T3=&(Kpx^|`nSQ`Or-|K?9?jz|wJU~CIBSrQX4lh~{hM1b=bvT$UI%PMy zW()T0j=y9l?^hwsNk(+pJNg6qn@&lsY5D~?w!SXejCpc6+!Q-|{7lZyn|=ZgZFuq* z;%CuM#Ov3|?CrKUKVQpFUpdC}>3#LrJidKooOb1c%Wtq@y+1Y0uMjIXQXcZU4IKE*^hB-&*;FsW)iQEUaj6&YXE>-w8c&V)5{~|uqXqr}w}=0I z$ALZkx#Q%l_xpYp@gUhyaDknRJ6@2Y$ac%FM<4s|HtQg`yY4IKEw^h92U?@Od?ykE=4 zxe*-HAG1jnM}aTw>AmyO59F2c$Ga#->l!f7^@-=Vjh*&c#DVO8TvM%0yAy=%I}K|KljUK56Xpe#jSex8#Hb;b0A zZ@%MoMfcM|C-PCe!cXT=R{}2OA+OuOflo|N%^TH=aJ7t_Q(WrB`xy@E%WOO`UTMQQ zS|j|Q0vy{P!!A~bVNZXybsXV?5Nnk`1D^XP%q6x7_cI*S_&WuY*y9JjF8Fv_zZT_& zJpwLldzWy6pF3q+#8EovuiiM?@3gNEJrd(f@k*@doc33U;fXz;HXPLv{e$LfI16C? zQ@mnNox}POaB)4c=hKFRb%8qC`$5Qee}CpUB7Ur2##w@o$9^z4S`#8qUl+ZF6sMSjRf;xu}=g2X$2Q{ztwp`FJ{)3-K*=)Z!3zG~iY_eu`7& ze_J@TtI9K~m+Fdos`>wc+ttV8darnezs{k42HdKip6vRx;UM1a@76qkw=o#ow z#q-)2XeIq*xc|F=lh`x#l(47QlIVwqZ2~TGs>h!98b@_Z>S(JUo!CZcCH?4K!U=vu ze)h<=h@*70e&X*bEFKlk>t&Dud%tkKCk$$Fs6)73<_{2_2hvI$Ocm--Y1~M?K#UYiCstPk-kL8`x*a8DOFBS{Ul0bTWM}g)v`1 zU;TTZ@XVKaML&!00&K&-b1>9bVKRL$g=zUWoRuy3H^4UhI|oC36(-a7QW)y1@2G~e ztjfPxtOnSIzPrFI_+gPJ;#&2#eJsxZY;5RqYcLCbn3KzTOX#b8R5%N&=o`G}v3*9} z3b3%v)nG1_E73cg)l_km=@eiadS3+dvYZ_iyJvH#ueQIy`fEJ``eLoip%<&{7VzA! zHV3~39O!5BD_~f!lulN!E`?#eQoX}ESNSumR{^$><8v_7S79=JFNHB*AbxE`e`zCR z4n33lS$r2@8~&Yxp}q=}>3b>6@0x$9ulAFnkE#5d#dCmd#PcpN3wgH46LCGO_ce9t z;kDogjs4nJwyr>5ty{rH75!`-(q8XsFqg`;M-V zi1pWcEv&!VKZbf=*)8CCeYUw|KWOtSV7QMCykVzoAAKo|)qMC<^$xLF`7>K10xaZQ z3qyUCPNwgrFy?3IYqYWc+6bA$Gu+D02JgPJ&+u=61@2lH>Z^1zeJ_P+`PXFTzG%U} z0k+}aIT-4zFqyuW!i2m;KI{A7f9lVJeLTGn67VEf0}k}h@_7!1`YTMPe}Jj{vIq;g zY8d)m^;i35xq2xK^;J5xd?`$ocZ;y1uklLiSjeA>zQNy>ysqTR^bR_R-Yq|eb)kx* z%-;bP^w+}Bmr5toh=_h~hb7kb*hdx)vGKYSe`T0g!XA!UdyH3Zk=<~#Jj^lCt&2US8e%E2k z*n;`C!<4ZF^DT!dV+-bOhdGYN_a0iXUv=0rW-!ou61QJ=oHAxOMc+Sim@*a^*elqx zGHzs+F#=bkU$^=E4&=-PS5Szr5(wQ$eBql)JupD%gg-yJ4%uzdBMJ>Vht z?fYnC&c2T%@Y_n3M~CNZ{XVau;rruEkB1IZz9UBEJ>T0;#@_*ZnQt3DwR;j@79SE{ zKG%#dzaM;f!l`0?Q&|?`%lMyTXe!(JUWl(vWo*RPy|)*iJ7K?M_Cg)A5fNg#p@;DK z^SVHsQYV)_FVRhC7(d`S|KkXGtj<6lx4H2)Sf?@jd4Qgs@t(i$%J|jizO$b@`PDQ| z?*_r9-Jd)8)b#B8pn>Op?ee$bxSeM|FVSt$=+tADcTIbMo}E2^cCyx)-zVqN&TBHi z#21}hy%(O~x9GO!FW|>>k~MKKIV*9wCi9SMmhKE*Pu@@XZB0+|es_K?`CIc#eoydh z|Fz_obB||nfBKDG)TG(ZOLSeH35`xYCU{%ZYvlcAd?oL@>5l5z;)nga<=1o7{(^I* zf5hk0zU2Hl_KWBFn+o1=_oVIn=!1==uZ0|5V~#zF%WrEc`UGEF4bIj-%=tQKvf5gL zIbTyu7pupZ^SW$vmiw6V8entgKg_uwZBAsdvyyjwzieaiWs&(0j(cbuIrry2S4Pg2 z{ULZ5-P@acuJm{&!}%O*a;6b{!y1C$RB*f-_u08;BQ1RA|J7h{u424sQ~Y+qCcJUR zqia@(LD=Knqc6w!A^Tj;<5^>7vk@4aA%(oaZz)XdF+vw-K>993$Th}CX8#d>TiIhP zI?!L^A=DMd!_%Taayi5&_K;o=jw5^;YAF4$@dkUG`YffH`DQN|p5<|b{Gr~{e~J93 zb$u_{u51U*WAiiX=Zqf>uB=%jcHr5r+IN)RsLiw%X-J@&KngOA5`V=MZZ z9aP627|7}G2p#-giLrG9eTDxqCK!*fp^&{dq_y*?)r*owdzWjYtrCZjI5qhIG zLtNYMbmN(s=Cjs!t7C`)wBxShH>T&!u!rN_7#{N5pZ!>V1e)+sfOTCqfkDhH(iwr# zJ`yz44(3nTIp~J`IN4!@Z)U4&(m^cR84u#Ye^+4g{6XWI`Qdms{(BGSI-xYts|8!a zhKhT#q2j_m0oG&5=Z-RievmPtf66`BHsGRf3V8&727b7<`-QLKX0j$3wsc z{oP>Ti@+=KukOd`--%30E0bGcVE2$qu=^%-dwBQ2z#b+K&TDLh{2@1aK7kw^k{fZt z{>b74xgYYE^s9c(;5<$OF7#oqvpEd(4!n{$3Hd|0VV8+aN-L9FVYIGQ`;<-S_sGx# z135!{AfAWhLtL0WQ9rDoN%|V^bB^!8(B6m>$9wjk#k2P;N|iXi)5Q2dK8E8M} zv+y-G#2(^4;M@n8q&~Htj|AOdkIDBzpcdUbd!TLvnX!K9z9`fw#s}(Eum|GB;o|Q| zlo(JRS)A+z1AT0b;|L$EdM^X@b>io}WWBOov|llQ_P(b9yM%sk)X&xPl@L#(^hRx{ zxvO=7eYn=e(He*K-}XJQw~zPpy$#gCNgSvx)hECSXOYE*h$nx}#C_`IxvkxYy?i`9 zp9#;Wbf1vXhCBghPnhI+%_h9j=V@Kj{Q%G50zcU2-}*bkHumVA;lRgE_vkORDSSNP zvjq-h39*B9DCoBr-(-Im_M==EQ6H`%&$aA*Ek0Ur5i6}e?3sN#VhlY>$WQb?cFhs? zZS{4*zExirzI&zA4dtP+g8O#{2YTE7nj`dI^&Sn@r#qv|9k;Xgm7zaioz%LGICHpt z>|FJkA-)l#lYMPRT;CdwuAy2tt3Ea8iFI)zv(nPI>cMHfC)9&G!tcK0ppMvcB*d6K zk3}En&z07_hlD;T5**dJlN<#V{;?@}+8;_5EKpnm#u zl4ku(``YTcnAwZ(X@TA(-;@VphRdIWdza$2-y4G* zKXO0W=y7MV@qM(Hau}<3**j#}+|qkxkRyx#zyoq*Fm_Ide(&|72l88=ucYTl$ZyAs z@0~T|2s{u+0k@I6SHVGU&+43zf^^mgRzuR-f^##>PZPzrRdtM8^>v$Q|HU}I&d$>Ho+-d2@fG^(YCjTWY{YJ$ zt$JnrVV_Vd;78>%ImbnguIAGtOAid}WxR17VIyQo>nCcS>XDu2E$V@|V~=a=UhjK^ zun?|8FuO&N90N+L?^XANB}!yo&2!1Mr*J zO=GkNE!DtQY$Y(nXqW@qQUk8u=E%GbP9=_G{)rmbu==Jd269#>PKbPjdc=BFKcyEmB z1lGy$JiFLaX+iFL2eYD27}5hLApu4B8S$t^?>d0sI2|;f5QAK{G*~7Q$69U~)dObY%gu&Wwc0&Gs#h;tmHR8?f z7td9yKEd(AcdP_jko(@jpieM6Kz|z%BViu_{cW8}nh<^QKef8;;U9M|T*wwxcvjbvt(N-fcN&bd&an^5@AM2u>SNl4)TDI2vIHUANZ3f%hGtcCGn)m$u z79UT4*JkkeULzabfA*R0z0`Afe?{vd*8|cy^;?uh=vdv%-i^uTz%Q&ntUHj`&M92B zjHaE3V_knedmpBH?&)yH_g|b|z=bb%gF%ch@*08B{*d(m_M7N3LO-*~HR&L>!utlO ze_?-6`8T{@;QkG`&}BCm*kqB{2+WLsC%TN#&unr{I`D6J#ti?4bNb!p93uH=hqdzG}dv1?D)9QfxKhT7ZlV=yo z_pZU9u34NQe{6(rL%&n)w}Wo5!zsRcbOhZ+Tiqs%))B~}eJ1lO*a3aJ)tM3xw<&)X zS0nOhT>*_W9#Ci04ySk+;k%Xmqjb=xhxkN3g!LXeh5aY@aXin&Xz;MhsXi#pOt!sX zn9m&9f2+JDZbxKD&h0}yFg`}e&XKQ0lDnwu&e8X(1iU1tk;KKU^K7UPgLjZ=I2ovp1m(nzJuZXZV2i{ z@Z(*3UjWb9@8$aeSg${Se7=7g!+9y|Q1-q+>)nD9^DoP}Yika5;Z^6aV~}G8U*+d@ z7yb%4Nms`%KG5?EuBVP&_`P!W!a*L@gV&qO^9y{R3ch3D{W8*zANgDv%N*qSlG{he z_kZZHWhDN4K37K0ebeX4$hkLtu8f>}&F9Kk=H_hi$YIOquwQgJb$tJU!}uXg%_9Oi8g>DZ?yLFe9oG+hy5Ks`7~v=`t%c z;gC`#&Y#I&&6?F~?c2Mj=XLJ62ba*G3e{)&xqH8R_nx_j!^PMC?_2-l@aExg_?yo^ z{^W~afArZWPyYRrpZwxK|HWVZ*#&C<>M#E5PyYOC`0>}zfB8>;_x%5SA3y)@)6YNp z?8z^mfBEIBul~(He)jyMk3aeN$*-S3`Sa(${^ZH~pFRK8|9tY_o`3P#$N%rO!>jjR z$ACY<|5x$f|GtSIWeKbm>;Az%eERXw~ zxL?g*p5L^o+dR%|uieiN8a#-<2+O}y8`l$j|5kNgM?7#Qx>J{ISPD}W?f9UcX#|lpKAnPXJOnruNfK$4ml;A%;ga23pPV0^-I1?TL zC;JPgG`3ea0q5elC4BYP(tf2UAF;%KSz^B|v0t?p`Dx*MaJXc<=1+ZlbsabpzItPN zbuApdK11D%KBvCL{-n<*^+l3P(6gtfYraeKO~9G@2u|_hNN=x|kA%mYk`LISBr_d) zCVYu5X-uzf0#A$MI_oDq^w#RtopAjd-Tw*rIpOD~_!)dcnYbL=-yVKy`QdNKB}>?A z!Yi6ZzZrWX-!l9hKhyt%pTOtJ&*3xph$Z|4mR{HP5Pky3!%tAzwLcu&@E7aAUuoW6 zAJwrR@W!%&r-wK8smB3ty>+4=@Ft(8l$C#F|5ojj{;hqYDgQR{7x32lxg0N;(_Fne z;En5;9=$%jI?$8jfIpA#;qRR5C%p7v?$xc`|BO7e_G5}}2|p9|gJT7!bu;TG;7omn zae!04%%Xoa1!uw|;OzNVHJtXH=HN_yw7*ohlAqET?N>h0qJPzeZ^FN-_h+Arbsabp zzO=VArdKyX&(S#0^G7vA3QlRptZ%SVrRkoFky70LQRv9pK^xt{bx zyh7v3`4P|VPrHa`_p|OWF4?bxf5(qBPqD9e4j0XH@lWpPoQ#t5H~hjey}EYYUZ0`P z___jY-lcTYL2=HA6STl9`s1?)bq{##{AN)K?l>r^)4kp!Qbi^a-x`Ru@k_1+u!XjeP&L&{m$XR2Lm76 zJ-o*GtN0(sy>cjY>%{#ecNdI7gI>+^rPhg(>kBsthF%@u`pE#-{j2q9KYD$8b=AHo zx7Zi=1HL0)VLv@Rcuu&C?-s6PCwqJA)osNW`0zgt_ywP{^fOB9Uzchx`u9?CJm6FH z#V^^4Z`gm0kFwUUX>RQ|)h+Bd^&Q4zU+-$al7p~IzdzJNeq36P_>BFs#C|P5;`5Q* z%+eA2)%YkmulAPa?$s^qcg=Xq`4)K?%?mvKC*je0%cbs;4lY$+o`FZ!SNg?x?8-U( zc8!mcVPl$L#=)9$XW7pDmk-1V|;C*qy6j! zKZbK_5AAw$`%QhdU+K_A`)0qw_iDm@_!YWa4Exshce_jb8`j~P_rcEweuaG_tl$H~ z%yF=9^x+&Isp3@{fAM*{CNKlLkm8gX9hYt=gsDEMv_eSrs!kFwU|X>QRy)h)N_$1 z7&#fuTj5vwBhInLyGxCYbE}`#UhoY3vL14)`oM3O?y!gI7bVAQ&uNZcU8OHp(XBT} zuWo@pBe;M^$@+*-UGH*=Pt`u+Q`H9^H_;t@s_{|Qe46GK9#Y)`9#Y?7Jn%3TCsE(v zFZo~xFEI^ULiB-ly%s~tP3@g@HQ z=fLJU@G1Dx{cnPy!K>kVCOetd@Ad7~fiB(`_lGPa@AnS=ubg29@ z&7bntg5F2yY3a1k!$~g#e#=$Teb7@~eFD3$ei4u6c;UN-ljm~4D}N(OjSqWke?;-s zuqUo}{MPhvz5Bb}rP|}3O8p+ZSLp7t#24=zUh}?PavsecF$p) zqv283;a(-J+w0S-tK!KXKW9g-z5efvv`1EBNZp2xfA@fJT7dd7Ys%l6&^c8vB# zI!d;tjOo=u-+3PDk6xdl4s!nk*=?4Pf0lb5Z^2)S$B8@>;#xSion&2yu8ltDI}2${ zZ=M#8ULVnON}sbH_nOw%Q}89b0ls5@t(V63>L%bEjRW6_hf4{*<1_ee#jJ@ z36D1=A60(H6dVa(!pX_xbH(}z4=-T-8{NPC5|@>KLY`W|&j~*_#m}G<`D4%HEqNc% z1N8Up=Qn)GHr4U>p2u7KXW)%~b%QsZd8Y3{VP`lF@h*?=$>riaCtN?tooIcs^*7iL z;$sOv6ZV5+8{TEz1fHz-V;taI>t9X5neYfWIiFzC+=(wz-2|MePj9XzeD%f*b=a?b znNmVu^BH!XCG@p@oh}|H{Hwqx^lTd6fivMtaHcW6x(Pgu#$kVsv#`YeSYm%Hu|KsJ znsnexatV5}zhFvZdvz0Vj>erpJ`x^pNV8VN3O`*sBl2?P(?`B8=~vxPwf!0YLA(1|2bm_!XXxPH@guh5-bwT9dA#M^ z9(lR4t#Q9kzY6$%NByMBqW_-9tGiFhH1X8_uJpa|8}W7N+^`3h2lKb-;dinwU$sujd)@PRNBEk{Ya7{3*pXD%!S`(br}!t$(W}F}o8ST; z@*eC2c~0Wb;3Mi`@KL+3WOrcybq^OM$7yfAqvPDYx`q9Y#$&(l4tfjwl^jIL`+Ufe zOUoCZ_dH(SF9aQc$32g?I>z!&f!9Tuhi2jwlsy}j$1|5@2L*So*l zU8+6wt@@4f4(%Uu+@8lf!dEwsu(3J1Z{%HrZPOIKiRUW6xOe_ZbM)4NzTX5F`0Z5o zt=$*-4EC+v*D?03#-nYP*PGjK>O0^I`&G_l_>=Z8B^MD#Vcr4c%KoIEEnj@beLPF- z({g3FoF7R!>fj;K7j|CbqvX7zahkhVw?Owb;|(wScHm8P>%q|Aw>`%i?=A&X4v z?Ry@t?uX5vE?fIxzHIqa{q{Uwox^!g1bG%;#yL>=ZSlP}_iN9AZ5|xYt&kI)^UFQd zp2r(@()jA;-ARAgo<*Krbq@6S4+r|;{UYO=^r`ZTlOEkL@2TJ-pMVcqxO)0>&3;b> z*N(5Nn8K~+FZd--C-l91m_3iT;AhX{9q@qjwBz$UUn4%Rxbo<`4$?XCo-h5ZMo&)W z&z`5>n}c6YJ&L%~yTkr)ujlv@OMD~TdY0|TTVSlk_wH{TE?GZd=EQRmUx15#sqa(a zN3b4nv4s9-dz()IxL7Z^PB|CjfR0N7ET;G+H*=f{-q%i`Xb?ZcO5x8e=o z=n&31cGKS8Jly-y@I6_qFZ^s@zunUn4{)wc_<2*`+r7fa{lj+zqj0lnz7A}{Gh+dx z-(Fwx7VV(PCcJ_sC&TCcD;m{wral4Ry(c-9eku1W;5$Bp@7NA_SPF;qy)jm?zVO9a zkFhK^Y05^N#3qSvueFvMj)%^(OpIcZZ7`*Z=sANyZe&JNZQja zvm-5RVH)1(!dkG&ssae7#r-CY+s3~!PjCv>=sMdEw;mMJsxZ$ zbOg&vM%Z5a)N6j*S8DshH(<;UaOtiwV%4k%Tr2?>+grH6=d9Pfqu&iLjoRCBTm8ot zo-v=$SCa2B{d=pAgmsyt1NyM6=u`Vnn|ufOIpHHTe&e-x2Q-@HnTAHQeFu77A6Kp4 zPPzzh)4$CdD3w1D`MJc~xIMndKsrFy6c3Czt?QkS(6&2{tA6o4HTFZko8xsX%>($m zCz@ySdkccM{m$6-^UE2|PsWMQ(tb8>y7l-LW7GbSGKhDAy109|j5EpbSbNF4R6xf9vfPvQzT` zb=8T^k>028cKmFbck8Qts=b^$r}%t>jtIX3^whmv`7RXl)|=>gBBV$85a~Bmt04@$uV=k$9j6##jeL&-|zBe*5k5yp}!?B@x9`vJ>EaD-08iL z_Pvt0hiKb*28TVfTv8rkYuOLH*gd1ej%l9B_fIrWe7}eDE8a~11wID-j-@-LGw5;S z#D15bjhk*gbXwCM{#X}x@J*L+R{LSZ7jQ&8F5M&9Z{48By~icKaX;?0+OzpZ?ct9n zep#_+?yvU2>)+m2T{rwbu|MuTcIjOCkxFd-&rVe+?ZGdK`X<{b`qeUn@P|JCUC)ep=&KZ;BH^S1rbRoJ%Dby8V4VSsO#d zx{Gl@th?C9=ZNjPc{&b=b;Zxy<@QbGQ$VjpEbBX}lOEWpCrf_Dm7ctd`{YtL%s2HL zc-h1U72G5Gx~-=Fsp_`sMXy`q7xW^o-6l9!)nR?o+I)mkb|Uwp#}2Dv|I~3P?YGHR1fH7q zi2YbMC!17#M^Wqg998nKuut~?XZrhxpsV52I_bMvHJsE9fYWgh<~QJ(bVu2=$9uKb z&+1?FIN;RxWKIR?eHhfL;j_>zt-No-zo)y2?7y0JuzPbFp$qo2! zq`Mi3M(R@Pwk<15wKqv6`U45^!<+GXotLWX12fv*Q zKhMOE-1iJ!eV*yzNo@s3+DociqC;=YP&bylcn{{(a+&a8KCxZ6MRJ(zpCOlg2AmofdTR0l!fOn4X$OrWu{50+d=R@hg zQo^6+GuG99W8KyscJ)}LA2_~Uf2%&I{QIt74?Ly#IrI$i06k;;vHj|9xNkRJS%|M| zA0xjX>!t4qnE%`UN9ZN$&8zrI_&bf?67}xyc9+ukNBcMFeGL44U9GeGH-r8k>)GAE z8St|EH|g()Q)X&i2)&W)(Ud=1j~RX+p+_YDp(oPwjQ^MHOvheQFTl?4{tflO3qNNh ze(KO`_isR_-M{JQ548RY{51MHH|XEIUF@gtk3v5=rkwN?{2=#tyG!*8|3>}FcY)vs zvK{i^a}~$oy-}9&6ZvS&3o>0Tt#Ai-^ zPBfhSP7~-s{7u=rh4@Vk_Y1)<_=tQ1|0eOz27KRie4@oS`QLnDK3|C61fHP>_#1kl z%V*LXz5c7{-Htzle`EZl{mjsHPTs9k>iwrW#BYp;E*-T0G)DU4TymN4U_M!h-^6}F zuXD+v@km^C=yi;LQ}09Zmm7=Ubos8r_gws@hI4ED#_Jk?wufCkR_TX2eiQ3&)dw$8 z{KovDc%A<)=!jn&&-=Fg8$UaK^?0J*{oU?Ti2;3fjuQ{APY(rV{U*T0dmQt3uWzpo<6C{ymFwQvp>7$ALV*J<9y6#;8)|~?`5WaqMi7LUy$$)J*sh0az4SI=Iqr0ABoP!r{%OardPK> zmk}HtJFNS}xLw!n#lW1JvG10q&$1eThCu*K3IluOv*67tO z;A1o%`0%}n?>Ak#-lggzFU8N6Z|i}!-u&lwm+BYyq3RcLZptU{X4&L8$Un=D{A+yw z9Ef`Z?ITLAFC230@EiD$&l2~Kv@2D8(;nwM+MOz{&F4-W%KPlb*CAJ$KT59O!dabT z-y8T9dWm>~9Ci7s9gqFoHod<}?;y|eruF<9y=0ywEW&N7Tad%lcNkyM!*r2+gnW|D zSN%qE*xF;uq3gwW@!rN-IV3!gL-xP!eN!ce+E2RAlZ=)ajqsZ4fY+|v^!f^~(s|bB zA=ix@yFTJIlKXgW?wz9EcERl~H9q1q>bE-o=Gglwt(*Q1NW|&EKjd$e@~Z+bEuL)W zT*}`Ld&uXG{qsJbNiT7{?RynZ(7cm*LbBcA=d|+RXY;vB^Lcs(oO}i!o1YBlhk|o$ z{*C5Me_!;4;}`oP-_6`lE#bSRzxZg%9){f$9`kd@?it@tg>UAcnJ?`3Rq>lyK8F3{ ze2Cw4`AqsC=u-7xMelYza*s6X9(W=CWk>Hik3;+)-@%~1ZRP!p_I>w% zirmm|0o{_Xg7aO{&ogx0{U6{Fc8`8gho8?Shr9n%;y3C3>dNo&IeYhihVQ7}(R(<4 zujLlxC+qwa@t?N`yI#d{?GLr_UDvz6+g)nj&~NIO@69Xy$8jgf-_g1${=>Bg9Ra?) zX}#cmru&cT{5EHgYdCK@{$n_Oe@uGcKYd_@l=6 zb^Ra1VSG}4I`~ZYB8V4D-*)3a0pC`A@e;*^y}E__+BM^UHsA;Qq8v>55xupCI_RrbuPR?> zs{U;GJ%S^>2O?NgzEr9MJ`Fw?LQCc;HcbHSRU#_e|BteWv|+^)G%+ zC%z|s&-q-?Q{?+9PwE)GFW3`aQ{4hSQeW|v{8rz`L^)AE$}6yZH~9jgCw$-Pc9-&# zLU)`oa@TBt~!34_u0);sPcQ{AEt9!zzKWB z-|%mZFWTJ&y%OUg2hv%q^}gUfw0hrvZ+xoW?Jm_X^uFfJ`IC?r|2=7z&gVjYkLI~} zwb+~X`Ere(4?F;m*4>6Ehw%I^`r`uShb z+nnzf<@cDrrr)vnSxZ;xuWlZ=+FnS0&#B}x;lbyFD!!w2(z)YB$l-_L=l1WEQXb*A zEcy9Ma_M+ZThcy5Ze6PV#`1f#PKxi;_)hVi{rfuQ`}Mcr{;JhW(!+6X@$*+De`nS% zKpqAA#D9XZ_n8_;S0zE1zWO6jRO-p1cJx6Q?IqW=+k>Fr`iM*dA3 zpS9oP{%&`v^V`|;bL>Cx94Y(}#xunigpYiGvC_Y(;k;@8#&G&RnD%1I-Yvv$YPfG& zuNv-j9|*llzMIL<>G_j2+>M_WBNAe+lk9#dX11`rB47c&kcJqbfl-2uLvwRGH zh4bB_{G3zaXDwaV_%}gc;A;~dq&LzS>5p^CWx|8`WFdYN`#r-suH|Rqsw0QT_&4=F z+PICM9k+3LZ2ZRin8LT?HZHkN$F6LR-+0}m4?6hk=Hs;MZ`B7cQT~njLGR)3-`5du z2rrQrl)nF9ebVdOt3y1Ym5;7m_r?x&&_}J_Z1ZoL_Os>RXx$VCS6#{zNp-*n{R!t; z8K1V}!b2Ld>``2U&S&`Xbp`VILvJ^w{@ z39qSc0UxQa_)7PY5&zS@WqjA8Y5&US-)KMSy`=iQC!Zz!SNWy!oq?u3{MhE)cJ2Hd zt#f1fH@8jiCpqrO3+?#+eVurZo;+LS+4ws;O@7mu>!y`sKVX(1ZPYRG*YgL}wtrv8`DV6<8}e_Yuae%_61TNIw4HM)e>>-kbnKt(WWGPKeaHDL z*){M3=a+4-;gs!meofe?#vZx;Z232mmt;R`xR>HLH-cZt=TiQS)}6$+=o0spt=;pp z%CLK)cYZ!W{>>~OSNBcN2EPh^B==`NYx$|_|DpQNeov_#-|-ubkH#Oc-;nXK;{B?w z+|1B5`3I0A!XvoV_CoS+>_4hJS}wbEt>QPgMGg}`b?DVS=k4FuIql!O0{<)Dv7cX9 z$$yuxT6uqo;yYXQdRL#nfc)bWx7+<6`#EtgKb4+M`V01RN?+M;zb$$<$#F;Tl7BY% zn_J~X_W#E6k2Qa?>)~f^)n`@zRrGH4;qLz&@UI((wH%)MT$1?Pe(mo6IR4S*9lQR< z@{biSTbF+fdGY%fD);Z}?BCZJzT2~ZU#HxUbia4^_Rw}FJOtSrwWaP)?Dx3b z?Ejb_rtqEaX%J^29O91}-zk6R2>-`$7@w4<4n9*{VE?|(Ys>?&e26afeYW29U;Uj0 z0O*t@a zehAu0uPQIaaTARzc|DN(`aO^|r+6;aVV&EW-!pap=D4TYBM+I+z|*_pXY+B=mmNGF zqxaJq!fUE)>DS18>N|{w9-fFxOx1to^Lu*n$yy)Er?H{M~Kw^XNM|Q}vIFo;tWxzxeKm{j9`SYxUP{`@W9fd#mo(CCBCOLBI~u zzqmhuF#R67pva=x!$jpwuZe}^aX z1;nQjHzl4xPxAAr=?S_hpE~m8bl!?QPPSuR$62Vqr|1qj5&Rdj8~M4z7mgFlE*#9q z%(tufxXr^$=OOU1^z8-v-D#fNb-~A;k9mSq`)S7kUmOQM_IQ>ZKHdZm<~82!hta3G zR6X$T^|r!me45VkSIa(tU$$5CAHAQYJ-n6m$m;!IUh{}`KYcskhV}KlH%K3^o#+Go zOTW01Pd>xGOJ4ha3*_Xx#a_kV%}mc7zB3M5IiZ|Ya$-4U+2PAg@(DTde6w=jftTYT zCm#Qz;jvzIX?zkc;E(l{o;wM=;770LlIwzZ+w~Uli@BWB?2 z^5Ifvv(PuJuk_8VKCAMosV|oFI$*V&y3{$a_=T06(ogjH|BmA7UyHwkarb+}y&dcd z%wf!SKEjz#ipUn?|fzK7)o9FoZ>YVp*xIf^*v3Kd{ z(HYzAriEiK?K6Eo&`kX!*T((b?o#W;yUOaf`fu7E`^`(iS9n5aajvZx40!~9d+^D3{oIE$~|n4u2vZ{@oLzhjra)6+WFk()$^4t}~e$+_5_^{Laq zcZ`*Q@9b}|1mCe9HgidC*{?G{^#Sns_Q04SV?VY%#8<}_Sx?y}$+tP!Ho2Ykz`xr?hklF{`(;1q7nW0J+RCSTRPY~X zXFa#Jjekp$Fo~A@z2RFzwtJL&;K!w8H0ZA9&~xpx?cKTTV&a!7R`yVM6aQc6Ieeqt zE>fG3qzl3j-0?&<3^hv2zsJDv1A_D}z?!h_pQcbBqzq3`*O zv#IPw+_~DmCcfyeq)Svj5`eSZAw040?;Mj~FWe-}{;ThqI^f8nFr6bMu4SSzpL7J+$`RXn0eOMRi`F-V;sg`Pb?>&+l9_!aZYWD36`>uC*WV zE$Ib6mF2`axZdAdd)DrcC}^cE3Vbkw0ppd&qZ!`oYMT_XUnDK zRQ*G~-QVplrO)FYL;d0$;Pawog5!`&&eDFB`K8K{nTq@Q{3ZBOJd|q>{DpnDevAEY zmesw4;q9IqAP>}Q;@NtB^VgK!(0o4kWd9Sy-%S_6SK?j5i`q{5tvLG~ z@)Jhqb+_9Ov7T?A_xOCdSEheG6Te=2ZW5kX$A!ro;uDUQ+^juEdA(_hE? z`4}BO>-z2cz4fKfRkCZzPYZe+5yxKgyKEn2hr>>4T-aOM!77febMB4Dv1k1`;Dhk* z_tx=_$9``OJBM>VFT$XWZo z-&^NA(Ta~~|K;ah$KLxq&9nY~Z=G}L9p^$RUph*~1HxYTnY5_xqctw_*=%1@ybS#{ zF8qA;%lC5dkL}ZQJmP#TJ8?dZj~xEyIr7vr-+pgB*t;rE&G=9E2*5w_z294p;=ks5 zmeo0UD;~*@&H0sc^y+X9PWPOxz3q(|>LAZ+&%s^zy-sru4mdIY+IWlS_ddA)4xi21 zN$s;Sf%$2NsywWAKa3}K_S3z8ZufD-ee-V5bjB5*Cwzb}bstsehVu^X zKJ1V0sdP?1_?s4Oz0d!zm-9i~GmGw#kI#88uIv^0r258@-Z#4UBfVp%dyfmv8}DA} zxx_ofABugX`@K|$bsZyrI>5PMoZ=}ZZ*jvo#T_0}j@OP`+YkHUJwUHN+IWXD(Pq4G zJnsLWZNW!x&Y=$HKi(g{dX;}^dV4*>_Q4YG1ach8^t^T-*X;+mDK8zkjUVHmatXL4pCMQ2`MU7n9dXl%`~^Ov z-XGp+MO%VNb;hsch5anE?-d?pUDNOWFrR&3t~tDSS=IgNFc$0cUHaj@P_+F}b%aB8 zx}Pm`2`1^fqB~T_xHRT79E`VX4(ZmiKlP{n)Ni)yce6Lb>^Y4);q1u(v+I5v@u@p3 z(tiq{#=ZIypQfMrBk+0e>b(T^K|Z!{U+mta34DKJ^q#>zaCGE+kcTjrXj{Icg1HjE zzctEf=Ny8u_=%W9&*g7SVGi>K&Nl^nBnm z;7R%b@TmPVbOz=i@4#QueL;K+jn9}vW6Itzhx%W#eUN#~;oJo3TEL;_5;MRY!b71G z=1}`3`)dxKBLD~W4(8DFfzOzutDk@u^}7sxRpEs)RpEutn9DLn{;lv*%V7M*eEba` zk|n+~!SVn6a9Q`!oX7HL;xFzAaGSsQ47e>T)|sRQa9}=TKZIBYny7E#SEEvr3Yv~D!mkP4gVy5uhawAT$B7I9qVt5 zgifZu1l-oA<}>R7jk8{TGQ@vmqr+DGo8lur`XiNYSAE=T+m`qo>~{5!er|uW%y)2U zyP;Uv6M2rDSN=Z74!?m9 z>qXg(uz%JIZWk`Y4ms}UdiF!UuXJ_Dyx@HBf%Zu}TsHf1J}B;ew4UvHe*YZsnoh#g zC@<6P3W7{9__vGdrU z?0Vcc(2fIc|J9KI|8GA4_;w|L`;AH;mvlUf1GX>(ApK`*1&(mKT>= zZ!>*ToUzJ(o|2cBm2URK#P{)@uk=ym)f)en55;MMKAfk@=eIu7xRD-PD=(TS&M2I( zqo=m=-?4JPBrnJE32hbRTed3XTlI0D*vh%vr7xnN>)#mk6y(UI#)nN*zkFW;J>h=T zC$KXtJ9b9nC+`#OYYRTxTIvtmWzHd*raIWabk7F6kl^Tz>D9IOLD(PXsqX8#`nosQ zP*>4O`+vmwP%pd%9aSH6c`SOkp8JK|aGnb9ns|2^Ud-#ty?jqt%Q zH=I-cljaFNAspIITBBFj@hiO^^;&PtPzSthm3QrPUhctH?&q@QJNs+a3v2P$>S>KL zf5rX3){FR>_UU^?>Wj3taFps+;x&z#nCDp|PpkN%H<#%4r^QY@`k_kkYw)q#&By9j z?gl|0>p9j#zp;cZ}6jSSF~QTE1W~{+8=P)!pmF;@T1}VZrNAd_1Z5m+?pr$ z?I+=bW6wlC@AKyaK451_ zU&I^Iz82_L!@E^aNWMc4kl(>~Q+|Qr{Xp=N9-s^1h5j_$Q~Faf*!2tQeYAE!=gT;k zy4~ka^CQ;>{I;*GulxerF7IOr@9H1?Qrp2A-mQ4o`iuJ6{ajjJT(jQMIwUgqo!=a63ADlf8gi}K=rE*V#ZK5*H}i~8MI z9C}V}*7zf>U8i2Ny&G_e^VFJoj*1sf&HojN51Q7b@vxT-ap*L5MI67?r{b&GICNS= zxK4E)zqUvJG-jCRjPyB*uMkfY%yG^P8Z~iUpZk0clz$obgKoFq>2smafv#si_yKH( zzhZyW@;@tQ@W0eQz6Z>CMYDh%c$X~3_kdcz#qIW696xd#!2Xxp)j#gl-TzJb&n|uL zw|}F4qx(cH0@%70{>tj)XVjp@~4p7%8m_XWEC z-tfGX57C=zs001%SIVCpkmyY3qLr!k_>)57-=r1TK+tWub|g7PsDGzp74^^=+zx77vS60pR&HRessI_qx9a$pK`nU$GOn`zftgC z-c#{85qzz6N=y*@NZ(Ndel>4-Zw2Re>Sy~gevcgaFj^@&Z^U2fAM&Q>kvy{g2>ueB;lB}{cAqo&;kuUlb{z0v`)d0ue93QgZ4&!x|s zE;T;qwHy(b)%=s^P04rAkNsr_;y2ElPm8}2@l}nBbGh5CFW!-VV|sa?tOwm#;@qQi zZpjb9{yvah;XEBb&gWvSm-2IJcpcZYKcMq(oSWV5bFt$l_RlQmtOvX-0k6)v0q^^Q zmwFTJtL_|+VviDW8kaD>O$Xzhb{cTI-u+y@CH``$ei5%%zda9DcrrgYPT2B88>fFJz9wG5FQg0n zCzexjXYjS=iTf$W1;r<6jb2^Huk?C#+<7z)^poXzt-PC$X5}9I=YB5DZ!R@H^n&`0 z_^!oYdw-^Jdme1z*RU(jU$S2Nq4-&OM`1@<5BO?&tEG+NVqPi+!nIwwKtq)-8H{&x57^NnDA3TlK`O ze(3lGQ*0*1C==B2S#dbvYBm8O0iQ6qFTkVYbYDr$S-lf({=NHa#q@FUqXYt?hXBhWGy~|c! zH1D1VTjHp%NH3J{0ZY$G7K*PS`dJTKFAI;8_XyV0*2|_R=Yia?9roSyFMRs_B8nS@pXzqUqm-u+`68}oKkymb z!Dse2*YcVA$N7)*iqC3zZ8u~u;-1a&;&#h}?TYP)&xs(!(@oX_XB75vh@ zw?e*O!>8?Y@iXwfI<4>Tzw&%UpGSD&Z@|&YkLaD{rXDl=2A(X(lHc+TMAS>4MZ5IM z=sR(b2mXOSqIm*O$^NZ{Z-ZRV>07pGul&7&PBkC(#xL<cp0MPhXP-Ziy_4Q7 z@tvhOPdgv@UbHyckF%Yzedcq=J{#}EH|!4a4|rJ`->}bo#@~%FzMJPM9-=+r+}b05 zPw0(NKk)DpK5M-ZH~s^`u2*>p5~qIZ@X z(ID*m4d_?nskP6m;M*YA6MB{W*0VoLbgKENH-3o^yL1-5V?Nkt(xtM`#tZrNSov$$ zIl?|K?XQcUGxE<8{kr&veO{8Y2|hZDeKzf9W%kVWc|Sk%yy5d>itB~F2j8FCKJVve z;{9m*Y`(QD`P_O_em&>k&(D)_u?f98X`h$q)U`jhbMO=Q^E2e9^#g9eK3mRO|89wX zQ}%f&PBpbb2@697l^zA{u94Bh+ zPi3E%_^@jq+WB6>^Yboe;2-c2^=rdNb8;rXAo6^jcSOGg`rP-zio1{Qm0a(BE}i${ zXU!LX*Hra!k1P8d@59j#!o4#4A)e#$EWdVmMSnlK+)Lg$l=CIx6q+}_1J*ppcQCb2 z-!tDid`oK#w`7nvwU_nr_w2du(Dqg82m53C>RvFOO=p+FZ_r!gg5J&(aJ`>hI&a(0 zS})_V%|i!Wjc1O-{RH6v|4z|Y^G7~+^Ssknewyj(a*4k7-%MXWyR;wY=dJYRxE1u( z{1I<#o^Km{>Ek)~@w>vkVj7XV?p(;02F`_ay~dYZd+1(2yZo1B{pWC$WXVBpbt-hN;3(zAvJ}IW&G&nep4cLkRvc{@LHMZ5qwkXw4rv z-_7&RKgQv8#j9&AGh)kZOaD!(YleV&^&+D`KO!jWk1gL+@)pQ zvTuKUZT*e<>E`39@|9^D)A;SJU%%`Jv}?}!^}W8W&2gW7o*_Pdbq+FKTn=qFcUfii{^RfPvh`5%F7A))8`?do6MiCKk2#2ICVM0pUt_c%{%*T zO4PnZdd<@nz!7q z`QGKu;Wf3truaeZ#pBYwTg5wsZziUHfY%{oj82{IgF#N2lqB`{?%9Up)VZUq1hQnC)zjuMJ>-@yX}E`uit8d;Y}$ zW54DX|LZp&eeubY|MJO4AFEHUd4PHT`#*j5{2%|mY@mI9m1y|o7azI9r~*j=hrj&v zqtBl|c?T=p-lqZZzx?EjU;XCGFF$=gAnX(s1NZ#&lg~bTj``O79@hNn^Ur_%#YeyV i=*uq!#C*j-*G#j4$$s(C|29#ZM>HNV@m|cM;Qs>)lK>3> literal 0 HcmV?d00001 diff --git a/data/phones/songs/Adventure Board.nbs b/data/phones/songs/Adventure Board.nbs new file mode 100644 index 0000000000000000000000000000000000000000..7c6c4f5d911c95f581439e5a825dbc0db1e55684 GIT binary patch literal 17159 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

N= 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Beware the Forest's Mushrooms.nbs b/data/phones/songs/Beware the Forest's Mushrooms.nbs new file mode 100644 index 0000000000000000000000000000000000000000..0f1ea5a204394db74ae24fc6d43df02a0d7205cf GIT binary patch literal 30619 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Bohemian Rhapsody.nbs b/data/phones/songs/Bohemian Rhapsody.nbs new file mode 100644 index 0000000000000000000000000000000000000000..83db7f145cf8617b1e5fcf33ff462a018119190e GIT binary patch literal 13888 zcmeI3$&Mda6~^oD7{m}E@dh0yWR5crYY<|?2HwC)T1phKQHF)zjtAiZSnvQW`M$5t z@Aj$NRo!m8jk1WPe{R*e=bm}0s?NV&{MGW?Wm$gz=&SR;fBoR$*EGfBWEPy8X)!=jRXqsEd1-u}%pA|lq?L+;*V`cySIxn2% z-Mapy*7#-*CfwLjbmgnlD}^&?YJb>~J+nqj-ss6)fkl9dMtIo;vf9e&}m^sFuYS1E<-5J@X_U9BZ=s_ zozJL|_`ZB_`gm)XMKlfDoSl4}J=ra*e3(`K*{r4CqTJo!!4Kct&s^K~T;C?osui0W zLp%|4AC?_<{2%#m>@VqptyABMzGW#Mm;9#w5nkBLxi`nfk>7+neA#MjdH^;xykBF3 z;Fo;9epR$o+fJ`u#KuN0pxDGaH$uyJwkAe9k!O)53F1 zjF{DRopl{QeX1X|8T_iz*lM+F$x=9T&xmY_yR76x_jB25#O8c&8FOyZvtW_Ia$j}d z&udnRERK=#d1#mqcAxzny(j*o4~ouSpR~WRZFHK>ho8>MZtiuFfwjw$x?E?mqhncl zm3hv3DAuEsdTwSGa;^7Z({wI&os)OOQmr?gP96VF+ zdd@w2josD8&m`yb=&`crsMYqTdv3*4C*jy^JKrSd$saZZqPwj;A;%i95aUcFYe zVa!OX_mL~TLb4t82k%p>f=liS{!_nQ{atp6J#VYu5-X`|ju-ui745AtRVzKyF$NAW z_k$m4j~%_R_e|o_dKY}R@7m^j=UktA-|7ABs$NT;nr`w$beMx#vqujz|GKuV!$)VT z9&UOp`7>rL;WM|px8qOst@!n-J;edD(dtK##jJ?V38?8+9=-!WIUuh*|ltb$`bdd?%i z`4!IY+^ly;gU9Ql!3?{BS8P22>;=EWLnh~$=*8d8DP2eQ4IROW%Nee@I`5=rxSmA= zulHZeE25!!;lwlQfR`Pg_r2dsx(@H~kG_q6?&Yi065;0_{bxMv)#wMGT$u6a`^G2n zH1E&%^=xq?U7qGllWW%=O|Hn@^q=*}ed0_u&AW)Q>9fErpLrI&@Bro>(BbZRmY3c@ z&A%Iqwkh}1nfZj?UIu~@KuV*vS9Qw~OJ@1ca z713$9dFR&cSv14@2wu-7{k?baV>i)nyaPYNKcYWm#RsCf@!iFJ zI@k+8?@hACFFWuf{J`y(^f#^Y^U&uu;brF&vjDLmn++K8WEq-$xW>ktd)b)#=x!f4 zR_9u8J56zCdYqlF-ADSKpVzs+l8>MLt?R_gXE;CedRn-j@j2VCJN*vt*Ehw9&dSU2 zPD#0v_YV37AG+iY-|1|BaFh?mNo)z0YxbUkX3mpi%B$QLzuT4bj%rcqX@6Q)zxU8g z8r}6=W!}uFuCul)b8FZxrG4N*H z$YWcSys?X}V*`AxHSyZ%$WGDahG!#l(e?ZG&?WZEC&9UedNJzCHMFAZR3}F4-=<8q zAAY;0Cd3A^OJvjgldPQ8oRoX=A3L`D>}&1`oe|S@PI=e;;J-o-#p@}@Zc-`cIA-#k+>P;Q-!eAJ=K{JG|m%bb2%h<(a?Le~?-w1e8EJeo z>2QCa;X8hZD-NlDkwUO^T$btQA zOJ?<14$ozRRUilXai%WBz{kQ}U1hFTl9i5dS##(7kN2jM=$l18!S-hVJjm%eLch z*0FKX-@M-hcRX_xec+~Dw%dGfHVj>|U+1LH_HX>Hi+;$f*c$t@j(dC@SMWh5mPTx0r^IrdLq^-dF&I0GSIrZCf1SV2Z*+qrTaW&%7)-3Nq6e$= z%XhX(#$7)lkLqY>;(urnOGj{G%r(ui%Q@CP`aCCs(|H{2nNRA3c(|sa8!NUz5Af&r z3elr5Hv yW+kUNZ(QELSTCQ^Y!P~W&+mtm^XxVISYBeEevuq9E!o9=MEuu(UwV1+|NIY~h~tC+ literal 0 HcmV?d00001 diff --git a/data/phones/songs/Bonetrousle.nbs b/data/phones/songs/Bonetrousle.nbs new file mode 100644 index 0000000000000000000000000000000000000000..dfe0ee51a3f629e39f825efd1b71f6cc4dadd3dc GIT binary patch literal 38269 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 E|E07xT>t<8 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Cyber World?.nbs b/data/phones/songs/Cyber World?.nbs new file mode 100644 index 0000000000000000000000000000000000000000..e1f4e08339e21eebbe6e7cffb8e3328a1f7d4f9a GIT binary patch literal 98009 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Field of Hopes and Dreams.nbs b/data/phones/songs/Field of Hopes and Dreams.nbs new file mode 100644 index 0000000000000000000000000000000000000000..4394de1ff9326662be3924ad61e55dda02380288 GIT binary patch literal 50481 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 JwpV-C{{psvR$Bl7 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Finale.nbs b/data/phones/songs/Finale.nbs new file mode 100644 index 0000000000000000000000000000000000000000..a02a7db9a20e92d779f911c5af29ef8f307ed318 GIT binary patch literal 17861 zcmeHP+iny`5FLZ>VHHRa5weL^fCK`^7dF_IHwY;YJmi7!5ELnICSGC`!y@b`;Y0Et z`NW($Q?*;&)6=uY*vQEsq3TO@T~1Y3cdxxJikZuoW_!gKMNvF|vp0Bmw0khJ1u;7=68a_-goOWBtLm^XUCFeDS{fWcb%pw10d(_-(iQ@?iMq;QiXO{o&E@aDVt# z2f8nYhlkyx{lV)&_u2mL;h_6qaq;=vgW>MpV6S^L>^>bH4Z7bS41fK-`}6SK!QMa9 zQ;XAoL+s6kqWA&yB4kKz2>q0~p>`}C(~e|r zI2p&v4Ygs}tv~bJm?>tyEA5!uE@|hs+I7R(b!NGO!qRz$+?Xq7R_-!a=GLS?U3Bi0 zbm6*C$y?*qHpf3h9g62Mwvia?$=Ez{(arfb?MTV5ScHgodK)<{l8 zCisZ6_etBAMScRmyE2a2we0khSJ!bo!jJQ2lb4S%!_Uj}ZCkrmqtE78;TAzO$Q#n@@zjcl4dWl=-en}T@IDg2i>o^YFgLRS24VCGAF?~Iq zGhDqM-!}ej<=?Kc$N09CZ%g=qb46BU|BmuApS}IQ4L<|@k=!~Rv`OW(b+U|yui3tB z_1ouZTPKUc>hgx>v#*W5ZG3H=)LO0k&gx%VC(Aq7xu}yDirL4K?^nY6p05Y29pHQ9 z&I3QsHs<>>zfjDr2*tfrY5pFGb^hLxlFRb~a(UiEuF^oRUstJh(BaP<^4dKE@^~)F z+spaq+kt=njM28$1J(`5Q<}f8MSfF;muGk)F245oHrGrb$MEC6gndc_xn6%thsV$S z<@o`5N&|T*8GVPZ*T=eHekAgza>r7fIF5BbFa3SX5I_Bru#(WB&$~_BwtP>eIj6;Nv*O!v% z@gZ-7Pil?F$IG{UYIaoiu-eXX^IOM!{V+MSEs>92u5a5qpGP^lYZ^zTLH+UTQaU_t zl?MCU@82cy!}1KDn{1Y!rSWqJ&&Rgm4!*wdU7E1IO(2(;fN!V#Ot1WG zW72x8d0;jMviuxy&ec(3;rU~K{hYSB$7B4atLI&%zUX?6V?Fa8{y%c~`}$#exPKh} zUaoH&KjR^9?9LxwH&|m*^BCKR*I>+l zHc+Wgm~VPFKa6FnzZF?JPFvyU<2~$`sbaP#)UT>y5^>=(e^dJ-o@`L$3y;_ z_?i9y3)tJFuP^eUj}-hBeUX1V!Vmwb2Y9j%JT*@n^=+y?(h2m%@o(~n@r6I68Trd% zMYfay_`cDe`vhpD-j%P(*BtOQhNq)>ALIonAP1FuT3VbD<*W8iUBkB&{YQTf%H+V?FLn=HC>w|L<>+9^PJtwh7??|J& z1pBFT6TEsKn6rC<(#hU~$FVQcPn+s&m7f=sXB+Y2T?M>)*Dvob5#F^i0p7XwhIf-a zDZGhQ9fpy=fer3`%JH$kJiGM0Pv3)jgFIqieK*^A=EDwB$X41>n*3}aum^J4SDWqZ z40J=T=3?>$Whu+ z8r(fn`zdQjP0Rwjpp$*ruJ*Csd@}nq#-=|TWB8|UVdi+i8|7IFyMRB=pBn74cz>Af z#5-kQwl1aYJE{Jr`mFM8-<&pn**qP`evBXNpCmqJ|FQ9f{NPT3oM9h(hg9*gn%0Dm z*0jbm-9GybbR)l2C)WpeOW4Ie>>AxMaSy$wwYJGF@=1+E4GS=WPWH8aek{8TuWalP zZ;w}S?!YegBfI$SKy4)j52^Zf9K4$B@_3zvUG_Ow5F5mteZ*X8a9^&?o%Ve)!mDzh z*ZpjGH|?ADebQVr+V@F$zh_Oso>f}j8^<*+IMcHGJUWw`YE|kEpFL-zGp*mgPx!Os zN#d5R7kUl_@xmF!zMf-tPszq7bq{R52k~qVjk&{d N?Vaj$Qsa3W{1?+azxn_G literal 0 HcmV?d00001 diff --git a/data/phones/songs/Flight of The Bumblebee.nbs b/data/phones/songs/Flight of The Bumblebee.nbs new file mode 100644 index 0000000000000000000000000000000000000000..a8829cabea0e39d44a87bb201d2acea48a24aaa7 GIT binary patch literal 8439 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 XqUSKk)A+$>82z7p{IFiC3EaN{J555c literal 0 HcmV?d00001 diff --git a/data/phones/songs/He's A Pirate.nbs b/data/phones/songs/He's A Pirate.nbs new file mode 100644 index 0000000000000000000000000000000000000000..47bec5fb63f6c56f208f0c37eba8866512996103 GIT binary patch literal 6962 zcmeHMO>0zH5WO885Wz)Ym=8sGglJDlXdGfl6C$E3!Hw(LwWb-u#0Z_Zm_IO!`O)Gz zm8yF6>fP7fNnE&4d3JT(Tjy4tI`_WY_+@mzJSe5SnU61;SIxWA#q4ta6C7_BpZ}gc z_E3!F5k=gs-2 z%X#zu?9+#TE*K^YPX6C0_wU{tmGa-cQXXM}4J7j`KKW;azhwtL{ap9E&C8$P2Io#0 zZ36l6s=S8gwSLKOTk9O_XM>uzSvS|fWA#`3qjJ~h2$s)LEaHsu>|*p09$Vwd6@J-+ z?{_>;w3dor*3dbaS&GlG{=hc@vvE#b_cuhLM&Z8V7kr%~_)@!KZvlIZ$UIJ;a?_28 zd_)^K&NKLrvE)o^vKl1Uioec<=1PoRMAmp9&p+d75)Z*I*g8jQV&C=@n>IPl<6KYs zDmhE9Ti;S{$KWCI>e|8TuDi%#w2{v;KBb2d2lFfVl3(ma>^<#0)Dp){dlO*SbQ}D= zUSU6#Nzm*wV8>p`IOhBb>|gL~X|F1N!PYsLi9GQb2sRHDW(}j;=wRqomom zuGWtkSNU5$gS;>|#m2rV`-x}4hA-|v;bnzxBi}KWylPDyE-L;y7n&=ya zB4e*idq)Gh4gOxQM5mfF?PFj^UCTK9FMu7-*@|DV<2i~xmSe@nUXxz+##1e#@yKbk zfnj^#F!5^~P&+r>yGP6w>&5z|h8yNMO*yi6&++iwQT+k=N`J}U)2P+`Je`Z8jW$2W zJE-{VjLCb0y(DkZ&)nnLXnW3h4w{lRO*>i_&~%@IPxnPz>o#1g!{>6mt#yNa@v+wK z`VmvnrOa{NA=YioXFbw)waHs&969LsA)KxsIP%T}j^}GW)mQZM&K%yEy?X5ZiSxto zx^r4CgmZfrPg?H8FYjrr1)lBfkiJ#?qP=*&_#Dl@HU=IIx4T}BLB1Y8WFt@g9aMNn zjJmA&CEuu3pQCG6$AH`5F}@fhXSBxn7;;=`vxgQBOs(&`=2!1^!msL4@}-~mc-Lss z7xlQS9Qhphz)}Bq@RI%x-Is~4T(&$e!Li>6JS$vRz+gZ58!T&wwYeUE>$b*(-)KEu zF*ntTX+k(NKebxb3gT=I_utSQ*DdCF-Z95$1C#gom_PS?{O+1=*OaqkXnn@}nBvFp z>0FcASLr3i^xkX0zm{%9dx+uh;n?r%;vA&-e4mi_5!RW4JKxVsbeQAwyWj4r-dAAL z$Ge>OEcG|V^z?|__YIhChc(@o#w+)G(Tv}TFyC$9k;nL*JjCx+9ua4L z-Xpw^z;>J1cz7RmUmCZ&$O~ZjI~pK5nZFGoUmY3kwwF%DL#u%}G nXffyxd~hFJQ;T;x|MwAf8ExS1ptqaQ2L8Y1>dy&3*8k@#>FE2Y literal 0 HcmV?d00001 diff --git a/data/phones/songs/Hotel California.nbs b/data/phones/songs/Hotel California.nbs new file mode 100644 index 0000000000000000000000000000000000000000..7e8e31ae9968331fe98f0c9c69087b5e122aeadb GIT binary patch literal 31587 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 J^veI|{{a+*76$+T literal 0 HcmV?d00001 diff --git a/data/phones/songs/Icirrus City.nbs b/data/phones/songs/Icirrus City.nbs new file mode 100644 index 0000000000000000000000000000000000000000..25aa7287749fc7199ae21c125d4d16828d6ef395 GIT binary patch literal 21323 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 X7t8xeFP?zS*Nf%dA`HiUmtFo3r=V}e literal 0 HcmV?d00001 diff --git a/data/phones/songs/It's TV Time!.nbs b/data/phones/songs/It's TV Time!.nbs new file mode 100644 index 0000000000000000000000000000000000000000..c3472357cf1a576718741c388ad18215c30ca17d GIT binary patch literal 97435 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Madness.nbs b/data/phones/songs/Madness.nbs new file mode 100644 index 0000000000000000000000000000000000000000..14421499188696864364aed01a7186213618f3c1 GIT binary patch literal 47904 zcmeHQYmXhralL$rl4t_<9|$&2+c0Fr34$O%zQhq|3yEmM4+Q?mXbFpu!c9oZ0rTrq zbLO0?>gw*9xw}@x2y4Thotf@>oI3TGxp$YR(}VAxzWcq?pPWvoC$C;yK6`ud^u_N# ze{=EVtCwHAc=`Q{k1jracKP!8>(>u##qX|Ozkd7Be)!eZ|2+TquP*;_+4ZYWKK`fQ zT|E8dXFvbV#gpGY{g+Rkrd=O?_}l;d^6J^;^UI4jR~JvO-aNnf>6cfZeR1(`SFgUj z{P5A~!~1tk$bI`?{?A8tLcM0elc!HEe)H98^6@7ZX6^HrmtVg9 z;l+>tAT$FdKy%QedCeYu{U zw{cwgSa}~Ys(d^a$M;X8c#N(k`Grf0@onziVGfpDD0tm8W=%b~&AmY_9@WRhU)E6Z zRq^O+Oo=1w{CAd|`C;x4=t%F-wd5=KarbokhsEBz?3)iu-(38>e>$Ou#+rM7yX+|# zOypHOAn(Vm&a>pfmc`=tX!G)O@(ZyrzhpDwk^DMhJ7hfU;@0Gs^c?X8yt*0IQ-2TR zKEP;Vd#lUhUpS)qs9l%j%O=Hucq*@k@fMy{SIMV_KZ?^dre+gtu~8Fpt*i0eZ6Ti! zTim-x?!?-my_6$)ResNVv*oWA-kW^jZt`(%y^sZH zJFKbH+t^~Uhx~lc_))mp&QW=-d@6E)U*a+Gbo_FxVb4J4$ZyG2EGbv9v<}hwBb=b) zX7#VBy%TvoAFXz&#=%yr>Dl)k`*!ObWTsw29YdV=bQQd(wN*Oh7jh>2!aiIpJiqNh zR(p5m0Ac%W?m_S|^&p(@^dRJ0s{cHX{IHscYpO?ud(@$R=RJrucRybwe_%tGH(I-6 z3ww?CVxFr$pl{%s$-%Ms#PzqmYME)$tc2ctM$Z!;vCrg?D??6zV+VT`;*)sJctw1p zSKT>1I6X$rkKQGI!+i^OM}0rk2lITSz5`rSuL71k^$=@%|NA~$XCm8!{`7(O+j}#N z;a{)AO+X#=y}xanAn?TgWt5Xe^E#b=E#fin zZA~l@?+y9c?xt7R9_TTfJUK~6{hxIe^VI->*klz)tadiieLcI>D)fJ4{G$yts#UxjIK{6^1EGkt~EO-=y2 zNlyM`*2}`~%Ap!V=mOp;Uc~=vjTgD8+OeIZxnG%YuunM@@7~Zua(|a!g~w}8Dl)+z zJ!^){;A)SLW0~`-v5omPv!jdqO?u@19Qn?CmISPAW|`)h`GR{#=a1m~%8ee2Va;eb zILR?^r#zR!{$7Xk!Rw>uvocf3f9FkJcfK#v*|Vt~hUJD{_ zuC>agb8-V~59EfgOST^L54kbgUwy?I`I>u!a?|bsyLaFjYZ}X&^bf;!GM{)p=Xwnr z`kpAR^jtLg*pr?Ucs{Jnk`FG%47w>FF--D#KJPQhCioV5+-K*$)@tsU%+BCdvVrGA zAC)r=7vtHeeJ(NmT2H@bc)IQ0hiotQXuc_PN%376$LzD?^TD`IpBLm8v2wpAu^-vh zy*~h#jh~wR$Zc_9yKfj?$^~J=bH_IG0{09f91Ab1PqJsi{qC6#aWg-Jg*Z+9!#tx- z_nqf%J9%+r_8-bW81LAd>}RaSu~?)0vg5>l#je>?@m0KNqx*afy!LZ8Z1(slu9+XW z7C8j2Zaurr@P%*X*<_U0z$DdXVzgqOdz`Qw*f08`Jtvnl4Il#f>aBZKDNgnoU&N7^_m)~=&a%G?PjO^n**GYNZ^HP;9n~Usr zU$PrHc&6Rj<8{L3Ok7*Il4N%n+r46+`{x)aukASDP+!|jZo^69{^!d(Cdmo8-dl*B z+t9^qo?GBLe6}^pADk=43J0n!T8SiSlxFCLtKb_xw{`-5w71G_+hv1nFZ_hx zyyvxBd#7A1y@zpV=P|?UekFaX zd#b63@$HPi{@(09uBdT}UByzd@Y+0(=e5%A9jWbA*Wucp>c87#JgD=aY6IlzzSVeM zzjloW7JUt?{eD`*W_C{JE3+Ls%R6hxNp?`~|MywH;y9eefrowOsJhQ{k7?$`EMC|f zHF>B<92&+ZYCZPOddf&o!+nb{=LGkM=bC?w@%~vncs1*TWxjVjV8haPiX8gqHTxWY ziFrHcD>v_+9>A6d8^7OQX0#?R(q{m;Zu0QmiwDFZW(D+<(ahIioaC{#J^1V8J+H|l zHqnocQ1g*fJZZ?UHSbx!T^ikRzr7~DVe2l@>kV6cU^=|X%XHqr(D z?!{Ah6+Z+24O zr~XE*H&(X2tf@QVgT7CsSl{1xHWv>=2e{MtX>xhKzS}ps=qDzZ*K7TbdQjvxIiq@> z>_zNNF4tYJzf>IJds@}b>6}?{C1=;ZlW^tr;JS2|d9(U0dEl?fV{RUwuagb5RW|gw zKZu`jp2kmp*o>^Y0j>v^8h!Lfant)s|D0AfdMz~hs5yGRXMRGC>7=f84lRgDo)gdQ_g=;C8~5GX%i|fLkH7k@?77Aa3ykJ7EM_0f7@RY~W7CIyMIWy1 z%tnZ9n#-Ka^5xt0%m@6C-^3688h+qc#8&+;W=-NqUX7of5{`v;onFNa@@yaMi08si zZ^Qq}NzJy4jqkuSV&P)cMaxg}ZLMp{lfb>^)V4o`@4%9Af(@n*$BLKf+kIyu+lmh7 zj(pK^phLZdIn~Bg`4xKH_uPv%{V?6|`J87&=?l!ob;POZeFLAs+w=_7)r-0O)_=2o zlhbCO@Ehfl$J%hLxpe#7csc)`X8&yAyz^L!S37eIVlbNTY=6Vs^bDwZk@xF7gLwn} z&E$HYle{#)YJZ-qaLxAN$U0DG7oPjfL z&bSHRfPpw4wXgcQoinNS(LT>T*$X_&vnlSCnon&0c+bO=UUJaRVSL3g_+*%gTV5B+ zvor7S)hEXsau>U^9L-94ZyV3*J%8@`GxW;Eho}4K$J!I0GrsT795E~78f=bzwbx?} zxD)#i0ewuzRy0FLi@`L4b%J;g@Btx#P!P@uS_TC1=$MZn?7Tx-cG3>9{#u~0i z4rO2BSqy7;@Q5|7{;_@LTa&XEFPy(0zLEnG3)=%5CYX`W*T+nF+Yz<&mP32F^MA!5 z=WfUKsHdm_JDhSk~GeN_eaiH4mRs+Em-zf-s)V> zvhn@bc@4BZz)o|$;YzIWZ&m;g&C>Q)D_KkXdL-SN2SZNO!^LLRs$3gwZ_(rN%C;ak zO+M$Hxh=EW*xM)>uFv^V*AnjuR>48x$o0i9>8to*f3r5ncMnsub%+0&{YEi$-!sQW>@7-D=W;HZem!rI*Xz8mdZD8|S3s7{5?m*ly?@dR z&GB7Z;~C5H3iTt_OJ84W%Kqj(Wb9WTxPQ`m;X*t4zOuv2$9AA^u ztfl@VamJb)XXA6zTkM?m$$5|adPXz8^SrCaRzz{F0k3;<7m8~Esn4A!gK*^ zi(!@{oTz`DVMC7F)4hW*c_X_ZTRL+7$yd9FzkyQl53%z}EFbtcSAZq18!yEt+S2ejuNOYz2G>j9uukOtz$4|sRA0s;VO#a>`6V2Ii^Y-q z9T(?A!9{**zv@KQ-|?WxQT)&Hv&TpHy4~(~suOrux8#HI0(KcMYJ9QAcp|&q|5P_% zE9C$;lOsHuxc7YP*tfcYobZ)pPM9_kWXH>rCyhsxycCYT}-1 zJ+RxUJJWt-@)VO=t8h--!MB8atw)T*TA$|6RLF6~ZYYC(C=SClqq=1rt!wGCxVmy7 z`(yD@J!4*Z{crNj{Dv(1D@V+`>ZkL<^FX}N9_m$H!#eeAtx?^}&zTcB;yth&$YCs7 z-{bi-<{#a*0b*j~i_6an58MhxTdB0ej@<3@`fW_;-0({6oCOwJ@p_a|JvF8@@+26Dk=%2k|(@it!X^3n8Q%|H*X-+-T} zCB_5h-il$y!*nC=){kMoeAZFc+HFc9-HF$Y+mBOT5umW`i^MdoY5Yvkt) zFWT4h)Z}4KvmD9tYQ1gNn14s=ZL?>=Epe{7mw9RSV74@Sm?KTzYgW*a{Bl0(I`_7+ zA})%z<1wnojUC!M;b&dj@l!R)>ZE*!jV5=i9@n*uqwMeNg6YAUfgW6+@VDwAu8xn_ zwUiIUxV43GuK8Bhx?IOS60@RftTgN1y{;b~@G5Ok? z!LB_Idg1K6QSZZsbfKI5_-?sfVoywybe>VAiPCg1_(>dZSdl|l`w8vR-NOE#)5%=Z0H#N55t8+Z#yy>U% zQT2TkPpwH@WbD`9wKM*T3t8_be+*ycC-=JTqx^*LDL=*iS!_3R$K(iS$tg9f=Wx=k z*g&_wx3t7X?+fj_I((0{AM=Ra`W`;Z%e~RCuWP)WZS+83E>pc5eR;uC4Er^t(BhYv7!Ho=7gby&VTkXUXsWdD!%j z^R7qvg=2hfS>qqMZF-uR^1Vhgb1M(be(=Ej5&v;CJzU>>F9JS=AMR_8O_Q?~H{l+5 zRX?V`$3T2#m)`5Brh5&L{p3jWOxY6OJL_i_Tf=>h3-ZQrDstU-kF(?(cX4gb5!uw& zC6iI(uegY3ykBt(S*D*gZ2dhgvmHJq%yYcxuj5LbSN|1<%~=!4rL?nFfaAOlAr8&^0h3j^BpFjK zeG_wr>{S0r7|KrO%hz37ARic7z3}%5W*=gl>agm9_?PX&HQSHlgfrw&$7{*GonbDQ z>CbDBaA9uL8icsvp5cxoaR-0It5laXlN{w2*ZHi$xOefBT=AmRYS=mAhwNmX-kX1> zc|d&JPTIZNX?cbFsrIpkLtaz!h#%MA&O}xNcJWDdi*ZoDoyLniQJ>S%d4;-SwO_N= zgjY=u28YZR<;;lVBVTG?qYrM2<}=BakC{WzWjTl=IRu+i4q|`rljk&RDSWE%??Z2iHhWjZK!*;B>PZb-bS}_NhNveUY8Osc;5YDxa z55}bDf6Y_<`=HEI)n59&zn}Y>dPw!jC#Am z9_xG1U-ki;y6=phC^zFI&TR22`9r&UJ{dNw|I-?AwkK^0ke)C*-BPXCUVT@u>8Hf$H1_d9m>i$6Sn zb@}SWAD&c&2Pv!@7{89Ya ze?~DYv#NVqH7g2`NCxBhGZ^~o!K02Mg9sm8o zDSFoa_;mVG&b<^pbbs%qbZzMQ&aL$DX=yS)Y;BA)Zgf?;uww4}MdsTZ_FV>?f7I+? zA6?LY9CqL}y)U&U=XG!X%0IK8bK%#@R`_)<{lXS;(eCBicf!B$C-oqMf2>8ND<<-d zw%V!mC1lXY9P9DDD|1>a)(E*hTetFmD{O?$#Gu;v*7ND97d^5?-ec=0Eg#@{2K~Yo zxkn3j@&h}xKKI>{6U;4J^nt#JGxHo7>_8vk9=Vn>TK9?vb6fg0>7k33b6HewDMtuFj`fpotRcSjcx(>&sHcg!a6pdO$Wv@o`W8QSFZjd8maZ-Otu}-i zGQ=3VS9w+GjA{4yRXgzas0@6xdp3L>i6?M9uhmms$b4m;z&rR>bdyhd@TDHdiv5aT z`1xGA_CNORJWTtX<qvp{)?s)`oFa?^xrmq z=)sp5#{5b@bg;!Pu|sEVptE++@e?|H(1S1SLdOnt)(d^Xm;AoJnPaWdMNXs3bZ5-y zdPy6c<@oeIY z?s+eGz2Ht6>yy~t`;3bo@+dGr>nk zEMLjLl)2~LbZvi_uW5&U_(R)=6{D?sbFDsF?OnyQ73Ut^?!$=-{FSaan5%K9ra_}6 z54_&hImNlDv*l{_1ODgIA3mPIhMHb+1A|I`(R~{B$!S{ll$)v*3aT)4KnV!-XXW5qbKB7IGNmvZgy65_|Xqv)gOGH#11-Xtzypm zzZYHmA$UHfA9<2IdZ!l8dz~J6lJuV(s7zm8@2*L_-AU-Qr--tHgriUqy! zRh*y`ll$NL7we?B;cxr8`xbXr@29Nz3%&cgG=BL?eh35B+x-!pyphhuWQo()PiqxC zndeP5`_8k4N290zgEhavL~HS!wN{)FL&q!pPK>0NTviOM?UCF#DyR739ZR>z+E&}F zNyK@^v9()yvPGZyGp>Czf1c`Dt6jMt*b9B{w_Jr@YpCyU>KpAfy}rNVKGSOyd!yDm z_6h9~8?5o8`mSd;>Jarb8Tw42#bgzY1CdlBLxOY1Cv%eSL=xWj+fOQXwrq= zuybCE*50BUzvDi0u5Zmh>>TlrT)+>{gYYF|L*K;jDSyD^2!4K^sn1zc?@QDGzZYEN zM~`xtv$NHQT(@@4XKskjnW?-u!XGi7^F8>9SLYkKOKoa-mUc7`oqAB?fev5A0XlZP zb~%>r)50DwU+2B?To+nSoa;>B6IjiAW8lCZ80D05nzPa8)n^|mFC$lTk3>$7?v3Bj zvtrayo_n*^dPHt#zdwr_AN=h(bS+!u+Sq02W8;DBB}NU;><50U_}clCw7~Q{cg8vU z@V7d&mTml9u8m!WKG-~vy^c-zn0VwGO?lZTI|Dy_Ot0x}534-+OKT%yePLZIX|_ zHa=`h7MVSasPo)CR14^%L$!(+!Ai9cK3d7b*JT@qE(edx(eHAm%VpuC{iX4B*=95D z!MSF_2%FH5N5=K^xsaoe5A7XD>Sd050At}rjzX(Ed-K=qs8$h=`uK(|Vq)z13$5~0 z9iF$yD6Yzf9`VDcJgD*3vHY&Iz41s!K5fZ~AD@ILm_e&!&)+ScBQm~Usvh58qcxUn zeD}D@ubM0O^2pw=s_vlmJ4u@pZk49>rRES*&4qh;M)3@Fg%5TAj(n~8a4*luuc5B+ ztKzD4uD*_P=N_JsUn6_EJM!%;YgTh~(Z7=G%xM`#Pe7I2iN28sj>zdmqnMoTKnCCML#p-t%1NHh8Gd^R3?n+;4CO z3&!}%_}2OMeDP)7FYz~?6|*McA91sm~6*qJovpC&%Js~4jaosY^hDi9o?VgGdbIymokql#*A4D z#@J-+H3^KUU5xRUah)I4eAWaRa+q+Jx!W`Llr%at+B>z1Y?<;oJCDuFRZtvnQ`r?HLyj+*}T`#kN#Vcg_!+k8`^7 z(%1U}-Y1aTz&pzEWf!2K|>GY=kmC(!W5rq zvB$W!x6Uiiwsa_0m{Y#dCsu4RR_w9fxpvTAn#c3yx8@VRVUKZbnRj1Z&z9flsq>HK z5B_-`;XAQ2eoY>|Gr;cBas+=Ezb21r8~)HLC+Kq*ZRdREbkxgihqBDI7CkOQzt266 zy{!E$*6j29D8BmIux{dqk9JhE`dq=L(@oC<+UwYazuD(Gf%Tlg`-k^mBU-z^XYGMcdf121RKKWO(6k?yw(p>gWJi1>ee*knsCfhIKScaq z>-z%gJo&d}H|FPe2$5TyfxPS0eS_yl?{n8<&+8e6dP^&Q_;_~dbFD74_W&1n9QeAN z>3XhB|Lp-g@|8Z%5%W8Qr)N&Eq3-h@etw7Wl;dDiv0@J}?|TKBYIx;CkNDx!dCVOU zS{>^gue81KNJc(w$%(()k3RbpS{=*pO4}QcWaQJ9ocOWt&zI07%WnkGsCSI-<&iyp zYeJVW;@r7L)A~|#;H$ZCFV85Rp|0?OJ&g|||7$+n%QNz8sB3_$*17sxbK+i}kzXTS zx`)m05YF!;mUfnt8@`UvII|h^8y4d_uX`H5FY`PH4`b>h<2vtot}~y#s6M~d`CY*M zu62Pi{xa@+rDD*=b-w-fJikMTHQ;yK`5nU3v-8sOhWsM8$vbkMG4tg9g?!*#W$O67 z=rFsRu>=o(Z^m=49+Shyau8c;6LRxAgt&7Vp42pOIy%-JDR}cerq0<|^Sk?TKkBlP zU%emqfb7d(Y~9+|Ie=`tQ>M-@lK&oy_Z2(q5_KZuZtvnQ`r?HLyj+*}T`#&+ibP z_SF0iVf=f&_6Bzb?JN4UQ9ts1A>-QKIzPWdi1#9fbA9)~7@Qe{bE|Q=Cawp5_!!rg z`BpbC^i+F{(Zd)$j6ILwg@^HL^5~rbc9-&e$oMsRgg4K@JQECmPj0@#OAIbUzt35$ zT`p+w(Y{Z6I(M)`>-Kmb&~WJYoACF1UbnbMvK}YTEx`Y?*lwlhxSv|qqr&`JmSZ`aIf*!vHY&Iz41s!K5fZ~AD@ILm_e&!&zCKp zBQo--@-dbTbYELzcsvGZHQr?}*TQC%>EoC~UcS-C7VFD+gwX|0@keJd@w*=Sv|W$! zEB=~u-S=jv`n)?II;)KA;0JBjWBkbRj>Ojxnsm{pMVJ1*8#+d^x+gH-WrIeamhT^2 zAHS8r1D=faOiZ8lf~R4+IUhQzOdrP_J}5T&=;}T<8^idE{f=9sKMSAmsp{*#H~rP; z-T6VBS8)#hrP=cR21eE1tM9kwTi*lbFEr&hI70KageE@X;>;9Zr7g|oRi2O|f8Y}~ z-20(bU3c>gbdPlT_a(enCVs}Xy_gSM;0dpvYtV+a2C{m#Mj!aNK4|ZQk7qP&Y}sWk zsqOg7SXfuubH_uSVTbj=cC|B-^F4r^_}IVDs;-fo*7XQq!eC_gD4*lTULWCil+W!Fqxa5e~_cpMK`t-GU`_A8%%YLm{ zvVs5TRh@v3cC@eiTsb>B-SlANf$Zgb!xn4y>-|M*hu^)f2Ms=2tvh_QeXd~B>87X4 zn4Z70y^c-zJKwLiHT;m@uWJ8N8+ab}`r>=`RzALml|Ft;_rCTK?_IUu*aP4>qP1@T z^7ke9q=$V0O?IeT(ERLxHj*9jjr95b4}D$_p&ivX^2P6Z;5owOC~e}`&%IR+31{l< zHJo3IFLG!1-!hTk_^ljZze1}#d-KZQEgtOw_Ne;oIczQUOgq3+b!ZP%J&LRH!6Sa` zYoFD4>)7`(a+Rl!M>6uM@-Y^F*ByN@gI34#yVCZ?BN?v&)t307jn-JQ)GPRE9^A__ zvNyt1w7Slte0V9IQ9MI?;TLP$u^G@_if8242ruDU^JJ74FU2$RYh=%VPwaS=+ECw} z)m+m%g!-Nro~7yHKEk-p%Qx1f_Td#BdEtq_$l)jB=gw;#xo4r1I2iBE`|m)!Uq=UH zVq#q9mFHkk`@Gi`oxSGyha6Zi#(&1Q&bPSo-&No*_@k3}utknAc5EJAN8rmk;XmZf2})k6iS{3(p9nExqtMw%%{&VcK(l zT;HwzR{t(^x~=E*-A~zyx{$WyXVin3(@%_iK32t6I&Pd0)97wK>-he_h`Dve9di?Hy{BbkUdZ)T$@lt_^DpHO{<&Y+#1`Y%y@L8Fg7|NQ`dx5pjczejOd^l_J$ zEN6xHyYA+1oH1F$d)|c{Jbf-`^s%YDgwJK+qgC#}*Ja_b#2e2ShvZi}cjWcl#@|P2f1fG;f7S3+zV!1h`b&$k&$n^A ze`FlN)8n`%>-(U{ryg+bI-0Hau44HA{{~i`H}q*Qc$(hL`G~v9^l{9Qd%DxmM^|8x zu`q7;o)ztar^pB=FmOHeX}ccdSN?D&z}J0mcB;?2^P#iK$PW5xyB_1$I(K@rzm#}A z7tnRVQ)GlujZ=D%r|o)--}e}N)koDD_V*S~l{q?g?9}f*UcqONr_KwDN*l!lk7K8t z-HYW2hE>N%X5zYw($z zV|}16%@58d==cjBjG2dj6eG{q@L=Nw>8lud*NPqN?$L><#)uqxbdR9V-Gc9Oz!hBL zo|EglMdzLBU_N8oqHoE;&%A%9(&xhee*bFgt^LVwCB&pS=_9MZPettPao*R!L+p`T z!`QFThcT0*1O2bUPrP8pvmG^(c*zsaY5e86aA{bxHpF$e{#c7$-NCc#cko>J95nWW z?$Fdc?eF@#nf_)3d#2C56yH(Z4O{%g_gI6>LE?iRYnF7@koj1Pq_Z~5Q$1YeGW;>0 zbaKG-C7rc3eJeUS68e&kJ=2$T?3uo^p1>#aDZf3|c@=h6-yx$1`;2RQ>%5=m=&Cw& z$6^lu;bE+E*D%Zd{L(z`tIlP7qQxHL+TJ?v_Rv*zJR&xa@P5y+dt`suw{>0j=!$7e z#^-eQk~`?!n%9{OkIOm#(Rpl+WSPT%bUqp#|H7|N;_bvq_w(@8`=`@aPN&l!|L4uy zPrvzJe|huv-KTXN)2B~g>wjct{%0aE5ts-}1SSF#fr-FGU?MOPm1qL|`H?5ts-}1SSF#fr-FGU?MOPm1qL|`H?5ts-}1SSF#fr-FG QU?MOPmFjyZ`_I literal 0 HcmV?d00001 diff --git a/data/phones/songs/Papers Please.nbs b/data/phones/songs/Papers Please.nbs new file mode 100644 index 0000000000000000000000000000000000000000..aa20516c730a9a3381012cf4c46322596b975f3f GIT binary patch literal 4814 zcmeHJQEL-H5Z*LxV^fP2eTb+y7KIjrRIOCRC-tRbOF+fvv)Q)MBpWUlCH?^aqQ5}! zXE;0e-LiL^)LOhCl9V!&o7r!_otycxN-eGbsIIDpQmPdVbUdV1S4TrlZ%=ej(;L%2 zUg6lwSFMNJ_HTo~ydE7!oM#4_HuH;K#5zh$y!DN<7=ZSpPM;D%8Zr_c#imE;k|s7< ztM8BLs1pwp*{n%>$&mUcq0c%V(-+Lj=8^>>4= z;gmKdh7L@k>3P>2exmm#?zVqcRekY0)46m(sjqBzD@q-(wI6o*zoKfF+imOBZd$9< zMe8>_|CIQ$s;b&nn!D)v3jr=;HnES`+3h17v8Ql^FC68Z3#zsaZeo>^HSlE({E6p! zjJ0C17QU>7pWE+AS~J<_Y36f{t^$jEOnxr;Y@emM@{X>1er_FVi@5B8{e%yE;geg( z_-8qT;Bw6#rTYs$e8Go55&tap&G7Gg`1dlOIp+G2zt5zf=KX55VcxGw1$uDKe)Z>a z*=a7%6=tw*_4K#813pe;c#YE*o{ff`n^Q2a*f{6ig56E$OwI^@!Se7mD#JuP;8_M{ zQKxXmyq+;n=wq&)$PIXwfq4yeybJrlt0#P^r_))k{f5oSeuI<>c-{ckChU%f312Yr zKIH6ofQfj3S=3PQk$RrDm&(8_qnFCSETfmo!2C!1bJf$j@J`Azf}X78@_63ebIy@_ zD9;h*U2u;jXU zfq&WfYtYK9-=V$23HM6z-E-zIn$7(Eo^kO4|8?MJ+Psr$a!?=lobg4!8Q*`WE?&T& zqNM@8<2vtudp`~8<7&G|fx=1h#o z+b6$S@cs7r%h?ax&9i5}ZeD5L{eA7^^z5&buKVMYuKQVxkFIsy@0RHAME|-wdM@>> zPrGie@w2Ww?ePyZztUb8dRE2$-sVjl)voxr+P%b^wedCUYkpe21I??yt*>u7Z{n)^ z{Qtb186RumZeDzPEiJvJp1Jq7?)7GD?5s3j=$T1>rtwBu!x=5KC-e+jHiOrWwu6r7 zwVvvW=)gJtwDRn$WUCbGGSQWv?2N{MkG832ELQw=F6{T`#iyl5&Cm4^kLfRq{2aOb zoTRgjk@Zu)I1k~M;=@1ZsmDXc=)KVqJ++51hHd9=u14nZi{dwZ#5SRA(>XT&Oh^4| z|8-e2I!d4QUwM65gAFiOd#3Epi%yJQFJA^}$vC?mId+=$Q+Ua>aYOs!-{|N)vM-|P z|2=+=EBQBs|6YB_9vCM#Gx2(LEqmdk_){_B(_5(t`8iZiQ$E$&P<$2dvb8KZ?TuMS z^px#`)kN95){cFh;N=>LS}FSXRHw|p5%0S+_jkub=E?~@EJn%Bh2xxa_!r_sUqWj= zx|Jsz{>E5pkLaJGoipfq9+@vY^jb#Fhr?qBG+X5i-P}Lr)|4V3cn3 zhm4C%+b(!9?$HPLzI!YReqvM(y&m3Gv2S1CwPWbWx8Q5NYi}i7a`xW0#YX0h=^5j$ zE!K06Ue6hVpUgwX2-fO)*$vx@zlUwb0j{}!oJ)uO!f z1MUyV@;c);+pg=9Z>>)D?L&$uzCYBrYMm-Ku0LwgwFT`y0C|RzT zdLPRClKZN+r+KZjVsCGA^^F`ywJScoG4se*jjvf>`Fo0c%3k&D-ObDKH>7elLwD%W zd$8VN;B8b-_2)k4-x=Q9`?7u4b4&HKbiNe(;OIEjpF$>jD(-{bo8@2oy<}hfPVqfq zNOrs*AMeMD(hKsPdFOsC3|;B{jIL|{uI7AuWz6^P64J9>?i1XTJ@)Psn!ASH=(khv zrRSZ-yJDn&`uitn)os3Sz(dd9KBABJ;?je`$njoWdb%+G7VpLXeoM&*zf1T&_1Qeo T91Pn(|JFM1%HLCu2mkLMyD#z0 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Princess of China.nbs b/data/phones/songs/Princess of China.nbs new file mode 100644 index 0000000000000000000000000000000000000000..8273e79bbc200945915afd33bc7ea77577769ea2 GIT binary patch literal 8022 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Ruins.nbs b/data/phones/songs/Ruins.nbs new file mode 100644 index 0000000000000000000000000000000000000000..e2cb6409677a78713195ab94a8b9b8156b12d593 GIT binary patch literal 63054 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/SMB3 Athletic.nbs b/data/phones/songs/SMB3 Athletic.nbs new file mode 100644 index 0000000000000000000000000000000000000000..142be776a5d3fd10c3673ee5d42b368cdbf29e54 GIT binary patch literal 4180 zcmeHJ&5ja55N_C26Q01Bn6w08VPQZfnzR zS%`WxJ4~RvrmE}jtFGc_v*n&U=RSVFD@y<2rd$U9t_+*Z=db950j5#EDpQ>yJhmEoH|pvjlTyew|E#lkPwejT=jzg>m-*NwmZ;Z^a~ zRrc$|wN3*RjvqPq4C|YQb5F6#r-8?f@EthUlzoQp`5*TGD*wXtwU4bQu8}!+il+e? z{F+bjsF(TzIpMsx(uW?{6{88$w z?T2{Zw>^De44QlB_+Mh|BbKuyM#LMj>miO97x0ZSVbAxY^gVQSaVFvcUc?IfL+>TW z9h`|6K`!EhJ>O5U2QE!Kjx{);-?mcr96H5!@>9IhyFvVcrN&I`h^?N39@5lHT5>1x zs$bYEpT2;m9Q7h+YKMB6L+T|>y`+24mF7tKX6K&Goxf`566f;7{|nI5#9yg*xgYdD z2QBvlb|1_AJu^P)Bj#rSKKo47Z~EIc-(K3PBOi+%b=W zCG#u&JMDi`Ys@d}^xg`+Dg({RtFF+=xjolQ zK4&8Dlk%sh<|Kf(Ube*X|>ZI1bm Mxw-o+WcmA_-ksKlINENpa3vY4~hClfhc@bCXCmR*oc1J{?O{)QT-&ou$Gyl*CfkD!bCAhoZ92%T<$w2I zJiHh25(QMDhUlK+<bt3Uhfh7JAXr(gZ#N1y%p({H}{{4d_H_V4`{d%ySPU;Ol|FaM`& zz25h%`$wPYpZxffNQ zU+jJL*^fW}8GqvQulK(G@{2#)`}Buj{`4FB(ZBxe)33hX`}EJgd}r@d`=eicrpNg4 zU+?|t=U;vO&E98!`Po-{Kl%K#Kl$uy8~@_j-sj)!{ne*mzx(dHdtd+bhd=rBt9SRl zZ~yY2?ET4?Kei|R=CdFDwf>rBV3a;nvE*AK(Pz*8?6dv7fAqz_{PM5g+53yn{^H%LU-kd^&(mBDKYjM>^KU-?@{3P@ zWPjn)zx?#`AAR~mW8Rlv=(qlxKi>P3KmYU#W7|9RMB)#9`i0HMf=^y^{|MHW6`TKv=@Bj0k{OC)Y__MulzTEp~V&3WaK`c0E6#(RwSd|V?ozajH8{H6WIVEX~T{lMDx8`DMR3l4>vujZinMt^St`ncwM z-^Q8mkog+M-x%;W2G-VZE&cqC&1HE44uzV3{JS3GJ;r-J&is#=zoGy3kogVyo__)FEW9Dxde}nlC)BKm=KR6U>{`wo@|EiDoCg4!W{7;y_ zq5t+V^EZt7uP}dbDAfEvV*YP1e{d+&{2Tl~Vg82kH<N2W@`AfBg;3f6d2x z6L2VG{!f^{q5t*?^EZt7$Gny&pwCb9f6DxCFn@3;%;f#aL!ZaMF#ZPfKS}fN!+&rn z6#w-%H2-z@4-SPIvAy(!`5MMvig_$gK%bB1`w8l#-I23Ar z`c2L6Cj145!Zg2I{MIdgYu*3;@&p_THNPJ)zgx@?911geezMMQuJfA%_y-P!nxB4C z^ScB8z@aeBZ;jttJMhw)1s)0^0mSZWG@hz;|#cwE6EXH0Ix9{yly(=CwQleSXdP z?=XLGC|v2?em7)d@loKyyTO-uo~4GqUNKqQ41Q0*p|HvKJ@^g|g_`#w^VV-X@Odmx zz@e}?&wb_z4u#^g=GEe}{pLbLAM3Zb;43&3Hs?2lui#MF)P4 zN{*L&Jr*1#$IF=<>$kVzA2<{?=QoCb;7};JU1{*|A@c)=!sh(mW`5vMDE?`F;-BW# zC8wI-4*Ua$!sh%A;2$^?ihs+E`Ry@3a42lfZ_50@p-^&o$N9JTC~)E3Wp6L-U3Wg7 z+6|iLK70g+!sa~Rfsf!&n9uVO^8|;&<~)y>CpZ*}kJ5YM;}U$-p3LPiZZj)aoK;M;!e%`xngbeeds0z>!dLxaWUk@loKyyM1pj?Y-fA zTzvc;YwHZrJg4vx90@hgKlXpqJNgcM1V=*6^Nq$l4`Y54a3s_`|Hytr>--_}1V=*g zQTn>MpOYNkZOrc-_y~@Kn%_TTeox>dI1*}p4SjPI^1nO*M?%f-pEAFXm>)P2N)B)M z-&k;z9Nt6@Pa5-k7yf}Gq2~Ad%h z@W}th;-kQYcf+<^+Pi@qK5oo&1|PwZQ1g_pWp?J#@4-iKB-A{c`}u@)P2N)E%0UT~Bg-gEvf?Z4BQ-`nsH90@hQcbQ-CwKoBszmmiIjdgzPe}8!b zj)a=ul=*e-6Y)>;6aQ`}{y8q~-)zk9x8NT*5^8>LGry1EA2!e% z3q3NAf4AR_n8V_uz=d~p&Rt{QNDd`qX`Z3ymM5U=JIynEoVk2#?U&GV%M;M`o#q*K zboV^PN6DM`Siwixbkc`957YdDPZmcBe!84#e%Jh&=JTRTeMecU#BgM=lvw)>;N1I^|#Q&2cYX0 ztsBp|_a^HW_Wjbn^fS*peiqMb$Qs-^mP4-~gx3UxKIrwu8-s8CqHDYrJd8ci2K;D1A`h)h|vHs{u z+XwA)CfSX){vYwYhW@;?S7~3TExh>i>O6YWo=fMEQ2YCB_IL6hd=BxvAMw0~{=Bs9 zZ+lzF94@xbZ@q2*9^QU*WPe|O^N8n-_A2e`j0-RRyjtJetnVKCTX6+@?)}x%_5J9G z=RFF!rfqYG^`&idsGryGR}Rj*zI%=59rC z_V=9zKQu3`{{#3D?N!>>4TB#sZaU=x`cCUF8%q0IeyIGEw7(UPNYDL%=YGI*N89GW zb4T0eQa|^_*8gVXd8KFcyaS#$+N-p$8^-g-_{Gof+}=F2-_!Xmdv2*WdaO87dT!|* zp9{|&ZJP_v9c`Nv&wbHz{IK!d+IRX}*Lm(}uhPD57|$K!c80Rf=RL>MIzO`C@pX1w z+E?5zJ+Ic@=fLwu+vdRYM%(7X^Ir5EPj-u9L>G}$?OUyj&gH;`cjK;kX>ZG(L;F^C zvi9vGr+f2c$NKdz{BK=M|L&!IxWoEfbiQZpt3~)7^Lnv;a?$zdTnm0JIO<$Wa-a73 z3-IZ!B)=D(Pm@2nJnBB3FPed4;Zm=6h+i}V$HFduUUH`S_;1EOJVZ~eu`tp461T7vpEQo=fugf_!Vq-;2zv$*-jE z6c;|7m-FYs{CXAg7dbem^7qHc-$$+ax;^{C^7m0wR&0NmcDT^KY4S74U-F4vrbFH? z%+H4W9i#73eCUL>$AN8+rTEYZ`fqX${dbJMOYxo)+8(#`-;8~Gg8uWkdZz!5(RWD? zp3t74|56<11pVjn;wHb6{3#xc{2in3Qe5VQ_5}TRgx)&=Cms6l_*tyu5qJVlgnBmg zAAF2>dYAr-IOeJRg}wLY$KNVUBh0l+v{BZV`A*wU{J91@Pr{Eg)ZbmDy|KLRZK2{98#~cn+tK~PwVu%9 z8q$;RSNq7I)(L z7d>}&sdwk?xc9yDc=B`o`#b*pOTC-h5pS@R;E!|$)OZr@t!>4N&Fk9u!845uy}eD_ zQ0=vZjQ45xt?hi-_(P}LSQ6@Ah_}CE`!-NCtF(pwZRg^n=xe{vrKf zHH`lL_UJINEE&5&Rv&-#>aPdF@RDtLcMZxQ#QRAFL+y59tT1Vf6R6AHd%m zh6}yhw$JoCx6?i&esS+0_S@Z2;G4fCyKC`u-@P-m^^hz{KU}wcG-E%7f3UJm+t7KQ z(CF0e)9zc_pL;|1?b;hc{hzJ#am1;G!8_vEv^VZYTu&Ihi}u=3eyi4b!a9dt-J1qh z)4RT2md_jKFj!6KAJPw2!|3mCgOh%&^Wh`*)4KgV=4^UK|2Hu7In!RHy@7rb`kYTf zU#(5#uiKmr)o=OB_S;(Tz-s#J6SZy5(GOM=`iJy`)iC<|+u&qo|NcVy)t<@ro#pJs zI?EoDKAoXgLG$}0KU>?1$4j41kb{U%te67UxKQJ335`zeKJC7>ogW(!AKO?Gio$v6 z>uEd`l)YN(^cVXm`c0quzw1x>vA%C@*;?pKNxri7 z5%+C|F=y`EXm1QxT`vj!xt~OP?HIe&Q2ibH)a}j=eH#76IzJ0LbsL<_++Ka*^Kk%wp-Z;^-fS{{5~*ZX~z_E2`d(qHWN=r_IU|E@oIU}$=ExQRUI@1{A2 zp0xLrkcVim(%u*ztLVhPJ9l&+xu+6N3fc1!(aNzSF9%V59tT1Vf33` zg}>{GzxMa-+}gXt{!yG<`tkw$BjkL=-rEejBid`c$GOHnFgrN*iM3;YL|)p)QX`Mz z3HPgpqA?!$dItzpcWds^BXL%rvuIbUP_qP=#!;Qd1VJA1#6^$R?;Kk4^)p3d-Of6_mM{<7@P zotvz4JjeFr4tf%_{0FV`*7l;W=gP(%bchv8lBpG+I?&Lnr=j1#l}*~ z<8_|;dKzz$1MZz^8!wTAYsf*gjhD#50&);>%ic8b)c&O3p^U&;Kpibz3)(-zD_a0Qrn}c2~A(8-{#> z8-acL`_>NmR6eTh-=&n78vJaZ3)o$SUqgR!E?|e{_Sl0pnJgU{j5ZY&9%qC;-6 zXYglE{TlkuYv~gcu!_J8I8ut2{(S=-r)(*K^^8Sq_VZGLwK1BbQauqgIDOX`5 z<#CDIi^x@af7*3LE?3EhjQ&%*H~LGvH*Ci;o?x zh?Q^g-oe(??rS~v4pv9A*?$ZkM8DaW8aKNl`Ym7E>A`9g{cZp2X5*eff8&#<9xDf{ zqr+dQZ8aOBAFL+yTi(9YgViYdyZt5h0r$JQAC(+bM@hfr_7VM_mv3tiRwMkHmVc9e zoA@YsFx64=NAh?o{ho)f-;VKW)a8%7s68Zkc~x<9trhkaSRFkl-tBq6{;Uy~8+FCI zB@Zdi?SCWmMa|FW=;?x=#HC*=l7kcn?UIA%*xdymIp4B#?#1jP@$=h?TL!;9-dM})bL{X!UW2|o z?^2wxi{H<&zYBh!6(6kkM%*ve`Xilp`F&J6@90N<&OYymr;*omdfv^6zxn%R(oHem zecq*eBd!0dio1#T#J|AP^J`AL%-=urxj*OpN^vs%4dPXx*^S(<(x1n-{5?ed4dPp) z%R0Zlt+zlrDFD~vax zuWU`RdoJs|Ys8rfxw)M4uG_CmaVF`tZ!x~ac_zL}KIO+rVwIoZ@(Rk2^Zs+6YmK;4 z!Pm<;*De}YI^BnD`}s1@zuezT`aSpe=r7LiZvFn^_R=eiAC+=b$5}GDiT+Y3d| zyzaur8|32{dYo>be4PDB+>05iU+;5v#+&RteeVaWgXhGX?qQEViadgDy>v#r>0!)o z`+z*xg!Uf2)_m(Bd9F9fYc&)nRvyweRC_HU<9*tFYdarqlIME8k>_f4A@pyJmvJ9P zJJpXcUi!EYUV3|Ne^Mj7?2cR6`}H250;_}P#I5dO&p%S$fXVGc{e9M*`Vs@`OQ`OI zMpFHWjdj-D(C0d4-M3hG!Bx*Ew}JjAuSBglDm?W7gFWo@H?w;(ENl-vg@y z`U^czT<;$ENO`QG1WXy@B2l`dr^*eGgb)L*|;reK==}^?lCy zdyjMY(Tn7-YF&vB9+0n^@ICTYAI3f3%1!cA4P)JDKaBQTLdN^F`_^_o+$3-HdLwU@ zx+3%Hju;PP-3{Sotos4$ZU`^4I060`^((aQ9#1?-ep((Uz)!meK2qMQ);+};ZQZF$ zBGlhhy%Jw{+8ZPGwV}_Ix(;iPS$9L`nyowjUa{`<&$AQmVJ|$AtfsgF`-%D`Hdp75 z&DHrP^tp}Tt08j@zCMPphRikFPuLa3emb=`+@4}zS^OpJjeFpuTh>lqH95a3rKP~u4f5A`Ur}w}|FOr|CeMJ29CV8lau}^3}Bri1~<9*tF zYx{HFBro-PBQKTuELKB?^^82#RKLY|75l^xUa_9!r9LJvwXh%YON)I%KX#+t@x=Za zMSuSu_(*xF+9xRvt9?Q~D)n7d_a*j8bIs15 zWKVL=)aOsKC-d_MJF?53q+ZUvdO8~;@=XncpX8f9PJAWblsI>KkGGC@r}}B&sXa*? zJdby`?8$WQNdFP)Jt>qMR@?NrCd zc)&U>BLC!>K2GaJp6R@}Id%Jb;HiB`Je~M?mF|5D`!L1LB}?R&&Zz^mF(SXzFxHFw z(#PbN8iq{GiN90#&wLa=_soxuxct2M`%Bx0#NQ9dCr$Vsd8H4@E4@h`sbQ=;?T6%* zCS<%%yKn7Sck)WFH}XoYPEo8od8M>dJtN~K>rP(jN92`0Ca=^GUa~*4IDX;pCHpY< z_vYD$=ZNE%`YLp8sjs}h-?Hmo)L#?V{EqGw*>C>aSH$jGGJC@E&Tf(?Y8diI`yu(F z2^sIx?pr(LkG#?Ajl9uUW-py1j$g>l#q6B!cv&Nk|ByKT0r{Z`-y=`-A$g)V$qO|M zzS4de?X`rA_i6X79efS{apSsho?K#YytEy1jyQh7*NfN>mmJ40?Cy)&2VMK{a^eUt zZYLARze(PwVaN?_?BunCjQ45xtsQbh9_aN(9%yO5x_{YWzeax%-mr< zycx#~y`0_a)X(Alr}kp~9G!9e!mqa9w)#~6yTvDZU^RR8GqsnkewFuw)gk>>$IAP` zY8?IjP5h_P3&!7f!w=X#B>tZ81LE(y#NTfdZ#Q%~*`;l$_F6*5`?UMkb~(9C{Cy?G z-<=0P|6hX#j@4{7`_I9H=(qZ18m|uNxB6914_4#o?{5+}9}zd-m4AQ^v$|#fr~i$> zYIgVwwU@1~nfHU$A^le0%=^J=9R2-G{1o@CGdZz3X8LPAu$ql#im%w;h<>m-q~GeD zIXzg7qrbn2e=$mNYVqg?Pya8Ue_%D+{)O7AP=w`+wqDqu=UGX}mh5 z-|C#jo}hmm{ryei!Xx6syD2Ul{QQ66r_lD@CqnVl`$5}x(Qkb8e$e)v_uIa6d%iz< z!FcX2@!Uh=xd}fYp1T|8@ro6+kSqy<&$M@=y_S&iKJC7>gU`fsS5iDT_`Kor`h%Yf zZQuRk{|g>?yJvj%{zLkW&rT28zH@rpcdqyPBjT{TDGnQab{VHWpY6NQ!^U6l2W{U) zzwy`mLECp>XK#Y;(&Wnrj z{&o6pOnMKyzr}esj`ObD&pIP7fxLo?SGbw7nA=;cmeoo?iu^d-#pT18+Kkpg$viFVq zTbxT{ol72@`5ANaccW}hjy5Mpo0Fr>$xy3i`zX~R1gjIysSD;0^|v^`%r;>z7v+z| zO)PG^kKJ__JIgTSjrKlvS3<`7wENZ$dBg5{qhWWQa4v$?3Fl?u$I)Np@o|1`fn%Mc zcHgw$u)7L=a&8vy3upW&HK?6SRFD=jy!pmGRl>L946a^tP`9$DFtO4ZEx0bI5k8n|zwT zOn<@W=(m0Cd!j#nx%x0xyV36v1M9sNc33TMoOgx1(O<|L=inANmfu%dy~tEMw{!m{ zUT5)8&cT8YoP%4S+d3DGD=n&qr9HpZbKJ*{yNlgs7;;5>A3H7~<9*tFYlmE6$Gy?8 zcdd?m417VTQaBof3F8?^?_VAL90*b{q6VKRQFYN^Ilcm*H5VX z8dyyasryR5y+`$Lea`e-eIT`aU^R^X?)SoNo!?bmJgv0J@TJv#{e-%&fz@=#j^t;!CwfZ}r;|p3{0`D*CXdP`EpPB2W)qUk0usWcBt2tR6EureI2(9Kw^jjS* z@3(pl-VdsdmfGz)S}%TX+<9lq*5mJc-PZ@~r(~y_Z2rd8eNFWVvHM@weYHJ=e{40D zqwec{%K~_#+_AN_w^QfHO1#859Hlm`MR$gr}nDVca=4Gb?d$k8hZ8DrS7Zh zNXq_vRrM#dURS;D>pJ_Rk(c`$SNAp5&HT3NV@M9j&%LsBUvD4>jXd4ryAj;Kn4c(J zB!5w;IF@kvT=o54!e888Lmygf`IXgueZ!tfPvd_hp0oaL#@Y8G<@0k-^0M{(x86Wc zk-uy8TjhtZP}lWp*L_X(NE>;)gx z`3V*;bKPO_=k`4t{nYR5o!0T>`N?0H+_JXCCGResv2WwPyQ8kK--DOW9rXG4ZeH|$ zW9c`hlff#eHTTm$Hgw&K!eW7>VJ>oHLG(%t7F{l$Cc z#F1Ni+wy*1*L`i)TgGO<9)F?lYDrFBRa~`84#-O?>>~OLIUpaY_1y)@L5hR=--z?s z@)9Its&9_0W#=~ih5qWcyI;&M5Z_1q#4>vi2%i{upbY0TcRdatrPgnHk}YM92kL;H2z*Yy6K^C9Dr-|pjuKU_k{nzxqW@lXZrR%MwxUgjPb=}wcdz>#_*G>E+-_$VlWVEg3 zX`C~!>%R70*L{`#qfTu8-L=$c2kxZuEoI!|zA`KK)>|PyYe^V0A$MjDE11MSoq_XX^#)#eQqwYZK2F zsQ(&RjTfR`?8EOyKUh6Hi2i;0!D^rW1Ny=0fc_c%U^R<=tH%;KTwD2f*)*r?)Qb(Q z#*0y3_Tl%UAFLh@qko@%u-d2pfPSz#pnpa`Sk0o}>bAsPk=KH1=H+Nkde^{mMM0ZW z)T4d)z32z4hYzEFpMJ2~r~iO{usWcBMn721qF?oceCKQ_FJAwrx%8<=8z}y$KJD_u zKZt&?dU!wj_vr_#efkgR2de}6XY_;BEc)yEe_JnE@Aj3&)y10|)UOTHI(fa@hkp?L zVD<23^zYLTR{QiH&<|Dz^v~!At6B8dbpf~X@1|)^1M1xdR^ywWsQ#_i%j@8RrkA4M z*2()p(@W8B>*W2Q>80qmb@G1D^pf}2bp*Fwu%7O>_I)(*>?ZYb11qb`=Jj-K{k(22 zXnHC7ZT-9-G`$r4wtn6ZnqG>2TR-myO)q(WUFUEs{|=hwbSL6)pv}qmrq{i-LWx%Rhi8S4Kum(7?zSdCZXxeET=kN$!` z^cVc0zu-^wn_hxXFId0um3_ZVJb5$h7qA+y1Yd1kJbwW+eH8t+F5VBCK8k)@7w-p6 zA4R{di}!=3kG#LGXSkJrr%ZEF%_p5@fz^0F;>pE2eLwn(b)vsmC;E$ZivHYAdU1Q3 zJmd5ovV^bvdt~C>UhD_3vbuiarRjj^ulL(QlJV%T_Z$7iextwGZ_!`cODX=WIXz-M z1FP{y$VRcA!{{&8lm22o=`YqZ`p>qPMj@Buz-m0G`P7#Chc%zta!-FD_w*NXAN`&7 z(q!kUYX9}XYH}lL1@3+~`oU`Ve)JFN2dg3dhxCKhA^j)xgVjm&_aE?n(1RDLm%Pwh zB0p(yf9Cgui+6>Ky_?_K_a#i$CVRX;7FbRCv;QbtX7{_%4_3Q3qkl+0SPkhvq#vvf z=|7<#tWKi8|A4y74|L|<5O4f`(0CJgSLnRK*VJ6!eySR6J+PYm)+b)GZTEZ84_3S1 zkNzS3U^S%wkbbZ_r2m9|usVtU{sZy^A6%q<^OEvTZ0@%1Z>heiz2Ec}>;6E<89O-$ zeF9dKtzY~n=l}Pje>bq&J&67x{a`hu|B!yLI;8)Eey}=;{{92rOM37k^`EcnnPQ#Z zV!a*+(=$De?_^H`tI7SDYU(ZT{z3GE)$TC*hxCKhkp4sZ!RnCy6Z*mGB>MXg$Uk)1 z^7r<i(_=R+F1i zE7#W3`$5yY(QoVN{h;aH=(qLse$e!8^xJxRKWKW_`%UlqnbLpoBKDxIt9`G>*VDcq z;<%gE_1pTsh=)y|`$?eb-{?2~dp~IU zH~NkL-Vd7ojeg_5_k*T?z2EdNsCb#J!!he{%sLE(X^#IO_%jKtCOfgl1^=<{3jWhy z@SpyI|JZ{Mh@ZL4T=d?+_T3D=&*1ww?Ymd?y%w$K?}XfgcAmyM6#ELhv)EVk7yF9- zVqamWJ|M35K>mZR=Zy87v7Y0!uhRRTn(Obfu7TC$pT_$O#kzh!`ipg?zgSoLi*=3u z4tvJy)z~@d@qPRDgQI=>!O_0`;Ar1|F!b+H*#5Egr4H)i3G3_UrffF+x%Azbgs=Sj zG2$uTxdp4q+i9=l`#Ji{{T%(}evbZfKYM@Mp0f2nVf{~7e?M29H;sM$k6Hh~hVF^} zTCWmMD%PL=V*Tka)}Q!O%T7vhaa&LOo}Dz#qJ3Y>(a+1IgE&tnfz^a~Qn{~czP8UR z=*xXo^R<0m5tqvCln>zR2k_O;EzME(<>RMbD;}(NpZ-kk{_Ur6j_eNOyfM2pYRU&z z6X>>~n?Sb-9awEbcLTaj=tj_i)d)JH*Ub7O(VbU+E|{ON?fY#BG(W=k+nvV~znfTm zZ#MDuIS|&*j=%QUQMR@GIQzC$oHORXiE?=o<2|sNK(`H@*>p~~2_0B%LU#kYP3T6@ zfz=2)qu1~BN1|J`XIkT#gr-A|-*y?dXZah^EglH8-H=x^uZUh}zji597coxy=S&H?sJ+1oXW7cQF`UvZ1igRiA zJC4=vX7J}WxO*e`K8f)jSWOt;1}D&MLI+lxjNbq^p&LO5R--fyjzpI~ldaFuTddFI zZ}bF<2g39$AETcFt6ljJS|4zCmGyyc0-e|PF}iK&CeUp{2UeSm-vBqE8$kzF{w+HD zy+l6}-9_uQ*s~q7o?yM--WjrCG751}D%J>&f^Ha1**>J<~Wi65UJb&DfXIeb#Y{brjam&c6JZeTnUR8%+L} zt)HJypy|z!`E785-(~CPbfD?Ypt}KXLTBsebfD?YpiA^4(RJ+0gI)IJ*5AZB3hQUd z))CwEHn=PQS$dOwRIelB+o0E9F}h+M8NUH;@_WTPrg6}}>zF@_ea|DEYm@lC$KreU zSRdi--p0mn`c*l6aH*^ex2k{NF)rr1UCLTmv7(7tB z=0PS8akpW5I&{@8_j!dpFun~=pey8o@f+YKbcH;mad0HMOW4wAT$AJd1s~oAg1%W%{?l-Q`+t+WLU;ZEylzp${0p0d7K9 z=z}y4jzpL5A=B$`ZJ`ftn!Mdo}OTn~xpm`(ZJzxQF8LcHa^x2G8~T;<^-^B7++e7J3@h--N!MhkAFuv~N;$2g(=JJZa{F~yhZ|OTPZyImWn}#0Kn4%{QJ*Gi> zKzrTWl04lFU@!i<_~#GSOun}5nbCKK@yzJAsq~k{aSVNL(O&m<{md?-y;_f5Eq}bb z-r`c%JxSbSZT3wL9vV;3M~1-@^v_iKMLa>@&|dd;%@fxz#uN0+74w&KyYIffv$A8) zj2+4eT=@Z zvCq?_Y9z;r61ft=Y5p@z)IFneoSt$sO`-?u@x3D);A&AWYzuiw08Yi0J}ef$^0cxL>S{dFp)-2TtUngrOX+Pp&m|Ad z{cnEpef$nXx0TudtG@p&R&k8qVd%Cp&<)5v$(C*Q^1#q)fZ zyVwEt-lr&+r{t%A)fBoN=%&zZK?hb_(5*wa1>G1ruo^>W^ug1ve3u8tlcv59kMJ)H zgGWvMAs*ph7zU4;`b0d!zhFG{i+H5|#3S-q_5<~9py$Wj#ctRq?_~-dSWThZfo=-j z7Ia{>1>HJy{vNUMd<-2}jiEF8;L%xmG~!iLzlc}(3x>g~roIuc@E;6=S55sRUJ++u zeBJevc-4rr>=W+*t9|0ocfoz~X{OMD)s*oaa0=ZPbYQi`_&T@+-55Hs8mDn^+?AhW zK2%E|iAVSshQXtzeiD!HHw=SEO?@RE;eRk5`b#`gf08Hcm3`tV`{d``1^3C*nL-Cv zQ^t3|DRf)Vft9~|YI8c}%Ef$qOp>E8{!h6uM%+GQJLOL09b8G!Blt@{H!{-|!;}KPEr_@iz)TCO`k7 zEBu)J{7-&P+mE@NxQ6*NckyQo-Pb!Jo?+;EnD&77y0>c{W#>44LE)F==QwnQUy`5W z&=r13evU(z`z5V-hS}P8@kz*^*+MiFw}TEze~Kq-(WoQyDV?P`)gjs zIa%*_?EAvM$j@i!3jZQMpP?)Ki~M|sF8L#!{)Nd!E00S&BK~0*JVH)9PfI+)-!Kdw zAvcT<7#C_h^0>q!{ky~?@>wiSqMmB5e*vAvNt|x3e*vAvNt`bE3x$6HoyAF&v$%=heS za_xCxS_}La!&nRSrsun8Es$%^^U_*`KO>B_K(3*0=Y?r4@PD9>d>O5UephSJ^oR0z z4*p2t59RS3=n8)*kLN&F_(OR-2fE}xb^1fP6GyH+KSsQ5=6{K|_)CVtTjbjFVZ>YH z+Vi=@Tl^`*;BC-H{)}`8at-|edZFmoJ)cIr6`gqd>*9Z1R$h(i_160*7UO8;(`b#5 zchCRQ8sXm=dR`>&r^Ndz76T!lMi_b@`S<)Utr`BHq5ggQ{T7Rn@b4oZM{CG_;NK7U z_d?I%^S^H~6#sWxOVMjBe~tXg++JrZpihWf*J1`QY!%XieBR zo~NUI#J=&oGOY=It6{7O=LP@1o#&%9iGLq?Y0_Evx%~Tee_uyy!oG5Pt;ydP|JTlu z*84eHL-vv918EJ}N1ms)WbapSj`;gJS~K>I=Lc!c*f*ZHwq*N;a|C+j5$Rlvd?Kw; z&z*r z-XqdlAlIJ%WamN453uu~^w3eFS|wFU#cE>7_eFC*GbV z*H}%Hapj^*{4?+&up?kH^jPKl6B8 zxBq!*@!3}VPJ16eH08N(pl1!;=Hq?L`hCro9WLIZXL;YK9p95)CB9-9Yk{6k?iuH$ zr^ok8-YsCfe!sJ2-|GEh{d=8B(z~^8$m7q*A@_KV`@{DAFykHfhwb}e=sNBX z+xNrJZGrXuVKeW}^k*y1CmuEJSn&wE)#G~N5&F~ZR`Ce^$#~mN6^}G79yRpmkbF6? z8j>$}AG>r&Ufm&dV08$c)teHx`-jkNLkCv&UcA?%+JJ5wx^vZ|dZ}|e^7LBwTE^2> z{7yX1>{IT!R{fsKc-)HLiRb7|>`mQ=`I!ZMJAT(;pE|v*f&Z@7qM-RUImz^rT9QSnMZHIk2BtH*S4O!0% zypNqaB;W54I#4xbozCiU1#h9-h7PRkeR`+cfNmSQbJgqWyk`l$*}A6_kDKu~(+S+e z3FDnC>`sr5nNDC_81H1oxZ-FY^Yn4?tf4oD#B;%Fh~0S~9FoU(2pw1*GM?&u9YVJa z9ayFJ<~N|tI`eBFAZ9@lEsb1Iy^xM#tb!$Q{6TR0LyR3Myc-y?k z6K~O%>3vG>;dFl&@`rx(IFopb9m#k*4kg}dT)b`SLGJa3_~}FP^6rB}^7sy+1FJ*E zQ(dw{=(eE)tMvZ+2K3v|6?Ku)IOuiDO#WK-qvf!*?&HLxX1q!Aho1BMG|3-&&f`Vm zQH%>?kH&cY-lUI1KftLkiRqzdOft4 zI=4;liKpl}zgM$dD(=DJ-pq2TTK8g>OVzvwGr4j53$$}I_Q-v(t|JYd$&cvm91Xf% zFx8bdx$)lv?Hmod4RD*hKPit+j$$p5|NTr}@}&?mNMBK|kT9={I`$^R?#3ghX$?nCGby#n0^xD8#Q zSJF7>_146z%)V;*rQ#8KCEe?|pQw1X@|MIS^a}SbZNF1ILa#6$`6%MiS$c&$!295k zyum`A7~cgCp)2Hx@eObrxtIhUh}prKeM|Fy+Z!r zeQ-#=A^N0O>lMa#!9(Z@y~6kgxD8#QSJF7>b=UH}miv=>R_q}65B03rJ+#9=te-XF zYNzK*_<4n2nAKO-*K(A+P@{rppE&oi<+VsC957;4w zdiL<6>SxX50Y9hkpK^JCuJE67d4R6)pK^If{uSu;j&s@fb0+MFmcOKDZu&=h=B7WS zXKwmIocpyMG0zWzuHNtS{Gi;9fUfX^psVeO^Bkvm;u5kDe7f!u=dQD|Q6! zwm(BYpv8f-;`99(=qwK8baVX~=qwK8bjd#{{2A!ZtPhqyYr~Fc z-Oq^obI)yP-7nf1$#~q8>&{E@9p!E|{S)%~EKcM1h;#iD=qyg-baVX^=qyg-baVX^ z=+3O?C0=EAL@S?AJZkzU`MsfdgdO4jNq$c#9$`l?9`}OcQPYkfKhNSVAy4=Rg?|E_ z#alw2pey_n=q%n6@&sMspFnqJ{jE!|BU*WZw%7dr&g9DT_-wDyj=EQ-SG=v6%Z|w7 zEBFzGf0D;npey{7Jiao|KY^~Uv!47H(Cazpd(G^KR-T@o6+6Q7@bs+M5wzo;Epo6A!jAC!Gw~?ek;f)^ILnT}FSsgxNp459?#J}3*b#7zY+e0#VuO*TH+1%hGFmqdxLiCzUtS?zc72Fbw8zN#oqAyD9Jqb2JQB} zQ?3`V^RI}1ap63u*8RMlvH87H9?!_{kr4=k_6*qUf(|AVw-4tg}c4=;hTy8ugVklR_F3oN5R~FA;eX%zi@o&HHIE`lnT}S-8 zeJ{fAbi}`%?lhjk`sVTPW7!DRP4Wq zdyFG5W!2E{2J*NE;{(QvxQCBtagTG=fpVTkovP>MvFwtc0?z$@+qv>xI^rJdyytBg zJj&u8WAgY6gGX81gYg05Mcl*3v$)5(>Ogr6AinqZynK}Nei!asc`NhuirtH>^PZ!j z{FK!(`FMuzx6mHYUiUUO*176Ab;UjA*c;USwp#0PkDBsH^6xU7EB_>aX0s#KdGF9L zo|SmUIO^C94E1C}jjwwPmUAgkU4V?_V=aF2Z z9kEW{hhgxDc*dA}5yRk7wAZ~|^C<2`>O5TXC(?V;USG+16m+%!0$rZxLA~44y0_5X z2Ge)vut#+7=5f@{c&o`nZbz(>w`Lg6N<3psJi{=am3t9y*U#$l$X+cE*nzG0kh|mo zy4?OO<;I|GG0K-Y?!zSKDr_b2P*VHgH)h-Zw6XBY-=qP_0znm3U*LH(8PeC&_| zw-4%j7UGe4JhZ5T4P9P06}#p1{uR1b+%(q)x(;lIa2Ly;dG{mmYvFkAD_=0J^-+exV1TYuT^jN%NlM zrg&j8@4Rp{UIe}`tc(}f4~D@D?1eFPtPO(~(O&m<&5KMvh*9i}dQz<8c#QRoBc^6%Ca`T)9C zK1RMrBoB{~hd_HK;bLsQ`R?d z@FDoVu;xX!--$=I>M?cg_c?LPV!uO|e;=;c@6fgKD{OsR=f2kWDeD_(&&2u)>u1W= zm-u0;?o!wK&WSS?>kD1}-L_(Vp=;$)k0X@VONt+FfTvB{BDoCfpfnjM*f05 zo6~paS?k&I^OW_PvQC}*i~IUB>-gxIpnG0E0pI6(?svM#H|U+2cW@c!;=Ab0z`=*$ z`@*DSxRgPBQ;{2@N%a~^;^Lw@bJkL&su6}>xJa)45=DX<4Kzk4BdXFJ)phr?V5+#d3wd{=lndK zu;0h*_Y-g?yl%W89%mT5ApSO_?xLZdd_ddEJzBfwMRpEj$Nr|+&z#dM$kV{jY2$^< z)3Wi7_?%(zj`-Y=_?%(zF52tfu6g(CWp{JF8!tky`1$Uq!9(;~ zs-MO9fbqIMmiN~@%;fYc`5l*F7h&hF3^^~|kF-7Rev9e5yk6ECaY)19Ir=Zv#~Kos zGz^}j4^urX#s`eo^{>3Y=6R+kued*iU2QxJJ^4Q9ev;|Qye`%n@lC_vA$l{_!5R|p zGz=c1M^oJ^#s`eob*{X>=3yqcS1TTVIrUgf?@rOXL-eiN^O9fmZYwX{-U-d?VyzKZ zHT0SyTzf|}uZuM#?rK=(t*cfJ_c4b44k`2l=!?2oK3=a`uCL>6sqjCFe6yhI zh|`B($vsSpyLZItosRfTcOHrPmARccMPCom)9-`F=<8O#yLgYjPIa@^h~pXt@6q2@ z-^$-%rVdtJH)}|o*D!dGK8L=jn+5#<`l4=@kJr4<_RCfBlRD!SrfW?8li#zO`8{sO zn*MI($7>DH->7I7@Qi*r40-xWfRL9e?aKbkmIec!}*$9;px$4=u}@p~Qj4NgZ~ z%jzHmU2)&g%x^J2I{8bx=rZkJ*{))uNV(Ut%2JuE4%1# zx3_%_!tT!XcT)QthF5p`oWvF}HJm-S^7f0kToKX4Dc%l+>Ocqr`9=dJe~tj0y_ z{U_sf>%9l_BU|r7N#2|9L0BCSAD4WqzvgM!<8^%ULF8!ef~mgDh&U!#jTqkqNAv2? zFunoKtwWQ>!Or(DO|IXPPH(Gp#1FI4FMVsL0D%Y!#T{19vwLARXz`+T4C|otYp4Clk zy{94G6aO#_9fIEW_b|kJ>}N?`qzMeO=qRQA4A@3#K|Xe3!RZf1j7} zO>i`?o(EyQK9Vhj>W*!!US=-u3r1 z#6$9_7;nGFAs%X6JZ$RMTz@V&G0UY#=qzbnh)@$aoR{Tm2pgH}#U%KicuW znAZO+{qq3-1Wfg83jM?QCg|Ubj`erHy?(EQ@eOcp-J3KHcGkVww`aw!GmK|#>JL3@ zw4?5yp7ks}(UtGir6-`<1V>k~e$DB5()KsQX0-Dp)-~0aVIS)}iT%v@CODc`hlcSD zaBdx%G!Aywp{eH_`=qu%y7HB})&;u4ugv!ybl++{nY^x*-p6}pXPN3vaNpZ{&(mbr z+cl3eJE1F&$$1oX>{t15`h|Ys#}Tiq_bGIjQcp&;l(^3|^nKcTf7AA9>wQfSVc0l!z*`JLw%KzGqPG*Ly^e_#9=@wBPuWG_b?LnxcFt;b|THuV>FO?~f%A95xApqG4~y@*>}E&u6ad28YY z@eHpcu61wf6Rmqwe`wv+o~Jjin4i?Lmn@#q(i3{tre4sqMmzL?p7pH#f0g{Cm(2q^ zUC(wr<0|__^_(;R^=ieVFDK8*;u%}yuN%6LKO>%D==z!VfcCn#YaV6i`~0}G#}iNE z84<_YgnmSQb>bMk(|AVEb;O-V?cR5bymQ0g34X|oymQ0g33=zwnU=NvyGU*^1ZYj*fOu-f7GZt;6N{N5Bgu$n?=^qN_J zD!P}_<90t~_gCY`$Wh>622O>RPt(#PW;<`;Zy37mj2>BaJz}==41dGW{R_rJ&zOI~ zxKQJvcg%M7{+j2J?{Y-G%Mtl5>ARmt!d$P3m-r!u!ONze6EE>g418V`|2VXhCwL+)h_gNI|M zUv>Q`9uki+3?9b#fbjw2!r-CC#luD(%MtMyusR|yWgk2uKZSZMr*&Bv-vY9(!}u+5 zhu`D-puPG#p=lhPiq7P>6|XV*ok~ufhmM2yqdhnhS{_SFe~O31a}0xrP5mhz;p3&Kc$dg=<>Qkh5SNy3*6!N3i(ar;8b)kWd~Sp zhRLnVr}2D@ynYC}{C-EMWKiPNH5&pqGc!Zx&ru;NY3WPxqNyL{Z$vxv zp?GnY9>m|+2icp;g&Z-SzlUAO5p=ge_U3XSM`;|KYES08Xw*6298UUe@GPR&S`KkHm|n{t+*l`bNAsOV5zkvJW1S-%`j2e>4w_|3+B|HuxStl;>zR>)_&1egQ7x;mXiCY=!?+j?K zd%NaECQtZRg@2dJ6LfhUq(YvcEBw1$o}fFge>WSrT&zq32Oop)3r#-mBOivpv|Nde zP2yOFzx>r|Z}k{?G1U0#WBffsjSmQ6i*&&T3q>Y4A~LHE2mPZl53@ASa={vC7{ zC-cAC>EGo#yJ^>~B9DQCkHPnaCXcP}kefW-M;;A>w;RrzjZNZV{+)1>OGD@FG4g2` zyvDzKOneM_eUDt@1L%d`Hab1m0Qz;OH{Ls))pSJ*J#uU)-fV0VM>BN4 zul1dBTZ3cd+Aw&JU-+1~TI)OI;yrQ>{lMsg_dy@uDHrcWC*Es3@t(XSi?^xA;>3}^ zRQQL`J+E$-#o6>bJ<#IB@q2}T2%W{-{O?X*g@0&wEUoXEYb}s_!&nRAaGS*8_(Z|H= zpx5`(H9mk|=xw75-V(oadhu4jE8hOP_^+20$IJ7smJ%$wI7gw!&tM>eXEbD6Oremw!X)%HDo{V?+5npVh!Wp*ZHdc@3fYp*IJ5B zlsYf4YioNNzxS&6-7R~%BY(B^{dTPh`@}HTgt*`)^&;~8R=(e^@4WjO9J6l>V@>ee zA5%Xf&wu6L$M@g0ChQ~r{lNZRtV#U)IzQI`oz_J3T9dyo{=e1``^nJr6-<`$)0(vRhsO_VzkoQvm5f8= zdH>Q`><2^N5BJ#*hQV9xqm*~s`hLB5i~Jh~Z?TV39&YRV_Tnw_4t<@M>vZDnS#o~0 z;vpByi}SdL?{$lN#GY^Y`nexrYm?{g-bL;W{rtc$2tUH^F!DU!Bjn!DYumK^2)onB z^Ln8lKp%dD-Elabp^wiy7p_>GCHEta9{fAad}SPH_20d1IWdO0A0gg1-+RzLVP6;q z@9~e#KZu-Z>?_Oj_4X0_!Z3J`zYKkmFAV(v`tT#fd;P9>f7ZUZN^zY_i2o8JUD%HEY{95ibfq;H-ODr{n%@?)PBIc>3IX zS^vG$czV#Kd)(wFx9oqrXE}O`+y`3Sf8<`6$34Y+^t@s49zE~xec1QYiE|2r_vm@| z2edEH^M=9uW?WRf5BjkG#rvR-d~n%2q8IPc^UeJ5BA~p`DG#|;(*MNAX;+(N2nSBm@+-sU#LoXD)>~ftewSDgNwnk2;wQA~Z@>HLf zA4|Qs-t+3l*?YwQ)?!#au$qwfx{cjGAwTw9_3AqECC-$0)7!0kQ1QMQ{}k^t`<#2x zRlgTC9YQ=)7`)HybLit9RlG-ULod5Lcu$BW2WcFR6LXI|}j>%~p@J+PXPFT0K1 zKZ%&b^115N<*{YI=Q^L>Zr!tL4Vv*y(>dIu3PavQFDs7eI*0MNXBCgp+l5 z$g`oq`vmWmg57DcPx8s45U-aqOalmfBv5;T<#=Jg6A-~XV zgA?*<3;AXIQoqA#a!WjLWuLg9=lG9r`%id(-w}#67_3knvWXiTo^S z<)8R7cjrLl@dTYQ*rDm3u@yg9F`l8<(mi4;Ua(?3M6WR(@d3+=@_upu0{4Q2Uc>Ln z>&_K=4Z7BQeO-DDx>j8Y@iNQDJz6C$5IFb{oC))|fOv>rOZS4UIDmMFUQ73Wj4Lln z-y1LP^?Y1B)W55Fn8m}$qs{Yp3weYtuV+`tBXrx~ggo9t9vQ#X?}pkvUdzw7z1s5Y zZLiXfJSNjy-mZC*<=f4=k^zLXMVTT z_DudgqL!a49&zuKzDINeL#y3Y8@^1QYTRHJ*S)NSMqo3@5SPOw(1$?_Lp*c z$T#V|S&d~kH{JTBwA4dL3@D{xXeevBM=;dz)Z_$JPyW(xrE+b#| zd3n0$tw(5ayO3Y<&KheB6>?_r)F3SAw?o9Bl@SAS>XJbq|Lp40|@r=fUI)FYhWhZ+Wt zu=i3P6ypQN>%1rLPdv)wbohz+eP4MFhfVWJ{nN|Jn-y<~!x{Ry-TK~+cuO44F!nzF zs()X{Y@9rAiSO?W7_ak{n%~hmZysx52mT%TtF1U(M?J#U_i)4`;%q73i0|3xJ2)YK z#Mu~cfA7ZZz?4_i{LW2r-;7`Q8{v=I`QCa@$9(=)-jL;yw({w&8;{X@o)=_!qpke8 z>n4ZXUoal|a^h|C{vx**@h9{A&@17`+S$;0pGG`t<^_pIoXeiaCLW>pJnu(5;v8nY zofl;1tdEOF`gim6-qrGdFP7&i9&)}K{_0G{ebN?@~I-<%Jy38e!%omE8j}K)3exXS-zF$@73=O&9nE3lVNwwtv_DI-R9mq z`QNSYJ?Gf_Eqlv!cI$m;@u-h&bJd3wkIs{4cZMEo+3Dg{c7K2!9`C1%SNMa5Ax}*^UGjuK z$awu8iTBsM3OnmK;!@QycGeI)zF?imbJc%zUSZ$ycRTA-=Df=7bn%FD(chnyJfX+j z4i}F&7t{R##g2&{SmG!N{CdlhRmUXLwF4cqd z`i|mJejfApT6uDp7zb*6ivsK3`L-lD$@Jr35oPtabCabfIL&QZTV&|cNJc-uHf zkFmGF>X`Wb5InwMok!l!IJeT$-H$Lm>}cDwvT^pV@~de*b_5O((vWbd524r3t){LT(YO`K8>G2Xfd$e%Uk zi|Lu0_PCxo^g`I*dS>*5+uM5Pv-AV@?hrh_V4cN6Kkz&0eHnlMrAt3R*Rt>R%+0*6 zeS6lXU9D$r+R=Je_Pg8Fde*b{Iq~ixcznS+ipBc!J3FA)N9@|?jJM+KFT2l^y^-%% z;?G0y_=0s3i~Y*)P}{rj^$)xDD|D^6cP_*AoFgt%pa1wTg&)It{k%Ge#k%l&t@?&t z>(Uj6zO3`Ve%3e_>+=}DqVO*`w@=@%j95Wludvu}{9daLVb^}^iWl4Zw9eyt&e{54 z=NI;VzCO_9bp?y{fv#0AuxovwYsGJKnM!esdhXfzHP8NL-<-Y&2*06Eb=r&lz<8@Z zU)O$su2nxUpF49VkEZv$e3}{gFJLvpejS4|?B;#wz$)3dcayyf9rf~hXV%SoDLrL= z{X*}~Y+^Rpy1l>gbXiYq@9;VfJ_bJwyiWVNw-@YN($s-8^jz?%;*gdTV(4}Z?E&p| zZ`VA<9wpypUcK`f`7U5J!){G=&u7@n`_O?^vTN@qJ2%xkhwj34@Sgq)c;jfi3H&h7 zc;jv3jiK4ex5&3K4Bp`PPvzI!xoD{06RN%L?ZlgN=D*CK1FISK>KL41C+|ZCR>_{d zo9tWYs882>PMtc7i+`dR@9oJme-C8wQQ*CUz`LWsH-GD+7=No7n@jq@-n)1l^{H15 zsZ;$C_(9-x+Sk2pdG@!6dm08$iE~aB=M+zg2hd*kcFohw|L(G1O;60oR{^UTbYpOa zeZ3DISf#pkchm1eSHuSxZ@owFXWGx;>CZG{HWq_LyL#r;ypOS;3aW{soqx>FNuHBUiWt5W$veU*~j7~bYL}uZVa-Q zm-nFqt7K>2O}`s^_=2W;hcpp z?%e-3x$`)|47xEm!;dj}b2`w@;fPP%O~3n+b=;4h{v6&o8gBwm0*yD`Hr^Q8`;xba zml_6dh(An~Cn&ii{y=-(+cj@8x$E*ry7U}$sV@ACd!It?pu3xX7rH|37;pJYFW?8Y z&WseVSm@o_d+PFW>yEI}8RE}v-x+Znd;rb@?F{k$>)y8aBX1G!Fbp0O@35M|!DHeb zwAa0saLwaP?{)b>U3w3?F*xHMsL*?i-%Y;@-MRcU`2)>($71i+BY1VM=GFh`@;H9# zXuJxX1sbosZM-tH_a|==FEI>W5ignQ-cj;MyoC0;w`*Qy^4R5nb;%=iW01YuaqhBL z)9=Qf?KpRd-$OSQ-OK7hlf$>*?E`o_efr1F+fkr>W60Zs$ANaXc>B7yYaU_ep{F|U zS-SLD@+-j^_dta{WBhLNAJcch(0ll!=lc$r$rH7DZtc|1{BL+>M|t}wd|2sV&lU)y{?;aKBBjbg?klSO>75)Nr=qvmFq1*fYR$ToB^i-!kX7a%|e{Su= ztI5+JIHZ9Q+>x5*q$7ytk4y*+SbS90fDWH->w z0tyA9yV)QH1c(7xEEZS;ObLq?L_TW72r(u?&df&8QEY_PptZ(YYsiu@*0a}GYmKqi zmM!yzY}wD2{cO5?`Oo~Fi+j$!7pSjpfTN-F=jn5Bt12^3ew{pd1ASc4sMH(C1^#k+ zzY+eAi{)2w$$6tSK za%OkO&wuOV?epLHzS(*)cHBKaaz9D<<4@*WX7_3B>|^}B&kNm_GafSD@%yp1?woao zTDQSi_~TC%&7=N=eoljP>Rz(@t4{Oz`a&-^yH&$>pRs5B3rX{zknr^M~M=b^AOI9PBf{4eqn9 zaW5^+gJ)V-`fu-xrk>+@dH%~gO3s?T%}b*dc`(DERg9mH zV>~pBJsIO2zb7kNvCc4P72^#bSF|eRjJ$o;U#U&bSXcIIYRDPuw!wYQ3mS5k=D{?WvBZgcSb{( zJENg+%V^l^S=^fSO_Bb|w zXVx|1)>58RTnnBlpI`3LTHN}}k3#<#&D;(e%{M~94sK{Mjk z3)UG1&4^olT+yu1Ys8I>xD`LD^0!#mh+9j4i*=2-m38R1!5QmPoZA(*p1i8$t4S-1 zTVD{j8tOOay*JF?%6e^RPmYi;;#R*~WpOKat%SF6D|Kdf_G6O1WF6QYx3bRicH%~N z+{!xoOAXH2;?`FAih8t9Uxs{5*^|@X`R8rDA`f?hUNdyPmerwI?N!#_#O`rS&|ijr zk0XmS?T!NTLchns{Ltf0yQARe@^(kTd7*nDJkK!hg%G!1C~n>CZ7?s?{D%Fz=q0T2 z27iwFw{zmiW3Y;2saLD|LNVWnV_9eUJ?Y`@IF@x)KPsM=;@%X;mj2xFi;!dEiOaF^ z#P_`M#PfSuy_90dme-DTjkuU~^sh31 zBG#q#>xzqyKCJeU`v=A|q4tsI7qfag@vQGO5(dxE#}nyeyW5k+!{S-Y3xj9G(HVK*kS3*v1(4^h>JP<>$QuZQ7ub)9?1Okw&ohV@ z*dykL%nSARQLiXosD4Mh;CY6@3!Zlo>o=GeYJS81J$Rw{iWhE2Zu7R}5&l&27zf*T z*eA=|HtHI&7n8`x4h=;qp~n$k*JwWUly!z4M=;*-aYfrAjvzmA3_iB}$j4iE$hYNf z8+DH8^-1JohlW9`7)PC>XvI3ipjC`Fd|c70kVEnwk0kHXUO)1*tzIPJi~W8jcTHc` z^08=9ong=t{p#b2mPH&8@^Z&-D)>tL^GMDk*VFf_cAoz7>D~V0jQs74`0RlE?T9>w zq31cWK4P|qioEQQvC#LL_XV?cGx8ONzSkIU`1n@Niu^6-1;j)Cz8KG~hyJ?NOR=uy z9Mhji9`~+uOka1Kzm4ambI){++2!}WcoOnvG<1108Va|JhMvF8`ihBWYtTPOnkx%e(MYBSVA5$Du#-g?S?cV#LcZ_Ck|BPmy%Q2dH{x<6`CYlkqlb0Pb z76#48-_BTP7&IfE_i;tDQlBAb#2K}7Og{&|&EFzttgD@4=I7n}V z9J5|yYVrGr?^W{Eq?N_*S)Vb{iujtmZ2pc6vwz+b-U(=nQzd#XYJhTPQ7Qb zTiJIk(}Nbfk#7|$Hp}&*de9J8Ghe-b*?DKNTc$7Vc{Ac_Lyw~~{b{iq^TH~2p1iK1$IY2O743<8$;0OQRkSCLX1;p=viCC+?dy71wC8z-LHoKM7VTqR zcuV_v`jTniunrtdsPioQ9vrX^99aJZuLs@1A3fln%!qa1!0y}lx~$(qmtKzj;68Td z2iSR9rjNygzQ-TJ;6YtKiwDHN%hS%&4b=IqU1ryzjWJn z=0BABU9>OyuVwmPv?rb>pPK7`(LUydqGk1-XYaoz+Sl!ZXwUNugZ6bhA=<~h@Rs)E zXK(MzhOJ9|CZ?&s1na8%JDk&%ec29J2M$tyw;k3W@VvSD!L2(#yV*OKhE6(|fTKX! zm!?j$yliGa#8dLJsqb56Kg3hwdh)2b{SZ&d2QXi~58C^_iKlh@A)fL)!{8}-S+^hJ zDR~2*Prd;8fU2J_=XNLHlseVMy+-DbzzORPcpf-7V15TYU>*H#dR5<>G!KsMs(byQ z!^T@aHnSt*LB#(;(ImGc;sN;r@~62S5f5Ts82hT;S57>r+Y#}A=NSeM>UKmth?@wP10GOE+t^oW9vrQsj<(DGSROXBH}Y}o_Qn1# zvnTR#b>1f*w{ADAMxoVCP*-thUpd)o)>ZeUh)c6R8cx%&J0{oi_svfV-M0fCP(Mpw zA<4C`OZ`34`cYf`Y?qy|{A*?xM5DSL5RK}3Uo_HroM=?n@1oH>`kXj3^~p&0_Zo7? zy0X7rL+)6&10GN}+mO374|)%t(w3&W*^sBE{iSf)qE0r`o1)b` zdXo6=1Wfn%8hVoXBQW*FYv@VlcfbScWE*-i&4Z)1I@yq?rq5@2)l46XMs@us8rAik zXryx|$x~ggiAMA2G0v5;{&&9TBENC#A4Cp1>wnRv$9UcjctCw@L!Qz+I9f-2Y{*^H zm%Fv2o(HJ(4d*>4;Iykh1@lK>>a&NQ=~eoM`5o|p=QZ?Ang>U1b+KLgrur?xpUTf8 zK0g7c#Pbckzl*QS8K1DO5ucZGo8ouSd)c(wGrMObo!eIL zdS9Kj&1ZeipIdDK^5k{a)-Nxsi_(42n2$PaJKttr_~TFZ4r_mprM;ih`=i_Qviz4l z?~?f4Q0rBvEy_o|wjuMvnr}dT!A^=A*~AXfHVz?MH^9J@W472ckXCGYr}z|IBYN zFTADwCHo<8FeR>T#OtiPvmd1NIP1Xfc%5~Y=aqa6QlH8c-;Wg6x9*3?-!4_3Ydp#7 z!^NZedy_0y%j$KFrdj>Cct$+!bxf+wVZV6&uJJ6ZFBcDEz0hMrujkeKU3G3DUW#Y- zxtTq%&&kd`#9Kbs&|^l{N1dJir zUJoUnvJbr;SUhDPvVO>VVepiF>GkpAsp5a}l>O;;N<8Ir{d`6|<#P>#r|ehO=XLes zDR}~4pLj|=?|tv9ovXj5_Ak!^?VKj^2aUV{>nz_K`}Zy71xyB-wI7z3-V0g?73bx3 z_mY9W@gOi{0K4S%!jb{@lh@fx2FMq9ot9)E)<=D@WPp9l`XTFuAp`7ZmlerCTivl_ zfY0^wAISipYZx-XK6ZPnea${*{RZoWw>q4>bCvHV-%$1yYUI1S@)%{lyDN`T=DSm# z1MJFUwCe7%9$7qPAA23YcuD@-FnG#-^7>=(l>Ov&`{F724X-B?Pua(;AF^I385*)) z7(A7om9Ex)7Ejyin8i~**Uy#2Q$E))cp9G@b7D3xzumrH=7&fI(IbAYCK=@W z8S4AxeSR#*%-;+3ee(MbvNiGd!kSDLaVGht$CBUbiZfe#Dw!XV^#zj5pl`fStYoHs zA42*k@>xRBH18uMnL!VDowj5KJz(fEl+_)+Z~Y9y-bddd$xQsc&}D?bkNXtTPvqUa zPSIpzEWblCgMRXR7Lpm|<0Lcje4*EYXMT=khVN(S-|v$AongpK{C)I0lFXpD-0zXh z#NWsL49N`nKL7jVpOkuxeA}N&zRzUK{gXTUCrP%@Ki(%-vQ@v2VebUY`YTD6*w0>H zE?Htf`~3@h=OpW+|B_?}{la?P(+~&ZzJ|%jnEOy(r!M^>y<(r6#W&I`e6IU7k`X@F z&ljJX9>G5`^t%JBkNS4W1bV~QS29q<_v9TPYu>X}UzmTA^?4Fc(GT9=S3E^O_`MGC z6#vA~_aAle&%G{QJY~Q6Jr3~{|Ah5<-Mn}i>*L;scsgSL%P$d6weQ7KKG)+F@sxe; zevNp_=lXf2c#40*dez^Hb5Vycp2m7%%@!1SH1e>IB>&r9AJ$cuubg7r-BRP}efNE{ zep8YO_Olu)n;%-)usbPq2NR^{di8kM%<7=<0s3%Z_XT{z8^d zu+Pon9mxcri~rHMH_ZCzexDHLDEtBPzK%dd#*$?|!FZVU!xB$J{)KM$ z$qy*6;5?*1R`km<+H&tesP%b1K|ICIdp|Allzq+m>b~)qIs)&*Y_gQ)6U0;e4Ub>M zQ}#9fLE|1W>!UxHc*?%^^_8wJ_BHwGN0A?2_1;75bN$l%zC)Q$kPKk2y>FLtNcH@I z(VD(p(Z{RI7l_B$WAF2&J9^k(@9(AD5YO{CU%bTba(}sTADQ{A{}<C@Uv12LD%i>GXKIVn;Q}cLIw8t*`duQx<+4+=ck6rY*QMAV{`uUY;k6rY6?BWIY zcfi2~_jk(och1|_{gCH@1M8#b_knhaHxH>Zvi?!}_a10{a$;T9cW)*CG0vS^YgQ~y zytCfNc$f8s5-*E5@xFMCxbHb}UtTX{yv@$1#B1yw>vz1K$o84bg!UWuE~_sxo@eJ% zk^$^piW9T?Ba?ybd`dDA>$5oVf_p)ry*E1U1(okPrQdw-zP|H^JP#b$y>!2iv`hSX znEL&(&iYsVv&n|;vHQC09=mj6$Z>Ta$#|@MsOpl0s!Q@dQ(0Y-cv?T75>K&nDNejE zUMu57)<<2Fc#54PzH7vZQ}VxlJ|&)#_s!~{#8d2?pErr8*trxZvOemh#8d1X>s#Z* z3+@|%gA48(mG6P2FMjX7{`iMH4;)y3LBGGWOZ<7rJ*T<)=-*-ITI==9&SiB{;w^U0 z&x;f@+#RpwbyDITc8+*1>ZP>*uya|Rlz4=l^Ya_iwOO5%c!Hht`J`((f4vACTu{Gs z3SMw8i9Y+rgNPH)nJ@bm9`ZbJkopzwvi^|g&DEE`&kxo;%QS?+C8VNu1Y+`-lhIi zcg9ubyD%ShQ{pN1%;PTeU0f!_Q`s?-k*q#SJjHJLIfQsh9fj9JiKp19`Z)#f;qF!M z%V_&6taJ;5_PObLG?m1=kN~(Fr9vG^Y zIj=XeI~QJGr225yc|DNbxnP{t2bny3TmqW^6*}k?yx?Av$+NEm?Y%$fDlqloFnRWM zp!r|1ZWlb{dGt@X?eCrD!Ewhur&f8kdrn#Xk7$J6_V`0ILhmzip&i>o>PTaEo zCCj%xGuom*@%!`qn!SgB`Ko@!^J!M2oa$AwJeobPtVhZ6X3vZ#=;M05NkbnKN1uWh z+<$85W9G}gfen4kx?S*)=QZ?kng_lAhjA12zPH}TK& z{Fi7S^TOMFmuQdwpXIqkd!FZY8D(Bew2ygVb+*^o57cd(f*0JYYU~H*%RYgP{lL0i z@Q~*<_CuNn$7{N$)tbvJ^IfJpviz3mm@J=Vdf4+WK~APss8>qP=J=+Oy8|0SQ& z$kX80qIdOvK&MsNN3fx9S=Y$Z@Vv_ZO?ez}e9t|y*1c^0Z0G z(UnhN-F@#>uzb0m(*wKn39Pfcxqt3BH>Nr$-H~gnf3oLg`2h2Qvino!1GVM@xVL0^Ymdt>h{qfG0M=RF+ShgF16XHy zYhTxy4`AJ$?_Fr|KU-_q%K9eJKK#AtKP}qFIcL-}iT3!5oP*}|OQLm32s_W3sv<)5F=lB-1foS7ht5{Iuy9#==`YT;_|3!y9=3 z)>Zjp)|KxSY~+hs*T@6#ygT2A(4vRusuvQC@GHGONHmIZyq7>U!vDKZ-oSJIw30>XP!k0-`;BrPtYr_A!q428j0fpIN?Fw8#H6yp>Pw5 z-hM3cepmjrRZh#k|DqLsrQh!mt?)k?N4<*nGV46=Dq7)x`nXF@iI4wO;`3Jh_?G+f zlOI+7U-`|!1@ZA?jn7-I{ApQdQRYv}x{9oRP_)N?P4)I( zFKGU2s-GzHr$s(CuL~6I@n1b3+ohk0&mTp8U=99jYtH3e=TC{_8}$y4CyyX$c;NhL z^lxayO=Vt+`06d6pZ*8SpLU+JD*nH%ALxp&(BI@y?>cAo=iTN{<8#xwY&vJ{@?Tr` z@;lF;Mh^K=#93u5n%-YvK6|Ub@U-{r{JGVKzSny;4jjG#uY~<~onJ-nh@Wcbr1|+i z^DXD3`T0KUTFyy*-EDpqxnq5GPC8G$v(wOWBThp{qha8caO>^nUuUDJ9|i}rzl{3f z(O<^-&+O1~bM`lpN19C|FE#r<=11Uc66=n69ymDWc`tb0G0!_^9XL2=ovjxw`sZ4= zlD&?)<<>jR=I3U8G~PEk{unt99KHdsgim|BJG{r+P`SHC9(TmO9Yf7G^0>?onQ!EA zN4l3&%j1@Qb(zOyUi~d1mq;B!y{>CE^7`K%IG7zq9q{Ndbj~dDx|_4Vi}SD9o5;`3 zCNVz(XD@xcdCc>`!74f{j5VZ8a+XlFb%4BmuaTIG31`x@7+Z4&Q)R!cF5%Jxi#*4S9Onp}QJZwk^T5F|&v^kJ z^SpD`frIlj51wmXNlU9QXw^whL*)E2SLbs0;FDS z)8sb%e%76*dGK7HyMTTkA-5;U>kOO<%}?Lq{)S=DkUEJGbrOa_!x-<3sFPs-sIEeP z*Lv@MhMa-sFQ5a!*;eR)hTP&WoPn3gUnu34=ez)qd0s!>tbtMgJb-G>p^a6Q2 zM-IONU9Z~N{SNmg41<>8-##CyE<(00#zKvEMyh|14q%?%<~%hG|hwOS|?hDoK*F-U3>Zhc|1oB zzXDyKT268YKiDv6h~GPk@z5~jF~&P1)iH>Mb^lm2jB$3~yCIK33-cF3E@#~FXviae z!Wnqk=`X}{Uhur*bO!~wt@LP`2hX)`J$h8M*|u0js8~dC;4|d)*|;vR=5x6ppq27R z(L3N^)y~X-~-u6#0V-?CAye^a4A23SM;D(|BGZe^AOn$}i;kgSF>f@9-O&{qRg) zu(Qw5cf)V$`mUm3p^u1@%Q*c4`*?wUyudD=f)}^;(dDZ0?|5D#PA~nt6vr2F`l9|F zcF}&b$%)C!H=ygM>Ngj1L;P9BzYV#;j+M1Ljd+9SHR9h=Zc=T-^}i$-#UW7 zft~T>6umG-FHF$~C*U;c1)gVlMSVhdJjpuCEBdnYv_IVlPyO(VgKHM z*TU*IvyVrPruV~!jldMAP1(m&_VJYcdjd|=K91+~EZ?U6+#RQ}&hl-(t}9M!@he*S z>;A0&*5L0Ae7+W@-})u|4Ya&*dmPo^FZ;Lb`D1x2J-G*3-Z-Auh@)6%`75orym72c z>)&=9HP=2b^HIbbBQV7~CI`OHO%8njPTA*Wuj@uWisv-qoiZQAx)dKR8t>fcUnV&~ zpWYXjG~}RbpYyybZ?sBW@(%MxWAa90a@V`cU0Y82koO@OD%bq%f;=ht(&1P2e5su? zY;n$D=sx=?=L&`%_b?tZ-Z|B|f%)uNA8+&784GK<5A@SLanIcPY0Ys@m!Dy@m9%Xe zZG~G#Tld8;B0p-mXY3H@c~d(V*y3EkFlfm+z^TpwEQU1H^Mo4PYo4Gb>#R?;{(Xaf z)xsJrLtj;LPyA8FKMlF>(toAg^Spy%gQp@@7 zop#&w?k;-QP(8zTx5(!k`a3r={c1fPPRZLFYJSMP(0h(CKV-go&w=yK`gUaJyY{@S zKeF|V$j*1IX9V-Y8ZQfd{>b9S7JsufM!wU}Fg;$ruV9Pw0mI-;U0;hgoC6pJZ_x9u zzpbYV^Fqy6?-MxHIf8h@^9-APj>Vgpuig(pU*iq$Ypk8=IiO;nJ*N2fE#}AW^l!{Q z>|!4bW1sb1m+fx#ofnPw0i1FUVHmu`ez;u_FFBWBzUudXO24V>{8;;p=h2@yKTp;^ z`vL|e~a@B!`Nqa`=Wiu`G#Te2D{|;M!ey?gZZj& z|0(^bvU6$ihUd}WI6tQrZ(?3p(}Bf4>xe^_w`U!3XqiW9k3-*C{;~Dmh}prckH6v% z>YS)|8h%x;cQQM;haEKZ{aN<;-{M@xQ1Q&Yeg025k1=fCXEhlq`~0(h$ofW~|I@a6 zt|mL#Il5$t&!tate(%*}DLZGEY;jKH>u>kH=TXhy^t?*fx#h+8VTTvb%SOJx5yv<3 zvazm=guG!`6 zy@KLBcKI>C2Y@)RSH**zqmICIj(hPpVZRs8r?WrPIqmH^uIKGIZ?n2D_9s}K;}-S5 z-MsOAXtmVjF+i^aHoLq>JZKm?8N2+L-xFYc8oVzts6I8`zqssEbICezaLKwe?$=$? z=lD_eLw>*a@?3d6dv|fGu5Gcq}hr{G|8ti(w@jt-5#|ynkjGvao|J>>vw! z$ikkDO&6DT`M&oIWPL4+2ig5=$wF=)^F9~G`|N(UWFgj9?-}sE7m|hIJp)<)3;Uex zKDT6n&oz{cH|%nD-&?W}>$AF(dHX6~(pMQAT+&zhjQfa}QD3_GPWmsKzW7{zYv>El zftY>vysFt}&#R8V3L9XEeh6Fen@@afdcns+)x zP8`jA_1>QJeuAvehIq^Kyicd)M6$jc+SkO zpnr$@dbl53zSn^H=Dy8HH|6?={H!eu!tp*WM>oJR?8seL%!B;%lEz zJS*=@(jTep<9x|FaB#`GGw_l=&W(Ow%s-ZX&zBwjp1XXvGwiyd@7u4j>xLR{e2rZ< zRF0(a{-5kVz2zQDyPe&q*S@8W+)y%--=~)hV4wXyy*;nA$Ju>)$pH1{hI(G>efmb9 z(YBg9%XwaMZxb9)AK5=+{UtSgjsAGd?}DBEq0>BgUw`OU-^}*y8TQvOc!vG`8vFY- z_Seww6P5NhyN55H5r29=6X{y)oZqt-&thH}Jj0$cU)fQ=hcBM-Jnws=earLwp1pWR z{K|amJ^V(0(vEx1jeX0yGw_l=(T#n}e4~$4*{6?nsqfUf`bisaTkYr>cGQsl7&`fD z?C96nQNtg9vU?ku-L!M`%uZT7o!Le8^`Y)PvwwEh)@tv{`}pJr%6?L|Up$@!&2No( zvaH!|^gU%=qwf^YtL~?=uDlohSu;MB*3aJ&==&w?+!=Q6YwVn1=s4`$*RpeVe4l^N7T%eeW)99&API7yCK)CTX(CC)Oea_J2{|1o(D@SHx;4L#5N8FX&&tA6W#gSi3^U=mv7LQ zhOwv7mv5vmyZmhOUyXcO>1VU9kuPH%@}l>L>67}8rT=r6pKX06+^*mGUQIj4Iz(?8 zx_n)sHw~S}SLjVc&!@fMT+7gFYO?wZ+vALdn&0uhRHh5EepI%{v;O@R@8bODzP`{6 zy-8lGk)LYxKZ!W`o%D}3dw+=jGz{9JKd;cASLjbe`Lnw(sIxN++Hx-B^%J5k=RS;g zyzi7~%Q{2-UEW`+qHUo+$={THq#OE^b&Y&axi47vPWnxYw&+DeFJax=?q}WF3(3wgviGT&-rYy<8ak~n(YuBkZ(O2x4V!vb zx`MhoL$4{x^svRc**U(&&Y51ed=u|G&k~nf|tXN89@V z=x43>F~)rg@(stJ-!YUQLceOTJKw>&s{b|5Y2-V~{@1MIojLuK?uKaUSV!M%^P6H_BhT@U`enEJ zLuNe?sH^ja~VZ^1Prcf5N)zJ&#@a6V@%-x4Tt` zidWbtL-rxO!aiMMpA4J!NxUlF3z^v~?L+b_hT=tTzr-u@EzDQ%KThw3%-&BUUhzDC zPlI^HIf1{gMmjU*h28PXW6I0Cg?m7E#4qA;(??k(Ua@n6%uY%MsJlz=k<9F*WPm)7 zpPNetI45vBDH(|QcyEO4Cg%j{J(8K7lnn4Z?o<%+=`jDBu%j~6iMxM#f!^N|@ zy%f*LJ24;c>5-0A{z>+;ZZE|%p6BnI5YJ*>7(9#l?0plBbAmsy{8X3yTqq8+bArrX zDrUf*x&2ejP`8JQ88|1%?4DxWHakZ=RK;QBol?&%?}7D*@?KqbZlO5L&IvNRCYsjm zm}pwJTcYU#?-gpu_2bH?Equ?(Xx?g97Ck@6?1*Syw;Q5)-A;(+oF8QNKyo~f{wKdx zz8~$O@?b4-Q#03SdVkULgG|qhrggn8n%4EWXv+CPrmscQdGzyR%73ll9#NMrS=m z25rd;&Ei~OXsG84HNP|Cp8gxw83t`*yy0X0h51YkKj1ONrLBEvZ10=RFxtAkH`)qC zTknOuP<@Nli5^4@APm}aelX+wz%XbVW+Hi}Tvplcwm~x$0Z2j`M&zPQ##S6H5r;9$yqh!gzRDfb~}tOEx#){R&ks zx(VyR!Gv|TUf--g(YlrFz16gbT1&IXXOYhkdd@7<-xhl_FZBGT>vM~}owpWyXL{Y9_lD;gYJINfEoa8O zu+sZe?kj+UDfbml@SCUHSD3L5v>xE}acA9(bw{iN2S=>iW8D$!CaePo6V}=K;I-DZ z^r7t9KNHRw41-skGknWA!?&C>7%C5u>wAqkXD|$2)%Cx4MV`YjcvZIt;#JHGgIAn0 z%(%~=*$MHA=NSgC>UKlCih1EJueeVz4IE6lPjG@iK8=`tbH+MwFk{__b@bKVJYpR< zIAYx%>yCKdgmvIx!a7?YywbY6?TE)XnLlJP&V=&=L-tqXq`&3-;9JfQ4E_8dvm@eJ z-*ucYcviP7;u-l7!{Axn&WLB^OPCM4qy5GCL1ur%GoEJ{JgeIy@r=BR&x)d$e9QTPp`RaQ_DQ_r{J=1HRkv5-6?qrK;8opziC5%dnBQ@GCSGxmKeKD%70)va zUe)cKcop-)+x+>N)*Z1992_yf2OhC*!a8s;N%P=D z>)yioLFywq<-Wlru+#4wVGj*m2EM@_8fv`p4ffDbG|%myWPtMn!;pcx{gVuk2Qmy9 zi21O8k^%BU%!eJ63@AS&dsw%Bk^!D)7%~v^VgDopF)ysiK*T}QsDBzvIsZNZr`#Wy zQ6B|bZ^^J*W$&#c)`5c~*6o2uJa57}a4<>p;6&?ezjmD;bnV*_cF{0+hF$yyyZ8-u z(a`T1WOh(Ii+qqUcviQA;u(1+!{Axn4vJ^wotWQodnlf9evsKg@r>sg2G8ntP&|uy zVU1^Tu3qh1@&qT~l)OV@-!eY}XRK@NTjuw`Bi1$cZJGxsTDOwFTE$_l_H%^&G-N-9 zPW}e_`3?5d(C-;!_R?a3%s!f5oY_OgxSStkc2D_(Hao}pf$bZwB;D0^($e(|^o z?0lDu?H6AMnjaay#vXV?4|&@!z78}$GS;Q_6Rlgo&W*5hhU^z;ikhqABMGnSByX=dnlR4a(k}4Y_7r`A(UJT(fQuL^o|VISx9^AxPSBTz$REEQeR+evG_3vh(q2b?r;%SO{cQ3;jr>ySXS1%6Un>3Vlz+6#*wa^>6C83*Fs5Ixp`Q~Rp*Ibk#@FagLyb4C(VK>zhuY_yz|eDpm*oEq zH6Ah+YP@sFIl&d{4E66DjDodov_*ejqd%|FpN5_{+UK0WFlbAj=#p~+Lp^`Uc;}LHf-BY; z25n=!;bZ-Uas|j|<;Rj=Y2F9`6c-uL(LDVvlcpU znIAI0b0N8Z-{fEC4feb&KWops;(3O8-UjnR|Gvy`_{>8tj}y-0RNw zu+Gjod|hY0hjn(&;p;l{J*=~H4qw-r?Gk&K~`@q9+QtT^xOdJhlc)r zSU>doYw1k#J*?lEvOh1hKgE0T*z!D?J+sf@{7|UpKEL8~4Lygz`VF^tW-nPU)cOt9 z3v050o#XyRXC8?A5_T>U{Ta#EH1a^KvvUz&*O>=mot=yLx~@D>86TKT=(lW}Ob8_t zepY*ceKXX*4`)(=@P)cTz%`~E`vUNXRW3U>Cn+gZr~pX=wJk^w%~Fk}FI!1@i= z3!M(E-|+R?O`f~=ebuw`7T>2+@;Z&Y68A9dyv5heSl7ravCht0eBBZ28hItw*?Ehv zo3JjeUsqnqWX5AklNq68#`{1W5YHGok7n3uL#Ne@c*fArWnQ5t3^l*|8a-j?Xcm^BMNv(0}_3`)}yyJ+IIchMM1fjh-;{@jmB2hNA8BtS^*gfc@%q;*tUK zXoevJvA>7jC(85~>xKUPSU+U_&J=xdA$=hk;G77*LjH&TE>`MI@ZmhWe%=Qr+`^7k9=S4oe>-wQ*AhFj2+Y-7=@%Kaie#qYoL&m5-nWFzLr2iyi%I8YP_#zv)%^4)V2sD*0lQ zMfb0=J|c>(@vr8}gIN7!)_*~=*f$=U%o&C(qTgOizdbemM&5#ZvU#6O$sYQ`@6A0m zeTILP?$y#qZ0LP6rO#r$P|x2vmwzSwh2FZ5-m=fl;y;u5%#V{y@wt9}|J3vp{*}jn zcDBoUq00>GH++31Gev%dy!B(vn|JFYa$)o2SFGMM>lYyzK>rwq44{8rYkx`xh=&YA z|FECEucl;x{p|PjBm?+YtRK?%OsMA%SuYG37$F1bl?&+=$pD}0@tkCU&vm~{GQj70 zJ%D5Y|BCe+tQUq1pf`MdB?E=tAb)&R6P?paz8&%%-W&P0myP56re2(;ocrN{czmw&2>~phtP%?zx zz<*L6N0Jcv9Mc=D7fRMQSTC&k-Y^Uqz%TIpjAVeg%=>59IO{hj8Hn{l_fyLI!>k{AKRU?(e#yD~63GDmNS4o$ z4AkR6$pCr-|7L^rLgzW_t9!<*-|+QadgC#judLyGx+|7n=zQAzjVzxdnZe&MjMyFj z!t*hb5#kZQhirGq$?ph5CWwca-F;5G4!&sV%H{DMb* z?$XIC@-B0or<-4pjdRYfylQ#Q*_Br<&pEsDs^vLndtUXOo&Vd}o9lQxH}(9hotp}G%X8C( z>Tb((Q|b76enc{Y-S<8oE%}BlA0nB-{u;_gdWJ9=RvLSo}v0mslAdD+(UUW*Y`lh;;XAz4_Y{@3h!cAhI)z^;29 z!E*9t{GRm}H@nV!oY!jKW7j=TV79`~X~kR4Te5Rm@f5r6@x9rK>>O768N2TDopzo5 zOFptzrhuPbKV5m?n}7WX?ld4*k{tFGAWdUozAUe)7$@ha@B z(Dx&)-?d8&AYUC+)>#VhQ($Km1?cHPfQ#VhQ(&%>*I?r(yF zeeQ2=6QA#M&vV}QZC&v^aB#)*#ysze=kb0o^}E#jz1rXNwUU1w_eNW5$jn}s^?Hlm z>(A=-jMv%usd!(+>G#FUWt`6XsP{8jAYP91Q^^MQI>qT;4`{OCG9(!xPS5HCO-8cw zQ^^eWI>qT({h-NAc77@u!d}DnC?{j~2-uG->@jP&F#q-8I?~3Qm z^?t9Gx@?mP<*BxaR* z8t12y0qk^&)4gs{GEl_nSJ-Jo*E^ht>KxU_Wt`6XsB@GI#OKEOsbl~-GW^T5Fs&l~f+E1oykd%fY@S^T5Fs&l!VPJg?E8lliQFbjdTTXK&Tzi|$*q(^;LPcvU|a6tA$; z#KUF0oYy&uSJ-Ld>8N)Uudvfuouhb#o%VA!@d`Wbb&lc{cG~9?uZV;90|)!uGu;OF zxtH4L)5CoEKCLUB2M(@SHwLeGUZW2R^Vxg6-a>uCRp`=#qF;|>pjCG-)ZfJJxmrD> zC@Yi>+_iH!ANzTnWPmy&;?z8@HNTp9q5eKUZ!^EzWk@n0J8aL(>Ki2k*j+y-lME0S zdp)CM06SYhN82Yp1qb`oEpCJR+)Hir`(eI(pVk%60|!^E8-rIouhE~A`K+(C?boij zxO?BmdD>j>`mjEkSskNzhJE$(Gx6-M_)|Q?ei{bPu%8~Eif7nOKNl0vc%Ii6if6H2 zD1Tjbhmx77KNQcfi}iCa_G_=&x8$$3!F}$fHuf#^WuNKBzGdAQyyAI{ean2--+Cqg zI^x`J`x(5Q>wN{*Co`)zv^#ED+^PF7*h7yqb^k?n(AH)3f4cvIovYXP*?#f35H$ZZ z;?ZqzpL?mcZ+sot`93Y%FTM^m|1_RA2CsM?eK~L6lfZoT9`ebJHd!i|J z$KyZI6uZSZ>g_~R)_HxLXo@|m*UL5Jn!L<5h;FiX`^C90Xzx>vGraPBS`E2o-55kS z&DWQ!q-m`Vzctox$=@y-4`%mXq^qzeseUc14|`_3$m6a&Kl{vh6Z2L5ndf8ePDQFW z%kr@Hyt1Aw%ey`^9%4`G^viOEk)B&*yb!hDVh@Jcs{bC zY1oHb|0wPiH}a3A9U-4szQ3#?*Q{&gA9)_~t^A|DQ9pZc+B=METHi@%cIkxsVTL-3 zvHqjs1I+cFQae}N<$jo9#5whQ9_HhYxj$^E`Mi$Dd}ii_;WKk?=yf~hGmn2TUMtQK zZ|!;IdwH^aqxsCt3-!D_zgWpc)cs(eluvZtH1dhWFW4vZ*YGXCOY(#byTp7WpUCsD zPlI#TWqqh^pLNAKo$vL7XLH3lW}kMkPlmy>dR|dHBcEp&JR?r=dllkY%nO5O#68UK zjH&1GJfV2T^HSY&mLC+)VqO?LBkuA1Va2mzACsqRx5+{diT z-t$)KM)wCJelebTK4D5O_!YU}h5Gzk{%<#EA`G7OZ9mxlP5Hku^*4sWGxBxh_lC?1 zgJ;A$DgQU7{wC%B%6j24|Hu3W^}+4=zcMZ&57)^5m2na4%J;Z6>>2AC`9GeAT^qE% zKd$7N*|RQQE!6Yd?Ab2&o(zLmMgDJ$eKQPR5f72y8!|5pUd4RW^-Cwp{?+n-)ak0e z*PmDB|CrxkzCHiP{bM_)lU#M@|5$h5`{C?-PS5Fq-T6P(-T7X+l2^5OtF>mz_C;AI zyJ);s-Y43{t{DbT>-jvZRVeM!nEak$@HpZl<@vl`hV}7YPs{JIUKl)&^-*7MH4^E5 zkjqBO``PD~=YC~T|QaqGSMj%lZxKbA=%T#D`g)k^9GX{ucUyd|xBa$h!O9 zXJ_Ybp&xkORac&ob$7l;Zw>LG$&APT<-O-cu&cU% zBVG)d7izw`XEWxUt~~cE>TVl#vdnLI-K{vFxU)Q`Bahg~U$Tz#y6*gCc}~}rzhoWf zb>%fSI5|C!{AlS>z+*T3Omhw^*+0CN1ZHw zzUpuFyhfcY^BX>&c!fV&#k1ruA4OjD9mca=I)0(}wdH+wyV!NZkOAyC_VM``J8l>< zK)lNQka?lzt9vbD&gnSU)A^sJ`c?5P zo)`CA#j}_f)_4~7uG+WcIsb(6tIgbb%eluwac_BFO*$KUYUpXWFN-r*>B{JNK~XW#@!;H!(Z+*f8G5^WuJLrK5}UK=P?SzdY^& z`_l4C*}XFH3VZ7JPK>tP3lpk8NPh1`yb8ZG?v068*i*NE7W4Q$G4V?FRJ@AyLVsR% z{wQ9>eAI)BSMj{KM_Tc!*q7vKA4z_A;d`U4=a1$aEfoKj_r1hR?4sWf5ijfay~IoG zqT4C)l6o`0?Snrb~Ue)cFc!eL!e11Pe`)=fRFy0R+UhzCXXOWKN zd4|%-`8kYug+287u6_5I^0{k>C%ewZ7K$g$Kh5rG+1Xfj56jNRvU^r`Hs-w4c_V(S zq4yTe>Z~gs6n5${=VzbvOof>oS`W`I+AehNXntgN?@6@9Z}fXjqAh+RM7kXysw|}LUCJppHVsxztGVA!mJ*~bX0b4 z$#fp`(FfM-Q+97j`Bj}entk$nOQ!R(dk*%z>^#JDUUsj+bY5#cbXi~7m1k+3J4RmQ zjP;k)e>Kk?JL|+e-+FuQ*q&$UirdywUs=}0h-dhR-mk=HoYlpMXXIP_ev){Gf9UrL z#WVav=Hnirc!qz-J%i_l?o(vvBH|hTA@l9$B9A%W(t0iu=Z;-<%nQX|<^4eM3_sBO zgNSGNZH7+c?4FT$h9Ag$ey>RTOy`c`8Gc}P??C$uKhW!x#WVasLw#QRc}3&gG331^ zKa$sDl1FK&JIm`aS=Ul`=Id_H9oc8BKTq#*DDDS#@oLd?$LxNfc!eM6_k+YM{5Hej z6@HuF?-8%?1DVh7|A<%kf!?1(I+5r3y#n!y=lQvTcop-}Us=4u53HXnoN%8H99X{| z-Ph~CA`Uy@KHt3WmAvM8;NY6)*?S}9_4KcK-dyjqT*(iN`+?Wgon8OV*QmwkM)`+=6T%JL#DbvIdFME48GW2U;B)R)I)!k%|c9gm^sz_R-WmIGs6 zsQLW90siI*_wK-f_1XDX=QVNK3H3DdzE|>^=YfN3o@eik3|{lRx!z~la*k-c^V$vL zo!{d#-uXSgg?cWPc@f#cqTVLUi-=eFm#N++%ZrFt_@$}dCiTxr^)}aG*Pa^&uXvu{ zGZ3$^d(7we3=*%nA9oTsu=fr8yYq@TjoxZ=zgO~_=YfN3o@eik3|>W!%-)UoojynX zm4)r^v%JIZ8PD9`G@c2y-@JeELj6R`{D*kfH#=3Ux5@G!;u(3zRBw~zKg2Wgj;Y=z z^}9*+HrLou!{8au^Lqy38Fr8P)_VvioTq_<^nQU?#C0d!kDK?slGi*B99;99^xnv8 zo;TO~EK8nQy-llbv|QCf`%8AN-e*|6D(Y>>ZzvDqwB(cuIu6Z8)d#%T6)bq5y$H4Y$S3KCgZ{xgRu6JIQ`4{mFe>L5= z%knYe8U7{r>GJ%Hcoy@~k5W9V*U89-!44V*&v>5SgAmVRUa0xjdlHR(OTOk6c*6a- z#=d2~?El}`x2#M3{jYgmW8bFF1O0uLEBUJtH+I|4;O$)fY3;thG4Id}pg!s<(jp8lyBSR;?0#C?~@IJ{N*!f;b+bc*DmP zP2(J_vPaaFyaLfpn+>^UzI?A_L#|mj0ntq@@3#uyJ?pj8L$pPod;b&B7JI-r@)e>j>kNaoG2ZZTMcb&?sPsJffLGuN z_tqMEp82w0QA5wOZUSEOyoR1np9gxMB+)kHp}Ggxr2`i7%eIWB=yT6Mh^FXU&o_vs z=xfH&_fs@wong>4#v4AaXj;fC^%Sqb6YiHaS*u4r25HS#X6%6txfDf-RqaOn8*y^jsO#=1s6hv%W++WR(}T)kEQwW2{G zSL8EZm3fj zKgPQ9{e}(w(v^4Md6hrLx|H{rDnC)uAo32aG3P=(k@@Ys*ROZq`~55*t-t7jo$>h% z>%hTHip#+p;&|Q@*t_$6fh*Y|)3NXOUe3nmL)w}9ggo|yJoX;FMhN1G@y9eACHI!|CKGQj?-U0A~kB5wfn&0tpMeEQv_q{LA^1*)I33kT8 zH>?8(H^j>+9=;)7=DmAHYk%$_#nb71eG{#doE3hQ(M;cC+h``-GMfE=>H{}|W`<6) zZ=ji>)9f2)W~exH_kjDFhCwsk0};(;&@9G7#yf^R`_F6pd9PgWzW2*nURHn61MS@8 zcN+K0IP`{f;NT|3pWqGgD(|W5-SfUWt3&vmX!BzHgMZ$WUj}~kMc}Kmz+e3O>zMzn zes-4h*?YYY$Df*2n7`)K= zrFiiryom9T@s44Q7ojJ4f7>AS{Vn?hH}b9>@#qctS#WT}x)hh*5VuZP2M$tPn?8S{ zb?$@wBfRjlGUJ7#@xsw~;b^>w`HUCuiw73Ze&D)7xqH!CC|dvf!g6nU-2?KvhC%BQ zv>rk07!PML-Z8wTHTIGB#Se~%JNH2L?q<{8hHp~FsW&_i9Nh4nDTwaaY`k|qeIDq# z!)d*k+@B-&;LFdSn7msIWpe#*&{`;3|C?w%`Ca4|3?;|IZ^u3sx?F#I<>L)Q<-m6j zxZh|Pv?j;xHGcLv)cgrGzvJViWAMl9ee;r^LF$KF_RnqjcO7x-4bKAyHz{5PZ-{U0 zz4iLM9ymzxZ~FYyk2muJ&Hi`MYy`~=oo3%aGef7@H_*)R$Db^JdB8cIVbDzZM(KhB zyC&!_rN3K)P}#wd>PN0 zJbIoGG=CxTgzjsbt-RrRCXc=jG=Cx1rO%&eUFnx@^iHOG_TB9)!sPQ`Os=Irh1%2q z;`(zD`LulD0q0ua9>OYqSf0pwgejt$W}RbrcQx?1+OK^2xds z58v>-hJ2>aOV8E1CF14GR;B!5@*Cdk?S1;4(`N5w;K`RKHhyxaKcPAm@kl5h{U6u6 zfA9Y8v&rAP|1iY=6}o(X`&anGe`RCKJ05UOWf(lt`I30_93I7Z$au%F#-q@GmEI*@ z-UE-Qe`x64j<~v^cUhO-i*&>D8hSTdK=@R9;1P8L4ZYhD=Qs2&>!#oh&ui%2^m*yIZTWyF zy}b!EIf5o%$mWDR{!eHk6ixo;!tyA|vpd%4(cY~-jrgj3&v#RwcEn+&KiU2=sUc7{6XF}`yXMVsxA%8;2-#@wh zL6Z?Q`39O8x{dh;ni$q-QtCDKWQtEB_tB!)V%=MghuZJCz1Mqk6#1bir^-XUZ#kAj z!}oemL5qWo|EAae0@{6kOS}ID?S!J;e{+2X?M|TG4YV^1{}bBXWV9>w8S+Ftazs4R z)Mv3S#U<%nuBp$Er)GSU`;qDMK#y;hwF##8uA!OhzmT{83eAL~*?(P9-nPeo@A4)T zUAGUXF*ekAa2WGKjr%@+(tCFL(OCR_b_^Z{Zl3-ki75<)bH`JqkYEo(0-3T!{lvg`I|y(@Gx-m z^c?vM+`M26Zk{s+H^+<}Ene~aM3(1F==IeWhx}jCYo_PEke;)A`xuxBnF5L&k=B?p8uu=hSE1w{gf@j!oH$Y-sS?j{qXS4PMCe~;_CW%c7{FV-M;Q+_{q82HZg*OLqChb}&$?@j|3){np3t;uN@9ng2n>c^8|T~6))!%m1FKN~;t z(;;%IbDH;hhgZWK$1y%Qj9k^T-5ulZA@_~5YT^7Cx> z1LO@q()`Jgw-|5XUvAmDkT=lAA#a>5c+b51WMDmF}{`84dfL+()`Jg*BEc% zUvBNjxX-w6+(m4lZmh2T3r3|Nyytdd7L-oaT1=B$2rFSz94U77<^-VOdcm8^L@sB8@s$6|E>Ss z?h9d(x30anqJDhwe#qN-%HxDy(5EgQS9bAfMg6$Eo}4aJY` z*W@1!H6FYs|7fUj-^UhLpP;*sz=Oce6Z9jvIb{rPP8frmBgT&N<{!6uA5M_ZYveQG z1o=EdKKGDELzmAZ#)cYiC1k$OxNl>Z&m-h>uO^=-_*X~ZL7@Hi$Qy$8+hYvcZ;vr( zzdgo|AL=*V>cO`{-ywNg_Sqf3!}Xy34xxUBk3szoAA|ZGK6cczO^%k9EBuZl@E~yW z1pNnYP8oxn6UN}?h_U0mc}2+;`NV7Ti3um<6OZr%_sAa_hFmc|BA=L$`99;mjYF=; zC+^kqiJd%0?^!6(;)1Dn?>F2=7@Pm$yF_nxOTpv?@ox5r;NeP31e_`#Mm*( zVV5rXD&*=UaC6ES+?+55H%E*eD>*cM>hc(Qf!E{>4bg8tZ+b5BhK8OuJVEy!fd_%B z>bJ%6hJE85`NC`Rg$XC*3y(HJ{`SZZ8iqVFJ|bV3koi92zKug3$rtX`@`We(Nk`y8 z;Ocs=mM45GbWU>B{rz2Et)}0Wlq>v(Bk&;b-RU>-f!E{%6Hdqn9+3~+BmZX@^2GRv zd|*Q6`;7ZG4td)1zuVmtCVq77sa5q`Ef09A{kzP5@8S#kYBl}#M`##W=@RtSYWmH5 zxv;mQ`_IRJBj0yTzAxc~eBTlIzCH4LhCxHd_;*_gneQ|1+c@NqeBWLz-*<=K<92mv z|E-qi>$K&o_{XAvojcy~{nwz^mXxQ5_S?wkU6apCI3b^RL_Tki{GDOQ6Jz|kt%S_? z8TV}*@2QA3x<*NhD{ z-b%=PpK;&DE|0H?Pq(u86nnE~zwI=OPx*{>`p0QM{n>BJ>s>4^9U)IM!zVB1= zZPfKWdrjW$Q}Sq_{r1R@fO$Qi|Mr;odO*vM)a&}*3VqRQcYJ^M+wA)b_5FPe=Jk8= z{e9l+Tl8#`pQYsqzm596XRpb(eMhw&%xu3DQqJCRA@Ai;&dY|I|P@iXd zF3}+L*3x>emUnwAbWU>B{r%UV=a!T!`~>RoOwU2nccJIZe;Yqw9bPA|SJiK|yqoQF zao_Av_-}LX_b$GyMZZOi($FPq(QlC_`Punz4_Ie+hyUYwx25%3E$`N8%UAJ_E4?<> z|2=E*Ki8nwmXxQ5^xqyhF74#?ih8Xcm;Tvr3%&lc@!QCgJjDI8x8}E{Jc;H0J8k(| z^c(gP|E=bCu0g-8**|zke%l4|^c8uxgyeG%PRY9!dD~~FfN&YwH7O%u}>Wr$h%FE!yDu<;gtOE33B)fxifTM<%F@J%V9$1`;7ZGb~!vj z4qw&tzeV0{f6jWh>>jQE_K084l%KQw$TZ2J&NPc$#9HXfK1%1M$#1KDf7feWbs*Wj z+4%mx-oF3Ko}O*;v$Q-Fe%n5IxBKecviq|7PUu0$dGl`Ow@t~n-B9P2a7vxq3Fo7) zsB1F}d18D*om)cY`;7ZG4tb)^?Nv*iTVpSw*ShN5vU{@n?W}i{Jk|1TYv&8`XjdIb zc0X3%jrERY-DQ`o6PKO@HtOB7`?2~A);m`67YI(O*@3vMtivnI3lKXG9@4p5;x1?MZ`JH|8ZtqObk$1bH-Ywyj zdbbnm-Cj}OW*G9s_=I}5gv|FD_iY^VwC8`f`%0MjQTT7wo?2DU)$(q(&-H0$ha&Gb z_kQo<%PM;AzTdqT{T6wWpPm0k-tC5Zw}eyb-A<@?dqsVlVaOq4{JX7$%=a1hZ5(n) zz1ypndbbw;=gxY!d-Yl^@AhZ^&2xkI*72^*f1}>*hI+SzQ|jGLsCRoseVbv(6Jz|l zt%S_?8TV}*@cdtdSEvd)5Yz%Q`*FCIz z;?jlvwuj7pFiN~k-R?xe$<*U#+$yIS)`X}tS&DX!~z1~Okf3mRA_0})` z>TAR2y$>&lTfZW1O?W}vdWxQVO`K}zdhe96p~hPYneQ|1+t~HqDRJxTEN<nxYYNKd#6<$+%fwRZ1lU!?weW+ zy;L2X^&h)be;w;fb~z2Xe8~IK$K>a@hg#Le9a9GfHu~IU_fMS`wYoUFGk-y!o$9`{ z>A|-`cl)eg?HN7Mhj;uQk7Mok2pfIwvU{lUdwjju$=PR2^?URgCTB~_9eF$MrB?NF z$K>I_MxVRvKB~SO>ldn*Q{OxF6|z2J=jg#V=)r{N=)q(3;0yGgp?>+ZW5$LWZzW{D z&$w@6*MrCC!51|>*eL_(!Q;S2pS$c{s%XG^N8``=uJOlz+im}nweyMi_BgQ7=PtXS zs_)2pNBfSGT3@G5I^Yi;2R8cLW%pF|8LW4-&-g-pgDN=2I% zD{*TTdrl7Hq5Q~C)elQ@N`CMS`N4$eFd} zT7K{jf6McO%lePU^dmd3>BS@U$r43eFGgOf#UEZtFMjfD4f6KD{^Mcl zC-#7KQk^oeqF(&PM(D-rKF=z8p^Hx|>cxXvAF@t5tf&`179A?RX!~Lr``x9pSJ|h_ z^uK!=`tc$AJ-scz@%59C*LvTlPM={Fx|@FdNPXQZ{rE@y-?J7!cqRS#O8wPVmAeP_ z8(*sbn(Q(9G4;Jm_%8b2b;`hs`tikkA#YVaC-lN{`k{+YE9%F+UQJHBbkK_WvEKh~ zME=oG{?YaU`A0*I2M6RI4K?ojxK ze_i!}^Yp!2TAuJX9;)x%L*^4Zd5ym7st3HU@7;OrTxIQiLCrBaaw)~DY=(&)m zh2;ys;lcXf;n$^pu?gQv-&p*a2G3X2b5;Cc`+Mnq-^G`;=(!G^f*;pa?>tX`&!zP` zdB3Yp3yc*uD64*%!QdO-7kd>(xF{fqzXzrAREADZ3g_*3s&y!1Zr@~hXP*T#~_ zXAK>)7QMEleeJR_{wdY127td5>dd{nk>Kw^lkQx$3yb zu^#;va$-Al80 z;34m$b@F;ey;i@E_Gka?XXd{>Xncyj!4FFJSXcJnYJH+QZTVXCTj%$`vo3DF`1EJ! zzbW7GfPL9JdA*{3%j45E^W~BIZAht(mv4$31#&;k?^p z=zEv)Z^>`FukYQx`mL6COJ`_nrE`)i{LPl{zXtsl{=u^S)sD&Uq`ccZ({GQU?_Gn} ztLnE}zHQaMcMZO*qTf>8|t0T{m2!H%3$tN`#4SKAi_n!BTe)YrGz23+A%$Yt( z7@ui*xu2z<_e8(RdOuj7pXo#N%X`1KdGjXtXL!p$&Rtvlr`7yF-HYATX9oWaZ$Gok zR<7c2pY%50d>_Bh@bEhce`gYzr+h6oHXW#$M>1TL9 z{Z`S(ChxQF|DMnK`x@Pr^dGux#wz=N@%y)XpMK|k2KHVGpIX1GnaSf*)6YGZ%fp+^ z9H%ipsQOQC{2(3q>=k`otbenQ>EpbWkoi92zKwN0zI*c2KY#a?(DuW{_dXWh^0V9j zTV6ju@9q7P-~JK5{o+^Yx5qwd{Vs2ZZ}ZhBz2DpWjPLw0-}zTx*mr&@+5GRw=6|1u zZp-U^quYe%BUQ z@h^U@euVG!_NM&S6MpNLpZb2VePS~5q_$6zKLg_5-0qVn>=XLYSYPVcCo$flPxaQT z821_XZ5;dLefEja_Q~{n*E_;nes{^{Dt5#8eF+WDpuzcJ(BR@%i3YJ>rr#TyEi-(3 z{9nzkytt50{a&xaX^icC%>M6o?q_KG>@WDupYxl!&++nCU)XPaVZG_T|6l%F4ezJ_ zDt5=;`QUW5?;JP{wD0U=`_6{;ov-=MzCTTufAJ#tH2uux{X6^lhkf@yR{R-Lr)lW* zOo!BI8frW^q)yXN@h6kV@%X!cvU%bEFzhkzUB$l-$45VC{@EDc z=CtnPJn7A=|302*U%uaa@>%r%dg^F>^Ek(N`Q@kny*`=##@9VeJ?Hzqo$WyREy9ykRfBA#vpN;Y7PwRgDmeC}7 z|2%axntUF;qF9zk*&DLeW#d!M~$n z`i`N823LoC$KQMYeRKT#Km5CY#~Amn0*B*Yh0g7yU-2D3iKdj`}S@Z~X7mx*z^T`pxC7!q$65PkT?!`OS_` zw2$mJN>(1?T+sM@g&cs}zd;Us|JeKma^RTcAik^ZqeQzugslGl4?Y2Ej-{kM>x z`J~{-rtQCnsMEdAZguWI_@C_9+i>=J6!yyYhyGpPNoaPygFbaT^?F{rwCuiU z*d_5y^wfU3Lm%v7z&c1beu5cS3Dvqy^c?)OVNWH7TwPK($N^Vy*#`M$IrYT^45 z`)Iv(W{$l*_dasFD?d;2zrA$4G`D^6eEzd6UMlJN^tS)gQWiuWxg9P_@VL*BQv%lnlKW8W}7 zjPX`N=KGBMHjaJ6`<8Zv@7%t$>ypgAm@cVuC-S@h6yu#a_St&vPdnYSy+618S<;@D z`MSC7PmAqbM|{Ki(iP`R3CEl-Rr`(eq+QOJ4jCJUodTKf^Y48d$9{Y2>vngA@7zv7 zyZhps-n+0x$qnYPpMKeF^>WZ;5`(w7)`-IMIcb4RP5#OxD_a*kx zJod%t==;df{W!*=tNvYd70#EtnA5(Tavo$T`QLucd61#TgV&q~8EV}3vE|SFEYRi+ z{k&i@c7Jfw(DxDJ-gW%@aB}2&`Pl^jc?5c|(0Tpm_j^abj`O4kp647pC;t5 z!R>4E*Avb$+VaR!LIfkL{C&s<&`1j$2cjZj*-$$U|1L%t;W>4O;*rI+O z6bAfA zJ7YB_e0S)HotcDvvG4BxKD6(yPkc5Zz8Qfh!WHbygY=QJeKCXI;PyB0dj`L!@Y^x* zn{yqzgPZv6c{Jm5?2E83;LrJb4Rtjp}o48A)W-)HdMaaF!!XD&F; zfzO+Up%)k9`+Vm)=EvQ)zh=B_ZZd?-%L2axgPnxKTJ4@@xc-C%pSVj(D(ZhV?&L% z5;EUs+_$mlv3nH0^6s8+4*S!-&)iU$GPTxZ3!p5ukDEXxINy_ zW*GZ|@e%K9OUQhmao@(VFL+MU zze&h^pK;&Du|GJ!+2j1?zPM$*b^}_};}+4Pv>Tk?yj{D|!k2mD&+_~xox{Cz`_e(r zrR>YH`(j!9!gpU+e8V};HRm`9C!FIPagMXcxs74$AI3+V<0NFh&$w^n*gu@(>~W6s zDB~N>Z~h$LnC4YZ<4-8QIgNUzO+(c*_89jr;@^j-zxqM-PL^M5v6*X#Z%*k$bn#yz zzDal*R-$(YH zVjp$THH&Lf?!s!c=ZSA7oZ}cuZnlp&$1&7+aKt%|p~ih5+d0lPbpnQ-16=f8&u7b= zTBhZji!b{vjy+*e0EP9l8M=Hpy*ZetkVWx;zp8UI@L#eMg5z9g^gn7)&~r|7ffJ)H)93i~q8y`1Iu z1K<7jUXJS-tABPqW2mv}$z9J_?Y8TgbRXlhHN`bQr~5e9oZA?N43bZ_dPHdE=QX;I zlhX{{QOaOxU;K`e`CIeUKQGO9?926%_izfn&wXxl-~MW=8@MK}F--J!yK`^-X9vAA zyEA9qz=Xc|hS;01>qng19MKow5PM_uZT5zI+P(J+u$iBM>pHi2sCzf}*`2n!frj0g zcc0<6e|FEg&6snWrR>fse0+O$XTE*WMW3bYPV9rl_eI0*$cD~+@8&c7+*QwOeopsp zmbW_*3ud~cC9WBBUNfKFS(5Kd+Z}#Go$pKRqxIUCcDgQSUm`EPay&D)UK(q^Ju7{Y z?7J&Yd7%3?_tkf-*Iq!2`{ESNYwnFt+v1c}__FMI%^da4ZRcJV$CUBRoOY#yj&-|I zi}T-QTtnVu)6nmvraX$}Pvo-?Emt9|?wJ?tw={Hc? z8O!U4W=6X|=q_=OvGP3nchOE*-FGi_N*Ujz{MmeVW=XwR*cs!u{BrT%<5|YapXuNA z8-!i_f2Z*cc{I`c&b(UcHB-_%)8X$vzR^CCALsilLRgyq%N zWUqXmSzPP;%+P6Qc?6;E%?qo0^Y_L#(i$gCfz zLSeFiMkhKa0SpGUSakQ)bXni*EU)iu?~K=HOKFT^{|OXUI$>l=6h>Z&@(GkqKAA?5 zBJGRy#wgHi`2D(n-oyKm2_zDU0eYsSZ$*Sx;yn)!4|fj_e`Wlq^j9^Hv0n5n zxn5??;}Uk+YWE@RvbO(M--qseT{Qh0op;5$5XPL+?tRO;IIH%b8Fub1&Ta1Hdr?{s ztJrsR9%o*y31dCb7SD1$h-bMT=Ez`s--+)`EgV-{jenzgj&&rAeTTN^J=T%lA=eRp zO~bEUVjV5w-*C=pzQ+DS+kCa1H_$T~t9v(Xzj2xUWvP13il2SOd5th)f2Y)86Gk02 z+P(MGVLNTrVLM#ryhitKqK;m>4x9X;Q}&nldG0wX@ig1J2b_a$bM7e&KkI=kTcJDp${L}Ib1pYMm)PAM~_nGC_NA5FU zaei}}dS*??v!~v9&-qRD?3~*iuIT*cG|xmv@4t=bsqi%0y9eZu8prv;00Yo3G35Ga0YczHWJW`j)&jq1(k<^3sHE_oIEQeP)3@(tZo)IPbZ4Q{pN2 zZVtG2v%Q6Vh94t;Ch~poYc@+1o!3vFc3xk0_OpOjxyp3~`G+cNoS z%kMigbVPeETsVHP8vjP|$*|wbI3;bzE8XwdVAxG%t)rFtH`=G}D_*^deM)gu@0E_L zM(l;QmFa{*Oc+quL)z_j%f?s-Yk*vKJC8RVb6_; zx4m9rylr7Qm=!~jY&QIzT1+JBOf4LDTT(7sevjnhcjBYh*$+amGq)`lM$5EOc?C1% zVu^LOh~Fdr{*U^b)E^$xJbX<=<&gnw$QQ0*>O$P4%^H1^=LfRI?%Ud z-tC1vyyRO@&3bE}^!ESe`_Ko8`hMI6=Rm*V9H_(#&Vi=*Pb1EKgt>3ho^lRUBIAA9 zeYO2Q!zt%LBhGqKy+%HIUd+lPJ`<5{FE!w@`WdGpe zP3&7nj}NA_h5zMG8@-ojZ?(txtgPi{U2raR!nshO&V}OpS~?dBG*@&kbjrDqFrSh3 zG}~(zzeu}8=&b;){rH8)GllcaI|OE$r*tu`f?Y@NC@q+zs%6>Oue-oO1eM(#C_GXEU_i6Xl_Hz%X?02JE?01}nX}!Tq&YN_{ z30|_^e#LtGRkST1VJC`*CFXjgEndcYJ9(4x(bxxrM~k03EiEVPf2TfovYgNs@@}`1 zliB)O-+DWKv)uZfwO>ZAk)Bp<68c%RkH)@a zjAz~Eo{`XP?W4h$>-W)Ir_xEwt=}7c@8=VJXY19B`Lc{sH|{sojVtkjx^dGdxo$_) zi4*2Jrj1_NERpd(?Y`RP%W#^yb2u_8PJbu+X0BK3`P?^exQ>7R3OQ--o1AB@WZ%5a zylXF-Y|og-2fA;5`Qkp--NV>74`1Xwb@olp#eT!NScw;$i%qFVH{u*jnCp!;_Vi|n zjQ45x)z0ZGhs z@Dqh$x0YDeOQG%hDY5=0_=!3yubhp|77Hs|b*_Y}ujCO`hJ_s5@omh#crA6cJ^+}HZ4`IWn$%~;0^*thqwZ@$^M z&HB}Q#=f~)zw(5AQyBXu?cO)+nJdE`vjP)iSMq3!`?Zv0F_s{Yif3f{@ zNj-gye|al8(K>zp$#Uy-nSD}xk98`HbxPaw5bII=FEQ4s_#bUytkY+`<=5%*-@nNk zdGUQH#g>mb#}s~JAAO}ep`9p?XK^+ea*Q)`1H5GjrZ%v_tzBfnOU!ubI16; zRIH=qslJg_%7fRBc$oX0FxM0Nop=}fn=scCZSgSHQ`=80@4bD^d4HhJ`=g$W&d>ur zEAm5@*0bz$@x7^7hv*2-ACZG)Xyot5LzsLvkjlV|7Lk@e{L zh<%Uta_h5Rj$3_~D%L6QRPKA&r^~L>8~KNiTJscnJMlcq+Yu^n=f3XE zUAG_3Ucbr9_-1ROPI-@RCHvuR=Doew{6+1D%dWErx*y)ty}O^p ze#p7vV*BBea&edY;S%fc-uJybw@cBF3OxQC7yHdV#2+PUG_bp z_r3KAZDH(#B{JTp-B;VO$l-*07rWfMxQl&|^|bW*YR5azZ?q3CseiB82X7@GZCPKy z9$m)2yN~sF$bCei+iPc>;|bmF(e8cA zIo=uPctVd4#<` z@6qmk%emee=Xk<6hZxfq&OFyE&)eT|4iTtxh<82@Q%pY4Po$XqJI?Wh`E0aLIM+Ml zTu+$u&AHyUoa>!&jwj6drahi>u6JGD!aM3y2A0prIi8+7pOLoiPrAK!tMl@<4$ywL zNS?y->nr!WcX^IioN%russi;A`#= zUbpYfUZ>aWd$(MtZGZ2KdxI<4_ii)K?L9?y<#p@or?c-ZyRIJSzQ_69x7-gb@r?U{ zW9|pO=02b>*As2*+szUg@6+z9o$HDFfv>qA_>psF=>{r}BSQCa_Nqe#T2N*&2m9KeU-&wzl z{cVc9D2(+-TRaSZ&peELO<}}I#Jgw_hY~$*S&p`FW|ahE0SjBDbWx73@rKF9mGPxc0JZ?C;ih7FPD?f1Sv zw)d1f^6Tzr-&=NFJwU&%JYUuM-F=-C+{OO4^0+4XV~g#7OUlPJ``@kZ~q4PYt&`i!6Xvtgrf%pO_wI}y@7?wu-ZFUz=bX<8^BHMVFVy!o z!fss2JsVoVl^;P4jn)(Lz2fK&Uu~c zfu>yiIq%_>F(l=YUAIo(b8Z*tC$%o2?x&D-$~)Y}eY}O&Y1$bR&h2(Nw-d%Q?s9G? zbX)tL=oi`dh`;=`-^06ZKb*aOQ!eK2hs0&1&vQS_w(o65{N=iPw2io^{JruX-b(hv z+syk6`|`SVHtSxPf(SJhkmp$6OuQ_)(&U}!8(Bp$W+QQr9YrgzuFLct&6Qk~(A5&-W z>;FFV#;C;OZ13(-2lP30KZUkZ*7s-&-QFyb@jmUo+J64w9(6#U8=a4dy$U}44tw?d zN_+L{{qC6kP8jrM<^}hY}g@)9$OC>y-Nr&$;h# z7yBpca!t6@I&J%vQIARY{ubLmm(=Ii?4N%Y`Dvf;OHTgY^0C1BUS_{#J$s)1jO%+z z`{tVX>V*AP82c^lvYz%pwTQi5jIrPD(iSeh-(IfoT<7iY`gmREdVhIh)ViLq|5A5* zRN{pFcbENli~Uv@>$+8!dz1Rxn~b~uw(0t6$GVRC+uDb>?r{H|u>T5UUDFnibN>}@ zW4{%~{wv-_TR3z7ovd*G{j<#fto7-6USNGLv;T^}vHuEVebP3+W1khDON{+je2%v8 z7W?nA>+@>A^p^9p`u+Fcgsu7V#OQU({>%NsQHc}w-(B|KE%sYsu2b6FFWfAVao;n{ zb;|x5_YA#G?{NQRU9Jh2TBq&(cj9xHh4#9H_s=3fv(~reV}bR(%>K)I_B`Ew zeQWRecYapoMl4`w4@N)6dNq3g*r086`w4BM+iS=BVOOn9!LjkN{Mu~y=4g9qC_{$UhJ$+B>D8Co8JNg%)tM>TbXo+v%{YL-qQSaHk;o1}&8-rKTFJ2{%jhp6;{{JI=yUO2*+3>ro&EFm~ zPr~@yv^Qu!p>52+{RQ&`j*b4?2hrb~f@9-G@6kKYlji61FEl^;4&I65c*37Q*E+7A zA>MB=&iB*bj<(T%Q-3?!#(aix?psrEZ1gjH5&gX>I5z72KmS7iU++Kh`#e8tmnnZ!aBTEE?B+Zi4#gYG z;ilUB?F;5X7=N4g2JI)bjX4iT!SA&xI5zrk|2+D8Q*dmo%i*(>zZ1tyC5L14Uo!Da ze=oIqmUz#>1$+>CM9-4)NL$Z>Jf0wr;MnMAnIezi*l0dH)9*=b`FH`P54Xo+QgDt)Pr@h_LKJvGY-0d}Sn(f`u zBk{@d_cP@0XW1Un7J7WMMA5n3r`=cE&p+gQTf?F6-BdhCzJCkfg&q+PlJB&|1Ni<+ z2u*3sd3dMa za;_{mHu@QIUV6+=FXpE%hb?`$UtH?LZ%^UFX}qWYHhjpo{&uvD`3&dCA2>Gp8BUQu zaBQsU!@Z|^*7Ci_y!V**&i2N)*?uC-_s;g(@!#^^;MnNDc^3V>DL6LH(t}=apI9g8 zceQW7&F>EFj-E>nANAfITW&lzkK*r+E?zWon(f`ur|~=M!)M6jvuuxO3;lOCOB9{k zecFAsQy$Y#9uAGBkUso&%sh;lhir={(H2jbhitDMe}z1PW8-7-2u*2B8TcmnzBUENM*r=Uc92@I$Sn9(y{cY*P zpY>~U_=fj?!~17j&%pafwd425AviYr8U7YI1jojj9^Cy*&!qJ@-LCO|!21t) z|7>r3o9!pUeE)2(9bd$Iu1&$Q(SQ4w(chbbW8)R}!RcSaZGz6`QY z?~ZzUX6wUEyXf%c8Zvg)X@ITw)0sPOlcme;v zM*hID@v(SthWvqJqxfIig*)cIGw}W&kUwy2^fP>g{DE4R4L$g3 zUC-*jv@Sp7?|2VzZ1ivBd-Zs~UcBEdz1Fhtw)49_yQ4MasfRqRHF28lOL=;NJaO-P zL|f=5-7ImK?LO_k+9^+ugKju9mhblW$Okw!`rW=oKEScDrk`Fu5f3aMJ>8&i=I8!bJ;F>)S9yaBTE%{yp;sO5PglZtGM1jq*4CUHtvEDL6LzH~yRG?@ht6an`zP z*%O7o>k{wIIxE*5I8D5qw;uC`K9^q4dCT@DdVX`5?LO_k+Bt98KaBD6o&G)Z29Aw> zr|+3JaBQrtx2K=z9ozHvkHLqvDL6LzxBgZ1_om?3Sf96Yy|KS<_GO~FIsynVO&E%=puSvxewZ^5tg#6x2# z=jH$Xf#(1ZjsCwaeRSB?M|HWbeha?*ka%c}--@<$TjHV7d~tlC{J+2BIl!nJA|O7@M)GD*Y}U=H{-q6roT&6?UUpS@-qd4U!@#X|Mv#ZGfQr)r>ozJ_x5wdxq+S| z`SN|V^=^rJj!Su|{_hQ*W1e2Fe(PrZ2s@|xzc+Y}IzMK~34B1?~ zt+Z#3=GZewi`p~sx6^+;Af73-hSc9q|CP4>cKWZU*gZ#J+x|J4XaDGLO?XdXyeI7q z+D~X3^F6VXj^@})N7zl*+Dq}b^F1fLr!d}=w*F?cjr{H0ACBhOS4Z>gEB&o=-cuOw zNqd9#6WYf7Ti9VobL=tZc`^QIb~MM1 zW8U>F+Q&;fZry)Vzr)}BiuV`B`_tZ_{e-sh=I>v(cglUewEy(JU*-E4`P=!vwDmXh zeQEoBLyzfwXX-P(Z>-;ry{NzSf%g=~-=e)i`w4C1&ENAX`!fD^yoa74-%}X#N?U(3 z-;?%@=e4p&{kJ%85axSw-az{a-Od4y8S?0U&ymCzr^(!*R#aZT;=)eV1Ri#O*&2 zw-@H$B5qIn3FE8TZ#Q~}?|i;qzAtg}55&!dJOgq~+?;VeL;6k2?7JU`lM8cRiIdZQ z!niT#b%p!xhm3y@g#2yZllVB}`rFJa`|XYQUB!D(SG|w=JlV4nzYYIyx-ahOeXHL{ z|8=2#e%5*^_qlwY<>de7e42eOU%k`K_)_gFH+_yeKid1mGW;m@{!O1_5j{R#f!s`2 zC^w~^U4~E21Myt1UHTm-_#Nlq#Hje;34X^pIJqvK8o!zHbAo<52Pek(%^2^U<5x`D zaaI2Y`sxHc2Pa1V27bahIGGn;bzVvNuIQl?@En{N<2TbTJjV~1wBxLPF7(j}cn-$B zfB#1EuLmD{!N*zhb^fEDD)SI*C!E)w6Mb|7o`br>p8QLG>Te_;gRgbF{k%56%RFy= zU6%X$M*TO_uGaH~zS8pr>iLq7*w=bK_lpNYKVMz$mU*tL?B|%9;K$lc`Bv$#W#_lf zuTqb>u68MR@aM+-D)rg2&oxW#KD6ZSL*qGp_H<+ZRd(lxx{Tz$c%yYv=VK{%r4O3( z8*+AIKGx*!4EAN%MU^>nRUVu}h-!a=g`g_rT zjlMg3$!~%e;MC~f%yy6dUi9m^>iX`i&u@Si;MC~f$aatZUi8=bRmxqV`TV5!=>hr1 zfu$Ti=5K%(;MC~9k?kJ+z38vY;j0<>%s>3-U(fwh_t(D6zx%rU`|o*<)5LAYcMtOa z{S3cNnHIgz$(3%RvoI7t7=0V>HQ4(${VbvX?gs7QTHdcQ+7}w`WqWfk@5dR#|5ASJ z|DbW_$r_8}Z~w{YJmTmFiz)repN)R77-xTf^zA?S@As!~g^Sl$e))6fGb+#S-BjoB zx>FJFulqrxj0cRSKYp<8uTc5UZtsqU!RPhi@5od5UA9NGh5o(G5=9r!N4u|f@MZXK zqks6=XbSW8@3h7e!;hrBA&md?co^eDVYElt-W)lf+kbO6{Y&MW{s%p)^G=P$@#p9N zlW=WHKUhrZS3YXcgT*-e`=ig#hJTZ^Z1$x$T)<-kOGt=InJ=}aA z@?nf;9%p-V{5JZH?q5@0*ME#>PArc1|KPUs*rFdSrt~ZCEBe7=oc;aL{vYz02g1JY zH#nD5^Zd&R`4)cWe;@oZ<}+t|gZ6OK@gm8tFrPWwo8!-;-0LfB*gWmfzlSVsZTD4`JI(=?9A`{bTyUVx0Z`(Hr>tRH*O&-SB%W)w=t|So2|7 zvVM4?yv=jgQ~CkxBicf9VzWfi#r)Fls~zvn{fgmZ-@7Pzm+@iWr%2urKc+o=o$)tg z@-Ew(WBaB0n?m=m9ox?^?-GmS?U=7J52QyvNHL{<3_Vzkv%fzAr~RDglP_3LzIVqn zbH74&9&)~Em-jD*=qF=5^F`{b&8huyJ+qK!)^Eo%2NuUa{@}KrIs3t4O8=OCuo!25 ze*{j?_5W|AU-eE}cgF|JbD6Juj$Q@j=cQiVh_ebFLdGh(^Z}rZ8BI#A`kIcJYG90J88uMARy?Ms|C7jLQ(H#EL z-{Eie_ebE=d%zOwY%*e<`CQccbj&&$=eiov7McT_C5q1NKJC8R@xH_S&fxH|vEo_G zmw3kfHt)lTS21pcXUy;O3gKC69c@?h8|$T7NA!2rQT9up#{cV2`#HZ~?y`O&Q{JZ;jyIxh%xBK_Cg1Bb^31Ju^kdkaGxTZpcjh_irBAU}&%<6_djC9p z!+huSj;3SuDtM8&OFsJga1VLNyvFqrZDGm-D7usfQ0?H$@J;j&9~(<~;QWqzIKGbq zZ*%^~j*&?h3*jwtkoA7W+vxA^ujl0&%6+$5@AP-pd-hAO#{cV2-w0)|j(3m;KS%k@ zsW<1{=NXPO|KFI;obAmsuPdz^;cR(0DP=h2q}pHU@5n>;ORplsmgSng`o*i7UQNBJ zXAXY(-cRxwJvw&m+k9Sw&)L?q!tZ{?=U89W{&iUKxw-D>@2tD*mtKX>&y&vw+j{4c zznnXAKgjol@>%oTaX7Z$l!xFPOKSPw@i#Gx5^?q@TRwOZ$`l$Y+5n+3d0N_^^pByRXMesOA_wK!Yu`Rk>M^i5UWMIw3x9Dm zKp)1lwfwOa*@r(X&||aS|DNo+UEjyGZ}1pBH9$TGDX$~i!jw;NnAoSkuXf7k)1VtZ zHiiU;f7{#_u)DCsF8vz%JNp85Slb?ZsC?kMkltq=R~xeuRdkFvd4qUhqyX!q4lKBqrBd~B@Vy(PEUGuStmaRmAo zwR2u?z-Q}=>Tk99ybAkd3BTl3d5<*LZBx!xWPfb0>0Rf&_iExEOWWx$A0v0(Cv9ik z@;+(YBek9J_$s-=Rw52{X+LLwSFX}VYR4sB_}-$|jQ68?{9VPqP_uiVf7;OVEqSTl zt7WfN?-l*%r(!%O4)DzP`gk9m*Zt3q?SaMVkN@Ph@6km+C_5$lbzdy{!QwFc+kV|_ zeboKVW9p}M@%X;Z9kecWP8+dwusA(G|If*T?3aD%aoH8wuRP(P2aCh(Z~9-){7#p0 zqjTJdeS^j6$sgQalN}iSU@@g%_XeXMEDp1Ow!c))CH4;IyTxg#U)uH&{c)dAa}O4W z_%#jxru=Q}A@W^{)6yTIzw-C!=R5U1usEFMk1T5sSzhicZfyhcxV__>PswE1{nap~l9=qvKMweIHVH~QnAXY$$qPwQ@m z-Zr1hIPxq$U!$)(d?xNYGyYqxjkIejdAY_O@5sw6Jzf2FOHQt_!#mHviukJKAU+~8E2fu z?`!Pu4!^I84_0d<#IX-*8 zE6^NME=Jyy)!zsfk7{|50YPwztati~h>qnzw(|;!xNJy~<8l#s0Od-F3O{n)>4}algC6 zcoX_cbDD9?(^c(vk8A!$+g@MIemC2%TXUX~{Cn%QdyFr!pP8?gPy2C}*lwN*{R{7F zwYXAuJ(f0W+G&*^#D2HXzIM~N(&ajA+Rv-p|2pz>b^c7}J!k9p<>E+|t2>Mzb>*g< z)3oc`@uRNX%<)5Naigx>l(N~Do9yrKbFLp!U-NBysCti(lS_Lj`>})Ux28We&kxZV z4)qC)j_Tw?SmOR&Iek=V7P`GzBIAA9eYJxR&&YFqQps}yD*=1PW(%CA0o~L7Dv~_zh2=NeBnK_jGOw2;#q?~ zde-DC^&a%B$;U1DD&$#{pS$o?$g{TWI`k^{ReNA@RQeTdyDt0tufQ*!i?2K*bs=0o z!hg&4B7&c^hr94o7|(bPKPT{0n9tbO&&1uhciIDsqif=EuZYWi;rxJQ?Lz72x5VR~ zk+&-Jd#%5vEp&UcM8^BH`)bGgK6C!6WdDiL|I)ltzrqO5V&25NoX1_}RS3^=UMI|} z5T3Q-G{p6&gCU-!-Ec&IN6!=2dj)>sJXWulGOnj*rS63>o|Sf47h{OtF~+lg#rz&I zze1k175Blv>dY_wo&AFS_Z9fXGWn~XSK@<5$$75cd5AiVO*$6Ll-jA4fA-rtui}+*I1M$4a{&!URY3(=x ze%dSW3+JtR-pe?n=AAkqM*mIM2l4xqbwY-RtZQLB>j&oj9rG^aSzGgtzt@>}`aAQE zo$w0$!m?V%9avA)4VhP0M9-Rh74odf*LUz$$g{TA6MkT4J<;D;PuLr;z%QPQujMmd zU5{jVNPem?pOO63cjTuEXY-TzX@{Tmclb&C^cDEUGWn@qN5oH`k%ubuo36j5Ep&Uc zM8^BH`)bE~J|i#nNi8px`Y5X567#Y_+Zg}nki1kOykb7dOMUmen$M;`fnVBLC-ish z$L#OF0>5xxs@F*whxIzi{8OW!WrMacpLHYF&G2x8dCm6bJMK{lO;_H#zKo0D-*)De z{?5E&Kep`1rTvq)`JAI8@=r_riagY})K7j!-l;I>pY~hwPfKLHPrI*n@aI|P-3^}@ z%e6ut>YO?<;w9^OgZa<4c#0g5huZanq&vjx&U(Jaf9}|m{(I%KrruKx80J6Q8?=Xq zBP^gxOvAuEaT?Zf8>`^hi8MfF`t$E z(nIn~KagMgj{H)g>E_1YsiP+!CF}_K(HXay7k|ICeMtQMhnEqSHS$Ribc zp4Z>f7UsNzjQ8p9tDW;sUg?usUgTk=GokrygV zzS4f1?adMy@6+z9oqSFIarneIPcE@HZf%Dw5XbNE^(OYiisSelyZfg0!K`)2e$aW( za-Sfsg#J-}U+f?K);_VkolG468F`?>lpEUE$(toI-lyGHJLSgtpN<#Q@<6-xtNf3d z_G|Wc{Ly)Oe1SNAho3k0&#{qHFE{ndrC%NWm-b@y9?_3Kro4veSNt)t@~idRszddE z$bN7=Dr0f}<3AbKRHrKX!QzB|)vJnru$W|je+U2RaLM@le%k$`6XNeBenb3ypZNO= z;_bqalYQDkw>L{DIEL%G79%O3)Z^TTu7*7_US4;Cl%tFBqlgT*BK`#bm-hh?1Fzx})K|L=JI z#NvGP2e(xVD*M6WgnrdK3wp4aWPg8$`10W`Se$R4|3CSz*{}Li(SJg}>YC-6pnsD6{T<@Mhs1^V%eZjz z^Z$jPMya|1Su=`~kHu)SfP8~k2yR@gp-{=Rm?y_I}jebz;F8a0Z5+fI?^kYq#@8NaUqYj_e zT|7@&C#|RV@VM4p_UrkB9@M(a=idPjpQ~N{c0Nz_{MgN%=cm8({KP4Dz{4fumHWgi zUl5-Z`U%(fX$#%nERpd(?Y`P62gEDa%Xnq-FZL_y1Zuri{EL3-xfLh$i*L~n78Bx& zJK!O4#{DwRI7<$&k2`#%zr#oNx7I$lwB55$eDH+$V2R%lAKb?ddO+lbzr%0#xhwZO|x}^?_oLderMjTb>xP9Zq|NR)~f@H3(igF#l^UPU4BQYyocT2Wxt!`emC3Cx*{)u zyou2%c2SA%v5O9{i?*?Ygdryfw1u%QOJuxHyRUZ0$u@S;XEnQsI)y#3xXAtNrun4( zUG~8V``|&%E~1WM4=gV5J8qay+TUd#oa8>Jb@_vJthS%nA0K^@_=@<~Hh#>{{^oX`!d zOv3V6*pH}3SX{7A-7tTszsvq5+k|JiDSvbhqqyw>cGos`mN4aw_5pTRiH!GY_tj2$ z!|wX5W_Mk%FM`Dd`(?+Eqn|vi%X^~ipS$41`>4*F4r+E+S=X`RC;MiHpY)Tzr@s;V zu-0|j0lVO2$^G;IyXzFYtHk%%T?g1*+t^vc+m`0wXS1L^e4Bg52M&P4Z9eHCP+yy80`wG>IENkXkmvq)|$?LT1kUQW1^HX)}=dcg%f?@02 zG_Lf>H7xc1s^@rs9k-3$CQP}aeSjTTBIAA9eYI1ru;V_f*>U1yU+9`1&*%qzFT?%)U2yVTZS&LL$cSgZ^rywwu%SWk8*W>^q9618~)$BX*KXNC*Li^W$VjeQrGRJ+tF8am)=m%Xd!~NdB0=0krrN|tCU0jhR*F)R`>OL>b@qbE(~>F>6cyUIj{fx54W#ql9^U+GsJ9_RF0 zzehb-)!&I6Ur==kqQ6r|>vSYO^Qb`EHPw{j9D(k+Mbqve+x7QJQwtsPTUtcia z_*);-y8u7?3_TWqL;sdvT-Ck3`dmbRBk4i;%XwaM+j{=H zpP{G7-&Orq`{C=y?Ji$A7irbcpB*U|*>-&4G%h8eBtIt=ua*KV_wsT&uiFfgCm$BdupRYb=>GGL#mquOso5rWb_g7CE z>o(5cR$X^~`?22N(lTq^a<1N$uQ(s?zBlLTt?%6|m+zwYfB6WxyTiI2UAZdH)bgB9 z@qO!z%X;9PH=`HlevjtGr^r<;@3$*gq333t-(`PCFLEB=ts^Me6~CT;a+SPP?-g>S z_li6hom-$Q@_hH&y05)Ud6`#-<73@d#fGV$@v-h}oa@E@q;oxEbuX}^SIC#@+*=|a zs_`9)W#i|{N4c}OxpZhJ4}kn9^vGr23H_b>1LQq5zH_F0l#g{^Yu_VFK8GF?zeA5z zc~#`8RQioPtj;}i@~j&5y3OY@jvRj@+P=Mstooqx2}kpuFP8sA;89F%d;S#ofV-QD5i zY`c3oyU6^!uefFMJI*$d+tt;_E8~o__qe~CF~^pzAApyvES$UA+@+sXFaaW54nta zcJ#`nUY;2*>dHgBck_F}*7-Wa`B?Wg^Rz$KeU0WtLnP>H}?yJ7rMclJfpGNk^hmUn%!`uE?_ciQ|k9A)^)_wJQ*!)=c zwb!qIN8n@KSM3$#nSQMMsv6CFckN@{*WSmvub=c(TO{mp)fN#(y_4(DtvmHKi6eF5 zUi0j?S?7P8TX*Us(%*?6a&CR=di%ujKh}NCdKy=LC#lRARlN0M-Pg=>(szh#cPQr| z^Dsbvhdb=^M&0M+#nQO%3zcjcm# z(airOu0P+ueyo~kpHR;=v6y_4^rc_U~xqMIsIU9p8Zu_ zpWP+v#opWZ+RU?0ssEZ-Og_zev2TB!{b2F-DEklS2a5yxkLU-BBl^$j2aEIUS3Q=z zOR?MjE}Ng}3H4$Vi^-#`FZ=el*$)rc_U~xqMIsIU9p8Zw*zujBbyS=lxx_R@I z`n8Fkr>J-P_8+nzEZ#oL{sa2K;(-1m`oZFe{&V`l;ynASx`4aw@22^g2GqMvEGEx> zi2Asir>KJqN-t%<<|+C?>80$~JVie!y_Ef$r|1Wzm!iL_Be=U{J>7fzKAL&OpQ^n=n%*)RS?KPbHv{jMkFXYKF0E}{SBXW7Z;2aCx@ zzE_7oud~0yANo7|p})hQ?3Z4GPfOM>ytD6@nI}I>`voi}>&aKmOW4Pt^ilR}UZNkA zKFWU0OZ0=%N7=7=iGEP}DEg~=AP(%+d+`aAQP{a4#dhbfnn#9}h2_|%m9w-uk7a!-Fp?&UuXZAey|wRe?mW4oX~$kKUiF3fBy~lgWfDtFZt8n zWAc+89h}E`(W7nSqu#T7`@V!^ZTfkBe;F*M{qz4U-mdNcI{U$5|5^5r=?9B3{U`K; z#R>fv^n=Ak_V?d#|LBeP+^6PE)X@`f61R=P8*<0|tUv$WHQIV$G5wn#qGsFvZ?hjP z_Wv>a$Ml26nEn&`!QzDe3;Mz0BK!Mq$P;{Xllsk%@sl<0U%I}j>S%w-yuUHB$4-w@ zpMb@5_YePj@c*~jzn@s_A7%fTey|wRe?mW4oX~$kKUiF3fBy~nfNz$m|NO-7l=Ji@ z^YzA9zSFz>PWCjhn7%%DO}(}Kf5?8Y*dJ&An0~Mr(|tjU-KFLp!9C`Yd)hNl-|vL&1dw3(!0?wy&HQ<|IIS?pypNI>xuc)_d^2r z%Xz)8?~9n1-{gJ@7Skg4a?N+_o1pY=_G`YQAC%tBe$99EgVMX%ulbICPv?Dd&=4TI--pzi^cl3kOyV1`^Eq0 z2c>_rU;K}LQ2ICerGG)k%QO#X%)=S;FgBLY_%D(_)5K!Bmvh|VKlWXR|MYkGPk)F1 z*n@9~pM}ia^xQz}?i{|K!}m$K?(XV)EuPQ6OSuQNpXNMt))jVVXI;_XSy%LT))jW@ z8{&Fz>_2Ee&zaA2=5tc6tMb05pY`vV*TiD_Z}NUxXI}r2IvAaGmHnN0g}yVd*+0Xc ziF!5KCnLVEZ$AX;+Yf=W&u2Bi)Ioiu`kJJ3Ca zZU?$U=)mF-I??;d`iG`lRDXUdKVcN>?lGwIHqD3XuDqMZ*~Fu-&ZjXyN5<;i@z>r3 z+P1bIr*B(@jP&KdnR0EK<2|sLLN|g=HeJx|KnE5(&^?822f9P(z~T@((ffD$ho;-m zJ8kk#M&)>%{XAq`@AA*4dvs*!cR!F?Q8#`{{orVxBu;Tfey4x2Hgm{DReu~ zfyEAVPodj^?hrb#ID}60`7WmOyL9G9Yg+U3%L(%{Wqyp+JLSH#|Es`ae<%6#0^EO^ ze4plc4=kpPkH9H(JJ5l}4&zV39q10B1B=6Q96U5#`<*mDr(ZHZ(|`6GJUTL#@A4h` zDY4kM58?R%_cxdy=%&z386SaD=ysq3iyg+Ff;-S1LI)P{Ejs<(lK#+iH@!EkcROJ| z!D_wzV$6Jg&U_jx97If+&}sgH4wT+Zx|06TbTiiF(LU>P_n&hfjn%uf<`LWU1-Nhj*?N<8 zRLvvfBX9~`XC4`U3hqGHna6S*jPE+O-zD-$a$lR~_dOnc^@{m1zUU2ye;a#-@sEG% z_cpLkjcyNU8{OWDcEyX<`rJwWz5w^1Mq9i{x@vtgJ^~e64xV+^C*x1S9q2mivm6Hx zO=n)T_QRj&*^PL>yc%DM2Yf?Em^{dDm~Bk`tupf<+s5R9+Z7L5@{ng6($lG{_Bqe% z$OGdea0*>V9vFWL?m*X(hjJV|G~Ei;^~B!`k^cVb8FFLX7SCQGH?QE?FQUCM{RKSB z_JH=5u*S1om;0qY$hb`Z1-QRf$xTxqFg^mO&~@|y<4?gI=sNnK90w0g*Iq-?>tF7o z51vV0yiXfni3cy>!3%gWfd>%gGNGfIEGKz|97hkbb14<2ot zpwEQK!zWsDCPHzp5rd@#-Ntr#~C-CyyrrT6d;I{r!94uY=ZpS0~D=sNyM+YW-R z^k?SzCkNZ;z4d=i`7=uIy+H2?lXvUzZasLjae^KcChxZ3-Byeb7&j*Ga(pn&@vRs) z@7!PV?j7=%INu+FPVoo-&tk4W1fAjzL09@W9e)Tq#T|lfra#o)Gir9%=P!}JC&-^s z`tLdVPZ&IWf&LRFPanh6$7+At+c-ua3WKL7=tE(&r}@3m4Wa1=&>KBIfZiBw=m*em z1-*D4bmqN(ui`y=^IhP4KP<-`_i#L3=PhXib^I{s6!!?axqcXQihBgzJU^^$=k5FZ zCtmYU{yFf-D82a{y(u&ghA+^Y!e|daf#;v7ZJwh?g&yBHL5~WfJ^eK3H-yP^>_q4X z&>KxZfZk~Ot@wTO+`ns{`}azo|0>?0r#Ov!6lY66u;VX6r}#|J&Gi?dQ+y`qcKE%H zzX+Y;GeLKFNB-j8GuFi;)`d}e`8j%77<2Lhy(|p7;26Cu%sD|XpP-i+A22>pzu&_c zc0r7r=XJeI{HBT<;U{+d({|hlx{iO^jvGPO@lV@vqXqrbx5Jp5M_)aXT-z=%N-sZ0 zFAI}*=;asaszp&nx9ea$P7ADWp(ZuIy-{mJtj-->bbysnS2 zC*?ndUfjp;eJFl++m8KNfxLc#yc&1JJM^zGd58XeVf|~~p>KuBJM`^|^{084~$igELUqN&jzp;e=7d@ zn@!2rNbiik6XrXk-;S-n6vq+9+M>M`?dqLFMthYWdszPX?0SojXPuK|ylaC#JiV-qwC@d8n^{#V%gscL>8)X8mu(`d6&t z48KDdwld?XALM5+ZuEHS3)#xiU-2~aT@J{1(OtaAciF}c(7jJnt{sz~0v5;6?Ll`8 z-7a)su?yW6bi2?^paY8ubfQn5&dPUrBc9atg?WU3Axs|C^@n+ce<4gB)%A&agnz+! z>KF6K{UwjcXE{jp-N49?*~V@-An)ZEI_1_2ju5$g9qg4976{d$BgfR$I$IU2NrSnRC;L(x?Sid z(1E(6mvU6nPga@tW8T*FmwAhyB23=a^_O{z-y%%j5;qC`W!~b)FrIqMymf!Y+q8oY z@MjK)Pj7<<zEW)6KM>WheQa>w3iRT-O_Z=enNoJ71+Auv@pm z1M-hL`hoF1@EE#|eqekH+=Z^AAIfoXGAp0yprsG|uJ!frcdf5?zw1@&oH*z-Z(@eH^-uU((*kp=5t6xFC-U@JTCKy_=hlggq%d4mU)D~Axs`2H;fM$H+nqtxXdH}zmiAf zvnWpDo?@`D_}9# z&wx&GlQ_qn>t{fxxJl5>^)sMT+$8Ac`5BFK6UkvCFUGt@4u$63aGN-aFnNnyMxKj# zi(E!NmwAg{B23;Qr_eX^zsy_w6zDTA#=Q0KnztS=c}sqZ;w>RZ2lxja{{%Y4TY~Nw zx{iMWo#HJ)w+mgzKY>p1mY|zJSJJPv9e=1D&w;Mv54Gbt&~^Nw zc032V(tn!i5BW?SxsLo8^R}MzdCx5#zmbD6jJQ^MqJ(r5mRbqI0| z{Q!ES>9-=E#=JG1dHYlGzgCr3BfZ|Zf1(&iBcH}|guF-om*)uoP8d0Q+)v5-DvE)S zPh(8IkNijem*)(BP#8ITjr%Q%k?{XBAIEdZdf@*L`2WVp;fw#T7)ty<&!y=-mp>uD zvTd(6?!$Oa>Ulbz6V^%Om3dBxO9^vM*dOA)jOT=P6L~sbN35I3JM*02w+eGk*f041 z%{(8^N&bJM=Xk*XH|Cu9|9ehYS3&PN`D^iiwU0FJ=XefTN0ATYIb55rN8%okd5io<9+G*B{72rJdCNWmeKT*#yiNMdb2D#EZ{GTM zt%I(TbNu-S5>L2UUQ^o-5bqoJhCCO@b>utE$eVB6Bl27z*OC7;BX7QOugLoYat(cz zHy?DK1CL+Ib>u(D9}Rn)TBiMn5~sM*4=``h`*E+xyshU|&B%|B`$CfExJP8(BG-{; zW!~2P0Pzy~ymw^YBG=GY`SC$#-d-iw4=FBk+xTVM5Aa-|zlCX=*6n`rI_?>n_p|JL z^BVokc-r;W9qzxB*EnbRNyJau_Plw79u{`(ck>9n%RM98>A7b)USb|$S1_LTxq0ON zibvu9DW;r$;9UQ+9gmymf41Xs^Zd_tJZ`rCxw80dBYx+#j~`m*xew8^!m#T5t=rd@WAv;rd5b;Gea)slZQi11xmVP=---QQ<;g=|-9swxdj_3( zd!?Su9Gr)H4yf}V>CZ-d&^)f&zrJ6L{*3sZc-XLab+>@=>V9X#zV-cL|9|l+`YYYg zjz1%Zoa5Eb51Z%1jL$efY@QE8H{<-Uc|Hu?E?Au(*7NS9KO1pA^Qdmenn&2J5!W-1 z(4S$qnn&nQ#+!Dkc~rMc;nA3UIj|U$FZUX|bWC2|33Om_0-fqj`Iq`9(2bx23*C#4 zdQ?N`M$j!(kLp(YcIN3d&b7qTM*Pk^ZrP`tb8W;qmw4QW-#jo6@5{i~b{=tj_i zh3?A--4MDFbPLtT@>xK=euvg{;~dSrt;g@o+m?OGx!OjYtC_dNAtD}U-l8|LH+}w= zyv_Tb&G?=7sH8V0Z;3O+@0zzYy*Va74|EOL$P0XpojNAp?*ux~HD!ZN^|+F^(2bx2 z3*Dy=x*>EU=oYHiHS?S$^=9Lo&OENi-=q^bhco7#th6gPB0eUaz_>B*WMOwQp67Lz z$C}+aCY}oxW6sZBgJbgePM`ye6UNIrUnkIwpaYBY-uw{y5p)aH0c-P0db4p(XCBq# zVdfEfGtS{Gcj(QCSD8oXO~#w?Ea}Y{H;-y|=NS7BEXL&Ly#~kR@tr^i7AK6C^}|k} z8$kyaWxcQ=^dsoHb!$>COZuoUwyJord0RinGjGwC<$X%d;e39V@`rwmIFosc9m#kz z4rShY+`O&pLC*EZ_~~Qv@?L{u^7u}m1B(;J%erJI(2bx2i}L>a5c&~xow`WnI2d)y zB!3P2Q8{dl^EmUU9&fVzq37Z}&GLtyi};dxl;g%+qv$op^SsSGs_V11{NaDR2FK*_ zb>xrn^8We>bRGGFZU~N`>&Ra@4n{q+TkYG@d*&&6F3#1IOT{^uG4oN-W3(IRV3M1# zzd-Gyxkg@tRUK*QBtNFtKALp*y8ehTsUgj$SFp!Kk-pUbXD2hF@wPp;yXto$wPKueN<;9-&t_ zcWL^a<`H^@@ytgtkFL@y}0$K(xmZTsT>ER9@}m8O4|?B zT5I^7T5AnIQ)?~Sw)|vwck~MRgRj9c`G)9|UZqzU-v>{i>*y86hu{dhj$SFp!Kk~| zUTbZC((j5L6#k*#6}yLa`iIrKW?ZeZZ}8tbeqr0bfv)2hw(T3}I({K^$b;(?huz(% zueL(_rr{5oM`^DZW1ngGbCw5>S3HVygiC#bU)Ax~+I9+b9e=HDr$E>7*PuhMxSnzH z2#k8hl83gP((upxu66&*@_-!@{+Qp@?dn}y@_?Vy@t@lA0A0s_YRdz39sj8<52b$v zM!n;bw7xGzp^9d`9aWC>wTUd)V3p_>-a&?Rdz(_ zCxKB9x&6+vBN~2>-?i@N_+7J|=k$Kpx<5lcpyEKD@%jD?bczE7-CTbLI>mv4uJlhj z{tR?i)(309Yt4>mwFceC!Fkk_X; zO`Idn^-rKvoF?ez`X|sSP7`!<{S)Y}tmkE3wd{ySKB0M3_fOjAhUO7=MED==b3*e7 zJA&~%7c`IRb_Dr(inpXZ;U9GT6X+CgNqK^<)APGxM?@Z;-xWK8cAnFf?~4Ae>&I7oB(p zN1?lnXUzD1$O`R{)y6aC#?2$ohB)a}ar2-fPI^_`Jm@at8Toh1ID2WAw(XGB z#xpX8@*wQewhew~@eJk{d$Sh*j`NPoct+CAh<`WFMfjZ=@$aC!jAt;v?f7>+ALf?v zjD_kz*%w<$MGPRn_jX-A%A((eTPSa3o?g+p$QJh;h4xc6CgkG@!*8KIpuH7seEfy#In9cD z%&|A9`>k5*d5&7nekT1L)(tnB5zHY z?@BylLOes5@0#tcXjktV@yK2!57>c?d&slo0lK#R*^vk6+TR)I$OCkZxaqC-naso3 zA`e5Dydj=3A)X;j-eh|#+7)jyZ-V+Ov-7c24#GaD&RK{@w&S6lI@r*)>!xD2T%Nx| z*NB_8^@8k;E%L^M`L4t>Ccf9Gc!n_FHQQU!uHLmJ2gEsd!KjloOAhA5LpyQ+UAvBd zM-HHCE|?}GMLv@4#p z^Z@o=BM*9(9)PYL|Lo`i=-PGmJ9+@RhW%=u)XzztnHQ4z;6w6~&N@uDRk#65SxsIxRnKIX(nJMsZtyKa6*KA>ylY1~#%SdQKyM~Q>? z;Mc~A2Q7U-{=zO8b(m)91IF8V79D*6UHiLr9en^@BOjx^Ml28SkcULQ6Y^lJ-l;XO z#4#K7W@pXooOowvUZHD$hpscP&^7WdR%H)(e!pja69@0XuZTwdR+&V59ERtoenmogdMeU+CK3 zZR^bMtaxNwX3IE%=If04I$@r^1;1&|SM0mh{)|1|sFO5nJ>i)(ecCz*6FVUNcdMEUzv3#etpNw7lAnf54?u%2_?SyrE z0iGKl_lBFq>4af3j)}_&!)ByCpuH9CiifTJ^nuyW?frDhdY`b~FTiu-6Y+w0oG^Jo z{B2C#MWNq(KwIS=)vkEa+J~`Y|5EH{_UU!xX%PFgcoFinCf*UB6DIG7&y9)C36po( z-img`yPuZb&HgT4q+W^rJ$RwEV%?j>?}W(<;&)@>cf#Za@w;eOylBbM!?M?JmUkdK z?}Ytj%D(aqcwvWLXS7UH?KRFj2k_^Ro2^z{))#fz4gHS zfVQ1-!hSYoANvNpFiLN=>u+rmFBB#Z(PL$OtugUKVe$~YR@TpAe8BjY`r{5<^jAD= z$>~G#J62#9Vdt)o*)PM7)EW=JMf$E?FKd%Hq%e7o{wwQajfqPNljrEevK|)W1IDZR zSJ7Ybyrm}}xIctlEgq(x{2B~DNqVwf7i*LFrZ9Pk-lVS8#+Z1gFnNd`E$dz}K4846 za~1s+4_k8ku;SsXsmCI{dyL*4qi@5WxBQ}a8+qxv6WXqewMkr6=-j5x_oUl(vBtz* zg^>%@$Xl0QZr8?_JbJo_^dA8K?KRWqlNjD=-pME9hFlF3*Mw~wAh~Lc4 zBavU(wlj~>*JJeb*WelYx{>d0-lMO}x>=jVafQiy^mo+5)&1Od-K;TjUSaYceGYx6 zZWib!~Z8RrcVAG?faM{k$@ zQrN%FA;r!W`d;{-rJmM8`77e#A$c=kaY&t)9qj4Dhgc6r@wSsa*;)hf9{s(K{tkOt z`aA4t+0AYJ-N^6vT%fBLK#!MoxuAC)#HhQ_xVPXr;5-ldN{M<ErLFz;J>yKzs$ zyeIETm^uSJ9rrlQdykvC_H||FW(|%0K3LYN;k&%O>ifKm?|_H%>e(-?btSOX%^Y9&O*> zn03w*yi0v6`LjJc`}@$M>(s5__f}F5$MUy<{3VJP$e(djyr|bjyy3mG?zuX93Vv5v z2d5)PjPHPlxrW4x^xvv`AdIiHUXJhDVQ&g^{!{Pd{V~sfT@QKwuhKtn@K3<9o=r#p zFunuE_o8$D!*8$dbuc~z=hnR`$HAF(Zw~aX*mc5uSM0X92j+LhE~9<5o|u*IG)qrF zw*wwN#QHUt`$^N^Oq)^rNzQ9oUxsz;{Up~j<2&HtygD?D55c*0Xv%SLW*wU9nRA^~ z_Q$MzrCIX=UB|C%uRG}OwVq77u9ffO{iwan^(Hv)rS1Ekp{Ju=@u+1d%*ta59wi;? z)qb3Rq2KZ2h}Tu?6uOnvlW{F2&U1yaP8;_(wN7ap^IaV`tKPLG53}-{X2}C|9e=4U z574c&p3E)lM|JX^@FzO{4EuGpZlUY=GtjXg7bEC8{tR^0{VV87`kDUBE$>?{ln>?k zCBF)s?{7eN*Y#u?_qY{fXxyiiZOi(t>Z&*DMai~ptZ(_bjrvitZDU-vZM}|EC%+2& zyyG8`uci2n_um2=q~GxmpsVW1@OvHq0J^H440P1^>zDpPnfGlw_CItFrJhXV9=Cal zy&vD%vfOdrDGZ;gQOC+W<-C*eW?d`u)Z^x<{e+6At@z43zn~pofo=ypr2b{6&hI?G zfZw}m9h!E1^hUia^N6@f)U&hP5jPRWd1j;Do#igavmTatMBJoa7wbX$3#-awv#uvD zA`G9tQAf+XB`zXN`NRK+I$D-L;v$SU?~|Ih#6{|Lw1|gX-q*q}*az?1FKL`Rx|UpB z&v}jFrwCK;r5>}sOCI63M4c@2sIKQMfA}$sr@r$Vb$_`=v1=;3`7gE&AcF<5p~4vC)M?deFx$hpw zx?b?R*7bnj^{Vy%ko=_E=7Ci@4m*T6#mPhVi>haC`L7Qv9=)18C&e>%$zKl2DG=LUA=2d9*6@s?%~diXAryjv&WScOV_!>fCpi zymMjl1V7}QymMjlguL@;S3GI2>$!2~h-Y5LJCbfj+&Snj;~mU@8CSlnw;ptt@s6Y$ zwd2mMe4I(nzj(nrfyYLj+wPK&BTQc4Z=92NE=*pKcOGqcaZ0`nSe%kCbHF}+O1{jZ zb!+zcJ+Rp0_nz~6d;H!pbYO7|o#_2!{bSSJN{{P&%5wA$IZ7OygU3eY(=_ymZ0BA4 z4Pn^M=#h=kBl6wO@i&CwyD^@6Mz%BKMvrgBxNPU>uXvvME~n(XoRaTSe)sc~e3wP* z+U!xU1}ygYz312;d;H!pbfCU#mw7g#PoA4@#(lZTyO5vty+rXa<>}a{JoJWsG7s@b zgvrCYzA_K-M}*14y8bc`@kba>eP$lIzvLnLDyNCXDfub~*deEBbFVF0_hygZ1B*R= z?>WD>$L}3O2NuWBi9UH~x-0S%C*LEFiGy?S*x1%<<|XkKVe+!B=gdp;S%k^Uy52J{ zIe%q*EA*gwS&O%v688X$Q|z1r@RU52PCXsQcfkpCd;A_)>@ofv+=K2IIceu7RTi{cx<{=#bcyTLr%3X zA0W41gQrI2u{89jd5=FOOy1Y^r+JTmB~0EEuL=EW`NiL2JoTt~@BUI3V1J#G*L_O7 z_y9a5KSlYsVSj-IwNLuH(3SOn_MiicJ;tAdd;A{X2klkg2`$ILW7A1~8}S;+?{Uhj zc$jkgHF#=N9!o=inuo-5gvrCY{xlEq+l0x(y8bi|@#7dzJ!&4-{JD<&;y0Avtvw|_ zr6a%4wd)FX7G0JT~2}?0~clb1cbUoM)fnCmevM#GyNR;EcELGf3{jP6V}|=ic%h+~fBocR>fv{!Z-- z{TXr=yh!y>!|uotbk9N7 z=2}ON%5m`6YqHIYTAc&-;Zna1zN_mu)f;N)G4rIZx6G5eo-$9a(ofj?2jD6GK}SC^ zz6+N31UmYO@#o+kzt_=E!52n{EYq2LEC`{0sTy-{Eh3ZM@vCV%=8y zg81+OcuM|DM_(|$3zl_>I{Jd~=inZ{*U=Z{ICyNj_8QTCg}twLN;&ur{MuN(Q^px8 z`v*U+<40nzFu%nFx^`Wn&b&g`@gv*z4|FX*ay4-$*+0Y~RF^FGkMF>*jq)dVh)W5> z7k@`wN*MbH?E&qrXjeQ;`=qjC@XI=WVcU*@u3gWlqbH#2_=Wr)`oeyppQzvV3)^8KnJ{@ciT}Ux&hanv5V>P~p#GG@9N&s@ z^U(bz56SaUoXkD*{X6KctMjDzn181S&iC)2Q=BaR?o9u#t+VTP%?9$AIQS0y+9-K! ze1}}}_!@Z>CU1wqo8b=eFup6E-yxTLo*|#Y-dMzDc%-; z_xLXSL!GfSzGv>aK<f7iVIsrav}isQBO z!4+d_d{5nTguDyQ!{H8bJYm!(Xy=>qJ@x$Fy4M5pFU&bh-M8^>)^~*zqiTGQ-E+u# z;QtTw|8frV|5y2{@&7!RruST$&XnFSuxl%O8o&3U_}vYAdPe?gS@L2u*6vVXTMOtOsH87W=5oyKQ{G-n>Qrg~?m&Bj}sow>NK* zcj&9U-1uGd_9{7lSn-gX<;6wZBi6d&9=YZlzJA+}(A>21cDIpxVeB6bKSF01euU0A%KY9KpSLeOusBQGk2rnvzxc_O6BDTV?}_Ke zwjW{MxAK9vSr@|OJ^r!m{mci(zAE#BPgxhj;)EFuoPz z=Arv59=7Cmp8wm9M?!bU=cB8OZ+{=Wn|=1vj$exR4Zp#2fu0wJt|4COxMt{@hM(ZM zLC;4%wZ1nBea1I!gW@L({r{W!*WPn~)bm=$n9g(7v~MzAlzu>Q#kp+IasD>W<=a{4`TpQtlxgR5A+!)HSf{$F+Oj-a1Q%$&w(>f;L6+#>F-8-)N_FT z7KZL2zUjDV@*Mpg_POrbFrM*G%QyO)@r-+#r&sFll&2YfY}oUc@%yBkaef?hoEs`X z3pp;&hcC~MgN}1U-u}aJl93*$4&V?u$Yp+I>OGMlIOZm-MU-Z9hv8P<(a+ocH>-9Ja5D| zJqIoOJkBMxhYDj3h*vt!nRC*z&!NwAP02O%#+;+1uk7=n*Bk|%=c=x^$y2>9KbCrN zz3b}6=^pWaR1B*J7E|(GN7(&S@?#gOS2rVH;!1g!-foN%*#H>GnpM>VFrqqigeD80>ip0k?A=xxUHywyCd>uuuY z*X7kNS|^Ts$-U}+GUus{dI^eqcD_FeU89~uJ5GO{{UN=r^HuNeM)Rl{k2DXlyW^bI za*N)Mc%gYne1-95JW*$VF>W5#^)~i&T_29`UH7W*UPCtmr{vXk z?lm&L53cmPmX5Eazc@R`MtQY5e@)(V54sUYH1E?+Hm3ZdpCb-v-eX5I-i#BP_t?*^ z_+Zn1=Df3=SKGNK1zo%T1NWZ9`#eXTLf5G4VEH9(4;IwEYSyKb{C4c;tNcdg)#@BI zd5FE-h!>iN*vD~xYWYRaM!e5FM6WX5j0c*B=+mp?fV0m{JMxR)*sc%JkzeRW;FP@D zj{Gvd((iCu?`Ax3{eZY&bzYi0w|%T!LC!ginGb~?rQJN|B!8sJTlxRV zdw<|avLww9-PJ(-O(Yss)s4oWfk6SCjRppjm>jU`YNoAiw`o>(W~+?AHKUz!XS6X2 zCsCkq(g`b3K7mHz1WGHPK!|k-8R72F z|2=;mBm113&${U+#k{%?1m~_SfA(wT2c$n+e9t}QFZ^E4agX-@{;u|Wm*weHSF8Qa zq=oYorUm*j_AymAS?p7)Zt^z!l07*h?yCF4_2h_o2Ow)xYcca4;N*hw;{0H3ON#oF zc<137h&rEO8-pL(>@ybmgNLFSdac<y|cEzLomgy1uukx0qM=!RzTQ<{g01-)=~6F<$hYsMo6Y)rxrB?}{H6@wML-zm4mR zuiJO6Rra_f5Fo}MDEt^4lv^c3@Yad7Q_F>mR2OSNX|?-3Po zu4%-+6W<#u<66^*eI~}sIMy`scoVm_G^*rpWIw4Vf6S}<_4VYBdA)eGmOthlffrtT z^;!$Ns63--MV){!W2q`0)%St?hL4)>2oZ0(t|oF|j8B{I2r=%s)Z^`UgyP>@T2*?9 zxUjAR?&&4w)qVbYdTA^k#gA+Ksa4`p>81KRK}G$GSP3GO|JFNrtT=jQ-ig;0b19kmY{av4k16?CA zQm<8i*N6FzE4`P{)@Q{$)40s(HO=Cygeu{e}@?RO@a*L=4s`qb1mW}r@L zhqzN{8ua=Ro)L!%lScS^O&t{DQ^wo6r}+1VMs=Q!II-UE>)YYZa2UViV!G$PN|{mxDA{5o;rUqw7B`(B*WQOsY|4XKW_sHfW$ zjnR8i7o@t;qJC~ua!B5d@vN6KZT;`mj%$I4C@=V?r%Ze5URgk6q0Hq!{b z7j-|TQH~q`^k>s3$FmQs>}-siM*jDfMpgWAzvAEZ>O4(D;u4{0P}cL9hQuX8kC*j3 zreTg7lZNEuqQ1v8^tfr*^#_SJ+d6&X&HEDP7WJ620Y&|pX+*v)`mLHq#3jO{QTlJL zw~0FAqW;WshJVL+)}NV1UB9kpUo&@IpNH++*PQoJr7MZsxWfnMV**(P(>Y> z@@;Y5uE9!A-RHRW!N%$Df7BY-*E@IXx0H9I-pUwzBSrm{-`RGredk*5+^c=1yQxQ% z-7C&ZYpoUaR$6Pt{($rm^;E`KYsLP6)*9n^Uc#}H>j$;gs(Pz(-*e30M{nVGjeeJ? zpLZMGcZ%O__dQ4a{ledp&MwYFn?~JwD$@wN7j=E65q2-?rKGcq{J&|0-D5oS|EAG0 zyLX@b{W>P<C1dor!CZ^F>soGb8ogp?=j8{@8L@`}v5Cd(7{t*B?J_c8Iy z>-xQZ-VNQ&{N_7H{k$9U#Ju=^(a?SX<3t$uy0Xc zWO*WfWW20DGL1ZLdFt4=IrVhlWKKQZ3I5c4%|4VX^_TQs;3{>2A7tNDpI7_uuARZ& z#ra~zM1}wE+5_T9VZ=m*|30vP5aXt8Xa8VM-5WTWQ}=d)e>GpT&*Vz|BZH<_g22aKnmZdwr!Hv0!LZh7j&gLCpx;AD=U zbpp=U>=U_C|Hq&e{$2k5aDU30R<)l#P_I__>6Rz#BKreAPoBD+I^%l(AjVCjj$NGN zr-PF@`Ti4dPJLOwzg6n+x({T(Z&l7~`awp2N7JZ|5BR;JPVNr#V1>VK+G0oJT&veA z`b(Jdmv%Du6TDV)-01OMJz9*Lww*X}j=u#?=H%~B!1rcS>ntdF5 z^2dFeejU-DaY+7{SM&$@AUmr3ziHY%Z{e6J^;Y`(juX*iLdQ^rUoW|dx-L-mFxS!v zIA60*Bj+M4KT%J1&V7n=J}E!(yG!fXYW<~eQ51f>-xd87e!1T@uZ{Vx%k&Wb`3cC{ zS-B5mPY$@xAxKZ0z8+${*axWJwW$~LJ9qtYzcYFx{BOT=*WWgOm+1%m-4k%WW}n5L ze&9aMd6_u>GNd1vSNQjS=Wd_HW4&wFulBok{b;{yUgx=5zw5GfPQLpDoUhqOvBzKT za|lL%#G!T0c#&uS&~@JUX7zd{|9k?@*X)znTd&-Q-ri55|KZSjWnPi@u4TA==FH2q z_MiBr7ssHd-`5AR#~1Eb^fw&h%TONruIzvNu4xxrdrVx>i!ZR-H|HyJ&#&%R*jsPh zujoTKwBCmD#o|w4kK1Ri_=BI{^Y?51Ft6?_*y9iLihhAZ{9#^^zpZ7e$y>C~UfHiP z|C@Dla}E%CGr#H6-dhih7ybE$)&uj3x}o~nd1mTpHr`iHv!MP3oGkEPXW#GQ zG<_h2k?%ft9#Zu-!pQw{J>_~ku3MVokG`jVWpE~8m|KJ?&^RqujzW%|h#IJrxe0iGq zi{Jd1L0;3iJM$+# zZ^v~*%Q{XU@{gr+7t8}E3+By0*7DXd^T0{tXTNOjn`?Nr{^&u=_2lz{+%fp#`v-X* zdH(KI(DXcU`g`zo;wIOdajo;2yW~TKNmKF%=gtq9rsNB_-j3^*rd51CRzXXq& z*Yk@QFXD+0vcJj)e75n5y!flIkFvv;@2>ps56=?SLnE%I*NL(*alIMWI#;<%K0%nY zC7*Df`Gcv@_cMBYJFfjNLw?avoRD%C@xSCQ@&pU!&AJTj!`nAh}$ zU$F1flRM_UZ0^gvp4>5B#7nn`g9@9`s{!?YM4fTeMg*azzAJ;q-)_hsHn zahl_SZocEe#_lU<^;Ju&|0Cpa_AXGgN?at0R&gy_33YyQmwbsZX+^%|+;ugk75Ngb zx8u5{RV9x@@z;<%GH(X5b_eV(Yqhy=uGs;*Oa7jD=brbWdQfus9kl%h+Md7rAA+{0 ziPP8MRibQ5jBmzuOC$U|^wijQz|dnGtv+kwN^rqGP*0yR{<4W5o9}?3_lQSV`wp1o ziC#UshwVH6BkvrjcTUt6um4@|oEX>bJHPY)-Pp&*uLqm&9`)=abTNuumyTu|6ZOvj zm)}(HENtJol8?r(2Al60_2h%`kL<4x*LNxgI?Q~+gA?Z`K9?@;)_62=q~zka(CB+; zG<)~Igj^ga>ibx6J-tknE{^NXxNd1w>kZ@rf4TX-QD1N5yaE5a^nCf^li}SSF`#Agi7&nG3=X%QZcASsZybII5Z$WeXqCNbgmHJWj{h}B1??oehmqfI4A7j(bXxjbh&-(UQajw?1 zI)_&0&?>K|`ghYL&&irr%o8T9@_I9_8(L9^LjNW8clh7`+3!}IV>PW-?Ble@JaD4A z`ins?I6j=&cvOo=MJ?eFx3HgJyX>)xRgr zoc}V-m?un{<@IJF@N6`|gqd@72LK=(%GFW^O9PxbF9x2Cz}mU+UI+q~Y4>qc(z zquTo7333Zwkmv8!D>Hroo-uEa`+<`^#-D+E%pI-D)8j@e;)qR+Lu< zYuYkTn6%C7&A4u9iykH3yuhz7&bJ0_a~^fiqkWqshv5%`veW4gJ_GmISLoGQH{;-` z=MCu5AC8vD;jU=aJ!k8+oB0o;X)xv5=&>`sX;sM~@kP;xX-E#4 zSNC=5$szNef%Id9d<4xV~{p{7;GKRi23efZjW)btPgKF)K|jyzbLqc!cekh3jl zm)BGMd(zH%GSiNE!lYeZZ^m^?yNp{~y|y}oP zoRPOL`YR2|8T0CXO+7hd-ZOBI{eqsHHRIr^=iPz6n;o?J&Tm}$LM;s{y);2yzzg#5 zy>l3hAAn6?rk-A6{292%{d#(-83#{2uU>2N@4nk_k`ReU90Eczu4@s)XX|D_&Z znb(U$@z>z*@wDvUM9^=4e($Xo0qw)%;|b{LvXi}(JJB%YPBb(=6%98w6t@=f=cy!9O zF=^(y4%3Wz!lYSVZ^m^?vr3+cFMDxo9ak`~?&s8#XXf?d)>@vMxE4HhKEGb0ow)VY zSE+wQv#^7rS;YFH*`NNbxV7kSVw#ol=#*eEVb>vQTbgns9;_lE2s@u)FrHAB9L zTjOk%;#SUD8E@iN>dcn*W3s+v9ylJiGEaFsb7MSiWgh*dCZ|Jj>!5sPJ=!l{q(<65<3^8f>fcQ-V~02RbJV|G5Jw(?Z5&IzTH6e=i=Z>DI9E&F*$Kpw>dGRFjdqusQc|bfXG)*3zqYs72 zgKpev9^|+&c|g1yajbb@y=opf?llj%pD=mA{pOB?%>(o;leT{=>Iq!Y_sd{FU$kixtIssk27nJ=G;%1Jjn4) z#y1%^-tYkbq0J`|N8gJ${v-I|2UD%1&G9_wpiWdCw5SI(Z^;h`bA4eq&TSXW+io7f zyv=cA@;1k(kryy;%`5ZPc?9#8`w4S>alg6q3SM8>A;vfL@43D_-mI@Wze=2cU-ArN ze*7;cOV*k4t3~~xc|ram`rUY)VLyb)i*BC5yucnYJ|z!fG;On9(Y$b;!o1*q!sG?_ zo9FyZ#*H4|)W0V$Jl^sm?Mb`N$Rqr<y}oP+>xKS7x|Gp$m4$Xu$4o&>{nk+Uj) z%YFgzQ1t1I+}fql&Q-JASv&TIBPn|;hNzwh~jlsC~Z|>Vu<%|#PW5&Fj{4H|E{B|F+TVtyD{mai<`Rdb3@q5u{%(NoDCNEolBg1QQCVS{L z$vk1winu$jq18%#y|gA*?Gv_7-6c5Lr|xnae{P?;%Ng^)iO#V^eWvF7$)3z|ziZg< zTB&YVewcFGgKJj%R!jAsVz;{QSfK~qgN8Vmd~B%~-KU4Rn(_Ag%fUOvZiT+o{TAF$ z7;$u=KNY(%Zfs*WzWb>&<58cf?>1+>W!(>U)qZ6A)Ng_l^&N=%&29Y0{dM}FSvRDg z|3%=_;6-1)wf|MKg+4XyiF?VzmipDSCyr*k{r+7XdGI8BYGd-CtDnsS;$QNrrM@-~h?^O2ztt=~<1^0UIEeOKR`_QccVQ%n7C+UK~@f8T!RIr^`e_FcPR+H*f)(!Oga zO#2)+-q4=>?9F-Ev~^9NiOZ(H1oPVSJM7cdecASz2Tq#)ZrjY?=YA{ogS+ee?AFHq zW$L8;b8wbu`_k8G%F7n^!#pJ~+w^@a?1y)bajvJGw=8z2aP)>`!l9aldVFpE}y!x@yM3*AGd2?^mm0lv5)KhKKr;`yP+C|K|4WR#nQfVw$;pQ&q)!N7JW2=rfGL1 z*Y@}2C#CM&2KT9-rLU0XI_5R~J(~Hmq59b|JE8n*VHZrJt{pIqx_aL<@_w9Y)Yb2% z(JK0!IJ4=K(VXAw$sP0R{&qdNW8OBnPrr?x+%@B1^x&y&X;U|w^3>PA%C8ps*0k#C zSJSGiPfaW8WDC7%TCJidiSLfV<{V#7PcnW8HhuAWdXn*NaGyHao}O&R!I|d```vw? zPkGfsADTv8{bw3=^_^)%eQcrEOrurw82d^^|GQXosqb$5gRHG9`de11%ven~vv(+i9j{UnC?$h=;D0DlmEIzQkidQ#;F?lzCQ#Lv4Te|km! zbdUV$Dfv@jeKdDK&x zR(WkqT9G%sVxBN*mDihb-O{R(TjJ=VkKmC0VO}pjuj3Qu_2TndZkzZWj9xZ__DtuD ztaFFzUEfz{t?{DI`6JbNAWuPZOrhL|G3mG?dd|Tpm{Gm(Y=PY2WdUdJa9Z-XP)xBmXAr(r?QFfXO8O! z*F)xSZ&jZwo)q=r=27>%Ns9f7dR@`9s2?}ah^M2D$+bDGm#E(r&x-nT^DyTdBQ}hB zUVnqs`xfSen5X=%FnP*) z4ZCKZ=KQRyH&4kE#QcV*)bqaYd$lX|*Yx`3exUYgGJnv^3ouXl=3KuYDK8)y=+}NI zFTI+UTBPsEGFlmYBg)C*e%SWi)BZy6w85OrFXft;W9#g+lqG4rR)H>M1* zo_+4Sj0P8sHt!039%=}H}8*g+tdFM9YO}?S-E7Z$(kL5Ay zeD_!$qt16Xc@A(ak1?pb>w0AKlyw|+{N^S3Z(;J3^%V8T<|*qb>h{f3@*7c4W}dQ+ znLlN|(K0k;zA<^qdXBn(^K__=**xWUV_(TU<#&b2Q`T|VdGnNY%=}H}8*g}uzu4yc z$a~z2yvrxdqYw6Ukt{6jhohWsQU7dNLLUf2UliX-&^O16{yECgQvYo9{PO&PWh?VP zMt`r}eRiyGvfqw!!bSbG^+&FAW6E0o{gl7Y{yfSVhm6`ku>P>jIsfEuqUZgMQPW%a zA(lb(NbIXw26;ZApRermqZ~7TZ}jt&=N)Wo^6!lunXKYW@=Nz6zcm(T4)#=%A5ruL zvdo}wqED=4rh6X3`X}>QM$@$HBV?ID4@8}|Wd=PU3>hlw4lOhI8PRvhGLwIA3>o3? z^E`$16M46&Qta~?4(GSgc zjEg={<|*qf>f+5))?1w8Fi-JMqHmOWn)8jR4|0B<`_Q_NK2l!)tou0sVV>d_MZ993 z^1I>Jn5X=1>{ptn_$SPF{k=Jtb@=9K&Np^!L6t`%4|`AYzr*!mV|Dq?DGr@26;I!H z-nZyCWtm`IM?Yfe;3A(OUKIVPEEBA+sPC6eDDnxC0p@4FD$4}xn)&Vd;E)~50{%jg zPtfla@s4GJ-^Ksvof~F;_P?_3XI;nqn{^%avu$0#JG@tgkqSV4h;OXR(c@w-L5 zW1jN6_y@gn$js0FT;^%cH;%7s^3(SsKmMWT9&(*qddu?;bw0r|fW3~sUCtqO^9Q0e zeY>)cSDi2Ly2TzxpD&-$!~RBpFX#KXU&Q&kUv<8@cOIGXqW>3l3+la`bp-c4Z@yC8 zZ`$K`3;S`tX^%aNK45iRZ`xxw8E?-aN53%B9{U*axM|P*!cX^ERqP?-?jsiVFveTm zSKGhLliibgoKLp@slAZUscZHBu}7=Vn0j2Q^eVp6@EATYQ@#X{#G4V>zesRKQ-*7*KOwE z$(Qx=b-n%CtS1_%I|@6@zU{KQqnLNIUz_)<>yD83F9Mr>McS_wuS0h(?NemlcH?OC zHtmct>}MU97ICwAiye#pYvwKXlQ_1Flg-iJ)|3<#A+goDbxw;#|(nelqKeyjG_U zE9TwoC+EC@I;@y?v!BfRs_U@2=X_LWGq|6uc(d5oGVQU8@jV&S9y`{=c}09_+UI!o zZ!+z%ixE$n_OsM|5kKmF#r~9Ok6nzoQFgJ|k23ACi!qK}oO6B$oXk1DQ-8m6)xPcr z+z*_nk6xSy+9BRNpw3ABqx|n1p!($GyrS>k2ltzuqBwDBy^nZT^o24nt2ps} z@fvZT<3;PxvR+8ME%v9(YwR8Kx1*j&>nvo#>kWHX)E9~8#r~9K0DITOiADX9WT4oe zvP|TBV;fV{Y) z?=R*R{r;>IQ;ys7NaC^cEv`#4x-KdDOcixW=4p3-$~;Yb(8h`Hi`VKnk@;EIWS*wI z$^9ww6g$_%iI>>9*q<^_v2#TolzEDsi~T0^6g$_%iOkPBDf1LN$Na%Kan5-oa5Cq- zQT-iQ`r>cAuRs0)_X8*DFBs>Sc8EU@IOnudAN?hEZm?cYcCM(CGH^?su4{)Ir4lqj*rn zRq|aJ&$=n|6nhqNmw9R)c|F;V>3&6hlzEEXihT(4lsby2hcZvGQ{8F?svfb=x4Ce_BCk6!T4T)*3(#AHn^^I&Z($_ zG7qp%P2Z`d@sD|c{Si9f*y}rWNq(~FJ5|&(nFrXJ*f%f_uq#o&WFF*rv9G{-5)ZPj zXiiKx2~FTF#0ThkpGx*)}Z~-Ij5pt$u-Z|gNS>a zx5S=so%Kbo4`*J~1L@2K*F}AhIJQ2tlOB`4sVb4iltmT66R^m(`5rYCpA?I+-z zb4fk9W4!J^*poZv?SKc|uP1lSIC!?~`v7|9!Prsp$kP7X`X+8&|5D`J9*VZ;PyGHe zzozdHFy7X$L|wRQl$&~$B9Er~)%7Sv-t3`xfU@o)HcS&~?`7N!tBA=zRZ;`*!ydrNU9aGd}w?1Q~hpB@&0q308>gi#|>;8Z} zJb#U`gnu4+DAOpfGw);?&E%t*M$8k&`J5u3)Y2&T zRc`Emp6}}AkC0E~Z*oCCsO}5clRM`1@<-ec`E&lrPozG}iD%h&=Faz3#{B9*T_V4_ z$RnBd_|Zbsw9EsU_NKXM&%CH3wtV6b$8}5ltnX|6U-BuvJPm#=de`3v3|iHF1bh0H zdA&Rh_e1Xvf0tp2|2rtB@_&o`jA=z4M3}U~zvVjndz)6wi~NUah2I+2Ev+g!B~Q`I zf7Eiyyt;v zYw``?*~d7CB_F8B2h?>^@>z;}fNN;F=dAo4tn?SNAGK>{{wO`?Gjc=qPr6@`50DR3 zoS%{pG?)+I+>-Lvu}?cE9`EG?n5VpT%p1)IFi&~wm^YdaVBXU2E)4jegEee*eUoXQ z{+==RV~ctw(;k13ebBOg$+XY$tV3+-l}vm5&m!+_+H=3i1DN*gs|x@0XVX5%%RB(* ziN+Ipn4<1TI;J?6 zBpnlVMVeRSr=?@KHs0vrI$u1N2Vh>CFJ@l-UBO!6(0eg91>{K`1rVOrsTa-HWmOe^L^-qp0i z|BUOFR;kb0IEnc9uO&Vo)Q=yzFMlsjN_>1@`i(k&O8rG!uTj(|%7?1!Gn)KqQ;pETy(S=JAOlf}Qv`r+BX%Ke|kLEzTnZ!_*%TxMQs@%K4C0~hBx?}+<>lOyi;ockSd zzYFGplMCi)zG?B~!t*}JUT59%;F)ImxkVq1&n3s-AjgT*H{iALi;bP_-zuKh-wB<& z>*aB0oZAt4yqCvie9Cw)k2|aKxV2wh=W!W#e~Zi|Qb*9O>srjR4j7y)4zdn-c91$} zk$K&%#ouNAVeuyOvy1Z_pMi@PalLiK{lLi)_j}I$_>S(@1@pkk1@kmNdF$UD$m5Dv z5tFE=fbr>b*B^U*e8c)k6mM7`#!d0$8+h{#yh*>b&GXJO@A^oXyvcFrd!weD@hRiI zJnzi)#+^KG?RVFCUdFS3#7LfZ@vC>P^W6X^i?6fpclLGalEu@&t;OH7?sEN27TCh3 zck+Uoqa*GIPL8!D69YWcM!B4E*<>FVl&jwBw&yinn@i^so@o$;; zcY%`yHg^Uts7*TJe&FPY`#cAaxZefyz{y234qkX(O-t1S59*|#A##3|^8E(9HcIDg z(}zKrG$gM(%esQ8&=fIxe0xUyK~<+v_C085_#5Obak9v|^C!`tQ~G#8O~vBhGVkvi zJCJ_%?C%p7=Yd;C+z*@_alhx_QB(85ybFH!q8SI{n~)zN|GS{Bx2i)hZ-#ZyJLEfY z`UboKNR2!1J>IK+7BS^Ka14PmphL@kJ}& z;a{WACyVo3(=%}KB6Z49-e&`x9C4rL;1Tz`U>-QRXvV<{&y#$Q`PZXz{th`$6fINU zuZ@pIOU{=Fla}O#XVfnUla_hCJ##&-X~{h58hqYAY3X?_Eh{?tw?seBkl$nEb^%@*<)?3R?n9U~ zr@mq4dIsHBm^9Dp?U~PWnC8r*KEmhpljfZ|h{bQvyNU8ckV|lp`R1*wf17fCmHx=& z>OAHA6ufHu5bh`Wjr!Un?(-a^UTjNpn|?p@E}C)h!oRzQex4z>$H?mfyfn&B-{$;= zFlk7g#LRtcOhf72u@}Ts%%aDR~U}kvxW+UEwF3f>({dQ0r6f^Bg?l zem#BKjDr`RXIiG5wDq;3VZYaw{DnF4c!3=L9t?e|oa8osurO(e-#g3esW8`cUT@D_ z$6y+E{bSQGuZ#2EJ$X!8$X`ggTyVytCy)3Er{LA7zmWHN&i#&>GbqSyt4Eu0@WS)% zMvs~{&lHOo9g8>)e2Bb0JnPDyX1%-*KPk;1T!h>APkeyzsnwtuFINk*~9^T*bRe-?i^r+f(uaRsLX(J)L7u=h)E` za6W2J^M1YjK`jSOexb}C+v@=qJ6i-e`PH`uZI z3{NlK;C{XMx0ahGK3+Zk9gGi_+OzhZ)1I_?fjDsnHgT%>9P3?t4!bkQ-qdGu&kR%Tj>eOh=!Hx4!X^6P7`$xs0{2s1(Z4Vr zPclz=#h5o3Pu4oH^jG|MJ-r`(vU0TNtlzibYh(M)tm9dr^nTi~8Q8>Wm#pJU*6}6l z_ZYlv)^XlvL-{tZ=kYj=dCIrNyslaFOFiK@>ia(ym8KJ=6~!sYNd5v=c9->W?&QVNDgA1OAccF zUb4>XUe~>R6!+=HJ9R#ac};w@ZoIS9zii|Hefqw*q$dYs>zw&PaOX&wS&s@Kh2z*F= z4h<{0C0?rcdwYI2`uZcsYirjr4(68z_IH=sZRy<|^sX>^Tt6kBFN|KCg??3!hZFMl zLXY>pgTVNd@%B3h!8`TsDE4=CzoI{~dPWrcyXqOixUs{_N}u1exN*SW9E_2d`We#W z_4f*%vOge9-gNb~dBZ+{FnNQXZ@xFc_>}SXdjcokM=)==pRnKO*u23WFuqA2WMhXn z)jGRR@$E;U|I3g#86!@)G+Ic0s*a7&m&n?e~8| zzo}yX*z1h@(Vw{7Pxd-v|02e%Wry;4_djm;llNlSrT&uaPTlAKDf=11TxVVT;&sOU zhA?@9T?%_+-mu@nc-y!C#QPpzXWUPi>x}!+zqs6|Hg9s=IKIwC;?UdMvynKo&La)S zp`R@OICySEcChH<@A!i{C+eN1zwg#N$qw#f2Zgad>puTa*_RRK8A{@l_zqxg$1Ef4 z#|Wd=rZ~?k8L9jHGk?nbUZ4Myp>wYKonjx|&%y7~_qaUwDp@M_*)3b_6UF?Sbsu?D z`J0hf8QZs<|9#rw_4Bfs@9)L&y}WGBtK;~wcxmu_jQ5MEqoSTlywA8P>ZxRBi|-4n zZ&v+1fTy_+v?EO3V<+kF@9zMZa_#p3PS{5hChv2;&(&JCdfx+J{*?K>?*W_)owGIX z`CVb^5q_6G%H_FR^FHUd-vgkJ@@C9$d0*Raa(Uz~A&usUN)G zDqbq474IXbcS#=NB{g(&>U62so&LUCuPeJ;d{@xC$1dOJ?*I@7ZnW_r`=~Rp*~gv# zZN`o3=hIoA%|7kTK5pdg*l$za7wZ#j_i?NG-*Mi=I#ew+c?>Y>fMu6=i3f$Lld;S9 z`8xsX(-3`$LHDVN{>62lnk(jklPl((a=z}0KF9Z}AM)oLFD{(d)3=KUb?t!NJ^Ov^ z|2-6XeNO-8+uRQn`g-$kW^rw_uI$<2_kA}2yXx=mgbpmuC-?1P*;hikxH!LT-JJH& z=;vweaGYya|H zr}W>sqCfIS?W6o)F zvT9%DEBY#flPmfvpK>1YD(g$PK1u&&>5K2}x2C>`9Ej|5b)`?LW<^h4T$ zzxg(j=&50EMGAXoLn(}3SKd<*N21g9dNX7b2APO_CwM- z{?4(^n2wh}efBLpOCC-CW*eSu!?Rs@wySIV*OeWwziUAM4)^s)9Zo#VcMHn?9_AVG zb@N?=^O>I4{m_Z8i@qP`8TX4mq2?L+;phuuo)KTic*C>$yd?dR>ORg_%mXJ^%sU0I z=;Pe$_r>^q>Gym!((if9cRR(d3uE2>h+P-@dh@P&OcO;@o;)XdaweW^_TvcqAq;tagZ&T&ZQo!&gx(7-zn^2;5?={DUfKiGmb&;t@0+&7S;97#-qZ8n zkkUEr5&B)2G)2F^LBGF2zYG8L zXPw(9^tox;)!(LRUgvj8O;hUR3%zWbuA+zOS5^0k?#V0jPQfesMEB&C@xN3*=`o#g zgdP?m*Qtl!poia}hlO4F%e-3Z!^vRnX8IYWzT~XnDR{-%!k)fld03hiUtrlfS9^NcZ$7^LqK7dR;K@lk}T5 zZPAND>giP1;Oh_S%P)B?^)303UOuMwPnp-t$1o4Q zJ2_xpFCW9awtouqn)!qIn6d9ghP<12P9^s@3Dj2k0Q8G72^!!mCaI~V#| z_bdAUD|RmQxAGlB-vgkZwZF%h=PAfH9D#Ah(0&O0s=@Jm2lLwg*W9O<@2LAEc}v}0*d6nh{en36Z{E6&+v||JyW+br<}LdL@qGmImilgCQr-Y*!-pD?fe&f{4Agn8@s?H<&j<`waPkad_g{|ftbg?$pnK0#rh%&Y3V zkcGYSIwZd$^g1o=mw83Lh4J?L$IW*k3%h1saliOZgL%b1LD)U(%p5n4$1nFOFY^)3 z0WFDN%;TOeUMpVFK0#q8Ed$iu2~!tSe;#(wGC&?E_RTE=>=Q6v_8aqhHBY@>ogcC; z=6>;A9LoUri+*C30rm+PAN+2_ea|1U4!#KdeB;ZrUuqpbj&I3X7nc1>!>^2ec*jGr zZWaG{-gGbyQk_m=FU_;e2W1~J(YUae<{5dW*bg_)y7toRmb??=`JEo~%=stttZOgL zGwv7Pn=sFE+?YBx$BXYx^!5q<%JNfV_H(T`O#1|dy>!fgJq!Ein4xPA9W$^`P}n`k zxH+%*PEaonBk$Do%!(dZ_bBf*X6F=td3|WTq@7zDhiRXnuxqAi*N&N{UAtwPvQJRh zC)0Eldvw3@X=|Tz63qwg%DVdpg&i@?yLQ7g&+GiYkZI2TL17O}^PFew_yG4i4>k}t z^>dBV`|Iu>6nfq??do;Yw5!KWQ}z!EeQlbqqMz?m{_76T5sm4RJJ~5 zp+`S#|A4*-#IG0Z&V6;vk&aJTjy6ijEG4JO4lX<^Y`=^W6A-|%v@u_GX=knL8uaTd;&;EfhX-i&c zk^2Huq3>_>`1XQx`fr#gOxou4W?cI( z-=aFv{fq&ONn7?07VIAgleT%iz2H3l8|DdPX8!=Wt?LD<^B1EuMc=Me-=aFsed;)cNmKR(7I_|jDomQ@_4Z<>YxxCl zm?un{=JjS=L(@ynLx7V@&O;pIzg}`4V!=FcvS8kfc?;$pG7p>_GH;i8hs--?9ymE? zp62_>o}7E$2ibeY&MDWv-?Ktz4Cv=`_8Ei`d;iQngV5KTKeNvujD3beKU=4;&mfF^ zNujS5D=)}*2qR}!=x@c|j2k_k`dqPh@K&*Rq1Sc4H{4I?`K6v$&Wv$mtM@NCuK-Ri zIj?ZczVIdc#tY_w>H$t4cjhgacgQ?&a>%@0<{dKcoO$5noOzm`y!O0-K9pnY=bU{8 zVe*PR$>Lyz1Hm^D4)U$t%t$EI7|!*a`EB z`w5d*UAtjk<+$;NSDYufOq^VDp5PdN{4!(qtp)Qy^%$qGJM-wPy>-YuaB|4JUFIEf zzjNk+lXK>2e)7ummfMktaSDG(G0r*r2SV0Y_?*+9*+2N1{R3g_9~5@PJbMy4&X_#w z+7-PGFg^np%sXTrI5}i|7d&L%IrG5Dc{2{4dtS{m?Qf6yQ|H(xA?piXv48M0 z`v=0zdBy&LFnQIrSLPLY7h&?MYro7Z@-U32Ju|O3XHeKR^NRZklUH3kXI_!7 ziSdS4#1WT?lS}r^kHJgM4=k7mP8N*Mzy@8Fl8Xe)Bafo z$O|!^cF;1w{y|~?ECbw6m@<&}OZ#UT$Z_M1j-~GDGI4Ur{`WC>$@zf=^FZ~MOuJS0 z-a2F+I5}kAE_lfO&Y1^J&YN-Y-1D?v$Mz4#*6j?tC`_JV7k|Po{)Al=#yNw+4w`3~ z4>Bgtx^~b!BhMsEo^|b@c}Cue@$ImO<{A43g&j1{xSue2*0qD?S&kb!Jj;FccHNRE zI0i4tJM`8q<1=u1@qUT@tt|AhVg3HvFG za|VUIR4h=~NBPBtJ#>uA{y|~)oIe<{bJSC5-8e3iADO;E-D6YhCE_M<^jk7oFEJ04 zADQ>t1rNzbXuZTdP<~|2Yv!MO-WqmphMg0#UZ5#H+A-6#Yqv~O z_74jCWSXvGkH{O;y*Ybw&Aj@XGCjFw-Y$r4+Um)5GY*Dss%hHkUpwZbA7ej+LEE?3 z523F&-(o+6j!jE@VcK@>gK68f2c|9i1clx=ZCBCr#O=r6CFcivdY~2U$LL`p za-BNkEqeGZdRW-8S*f>LeaU|7F?iX0>!{Y3jMv{p>gh}7?ShBguct4Yaq!&p>b1Qj zE;vSC3XwnF9ew#0eJSj`du^{XzthVv)qXa4pk98d_OqGS%P-Y_c9VZ9^GkQWPcY_Z zU$dsK*(W$)pWuvsy~5ZhI7Dv>gT}AXn?hf2zD92fBM-I5K7lZDgIDDLg}$D0ZS?i_ z75fC&%oFy-vQRm+z_dI`ew@p4ty)UN7HM z`@zg>@xSue2#rk4=lX2sXF5_H-_BqVG@q7>Sw9gUq zM)N()(>_Pc8_oAHPx~A(Z!q6e+u)9WeT6Q&`a}Hv(>?1l(fpM4CXDsAkKGUk4;R=C zVeoK)-4Mold&zne1`oexy$O@2>}Tw;pHcK(5)X=cYx9`=jxcfq%%2M5d6++q`fKY< z@;%JozGQvQy*|x*^H}>Hg+0^nuzzUueIH%(yTZsJFn=@bo$Mv^jh?^Bd}Bv8uydTh z7|jE5UPAjK*`JYoO)n3`Jnf6bywN-m^RzD#^TzT(b$lS1@Vh*dOc*T_u~)l~eG~fM zrwiWq|z@?Chhkvz7sVH}*d*1N^QqWdMD^{7vQ?gAUB!jQL(o zk-Lv|wW0l%Sf`idb$WRv&S7Z3CFU)d*UKw0Px~z~?~r-Dyb|-Y-xBlAnb*v}tGtqA zCSpp-jL|X^eW3PH6T-OOdm`T1Ca_Oa^l`Gx zuwJ9C+cLvGi!fz|eH;B!2Hda?>8LU?-|R3)%!intG}t-+wWmsFArAl_pF!)8?+^||NGc~VbFYm z{TIf&FR=f@*zb9Xo)CI`=WFzYFs}F5{}GzDkBYufmI2ml)QMXL$fF5U26BB*qfeCd z81s$se9WIRfBO=BF}J?346sjxUt#~le^>77S_b%CVah=M?k4j$+2=L-?>Cumys;fU zKR)*c?nU126Ye7o)(cBE>hqlI#<#^edhJoXMBfNQ*1ksH2;+K>eJ7#)oZfd2ivCoV zMf89$WaKLIhmVB*``&p_{(c($t1O%O_eTHyl)pFn@3))tqOk^aJ-2?cj5>d*=c~_; z7JigvmgkFoYs)OpC-nV$=S%tf&G4(N$MWxue!flq-q?|0{GW`wwQrqy_4|?^9gFkF zYI)a<^NW50mNE31Fl6d$^qDZO_c9;4BTN}ff5YE#uwPa7)3S`AXN3OyM_1%wg(+kC z_dd_+zn{`?%jo%2{@xhZ{QZ=_Z_l}2qW|XBf0i-lb1h>$U&LE_zQRwljPZQ2-) z`GhHB`S$J{{_q96Y)@bRA}1ne2sn++8=vVpQA1Mgjx2`7jbUl3+XfbtL9uS^QXd;wVXd? zetXXL61_FI-qPL{?pzr^Nk@h%-@XpjekX+<6lbN zd|V%q3tJ_>qI%EzJnl>Mk1%Bb{qwcgmt}x>NSOME^&EXQEd#9QIHzYBz`tVtl)h)i zl!2T-Wqx~p_Y%D_w_dRf@VgPuSqAvs@XIU%{BG0(SO)N~n7_$`CVhm5bHPkwaE`E z@;S0m^?6_VyG@y&`5e`LgscfK@pp=Rj()d@2Q5SVF8-7AIF^LW=SXib-{|MuWWKRu zYbt++{e%0mZ!wV18H~->+V8ck=;m`Q1Nbq~Ps8K6zKkgY_yv)lu?!HG2~!4GztQK@ zGLZ9)9`BtWrXSsu`I*nL4A?KR4B(Fx`5enYHy*SM@Vodoo6I)`&zawzGiLr~%pcPm z>~q|U{gpe|pB{_l*V>wV7Qyy_?0|JUAI=y>g$M*da%rpBFm-*m0I+j`&BI=-79 zv5a8%qmRcxzM;s6czt7kqpyc_ezC9W*fjH^ng6g2$oYAG+xd+@qU$XiUiaAjV!u_t zQ{*`;Tl{Xs9m;DI`>(e1qQ^I=_gYq$81tz2T2_}B z^QiY4txFusV@NiUqWMVqey>(9L657O?-qu>W;lfV_kA7uLPy zxpK<__MbdLnWwNU%MR}MDn@io-cWsoWnrEAU)l9yKi9H=U5`A1a`JWjUgQmAD;UrH zTCaQTdgKXYD`KD4yv42;`?6l&*!76-Wh;t(Sg&X7dW^TWqOPYH%|n)T#pEjo>NLx` zV&)ChX_j@x%sT|zI?d{Q=P0kR>nqh2%dQvuuI5!Y-Z!tX>rI?ZyzcL7*zS8j)fCKq zRr4zCaK`iI)eN1CT`%@e&8u$QZeC&6W53kA!mdZ04zKn&zX?wEIKTOf_zez4lWXpG#{I6jAK&+Kze|7LYxp}~ALL)>xzWKIGTH08UT@uV{YAZ=cwOwDn)g+l z{=RsbxcgBPr!zn6{Ui&-%ejAQ*}z^maeCAPY8{6Rc|BvVi~2yxNU?uvnZaH+ae7fd zD48ktPc1{(>u#LB$GK2&vd6j5XT51d?czccQ4&HYyTzSlrqwq(M2 zs%NSzG`g-Z>Mqvmi6b5tb%mCJ?*6G|06X2p>Fl`fu8Q16jsbv5=-Hp@tIByD0_Be0) zjCg%7Yn8WF{l3;U_X8)_-0zJ0U30&czU#HbP7l`e%1*DHes9G;gufMV+J9HFi4o2c`RqI!E&mJ00VV?x+4>FLAO* zT>T8(<6P>h-_^S2e&FPq`<#K-+^^T4lkuW|bj>r>vk&TW@oKGgD?44(Iht49eL?dI zJ54-X$IE4%qjfWOns_?v9nCB3bW!JMUSX$WpUu3&PDh=id4-*h@rGB#!F!35JO)CYwib5u9?p~|EiO#vI z9@3OGS_hWA}e!b&JoyJLpzo?%~O|I9oi|11oYs?S&nC&qIrh>jQG?%!*0gDn0dzi zqQ1~P!%oJ&mU)I<8`0u-nwPp8Fz(~L)-fqOT7vSOark8$*ST3RnL50rnJ_d5fxxnHk8C*#F;yw#k zOjGPm#DAtKc8lw*w=+$d7xi(bDfXyaFV~Z6&Y3;~(M|fcU+(*Y`krd$Z|d)9_2im) zXCS(1wZ2?6O*?h?gR%ZV{&wAXusHW(T}AxY)UOrwVGqR%^gnS|nV)?q-e6A{&wQ-T zR5bNwMIKi7tLw>%yz4{p5PQd&HZ}zgz+OV zz87X5rrfpXX~nyK?tNYV&vv7G?!~;qjx=>(MLyNMLhlnFmHAWiD#zP8t~mE%Ua?PF z{HNv>c~9xQBG2h3Q=NFvj&T0=8Mw!JUF^q3 zYeyKbzcbdeBg{Jkueo2(jxb*Id9HPy;-xW~t{X2Ec}>%l_$cz2rfFVh-qJLkrEME}ljE6( zl+S#|K4Hj!?pJ@8r^q+TXJ*{!`<3~{RwlCU2m9oFV(_MyPb7Z9KFMFhw*arm6ZY&9 zzH}H z{9nC}nOA)0t=5g<4`%!#o<%<4l3egha=~l$`B(mLCuw3#o;`_J(0Rb9={TeQMwmP! zUq`*nlyRfS%kv248TB_!{;#eVuJeD4Z&DvTod2uiBJyy({2%jLd&a!_J8nID#=Kts zkNaWQCKoH_|HgQ=R?lzc|8_X{Burja`M)#ln=pArJVbtP%D6FkmE&30Z(iB{b@G4I z>AJo*?pNpk7~f=kIRD4_W9`#<#f|6xnD@T#!)brc_t^l)^MA}+`dzxg^_BZ?gEdpK zYjvIMy75+ho@fWVCQP0Ze?@)0Y87g`bcUT1CXX{da-J{tUYMWX_0)P~zA<^8^RvEQ zH4@GFppcCw@2B6b_x`e_ zc^>9ZnP27)Ed$uqvu+;IGJt($AFo%RTjUij1K3;UZ&J@|^m7j9899Hf{kPN)%v<^$y*r2xB{LEG*XN$sjSuT{IXl>CVc6-~uAX71g;Ary zxX<5&9$&Ek!^*-HL{*rm@ z*U2BwJm>rJmxDTg-SsUyU7w%X!A=X4SJ>&suAX71g~==8QpTr@8$I5hhdCRmlf}<> z{jKNs>SP(;jPZt7_@iw+OaAg+BeK_L?9;KY=l#F12}K>PWgzdD=W?Zs88^1)R_=RV6}jzw&u)C(uCebh z@IAX7?65F-hTUz>r<`GTg~_uV&+ot5_sVf&@(lZW=KQMSSN8R?Uy1hViti|yXL-Lo z=W3qi{fr%+rM+v{EqTtrqWo$}i}k5p6jaW^{j$^4y7em40cS8#Awnd&B;jSN4C+E8A1^D(7c?xOs(r zj{QdSD#x=P+`P*1JV)B{s#=%iY41sXc+@dbC3Z2+hnSb$^Iqm9 zb}{Ufc}cxlocA&>iDwzl^Iqnq?V@?f{e&SK#r~yvnd8}?%e>6{73Vp7c9Fd5eaY+A zaq6AyH;OmKc`x${dl=_8%q#rZIL~EXVGqMTnOFF+jF;y#yzXYKJI-?#`z~I0+)rqo zT<*h|SJ=ZCA6s|#DW7`>@#NUv*jn+V{L|u`miESqb6DCNE6!PIZ!CD}{YLy&Ve}R) z>a1HHRCek<=Vu>mNQFrb)x&d)wrlM>%8xA0J(;%njd8BYw8c;4I?pGWw#bus1{{$cbh5sizw81oE&F3vBRXZVM4uFyQgKV&@5 z5t?WChnzEbBn+RT*cUO+@DCXu-WR#g`IfEsG~8j@B`y~ka>k47qPDs=L*a#?icmT=2eboe`WIuKQPAeL5?}k2Ts(l$LIB)yd(}g z<~-l3-<5pL{lLj!(z}%mFP2Jh+KSZ4Q^pL*H=hWQ@qwZ$i z^Za!mpW=L=a#lrNL^&(Y_ZcGxR^&xo4?rH1@wP8d$b|0qnmQg~wow!;_b$9p1+%@&(41fUK6JsQ%|$%cO_qQjt`u?=6?EaWb&H(t@J(1fqg{r zE^0T#yEw-u-o-h-wR$eqc@f*es@|r^i_Y`3>hmg0`He^SQg!h1fmDd*|(% zemBi|yVuw~Ve$$;HO?=XSJ*wq2hTSg<5z-{=6jMaIsbOd`MCafk#fD%-<5pL{lLj< z?$dln;5GN_^}A?(4~*|weuRCz*POSjzI$UC7}T+A^|7e)B$k10eU9xR`4C~s0DdLs z>B>Bc*K3Yv{f+%o^VB{N`*^RppD<;B`^EVO%Rr7BJwA9o;+QxOoHXB)e98H@W6sC* zzBk5r{XK!#+z*_*W?u8XfY;ow*Z-#ZJutp!sr5P*500j z`55b1{7cT$mH8R-EXT7SrFqt^ld%tj9TXQAflb}zA)!uTdqk$-V+ z4SOi`c;;D@TYHV&6Gq;W>&>`sd=uh3tsBQ%@*`6xz66iSkI>J}{hMOmg7LbazSc{` zZJ_+fykGO($k*JDK5{qxosq-MFDf5I$ z)4bk{>z1au57ycv>PlXM=%%fnTr*yOSF$J9%sU6sO#|PzO5eTci(k{UbKY*;eklI> z%>9t^8z=f6v9G5>+ne&c#QLsek=HP7(dW_s#I(g8aGm)I)0TO{q-|br#&t{Etaohn zJo$i^;4$acdU~Gmx?fRG&ol2Fe9irOdcOHRFurGL+NM0T=itV4z*>IUQ_(c_XZ8^_ zP0_cJZ!k^sI{ScHUcJ9$nlewAG|lVHxNd1$$t(2~FTrEZm-Xb8@%p=xJ$Yr`Iry6U z_4IJ_dtiLe@^197-}G6LH;`|iGJ*k3GG{yk0(s`=Q_T zU1@9vc4aQ4ea4<#F|U^=spYEqJ@C?NtX^B4b4g=% zbFJ?Xv^1#n3weTG-T^W6rgDBJ=Ki*Kgx} z-}h5K+JCVDj>hM2nFmhZHgP%lmN=g81a2(-Uf>7WA?eu9H(o5xWRtb$eoh|yoILg} zy+_aAr7jkRF8=u>{VZYlSwCOK^`_8y?wx(kiwbSqA1(f<`@6^IALDw;wbA3-aoy57 z_09Xfm#2Ji?015raqwH_fs?mQ{0qJ%Ugo=dqIKMN(!|rv_xjE~&vI7zQKFfj_~^xS{`|wx93H zZM^UMa>~p4FE&8!oBYAoPwF`IE%U(1+a~@5-x9C#ow|+pe6LP*2!Akbo}c|Oe(%An z#IJrxe0iGqi{Jd1QC|=}v!Hdt$1I4qCLsvL=Z(18o>wjKb?v>Zw zC$B3^TF;>M3|i;)bdlHF!W&v+ANgMV?7i8^j_3dr?5_O#VmivK|x7_CvM0afU zzB}Li9vHeKXuY1?Um*A3i|-#u-W5YhuKx*I8%^tfGOf@5khuk+<#_t@SzH@Ku7AFc z>rJ6^;5+-AZxkl2$#F+71^o^+e@2gQ$91D)@WX|i(nouv?WfIn-H*5M17-imXf}gp!l2nt&`cOK`w5x}|MX|&FZbEU6DG}^Z?rDh zM?Uj<%JsHzTt0~(cfmvA&7OQRUdN?9`E24*@GbZ2$!GI>&3!%ZgZu``)e^ZphQ`96 z@mpvt3>v?M#zKFyd1s$IqA+RfI(^gl1vJjb%*&n;XZMyLxu@SCD-ESJt%AYx=*2 z{#-{sl`q_9A556Eb3V|t+lF>|t?&QF^|r7>yYvTI{Yl)q3m#HO(UZ@SIJhUD%xmJ| zx7@EMpUv+z_w~G6#LI=PYVwDT-|*SS?l0d3ZFXNI9{=iC*AJHZ6RuOSjWe1@{}_7r z--N&W@ciF||1ib>HHLiu{5$;N-|1R;$9?vxgvlfCFPTS=;89*rx!x9bc!WQk`cnQx z+OA#jkot$7-etUwt9yF4iKoH0+^?s1o8N2hOZ;8qAUa zqiOnILhhmI44UE}Ps2ZUE*F{#|MX|&9rrU|XiS{|ACW3;`d$fkh+1M-W`eadwQ37m*89O*VDVr?=|=J zyjt%**w{UXCWp}E2iu&K$NvOPjHbzdT3a41c{*c_9^JUnrx{<>-}&zA(~&r=_D9F! zFy^6GCrvz8eK-7W>%q0gFQMr%G(CGDnl9I;gS0;XBYx~3(_i>`fgig_f8po9#gF}4 zUAMHZ^oYy>}TM855OO$`fbaM@xjKId&uXh*QMq2l=n|; z)>nfs&c4$7KiJr!SHl*yUR%-27P&oT-3epeog%M$U?B&7M(Af z(dqlIL?=H(#t&Q3$6dbNbrU~G-cONpE%JEZLJs_!(BT05VKe7_YusE>KYgKR+lF3= zz4bhM3B4Y~{kP`ewK1Md&&qn(0}HwFvu5t)@j*k6ZRlYXJ-&MmJ-*;Kz-wd6lhoU5 z$&-Hjly$QQ7V_k0gKh_jr93@&uU>ia-&=l7$CuDCvC$t5zBqjj9hbgi>dQg7^SiJP z_rOB#ydGadSEJ~9vI|}F-L~f7wGq0$Vx0+})yO6=*WS3A(l^R+gpquo+nZ0FgNUawfEuUMa7frVW98Cjou zU{5X|K|iDDcRYoDW6z*<`ik}W6bBKo*p}V27MkOPvEt&T?CF`&8OPlLL?)+@5zpubT?zH~CWc__>S$@A>8}^sJ*l6@wgD(!A zLf575m~{P?bsGMwB=SqvX(5+>7uM%jU?G>g8!vwG7`mpsZq31Kqv@)38UCw(gLPTR zmw$ux_!U^l*Q)DsOZ2GxtNq8&;~6{$uZ^t3@OS-etiwXC{A{eluZ()%Zyxc!6YdGd zS$X8>067wd9O3_dCJZ^+L5>IV%_Z^M+cUpiRB@9+u)16 zhrEB%b!!e@8{211c{o5Gns{Kx^5AD;eSHZQ^6+Bg#n)TVBWt|3I1{xM-&BGBO`Nb} z{`;P+i!Z@~|6iJqya#d2SDU=YuKwQk2fQ}=U!+f)IAF(o^lu=qUxGCsUw*-JzvQ0a zwGrCfDn8Y3H}S!a`RHdsuD=9pK34JU`{Jkca}>}1_TB&K`#0;q!51$cK(DWPH}Kl{ z`NrgjKSmsEY;sA<<6FNI{NFM9omdxNvM!!~4n0SH^OWBddJX8e_3VlH4AK)tyzAdY zKBBj|e-rut(m3s}_ubEyzxOMiK^V_)$}LY{VvlK(F^c<-zs z+2S1MR($74wEi`}DU9EE#cvAp8Tidp|EB4&fG!J-f1n%|ak-xz`P(td4pnluS{}uE zwyS5pQ0$a6*@||!We%A z4TR7nX>eN5Ao;ga9?I{^dJBF2_4u=Y2mgdgf1X`>Ca!`hA!9)whx( z{YH_`@iVY)!%y@xU^BqvSxK_4qh9v=}YCr&&>K9%oEz44e567eXIP9 z=<-4N!0;C;{WcccMUE-;)1Bn~EH^{GiRtmF@_R#iB>m=o{H%3R?_~Y=lx~!bwmE)(q~-4Z@q7kKQTS<-y+Xzd0%qxf6@6j>xrfBmUO$5 zyxTH4`b*{8{QgVU$y#}~WqLq5=U(L3{Ju-{qVj3hT6)&pw_Gc)w#+VwziZ{w9r`A?FArS&7yn~ncImS2l{67N%w z{f6Y?L-S`*FS6`6#P|2*!=g^a_ZW(a@M~_%?>gT8DETbakw=}0-(e`0ZQmi+_pS0! z+DC|b6#vE&|L<1ut!!>B2X%bAR=!B|h&mNN>zHpQ`BpwB^xduUI?AI)y~?uRkbM6| z@-KS-woYY?S6UZE9g2B?9~k>5THi&UMEq~-PL{~nt@y9sy3_oI-oLFoS+b^=^54(2 zEKec+w{<6D`b{!+tGH3TDCEY^(v2I(dgGAAGTyac4>Y=^l0ly#-2^H0n#Wza(Ryp^N5*uTe&b%`A4HF~ zUSx^Ct^7mSpF7DzNUqv?kujU6byU=Sh{lDym9a182R{?*W3YZm>!YpnSn?bH zqVpA^V_P4x^c|Cqcapb|oVE2LW520&^_Qv_YU@mvtgE&17<%8f&SXrFNYCDje1_zq zts7aQXFn*fp>@^PiHzAD@&A+LH}t-3y~voIT{q7mez)}?OZ<`B#=oDcu4q0~SLA%x zkl&`d0qlaY-9P)Fe24QzBfs^1*49mgu}_KJ*KaG&W)DE}Q^&t+)e$Xu&kKHA7{C2} z`W$)|{kHb3UuFHFF`wmq`4Z>(hGHtwl(R3!xc3FWCCuOEx4!pp#czk6)^9@x>6P2c z*(b@fn9f77uipK)&{-JoM!k_}k?(%Ny9=R3zWeunchllU>|YsImd83?U$t)NHP0%H z-~KIp66Uk>tg20o>x-<#nF!(@NHFs^?K|AcWp=h=mEeZjK}^Vy}3iu{B5LcAUIzVbzj{KLnt8&WOKJKj+k&-^>y zQ5e^+c}HPf|CVO!KasSZ+RLU5~z*b#)g0gK;%E@jEQbw~g)R#&5-X({J6#kgfXf1VNleD;R(sY2V1C(+wM z&%n9<$IW$N2mFlqKdYWEJmQ>Fd~dqW2bz8(@9+lt30wLRN9i53-qgq8Vxd|-J<}0b z=zBlwvOJ;J_2_RW{oZuwM@;vOnC`RRLqB2Ak6s#&>5uTZxxV1s+!0v&DaAQ4J#&$F z);d3desOO1uFe}Sq5JQlyRfA@F`V8#={|?vC*TEgdj!`0OmXha@3=}`o#goUXUPX) z`z*JW<2m#{0WXl_Be1YrmL2r%;JHTWk3z23(I4p}=Xu8^`r|h8KZpL&n@8_(f&3qV z#XgeX5kAEE$R&DP>%i-5+FcK~)!X%Ym_z>)@B+Jc1QvGB&x}9OoTKd3_h)>R=bTL6 zp?v5q^>Z!fbLe^kUa(Jh1orBxcSB#5XCO!P^{xCd(WlnewVcnP>j`*)oF9Sj@z+*A zXO?kNo?kK_hVry}_qF{szaw(q)Unla&RMp{C-C6{IX^Ov`N8olDd!!3Zu-L?(w`Js z&nqt%JT!*hZ_bnR?~j}7!k_aqBi~IPxR!Iy_dY&>4;RS!QDS}GZ{>5Qzxj~*H}!}A zGJEwI8yzf~B%Or)eoA`RrF8%ruh$9Z&L5wcKgz?m^>V}cRXt1mzA>Mv&Kvs~p!ZxOb4#A8K$ou2`{FnE5z&(M`iy?0xGH>4;08`8nIl1If8 zMc&HK#`+)ZGva4kE`O`*fv!H*zD--7m-H{|@^2$=emCgcoOdtk*7Yuh9u}S3`n^f4 z<*hjweE{MaD)|!K&(H(H&;#@ZP`)blK+_L^e;@7x=4XZO%{ltQ-}AFV_vRc-&%Sl_ zs_5C)_oXbAJsk8dJFH(}yME7Dzrt9*OZ$oWnbD)ox%|R^6FuAdzoFh0@eE1Noz8l# z?NlM3{!P|rbN;@lGuXVN^O>SwTOT;|?D~c_evZ+6f5d*T(cjP567Bvs{kzdUA-7c9 z71zT5sPO~(#U-LAYWr2luiqWL5a%*Q-?rXx^cjP`dPeaxo-wbZem$Sj{d@h4?v3nc zjBDXPvQKe4`PQ@6cCC1u;3@h<82W_%ZK{(@ zebV%CyVJgI>%=LQ-frt5lb>Y|EYaW@dPeA8{C@WpXpnq4g)bk}A5QC}t)Kh?*#V>f zSv+I>o}N{5u*x&auUP8GS$5DoK!mciGc#mEV+|yp>#w zj!XSD)48&XMZd!L=S8ybN_{?5`X=f%_3em4em~c@ZF6tY7&`TYYhmbpav)p6SmVSR zTSAW?kRM9)N(kC4k$2NznZMZ7ea5qP`|4(x5J`%qFS$Vcs=p$k1Bl^^- zjx_aA)35GM``6WZYw;uMMfHwP&?mxJt4rzKzC+UY75e0Z`q*hbL>*~7OVaxZdgHy% zBE9iJ`ROHf+C~56vHH@f`YfS;2j$cBl73h#-z<7Wo#`s~maN}Op0ozm%`X@I5bON1 zrihaKce5atVdz2NAe2KguZ^#^sj634b62ScYa3VjZfXrF6vYD z?whP*p>@%tOZ2GF@A2rEYhmcBOXODQ@vUQgCt>K-x0!!A2xQ%VOFSctc;-X<;zgZn zJbSMDO|ScS_SCbN=-FfRtnmHM?q`)=_>0!ZYV9tiFM8otb+W76TXKDXTnj_4iJMhN zn{xfB`s+o#ta$td@+k}+e+;{SfP4x=KG!-=+|=F1v!*b^c7s5=ap?~;^o0}&)@i&Q(hxa8_%5j^9ub*{f?eF_2<%O z-rSgc^ge_;8(Z&thPrRp2lpX7dH-+TK_9|f%YB`fYvSDhkG=PYjXX>8JF}~b$?PPP znf0H=CX3C=Z1P8PSY&6htEQ()J+&=eYq7Vu>(T0Dj3tAXY#C$880(C)WVCh0TC!!y zSVK4n3*jIf1VK0m3*jIL3qcZug&+ySK)?w%_x(nEe)*rtOlGpGW~NZaw<3NonJ?nS zix)3`??o=P4&kVMYj1wlINU&e!Yl24G*35l&Un<`XOQ6?)GfSTUQfG&rJg_5_zvZv zXVA@%KXOgE<<~QGKF|@*ya?l zqoKUHa?t0jN5WW-$}_~mSdZSa9tCPW8uhd9y*}c$Wz6+Uh>S@`-u)^WS1l9u;;8Ys zggT1Xo8PkKrRMD?%MKs4zm{=YUVp;;o!aL$_nGmVz3$@m@}YhY z$T_8m&n*l4`0_r~;o$o*of8|$hhFdftj2LD4=SHFRVNMU3M2CUjAdq4x^8`9&}kB_E|54SND-V zT`O-Ye=+o)%6*@9zT>L%6*vN zpT|5d^XSU|m{txe+s){-F^^xbJ^cezWk~^ zZ?EsUE?g`Bt$D6|xBrqc)`2Va^{(>TGup#k`Rp0(;e*a&kDjxT-Hhh1Z{j`6)N{#N zPv*^6FZ_N*^Y(=IT|&pD>n9n98co;vUEWXOe_GO``L}Z4H}Us$bRT7pdqOAW?@0~b zGm-uu@}5iRShRNfCeF1RBc5(U3nNy&^87%^mh<|A_gcJL{B$p4@v;0F=iok#-`~-^ ze#pEQ(x+S(PT%CZ(0-G&aOOT;YhK7}pRnKF1K&&Ddr9Lmbskt&@|t_#TzT#2(LU;OP0&x$32Ao($!wmoy%8<(VxLaqk{DHSfHP@z8oXly6cWhV0*cVn4YD z4&|SgRrg}qd1T_TspqXN8|T|OYchQPdeOWuG0?T_U2E3VJgxgq9&itw>%8>@dp~C# z5XQPtKnueMUzxwsx-iw=Ez`8TtYspX?a=8!nxJG#GA>}hE8%lUu4{FG*7#Xag(1K%5!-<2Jh8*JZ|DVw*Atg^FsT= zx$?U9JMYWRrN{Sj9$Wrs=>0?5^?&y{LFxa$80Ck87XBB-vCgNPHu|}169p~&FXjD@ zsdjBy@kbNy=}pMyCTKFH!K3ywsCwm{VfA@Wv zdEV6be@)rC{~=}T1}%O62V^sC+5FtH1ugs!ec8evD>o_stU3(~ox>i@1E(MPPua&G z{%!X0hoGhZe@h=tyN`bEJ_arPx6#M307j`rhsSdGsB+FrD`7=kB|oyYE2@ z|2+CWZywoxr2E6a&+q)B{07o{{ z?+3^}Z#2(rTPV8!#xe>2rLlk({>zZ<@WRil=Z6=5?s@=03;$(bwkh^%8SoDi&v}pL zp`%Yf{Ojz~5C09;LUeg3rj|AbDScK>EeNCf9L%RKR5b$wWuX6{Kw^(evo->&*6Ia{|eda-G3CaK^LYi+s1{T z8~wamRFf9|qrPluuS>~$N1uN9KeJCi{KM>1(nVdg`&7U1bEBVEi#tgR|6%k=_W4fE zd)ppYx_=sdUFrTw^cA`=?Y^#D__@)~tHrIPg@01o<6L=j+vCa)|3`l35C0&)GwEVQ zw7>I{3qLpdd9{ER{)2MNz9L^M{FU0wR_{Y=#0{ShAN#%GgEz7MJ~;I`s`ZilIyr~0 zICmqAIP8$TY}}7=pIO&tI={`|JV!sm(9d=2AY7Ht9;$nA_5IE<{T!D1d84yG($7#{ zuO~~+&vW#{o#ju<`x&F>KS%S|LwO1Q<{A1ChJLPfuUm2cQ2xzh#lE&YcRh06>#BM% zWBNHR_2c?5($CPot0zn9=M4Q!y`SwqV^8JpCXJqt9y%|>cRWX5!qC@DapmYfNc2!1 zzslT$$(A0ZWUV%26u0z-3bE?7o^k>mWqo1!m-3)s5slWG5<=(wB;jK#L>D%BZDt>zU zW6}QRkmY|v7U2dpr*vQVU{x~SQr`~g;~{;7K23T>=+7Iok4e|#bE;ST)P2ys1!30w z@OO65pE2|of8*BnMPiY7`)N05=`ZjBwWrqGdqErho$II2LeneI#_Ur*ugB-4w>Ekc z`uSQLy+s{I>FqIkYooV7>8(Aew+?zUh77;3oRT52NR$jgONPL#Z58^}=d9n)kmWOE zfj&)oMVR_cx(;2B&q$J5i%Vi(>^i@L#D7X+4&JN1xlu)A(sNaX^*C;;{wXg>5 z{E$8#(nsjiq~$;8W72hK`H}2nmp%%kk6rr6+0e!*dKHFEgpH`rUHTlTK6lGLuT-i} zPcEKl&Q@OjmB8xJUka=pC0zkq_qK-GmHhl%RsQUA#?N@`nl-uPJKEoc4zBbe)asJ| zL#KP_6#6u2`9E};bRAlLFm?J8oeD#zFVX2s=2;h=3PY!1yVB`PbQ&m~zO+tnRaTC2 ztu+4X*Pm9J(8jd&)Vb$}b!W8Bjn;YaLF;_5ops))L+9Ar=jD8kd3WU+5;epI=ksUi z@H2D>eVVlVFFH(G{x@j(U!msnOLQds)vxQ)!L#V6F?Eo1GiXbYI{0^*ht`47Ixt!X z!3V8_!FJX`pSBLxu{+}&YY?@?`BW{BfC+4W2*hgZ%nn9JJQt- zy4pckNjJq`zP+qtFGl&N_^sAK|FnTFHqZt1Y0~oR=pt$Pb#!5rF0S%VLw2Hdc&dL| zk!~_hHl`gV-3+>KN6YbF_pl>l*inp&=29ZL4aG7+_u^SV*0l}Eb{E<1B3sf;@dst=`-w&Ti}wKD z=NRXROZbi4h2!+8v90{e)L6DAU9F?5b##?if+IESB#8h}H73VXRu z+^l$Ms&AK{8nUOW@)qwhUTS%tHrrl<-?&~l&R%Lh9#bG>3ig8{jt^KVOxXWR88EWHDN1qh$_0XqgAwS>`@H zhfn6W zL!Ky}_jMU|wNSoVc6I;Ocm6vA?^PGuZw;+$qx&t(N}foVvJU2+w11u=BI+n8} z^I~Ir+D*SZ()+Xy@6!VHKCQ$1v}58V;jexz9UkGogh3aXFIo}$`j`nmJn)@0_r zt>bKO?B$pEJbuc08ZBe+LCZMU&NBAt zS^b*ri1R4I)B*Gv=Tn5K1J0*F*W+_n*^&I&RJ)NsJ0@Ndrp^ZQ;MN)bjOWgWyFWvD z@uk?stp4nl?ML}2ormcVR|`{j&}W>75vJ}q4+C9~&q;R$b5Q8duNBNe&a@8Om-d6( z%)x>=7^pc|cn->s@%x0v)a774+`7b%@!Waw)TRAg^t4i4o*$bb?_~Sqyp1q*2z|!+ z8)52@^Ec4-_?&cjj1GmN!((*F?+iBz=BO~v1?-~3V{{lO9UfbU$~PV3w}h#~^h4hF z#ah7gCeJ7C_ujodDwk|~B>oqsE}_pj?;}iIa^45J9-osxJ4RQ+U;SEnsAK$>FyeRU zX3%|m>HD2`;jf6>JH+j0&_c_s^)6ynqiL;sL2KO;%3jW}7h%}T8TJzOiR7=sr)!-% z!#)CKA7{1?<)4o6Pr}p*{wV0aPW-zM}itIAh#}F-Ky~NC)TWAW%9uw+@tdI>xUEQwR8wpwWS9vP3-eHSy31@z4qJ z5ZHQ1JVd)n`8?>G&O62W7rN3q7`j|P<6M$3b<4RV=sM4}{-thTp<7|-_7%E)g>KK$ ztuS;Ob4D0-+gH}D_JOCwQNqYK9pit5{`*ay8~wb=b7Rkk^LyEq*BK90Pl=OG zldgcR$HYmrEBX1kS!0M;5Ai?5^&R5+GiYJzGU*lQI?uHpN|*9Kuh5k+;;B>ODPhoI^U}9Fj0)Y!`hx>>_;R^t_VoV!{2`)OATd zdeo0hU8fYsoD#mHv-Z&xN5JtRlO1vTT-*58V81V+roAJD_!>~8SY{sf$J!9>Jcms5-H`vaxUY{Pw z%RD2#6{e1$pA+v2{kawBI&?igr#RvnafC49h!f%nVb}q5GwAqB`pr7x2+3f7Vi}B< zA^Zzy8G@#rW$4pk2ebK+XT+Jplo9$lai=h4Ou7zTkI!9Y2l69R$6ay632}rlbwV5w zbYCa_UuB_jy@nroM%*Y&-9SGljufVDlCDG7<8#u@)Ev9k(johhADMbKQ}G6M^o*%1 z;*FsDx{A0#x-!~+jJBWPgVXmr^Vkn@=QHBa=g>myYz5kAx(;1e``8m6;zxvjzIKQo z;lBCU*~=aL$RU0tP=4glenj!c3Gs$7bws=obYDmB*q$;jc}Bb{OnZWUPW&oNdrGbw#K- z^Bj8+hCMvT9-ez2D}NGmM(fCP#y?Qw|J>uRxa5SmM3_1uE(yA?lf}n>U|;f#cvG0; z3jLh?y)ef$X{{5;Y?RDb-Gg|}xC>+NKJ^}i;*AsH4Poklcq3?Zu$27jJIISXBhD43 zZlRy^UO*2h!oC7!Utih2louI#zoc_G zC&Vd2|NY_jNy>}x+}O*DEH5t`vTIM6IPnhfKwjh-?*)XZOX%mkClIDCc~1bX^-O&E zpRce(;rM$d-CY}cuhh4*@IQ;cM+)CK{Y<3xzt70q3sXku=j8E)DIbj&@Zq$!VU8hFh?^s8~De*q1ucIZ|3Gv5* z`KQ;b*m+xgh!2Qfne0tS>X2$n7ONmoLS6aWL)2LLj1vdmz8+$G9mup`OtfrrNkdPpLe=5dOk1K8P`9Fb%;7A>$BE98M?os z^LfM*#)xBYHol0yPmiT^cI<%Y9q z_+$?Iy3x8aA7VVCIrTx*t9h4kjn)=rTE9_*pebw)L-5c4>Z%v(> zIeg;pTwR+veCKaN9UIlIjXdsG(IdWoO;hjd zD=+iT>h)<|c~Tq6?{d!NTKWDN&bt)ZNoPjfg`QI*(G2~_k$$!hf;^;o!t|XfBMkt(9CjQ z=nMSQUt&M?CHtu_*-wG3C+w$aS1F$dJ;#3PL#;#eC4NR2_n%Mme2niC#rY)t_vLwR^mE@k za{q?zA4%3YXD3;WmepukgAZEP!FHClPtUR6`cUf7e98R*Vd`%1UXpdk`8%FBxwm9o zuAR)WAN$bj(0rNa^;U$b)4}^o)+y)tc;4iGld-4Mef-!r_^~d2tcxE5TU+=s+EvQu zLC@;P7QOeVv#mpCPZUdb@jt@Q!I$_SVd{jq=ah55v~SYBNqeK)`<_zH*@1Jw(oy&s z$!e@hN5-0T5PZ-&8f<4B_3458N(&f#?NKf=@*{^v{k z7wZiF!}F&2sj~t9vlKg+)&DHQTba6d}*V*K~kKa{#LUHpnLb$}lU8Xa_qU)~VEoDsjA z5x;;f{g!IvlW12dp9g)@d7@bV&@K0O-*?@ZGvX#;AqMV8Mg14sDffLBts8SjJS7Y}gKh@xo-1CG zorV8VpN*E)Xjy{~TGqjKmbFjM>T6@Y!d|$q`>yN8oDnYxQzyhnLHBhsIIhG>EwAcp7&)8Kd|`y${FL` z1@~JE)two=_h6k7&j?dz_>;0uC(oPlysxvx?P6A+yTtw0)V-?a*j#mKM(;ydm&8TF z)FpnYtkcQ!W;{oi&xn(LLY(xRIO#cY64=sjrbnDayGr>y=+I@XgB=z4rk?;Mw1x8^zVjxhFH+~aip&Y;hTe}wK&llI2ge+}LHRGx_T#$GN> zIu3i4u8dXb*jSSegAZEAgYB&2K0S~pIv^ewrVgQBP}fH2&#ge$q3iLv33Y9r6Xyt1 z2l%n5Ap&y6W_J|C*zDH+3$Nk*e(G+M^sgO+iyon`FPv&MW{?+&PQBTOAYzo71o zFm*uP8|Zp`?kYP{-sq~jH_wTKgsC(9Sk&*d&hTSAZ&L5mxLmuqh95hi4vsK&2mOM& zIKtE&b#b8U@j2;k*>!QA6Hf_Km-w-$18QC3$9UePZm4lkmxKPv_GjAm7kqFAKQ`Ms zdO)2VVd@b21$A?TsYB}KK-c4Q(&5y5%32FXf3tAvy=CQ%o)cdQQ-}C1-Mfgjfagt~ zPptR36hAeWJ!anMfcRdRx`ci~T^(WSlDaz3_4wR`x;oGCU&4sbp_@U+U#e8!xxXSl zKj56v3uvKb)_NCqXEd#KFKDfMLfOmI`UUb=Q|lGzoY8aqlQ4Bc-YDq4PW->h;_Fo2 zA3flFkub*<`UQ1$ggLI%)q&PJl`?mK7VDqu>-h6)qrZPXRL@|B^F`0`E5g(Pd844w z!DqxnFNlW@@FNHK5wO)H9->{Pd>-^W$QvCH#|u-p&@ZT~BTU^=R|i__U+Q*hofP?> z(RvtD>!xVGcR(B^jJ(lv{EyK6Yx3L}c_W@T<9T2A{$E8pG*+d1V@InV!SD@?AS`WpaP*>-GcuE*{2Hgxg{!*nXJBzqSvKlR` z(Xs{~w5)^eENh>h)z>;+;ys5jWrTh~T^(V{NL?LhtyeSHi~P@2`_R7cfOtumIw3v^ zx~~)eZ?W+o$QvE-K0=r>L%*P|jxc4Wt`4-;m6Z7^|1)o0ode<=Vd{XmCg{EnB3{9- z*e)WD(YOa6obG?ZE@DpH_ZQ~S8lx;1^7 z-syb*AnMZeWnX+e<(EI`x-*tg?+1>)j5xmf^l`@XFQMT#pC(;{u7Is-Bie5~-3e?x z{lkm8{$ll|@uu?)@&_MeoteH){Xgq8>_|EdTDmh@r$*~Eo`cq@Y3tOrfm=`azhCj+ zd1-9={^V@F@xHwv7Ky=a^ehcO#cteQDg7 z{f_7dQ75La3;%Di@xCKnY<~a$TBk3K_df8tFn!q_2Q214RwVn~$hB8r8rN+HF&C!i z3*-kr$T~26-7IbwRq1B!`~MtvVQk%S-IspfJx>>#->d5TonQP#^xasW-G_Y;bzb_q zSbQAs&Folta(Ds`=!)v8NH{| zmo3IyvKcFqEojMLv~0#2v}H4G*^C>KE!OWg>-THpgC*Bd@i+M%5bLh`8tbh38uJ#u z`)b;Kjpv~IYTA8`b-2ws{JOUe&lYPet4_+)clgTZP5mvKzApT~>O$kDb-2ws{My)< zecmp+F3MHsvqs;^PrX~z*HNt33(Z@t*KOA8*S+<6HhXzjbx`KIE7aG`;`XEUy3Kn1 z+PF5m{oH8XlfI1M9~SZ#TG!jG>#yfr*S9|XWkr6=^-bKP_fzMjuZzXU`|$@}#{^kV zSfBS;ufK+d-`r!phOU6EPg$?`Sg-e3ufKjr`}_~GZb@IKVL#HTu_B!YE!`QdQ)3O< zIyG&b8aJfVh!ggR6TY5vpMRruNZdok7wU8P3&|MqgJcXEzGXCR8RI!<8BJTph%fet zFTU=@7qRcx{w}dd)bA$*eFy%BQFo-T3;(aW(0D7p*dxC9ntlEUU1tQ@yZDQJ{Kq%Y z@SFSi59kWm+Q5J8<3INCAKw_2|Jfss__`NI#N4=Y-~U0@8R_dP>_oaUR-~(-r4yrd zWvoG4SEj8iicp zSxj4&nE(6C|8IqIz%dY!z z)qZ32?)WVGjdT1&f!}xw4Zm67H=rwEtA*bv@EZkw<1Kz;AHVU+w0A z&7SJpbOvt7hILMP7GJ0FkG#P`^H_O_h@}7buRj{g+ExxKPXR7;1Ax;>kr;%U5maB{J+Kg!KVFo-aq)D>Q*45 z;%{LJ z;`a{m`0aaBV$E63R=1_T1Q6fD4v7Xk?9TTDB}MP@&B8fjQ_QV z8LAuM9%w(HKE?c&3`WZkGC z95s)xbuM6NU(fhnryiKruB+y8$GXt|UKq6-#S2`zzM>Yn=~RLYz0%?@!2mOs#*3{Yd7pAL+7_ofindPHuxb1!tTa5T;K|dIh@9^Lo@DyDHw3|A;vw|8a)@2$cUg8}J{J(b}ml zH2(4*yTk#njDvCiBKcg&c>c5KpD}#oIX?2-K2kP66z?hD7x_QQe2&b4lKFf6g%`dZ@cXGuRgO?-Hq_}Q0lqMgnMhcBJ}{@C`j zU|#tZx)p|QU!mJq=ytRYUCb%z_7%Dflx|-Q>o)9Zq4&s&D~8SuShvI#uX=gJ8FH(G z{$!E7v;4^`)*oTk!I3}VJb>Sshrd|L`2ovHJo2g+kIZNf3+9oh+JpSbI~#xblc942 zgZ^ZZeDDnZWN4gc^d~p9U%1x!fkpQVSFJ1ZxubqzmUZT)_8UXz28P}v5|3VIzi~+( zK{9xr`wVW(_obXi)_lL#d4cf%$au{>@zi)y^L>{1aVg{a8?gTviYMh4X4!w-RGcxs z|H!yO@rKvlTf`eWZx*!9n+1;571$@<6ngz%??MYB{)AqEu0z-3bMg~Y&$Un3kIZt; zT{^pw_+e;2qI*W8bp`f`Q-!Gu=q~3Dgznc0bRD`LpOe2BIUkI1GztA~_YsD9mv8-FLPySh$vO#yLBP>kWs3Q!mbwYfN|J2%E z@)t2Tw6E+k-hmqL?y|>Q_Zdd(7VMLU7N%^_UGmbxl#RSJwETX`_7d9`hHbyZwqIh~ zqqY6Q)+OspWDS(8FNbAaJU_8^!}$lg@_s7U(YZcZDen^>?A=|7RFq&Hr~co|^w( z+#mj3=6&+a!juiVOFdj+%0@k0X!-4w?W*}dG>%&LXPN)X$;SL&>U)bh?jM(R2NvBQ zO!fQPAB@iHS=NE2?frw&$7kp)W|Ok)g>Bz@1VTF?#8H}i1lIpTJhs0c?0SREmogIeIKenWLd`E zE6nCM$~p*(#(7i6ea5`OQpQ<+W2hd{9DZZ84#Gll-VNmqmf|-i)-9UNUdlQMi^h#p z*BQkRqkdwRb!RE|Gg`N3j=aHW9fXDA&r9+KOYt8I)Hf>YAlzvDIAh*mDdRn%4#Gn5 zq2~Qn`-Y+TamIbaQu2j5+w;EaAS@b}ez19j(en(m-g{7vWwZ{$LUHO%<`ooQELsO) z(LD3i@qd?jhSB#Ds&_bA2VtRn@eKasI(dg1xi4kA;9S&o>mV$;-?)i9gme}Ajiug) zvaUGibXgsQh4R&!|3m8vc?s$o_^yAPYxq#=AS}Aym>NIMn5S6EILjX_s}90V?>DZK zr+7i0;(&A3KZS)E7&ROesX`JV19dOS2rwiVrir?|ld4_BK{+H`^{eJH0 zg^?3Jg%8O2k{)V4oq*vZ}uooIN%)hPp`Nq zwb1W%G$f@0|km-sxcAy_0lc z?Nt}D1Nn;s&Qt&Nn)j*}`kgK7Y7<>;qATcA)6&&d=N%51Bf@xRH%lD`=`Qk}3;7Y{ zEe?n`erk;T<_viYou^yqce|{!d+6*QI)gqnEuEcWU&64jQ|#;Xl5-Gk?ClhL3zWT` zF5BLe&p06N_-XHab;vUP4En(N>VXwi!kiv1@`g+e-v{}{^$kv z5h(k3v26PosPnMU?;%^}4l;L;8T!<;WWFjd@&Y>$hF^)b_=@usH*!Av9n^tX=y#W` z>m78xgRY@ZO-t9Wu`glR*K6$S^(E&nVh&2zud%m4+1u*@dt1tRV8ua0_ey8amvnx@ zS=X|j)Iz^EW*u&#!%cJueQH{M={5E!?D?e|IVV0xJ&A>WFWEBRL*{$P41H?)D!Wmf z^v>)=anjJe)q#5=3;oWqb+C>O*3kj_$pHlpDt@GiIe>nerBl{-l zZ0dS8;XKGJ>)TTNjpCo7^Wg*cNN#kWCI2zBp0V#*ivLhtbFFjYwgb+CU+eddW8EQ^ zyJVj=H4c{lm?iFA%DB&Z7H;64`}^Kk4aLE;oFn<9^7!Ph=}glnl})hO`yDLuHQ%!D zf?xh_Rt>rWw(gOyIU-+kM84)*<9IyOyXShCYx2WRVtLQ?!K?4Pu9teZ_+0&~%I6YK z3o{;uK23T>XgQ32UWcxipF1K?BaF|#gcb&U04@C0ud5UCIM&sd=qk~=iv9c%c^&C0 zX!zEZY3s^pT^X$_wIgxYnfFy?M}b$Wt(%y!jv8Qlyk^J|GgFHI&{7K z+!6U3Vag8u68ZpIm~o0_-9*+z%NqF|$r||_$r?0#%WB%P#&giJnzpQw?>Qph^R4lb z#+CEH!jujAl=H#Dl#TPj(Dm|jN91XQDI4@l=mTh>_XLaQajcsbx=CD)9VlKoBCqr9 z$UXTs=Yxf*Bj{7k3ky?6oEL_!m!CT#KO;;XLBE7PfEI?1mY%W+JI(DGC0j&?`v_l2oD=$Ft3 z(8BQ1L+hPqfMv&Tfy?n*ikFVa1AS|}XTOE4+><+n7N)G+lY_4FTz(5XVZVLE{`)1g zFl0Y~7KWWnjgJ)?W@^IU!kov?qFAB@lI z_W(Vr>%!CtwDRAflcnc_q@%;XrnOh`5a{H~;}hTFKOLedOpay{t{g$TG#Pgs?xR5x(*t?b#2PtFy2xuIkex$PaSR|d!l6z-zwRSmOW_rmff^v zkLRFeH*MMfvwv4~=zZD};;W(f$+8kp2~*a=`0FY=nI->YyJ(@C#O2t<=zFt)d{7xD zT{pfOil3|_;wfS3XfXbgj;``sL-sODen>hyz;A)e@mr(s%dQn){V=kRW8J)Fd^Hq5 zh2P4*_k#FpDE^YJr>>jV$tzjc_$_cb_Br~V?FQnjq4+8M7P=$88j8QZ*ORaQd6Z1;aMXYy5bP}|5 z60~#?v@vz^`7h(Qg$uB4ykngNUph%_8`mtOK7Y$H79nHd`;4`a&9r4RS~jC)Gg`KI z4q7(TmMwnEs5tpP;?1VB1)$+&=U8 zY1}@4rg2m5^>`)m;GV`UW%@JOjb$=gCZlCCTBdjoS|-z$>CdFYR`JCzQYK?hrW~I( z<0JGF$&}**Etwdf_Aejkd9?uBM$7ap_>}@|8#O+kKhxj4U3sv-jB(MLUFH#)PqhHsM$7(1 z&Z`1!8$EtoIewj%bg}5X(pp$F7(XL2oHKsH7(eJ5^a`{wWjKs+sup0|Xc-QIUn#)0 zad2MUE$5YF()?=o$0g>?wdPe#GOaK!#-2=}_vSg{B8+i?mMlRVQ>J6)71%afrh<6| zwv8T_yZXH5)idAATy$LM^J~UI7~=q4gI<9)W}kl)`mPpW+vq;$xKtRQN{o-@(SC8^ zZ+gr-g~z(zYkG6*K%HE7Ao_#|CD`igl0wvCqcjCldJjRWh*_L^j0*7!VOe4a2q zN!MN{y&}xXn0imT zdUPK8trlS0=srIWex(50M$L;(?qeSBuSZ`WZzXO%dMNs`eU8?NC;lDsw5_MeXmp%x zbewE-oE*>%G2c)W_^D{7Tj-o6a1o+mbo#2R!3bf3LH z-6%d6y3ecH$NwIB1lvaUA@y1*z|gPkyIsHVCm(mJiJOU=57tD_u%CEX>U%5p-<7vt zUmF<9)e_-3_KD-Hjr2yN;K|3t{vTZ_s`Th!a_~hd6(bC<-*Ptt) z`;*DP zL;h+3wvFz?UkQGt0NcjZ33-c=__FayPd_=wkD23%%_6aOo>&3hx18hl4W)j5hTVW| zqx<$9b_2GJ1Ab=x6ZO@0^YG$NVvG(0tLKT$BC!Tt0o@0;-zc64%Rc;3=%HGGZKM0} zSA$^)Za?bJ?US?v^(F14V~oCFC*8!3vGgx%`tExd ze^0utyzK;5&l8(PVhy?i`n%nJL-X$Mm1A-8J$e8;Mt}FnI@B3mhX(yhU46NG@wcNd z?ZE1JVzWrBL07<5s~+v#m%rWb3wH5+V#gSL30iAnV#jE^aGuqAxQj1)hA&HODo(V| zs+}iRz*g(i;BOQUgxKWC&(Q!hJId|_1dwq&=uNFT~>=>g@L90)RVK1fsus)g>e>cWrH?Vr1*i`&sehs<;`n%2F zkS+h+{&&xzk4b*R@rmuCdGR;ti_v{Cx-UleC7y%si|Gy7_TTLHCC1%)h&;UXkaqE1 z(AI_w4pi`iXUX)FwVE zv8lDmzN@C+n+hKW`nyeUXzcnvYEeHi7;o4v)?@Bf-aZbjo+maHGv-`PtiX4la;|O& zdp4T>VOG0{_Zzm0wTr(MWAP}kdY;&nPd2{>T>)FIYVbGI=fBne?m6bipj`~c7xokN ziyuc{9tKv=6Pt>G%&$RLK=;Lb_vOd^zRYPCexG1Hq|d3my&t}(dY;&nKTIE$Sb^{F zP9L>C;G>omPkb74uk!X@VD&t)DSw!AHL(J})mjPuhQ_i#SFamS)Gq!;jKST&>Um;Q zKFItUbOmg+?gW2B`uiKbF<4eSv3k*ozBB`?=ZQ`E0rP9n70`V#-+k%y`+_~p8&9Oq zsl465M zbM=~jqI&VI{#NDfdSLZDv8lOdehs<;wpzD?zfr6Tdp>FoeN6HbWjwKR(TcvT1y;`! zo3elNYtR+2)w&h@jiM^-_2rs=;!gOS%G*x^tLKSLjeGj2#0q?Wcls#%s@`|cp@(Vl zM9#g++nlr2^TejcJLf8M8NT~s{zl=?_4+cOJ@n#<+ZWGc3|0fH=ZQ^?xA`^b3h3`P z-{1Yb|J`%wVbC5%t5^Vvl&p7`WqE9~M{VD&t)StQn=E1M&pUf#lH`` z_$07;p4ilPnO}phfbNU=8-=mgmuvcoO8A`0+r;X5VpD%ReH72(`@7Becc+ii{%DVL z3Bq6LSq<7~dIj2Ox?1Kl4ll`P9L|!@u-x(8ii;BY?x6ME`94DE=lbq^A5rEn4ll`H z98St#@Ll`JDU9!eu0gLr8&gi=i^EIu6^G<4rsgYp-<@*qryTmuloMLtnQ}r`PlzK9 zFNr4(C*>#jt}b#4Lr&-#^a`{wU*jrG6$F3#t?;e3uTzbok#Xyg2H4vy#Gdf)qQ-*8?Yk7b54Zkw&(fA z+57+UyExzRhVvc5{4UOSK(Fw8IqPk$qMy^f80bUD*L=hI3n6_#Ud~_eTz$wm?K#p7pE<7Ix^ZK5TPnnPL zx6%K+>*7<%YYoiXze)3@T<5Ys*R%h5`!Q`Dx`tkQ>&m?S7}Uq;I&mF+lzxBSeq6OL zv)vR+u$y9ucH{TDJsZ5H-_(7Ya^G>xzM~878}+X0n0-eV+@JP7)%}UTne*xx|JDWf zjqx|*d8Ny~Vt??xX!$qrSI1x%+&B7fuutfM`JIc1e{>9X!F^+V2l`9B>N`Z2 z?+?BHcd-r2e4YLd&dYLLuMPgqv^VuH{FV9_sQ#rMiLW*8=DUCW_j-%zaq@Zl-ro$p zROi)O&wnjLU!@=WbZ9(7KXdD=^k>)Y*Ce}pb75`u?e5J`KmWqHhpA|enBebD@o(jMj&tY&e^;L8ILF_``NBbcm3Ft*AJ0?#Tj}@Cp$q)o z34ZPzjPn`gxr|b_iyX%j@Ek0RmJNT09`l^VB)j`=#O}Tu=;uYw+Y|5{ER6n+@6jKq z{tx@R@A`IkdR2eZA6Cx6!Z@hM(%-EQ{>`*I^)KeJ`WLAFg};MefnN!Jd5)pfqwhdD z&j+4^h0!u5U4dT-{2Xc zL4B2W*U)%=Qn|I4_X-nB+3)Zj;5k?r{T)dw&mQe6!5_54M-$HdeShJ{Mgd><&w>v&+R3kPzmD2s^}=;N zZdGozb6%8U*RH#*{^-2%S)p@)x>p_Y->KZ)&V0ajaq-5! zzlXZFXnJeA6@PcN_47DGZuI9@x1oim*GlAh9l9<$^wRpnXxF-9^e3#_-_smRjC~|@ zO&FiKllS*q!l1X4UfcHlPJicC?k{z}D$d7%jib-IK4VcW;De0k(;I)@*8u+dI_eS25+JlyA|uUZ3*XNw81$?kkz}I=| zXb(2p$**tkpy!R$^T`*|Gkrb%dFof_@2o)^qi>HNrGAA$pC-N5?x5ce`u*8=w%^K8 zV&mw^4-wlG@WDm_zYQO3w3A=oeu942g}UdUdFH=!zno{!a^5|fST|F5Wy*Q?qqfGw zwq*aXQdwTxa@XYVttyTr!P!x*pf9AkxZN{s@3oAzL%o&5SXSk!ZzkDoE0HuQb; znS0W@bDZN1UEZT^;h&7r=kxSeYlZjY>a)=N>JjTX*f_d~+8OGzzEiS*jRJlfKGhE#&{diX^ww^9SG5BuE(+i$1aVdZp?-9+@9?q z_yv58zv&9tXeVE`%N+7tl3zV^%@EIpwZ0v2PrJ!IZQtLvH03?+Ry)Vt7=7lRXTRiRiRqkD@&!I2h$EMGz*EV_<(&yCk zDS8%`dLEu{ot~b9-)T*)FZFz|Bbl)Y?pt4WA6qrGL*K^iYtn0{tY5;( z`rW=nzwpQOoBaAVSa=P%#ys2KW}f-IsQqc1dDM>iu(}N`vRg{cq_io*U5_<9n}%=xk&jJ?xEd%$MFgfnZk-`Tx~zXkpp|sCH=&py(LO)|243?ifpZ z;Qbx<%YDxr-RAhWog9teOE6p3>WP3O+Z8+_ux4yz3vxnr% zuVTZt<$-wh*`oo!ntoG#4t@DvIekXY&V5_YRrH*+`ih?GJw3<#>aAa$o}P#29sIF* zmwfqE^n5S%y!TKty9b_cym#atx$l!_U-P|VtL=T4`+6JwCcSoA>N)jZJtB_+HjcK@ zFMRH=Gz$1__+X=*eEC)MyHV;_->-G+^9Rfy=fmwUpD;ht&R4ggh3@ZKiOd7V!8uPv z=lt-!cE=q?|1WeA`j<`^x8eKe(gEXkn{i88x?tRLJf#cfM`AzzgwMU1e*6hP?%^p; zxh($Nz0dqu)%TTso__zl)&7L>`-JgJdhPU9@Qpb?GGA9YO6zV+fy_-)!R zEB<_XmvK(Hwu=Y&Nl@nzGXA_B%>IgWyihm5-;}Bf$|GWiK8ax{i^+Z!=~%K zxG(9awu>5m06b6J+WsWE{vP&l=}EuAyi9i{5vQ=y@6O$u;&Rk6h=X*QXIXTT=Y-uqs)5-!UTha`GP6j?*99 z!S1|HI?h~W$b|DdTU3A*j9qh{3lX=vxh?R(|`|)$~$L%U(q|v;@ zeb;;Nobh_p`>qlFE@NF7h`?|Pu4mM6M zeqq}8=z|X`PD#G*O9vlpbdo>1ubb?T^!{Pudx%x(IQJpF_YLLyhZ}$IptVl#X(N{o zHcq8j$u;De0< zzV7V@A8d4zKY71YjwSI9?{^y~rGFWXkKo6Be62-bqr<*tXn#}wZStd>A8DMF`;pOn zD*U)_@4ubT8=Xn}k?Y1owwIgAn|rMA8(`z)ihOt6;}2QG4>dZI^4+$FGS3~~k$$A7 z&nx`&m_C=0pSB*~S6({x9R7-PzM6NJ_&4}bCm{9g&uQLG@Y~jNnMahRJ$tz#9v`!pNq)Nbw@2*cia30%|I5g)+D>jNuR6&N$a|6p?Y~!mKV}Ey zL5K38wu3ScI>`>Mh`Y!1xXk>e_4&T?mZ|S}kI=K%E8_4md(HOa>s^^=oTTq7;_oqi zPsF>FXW&G|n^i*SkydZ&63azA2wiUhm5HMjrp0 z%DY+j+D|$~>9BgM1aJxRLj(@JI7oQHRLiL4K>Vto7@C<+VZw z*dO_&-ug8fZZ^B<`Ov8RO zKQD=U=3VdZ^!KS_cC(!IZt}ja%rn`qy~q3#>zVax`}97}7CU}U1^&$I+CW}uOs~sW z*XGSD_2=Pm{JhNdZ*;#``uEZO9{jQOd$NDOULMJIb%Xh%al7fw$MAEb`J-{Wxnv(Q zkT)8)o6&iT=Js3%9*Nk1M+K5>xt=;?<#m+eFJE|2;IM(5#1 z>ld^>ptSLDAQu`hV$wXw{b_WBz7QD0N9)O&Cp zi0In}dKJ>w)aMp@71Gy{xDLNcornt9I4t)Sqj6pG>yN-^_oP?)NL`2~bs=0YBJ>H} z+Crbg=wlas?xRm(_HoodlXv5udIfA8UXhP`L|*Qh&j(yLE|h=XAs=^_bE`tjwYmc> zG`&_L&+E{2(IM|$&atixoMWYag>;tV3SHK>kj`Qpjp!`Lb)Rt+qO*}a4S7B4U`S^f zHypwr^Yi5O9)Zt%j@9#}%fXe#aPn{fhBDWPFA6btLb@Iy*ML zSFFE}Scjio=lrV2mHgl#=T%GmigT+w`JQj}F6UH*IquLqNw1a2^Ez~0bm-wO=T=t+ z&aG0%L%Pgyhn7xroWoDaPYTgxj{70wE<~3j>mvIx>PL9oBcFI!?$bu|1nkoufzNzy z)#F~~88zTF@~4l$XV*EO>Ul)|^e*R6g*i{4cQ}_?BG2p4 zbR3W-zJUN$ocCR;{!}|&LpJVgnihb#$d|rR% zbE%#uWggbHm*-E7?n@2Yn0>9qylHi6jBC*m=@W;lL_;DnT zy!QTNC;Pd5$obO}zv3L~4)43~a_&@^;}5;V`O^}4UWcxW4*lHCb9b#3V>wqihk8jJ z8R;^{+Zcc2P14dScECB*@qLhdhjcwQpRd?IkHwSzzOt|B_nPv5?n@0nXpFvfIDab4 zzH%<|jPs{L^T)@ZefZe;!yg-e;>c<7TBpteGGjW=_`8W-02(6EuL}iR7hV( z)}Jz-WS!})KV>{Qy8cXwC#hqj8Z+o~xXw+h!+BF->XY-PXQf^_Z%UrKyuaJacb9d^ zzyG^&`EJ>-_gAaf@#+q=&=#^*BG2p4b_`WU6X#6daL)9s952q9UY0kf9!~{q^x{ME>EzFQ?|sMO!!mDf|Ht`K>hRQ{jcHSy zFYR!?^bO}r&p2NyOq;qS|4tn}?NK6*&^|iz@|We`7mg3fzaMg*w8XDCSGvQw(z~1^ z6?&Xkcc6ti?jXFs4(CdR@i*RZuJnv^r9yN$vfm>P9NX`~ zA3HZeTsRgV&XC6+_gCq2$Ng3C>qBwfb@yx5c)X*#q4+KS_DCH2zT&PsiYIjL>@Md- zg=v4#JDe9Sk>_>jy6Ch&&W)}NoEz18c{B0S40-%9yO}S}nVc^h$m8#j$3NtJXo+8O zPIQNJqIWqLDonjX?{H4EM4s27>!MSyxqob}7%#I+;*EvlkQws$V|tw@epqrIe=P2v zH$Ip&50{fixPF{W9{(=qK80yF(8S4WCGxxuT^F5p!#U8Efpeha@vHV96XVz9kL^b< z^W!t*@yG3E4nIDa$4tLG>{t5x>fra|#hx6&AI;;B?W^^-Rfp(F)4VJG*=zps}0_t3#F|5@rFu+i;y|4r&3`KnXq=Z$0ds#g{5!Nz{_>zm}wJLJuG zy+3fT{2kwa_wVC75*yv)A52$OzbyD*;~2i`m<1nf>?gmz$v&ksn(vP9&{<)R<@bS& zZl~+mTHld;uyG7ubj z_hI+HrmV?VeW~Cd!&hCioD=Z(lV9H?FWez7yj$jlQ=k70eHu0IzBgK*!3Q<(k}o|5 zAJn`HzUE!T^YzX(^SQg^bC1dAmiUT%?ryHft14&_`!r$d8G1MAwGw$=hpvlGJ(JH} zE%Ujl=T_M3&wpvuy!+w5qvzmD&%r;2FFgkz)Vz!Kns?#%>K*d1yJa3W^&B=%9X`#w z^uy9`@IlSHOUE-koq%n7zUu zvsc!+vGuOZ>rK)(ar2nI;g9K?b#Cf1BB_?q8R`BUs+Uu5Yp4?dN(od7m}qTmt7NwoizQO8lC*Xpgw)A#so}>|_sG81u43 zp4Xx4qQg!e5*K|s5EoIWumU#Db3L2)JZXK4b#R|`aBm7tR>M#ZUkn^UWefdUo)M4t!YSckgpVEHLbA2i6!@AyJ*wq#1 zJL_AlOZ#4zA~*93`V@CO)u%x9DNub1RG)+%HO-^44k6e$XPuh!{7`+1^-Hk{eVJE3 z%9|)}yGPvhkT^@2_6EI2+*Kma>(F)4X>Y_`pAN)b=d6ohHqZh`Yx0$+|hFPxxc?p;$+^!2N5kr+dU*C&XPPeofr9N8I(0I7^s%hTbFY zDv{@P=(_0CGjZ3a196x18|x>id7bO+W%(=4iH+X7(7cY%)%RI%_XgswF+HbkkH4pZ zKc?s8YhK5ksP8XUA4ats<2_)27Bi5NWuXNirEG56{Iqnh1JtS@urd>hr5yzFt^Ez~0blMeh+@}L^ zob*_i*HZ1&K+WH-+xq@o@Il{048HUke9-qY%&%{O`}ag!pZ<-E==*?={(08#lbzY8 zdfhPEzKnhk9DLnF2)^_he9(0^Onco3)VlE(zrJq%{Fe0_@01eVSK_-9;=2;RCcfJv zzI#YKC(Lnx-Xp#%k>_>jy67AS;=4}=;ydX-&Q5|2tzZ7_VUI(ewM_K=y5LLy!3SM0 z!+ft_fm*-*B*ww@n?tstafn)(8V94-C!@z9_@M5$CSUpwKB)Vx!T0)PeqHO+-_bbC z5htlHVc&y&`sE+$Z`lrwUPpeMeM-Lc5d0JPk~`XivcqUEJ51C%^5e8azC-WrmR9%m zJLM(zNee2VeDkj1^FI34_1beQVYKIdk1Q*L`)pSdH;E`MC1lb%{5A z|Ju6!J?S~oHtu?_rsuEw`WuulhiyD`2CY{K@yiHO|jn7th*s zpO;nl^?T~RCN_>b)P04oIy^qpYyTegU{!x7&iI0=OA!3AI$9^&(ldQsTHROH0oC*Q z3-?KNw2ZD>XH<-neAUqkzUq_(A9Nip)5CSNuD@iCnWCwSoc+Pi2bo@EN9)<$Jjx+kB}Yw#?*ZstWTJ+;D=lH^-KI6@P>to$l`_+7B)vNn@55HRG=WP$1yZzwn zzP9@DDs^5z+`6yL0l)g2Quoz$BprX=RQ(CtTGn~}aO=KqFh2&)<-X=zt}ynX(5g|I z=W>7J>b{nBGv8Nz4BJ80c{QTb+}A_D|GKa1*ulU#-4Cwr>l*%0x#h7s;nUxXRLANZ z@}6Y$cL6^86h9WF-7K9oZh#emU2oMeF%*eTtvr{I2S^dLO<@UDwqQ zy6$UPk96Q1@0eXpe-ARQSKf<^)X$%sH!aWcD*v#_n4YJF?3pzlB{5ockTOtMGH< z`sIE7m|x_5{CFKft%=gty-%juOHZz_Bgqx#5%k`|zS{F8_*d3_t@Q2XvN{|e>%O}7 zZPw5DSobyF>qR`E_j<Z`mN*YJ^g9&S&7bQ$%8ljC75nHtVfYQO zUpH^mpKvZ}?EV1fo`!zsOy^NP)_ooLJ+jnu_$%o-{8;Z?6@IMe-#CZGy@r0BBJ#*X z`DE+4%p=Elq<1j|CbSm zd%oRNUUiZka4w1QA3c90-;(PbsQb3D{tf>QmhGU-gHE!8E8^}kJx-3huNN0tpYJPg zImuqHh{MP1by6H|eV2L0N&3Db{vOl!r1<;F`%z^qmiE!}ADjaovm4F`z1 z_SZZ3ocryscbD9QA6oCq`vV^To65Uc_aE!NZr}Lt8ClQN`}EOZ-Sj+@{n~rXFA=X> zua4h8)_ujku2uJ(eO)hZz9Nq_wtg=&k7T>L!Tiy<-SqM-6Z1#o@euLn;JFsZLj!rE zvH7?RKYnFA)RQCjS^an@`Qz~ra`&vUeNFQFV|g#)wz2qa()&N&TaVR8gg=%)FFclJ#GAev*8!vGYgC--8b}_TV4F2OEd*yYRtA zH~GD~K3mtU7yI6RugyBUMg7;r#{R9W7rXP5_>H?QveLGr=I&fVni!3P_A@DJgGjYIfd_+X=({9awatd=WuKEchKCY2YGH4 zRG;!}p2jbH11P_ge2ri5LHVWRYy5%_$}c5f;}?8Teku69dWTVavOI6+mhRJ|Jhuck z_CL*aQ~HVb{Gj|&@}-~PgYrwsmwti|$}c5f`UyTLzZ87elX4I0Tla)zUpBM<`-zSH zTFN!1pU24`(+~VH{lFj7Px9rL(9<>R7v9+Kmw9|X%lHLs?60O?H7*e!gYrko*SG{9 zls`(o#wGZm{892XF2M)okAmN;XSg-`J7w;ZYd(1`OKj}##Xd?tGWk6_{-flNjT8K_ zae_ZKPRSpQldgTv_`UrenRWMh&Ihoex_;KB*O%e>c39eY@_X|Q{@8qjKQ`ZzKOQfY z=aSv0XN+fJW51QQF*cs<Cc3yN5q! z_wdK;KKT>lrQ+##uKia58^wCo3f%ok^1;UL82&kYuyLOJ`V;O4 zJ-JT3$8@q?eZ^H*0ZTQFV!NxKCbNFE6Jo)t}oCADvo%+u! zmMO>S3&!h-v6Sg7ea|j$rvZqKMUM0=jToRo`-Gv#V;#Tp4;X8E9>65uU~!VcUKj# zQQXa1xf;*lgYvt{*LVgWl;2Ih#xwY!{BH6!p1}v@cY`m#8*57a$#vpEjjMjIC&p91 z9}>7*j_dpSeG%*ORj#LCqiEz>uJMj_6O`XgzQ#NFp!{y~HQvDo<#&^>@eV#HzZ-n{ zUC?o)#{HOaKW5x_%W*I7C%Ugc$#?{86u*~oq{iF&tbp>n$=7%XAC%uszQ#NFp!{y~ zHQvDo<#&TGzY8u_U;EA}XagYv(@m;VKwFVi@jG7hJVL)%#P@u#VuBC%0C%`qO+Kk?m|{^5`5AO4vB zi3gvMKMR|g_q~DUT^GG~(ffWm?{4b%T0EY=mv#?oJbD;P_1h1D`t1i{{2qnokH(iesJG7<-&i*tvvF^<{N0!mZ~XUT ztW)k4f{o&!oGYXAIr-!BIr-!BIr-!BIrzizl*a#@@jqw$V_gm149x4_XZ#Zfd{6Rw zewBRE_`FWr9vgq!kBvY1r=d8h%!_M0^?P>qIJfotT7j`%mOhB}q)2QOlN+C=T%Ry!|N4!snIy)6?%PzUSr*IA01zweHXRj!N%@)zc5|D|6Q&lyX{-Lrbf?Pm3#x3o{#j`?;6)IK8S+k>+r z-c8*8s$0bP92$GFvtK(4bZqT?oPOIXY^1LJn_E_kd|m+?1?{$Jr zcAK>8&<<>LXs7o6JN1s+)g;pzG8yGVP7lJyCCeYX-R(o8|L1Z1G5dr>$G+Y_)bC>x zyWW3W7TSTf$!NDtyMlI`v;!NPv|Fd$Cha=30~;OMseQ`gc9vyqd^D$37w7pt<5Ms` z#-2>MF75s}u(7+D`neD8uBYCMd|m+?1<$v^f_9s<0~?z>Uk5j7*P$KQ=#}6G?ub_gMUhF?0OI3@d0;hj1TP!+QnThwcDm$LAy=bfsIX`uY;Sk z>(CBt#Bb5*@0IO4Za43}VaayPc!It8_M9oX39`8v2syAJKZMyGrZcHBO{wp09(Ov>O}G@;TUXyM_E_&dZ}c#&L^rH1=d? zUVg*8B=)@zmisS_U#w4{{ASwxHdwIl()dL?P<}Jpt%IAi)A&U@P<}JpmF+ujH(_2L z?lLd8{y4|c*pp>s9EnZugS*~8+ixy;YusnK*3+Gu(s=$briH)an!Uk5j7H)apzbFkxfOPJUD z{=E?S@2~D+H^zt3*(2=c5jy)((6!=6=q%|b^oDRiXE`r-OMj4gnfiTjx7xFtVSm8$ zZLpx-m_Ok8I=D%@F@I1#2Rm*zI)~)fzu3Yb+?Bm}oi;v_4(_9a`{-aF9qglnq?<+3 z8^Qq{jMxov>{uK<>PKid7Dv;rx4zSEERLpKZ+)lTNE|)id&Vj2d&j?fVf$IfevI-v z_whTzU;X;FbeX?nY5di%tCiYu?uU(jUMoIFx1Y!JCeMw2-sHK_pWle*cjT}9x!znI z@mIvpWAXc_zoOk({5~2_&~7Y#AB`tyHyXc>#uM#46CmBm-fVY9`K$Z*D`D!c5xQx$ z8XvSK5v3 z7e?)scC+pmp80nGwd(%^8FC)lz;Fi z8<*~fXs5hGv@7>FWBVc6Den;NChmtu*NlO<>+=WL-wO6;l>fVj{}YA|@8kc3sna{? z^p5CTmD&;hP#8Kr#vclUF7o$6YeKhg(%$IjP1+lSrhSw48_`}mk9O9*|6Wh`_|3Dx z%lBdV+<6b@O`1{tm z|E_iJzgOz~$00*Sc^Y$+XUl!y*nW|A%Fjf*OZSVkQ+_7eZSwcV_KUPrekR&=ZfL*w z^e*$_HuJ(LzkCnBEQ~R^k6#u>TyTV67Ur1XmyhwwJa6*6DZb?}MqCijt@A;@O#Y^q zH)5YSwm%)s8_{lTe>$2sqTSg3bTn@?_Aj zgkKh>?(oaU_+_3qdEOL1b%$S$=hoezUuJ#YO;jE+=lln;A6{afYTLh)VxRH}_G)}A zo#VHKsdN1Hefw?2u}Ao6Vd@+|eQZBnm7mV%Mn7+gpE}Ry8}ZyaAN0q>liELpU)*Ki z`=RW+N8{Mf8rbV6*sF0#~C#=>&fyOr79= zj_hBo6Z{SIM$kQ-gnyAv@G~FSet9(Rd+gs?c`BLlBf^v!zj0*0VVUt0&>KPbWFE1D z4{4vfgnZs3-^uF9`kS>MedynJ>GgeNoGy!x@%OzvJne4yeah1EXAkaZyc8EdX1^#5 zn?7YfC=8p1ZbEMa-P6_RJdXUT-diUQynk^#(SMJ2S$s?ULB4+4`ySDgM=wN z`<_$s>%x>h>5ZU!vX9Pd#+x{C;JwUnex2tN-pdTXZ=>CW_cFup+i155_TI}3zS~!R z{q83kE5(D4*}n)=X7($mnLlp|Q|6>Mf=1>&&WC`FJq z-yw`xndj*rw9nwV(a+OgC{_-BPp5g_WsmbNx{DX*T^S)k^SV!zHgsG!Je_|c6 zzuZu-$g}K`?*JQn zc;`vkXh<01F0~=dB-vGD%fAZdEIj$r*_e6IWNHodJM3Y4k1wnw& zK&PODQh-u0Qe{f=E;4tP8~Jp5mHK(~YroGrU?a5+|=BOj{JN9Ga!g)n(E)KBIS z{)RAlG}Kq-5&j3`slUu4|GbkY?3HukDd*JZyamsx(^)|W&Q^?{f-C5bp#x`e_EdUl z4&5WUiqWBe3cLD$G1 z<8$yBx<>xGad7z`z^GeXzC1-o;{lAExD zK<$S~cM7hkPmE_@ubdsB(1GOKrHo@gs9n+b`NWheQYhkC@{Jk%Th=AoYOH*eDq z*sX8DbLx*8{lNGsxPq?H4~);jW9SoRXp6Bu0e`~cLW8XLaMJ*4|HU32{570IKMJ*4|?c`r*evA69Ux)|z z8^RxdI;iTqezAA3#@`TnysYmsZ}2x5&-yOq(BtPluX3O4*E{xo<6qSKGjxrAQSZ;t zHU34tKSS5~BcuL>uL1!L&++XH>hq@JTHtAk+bZpzOn@+OkQqAtd~MGl4L-Qio}D8l3|av60l<}Gp= z^<3sHeu*%7i=0AV)_<9|_$kn5U5t6__nNmJ?|4gnisCIHN9Xtljei22;w?e9g0AsT zpi{gh=#HUl{1fODZwb03bRGSp_$Qu=Vf~Be0=bU5FwX`4i!kQ`y&3f`o(tqU>byJ` z#BGE*7sxgAWnGx(f;bNJ^Qf2cT=>17i=jVM$8+#U8h@yc=Rnu^Lv=g{y2c-><2lfE z{?n*Gyxgvr~a&-xkb5ab&A1@uPK z&!e8kyfvM9`^VycJyun7^fzEUkK`v~-|Bl5nO^+cYdq&NQfljb7mJtwS>824}dvH9uRM~ZVl<}K?X z>W<9YVI7-!%RUn4fXrLuKkAUoTjW3L*34V>5$MahCG$4vv(C-DHNAQ3_gV*SlXLv} zClXJ1SY1=?2Z;B@xgpO5avk+fBX#q|IU>&mavk+gBX#q|xgzfm$TjqR-F(n_4m^G@ z*HQlCiIdYQg>DshUfet>z4-j8!d=IyYqYNS3s&I?JN;~bHBi(E&Ym3ce#1H?<{ z^W2eni(EtB*T)B)dAm)npHf`pbK{q_AKfyhfhkk0O3j+w`hu3$XvbMweQ?|BsdpJK}C z2TuB*bv$m$|E%M2Q~qZij~n+tA1yvx#P7WJ@k6^h_e1ooFl;`~WA^7Y3p?DrN6&KJ zsEqGyYoridCs8ooNU#zlXi8o{LQw!T+orfnas=8_H_~W zGjE6XwdEK+D@@*EPjg_GQ~jrzWK5GjEAQL_E&CMQ>tnI{%iu&GVjR{LXt+(i@Yv z#2Mnf=IualUQnM0x`%Ak1-`>hy`bLj8amKDWrI%rxRSTfoj?c9be=xw4xu}NZl``- zqj{Fpn?;_^JRZj1q!Y-)8S_k5+LZ?pACpdC+?Z#wusa#ge4XWSV0T^+&jn`}xL z7u4}xLkG^T8SnahT|;*Q9XRXG%^yO40^Lr1z-nGeZx(qv^Jo|kGmp@lk%zO~p*JI5 zWgek78872m(wi}E9u4fy3+z8|c0qmKJMe-!zH8{f*)`)`|FCQ5PM`y4UB9qH=ue<) z`_`mfcJ$F-?6Km(=It<#XWpVOyYrOf;heuq`9nWOoXNb!j%2)yLz%Z8H*be}ki7l{ ze)iDjq183KacYVpOp*w*NoOS2l51~JSuIY=^jf2s*O!8OQkE&rS@^R+T zFy3VOL(fG%&GLtyi};dxl;g%+qv$opGv8(&4fRe-a{nBdvr5d>+&*g7LKSf?jbz?kd zo=SCN!@N|Zhp5YY2VPLe*T@0m-TClq=o&eI?hrhIu91Uo9E^Ty^|y9?IO=+o=i&i+ zrOP7~{_At`1ieC@r}S5!i$^)$=Yit)RdX@S`=C$udcA@@{tmpL{;$z1jCbd{uc2%7 z3Ur6y33QEK>Bhn6w`N{d_Eq7Rnn&oBF0T`QqT|)JkIW!*hdj7XaoF8Of3-)nZwi0VJW6}T82e1& z&siQk-t#E(2>1E~zpC-qYC8qG#$T)L6zCd%4LbCS`xz&X!02Zzd8qA_!awu34*f67 z19nLGWByh@_upE{1Ab29Kh^R8UE@F1@&H}qKh^Tk`Bz}{JFaCv_L;OJ3V+GpJoJzJ z%|n04-#qk#*!O!oV#*JKu3zs{eo$>kK-c&|(Dimi=O=;D54rwk*%5``<8K}MIsVps z&OE)pb?DDf52!ehXMEb9flhItpqun(pi>+u=sN$T@n@jh+8?a`)`1;S)FEn*Ec}x? z->5w@{0#4z)SDD_hT0<;&pf$uw=wS8&7prnU7zAKkw={LPoPtrCg>*p6X+DD3A#!D z1iG#Lyv(c0jwtF0&7+}zQs)iLBkYLqKk7W8d4wIoc;*GoqoEx^eV*biDNpzZjei22 z;w>pp&^7)Ebc(m6JVDp^C(v!}zx4=qL{S&0wH9@GlB=lW(^}&>`(A0S#k2qCwj=8J z3VuZ6pVaXc=o5yG&Uiu{(p zb(-&%BibR48_$@Gn@61uanfyZ z^PnS6x-D)VbocR${JUM8y|YVeJLGZW85u))5_V~AgMYDj2J?%(If#EpzT-Zgk#r;R z?=mmKdq(2lL3ba|V1DcP_pl!3GvgUM^?|Z4wqyOvuJ^3%R44OUdOz!0=A73SI`-eh zJ(gLQav+S{KpppBe8G4V_lWT-?y*xJsNiY#srpnM%Ng}4;N<;nJJq|4#69Mm^A;wL zs<_9JIzD0YsET_qzF@qGd&GDZ_t>cqRKx)CzPC@+qwIPw+)i~XQ+h>tkvZoah4xbp zmek`3!*Ahv!Sg(x@$q-+=QI}gn6NkK`>kHO4uUwmNLnlKYbtI2yN6e}F z5GId^XDrE!2$M(oJdfv|N0}Gt>u{-`=*~$;f2H72()IoebakBv{ci93-a_{V?Czbz z9&z3+;;5tXR>?zcN6e{P6Xv%P&sY-A5aze$^E{sWZ;g25UM~;WfyFuGF?oQlwm%zr zfUdr0ppggYin!@#?K7D_nNx=$Ox_UBSQ5_=CU5e29?v~*vTlO@E93RpDF4Obj-8U7x!`oA%by(XJzsw#d*T;+&sT|yZ^8G*SKEzA?@E_j~DbI+4X4`A;VbOT989)PZ}U(J(Yp5!;?g=9W> z5hz|HzBkUq3+xAB@&bEd>G*_sL0*LCc|7;LsN{pV=P?+4md4~`B0k#42XuAc{6;>Y zE9x{pS5H`uZjqzJ#kb&lW6y(1A5gz=3`QTOF@3;zU1!ng1L*2|>l%FkT~UuwuMx|` zE%K14Z$ci7{Wn$fN*uH3H#;`36Yi0aq%tq-q`b^ zTJOXoi+)UF>wO|_*{pZy>iglE^$uN8U!nOe_I=OqN9H$C-^BbH`){h|m$+cjcWG>X zp{wg7n)!vUzPGKJ-?4aPEwf#mK=XCOd|fk7-+>>>`HFqF-=DF^i#|zX>v76%Cr-$^ zoV@S3S&zK0v-6{Fy#6-L*A4S^%{+Yvei+Ud^#oh{8u^=``&7My{C-Qq9yoc=8TAl* zTk9g~ZyN5y%-4!}8eL!H|F`xNif_ZNrk-G`K0$tW#NEKjd&H<;(6s5jW#T6gdm`{LiCHxn1%g71x;jv+7K_d~{B zE&AsK4|4zP&t**6$-J-kpQr3(==$>;yV%Lrn}3VmOw>1_H;vsl)qXN|>65UBA8}v2 zV%;uTw|C&i_|@LwOX76Guo*9i%L&6~k8{@us zK|D^FydeH|LElB8zkI>7+CA#I=S8&-W5@of*w5_K&ylA^?9<{!$kQ|Nj`*A~c}INi zg7};;d6&=gcxgvkrycNfI(gvkryck$fwqLQPh zWv@T1?m%|lHT%mI`^pFK&M5s;_w#y5Tu&H18R~vr7sUC59xv~k*O^PkjUJzO{kG!g zJ&!BB^~C&u+D^G|pcUS1$3-oQ+^Oj%qZc&%6Gof`~te3=9g|2OC z?vt+jVqFk-6-F&oQMWF=T=&I-egS>c7c0j5Iji+`=9U`&qp3Gbx{)}2`jzBiy14sD zoIdD?-;CFh$giyJ%oY0j0zLg6yg^?V_3q|9`nv0z^^!QQFnN#uj()g0pIi6Mx**Og zOx~l

KrW#?9-9Yl&=1SzwG)(YvinR^jxz~ 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Slider.nbs b/data/phones/songs/Slider.nbs new file mode 100644 index 0000000000000000000000000000000000000000..8c1022cf4e10687bfa4cbc135d8b0b6607f8c65c GIT binary patch literal 25353 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 literal 0 HcmV?d00001 diff --git a/data/phones/songs/Smells Like Teen Spirit.nbs b/data/phones/songs/Smells Like Teen Spirit.nbs new file mode 100644 index 0000000000000000000000000000000000000000..341590975403ea0c3837213de6c048f94c6cce9f GIT binary patch literal 46957 zcmeHQ&5k5T5w4z|o>?1djbw|Jg)xo62CT&hnZnNj&uz0*BAyM$L(PIpFTM#g_+MpX~P?uY-mw;vu1!|>%dSJ&6y?>~R? z_0|4QS6AQezx?jWvnS7gfUd6|U0?m}n}1$E`TO^m`1r+>Xa9Kg?W6bb=byj3e){O~ z)#Ls1r~5CSKEK-k@%rgkU+@3&^x5^}|DFwRp8p#_AKf2@e{F{05BUGD_^kgn!`U$G zA3q)jbo@BB?}T<3wvE2-IL;Mj#r*G&^UY)8_aDafwEnvz+*ue?>Ej%&z7LW)ejexN z`qmM`2wxnZ;)%6LJ2O7g7`?;hCt)trAL+h(7}xn_Z2A4! zuzf3hKA&*fhIyJ}%5*Nzza6%3e}?(7PUI=<*R)oU?;Y{Eocj6Q#{nnoonuGaGR~jE z0naFxyWhnf#@ip{sjw|7g@oy)zZOUhbw#_jquGm)- zwu0Yevs|WSziCTcrlDUInQ@s0ZBpGccA{zDmo#-d9c;JT=^gF&Qa(KP2tKspA77fC zR(uy?6U7|J=u&@5nGSHhn8U=&%{b!~hoy{PAVv=QKGTb_XSZ)NTr!^w^bX@86EUZs z#{-7*2*#`tW9;JktNYBl*|;>0uI!UCyQa^qlZ}h(P*y5)t?o1HXk0v}m}y&C$N3iX zCeg>x^Ofh@cDP`^i+y$V4zSD_1$(Ieoevkxhu4fZbfz9+Jn60R$IwSRr&*WlS-jWk zC&sntMO_38TkXlLFBtLY=z4n~|Aj}%#%H$j1!N=Rt)asy`Omp4^cVlLeILO8Y;Hpn z@wT;Z!SGBCIKFKDx8%9Yf2&7^9@+R?B8~C2m6YjU4BG&m!I(-C6Q;BpQw{Y&)oi$>EiY$ zo>g`H#=-J4%ijj~>N+FiIb`O`dT@RJTAn|#3G`8ob>y$6bGT(Fj4 zmz;4Qa_^<_fe(3Y#bNhf&=um5``@+o3giuCC-Nr7Z{_iZH%-_QZ^FISZPqS;#+2s< zkD|VnYacXz$s^KDbKl_pm-8@Ba@`0N*wMDTZiKvpc3^Q2EFB6tVz3)EIQa(9v{;h{ z8dL9Ypd0cL#(q(z*@wArsvA5*a@}yvw)rz{`sQUx=8|8e(#I&AoAf`|p zmeL0DL!a*X2I*6asgx5;bx$TI^nBw4&j`rwH)7eCSCpSI(D-GZ_j=^wI+F?aT=`i8 z&wQpcu;5e8Sx+;^*SyH}r{_YDceLi~$v<-v;K?&2GcWIj=jUSPIxN^LJu|{w8lP#$ zh2Q*K%sdA96W1v9_2vt7j5V0)zMH-ywWYmtEd%?r80-8dwxS`w59cfeT$*FB_X%&< z^-sfi*!7P>8>}0?`z(GpolPX)ML5z@^j1qB0s3*g=%4a&wuk-k!1J9Er?lpm+zt8U$ zU4}u=NiISAlgV(TyJS}FD=oXTPV)|ebcCcwdV-qKF85_wJgCmol<5*4L9g(S_E9yV z#?N&7boY+=yET`BF>6rgE90#W z(YT}6Oo=CEz34N&M*UEp8akegZ-@(MAF*Cn?*L2NAlO6o5BHc^&0uT1*+2CVqJaF~<>a*;eFFFp|I5S^qO# zasAI^q^kdlo4wXKSmm)kDvb+7pAerG>W682gUzb-^=rb&C;18SiSwm?qJxL@eDVba zdg#ruJtZ zU#>-#FYCee@hi`7WxcVE{FT=_C+DL$pVeIkV|sk%8CkgJv3GarT?OuE2yfm2#(XTq zHfgP3$PrUGZqR+J^m#zNlI&O&Y_OEo?AkntfjD9JG4U&*)G58JVE3pbO;> zE&VZC#(eHKNSiFqfsQTea@=p!b!%ypUXPl!JE9xzH>=%-J;O1&--HEUNc$3B zbYHL?mh=jJ_V)k;Z|`<29PE1MY;!3O#xL~7H{$qF4sUigdUV}bgYRTtPOKZ0eb2{&tov=T*P22VyhGRk34smFNrbks&kza z<{oQ&-mSz}X>5Loejpa9?BU?tgFgO_;@gBz9jUM;+j$3?D z9QCr|E<6*;I1g56iuWq_DK8v{mFAN?YW*Pjf(w7+A7%YK#$w_8tnj{+s3ZM8j8EU$ z(i+Ent@Vuhnm)5$HfNd(ROVt_xTepnlZ}h(kZ+Z_R`;28H1256nhQU(j`L}(I}p7~ zI*|1l`l;_|e8RI`^ch&E`Yss2Om|!boy~M%K3`#d1^Y1G-vJTN6=4U-L(qh6h3O*B|fFM4rM^`NvKV=c$s^6$&8*cAbcq&N^qZ^#n0!a zZfZWk`0rQxJ6&*|Jl^f5_uM#Jp^Zmhv95brcRt_$-b>EQOLY%A*S~pfw*P)5Y+t;a zNPh!@_omECPg7s#@2!Y;{dZY6h+A4CQ}Qj)?@ImZ_}-Rq=91SAh5J%}rwi!j?*enb zQPK^@SkOCvHh+G;FXoT#H{5Rw@EvKwGgn!#b-%POv^j-8f+=1O?@UjpT|@< za|iu&{_|Fl=ebs%u>s?b$eU&kVR+MoE%8Qqgy$QoPa^#(qplm2)6DNIW7$LNOGp2e z-l0Pmia7w*x;5RoQ1(fc?nwAC23c5Hm_%96HN z_mfa30=lXFb^QFn*iLy}N_)w-THe=pd_ax%nnP`It^;VV+*PgSWei@Sy-0g z7`1k6i}oK!TC4pqety3}d+}DS%Y8lXZqZ)yuGZy#_FL2ym;2>8m)m>#ilU8P>1$;l z)fVS+dp|xWzcw~mNqhMWwME}?0PPiTsMWk4=OCgoF{b2Qt;_weJ5ihybO-;1B;<8% F{s)?7Y{UQn literal 0 HcmV?d00001 diff --git a/data/phones/songs/Stardust Speedway (Past).nbs b/data/phones/songs/Stardust Speedway (Past).nbs new file mode 100644 index 0000000000000000000000000000000000000000..4206ee5d9ac0f6e41f6c47b32e108827f56ad2b2 GIT binary patch literal 32237 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 Gl>Hy6Bqq85 literal 0 HcmV?d00001 diff --git a/data/phones/songs/TV WORLD.nbs b/data/phones/songs/TV WORLD.nbs new file mode 100644 index 0000000000000000000000000000000000000000..27d4091da5dc7bd2327284d127868fdd892d8eaf GIT binary patch literal 52744 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 BSw;W= literal 0 HcmV?d00001 diff --git a/data/phones/songs/The Entertainer.nbs b/data/phones/songs/The Entertainer.nbs new file mode 100644 index 0000000000000000000000000000000000000000..221fe9860115a7e5470ce42096f2567bd2310ec3 GIT binary patch literal 12616 zcmeI3U5*_^5{0wcfIPs6EztgHrm>ND<%K6C*novv!jff1RzJ)}W=ZUYW$>Mo zanf1$UNke%GDsBYQdtp^kr9z6BO|k#fB&PkPg-l=|9J7~*RL-x-dw(T`TF7w)b{Pg z<(n6;UR}KTn3wN<`04WU({FzI*Q=MWd2PR3Yad?!@>*;E`DbfiLHPNowY%c*&%(d$ z{CyLS)P6?$ers+&rG2N`XS8p%_MT*(&^{^pDeW6Yzx#e$&WnDZ_Ooi=q5ZVlw`iZ0 z{0Z$RMZZD&w9^;tSujvGEZDP@Jqz|MWzT{=OWCtv&r7a*~Z-Q_L3h#~1gN+~Y|$Iv&Vhbe(mc+e1%{ ztys+Cd{K181-tt^O|rXoc@7vOvhhuNAIMIA&^)gd-)=|ouyy}ku`9cx?@x-A?IwQh zDXrLmPc8HEuy}>12KIW)u%G!~;3xj3Cti^co)w#2+33m~IgX08VpnmyCH)m&#SGkS z_*$jKas>81chveDcF? zVerEZgXHr4oVJU}Eyp<@ZaJ><$rbFOS>IcZYs*#VxYTFVKV$EwzUli1Pt^gbotTIA zjC#R&fVS!fy-)LF>|3tq_EA6W=|9l#O2#73yB6fB`gvs=wCoA0r>P^omz>m7^1J($ z>lx{shjo;=L2ZF_E7KG2G!-UEi{d}D{q^LyJP$po{QAu_C;91m(-cA zEucLqKki-|=a#p$9vAzM+&CYpk8on#l3P-5Cf`0hf``7$qw63JagpQP(oWzjuBF#| zTFw-)`w(8E<4SOf4~NEB&3F0whu5F*J7Ih^#yeaSS})k)I%~4Q@lPJ|8o=*kWPSEy zo?J6R3r~7<2J;+CA3U$;w>0OWV1)UKtm&M8J0Cs2#q+tEeyT+?er()ZmyBO)cD-Jq z2T!tj^4a6ZAK9)m6}7H?k*wZx{>gYbGggl27>+NsUaHo2Oh+xN8m;6GVQ#~9&%qVf zE!Y2_`%192<@%miSm*sLJ=MO4*4=JCxRQNk%k_WzT+cq`eI$83b(i*$>|u4Uvfanl zzMQ@FPl}c2OXsQWKDO>E6^p8AQk#!@Z>nc3gKX~h@}8RcUElXlIbAhaeAw<|b+_8* z^Y`7yDwaKe`CF9kD9%_lIS>0T8CvK$|8eh}^M%)#`NGz8Mzl=z<;>B};oYtrdYdtI z4ms!NJ8bwlKZuv{lUMbvVv_H9Sh{H?AE#c@cQnyuYw5SG`Ce!~GG}G$kbx$i>Ws(m zh^xoZnZ;u(&hU=wDSF19ZJ%XRyUG5#|F=$k|C{BiM$SFC$C>-qy}tYE95e3FS+lD- z!9LxGpwB+9VgOHjRpOMn)%QxD*@;)qWPYMMGWqUwNH)1acM-9L{>IZ|Xgh1S-*bVx zV9ImNd%jzQ9$m%}IQRaWe)zJ7wc-)iw^)O=hc#%Pui|BVV-4CK)0DtA+6rsDAJ^I*Sc5j(J}?Bm&dRobU`=%9V3xBF${Wmg`s69! z2iE92VeP2V$FbsR4Dn1nG-vvTeUo+bStCQ!H*qC4jq`K61urqyyK#e#=h&h90N*vq zUU=jQk0<)*Q?XFYZ!;I6+ZK(dF`zT9_lT2{k6dgW^2N_O3+`+;x`O@CS9oM?px5is zeB}4=2u-{d9(muxBeXexWPIBVZx4^6@f&!goi!c$3Xj-oJf5fTx z@hP5!o;>Tlrer>2%*4<9zQ6Q+Ei#oq)8DlX`8hd1-&?eAoKN~fSFN6QYBJF>Zg{fy zKK-RK(l^TJ3*G0%@-aNo(vF7V$;hY?5golN>dS1pvdjaW_bi=68d`riW!#(9l9>K61L zkQta!ZlC({*5yxWfv1k=^4<6<{Ri6aTXfeo!49_iUA%!k^5wuDwUvE@W|8h8CQ5=3?OH|Y+>wL`~LQ5?1kUu{Y}f5(O6~w z3VRcMU=Lcx8rYlUlJAT)=>D5bp7~xB-#BCS8U{Ow->_eF$4s$<9zCL04)Nb~YW>B( z_?A30@*m?m?&wo#UCXq3AS9nFIu?WX;<9*FO_eNMb!(& MCeNxR`ClG>1;JXtL;wH) literal 0 HcmV?d00001 diff --git a/data/phones/songs/Through the Fire and Flames.nbs b/data/phones/songs/Through the Fire and Flames.nbs new file mode 100644 index 0000000000000000000000000000000000000000..a946feec474c6f28315bce2609439333dc25f886 GIT binary patch literal 86368 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:)' + time&at2023&fs12&fs15_21&co34&co27&co0305_Z: + origin: receiver + value: chicken nugget + time&at2023&fs12&fs19_18&co46&co15&co0228_Z: + origin: sender + value: hallo kkrneger + time&at2024&fs07&fs01_17&co05&co11&co0246_Z: + origin: receiver + value: Potato diff --git a/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b98fac04-bd68-4fcc-beea-3329c5889538.yml b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b98fac04-bd68-4fcc-beea-3329c5889538.yml new file mode 100644 index 0000000..ed2751a --- /dev/null +++ b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_b98fac04-bd68-4fcc-beea-3329c5889538.yml @@ -0,0 +1,25 @@ +messages: + time&at2024&fs04&fs21_23&co52&co29&co0273_Z: + origin: receiver + value: test + time&at2024&fs04&fs21_23&co53&co02&co0773_Z: + origin: sender + value: nice + time&at2024&fs12&fs17_00&co28&co45&co0662_Z: + origin: sender + value: Sup + time&at2024&fs12&fs17_00&co28&co48&co0712_Z: + origin: receiver + value: meow + time&at2024&fs12&fs17_00&co28&co51&co0562_Z: + origin: sender + value: so, check how fast the messages load + time&at2024&fs12&fs17_00&co28&co55&co0762_Z: + origin: receiver + value: rare + time&at2024&fs12&fs17_00&co29&co12&co0512_Z: + origin: sender + value: open the phone & click on our conversation + time&at2024&fs12&fs17_00&co29&co16&co0464_Z: + origin: sender + value: you'll see it's p much instant diff --git a/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c59ee3a6-a066-4de4-bd0e-d22db1b6d818.yml b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c59ee3a6-a066-4de4-bd0e-d22db1b6d818.yml new file mode 100644 index 0000000..8988bcb --- /dev/null +++ b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c59ee3a6-a066-4de4-bd0e-d22db1b6d818.yml @@ -0,0 +1,13 @@ +messages: + time&at2025&fs07&fs28_21&co23&co36&co0695_Z: + origin: sender + value: Hello + time&at2025&fs07&fs28_21&co23&co50&co0947_Z: + origin: sender + value: How are you + time&at2025&fs07&fs28_21&co57&co26&co0645_Z: + origin: sender + value: pupici + time&at2025&fs07&fs28_21&co58&co02&co0745_Z: + origin: receiver + value: pupicei diff --git a/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c619da4e-a039-4567-8bef-8f0119b86d17.yml b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c619da4e-a039-4567-8bef-8f0119b86d17.yml new file mode 100644 index 0000000..6e8cb0d --- /dev/null +++ b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_c619da4e-a039-4567-8bef-8f0119b86d17.yml @@ -0,0 +1,7 @@ +messages: + time&at2024&fs04&fs21_02&co45&co39&co0245_Z: + origin: sender + value: sup + time&at2024&fs04&fs21_02&co45&co43&co0245_Z: + origin: receiver + value: sup diff --git a/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_f6042456-6429-4a18-bcf1-7b2bbd83b650.yml b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_f6042456-6429-4a18-bcf1-7b2bbd83b650.yml new file mode 100644 index 0000000..f681ff3 --- /dev/null +++ b/data/phones/texts/607ddcbd-36a0-4575-99d4-f6bf45670c81_f6042456-6429-4a18-bcf1-7b2bbd83b650.yml @@ -0,0 +1,10 @@ +messages: + time&at2024&fs09&fs07_14&co45&co32&co0035_Z: + origin: sender + value: hi girl + time&at2024&fs09&fs07_14&co48&co11&co0988_Z: + origin: sender + value: Hi + time&at2024&fs09&fs07_14&co48&co19&co0285_Z: + origin: sender + value: Hi diff --git a/data/phones/texts/678a58f0-d9e1-4349-9e40-1b7bb01f7da4_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/678a58f0-d9e1-4349-9e40-1b7bb01f7da4_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..80df361 --- /dev/null +++ b/data/phones/texts/678a58f0-d9e1-4349-9e40-1b7bb01f7da4_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,4 @@ +messages: + time&at2024&fs06&fs26_22&co03&co58&co0593_Z: + origin: receiver + value: hello habibi <333 diff --git a/data/phones/texts/9975efa7-ba0c-42fb-ac32-97af181e6495_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/9975efa7-ba0c-42fb-ac32-97af181e6495_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..291e1b6 --- /dev/null +++ b/data/phones/texts/9975efa7-ba0c-42fb-ac32-97af181e6495_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,37 @@ +messages: + time&at2023&fs12&fs16_18&co44&co32&co0999_Z: + origin: receiver + value: '*cums in his ass 6 times* AWWW BABY YOUR ASS IS SO GOOD WTFFFF' + time&at2023&fs12&fs16_18&co46&co28&co0349_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co27&co0199_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co27&co0649_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co27&co0999_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co30&co0449_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co30&co0799_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co31&co0148_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co31&co0549_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co47&co31&co0903_Z: + origin: sender + value: dicks + time&at2023&fs12&fs16_18&co50&co39&co0098_Z: + origin: receiver + value: better? + time&at2023&fs12&fs16_18&co50&co47&co0648_Z: + origin: receiver + value: test diff --git a/data/phones/texts/b421a0ff-8813-450b-935b-253273d60860_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/b421a0ff-8813-450b-935b-253273d60860_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..0faa228 --- /dev/null +++ b/data/phones/texts/b421a0ff-8813-450b-935b-253273d60860_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,31 @@ +messages: + time&at2025&fs03&fs10_16&co06&co23&co0603_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co06&co23&co0953_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co06&co24&co0204_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co22&co0053_Z: + origin: receiver + value: hello + time&at2025&fs03&fs10_16&co07&co28&co0954_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co29&co0153_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co29&co0353_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co29&co0603_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co34&co0398_Z: + origin: sender + value: Test + time&at2025&fs03&fs10_16&co07&co35&co0153_Z: + origin: sender + value: Test diff --git a/data/phones/texts/b6de9919-dbb6-41ba-ae60-42dc9607c9ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/b6de9919-dbb6-41ba-ae60-42dc9607c9ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..906e057 --- /dev/null +++ b/data/phones/texts/b6de9919-dbb6-41ba-ae60-42dc9607c9ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,23 @@ +messages: + time&at2023&fs12&fs02_02&co08&co02&co0117_Z: + origin: receiver + value: Oh, really? Go load this conversation. See how fast it is. + time&at2023&fs12&fs02_02&co08&co16&co0367_Z: + origin: receiver + value: It's in your phone - right click it. + time&at2023&fs12&fs02_02&co09&co03&co0417_Z: + origin: receiver + value: oh hey, it's instant + time&at2023&fs12&fs02_02&co09&co14&co0167_Z: + origin: receiver + value: /ac 3772221480 dar + time&at2023&fs12&fs02_02&co09&co16&co0667_Z: + origin: receiver + value: or something.. + time&at2023&fs12&fs02_02&co09&co28&co0917_Z: + origin: receiver + value: maybe change your ringtone, too. + time&at2023&fs12&fs02_02&co16&co09&co0417_Z: + origin: receiver + value: Hey, we have more text messages by now. Try loading them, they should surely + be slower to load now, right????????? diff --git a/data/phones/texts/b6fd1de5-b171-4dc8-9ffd-b8daed7683b7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/b6fd1de5-b171-4dc8-9ffd-b8daed7683b7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..83d5c99 --- /dev/null +++ b/data/phones/texts/b6fd1de5-b171-4dc8-9ffd-b8daed7683b7_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,5 @@ +messages: + time&at2024&fs12&fs12_01&co55&co59&co0329_Z: + origin: receiver + value: Hey, this is a text message. This won't call you, it'll just send it as + is diff --git a/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml b/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml new file mode 100644 index 0000000..91dd4ea --- /dev/null +++ b/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_0014a4d4-3beb-4165-b819-9f2f0fe11bae.yml @@ -0,0 +1,10 @@ +messages: + time&at2023&fs12&fs15_21&co43&co52&co0555_Z: + origin: receiver + value: meow + time&at2023&fs12&fs15_21&co44&co01&co0655_Z: + origin: receiver + value: colosalty is ur contact name + time&at2023&fs12&fs15_21&co45&co08&co0355_Z: + origin: sender + value: your Kyoi in my phone now diff --git a/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..67df456 --- /dev/null +++ b/data/phones/texts/b78fb3c7-4d0c-43d6-8959-91904e8e02ab_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,16 @@ +messages: + time&at2023&fs12&fs11_18&co11&co36&co0255_Z: + origin: receiver + value: hi + time&at2023&fs12&fs15_21&co32&co32&co0055_Z: + origin: sender + value: '>:)' + time&at2023&fs12&fs15_21&co34&co27&co0205_Z: + origin: sender + value: chicken nugget + time&at2023&fs12&fs19_18&co46&co15&co0327_Z: + origin: receiver + value: hallo kkrneger + time&at2024&fs07&fs01_17&co05&co11&co0147_Z: + origin: sender + value: Potato diff --git a/data/phones/texts/b98fac04-bd68-4fcc-beea-3329c5889538_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/b98fac04-bd68-4fcc-beea-3329c5889538_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..8304a44 --- /dev/null +++ b/data/phones/texts/b98fac04-bd68-4fcc-beea-3329c5889538_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,25 @@ +messages: + time&at2024&fs04&fs21_23&co52&co29&co0223_Z: + origin: sender + value: test + time&at2024&fs04&fs21_23&co53&co02&co0873_Z: + origin: receiver + value: nice + time&at2024&fs12&fs17_00&co28&co45&co0762_Z: + origin: receiver + value: Sup + time&at2024&fs12&fs17_00&co28&co48&co0613_Z: + origin: sender + value: meow + time&at2024&fs12&fs17_00&co28&co51&co0662_Z: + origin: receiver + value: so, check how fast the messages load + time&at2024&fs12&fs17_00&co28&co55&co0662_Z: + origin: sender + value: rare + time&at2024&fs12&fs17_00&co29&co12&co0612_Z: + origin: receiver + value: open the phone & click on our conversation + time&at2024&fs12&fs17_00&co29&co16&co0512_Z: + origin: receiver + value: you'll see it's p much instant diff --git a/data/phones/texts/c59ee3a6-a066-4de4-bd0e-d22db1b6d818_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/c59ee3a6-a066-4de4-bd0e-d22db1b6d818_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..b8086ec --- /dev/null +++ b/data/phones/texts/c59ee3a6-a066-4de4-bd0e-d22db1b6d818_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,13 @@ +messages: + time&at2025&fs07&fs28_21&co23&co36&co0745_Z: + origin: receiver + value: Hello + time&at2025&fs07&fs28_21&co23&co51&co0045_Z: + origin: receiver + value: How are you + time&at2025&fs07&fs28_21&co57&co26&co0745_Z: + origin: receiver + value: pupici + time&at2025&fs07&fs28_21&co58&co02&co0645_Z: + origin: sender + value: pupicei diff --git a/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..3437e5e --- /dev/null +++ b/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,7 @@ +messages: + time&at2024&fs04&fs21_02&co45&co39&co0295_Z: + origin: receiver + value: sup + time&at2024&fs04&fs21_02&co45&co43&co0145_Z: + origin: sender + value: sup diff --git a/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_f5e06a85-c689-4bcb-9b77-cb1ac5cc0133.yml b/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_f5e06a85-c689-4bcb-9b77-cb1ac5cc0133.yml new file mode 100644 index 0000000..b47ce49 --- /dev/null +++ b/data/phones/texts/c619da4e-a039-4567-8bef-8f0119b86d17_f5e06a85-c689-4bcb-9b77-cb1ac5cc0133.yml @@ -0,0 +1,4 @@ +messages: + time&at2024&fs04&fs21_03&co21&co08&co0895_Z: + origin: receiver + value: What the flip flop diff --git a/data/phones/texts/f5e06a85-c689-4bcb-9b77-cb1ac5cc0133_c619da4e-a039-4567-8bef-8f0119b86d17.yml b/data/phones/texts/f5e06a85-c689-4bcb-9b77-cb1ac5cc0133_c619da4e-a039-4567-8bef-8f0119b86d17.yml new file mode 100644 index 0000000..2995f0f --- /dev/null +++ b/data/phones/texts/f5e06a85-c689-4bcb-9b77-cb1ac5cc0133_c619da4e-a039-4567-8bef-8f0119b86d17.yml @@ -0,0 +1,4 @@ +messages: + time&at2024&fs04&fs21_03&co21&co08&co0845_Z: + origin: sender + value: What the flip flop diff --git a/data/phones/texts/f6042456-6429-4a18-bcf1-7b2bbd83b650_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml b/data/phones/texts/f6042456-6429-4a18-bcf1-7b2bbd83b650_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml new file mode 100644 index 0000000..b082601 --- /dev/null +++ b/data/phones/texts/f6042456-6429-4a18-bcf1-7b2bbd83b650_607ddcbd-36a0-4575-99d4-f6bf45670c81.yml @@ -0,0 +1,10 @@ +messages: + time&at2024&fs09&fs07_14&co45&co32&co0085_Z: + origin: receiver + value: hi girl + time&at2024&fs09&fs07_14&co48&co12&co0085_Z: + origin: receiver + value: Hi + time&at2024&fs09&fs07_14&co48&co19&co0385_Z: + origin: receiver + value: Hi diff --git a/scripts/.DS_Store b/scripts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6d434432b95f82a6c858480ee0cea07322942077 GIT binary patch literal 8196 zcmeHM-EPw`82!AqTdIN73y^wgiQ7t~U11<@qB359Ah-Zj5?ZlnA+FMtYN{&b8eV8m zvghIWXH%DMS7mgJ&y{@~+b796ah-lH5sATU)Fo;Yk%z3YwU6SOr2BPVOFORR0Z@QX zbQ;g6lQ>oJ+E{L22iO62fE{25*nzv@0N&X;c{jZGZ7-MX06XwsI-u7FiL5bjSXwko z2MQAc0PAQr33bE)h9eyY4oi!MigViNK{%>#A%?JY^h-S)7&t5~S~>|!C*iIvT!bRb z)xncyIEla_m+SyLu#l* + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if != air: + - narrate "<&c>You must run this command with an empty hand." + - stop + - define arrow + - adjust def:arrow custom_model_data:1 + - adjust def:arrow display:<&f> + - flag <[arrow]> animations:true + - if !]>: + - narrate "<&c>Your inventory is too full. You must have one empty slot in your inventory!" + - stop + - define bow + - adjust def:bow "display:<&f>Hold right-click to Animate" + - adjust def:bow custom_model_data:1 + - flag <[bow]> animations:true + - inventory set slot:hand origin:<[bow]> + - give <[arrow]> + - narrate format:formats_prefix "Hold right-click to animate your hands!" + +animations_command_raisehand: + debug: false + type: command + name: raisehand + description: Animate your hand so it looks like you're raising it. + usage: /raisehand + aliases: + - rh + permission: animations.command.raisehand + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if != air: + - narrate "<&c>You must run this command with an empty hand." + - stop + - define trident + - adjust def:trident custom_model_data:1 + - adjust def:trident "display:<&f>Hold right-click to Raise Hand" + - flag <[trident]> animations:true + - inventory set slot:hand origin:<[trident]> + - narrate format:formats_prefix "Hold right-click to raise your hand!" + +animations_command_handshake: + debug: false + type: command + name: handshake + description: Animate your hand so it looks like you're handshaking. + usage: /handshake + permission: animations.command.handshake + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if != air: + - narrate "<&c>You must run this command with an empty hand." + - stop + - define shield + - adjust def:shield custom_model_data:1 + - adjust def:shield "display:<&f>Hold right-click to Handshake" + - flag <[shield]> animations:true + - inventory set slot:hand origin:<[shield]> + - narrate format:formats_prefix "Hold right-click to handshake!" diff --git a/scripts/animations/animations_world.dsc b/scripts/animations/animations_world.dsc new file mode 100644 index 0000000..feda8fd --- /dev/null +++ b/scripts/animations/animations_world.dsc @@ -0,0 +1,34 @@ +animations_world: + debug: false + type: world + events: + # common + on player joins: + - foreach key:slot as:item: + - if <[item].has_flag[animations]>: + - inventory set slot:<[slot]> origin:air + on player scrolls their hotbar: + - if : + - take flagged:animations quantity:255 + on player clicks item in inventory: + - if : + - determine cancelled passively + - inventory set slot:hand origin:air + - inventory update + on player drops item: + - if : + - remove + # animationmode + on player shoots bow: + - if : + - determine cancelled passively + - take flagged:animations quantity:255 + # raisehand + on trident launched: + - if : + - determine cancelled passively + - take flagged:animations quantity:255 player: + # shield + on player lowers item: + - if : + - take flagged:animations quantity:255 diff --git a/scripts/announcers/announcers_commands.dsc b/scripts/announcers/announcers_commands.dsc new file mode 100644 index 0000000..5155b3e --- /dev/null +++ b/scripts/announcers/announcers_commands.dsc @@ -0,0 +1,57 @@ +announcers_command_intercom: + debug: false + type: command + name: intercom + description: Broadcast a message through the intercom. + usage: /intercom (message) + permission: announcers.command.intercom + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - define message + - announce "<&6>[<&c><&l>INTERCOM<&6>] <&7><&o>() <&f>]> says <&dq><[message]><&dq>" + +announcers_command_collegeintercom: + debug: false + type: command + name: collegeintercom + description: Broadcast a message through the college intercom. + usage: /collegeintercom (message) + permission: announcers.command.collegeintercom + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - define message + - define recipients ]> + - narrate targets:<[recipients]> "<&6>[<&c><&l>COLLEGE INTERCOM<&6>] <&7><&o>() <&f>]> says <&dq><[message]><&dq>" + +announcers_command_advert: + debug: false + type: command + name: advert + description: Broadcast a message for your shop. + usage: /advert (message) + permission: announcers.command.advert + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - define message + - announce "<&6>[<&2>Advert<&6>]<&f>: <&7><&o>() <&f>]> - <[message]>" diff --git a/scripts/apartments/apartments_commands.dsc b/scripts/apartments/apartments_commands.dsc new file mode 100644 index 0000000..177f313 --- /dev/null +++ b/scripts/apartments/apartments_commands.dsc @@ -0,0 +1,147 @@ +apartments_command_apartmentaddmember: + debug: false + type: command + name: apartmentaddmember + description: Add a member to the apartment you are currently in. + usage: /apartmentaddmember (player) + aliases: + - aptaddmember + - aptam + permission: apartments.command.apartmentaddmember + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define apartment ]> + - if <[apartment]> == null: + - narrate "<&c>You can only use this command inside apartments." + - stop + - define owner ]> + - if != <[owner]>: + - narrate "<&c>You do not own this apartment!" + - stop + - if <= 0: + - narrate "<&c>Invalid use. Please try / (player)" + - stop + - define target ].if_null[null]> + - if <[target]> == null: + - narrate "<&c>A player with the username could not be found." + - stop + - if <[target]> == : + - narrate "<&c>You cannot add yourself as a member!" + - stop + - run apartments_add_member def.apartment:<[apartment]> def.member:<[target]> + - narrate format:formats_prefix "<&a>Added <&7><[target].name> to your apartment (<&b>member<&7>)." + +apartments_command_apartmentaddmoderator: + debug: false + type: command + name: apartmentaddmoderator + description: Adds a moderator to the apartment you are currently in. + usage: /apartmentaddmoderator (player) + aliases: + - aptaddmod + permission: apartments.command.apartmentaddmod + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define apartment ]> + - if <[apartment]> == null: + - narrate "<&c>You can only use this command inside apartments." + - stop + - define owner ]> + - if != <[owner]>: + - narrate "<&c>You do not own this apartment!" + - stop + - if <= 0: + - narrate "<&c>Invalid use. Please try / (player)" + - stop + - define target ].if_null[null]> + - if <[target]> == null: + - narrate "<&c>A player with the username could not be found." + - stop + - if <[target]> == : + - narrate "<&c>You cannot add yourself as a moderator!" + - stop + - run apartments_add_moderator def.apartment:<[apartment]> def.moderator:<[target]> + - narrate format:formats_prefix "<&a>Added <&7><[target].name> to your apartment (<&6>moderator<&7>)." + +apartments_command_apartmentremoveaccess: + debug: false + type: command + name: apartmentremoveaccess + description: Removes all access for a player from the apartment you are currently in. + usage: /apartmentremoveaccess (player) + aliases: + - aptremoveaccess + - aptrm + permission: apartments.command.apartmentremoveaccess + tab completions: + # TODO: use the procedural tab-complete to handle this correctly! + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define apartment ]> + - if <[apartment]> == null: + - narrate "<&c>You can only use this command inside apartments." + - stop + - define owner ]> + - if != <[owner]>: + - narrate "<&c>You do not own this apartment!" + - stop + - if <= 0: + - narrate "<&c>Invalid use. Please try / (player)" + - stop + - define target ].if_null[null]> + - if <[target]> == null: + - narrate "<&c>A player with the username could not be found." + - stop + - if <[target]> == : + - narrate "<&c>You cannot remove your own access!" + - stop + - if <[target].location.in_region[<[apartment].id>]>: + - run apartments_end_edit def.player:<[target]> + - run apartments_remove_access def.apartment:<[apartment]> def.member:<[target]> + - narrate format:formats_prefix "<&c>Removed <&7>member <[target].name> from your apartment." + +apartments_command_apartmenteditmode: + debug: false + type: command + name: apartmenteditmode + description: Toggle edit mode for the apartment you are currently in. + usage: /apartmenteditmode + aliases: + - apteditmode + - editmode + permission: apartments.command.apartmenteditmode + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + # toggle off + - if : + - run apartments_end_edit def.player: + - narrate format:formats_prefix "<&e>Exiting <&6>Edit Mode..." + - stop + # toggle on + - define apartment ]> + - if <[apartment]> == null: + - narrate "<&c>You can only use this command inside apartments." + - stop + - define owner ]> + - if != <[owner]>: + - define access_level |]> + - if <[access_level]> != moderator: + - narrate "<&c>You must own this apartment or be an apartment moderator to enable editing here!" + - stop + - run apartments_begin_edit def.apartment:<[apartment]> def.player: + - narrate format:formats_prefix "<&a>Entering <&6>Edit Mode..." diff --git a/scripts/apartments/apartments_tasks.dsc b/scripts/apartments/apartments_tasks.dsc new file mode 100644 index 0000000..96a2e39 --- /dev/null +++ b/scripts/apartments/apartments_tasks.dsc @@ -0,0 +1,111 @@ +apartments_at: + debug: false + type: procedure + definitions: location + script: + - determine <[location].regions.filter_tag[<[filter_value].id.starts_with[apt-]>].get[1].if_null[null]> + +apartments_owner: + debug: false + type: procedure + definitions: apartment + script: + - determine <[apartment].owners.get[1].if_null[null]> + +apartments_access: + debug: false + type: procedure + definitions: player|location + script: + - define apartment ]> + - if <[apartment]> == null: + - determine true + - define owner ]> + - if <[owner]> == null: + - determine false + - if <[owner]> == <[player]>: + - determine true + - define access <[owner].flag[apartments_access].get[<[apartment]>].get[<[player]>].if_null[null]> + - if <[access]> == null: + - determine false + - determine true + +apartments_access_level: + debug: false + type: procedure + definitions: player|location + script: + - define apartment ]> + - if <[apartment]> == null: + - determine null + - define owner ]> + - if <[owner]> == null: + - determine none + - if <[owner]> == <[player]>: + - determine owner + - define access <[owner].flag[apartments_access].get[<[apartment]>].get[<[player]>].if_null[null]> + - if <[access]> == null: + - determine none + - determine <[access]> + +apartments_add_member: + debug: false + type: task + definitions: apartment|member + script: + - define owner ]> + - if <[owner]> == null: + - stop + - define access_all <[owner].flag[apartments_access].get[<[apartment]>].if_null[].with[<[member]>].as[member]> + - flag <[owner]> apartments_access:<[owner].flag[apartments_access].if_null[].with[<[apartment]>].as[<[access_all]>]> + - execute as_server "as addfriend <[member].name> <[apartment].id>" + +apartments_add_moderator: + debug: false + type: task + definitions: apartment|moderator + script: + - define owner ]> + - if <[owner]> == null: + - stop + - execute as_server "rg addmember <[apartment].id> <[moderator].name> -w <[apartment].world.name>" + - define access_all <[owner].flag[apartments_access].get[<[apartment]>].if_null[].with[<[moderator]>].as[moderator]> + - flag <[owner]> apartments_access:<[owner].flag[apartments_access].if_null[].with[<[apartment]>].as[<[access_all]>]> + - execute as_server "as addfriend <[moderator].name> <[apartment].id>" + +apartments_remove_access: + debug: false + type: task + definitions: apartment|member + script: + - define owner ]> + - if <[owner]> == null: + - stop + - execute as_server "rg removemember <[apartment].id> <[member].name> -w <[apartment].world.name>" + - define access_all <[owner].flag[apartments_access].get[<[apartment]>].if_null[].exclude[<[member]>]> + - flag <[owner]> apartments_access:<[owner].flag[apartments_access].if_null[].with[<[apartment]>].as[<[access_all]>]> + - execute as_server "as delfriend <[member].name> <[apartment].id>" + +apartments_begin_edit: + debug: false + type: task + definitions: apartment|player + script: + - definemap apartments_edit_data: + apartment: <[apartment]> + inventory: <[player].inventory.map_slots> + - flag <[player]> apartments_edit:<[apartments_edit_data]> + - inventory clear player:<[player]> + - adjust <[player]> gamemode:creative + +apartments_end_edit: + debug: false + type: task + definitions: player + script: + - define apartments_edit_data <[player].flag[apartments_edit]> + - inventory clear player:<[player]> + - foreach <[apartments_edit_data].get[inventory]> key:slot as:item: + - inventory set origin:<[item]> slot:<[slot]> player:<[player]> + - adjust <[player]> gamemode:survival + - flag <[player]> apartments_edit:! diff --git a/scripts/apartments/apartments_world.dsc b/scripts/apartments/apartments_world.dsc new file mode 100644 index 0000000..53d9619 --- /dev/null +++ b/scripts/apartments/apartments_world.dsc @@ -0,0 +1,156 @@ +apartments_world: + debug: false + type: world + events: + ## session safety + on player joins: + - if : + - run apartments_end_edit def.player: + ## extra details + on delta time secondly every:2: + - actionbar "<&6>Editing apartment <&7>[]" targets: per_player + ## invalid access + on player right clicks block: + - if : + - stop + - if == null: + - stop + - if !|]>: + - determine cancelled + ## + ## complex creative safety cases + ## + # do not allow leaving actual apartment region + on player walks: + - if !: + - stop + - define apartment + - if !]>: + - determine cancelled + # forbid trying to touch non-blocks in creative inventory + on player clicks item in inventory: + - if !: + - stop + - if != CREATIVE: + - determine cancelled + - if != CRAFTING: + - determine cancelled + - if && : + - stop + - determine cancelled passively + - wait 1t + - inventory update destination: + - adjust item_on_cursor: + # handle container drops & illegal block breaks + on player breaks block bukkit_priority:monitor: + - if : + - stop + # // careful: == null here; everywhere else it's != null + - if ]> == null: + - stop + - if : + - if == creative: + - if > 0: + - narrate "<&c>This container has items inside. You must clear it first before you can break it." + - determine cancelled + - ratelimit 1t + - define contents + - if <[contents].is_empty>: + - stop + - define half + - if <[half]> == right: + - define contents <[contents].get[1].to[27]> + - else if <[half]> == left: + - define contents <[contents].get[28].to[54]> + - foreach <[contents]> as:item: + - drop <[item]> delay:10t + # forbid block update and physics inside apartments + on block physics: + - if != null: + - stop + - if ]> != null: + - determine cancelled passively + - foreach as:entity: + - remove <[entity]> + # forbid block update and physics for half blocks + on player breaks block: + # // careful: == null here; everywhere else it's != null + - if ]> == null: + - stop + - define half + - if <[half]> != null && !: + - if == air: + - if <[half]> != left && <[half]> != right: + - modifyblock ]> air no_physics + # forbid blocks that have NBT data - such as prefilled chests + on player places block: + # // careful: == null here; everywhere else it's != null + - if ]> == null: + - stop + - if : + - stop + - if : + - stop + - if ].size.if_null[0]> > 0: + - determine cancelled + ## + ## simple creative safety cases + ## + # forbid picking up and dropping items + on player drops item: + - if : + - stop + - if : + - determine cancelled + on player picks up item: + - if : + - stop + - if : + - determine cancelled + # forbid water flow in apartment regions + - if ]> != null: + - determine cancelled + # forbid sapling/other growing things in apartment regions + on structure grows: + - if ]> != null: + - determine cancelled + on plant grows: + - if ]> != null: + - determine cancelled + # forbid any items dropping even if broken in apartment regions + on block drops item from breaking: + - if ]> != null: + - determine cancelled + # forbid any tnt in apartment regions + on tnt primes: + - if ]> != null: + - determine cancelled + # forbid gravity on blocks inside apartments + on block falls: + - if ]> != null: + - determine cancelled + # forbid shulker box usage inside apartments + on player places *shulker_box: + - if ]> != null: + - if !: + - determine cancelled + # forbid mob spawner usage inside apartments + on player places *spawner: + - if : + - stop + - if ]> != null: + - determine cancelled + # prevent lectern grab + on player takes item from lectern: + - if : + - stop + - if !|]>: + - determine cancelled + # prevent redstone in apartments + after redstone recalculated: + - if ]> != null: + - adjustblock power:0 no_physics + # prevent piston use in apartments + on piston extends: + - if ]> != null: + - determine cancelled diff --git a/scripts/automoney/automoney_world.dsc b/scripts/automoney/automoney_world.dsc new file mode 100644 index 0000000..c5df9a3 --- /dev/null +++ b/scripts/automoney/automoney_world.dsc @@ -0,0 +1,12 @@ +automoney_world: + debug: false + type: world + events: + on delta time minutely every:1: + - foreach as:player: + - define last_payment <[player].flag[automoney_last].if_null[]> + - define time_passed ]> + - if <[time_passed].is_more_than[]>: + - flag <[player]> automoney_last: + - money give players:<[player]> quantity:500 + - narrate format:formats_prefix targets:<[player]> "Thanks for being online! You have received ¥500." diff --git a/scripts/carry/carry_commands.dsc b/scripts/carry/carry_commands.dsc new file mode 100644 index 0000000..a659faf --- /dev/null +++ b/scripts/carry/carry_commands.dsc @@ -0,0 +1,66 @@ +carry_command_carry: + debug: false + type: command + name: carry + description: Carry another player on your shoulders! + usage: /carry [who?] + permission: carry.command.carry + tab completions: + 1: ].parse[name]> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if !: + - narrate "<&c>You're already carrying someone!" + - stop + - define target + - if <[target]> == null: + - define target ].if_null[null]> + - if <[target]> == null: + - narrate "<&c>Please look at the player to carry or specify their username." + - stop + - else: + - if <[target].location.distance[]> > 5: + - narrate "<&c>That player is too far away!" + - stop + - if <[target].is_npc>: + - narrate "<&c>Please look at the player to carry or specify their username." + - stop + - if <[target]> == : + - narrate "<&c>You cannot carry yourself!" + - stop + - if <[target].is_inside_vehicle>: + - narrate "<&c>This player is already being carried!" + - stop + - define player + - clickable usages:1 until:10s save:carry: + - if !: + - narrate "<&c>That player is already carrying someone!" + - stop + - if <[target].is_inside_vehicle>: + - narrate targets:<[target]> "<&c>You're already being carried!" + - stop + - adjust <[player]> passengers:<[player].passengers.include[<[target]>]> + - narrate format:formats_prefix "Sent a carry request to <&e>]>" + # + - narrate format:formats_prefix targets:<[target]> "<&e>]> <&7> would like to carry you." + - narrate targets:<[target]> "<&l>[ACCEPT]].on_click[]>" + +carry_command_uncarry: + debug: false + type: command + name: uncarry + description: Stop carrying someone. + usage: /uncarry + permission: carry.command.uncarry + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if : + - narrate "<&c>You're not carrying anyone!" + - stop + - adjust passengers: diff --git a/scripts/character/character_commands.dsc b/scripts/character/character_commands.dsc new file mode 100644 index 0000000..28f3029 --- /dev/null +++ b/scripts/character/character_commands.dsc @@ -0,0 +1,102 @@ +character_command_rpname: + debug: false + type: command + name: rpname + description: Sets your roleplay name. + usage: /rpname (name) + permission: character.command.rpname + tab completions: + 1: <<>name<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a RP name!" + - stop + - define name + - if <[name].length> > 24: + - narrate "<&c>Your RP name must not be longer than 24 characters." + - stop + - if !<[name].regex_matches[^[a-zA-Z0-9\-. <&sq>]+$]>: + - narrate "<&c>Your RP name must only contain alphanumeric characters, spaces, dots, dashes, and single quotes." + - stop + - define used_already ].if_null[null]> + - if <[used_already]> != null: + - if <[used_already]> != : + - narrate "<&c>This RP name is already taken!" + - stop + - define new_rpnames ]> + - if : + - define new_rpnames <[new_rpnames].exclude[]> + - define new_rpnames <[new_rpnames].with[<[name]>].as[]> + - flag character_rpname:<[name]> + - flag server character_rpnames:<[new_rpnames]> + - narrate format:formats_prefix "Set your RP Name to <&e><[name]><&7>." + +character_command_setdescription: + debug: false + type: command + name: setdescription + aliases: + - setdesc + description: Sets your roleplay description. + usage: /setdescription (description) + permission: character.command.setdescription + tab completions: + 1: <<>description<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a description!" + - stop + - define description + - flag character_description:<[description]> + - narrate format:formats_prefix "Changed your description! View it with /viewdescription." + +character_command_viewdescription: + debug: false + type: command + name: viewdescription + aliases: + - viewdesc + description: Sets your roleplay description. + usage: /viewdescription + permission: character.command.viewdescription + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define name ]> + - define description ]> + - narrate format:formats_prefix "<&e> <&7>Character Info" + - narrate "<&7>Your name<&c>: <&f><[name]>" + - narrate "<&7>Your description<&c>: <&f><[description]>" + +character_command_findname: + debug: false + type: command + name: findname + aliases: + - fn + description: Find name of player based on RP name. + usage: /findname (rpname) + permission: character.command.findname + tab completions: + 1: <<>rpname<>> + script: + - if <= 0: + - narrate "<&c>Please enter a RP name!" + - stop + - define query + - define found_player ].get[<[query]>].if_null[null]> + - if <[found_player]> == null: + - narrate format:formats_prefix "No player with this RP name could be found." + - stop + - else: + - define found_player ]> + - narrate format:formats_prefix "The actual name of <[query]> is <&e><[found_player].name>" diff --git a/scripts/character/character_tasks.dsc b/scripts/character/character_tasks.dsc new file mode 100644 index 0000000..f025e6b --- /dev/null +++ b/scripts/character/character_tasks.dsc @@ -0,0 +1,13 @@ +character_get_name: + debug: false + type: procedure + definitions: player + script: + - determine <[player].flag[character_rpname].if_null[<[player].name>]> + +character_get_description: + debug: false + type: procedure + definitions: player + script: + - determine <[player].flag[character_description].if_null[No<&sp>description<&sp>set.]> diff --git a/scripts/character/character_world.dsc b/scripts/character/character_world.dsc new file mode 100644 index 0000000..f276903 --- /dev/null +++ b/scripts/character/character_world.dsc @@ -0,0 +1,15 @@ +character_world: + debug: false + type: world + events: + on player right clicks player: + - define target + - if <[target].is_npc>: + - stop + - determine cancelled passively + - ratelimit 1s + - define name ]> + - define description ]> + - narrate format:formats_prefix "<&e><[target].name> <&7>Character Info" + - narrate "<&7>Name<&c>: <&f><[name]>" + - narrate "<&7>Description<&c>: <&f><[description]>" diff --git a/scripts/chat/chat_commands.dsc b/scripts/chat/chat_commands.dsc new file mode 100644 index 0000000..e8b2d1a --- /dev/null +++ b/scripts/chat/chat_commands.dsc @@ -0,0 +1,418 @@ +chat_command_ooc: + debug: false + type: command + name: ooc + usage: /ooc (message) + description: Sends a message in global OOC. + permission: chat.command.chat.ooc + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - if !: + - if == ooc: + - narrate "<&c>You are currently switched to OOC chat, so you cannot disable it." + - stop + - flag chat_disableooc:true + - narrate format:formats_prefix "Disabled OOC chat." + - else: + - flag chat_disableooc:! + - narrate format:formats_prefix "Enabled OOC chat." + - stop + - else if : + - narrate "<&c>You cannot use OOC chat while it is disabled. Please enable it first." + - stop + - run chat_channel_ooc def.player: def.message: + +chat_command_looc: + debug: false + type: command + name: looc + usage: /looc (message) + description: Sends a message in local LOOC. + permission: chat.command.chat.looc + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_looc def.player: def.message: + +chat_command_me: + debug: false + type: command + name: me + usage: /me (message) + description: Sends a message in IC, 1st person action. + permission: chat.command.chat.me + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_me def.player: def.message: + +chat_command_meclose: + debug: false + type: command + name: meclose + usage: /meclose (message) + aliases: + - mec + description: Sends a message in IC, 1st person action, close range. + permission: chat.command.chat.mec + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_mec def.player: def.message: + +chat_command_melong: + debug: false + type: command + name: melong + usage: /melong (message) + aliases: + - mel + description: Sends a message in IC, 1st person action, long range. + permission: chat.command.chat.mel + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_mel def.player: def.message: + +chat_command_whisper: + debug: false + type: command + name: whisper + usage: /whisper (message) + aliases: + - w + description: Sends a message in IC, whispering. + permission: chat.command.chat.whisper + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_whisper def.player: def.message: + +chat_command_yell: + debug: false + type: command + name: yell + usage: /yell (message) + aliases: + - y + description: Sends a message in IC, yelling. + permission: chat.command.chat.yell + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_yell def.player: def.message: + +chat_command_my: + debug: false + type: command + name: my + usage: /my (message) + description: Sends a message in IC, 1st person possessive. + permission: chat.command.chat.my + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_my def.player: def.message: + +chat_command_it: + debug: false + type: command + name: it + usage: /it (message) + description: Sends a message in IC, 3rd person action. + permission: chat.command.chat.it + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_it def.player: def.message: + +chat_command_itclose: + debug: false + type: command + name: itclose + usage: /itclose (message) + aliases: + - itc + description: Sends a message in IC, 3rd person action, close range. + permission: chat.command.chat.itc + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_itc def.player: def.message: + +chat_command_itl: + debug: false + type: command + name: itlong + usage: /itlong (message) + aliases: + - itl + description: Sends a message in IC, 3rd person action, long range. + permission: chat.command.chat.itl + tab completions: + 1: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter a message!" + - stop + - run chat_channel_ic_itl def.player: def.message: + +chat_command_languageadd: + debug: false + type: command + name: languageadd + usage: /languageadd (player) (language) + aliases: + - langadd + description: Allows a user to speak a new language. + permission: chat.command.admin.languageadd + tab completions: + 1: + 2: + script: + - if < 2: + - narrate "<&c>Invalid use. Please try / (player) (language)." + - stop + - define player ].if_null[null]> + - if <[player]> == null: + - narrate "<&c>A player with name was not found." + - stop + - define language + - define known + - if !<[known].contains[<[language]>]>: + - narrate "<&c>Language <[language]> is not a known language." + - stop + - flag <[player]> chat_languages:<[player].flag[chat_languages].if_null[].include[<[language]>].deduplicate> + - narrate format:formats_prefix "Player <&e><[player].name> <&7>may now speak in <[language]>." + +chat_command_languageremove: + debug: false + type: command + name: languageremove + usage: /languageremove (player) (language) + aliases: + - langremove + - langrem + description: Removes a language that a player knows. + permission: chat.command.admin.languageremove + tab completions: + 1: + 2: + script: + - if < 2: + - narrate "<&c>Invalid use. Please try / (player) (language)." + - stop + - define player ].if_null[null]> + - if <[player]> == null: + - narrate "<&c>A player with name was not found." + - stop + - define language + - define known + - if !<[known].contains[<[language]>]>: + - narrate "<&c>Language <[language]> is not a known language." + - stop + - flag <[player]> chat_languages:<[player].flag[chat_languages].if_null[].exclude[<[language]>]> + - narrate format:formats_prefix "Player <&e><[player].name> <&7>cannot speak <[language]> any longer." + +chat_command_language: + debug: false + type: command + name: language + usage: /language (language) (message) + aliases: + - lang + description: Sends a message in IC, in a language. + permission: chat.command.chat.language + tab completions: + 1: ]> + 2: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 1: + - narrate "<&c>Invalid use. Please use / (language) (message)." + - stop + - define language + - if !].if_null[false]>: + - narrate "<&c>Your character cannot speak in <[language]>." + - stop + - run chat_channel_ic_language def.player: def.message: def.language:<[language]> + +chat_command_languagewhisper: + debug: false + type: command + name: languagewhisper + usage: /languagewhisper (language) (message) + aliases: + - langwhisper + - langw + description: Sends a message in IC, in a language, whispering. + permission: chat.command.chat.languagewhisper + tab completions: + 1: ]> + 2: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 1: + - narrate "<&c>Invalid use. Please use / (language) (message)." + - stop + - define language + - if !].if_null[false]>: + - narrate "<&c>Your character cannot speak in <[language]>." + - stop + - run chat_channel_ic_languagewhisper def.player: def.message: def.language:<[language]> + +chat_command_languageyell: + debug: false + type: command + name: languageyell + usage: /languageyell (language) (message) + aliases: + - langyell + - langy + description: Sends a message in IC, in a language, yelling. + permission: chat.command.chat.languageyell + tab completions: + 1: ]> + 2: <<>message<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 1: + - narrate "<&c>Invalid use. Please use / (language) (message)." + - stop + - define language + - if !].if_null[false]>: + - narrate "<&c>Your character cannot speak in <[language]>." + - stop + - run chat_channel_ic_languageyell def.player: def.message: def.language:<[language]> + +## +## Channel switch +## + +chat_command_channelswitch: + debug: false + type: command + name: channelswitch + usage: /channelswitch (channel) + aliases: + - chsw + description: Changes your main channel. + permission: chat.command.channelswitch + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Invalid use. Please use / (channel)." + - stop + - define channel + - choose <[channel]>: + - case ic: + - flag chat_channel:ic + - narrate format:formats_prefix "Changed channel to IC." + - stop + - case ooc: + - if : + - narrate "<&c>You currently have OOC disabled. Use /ooc first to enable it." + - stop + - flag chat_channel:ooc + - narrate format:formats_prefix "Changed channel to OOC." + - stop + - narrate "<&c>Unknown channel <[channel]>. Please try: ic, ooc." + +## +## Chat Color +## + +chat_command_chatcolor: + debug: false + type: command + name: chatcolor + usage: /chatcolor (color) + description: Changes the chat color for your actions. + permission: chat.command.chatcolor + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Invalid use. Please use / (color)." + - stop + - define color + - if !]>: + - narrate "<&c>You must choose a color from this list: " + - stop + - flag chat_color:].hex>].parse_color> + - narrate format:formats_prefix "Changed chat color to ].hex>].parse_color><[color]>." diff --git a/scripts/chat/chat_data.dsc b/scripts/chat/chat_data.dsc new file mode 100644 index 0000000..4a2f6b2 --- /dev/null +++ b/scripts/chat/chat_data.dsc @@ -0,0 +1,142 @@ +chat_data_languages: + debug: false + type: data + # all languages allowed by Google Translate + known: + - Afrikaans + - Akan + - Albanian + - Amharic + - Arabic + - Armenian + - Assamese + - Aymara + - Azerbaijani + - Bambara + - Basque + - Belarusian + - Bengali + - Bhojpuri + - Bosnian + - Bulgarian + - Burmese + - Catalan + - Cebuano + - Chewa + - Chinese + - Corsican + - Croatian + - Czech + - Danish + - Dhivehi + - Dogri + - Dutch + #- English + - Esperanto + - Estonian + - Ewe + - Filipino + - Finnish + - French + - Galician + - Georgian + - German + - Goan Konkani + - Greek + - Guarani + - Gujarati + - Haitian Creole + - Hausa + - Hawaiian + - Hebrew + - Hindi + - Hmong + - Hungarian + - Icelandic + - Igbo + - Ilocano + - Indonesian + - Irish + - Italian + #- Japanese + - Javanese + - Kannada + - Kazakh + - Khmer + - Kinyarwanda + - Konkani + - Korean + - Krio + - Kurdish + - Kyrgyz + - Lao + - Latin + - Latvian + - Lingala + - Lithuanian + - Luganda + - Luxembourgish + - Macedonian + - Maithili + - Malagasy + - Malay + - Malayalam + - Maldivian + - Maltese + - Māori + - Marathi + - Meitei + - Mizo + - Mongolian + - Nepali + - Northern Sotho + - Norwegian + - Nyanja + - Odia + - Oromo + - Pashto + - Persian + - Polish + - Portuguese + - Punjabi + - Quechua + - Romanian + - Russian + - Samoan + - Sanskrit + - Scottish Gaelic + - Serbian + - Shona + - Sindhi + - Sinhala + - Slovak + - Slovene + - Somali + - Sotho + - Southern Quechua + - Spanish + - Sundanese + - Swahili + - Swedish + - Tagalog + - Tajik + - Tamil + - Tatar + - Telugu + - Thai + - Tigrinya + - Tsonga + - Turkish + - Turkmen + - Twi + - Ukrainian + - Urdu + - Uyghur + - Uzbek + - Vietnamese + - Welsh + - West Frisian + - Xhosa + - Yiddish + - Yoruba + - Zulu diff --git a/scripts/chat/chat_tasks.dsc b/scripts/chat/chat_tasks.dsc new file mode 100644 index 0000000..d1ca7dd --- /dev/null +++ b/scripts/chat/chat_tasks.dsc @@ -0,0 +1,266 @@ +chat_name_ooc: + debug: false + type: procedure + definitions: player + script: + - determine ].if_null[<&7>].parse_color><[player].name> + +chat_special_group: + debug: false + type: procedure + definitions: player + script: + - define result ].if_null[<&f>].parse_color> + - if <[result].strip_color.length> > 0: + - define result <[result]><&sp> + - determine <[result]> + +chat_roles_group: + debug: false + type: procedure + definitions: player + script: + - determine ].if_null[<&f>].parse_color><&f> + +chat_channel_ooc: + debug: false + type: task + definitions: player|message + script: + - define message <[message].strip_color.replace[&\].with[&].unescaped> + - define final "<&8>[<&7><&l>OOC<&8>] ]>]><&7>: <&l><[message]>" + - narrate targets:]> <[final]> + - announce to_console <[final]> + +chat_channel_looc: + debug: false + type: task + definitions: player|message + script: + - define message <[message].strip_color.replace[&\].with[&].unescaped> + - define final "<&8>[<&7>LOOC<&8>] ]><&7>]> ]><&7>: <[message]>" + - narrate targets:<[player].location.find_players_within[10]> <[final]> + - announce to_console <[final]> + +chat_allowed_colors: + debug: false + type: procedure + script: + - determine + +chat_tokenize_actions: + debug: false + type: procedure + definitions: message|initializer|actioncolor|speechcolor|separator|forcecaps + script: + - define result + - define index 1 + - if <[message].starts_with[*]>: + - define index 2 + - else: + - define result <[actioncolor]><[initializer]> + - foreach <[message].split[*]> as:token: + - if <[token].trim.parse_color.strip_color.length> <= 0: + - foreach next + - if <[index].is_odd>: + - if <[forcecaps]>: + - define token <[token].replace[&\].with[&].unescaped.to_uppercase> + - define result "<[result]> <[separator]><[speechcolor]><[token].trim><[separator]>" + - else: + - define result "<[result]> <[actioncolor]><[token].trim>" + - define index <[index].add[1]> + - determine <[result].trim> + +chat_channel_ic: + debug: false + type: task + definitions: player|message + script: + - if <[message].starts_with[*]> && <[message].split[*].size> == 2: + - if <[message].ends_with[*]>: + - run chat_channel_ic_me def.player:<[player]> def.message:<[message].substring[2,<[message].length.sub[1]>]> + - else: + - run chat_channel_ic_me def.player:<[player]> def.message:<[message].substring[2,<[message].length>]> + - stop + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define tokenized |]>says<&7>:|]>|<&f>|<&f><&dq><&f>|false].replace[&\].with[&].unescaped> + - define final "<&color[#b8b9ba]>]> <&f>]>]> ]> <[tokenized]>" + - narrate targets:<[player].location.find_players_within[10]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_me: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&e>*** <&f>]> ]>]> ]> ]><&o><[message]>" + - narrate targets:<[player].location.find_players_within[10]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_mec: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&e>* <&f>]> ]>]> ]> ]><&o><[message]>" + - narrate targets:<[player].location.find_players_within[3]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_mel: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&e>**** <&f>]> ]>]> ]> ]><&o><[message]>" + - narrate targets:<[player].location.find_players_within[25]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_whisper: + debug: false + type: task + definitions: player|message + script: + - if <[message].starts_with[*]> && <[message].split[*].size> == 2: + - if <[message].ends_with[*]>: + - run chat_channel_ic_mec def.player:<[player]> def.message:<[message].substring[2,<[message].length.sub[1]>]> + - else: + - run chat_channel_ic_mec def.player:<[player]> def.message:<[message].substring[2,<[message].length>]> + - stop + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define tokenized |whispers|<&8>|<&7>|<&6><&sq>|false].replace[&\].with[&].unescaped> + - define final "<&color[#d1d1d1]>]> <&f>]>]> ]> <[tokenized]>" + - narrate targets:<[player].location.find_players_within[3]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_yell: + debug: false + type: task + definitions: player|message + script: + - if <[message].starts_with[*]> && <[message].split[*].size> == 2: + - if <[message].ends_with[*]>: + - run chat_channel_ic_mel def.player:<[player]> def.message:<[message].substring[2,<[message].length.sub[1]>]> + - else: + - run chat_channel_ic_mel def.player:<[player]> def.message:<[message].substring[2,<[message].length>]> + - stop + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define tokenized |yells|<&6>|<&f>|<&6><&sq>|true].replace[&\].with[&].unescaped> + - define final "<&f>]> ]>]> ]> <[tokenized]>" + - narrate targets:<[player].location.find_players_within[25]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_my: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define possession_name ]> + - if <[possession_name].to_lowercase.ends_with[s]>: + - define possession_name <[possession_name]><&sq> + - else: + - define possession_name <[possession_name]><&sq>s + - define final "<&e>*** <&f>]> ]>]> <[possession_name]> <&f><[message]>" + - narrate targets:<[player].location.find_players_within[10]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_it: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&6>*** <&e><[message]> <&7>(]>)" + - narrate targets:<[player].location.find_players_within[10]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_itc: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&6>* <&e><[message]> <&7>(]>)" + - narrate targets:<[player].location.find_players_within[3]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_itl: + debug: false + type: task + definitions: player|message + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final "<&6>**** <&e><[message]> <&7>(]>)" + - narrate targets:<[player].location.find_players_within[25]> <[final]> + - announce to_console <[final]> + +chat_channel_ic_language: + debug: false + type: task + definitions: player|message|language + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final_known "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> ]>says <&f><&dq><&o><[message]><&f><&dq> in <[language]>" + - define final_unknown "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> ]>says something in <[language]>" + - define all <[player].location.find_players_within[10]> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + - announce to_console <[final_known]> + +chat_channel_ic_languagewhisper: + debug: false + type: task + definitions: player|message|language + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final_known "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> <&f>whispers <&dq><&o><[message]><&f><&dq> in <[language]>" + - define final_unknown "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> <&f>whispers something in <[language]>" + - define all <[player].location.find_players_within[3]> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + - announce to_console <[final_known]> + +chat_channel_ic_languageyell: + debug: false + type: task + definitions: player|message|language + script: + - define message <[message].replace[&\].with[&].unescaped> + - if !<[player].has_permission[chat.colors]>: + - define message <[message].strip_color> + - define final_known "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> <&f>yells <&dq><&o><[message].to_uppercase><&f><&dq> in <[language]>" + - define final_unknown "<&6>[<&7>L<&6>] <&f>]> ]>]> ]> <&f>yells something in <[language]>" + - define all <[player].location.find_players_within[25]> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + - announce to_console <[final_known]> diff --git a/scripts/chat/chat_world.dsc b/scripts/chat/chat_world.dsc new file mode 100644 index 0000000..4c23dab --- /dev/null +++ b/scripts/chat/chat_world.dsc @@ -0,0 +1,11 @@ +chat_world: + debug: false + type: world + events: + on player chats: + - determine cancelled passively + - define channel + - if <[channel]> == ic: + - run chat_channel_ic def.player: def.message: + - else if <[channel]> == ooc: + - run chat_channel_ooc def.player: def.message: diff --git a/scripts/furniture/furniture_commands.dsc b/scripts/furniture/furniture_commands.dsc new file mode 100644 index 0000000..5410cf9 --- /dev/null +++ b/scripts/furniture/furniture_commands.dsc @@ -0,0 +1,14 @@ +furniture_command_furniture: + debug: false + type: command + name: furniture + usage: /furniture + description: Opens the furniture menu. + permission: furniture.command.furniture + tab completions: + 1: + script: + - if != player: + - narrate "<&c>You can only use this command as a player." + - stop + - run furniture_menu def.player: diff --git a/scripts/furniture/furniture_config.dsc b/scripts/furniture/furniture_config.dsc new file mode 100644 index 0000000..5bf4390 --- /dev/null +++ b/scripts/furniture/furniture_config.dsc @@ -0,0 +1,47 @@ +furniture_config: + debug: false + type: data + # Furniture using note block states + noteblock: + # note_block, custom_model_data = 1 when held + 1: + represents: Locker (East) + is: piano,1,false + 2: + represents: Locker (South) + is: piano,2,false + 3: + represents: Locker (West) + is: piano,3,false + 4: + represents: Locker (North) + is: piano,4,false + # Furniture using custom_block.dsc library + custom_block: + # iron_horse_armor, custom_model_data = 1 when held + iron_horse_armor,1: + represents: School Chair + collision: skeleton_skull + iron_horse_armor,2: + represents: TV + collision: barrier + iron_horse_armor,3: + represents: Book (open) + collision: warped_trapdoor + iron_horse_armor,4: + represents: Book + collision: warped_trapdoor + iron_horse_armor,5: + represents: Book Stack + collision: skeleton_skull + iron_horse_armor,6: + represents: Desk Lamp + collision: red_sandstone_wall + iron_horse_armor,7: + represents: Clipboard + collision: warped_trapdoor + # List of collision blocks - disables interaction without perms + collision_blocks: + #- skeleton_skull + #- red_sandstone_Wall + - warped_trapdoor diff --git a/scripts/furniture/furniture_tasks.dsc b/scripts/furniture/furniture_tasks.dsc new file mode 100644 index 0000000..15a55e6 --- /dev/null +++ b/scripts/furniture/furniture_tasks.dsc @@ -0,0 +1,92 @@ +furniture_cmd_to_noteblock: + debug: false + type: procedure + definitions: cmd + script: + - define data + - if !<[data].contains[<[cmd]>]>: + - determine null + - define noteblock_data <[data].get[<[cmd]>].get[is].split[,]> + - define instrument <[noteblock_data].get[1]> + - define note <[noteblock_data].get[2]> + - define switched <[noteblock_data].get[3]> + - determine ;note=<[note]>;switched=<[switched]>]]> + +furniture_custom_block_any: + debug: false + type: procedure + definitions: material|cmd + script: + - define data + - determine <[data].contains[<[material].name>,<[cmd]>]> + +furniture_cmd_to_custom_block_collision: + debug: false + type: procedure + definitions: material|cmd + script: + - define data + - if !<[data].contains[<[material].name>,<[cmd]>]>: + - determine null + - determine <[data].get[<[material].name>,<[cmd]>].get[collision]> + +furniture_all_items_sorted: + debug: false + type: procedure + script: + - define items + - foreach key:noteblock_cmd as:noteblock_data: + - define noteblock <[noteblock_data].get[represents]>;custom_model_data=<[noteblock_cmd]>]]> + - define items <[items].include[<[noteblock]>]> + - foreach key:custom_block_item_details as:custom_block_data: + - define custom_block_type_cmd_split <[custom_block_item_details].split[,]> + - define custom_item [display=<&f><[custom_block_data].get[represents]>;custom_model_data=<[custom_block_type_cmd_split].get[2]>;hides=all]]> + - define items <[items].include[<[custom_item]>]> + - define items <[items].sort_by_value[display]> + - determine <[items]> + +furniture_menu: + debug: false + type: task + definitions: player|page + script: + - define page <[page].if_null[0]> + - define items ].to[<[page].add[1].mul[45]>]> + - define contents + - foreach <[items]> as:item: + - definemap item_entry: + item: <[item]> + script: furniture_menu_give + definitions: + player: <[player]> + item: <[item]> + - define contents <[contents].with[<[loop_index]>].as[<[item_entry]>]> + - if <[page]> > 0: + - define contents_extra: + 49: + item: <<><<>]]> + script: furniture_menu + definitions: + player: <[player]> + page: <[page].sub[1]> + - define contents <[contents].include[<[contents_extra]>]> + - if <[page].add[1].mul[27]> < <[contents].size>: + - define contents_extra: + 51: + item: <>><>>]]> + script: furniture_menu + definitions: + player: <[player]> + page: <[page].add[1]> + - define contents <[contents].include[<[contents_extra]>]> + - run menu_open def.player:<[player]> "def.title:<&b> 邑邑<&f>邑邑邑邑鄊" def.size:54 def.contents:<[contents]> + +furniture_menu_give: + debug: false + type: task + definitions: player|item + script: + - if !<[player].inventory.can_fit[<[item]>]>: + - narrate targets:<[player]> "<&c>You do not have enough space in your inventory!" + - stop + - give player:<[player]> <[item]> quantity:1 diff --git a/scripts/furniture/furniture_world.dsc b/scripts/furniture/furniture_world.dsc new file mode 100644 index 0000000..b395b23 --- /dev/null +++ b/scripts/furniture/furniture_world.dsc @@ -0,0 +1,105 @@ +# NOTE BLOCK HANDLERS +furniture_world_noteblock: + debug: false + type: world + events: + on player places note_block: + - if > 0: + - define noteblock ]> + - if <[noteblock]> != null: + - modifyblock <[noteblock]> no_physics + - stop + - adjustblock note:0 + - adjustblock instrument:piano + - adjustblock switched:false + on player right clicks note_block: + - if !: + - determine cancelled + on player breaks block: + - if : + - run furniture_world_note_block_undo_update def.at: + - if : + - run furniture_world_note_block_undo_update def.at: + on player places block: + - if : + - run furniture_world_note_block_undo_update def.at: + - if : + - run furniture_world_note_block_undo_update def.at: + +furniture_world_note_block_undo_update: + debug: false + type: task + definitions: at + script: + - define old_material <[at].material> + - modifyblock <[at]> <[old_material]> no_physics delayed + +# CUSTOM BLOCK HANDLERS +furniture_world_custom_block: + debug: false + type: world + events: + on player right clicks block: + - if ! && !: + - stop + - if : + - stop + - if !|]>: + - stop + - ratelimit 5t + - determine cancelled passively + # + - define cursor_solid + - if <[cursor_solid]> == null: + - stop + - define block_face_normal ;fluids=false;nonsolids=false]> + - define target_block <[cursor_solid].add[<[block_face_normal]>]> + - if <[target_block].material.is_solid>: + - stop + # + - define material [custom_model_data=] + # + - define pitch ].pass[0].fail[180]> + - define yaw + - if <[yaw]> == 1: + - define yaw 90 + - if <[yaw]> == 2: + - define yaw 180 + - if <[yaw]> == 3: + - define yaw -90 + - if <[yaw]> == 4: + - define yaw 0 + # + - define collision_block |]> + - modifyblock <[target_block]> <[collision_block]> no_physics + # + - run custom_block_create def.at:<[target_block]> def.material:<[material]> def.pitch:<[pitch]> def.yaw:<[yaw]> + - animate animation:ARM_SWING + - playsound sound:BLOCK_STONE_PLACE sound_category:blocks pitch:0.7 + on player breaks block: + - if ]> == null: + - stop + - if ! && !: + - determine cancelled passively + - stop + - run custom_block_destroy def.at: + # + # WORLDEDIT COMPATIBILITY + # + on custom event id:worldedit_edit: + - announce to_ops "Actor: ; Locations: " + +# COLLISION BLOCK HANDLERS +furniture_world_collision_block: + debug: false + type: world + events: + on player right clicks block bukkit_priority:high: + - if == null: + - stop + - if ! && !: + - stop + - if : + - stop + - if ].if_null[false]>: + - determine cancelled diff --git a/scripts/guns/guns_commands.dsc b/scripts/guns/guns_commands.dsc new file mode 100644 index 0000000..07feedd --- /dev/null +++ b/scripts/guns/guns_commands.dsc @@ -0,0 +1,29 @@ +guns_command_unstun: + debug: false + type: command + name: unstun + description: Unstun a shot or tased player. + usage: /unstun + aliases: + - untase + permission: guns.command.unstun + tab completions: + default: PressEnter + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define target + - if <[target]> == null: + - narrate "<&c>Please look towards the player you want to unstun." + - stop + - if <[target].is_npc>: + - narrate "<&c>Please look towards the player you want to unstun." + - stop + - if !<[target].has_flag[guns_frozen]>: + - narrate "<&c>This player is not stunned!" + - stop + - animate <[target]> animation:stop_sitting + - flag <[target]> guns_frozen:! + - narrate format:formats_prefix "You have unstunned ]>." + - narrate format:formats_prefix "You have been unstunned." targets:<[target]> diff --git a/scripts/guns/guns_tasks.dsc b/scripts/guns/guns_tasks.dsc new file mode 100644 index 0000000..6f9f22c --- /dev/null +++ b/scripts/guns/guns_tasks.dsc @@ -0,0 +1,10 @@ +guns_unfreeze: + debug: false + definitions: player + type: task + script: + - waituntil max:60s <[player].is_online.not.or[<[player].has_flag[guns_frozen].not>]> + - if !<[player].has_flag[guns_frozen]>: + - stop + - animate <[player]> animation:stop_sitting + - flag <[player]> guns_frozen:! diff --git a/scripts/guns/guns_world.dsc b/scripts/guns/guns_world.dsc new file mode 100644 index 0000000..bcd4a37 --- /dev/null +++ b/scripts/guns/guns_world.dsc @@ -0,0 +1,65 @@ +guns_world_common: + debug: false + type: world + events: + after player join: + - if !: + - stop + - animate animation:sit + - run guns_unfreeze path:script def: + - narrate format:formats_prefix "You logged off before you were unstunned. You will remain stunned for 60 seconds." + on player teleports: + - if : + - determine cancelled passively + +guns_world_gun: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - ratelimit 1s + # - playsound custom sound:your_custom_sound + - playsound sound:entity_arrow_shoot + - define target + - if <[target]> == null: + - define location + - if <[location]> == null: + - define location + - playeffect effect:redstone at:].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0 + - stop + - playeffect effect:redstone at:].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0 + - if <[target].entity_type> != player: + - stop + - if <[target].has_flag[guns_frozen]>: + - stop + - animate <[target]> animation:sit + - flag <[target]> guns_frozen:true + - run guns_unfreeze path:script def:<[target]> + - narrate format:formats_prefix "You shot ]>" + - narrate format:formats_prefix "You have been shot by ]>" targets:<[target]> + +guns_world_taser: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - ratelimit 1s + - define target + - if <[target]> == null: + - stop + - if <[target].entity_type> != player: + - stop + - if <[target].has_flag[guns_frozen]>: + - stop + - playeffect effect:redstone at:].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0 + # - playsound custom sound:your_custom_sound + - playsound sound:entity_armor_stand_hit + - animate <[target]> animation:sit + - flag <[target]> guns_frozen:true + - run guns_unfreeze path:script def:<[target]> + - narrate format:formats_prefix "You tased ]>" + - narrate format:formats_prefix "You have been tased by ]>" targets:<[target]> diff --git a/scripts/lib/anvil_input.dsc b/scripts/lib/anvil_input.dsc new file mode 100644 index 0000000..6aca0ab --- /dev/null +++ b/scripts/lib/anvil_input.dsc @@ -0,0 +1,62 @@ +# +# Anvil Input +# A library that lets you use anvil inputs instead of chat inputs. +# + +# +# Requests input from the player with the given prompt, and then applies +# the result to the callback. +# +# The callback is a task with two definitions: a player, and the input. +# The callback is called an filled automatically by this task once the anvil +# input is complete. +# +anvil_input: + debug: false + type: task + definitions: player|prompt|callback + script: + - if !<[player].is_online>: + - stop + - define inventory 邑邑邑邑]]> + - define rename <[prompt]>]]> + - flag <[rename]> anvil_input:true + - inventory set slot:1 origin:<[rename]> destination:<[inventory]> + - flag <[player]> anvil_input:<[callback]> + - inventory open destination:<[inventory]> player:<[player]> + +# Handles anvil input events +anvil_input_world: + debug: false + type: world + events: + on player prepares anvil craft item: + - if !: + - stop + - determine 0 passively + - wait 1t + - take flagged:anvil_input quantity:9999 + on player clicks in anvil: + - if !: + - stop + - determine cancelled passively + - if != 3: + - stop + - define result ]>].strip_color> + - define callback + - flag anvil_input:! + - playsound sound:input.ok custom + - run <[callback]> def.player: def.input:<[result]> + - inventory close + - wait 1t + - take flagged:anvil_input quantity:9999 + - adjust item_on_cursor: + on player closes anvil: + - if !: + - stop + - flag anvil_input:! + - wait 1t + - take flagged:anvil_input quantity:9999 + - narrate "<&c>Cancelled input..." + on player join: + - take flagged:anvil_input quantity:9999 diff --git a/scripts/lib/ball.dsc b/scripts/lib/ball.dsc new file mode 100644 index 0000000..e51f63b --- /dev/null +++ b/scripts/lib/ball.dsc @@ -0,0 +1,149 @@ +# Ball Library +# A library that manages & controls "bouncing balls", i.e. some kind of game ball +# which has gravity, movement, collision, and so on. +# It also efficiently handles everything and adds custom event handlers that other +# plugins can handle. + + +# Creates a new ball with the given id, at the given location, with the given +# collision size and using the given display item, and some gravity multiplier. +# Only one ball with a given id can exist at one time. If this method is called +# while another ball with this id exists, it will be removed automatically. +ball_create: + debug: false + type: task + definitions: id|location|size|display_item|gravity_multiplier + script: + - ~run ball_remove def.id:<[id]> + - spawn slime[silent=true;size=<[size]>;has_ai=false;visible=false] <[location].with_pitch[0].with_yaw[0]> save:ball_collision + - define ball_collision + - define size <[ball_collision].bounding_box.get[1].sub[<[ball_collision].location>].x.abs.add[0.01]> + - spawn armor_stand[invulnerable=true;has_ai=false;gravity=false;visible=false] <[location].with_pitch[0].with_yaw[0].below[<[size].add[1]>]> save:ball_display + - define ball_display + - adjust <[ball_display]> equipment:]> + - flag <[ball_collision]> ball:<[id]> + - flag <[ball_collision]> ball_display:<[ball_display]> + - flag <[ball_collision]> ball_velocity:]> + - flag <[ball_collision]> ball_size:<[size]> + - flag <[ball_collision]> ball_gravity:<[gravity_multiplier]> + - flag <[ball_display]> ball:<[id]> + - flag server ball:].with[<[id]>].as[<[ball_collision]>]> + - determine <[ball_collision]> + +# Removes a ball by id. If that ball does not exist, it will silently fail. +ball_remove: + debug: false + type: task + definitions: id + script: + - if ].contains[<[id]>]>: + - remove ].flag[ball_display]> + - remove ]> + - flag server ball:]> + +# Gets a ball by id. +ball_get: + debug: false + type: procedure + definitions: id + script: + - determine ].get[<[id]>]> + +# Adds a vector to the ball's current velocity +# This has the effect of "pushing" the ball in that direction. +ball_vector_add: + debug: false + type: task + definitions: ball|vector + script: + - flag <[ball]> ball_velocity:<[ball].flag[ball_velocity].add[<[vector]>]> + +# Handling a ball's event: +# Create a world script and add the following event +# // on custom event id:ball_move: +# The following context is provided: +# - (EleemntTag) - the ball's ID. +# - (EntityTag) - the ball entity with current state in its flag_map +# - (LocationTag) - the ball's current location +# - (LocationTag) - the ball's computed next location, which may be reflected if it bounced +# - (LocationTag) - the ball's current velocity +# - (LocationTag) - the ball's next computed velocity +# - (ElementTag) - true if the ball bounced, false otherwise +# - (ElementTag) - true if the ball bounced or is on the ground, false otherwise +# You can cancel the event as any other event, or you can "determine output:" containing: +# - element 1 (LocationTag): the next location for the ball for when it gets moved +# - element 2 (LocationTag): the next velocity for the next processing tick + +## Do not change! This handles updating the ball's physics as well as movement. +ball_internal_physics_update: + debug: false + type: world + events: + on tick: + - foreach ]> key:id as:ball: + - run ball_internal_physics_update_ball def.ball:<[ball]> + on entity damaged: + - if : + - determine cancelled passively + on player right clicks entity: + - if : + - determine cancelled passively + +ball_internal_physics_update_ball: + debug: false + type: task + definitions: ball + script: + - define velocity <[ball].flag[ball_velocity]> + - define gravity <[ball].flag[ball_gravity].mul[0.035]> + - define now <[ball].location> + - define next <[ball].location.add[<[velocity]>]> + - define yaw <[next].direction[<[now]>].yaw.sub[180].if_null[0]> + - define pitch ].normalize>].represented_angle.to_degrees.sub[90].if_null[0]> + - define now <[now].with_yaw[<[yaw]>].with_pitch[<[pitch]>]> + - define size <[ball].flag[ball_size]> + - define trace <[now].ray_trace[range=<[now].distance[<[next]>].add[<[size]>]>].if_null[null]> + - define bounced false + - if <[trace]> != null: + - define bounced true + - define normal <[trace].direction.vector> + - define direction <[next].sub[<[now]>]> + - define dot <[direction].x.mul[<[normal].x>].add[<[direction].y.mul[<[normal].y>]>].add[<[direction].z.mul[<[normal].z>]>]> + - define reflection <[direction].sub[<[normal].mul[<[dot].mul[2]>]>].mul[0.65]> + - define next <[trace].add[<[reflection]>]> + - define velocity <[reflection]> + - if ]> > 200: + - playsound <[now]> sound:BLOCK_STONE_BREAK pitch:1.8 + - flag <[ball]> ball_sound_time: + - define grounded false + - if !<[ball].location.below[<[size].div[4]>].material.is_solid>: + - define velocity <[velocity].mul[0.99]> + - define velocity <[velocity].add[0,-<[gravity]>,0]> + - else: + - define velocity <[velocity].mul[0.75]> + - define next <[next].with_y[<[next].above[<[size].add[0.25]>].block.y>]> + - define grounded true + - if <[next].sub[<[now]>].vector_length_squared> >= 0.01: + - definemap event_context: + ball_id: <[ball].flag[ball]> + ball: <[ball]> + now: <[now]> + next: <[next]> + velocity_t0: <[ball].flag[ball_velocity]> + velocity_t1: <[velocity]> + bounced: <[bounced]> + ground: <[grounded]> + - customevent id:ball_move context:<[event_context]> save:move_event + - if : + - if : + - stop + - if !: + - define changes + - define next <[changes].get[1].if_null[<[next]>]> + - define velocity <[changes].get[2].if_null[<[velocity]>]> + - flag <[ball]> ball_velocity:<[velocity]> + - if <[size]> <= 2: + - teleport <[ball].flag[ball_display]> <[next].below[<[size].add[0.7]>]> + - else: + - teleport <[ball].flag[ball_display]> <[next].below[<[size].add[0.7]>]> + - teleport <[ball]> <[next]> diff --git a/scripts/lib/custom_block.dsc b/scripts/lib/custom_block.dsc new file mode 100644 index 0000000..2d33d0b --- /dev/null +++ b/scripts/lib/custom_block.dsc @@ -0,0 +1,179 @@ +# +# Custom Block - a lib/framework to create custom blocks with display entities easily. +# Note: this prioritizes being very fast even for many blocks, players, and without lag even on Vanilla. +# As a result, the range and scope of this is limited to that; you should *really* use note-blocks or +# tripwire block states for most things if you can help it. A mix of both is best! +# +# You should change the computations to handle more chunks instead of just a 3x3 area if you don't expect +# too many players, if your CPU is particularly powerful and fast, and if you don't mind client-side lag. +# +# This library will automatically "render" only the custom blocks in a certain range around the player. +# By default, this is a 3x3 chunk area around the player; the item displays have a 0.75 view-range. +# This will not show the custom entities particularly far, but it will ensure very good FPS & TPS. +# The algorithm should be fairly fast, especially for Denizen; likely a pure Java algorithm would +# have better performance but not by much, since the `fakespawn` and `flag` utils of Denizen are +# hard to beat. +# + +# API +custom_block_create: + debug: false + type: task + definitions: at|material|pitch|yaw|headless + script: + - define pitch <[pitch].if_null[0]> + - define yaw <[yaw].if_null[0]> + - define world <[at].world.name> + - define chunk_x <[at].chunk.x> + - define chunk_z <[at].chunk.z> + # + - define entry_key custom_block_<[world]>,<[chunk_x]>,<[chunk_z]> + - define at <[at].center> + - define where <[at].x>,<[at].y>,<[at].z> + - define value_key <[where]>,<[pitch]>,<[yaw]>,<[material]> + # + - define block_set ].if_null[]> + - if <[block_set].filter_tag[<[filter_value].starts_with[<[where]>]>].size> > 0: + - debug error "[Custom Block Lib] Duplicate block add: <[where]>,<[world]>! Call custom_block_destroy first" + - stop + - define block_set <[block_set].include[<[value_key]>]> + - flag server <[entry_key]>:<[block_set]> + # + - if <[headless].if_null[false]>: + - stop + - define players + - repeat 3 from:<[chunk_x].sub[1]> as:i: + - repeat 3 from:<[chunk_z].sub[1]> as:k: + - define chunk ,<[k]>,<[world]>]> + - foreach <[chunk].players> as:player: + - define players <[players].include[<[player]>].deduplicate> + - foreach <[players]> as:player: + - run custom_block_render def.player:<[player]> + +custom_block_destroy: + debug: false + type: task + definitions: at|headless + script: + - define world <[at].world.name> + - define chunk_x <[at].chunk.x> + - define chunk_z <[at].chunk.z> + - define entry_key custom_block_<[world]>,<[chunk_x]>,<[chunk_z]> + # + - define at <[at].center> + - define where <[at].x>,<[at].y>,<[at].z> + # + - define block_set ].if_null[]> + - define block_set_length <[block_set].size> + - define block_set <[block_set].filter_tag[<[filter_value].starts_with[<[where]>].not>]> + - if <[block_set].size> == <[block_set_length]>: + - debug error "[Custom Block Lib] Tried removing inexistent custom block: <[where]>,<[world]>" + - stop + - if <[block_set].size> == 0: + - flag server <[entry_key]>:! + - else: + - flag server <[entry_key]>:<[block_set]> + # + - if <[headless].if_null[false]>: + - stop + - define players + - repeat 3 from:<[chunk_x].sub[1]> as:i: + - repeat 3 from:<[chunk_z].sub[1]> as:k: + - define chunk ,<[k]>,<[world]>]> + - foreach <[chunk].players> as:player: + - define players <[players].include[<[player]>].deduplicate> + - foreach <[players]> as:player: + - run custom_block_render def.player:<[player]> + +custom_block_at: + debug: false + type: procedure + definitions: at + script: + - define world <[at].world.name> + - define chunk_x <[at].chunk.x> + - define chunk_z <[at].chunk.z> + - define entry_key custom_block_<[world]>,<[chunk_x]>,<[chunk_z]> + # + - define at <[at].center> + - define where <[at].x>,<[at].y>,<[at].z> + # + - if !]>: + - determine null + - define block_set ]> + - foreach <[block_set]> as:cblock: + - if <[cblock].starts_with[<[where]>]>: + - determine <[cblock].split[,].get[6]> + - determine null + +# Render routine +custom_block_flush: + debug: false + type: task + definitions: player|complete + script: + - define complete <[complete].if_null[false]> + - define prerendered <[player].flag[custom_block_prerendered].if_null[]> + - if <[complete]>: + - foreach <[player].fake_entities> as:fentity: + - if <[fentity].custom_name.contains[__CustomBlock__].if_null[false]>: + - fakespawn <[fentity]> cancel player:<[player]> + - else: + - foreach <[player].fake_entities> as:fentity: + - if <[fentity].custom_name.contains[__CustomBlock__].if_null[false]>: + - if !<[prerendered].contains[<[fentity].location.escaped>]>: + - fakespawn <[fentity]> cancel player:<[player]> + +custom_block_render: + debug: false + type: task + definitions: player + script: + - define world <[player].location.world.name> + - define chunk_x <[player].location.chunk.x> + - define chunk_z <[player].location.chunk.z> + - define player_y <[player].location.y> + - flag <[player]> custom_block_lrx:<[chunk_x]> + - flag <[player]> custom_block_lrz:<[chunk_z]> + - flag <[player]> custom_block_lry:<[player_y]> + - define prerendered <[player].flag[custom_block_prerendered].if_null[]> + - define valid + - repeat 3 from:<[chunk_x].sub[1]> as:i: + - repeat 3 from:<[chunk_z].sub[1]> as:k: + - define entry_key custom_block_<[world]>,<[i]>,<[k]> + - if ]>: + - foreach ]> as:cblock: + - define cblock <[cblock].split[,]> + - if <[cblock].get[2].sub[<[player_y]>].abs> > 24: + - foreach next + - define at ,<[cblock].get[2]>,<[cblock].get[3]>,<[cblock].get[4]>,<[cblock].get[5]>,<[world]>]> + - define valid <[valid].with[<[at].escaped>].as[true]> + - if <[prerendered].contains[<[at].escaped>]>: + - foreach next + - define of <[cblock].get[6]> + - define display + - adjust def:display item:]> + - adjust def:display display:fixed + - adjust def:display view_range:0.75 + - adjust def:display custom_name:__CustomBlock__ + - fakespawn <[display]> <[at]> player:<[player]> duration:-1 + - define prerendered <[prerendered].with[<[at].escaped>].as[true]> + - define prerendered <[prerendered].filter_tag[<[valid].contains[<[filter_key]>]>]> + - flag <[player]> custom_block_prerendered:<[prerendered]> + - run custom_block_flush def.player:<[player]> + +custom_block_world: + debug: false + type: world + events: + after player joins: + - flag custom_block_prerendered:! + - run custom_block_flush def.player: def.complete:true + - ~run custom_block_render def.player: + on player walks: + - ratelimit 5t + - if == : + - if == : + - if ].abs> <= 8: + - stop + - ~run custom_block_render def.player: diff --git a/scripts/lib/formats.dsc b/scripts/lib/formats.dsc new file mode 100644 index 0000000..2c0b19e --- /dev/null +++ b/scripts/lib/formats.dsc @@ -0,0 +1,8 @@ +# +# Common Formats - change these to change everywhere! +# + +formats_prefix: + debug: false + type: format + format: <&8>[<&color[#ff96ee]>Sakura<&color[#e8e8e8]>Falls<&8>] <&7><[text]> diff --git a/scripts/lib/gui_restore.dsc b/scripts/lib/gui_restore.dsc new file mode 100644 index 0000000..9fd1ff8 --- /dev/null +++ b/scripts/lib/gui_restore.dsc @@ -0,0 +1,63 @@ +# +# GUI Restore - deletes & restores inventories that start with +# some specific special chars (usually color codes) +# (but also anvils because of anvil_input.dsc) +# + +gui_restore_config: + debug: false + type: data + special_chars: <&f>邑邑邑邑 + +gui_restore_set_later: + debug: false + type: task + definitions: player|slot|item + script: + - flag <[player]> gui_restore_later:<[player].flag[gui_restore_later].if_null[].with[<[slot]>].as[<[item]>]> + +gui_restore_save: + debug: false + type: task + definitions: player + script: + - if <[player].has_flag[gui_restore]>: + - run gui_restore_load def.player: + - flag <[player]> gui_restore:<[player].inventory.map_slots> + - define equipment <[player].inventory.equipment_map> + - inventory clear player:<[player]> + - foreach <[equipment]> key:slot as:item: + - inventory set slot:<[slot]> origin:<[item]> player:<[player]> + - foreach <[player].flag[gui_restore_later].if_null[]> key:slot as:item: + - inventory set slot:<[slot]> origin:<[item]> player:<[player]> + +gui_restore_load: + debug: false + type: task + definitions: player + script: + - if !<[player].has_flag[gui_restore]>: + - stop + - flag <[player]> gui_restore_later:! + - inventory clear player:<[player]> + - foreach <[player].flag[gui_restore]> key:slot as:item: + - inventory set slot:<[slot]> origin:<[item]> player:<[player]> + - flag <[player]> gui_restore:! + +gui_restore_world: + debug: false + type: world + events: + on player joins: + - if : + - flag gui_restore_later:! + - if : + - run gui_restore_load def.player: + on player opens inventory bukkit_priority:lowest: + - if ]>: + - run gui_restore_save def.player: + - if == anvil: + - run gui_restore_save def.player: + on player closes inventory bukkit_priority:lowest: + - if : + - run gui_restore_load def.player: diff --git a/scripts/lib/menu.dsc b/scripts/lib/menu.dsc new file mode 100644 index 0000000..9775786 --- /dev/null +++ b/scripts/lib/menu.dsc @@ -0,0 +1,100 @@ +# +# Utility for creating menus with click handlers on them. +# It also provides a way to make paged menus more easily. +# + +# opens a menu with a title, of size, based on the contents. +# the size must be a multiple of 9 +# +# the contents should be a map pairing the slot to three keys +# the 'item' key is the item's display in the menu +# the 'script' key is the script to call when clicked +# the 'definitions' key is a map pairing definition name to value +# if the script is null, then no script is called on interaction +# if the definitions are null, the script is called without definitions +# at the end, after opening, this task determines the opened inventory. +# +# the fill argument can be ommitted, or is an item which fills any +# slots not specified in the contents map +menu_open: + debug: false + type: task + definitions: player|title|size|contents|fill + script: + - define display_key ].remove[1].parse_tag[<&ss><[parse_value]><&sp>].separated_by[]> + - define inventory <[display_key]>;size=<[size]>]]> + # fill + - foreach <[contents]> key:slot as:data: + - define item <[data].get[item].if_null[null]> + # bad item + - if <[item]> == null: + - foreach next + # fit other data + - define script <[data].get[script].if_null[null]> + - define definitions <[data].get[definitions].if_null[null]> + # flag item accordingly + - if <[script]> != null: + - flag <[item]> _menu_script:<[script]> + - if <[definitions]> != null: + - flag <[item]> _menu_definitions:<[definitions]> + # set in inventory + - inventory set slot:<[slot]> origin:<[item]> destination:<[inventory]> + # has fill attribute? + - if <[fill].if_null[null]> != null: + - repeat <[size]> as:slot: + - if !<[contents].contains[<[slot]>]>: + - inventory set slot:<[slot]> origin:<[fill]> destination:<[inventory]> + # open inventory and return + - inventory open player:<[player]> destination:<[inventory]> + - determine <[inventory]> + +# checks if the passed menu parameter is actually +# a menu or not based on its display key +menu_is: + debug: false + type: procedure + definitions: inventory + script: + - if <[inventory].title.length.sub[22]> < 1: + - determine false + - define display_key <[inventory].title.substring[<[inventory].title.length.sub[22]>].replace[<&sp>].with[].from_secret_colors> + - determine <[display_key].equals[menu]> + +# determines the title of a menu ignoring its display key +# this also strips any colors to avoid annoyances +# useful for other handlers elsewhere +menu_title: + debug: false + type: procedure + definitions: inventory + script: + - determine <[inventory].title.substring[0,<[inventory].title.length.sub[25]>].strip_color.if_null[Unknown]> + +# handles basic clicks in menu inventories +menu_click_handler: + debug: false + type: world + events: + on player clicks item in inventory: + # ignore non-gui clicks + ## as of 1.20.4 + - if != CHEST: + - stop + # ignore non menus + - if !]>: + - stop + # valid menu, stop all events + - determine cancelled passively + # ignore out of bounds clicks + - if > : + - stop + # handle click if any + - define script + - if <[script]> != null: + - define definitions + - if <[definitions]> == null: + # run plain script + - run <[script]> + - else: + # run scripts with definitions + - run <[script]> defmap:<[definitions]> diff --git a/scripts/lib/textbox.dsc b/scripts/lib/textbox.dsc new file mode 100644 index 0000000..6884398 --- /dev/null +++ b/scripts/lib/textbox.dsc @@ -0,0 +1,317 @@ +# +# Textbox - a lib/framework to display an Undertale/RPG style text box. +# Requires resource pack to be set up correctly. +# The magic character is U+9300, i.e 錀, which you can change in the code. +# + +# Writes into the text box display. +# You should provide at most 3 lines into the textbox (though other values are technically allowed). +# Lines are split using $$nl: line3s should be simple text, not a list directly. +# Optionally, provide an avatar_unicode character that should be placed next to the textbox. +textbox_write: + debug: false + type: task + definitions: player|queue|line3s|avatar_unicode + script: + - define avatar_unicode <[avatar_unicode].if_null[null]> + - if <[player].flag[textbox_state].if_null[null]> == writing: + - stop + - if !<[player].is_online>: + - if <[queue].if_null[null]> != null: + - debug log "[Textbox] Write; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline player." + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - if !<[player].is_on_ground> && != spectator: + - if <[player].location.below.material.is_solid>: + - teleport <[player]> <[player].location.below.above.with_y[<[player].location.below.above.y.round_down>]> + - else: + - stop + - waituntil <[player].flag[textbox_state].if_null[null]> == null max:5s + - ~run textbox_flush def.player:<[player]> + - if !<[player].is_online>: + - if <[queue].if_null[null]> != null: + - debug log "[Textbox] Write; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline player." + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - define lines <[line3s].split[$$nl].parse_tag[<[parse_value].trim>]> + - flag <[player]> textbox_state:writing + - flag <[player]> textbox_input:<[lines]> + - flag <[player]> textbox_lines:<[lines].size> + - bossbar create textbox_<[player].uuid>_ui players:<[player]> title:錀 + - bossbar create textbox_<[player].uuid>_1 players:<[player]> title: + - bossbar create textbox_<[player].uuid>_2 players:<[player]> title: + - bossbar create textbox_<[player].uuid>_3 players:<[player]> title: + - wait 1t + - if <[avatar_unicode]> != null: + - bossbar create textbox_<[player].uuid>_avatar players:<[player]> title:<[avatar_unicode]> + - foreach <[lines]> as:line: + - if <[player].flag[textbox_state].if_null[null]> != writing: + - stop + - if !<[player].is_online>: + - stop + - repeat <[line].length>: + - if <[player].flag[textbox_state].if_null[null]> != writing: + - stop + - if !<[player].is_online>: + - stop + - bossbar update textbox_<[player].uuid>_<[loop_index]> title:<[line].substring[1,<[value]>]> + - if <[value].sub[1].mod[3]> == 0: + - playsound sound:textbox.text <[player]> custom pitch: + - wait 1t + - if <[line].substring[<[value].add[1]>,<[value].add[1]>].trim.length.if_null[1]> == 0: + - if <[line].substring[<[value]>,<[value]>]> == ".": + - wait 2t + - if <[line].substring[<[value]>,<[value]>]> == "!": + - wait 2t + - if <[line].substring[<[value]>,<[value]>]> == "?": + - wait 2t + - if <[line].substring[<[value]>,<[value]>]> == "-": + - wait 2t + - if <[line].substring[<[value]>,<[value]>]> == ",": + - wait 2t + - wait + - if <[player].flag[textbox_state].if_null[null]> != writing: + - if <[queue].if_null[null]> != null && <[player].flag[textbox_state].if_null[null]> != continue: + - debug log "[Textbox] Write; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; state mismatch." + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - if !<[player].is_online>: + - if <[queue].if_null[null]> != null: + - debug log "[Textbox] Write; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline player." + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - flag <[player]> textbox_state:continue + +# Skips the textbox and fills in the text quickly - i.e. text mashing +textbox_skip: + debug: false + type: task + definitions: player + script: + - if <[player].flag[textbox_state].if_null[null]> != writing: + - stop + - repeat <[player].flag[textbox_lines]>: + - if !_<[value]>]>: + - bossbar create textbox_<[player].uuid>_<[value]> players:<[player]> title: + - define lines <[player].flag[textbox_input]> + - foreach <[lines]> as:line: + - bossbar update textbox_<[player].uuid>_<[loop_index]> title:<[line]> + - flag <[player]> textbox_state:continue + +# Clears textbox and flushes all flag memory values +textbox_flush: + debug: false + type: task + definitions: player + script: + - if _ui]>: + - bossbar remove textbox_<[player].uuid>_ui + - repeat 3: + - if _<[value]>]>: + - bossbar remove textbox_<[player].uuid>_<[value]> + - if _avatar]>: + - bossbar remove textbox_<[player].uuid>_avatar + - if _top]>: + - bossbar remove textbox_<[player].uuid>_top + - bossbar remove textbox_<[player].uuid>_mid + - bossbar remove textbox_<[player].uuid>_bottom + - flag <[player]> textbox_state:! + - flag <[player]> textbox_input:! + - flag <[player]> textbox_lines:! + - flag <[player]> textbox_choices:! + - wait 10t + +# Handle textbox events +# Internal only! +textbox_world: + debug: false + type: world + events: + # Skip the text and close the textbox by right click + on player right clicks block bukkit_priority:lowest: + - ratelimit 5t + - if == OFF_HAND: + - stop + - inject textbox_handle_click + on player right clicks entity bukkit_priority:lowest: + - ratelimit 5t + - if == OFF_HAND: + - stop + - inject textbox_handle_click + on player animates arm_swing: + - ratelimit 5t + - inject textbox_handle_click + # Disallow block breaking (because skip is done via clicking, even in Creative Mode) + on player breaks block: + - define state + - if <[state]> == writing || <[state]> == continue: + - determine cancelled + # Disallow damage when textbox is active + on player damages entity: + - define state + - if <[state]> == writing || <[state]> == continue: + - determine cancelled + # Flush if rejoin + on player joins: + - run textbox_flush def.player: + # No movement on text + on player walks: + - define state + - if <[state]> == writing || <[state]> == continue: + - if != : + - determine cancelled + - if <[state]> == choice: + - if != : + - determine cancelled passively + - ratelimit 5t + # + - define reference + - define left <[reference].left[0.001]> + - define right <[reference].right[0.001]> + - define up <[reference].forward[0.001]> + - define down <[reference].backward[0.001]> + # + - define min <[left].sub[].vector_length_squared> + - define min_dir left + # + - define right_check <[right].sub[].vector_length_squared> + - if <[right_check]> < <[min]> : + - define min <[right_check]> + - define min_dir right + # + - define up_check <[up].sub[].vector_length_squared> + - if <[up_check]> < <[min]> : + - define min <[up_check]> + - define min_dir top + # + - define down_check <[down].sub[].vector_length_squared> + - if <[down_check]> < <[min]> : + - define min <[down_check]> + - define min_dir bottom + # + - run textbox_internal_choice_select def.player: def.choice_dir:<[min_dir]> + +# Internal only! +textbox_handle_click: + debug: false + type: task + script: + - define state + - if <[state]> == writing: + - determine cancelled passively + - run textbox_skip def.player: + - ratelimit 5t + - else if <[state]> == continue: + - determine cancelled passively + - playsound sound:textbox.close custom + - ~run textbox_flush def.player: + - ratelimit 10t + - else if <[state]> == choice: + - determine cancelled passively + - playsound sound:input.ok custom + - flag textbox_choice_select: + - ~run textbox_flush def.player: + - ratelimit 10t + +# Writes into the text box display. +# You should provide at least 2 and up to 4 choices. +# The choices are defined in the top, left, right, and bottom directions. +# The choices map has this structure: +# choices: +# left: +# text: 'Some Choice 1' +# task: task_to_continue_to_1 +# right: +# text: 'Some Choice 2' +# task: task_to_continue_to_2 +# ... +# When selected, the task receives the player as input in the <[player]> definition. +# The task also receives the direction that was picked in <[choice]>: top, bottom, left or right +textbox_choice: + debug: false + type: task + definitions: player|queue|choices + script: + - if <[player].flag[textbox_state].if_null[null]> == choice: + - stop + - if !<[player].is_online>: + - if <[queue].if_null[null]> != null: + - debug log "[Textbox] Choice; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline" + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - if !<[player].is_on_ground> && != spectator: + - if <[player].location.below.material.is_solid>: + - teleport <[player]> <[player].location.below.above.with_y[<[player].location.below.above.y.round_down>]> + - else: + - stop + - waituntil <[player].flag[textbox_state].if_null[null]> == null + - ~run textbox_flush def.player:<[player]> + - flag <[player]> textbox_state:choice + - flag <[player]> textbox_choices:].with[current].as[left]> + - define first_choice left + - if <[choices].keys.contains[top]>: + - define first_choice top + - if !<[choices].keys.contains[left]>: + - define first_choice <[choices].keys.first> + - run textbox_internal_choice_select def.player:<[player]> def.choice_dir:<[first_choice]> + - waituntil <[player].flag[textbox_choice_select].if_null[null]> != null || !<[player].is_online> + - if !<[player].is_online>: + - if <[queue].if_null[null]> != null: + - debug log "[Textbox] Choice; cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline" + - queue stop <[queue]> + - run textbox_flush def.player:<[player]> + - stop + - define result <[player].flag[textbox_choice_select]> + - flag <[player]> textbox_choice_select:! + - determine <[result]> + +# Internal only! +textbox_internal_choice_select: + debug: false + type: task + definitions: player|choice_dir + script: + - if !_top]>: + - bossbar create textbox_<[player].uuid>_ui players:<[player]> title:錀 + - bossbar create textbox_<[player].uuid>_top players:<[player]> title: + - bossbar create textbox_<[player].uuid>_mid players:<[player]> title: + - bossbar create textbox_<[player].uuid>_bottom players:<[player]> title: + - define choices <[player].flag[textbox_choices].get[data]> + # + - define left <&0><&l><[choices].get[left].get[text].if_null[null]> + - define right <&0><&l><[choices].get[right].get[text].if_null[null]> + - define top <&0><&l><[choices].get[top].get[text].if_null[null]> + - define bottom <&0><&l><[choices].get[bottom].get[text].if_null[null]> + # + - if <[choice_dir]> == left: + - if <[left]> == <&0><&l>null: + - stop + - define left "<&4>❤ <&0><&l><[left]>" + - else if <[choice_dir]> == right: + - if <[right]> == <&0><&l>null: + - stop + - define right "<&4>❤ <&0><&l><[right]>" + - else if <[choice_dir]> == top: + - if <[top]> == <&0><&l>null: + - stop + - define top "<&4>❤ <&0><&l><[top]>" + - else: + - if <[bottom]> == <&0><&l>null: + - stop + - define bottom "<&4>❤ <&0><&l><[bottom]>" + # + - define mid_padding ].repeat[].sub[<[right].strip_color.length>]>]> + # + - if <[top]> != <&0><&l>null: + - bossbar update textbox_<[player].uuid>_top title:<[top]> + - if <[left]> != <&0><&l>null || <[right]> != <&0><&l>null: + - bossbar update textbox_<[player].uuid>_mid title:<[left]><[mid_padding]><[right]> + - if <[bottom]> != <&0><&l>null: + - bossbar update textbox_<[player].uuid>_bottom title:<[bottom]> + - flag <[player]> textbox_choices:].with[current].as[<[choice_dir]>]> + - playsound BLOCK_NOTE_BLOCK_BIT <[player]> pitch:2 diff --git a/scripts/liteprofilesutils/liteprofilesutils_command.dsc b/scripts/liteprofilesutils/liteprofilesutils_command.dsc new file mode 100644 index 0000000..a56bfb9 --- /dev/null +++ b/scripts/liteprofilesutils/liteprofilesutils_command.dsc @@ -0,0 +1,26 @@ +liteprofilesutils_command_profiles: + debug: false + type: command + name: profiles + description: Manage your profiles, neatly. + aliases: + - accountmenu + - pfm + usage: /profiles + tab completions: + 1: + permission: liteprofilesutils.command.profiles + script: + - if != player: + - narrate "<&c>Run this command as a player" + - stop + - define player + - clickable save:accept usages:1 until:30s: + - flag <[player]> liteprofiles_legacy_menu:! + - run liteprofilesutils_show_menu def.player:<[player]> + - narrate + - narrate format:formats_prefix "Our profile system lets you own multiple 'unique accounts' by tricking the server to hand you new unique IDs, which may cause the server to incorrectly save your inventory, ranks, or other data." + - narrate + - narrate "<&c>[<&4><&l>!<&c>] <&7>Consider this feature <&6>experimental<&7>; take screenshots of your items and ranks if you are concerned." + - narrate <&l>[ I UNDERSTAND ]].on_click[]> + - narrate diff --git a/scripts/liteprofilesutils/liteprofilesutils_data.dsc b/scripts/liteprofilesutils/liteprofilesutils_data.dsc new file mode 100644 index 0000000..ef3258d --- /dev/null +++ b/scripts/liteprofilesutils/liteprofilesutils_data.dsc @@ -0,0 +1,12 @@ +liteprofilesutils_data: + debug: false + type: data + rank-sync: + - owner + - admin + - media + sync-op: true + join-leave: + join: <&8>[<&a>+<&8>] <&7> + leave: <&8>[<&c>-<&8>] <&7> + welcome: <&8>[<&6><&l>!<&8>] <&e>Welcome ! diff --git a/scripts/liteprofilesutils/liteprofilesutils_tasks.dsc b/scripts/liteprofilesutils/liteprofilesutils_tasks.dsc new file mode 100644 index 0000000..22cfc65 --- /dev/null +++ b/scripts/liteprofilesutils/liteprofilesutils_tasks.dsc @@ -0,0 +1,126 @@ +liteprofilesutils_load_data: + debug: false + type: task + script: + - ~yaml load:../LiteProfiles/data.yml id:liteprofiles_data + +liteprofilesutils_get_master_uuid: + debug: false + type: procedure + definitions: player + script: + - determine ]> + +liteprofilesutils_get_profile_limit: + debug: false + type: procedure + definitions: player + script: + - determine ]> + +liteprofilesutils_get_profile_count: + debug: false + type: procedure + definitions: player + script: + - determine ].sub[1]> + +liteprofilesutils_show_menu: + debug: false + type: task + definitions: player + script: + - ~run liteprofilesutils_load_data + - define masteruuid ]> + - define profilelimit ]> + - define profilecount ]> + - define contents + # master uuid + - define masteritem + - define mastername ]>]> + - if <[mastername]> == null: + - define mastername "Unnamed Character" + - adjust def:masteritem display:<&f><[mastername]> + - adjust def:masteritem lore:Master Profile|<&f>|<&8>UUID:|<&8><[masteruuid]>]> + - flag <[masteritem]> liteprofiles:]> + - define contents <[contents].include[<[masteritem]>]> + # slave uuids + - define sortedslaveitems + - foreach ].keys.exclude[active].exclude[<[masteruuid]>]> as:slaveuuid: + - define slaveitem + - define slavename ]>]> + - if <[slavename]> == null: + - define slavename "Unnamed Character" + - adjust def:slaveitem display:<&f><[slavename]> + - adjust def:slaveitem lore:Alt Profile|<&f>|<&8>UUID:|<&8><[slaveuuid]>]> + - flag <[slaveitem]> liteprofiles:]> + - define sortedslaveitems <[sortedslaveitems].include[<[slaveitem]>]> + - define sortedslaveitems <[sortedslaveitems].sort_by_value[display]> + - define contents <[contents].include[<[sortedslaveitems]>]> + # free slots + - if <[profilecount]> < <[profilelimit].sub[1]>: + - define freeitem + - adjust def:freeitem "display:<&b>Free Slot" + - adjust def:freeitem lore:Click here to create a new profile]> + - flag <[freeitem]> liteprofiles: + - define contents <[contents].include[<[freeitem]>]> + - repeat <[profilelimit].sub[<[profilecount]>]>: + - define unuseditem + - adjust def:unuseditem "display:<&7>Free Slot" + - define contents <[contents].include[<[unuseditem]>]> + # show + - run liteprofiles_legacy_menus_open def.player:<[player]> def.id:liteprofiles def.page:0 def.contents:<[contents]> + +# # # # # # # # # # # # # # # # # # # # # # # # # +# LEGACY MENU LIBRARY PROVIDED IN LITEPROFILES # +# # # # # # # # # # # # # # # # # # # # # # # # # +# buttons +liteprofiles_legacy_menus_button_previous: + debug: false + type: item + material: ender_pearl + display name: <&a><<><<> + +liteprofiles_legacy_menus_button_next: + debug: false + type: item + material: ender_eye + display name: <&a><>><>> + +# generate menu +liteprofiles_legacy_menus_open: + debug: false + type: task + definitions: player|id|page|contents + script: + - define inventory 邑邑邑邑鄈;size=18]]> + - foreach <[contents].get[<[page].mul[9].add[1]>].to[<[page].add[1].mul[9]>].if_null[]> as:item: + - inventory set origin:<[item]> destination:<[inventory]> slot:<[loop_index]> + - if <[page]> > 0: + - inventory set origin: destination:<[inventory]> slot:13 + - if <[contents].size> > <[page].add[1].mul[9]>: + - inventory set origin: destination:<[inventory]> slot:15 + - flag <[player]> liteprofiles_legacy_menu:].with[page].as[<[page]>].with[contents].as[<[contents]>]> + - define profilelimit ]> + - inventory set origin:How to use;lore=<&7>Your master profile is your original UUID (your main account).|<&7>You will see your other profiles in the menu. Click on any button|<&7>to change to that profile.|<&f>|<&7>You may also create new profiles if you have free slots.|<&7>You currently own <&e><[profilelimit]> profiles<&7>. You may obtain more|<&7>with donation ranks or for animal characters.]]> destination:<[inventory]> slot:10 + - inventory open player:<[player]> destination:<[inventory]> + +# menu button handler +liteprofiles_legacy_menus_button_handler: + debug: false + type: world + events: + on player clicks in inventory: + - if != <&f>邑邑邑邑鄈: + - stop + - determine cancelled passively + # if air ignore, means button doesnt exist or is to be handled elsewhere + # 13 prev 15 next everything else ignore + - if == 13: + - if : + - define data + - run liteprofiles_legacy_menus_open def.player: def.id:<[data].get[id]> def.page:<[data].get[page].sub[1]> def.contents:<[data].get[contents]> + - if == 15: + - if : + - define data + - run liteprofiles_legacy_menus_open def.player: def.id:<[data].get[id]> def.page:<[data].get[page].add[1]> def.contents:<[data].get[contents]> \ No newline at end of file diff --git a/scripts/liteprofilesutils/liteprofilesutils_world.dsc b/scripts/liteprofilesutils/liteprofilesutils_world.dsc new file mode 100644 index 0000000..be7d75d --- /dev/null +++ b/scripts/liteprofilesutils/liteprofilesutils_world.dsc @@ -0,0 +1,95 @@ +liteprofilesutils_world: + debug: false + type: world + events: + ## load YAML data + after server start: + - ~run liteprofilesutils_load_data + ## patch join/leave & rank sync + on player quits: + - define masteruuid ]> + - define profilelimit + # + - flag server liteprofilesutils_lastseengroups:].with[<[masteruuid]>].as[]> + # + - define lastbestlimit ]> + - flag server liteprofilesutils_lastbestlimit:<[lastbestlimit].with[<[masteruuid]>].as[<[profilelimit].max[<[lastbestlimit].get[<[masteruuid]>].if_null[1]>]>]> + # + - define joinleavedata + - announce <[joinleavedata].get[leave].parsed> + on player joins: + - define masteruuid ]> + # sync groups, O(scary) + - define syncgroupdata + - define lastseengroups ].if_null[]> + - if <[lastseengroups].is_empty>: + - goto joinmessage + - foreach <[lastseengroups].include[]> as:trygroup: + - define ok false + - foreach <[syncgroupdata]> as:matchgroup: + - if <[trygroup].advanced_matches[<[matchgroup]>]>: + - define ok true + - foreach stop + - if !<[ok]>: + - foreach next + - if <[lastseengroups].contains[<[trygroup]>]>: + - if !]>: + - group add <[trygroup]> + - else: + - if ]>: + - group remove <[trygroup]> + - if !: + - group add default + # sync best perm level + - define bestlimit ].if_null[1]> + - if !]>: + - permission add liteprofiles.limit.<[bestlimit]> + # sync op + - if ].is_op>: + - adjust is_op:true + - else: + - adjust is_op:false + # sync whitelist + - if ].whitelisted>: + - adjust whitelisted:true + - else: + - adjust whitelisted:false + # adjust join message + - mark joinmessage + - define joinleavedata + - if == <[masteruuid]>: + - if ].contains[]>: + - announce <[joinleavedata].get[welcome].parsed> + - flag server liteprofilesutils_welcome:].include[]> + - announce <[joinleavedata].get[join].parsed> + ## prevent /profile remove + on command: + - if == profile || == account || == pf: + - if == remove: + - determine cancelled passively + - narrate "<&c>You are forbidden from performing this operation." + ## GUI menu + on player clicks in inventory bukkit_priority:low: + - if != <&f>邑邑邑邑鄈: + - stop + - if != liteprofiles: + - stop + - if > 45: + - stop + - if : + - stop + # logic + - define data + - if <[data]> == null: + - stop + - if <[data].get[type]> == master: + - define value <[data].get[value]> + - inventory close + - execute as_player "profile use <[value]>" + - else if <[data].get[type]> == slave: + - define value <[data].get[value]> + - inventory close + - execute as_player "profile use <[value]>" + - else if <[data].get[type]> == free: + - execute as_player "profile add" + - run liteprofilesutils_show_menu def.player: diff --git a/scripts/misc/compatibility_check.dsc b/scripts/misc/compatibility_check.dsc new file mode 100644 index 0000000..bff5525 --- /dev/null +++ b/scripts/misc/compatibility_check.dsc @@ -0,0 +1,38 @@ +compatibility_check_compare_versions: + debug: false + type: procedure + definitions: version1|version2 + script: + - define v1split <[version1].split[.]> + - define v2split <[version2].split[.]> + - foreach <[v1split]> as:v1splitpart: + - define v2splitpart <[v2split].get[<[loop_index]>].if_null[0]> + - if <[v1splitpart]> > <[v2splitpart]>: + - determine 1 + - if <[v1splitpart]> < <[v2splitpart]>: + - determine -1 + - if <[v2split].size> > <[v1split].size>: + - determine -1 + - determine 0 + +compatibility_check_world: + debug: false + type: world + events: + after player joins: + - define player_version + - define server_version + - if |<[server_version]>]> == -1: + - wait 5s + - if !: + - stop + - narrate "" + - narrate "<&c><&l>[<&4><&l>!<&c><&l>] <&c>You are using an outdated Minecraft version!" + - narrate "<&6>Your version: <&f><[player_version]>" + - narrate "<&6>Server version: <&f><[server_version]>" + - narrate "" + - narrate "<&f>You can still play, however we strongly encourage you to consider <&e>updating your game<&f>." + - narrate "<&f>We will not offer bug support if you are using an outdated version!" + - narrate "" + - narrate "<&7>(Your ViaVersion protocol: )" + - narrate "" \ No newline at end of file diff --git a/scripts/payto/.DS_Store b/scripts/payto/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0amount<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if <= 0: + - narrate "<&c>Please enter an amount to pay!" + - stop + - define amount + - if !: + - narrate "<&c>You must enter a number to pay!" + - stop + - if < : + - narrate "<&c>You don't have ." + - stop + - define target + - if <[target]> == null: + - narrate "<&c>Please look at a player to send money to." + - stop + - if <[target].is_npc>: + - narrate "<&c>Please look at a player to send money to." + - stop + - clickable usages:1 until:1m save:pay: + - execute as_player "pay <[target].name> <[amount]>" + - narrate format:formats_prefix "<&7>Would you like to pay <&6><[amount].as_money><&7> to <&6>]>" + - narrate "<&l>[CLICK HERE]].on_click[]>" diff --git a/scripts/phones/phones_commands.dsc b/scripts/phones/phones_commands.dsc new file mode 100644 index 0000000..49f0126 --- /dev/null +++ b/scripts/phones/phones_commands.dsc @@ -0,0 +1,544 @@ +## CALL +phones_commands_phonecall: + debug: false + type: command + name: phonecall + aliases: + - call + description: Call using a phone! + usage: /phonecall (number/contact/message) + permission: phones.command.phonecall + tab complete: + - if : + - determine + - if : + - determine message<>>]> + - determine ]> + script: + # checks... + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define incall ]> + # mid call? + - if !<[incall]>: + # waiting call? + - if : + - narrate "<&c>Please wait for the call to be accepted, or unequip to cancel the call." + - stop + # no + - if < 1: + - narrate "<&c>Invalid use. First, call a number. Please try / (number/contact)." + - stop + # definitions + - define receiver + - define target |<[receiver]>]> + - if !: + - narrate "<&c>Please hold a phone in your hand, and ensure it is powered on." + - stop + # invalid number/contact + - if <[target]> == null: + - narrate "<&c>Invalid phone number or contact <[receiver]>. Please try again." + - stop + # lmao + - if == <[target]>: + - narrate "<&c>You can't call yourself!" + - stop + # blocked + - if ].if_null[false]>: + - narrate "<&c>The receiver is currently in your blocked numbers." + - stop + - if <[target].flag[phones].get[blocked].contains[].if_null[false]>: + - narrate "<&c>The receiver is unable to be contacted at this time. Try again later." + - stop + # not online/no phone/phone is off/etc... + - if !]>: + - narrate "<&c>The receiver is unable to be contacted at this time. Try again later." + - stop + # mid call... + - if <[target].has_flag[phones_call]>: + - narrate "<&c>The receiver is currently busy. Try again later." + - stop + # call... + - define relative |]> + - define player + # if accepted, go in + - clickable save:accept until:30s: + - if !<[target].item_in_hand.flag[phones].if_null[false]>: + - narrate targets:<[target]> "<&c>Please hold a phone before accepting the call, and ensure it is powered on." + - stop + - nbs stop targets:<[target]> + - clickable cancel:<[player].flag[phones_call_clickable]> + - flag <[target]> phones_call:<[player]> + - flag <[player]> phones_call:<[target]> + - flag <[player]> phones_call_clickable:! + - flag <[target]> phones_is_maybe_called:! + - narrate targets:<[player]> "<&2>*** <&a><[receiver]> <&a>picked up the phone." + - narrate targets:<[target]> "<&2>*** <&a>You picked up the phone." + - define callgroup |<[target]>]> + - narrate targets:<[callgroup]> <&f> + - narrate targets:<[callgroup]> "<&7>Talk using <&e>/call (message)<&7>." + - narrate targets:<[callgroup]> "<&e>Unequip <&7>your phone to <&c>end <&7>the call." + - narrate targets:<[callgroup]> <&f> + # + # before accepted + - if !<[target].has_flag[phones_is_maybe_called]>: + - nbs file:data/phones/songs/<[target].flag[phones].get[ringtone].if_null[Bad Apple]> play targets:<[target]> + - narrate targets:<[target]> "<&6>*** <&e>You're being called by <&e><[relative]><&7>." + - narrate targets:<[target]> "<&hover[<&a>Click to accept call from <[relative]>...]><&l>[ ACCEPT ]].on_click[]><&end_hover>" + # wait... + - flag phones_call:<[target]> + - flag phones_call_clickable: + - flag <[target]> phones_is_maybe_called:true expire:30s + - narrate "<&6>*** <&e>You started to ring <&7><[receiver]>" + - narrate "<&7>Unequip your phone to cancel the call." + - else: + # yes + - if < 1: + - narrate "<&c>Invalid use. You are mid-call - please try / (message)." + - narrate "<&7>Note: you can unequip the phone to end the current call." + - stop + # definitions + - define target + - define message + # speak... + - define final "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>says <&dq><[message]><&f><&dq> over the phone." + - narrate targets:].deduplicate> <[final]> + +## callw, cally use similar routines +phones_command_call_common_routine: + debug: false + type: task + script: + # checks... + - if != player: + - narrate "<&c>Please run this command as a player." + - define continue false + - stop + - define incall ]> + # mid call? + - if !<[incall]>: + # waiting call? + - if : + - narrate "<&c>Please wait for the call to be accepted, or unequip to cancel the call." + - define continue false + - stop + # no + - narrate "<&c>Invalid use. First, call a number. Please try /call (number/contact)." + - define continue false + - else: + # yes + - if < 1: + - narrate "<&c>Invalid use. You are mid-call - please try / (message)." + - narrate "<&7>Note: you can unequip the phone to end the current call." + - define continue false + - stop + # definitions + - define target + - define message + +phones_command_phonecallwhisper: + debug: false + type: command + name: phonecallwhisper + aliases: + - callwhisper + - callw + description: Whisper over the phone while in a call. + usage: /phonecallwhisper (message) + permission: phones.command.phonecallwhisper + tab complete: + - if : + - determine + - if : + - determine message<>>]> + - determine + script: + - define continue true + - inject phones_command_call_common_routine + - if !<[continue]>: + - stop + # speak... + - define final "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&8>whispers <&6><&sq><&7><[message]><&6><&sq> <&8>over the phone." + - narrate targets:].deduplicate> <[final]> + +phones_command_phonecallyell: + debug: false + type: command + name: phonecallyell + aliases: + - callyell + - cally + description: Yell over the phone while in a call. + usage: /phonecallyell (message) + permission: phones.command.phonecallyell + tab complete: + - if : + - determine + - if : + - determine message<>>]> + - determine + script: + - define continue true + - inject phones_command_call_common_routine + - if !<[continue]>: + - stop + # speak... + - define final "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&6>yells <&sq><&f><[message].to_uppercase><&6><&sq> over the phone." + - narrate targets:].deduplicate> <[final]> + +## langcall, langcallw, langcally use similar routines +phones_command_call_language_common_routine: + debug: false + type: task + script: + # checks... + - if != player: + - narrate "<&c>Please run this command as a player." + - define continue false + - stop + - define incall ]> + # mid call? + - if !<[incall]>: + # waiting call? + - if : + - narrate "<&c>Please wait for the call to be accepted, or unequip to cancel the call." + - define continue false + - stop + # no + - narrate "<&c>Invalid use. First, call a number. Please try /call (number/contact)." + - define continue false + - else: + # yes + - if < 2: + - narrate "<&c>Invalid use. You are mid-call - please try / (language) (message)." + - narrate "<&7>Note: you can unequip the phone to end the current call." + - define continue false + - stop + # definitions + - define target + - define language + - if !].if_null[false]>: + - narrate "<&c>Your character cannot speak in <[language]>." + - define continue false + - stop + - define message + +phones_command_phonelangcall: + debug: false + type: command + name: phonelangcall + aliases: + - langcall + description: Speak over the phone in a different language. + usage: /phonelangcall (language) (message) + permission: phones.command.phonelangcall + tab complete: + - if : + - determine + - if : + - if <= 0: + - determine ]> + - if <= 1: + - determine message<>>]> + - determine + script: + - define continue true + - inject phones_command_call_language_common_routine + - if !<[continue]>: + - stop + # speak... + - define final_known "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>says <&dq><&o><[message]><&f><&dq> in <[language]> over the phone." + - define final_unknown "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>says something in <[language]> over the phone." + - define all ].deduplicate> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + +phones_command_phonelangcallwhisper: + debug: false + type: command + name: phonelangcallwhisper + aliases: + - langcallwhisper + - langcallw + description: Whisper over the phone in a different language. + usage: /phonelangcallwhisper (language) (message) + permission: phones.command.phonelangcallwhisper + tab complete: + - if : + - determine + - if : + - if <= 0: + - determine ]> + - if <= 1: + - determine message<>>]> + - determine + script: + - define continue true + - inject phones_command_call_language_common_routine + - if !<[continue]>: + - stop + # speak... + - define final_known "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>whispers <&dq><&o><[message]><&f><&dq> in <[language]> over the phone." + - define final_unknown "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>whispers something in <[language]> over the phone." + - define all ].deduplicate> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + +phones_command_phonelangcallyell: + debug: false + type: command + name: phonelangcallyell + aliases: + - langcallyell + - langcally + description: Yell over the phone in a different language. + usage: /phonelangcallyell (language) (message) + permission: phones.command.phonelangcallyell + tab complete: + - if : + - determine + - if : + - if <= 1: + - determine ]> + - if <= 2: + - determine message<>>]> + - determine + script: + - define continue true + - inject phones_command_call_language_common_routine + - if !<[continue]>: + - stop + # speak... + - define final_known "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>yells <&dq><&o><[message].to_uppercase><&f><&dq> in <[language]> over the phone." + - define final_unknown "<&6>[<&7>P<&6>] <&f>]> ]>]> ]> <&f>yells something in <[language]> over the phone." + - define all ].deduplicate> + - define speakers <[all].filter_tag[<[filter_value].flag[chat_languages].contains[<[language]>].if_null[false]>]> + - define others <[all].exclude[<[speakers]>]> + - narrate targets:<[speakers]> <[final_known]> + - narrate targets:<[others]> <[final_unknown]> + +## PHONE UTILITIES +phones_commands_phonenumber: + debug: false + type: command + name: phonenumber + aliases: + - number + - pn + description: View your phone number. + usage: /phonenumber + permission: phones.command.phonenumber + script: + # checks... + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + # ok + - define number + - narrate format:formats_prefix ]> + +## PHONE CONTACTS +phones_commands_phonecontacts: + debug: false + type: command + name: phonecontacts + aliases: + - contacts + description: View your contacts. + usage: /phonecontacts (page) + permission: phones.command.contacts + tab completions: + 1: <<>page<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define contacts ]> + - if <[contacts].is_empty>: + - run phones_contacts_print def.player: def.page:0 + - stop + - define page 0 + - if >= 1: + - define page + - if !<[page].is_integer>: + - narrate "<&c>The page must be an integer between 1 and <[contacts].size.sub[1].div_int[6].add[1]>." + - stop + - define page <[page].sub[1]> + - if <[page]> < 0 || <[page]> > <[contacts].size.sub[1].div_int[6]>: + - narrate "<&c>The page must be an integer between 1 and <[contacts].size.sub[1].div_int[6].add[1]>." + - stop + - run phones_contacts_print def.player: def.page:<[page]> + +phones_commands_phoneaddcontact: + debug: false + type: command + name: phoneaddcontact + aliases: + - addcontact + - ac + description: Add a contact. + usage: /phoneaddcontact (number) (name) + permission: phones.command.phoneaddcontact + tab completions: + 1: <<>number<>> + 2: <<>unique name<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if < 2: + - narrate "<&c>Invalid use. Please try / (number) (name)." + - stop + - define number + - define isnumber <[number].regex_matches[^[0-9]+$]> + - if !<[isnumber]> || !]>: + - narrate "<&c>Number <&c>is not a valid number. Did you type it correctly?" + - stop + - define name + - define isvalid <[name].regex_matches[^[a-z_]+$]> + - if !<[isvalid]>: + - narrate "<&c>Name <&c>is invalid. Contact names must only contain alphabetical characters and/or the underscore (_) character." + - stop + - if ].if_null[false]>: + - narrate "<&c>You already have a contact named <[name]><&c>. Please pick a new name or manage your contacts from your home screen." + - stop + - define target ]> + - if <[target]> == : + - narrate "<&c>You can't add yourself as a contact!" + - stop + - if ].if_null[false]>: + - define found + - foreach key:whoname as:who: + - if <[who]> == <[target]>: + - define found <[whoname]> + - foreach stop + - narrate "<&c>You already have this contact added, using the contact name: <[found]><&c>." + - stop + - define contacts ]> + - define contacts <[contacts].with[<[name]>].as[<[target]>]> + - flag phones:]> + - narrate format:formats_prefix "Added new contact <[name]> <&7>, targetting phone number <[number]>." + +phones_commands_phoneremovecontact: + debug: false + type: command + name: phoneremovecontact + aliases: + - removecontact + - rc + description: Remove a contact. + usage: /phoneremovecontact (number) (name) + permission: phones.command.phoneremovecontact + tab completions: + 1: ]> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if < 1: + - narrate "<&c>Invalid use. Please try / (name)." + - stop + - define name + - if !].if_null[false]>: + - narrate "<&c>You do not have a contact named <[name]>." + - stop + - define contacts ]> + - define contacts <[contacts].exclude[<[name]>]> + - flag phones:]> + - narrate format:formats_prefix "Removed contact <&e><[name]><&7>." + +## TEXT MESSAGES +phones_commands_phonetext: + debug: false + type: command + name: phonetext + aliases: + - text + description: Text a number or a contact! + usage: /phonetext (number/contact) (message) + permission: phones.command.phonetext + tab completions: + 1: ]> + 2: <<>message<>> + script: + # checks... + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if < 2: + - narrate "<&c>Invalid use. Please try / (number/contact) (message)." + - stop + # definitions + - define receiver + - define message + - define target |<[receiver]>]> + # no phone + - if !: + - narrate "<&c>Please hold a phone in your hand, and ensure it is powered on." + - stop + # invalid number/contact + - if <[target]> == null: + - narrate "<&c>Invalid phone number or contact <&e><[receiver]><&c>. Please try again." + - stop + # lmao + - if == <[target]>: + - narrate "<&c>You can't text yourself!" + - stop + # blocked + - if ].if_null[false]>: + - narrate "<&c>The receiver is currently in your blocked numbers." + - stop + - if <[target].flag[phones].get[blocked].contains[].if_null[false]>: + - narrate "<&c>The receiver is unable to be contacted at this time. Try again later." + - stop + # send text... + - run phones_texts_store def.player: def.target:<[target]> def.contents:<[message]> + +## BLOCKED +phones_commands_phoneblock: + debug: false + type: command + name: phoneblock + aliases: + - phoneunblock + - phblock + - phunblock + description: Add a contact. + usage: /phoneblock (number)) + permission: phones.command.phoneblock + tab completions: + 1: number<>>].include[].if_null[]>]> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if < 1: + - narrate "<&c>Invalid use. Please try / (number)." + - stop + # + - define number + - define isnumber <[number].regex_matches[^[0-9]+$]> + - if !<[isnumber]> || !]>: + - narrate "<&c>Number <&c>is not a valid number. Did you type it correctly?" + - stop + # + - define target ]> + - if <[target]> == : + - narrate "<&c>You can't block your own phone number!" + - stop + # + - if !].if_null[false]>: + - define blocked ]> + - define blocked <[blocked].include[<[target]>]> + - flag phones:]> + - narrate format:formats_prefix "<&c>Blocked <&7>phone number <&e><[number]><&7>." + - else: + - define blocked ]> + - define blocked <[blocked].exclude[<[target]>]> + - flag phones:]> + - narrate format:formats_prefix "<&a>Unblocked <&7>phone number <&e><[number]><&7>." diff --git a/scripts/phones/phones_tasks.dsc b/scripts/phones/phones_tasks.dsc new file mode 100644 index 0000000..feb2cdb --- /dev/null +++ b/scripts/phones/phones_tasks.dsc @@ -0,0 +1,455 @@ +#### +## GENERAL STUFF +#### + +phones_get_owner: + debug: false + type: procedure + definitions: player|receiver + script: + - define receiver <[receiver].replace[(].with[].replace[)].with[].replace[-].with[]> + - define isnumber <[receiver].regex_matches[^[0-9]+$]> + - define target null + - if <[isnumber]>: + - define target ].if_null[null]> + - else: + - define target <[player].flag[phones].get[contacts].get[<[receiver]>].if_null[null]> + - determine <[target]> + +phones_has_phone: + debug: false + type: procedure + definitions: player + script: + - if !<[player].is_online>: + - determine false + - foreach <[player].inventory.map_slots> key:slot as:item: + - if <[item].flag[phones].if_null[false]>: + - determine true + - determine false + +phones_relative_name: + debug: false + type: procedure + definitions: player|who + script: + - if <[player].flag[phones].get[contacts].values.contains[<[who]>].if_null[false]>: + - determine <[player].flag[phones].get[contacts].filter_tag[<[filter_value].equals[<[who]>]>].keys.get[1]> + - determine <[who].flag[phones].get[number]> + +phones_clean_message: + debug: false + type: procedure + definitions: message + script: + - define clean + # remove channel marker + - if <[message].starts_with[#]>: + - define message <[message].substring[3]> + # format actions + - foreach <[message].split[*]> as:section: + - if <[section].trim.length> == 0: + - foreach next + - if <[loop_index].is_odd>: + - define clean "<[clean]> <&f><&dq><[section].trim><&f><&dq>" + - else: + - define clean "<[clean]> <&e><[section].trim>" + # good + - determine <[clean].trim> + + +phones_get_contact_state: + debug: false + type: procedure + definitions: player|target + script: + - if <[target].flag[phones].get[contacts].values.contains[<[player]>].if_null[false]>: + - if <[target].is_online>: + - if ]>: + - determine online + - determine offline + - determine invisible + +phones_nicer_format: + debug: false + type: procedure + definitions: number + script: + - determine "<&7>(+81) <&e>(<[number].substring[1,3]>)-<[number].substring[4,6]>-<[number].substring[7,10]>" + +phones_get_number: + debug: false + type: procedure + definitions: player + script: + - determine <[player].flag[phones].get[number]> + +#### +## GUIS +#### + +phones_gui_home: + debug: false + type: task + definitions: player + script: + - define inventory "邑邑邑邑鄀<&0>邒]]>" + # settings + - define settings + - adjust def:settings "display:<&6>Settings" + - inventory set destination:<[inventory]> slot:13 origin:<[settings]> + # contacts + - define contacts + - adjust def:contacts "display:<&6>Contacts" + - inventory set destination:<[inventory]> slot:14 origin:<[contacts]> + # texts + - define texts + - adjust def:texts "display:<&6>Messages" + - define notifications_textmessages <[player].flag[phones_notifications].get[textmessages].values.size.if_null[null]> + - if <[notifications_textmessages]> != null && <[notifications_textmessages]> != 0: + - if <[notifications_textmessages]> > 99: + - define notifications_textmessages 99+ + - adjust texts lore:● <&7>You have <&6><[notifications_textmessages]> <&7>unread|<&7>text conversations.]> + - inventory set destination:<[inventory]> slot:15 origin:<[texts]> + # music + - define music + - adjust def:music "display:<&6>Blocky Music <&3>♫" + - adjust def:music "lore:<&7>(music from <&e>noteblock.world<&7>)" + - inventory set destination:<[inventory]> slot:22 origin:<[music]> + # number + - define number + - adjust def:number "display:<&6>Your Number" + - adjust def:number lore:]>||<&7>You may also view your number|<&7>using /phonenumber.]> + - flag <[number]> phones_target_skull_uuid:<[player].uuid> + - inventory set destination:<[inventory]> slot:41 origin:<[number]> + # + - inventory open player:<[player]> destination:<[inventory]> + - run phones_target_skulls_update def.player:<[player]> + +# --- +# --- contacts related +# --- + +phones_contacts_print: + debug: false + type: task + definitions: player|page + script: + - define contacts <[player].flag[phones].get[contacts].if_null[]> + - if <[contacts].is_empty>: + - narrate targets:<[player]> format:formats_prefix "You don't have any contacts." + - stop + - define contactslist <[contacts].keys.get[<[page].mul[6].add[1]>].to[<[page].add[1].mul[6]>].if_null[]> + - narrate targets:<[player]> format:formats_prefix "<&e>OpenPhones Contacts<&nl>" + # show contacts + - foreach <[contactslist]> as:receiver: + - define target <[contacts].get[<[receiver]>]> + # state + - define contactstate |<[target]>]> + - if <[contactstate]> == invisible: + - define contactstate <&7>⏺ + - else if <[contactstate]> == online: + - define contactstate <&a>⏺ + - else if <[contactstate]> == offline: + - define contactstate <&c>⏺ + # + - define contact "<[contactstate]> <&e>]>]> <&7><&o>(<[receiver]>)" + - narrate <[contact]> + # page buttons + - define prevpage <&7><<>-- + - define nextpage <&7>--<>> + - if <[page]> > 0: + - clickable usages:1 until:60s save:prev: + - execute as_player "phonecontacts <[page]>" + - define prevpage "<<>--].on_click[]>" + - if <[contacts].size> > <[page].add[1].mul[6]>: + - clickable usages:1 until:60s save:next: + - execute as_player "phonecontacts <[page].add[2]>" + - define nextpage "--<>>].on_click[]>" + - narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[contacts].size.sub[1].div[6].round_down.add[1]> <[nextpage]>" + +# --- +# --- texts related +# --- + +phones_texts_store: + debug: false + type: task + definitions: player|target|contents + script: + - narrate targets:<[player]> format:formats_prefix "Sending..." + # + - define playertexts phones_texts_<[player].uuid>_<[target].uuid> + - if _<[target].uuid>.yml]>: + - ~yaml id:<[playertexts]> load:data/phones/texts/<[player].uuid>_<[target].uuid>.yml + - else: + - ~yaml id:<[playertexts]> create + - yaml id:<[playertexts]> set messages.:]> + - ~yaml savefile:data/phones/texts/<[player].uuid>_<[target].uuid>.yml id:<[playertexts]> + - ~yaml id:phones_texts_<[player].uuid>_<[target].uuid> unload + # + - define targettexts phones_texts_<[target].uuid>_<[player].uuid> + - if _<[player].uuid>.yml]>: + - ~yaml id:<[targettexts]> load:data/phones/texts/<[target].uuid>_<[player].uuid>.yml + - else: + - ~yaml id:<[targettexts]> create + - yaml id:<[targettexts]> set messages.:]> + - ~yaml savefile:data/phones/texts/<[target].uuid>_<[player].uuid>.yml id:<[targettexts]> + - ~yaml id:phones_texts_<[target].uuid>_<[player].uuid> unload + # send + - define relative |<[target]>]> + - narrate targets:<[player]> "<&6>[<&7>T<&6>] <&e>You ➠ <[relative]> <&2>sent '<[contents]>' via text" + # notify or send + - if <[target].is_online>: + - if <[target].item_in_hand.has_flag[phones]>: + - define inverserelative |<[player]>]> + - narrate targets:<[target]> "<&6>[<&7>T<&6>] <&e><[inverserelative]> ➠ You <&2>sent '<[contents]>' via text" + - else: + - narrate targets:<[target]> "<&6>[<&7>T<&6>] <&e>You received a text message." + - else: + - define notifications <[target].flag[phones_notifications].if_null[]> + - define textnotifications <[notifications].get[textmessages].if_null[]> + - define textnotifications <[textnotifications].with[<[player]>].as[<[textnotifications].get[<[player]>].if_null[0].add[1]>]> + - define notifications <[notifications].with[textmessages].as[<[textnotifications]>]> + - flag <[target]> phones_notifications:<[notifications]> + +phones_texts_print: + debug: false + type: task + definitions: player|target|page + script: + - narrate targets:<[player]> format:formats_prefix "Loading..." + # + - define playertexts phones_texts_<[player].uuid>_<[target].uuid> + - ~yaml id:<[playertexts]> load:data/phones/texts/<[player].uuid>_<[target].uuid>.yml + - define messages_size ].read[messages].size> + - define message_keys ].read[messages].keys.reverse.get[<[page].mul[5].add[1]>].to[<[page].add[1].mul[5]>].if_null[]> + - define messages + - foreach <[message_keys]> as:timestamp: + - define messages <[messages].with[]>].as[].read[messages.<[timestamp]>]>]> + - ~yaml id:phones_texts_<[player].uuid>_<[target].uuid> unload + # + - define relative |<[target]>]> + - narrate targets:<[player]> format:formats_prefix "<&e>Messages with <[relative]><&nl>" + - foreach <[messages]> key:timestamp as:message: + - define when ].formatted> + - if <[message].get[origin]> == sender: + - narrate targets:<[player]> "<&7>You: <&f><[message].get[value]> <&7>(<[when]> ago)" + - else: + - narrate targets:<[player]> "<&e><[relative]><&7>: <&f><[message].get[value]> <&7>(<[when]> ago)" + # page buttons + - define prevpage <&7><<>-- + - define nextpage <&7>--<>> + - if <[page]> > 0: + - clickable usages:1 until:60s save:prev: + - run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].sub[1]> + - define prevpage "<<>--].on_click[]>" + - if <[messages_size]> > <[page].add[1].mul[5]>: + - clickable usages:1 until:60s save:next: + - run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].add[1]> + - define nextpage "--<>>].on_click[]>" + - narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[messages_size].sub[1].div[5].round_down.add[1]> <[nextpage]>" + # clear notifications? + - if <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[0]> > 0: + - define notifications <[player].flag[phones_notifications].if_null[]> + - define textnotifications <[notifications].get[textmessages].if_null[]> + - define textnotifications <[textnotifications].exclude[<[target]>]> + - define notifications <[notifications].with[textmessages].as[<[textnotifications]>]> + - flag <[player]> phones_notifications:<[notifications]> + +phones_gui_texts: + debug: false + type: task + definitions: player|page + script: + - define inventory "邑邑邑邑鄀<&1>邒]]>" + - define textslist ]].parse[split[_].get[2].split[.].get[1]].parse_tag[]>].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[]> + # show contacts/numbers + - foreach <[textslist]> as:target: + - define receiver |<[target]>]> + - define textsender + - adjust def:textsender display:<&e><[receiver]> + - adjust def:textsender "lore:Click to view your conversation.]>" + # notifications + - define notifications_text <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[null]> + - if <[notifications_text]> != null: + - if <[notifications_text]> > 99: + - define notifications_text 99+ + - adjust def:textsender "lore:<[textsender].lore.include[|<&7>You have <&6><[notifications_text]> <&7>unread messages.]>" + # + - flag <[textsender]> phones:<[target]> + - flag <[textsender]> phones_target_skull_uuid:<[target].uuid> + - inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[textsender]> + # back + - define back + - adjust def:back display:<&7>Back + - inventory set destination:<[inventory]> slot:50 origin:<[back]> + # page buttons + - if <[page]> > 0: + - define prevpage + - adjust def:prevpage "display:<&a>Previous Page" + - inventory set destination:<[inventory]> slot:49 origin:<[prevpage]> + - if <[textslist].size> > <[page].add[1].mul[16]>: + - define nextpage + - adjust def:nextpage "display:<&a>Next Page" + - inventory set destination:<[inventory]> slot:51 origin:<[nextpage]> + # + - inventory open player:<[player]> destination:<[inventory]> + - run phones_target_skulls_update def.player:<[player]> + +# each skull you want to change has to be flagged with phones_target_skull_uuid:<[target].uuid> +phones_target_skulls_update: + debug: false + type: task + definitions: player + script: + - define inventory <[player].open_inventory> + - foreach <[inventory].map_slots> key:slot as:item: + - if <[item].has_flag[phones_target_skull_uuid]>: + - if <[inventory].viewers.if_null[].is_empty>: + - stop + - define uuid <[item].flag[phones_target_skull_uuid]> + - inventory adjust slot:<[slot]> skull_skin:<[uuid]>|].skin_blob.if_null[0000]>|].name> destination:<[inventory]> + +#### +## NOTIFICATIONS +#### + +phones_notify_text_messages: + debug: false + type: task + definitions: player|delayseconds + script: + - wait <[delayseconds]>s + - if !<[player].is_online>: + - stop + - define notifications_textmessages <[player].flag[phones_notifications].get[textmessages].values.filter[equals[0].not].sum.if_null[null]> + - if <[notifications_textmessages]> == null || <[notifications_textmessages]> == 0: + - stop + - if <[notifications_textmessages]> > 99: + - define notifications_textmessages 99+ + - narrate targets:<[player]> format:formats_prefix "You have <&6><[notifications_textmessages]> <&7>unread text conversations." + +#### +## MUSIC APP +#### + +phones_music_play: + debug: false + type: task + definitions: player|songfile + script: + - if <[player].nbs_is_playing>: + - nbs stop targets:<[player]> + - nbs file:data/phones/songs/<[songfile]> play targets:<[player]> + - narrate targets:<[player]> format:formats_prefix "Playing song..." + +phones_music_stop: + debug: false + type: task + definitions: player + script: + - if !<[player].nbs_is_playing>: + - narrate targets:<[player]> format:formats_prefix "No song is playing right now." + - stop + - nbs stop targets:<[player]> + - narrate targets:<[player]> format:formats_prefix "Stopped song." + +phones_gui_music: + debug: false + type: task + definitions: player|page|ringtone + script: + # ringtone selection mode? + - define ringtone <[ringtone].if_null[false]> + # make inventory + - define inventory "邑邑邑邑鄀<&2>邒]]>" + - if <[ringtone]>: + - define inventory "邑邑邑邑鄀<&4>邒]]>" + - define songsize + - define songsonpage ].pass[15].fail[14]> + - define songlist ].add[1]>].to[<[page].add[1].mul[<[songsonpage]>]>].if_null[]> + # show songs + - foreach <[songlist]> as:songname: + - define song + - adjust def:song display:<&e><[songname]> + - adjust def:song "lore:Click to start playing.]>" + - flag <[song]> phones:<[songname]> + - inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[song]> + # stop + - if !<[ringtone]>: + - define stop + - adjust def:stop display:<&c>Stop + - inventory set destination:<[inventory]> slot:42 origin:<[stop]> + # back + - define back + - adjust def:back display:<&7>Back + - inventory set destination:<[inventory]> slot:50 origin:<[back]> + # page buttons + - if <[page]> > 0: + - define prevpage + - adjust def:prevpage "display:<&a>Previous Page" + - inventory set destination:<[inventory]> slot:49 origin:<[prevpage]> + - if <[songsize]> > <[page].add[1].mul[<[songsonpage]>]>: + - define nextpage + - adjust def:nextpage "display:<&a>Next Page" + - inventory set destination:<[inventory]> slot:51 origin:<[nextpage]> + # + - inventory open player:<[player]> destination:<[inventory]> + +### +## SETTINGS +### +phones_gui_settings: + debug: false + type: task + definitions: player + script: + - define inventory "邑邑邑邑鄀<&3>邒]]>" + # ringtone + - define ringtone + - adjust def:ringtone display:<&6>Ringtone + - adjust def:ringtone "lore:<&7>(music from <&e>noteblock.world<&7>)" + - inventory set destination:<[inventory]> slot:4 origin:<[ringtone]> + # blocked + - define blocked + - adjust def:blocked "display:<&6>Blocked Numbers" + - inventory set destination:<[inventory]> slot:5 origin:<[blocked]> + # back + - define back + - adjust def:back display:<&7>Back + - inventory set destination:<[inventory]> slot:50 origin:<[back]> + # + - inventory open player:<[player]> destination:<[inventory]> + +phones_gui_settings_blocked: + debug: false + type: task + definitions: player|page + script: + - define inventory "邑邑邑邑鄀<&5>邒]]>" + - define blockedlist <[player].flag[phones].get[blocked].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[]> + # show blocked numbers + - foreach <[blockedlist]> as:target: + - define blockednumber ]> + - define blocked + - adjust def:blocked display:<&e><[blockednumber]> + - adjust def:blocked lore:You may use /phoneunblock to unblock this number.]> + - flag <[blocked]> phones_target_skull_uuid:<[target].uuid> + - inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[blocked]> + # back + - define back + - adjust def:back display:<&7>Back + - inventory set destination:<[inventory]> slot:50 origin:<[back]> + # page buttons + - if <[page]> > 0: + - define prevpage + - adjust def:prevpage "display:<&a>Previous Page" + - inventory set destination:<[inventory]> slot:49 origin:<[prevpage]> + - if <[blockedlist].size> > <[page].add[1].mul[16]>: + - define nextpage + - adjust def:nextpage "display:<&a>Next Page" + - inventory set destination:<[inventory]> slot:51 origin:<[nextpage]> + # + - inventory open player:<[player]> destination:<[inventory]> + - run phones_target_skulls_update def.player:<[player]> diff --git a/scripts/phones/phones_world.dsc b/scripts/phones/phones_world.dsc new file mode 100644 index 0000000..41f69b2 --- /dev/null +++ b/scripts/phones/phones_world.dsc @@ -0,0 +1,185 @@ +phones_world: + debug: false + type: world + events: + ## assign new random number & handle notifications + after player joins: + - run phones_notify_text_messages def.player: def.delayseconds:5 + # + - if : + - stop + - define number + - while ].contains[377<[number]>]>: + - define number + - define number 377<[number]> + - flag phones:]> + - flag server phones:].with[<[number]>].as[]> + ## phone drop, phone unequip, player logs off etc. + on player drops item: + - if : + - if : + - determine cancelled + - if : + - nbs stop targets: + - inject phones_inject_end_call + on player scrolls their hotbar: + - if ].has_flag[phones]>: + - inject phones_inject_end_call + on player quits: + - inject phones_inject_end_call + after player clicks in inventory: + - if !: + - inject phones_inject_end_call + ## boot up/down phone + on player left clicks block: + - if !: + - stop + - if != : + - stop + - determine cancelled passively + - if : + - flag phones_chat_input:! + - define state + - inventory flag slot:hand phones:<[state]> + - if <[state]>: + - narrate format:formats_prefix "Powered <&a>on <&7>your phone." + # + - run phones_notify_text_messages def.player: def.delayseconds:2 + - else: + - narrate format:formats_prefix "Powered <&c>off <&7>your phone." + - nbs stop targets: + - inject phones_inject_end_call + ## phone GUI + on player right clicks block: + - if !: + - stop + - determine cancelled passively + - if : + - narrate "<&c>You are currently in the middle of a call (stop holding the phone to end the call)." + - stop + - if : + - flag phones_chat_input:! + - if !: + - narrate "<&c>Please turn on your phone (left click) to view the home screen." + - stop + - run phones_gui_home def.player: + +# used in ending a call because code repeats a lot +phones_inject_end_call: + debug: false + type: task + script: + - if : + - flag phones_is_maybe_called:! + - nbs stop + - if !: + - stop + - define callwho + - define iswaiting + - flag phones_call:! + - if <[iswaiting]>: + - clickable cancel: + - flag phones_call_clickable:! + - if <[callwho].flag[phones_call].if_null[null]> == : + - narrate targets:<[callwho]> format:formats_prefix "Call was ended by the other side." + - flag <[callwho]> phones_call:! + - else: + - nbs stop targets:<[callwho]> + - narrate targets:<[callwho]> format:formats_prefix "The person on the other side hung up before you answered." + - narrate format:formats_prefix "You ended the call." + +## only gui handling +phones_world_gui: + debug: false + type: world + events: + on player clicks in inventory: + - if !: + - stop + - determine cancelled passively + - if > : + - stop + - define title + # Home Page + - if <[title]> == <&0>邒: + - if == 13: + - run phones_gui_settings def.player: + - if == 14: + - inventory close + - run phones_contacts_print def.player: def.page:0 + - else if == 15: + - flag phones_gui_page:0 + - run phones_gui_texts def.player: def.page:0 + - else if == 22: + - flag phones_gui_page:0 + - run phones_gui_music def.player: def.page:0 def.ringtone:false + - else if <[title]> == <&1>邒: + - if == ender_pearl: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_texts def.player: def.page:<[page]> + - else if == ender_eye: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_texts def.player: def.page:<[page]> + - else if == 50: + - run phones_gui_home def.player: + - else if == player_head: + - inventory close + - run phones_texts_print def.player: def.target: def.page:0 + # Music + - else if <[title]> == <&2>邒: + - if == ender_pearl: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_music def.player: def.page:<[page]> def.ringtone:false + - else if == ender_eye: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_music def.player: def.page:<[page]> def.ringtone:false + - else if == 50: + - run phones_gui_home def.player: + - else if == 42: + - inventory close + - run phones_music_stop def.player: + - else if == jukebox: + - inventory close + - run phones_music_play def.player: def.songfile: + # Settings + - else if <[title]> == <&3>邒: + - if == 4: + - flag phones_gui_page:0 + - run phones_gui_music def.player: def.page:0 def.ringtone:true + - if == 5: + - flag phones_gui_page:0 + - run phones_gui_settings_blocked def.player: def.page:0 + - else if == 50: + - run phones_gui_home def.player: + # Ringtone Select + - else if <[title]> == <&4>邒: + - if == ender_pearl: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_music def.player: def.page:<[page]> def.ringtone:true + - else if == ender_eye: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_music def.player: def.page:<[page]> def.ringtone:true + - else if == 50: + - run phones_gui_settings def.player: + - else if == jukebox: + - flag phones:]> + - run phones_gui_settings def.player: + - narrate format:formats_prefix "Changed your ringtone to <&e><&7>." + # Blocked + - else if <[title]> == <&5>邒: + - if == ender_pearl: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_settings_blocked def.player: def.page:<[page]> + - else if == ender_eye: + - define page + - flag phones_gui_page:<[page]> + - run phones_gui_settings_blocked def.player: def.page:<[page]> + - else if == 50: + - run phones_gui_settings def.player: diff --git a/scripts/rankup/rankup_commands.dsc b/scripts/rankup/rankup_commands.dsc new file mode 100644 index 0000000..5e2f03c --- /dev/null +++ b/scripts/rankup/rankup_commands.dsc @@ -0,0 +1,40 @@ +rankup_command_playtime: + debug: false + type: command + name: playtime + description: Check your total playtime. + usage: /playtime + permission: rankup.command.playtime + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - narrate format:formats_prefix "You've played for <&a>]>" + +rankup_command_grade: + debug: false + type: command + name: grade + description: Check to see when you'll grade up next. + usage: /grade + permission: rankup.command.grade + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if : + - yaml load:../Autorank/data/Total_time.yml id:autorank_totaltime + - if : + - yaml load:../Autorank/Paths.yml id:autorank_paths + - define activepath ].if_null[null]> + - if <[activepath]> == null || <[activepath].length> <= 0: + - narrate format:formats_prefix "You have completed all grades!" + - stop + - define timeneeded ].get[requirements].get[time].get[value]>]> + - define timepassed ]>m]> + - define difference <[timeneeded].sub[<[timepassed]>]> + - narrate format:formats_prefix "You need <&a><[difference].formatted> <&7>more till reaching <&a><[activepath].substring[1,5].to_lowercase> <[activepath].substring[6,7]>" diff --git a/scripts/rankup/rankup_world.dsc b/scripts/rankup/rankup_world.dsc new file mode 100644 index 0000000..d780367 --- /dev/null +++ b/scripts/rankup/rankup_world.dsc @@ -0,0 +1,10 @@ +rankup_world: + debug: false + type: world + events: + after server start: + - yaml load:../Autorank/data/Total_time.yml id:autorank_totaltime + - yaml load:../Autorank/Paths.yml id:autorank_paths + on delta time minutely every:1: + - yaml load:../Autorank/data/Total_time.yml id:autorank_totaltime + - yaml load:../Autorank/Paths.yml id:autorank_paths diff --git a/scripts/requestsearch/requestsearch_commands.dsc b/scripts/requestsearch/requestsearch_commands.dsc new file mode 100644 index 0000000..d0bdca6 --- /dev/null +++ b/scripts/requestsearch/requestsearch_commands.dsc @@ -0,0 +1,33 @@ +requestsearch_command_requestsearch: + debug: false + type: command + name: requestsearch + description: Command to search someone's inventory. + usage: /requestsearch + aliases: + - rs + - patdown + permission: invreq.patdown + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define target + - if <[target]> == null: + - narrate "<&c>Please look at the player you want to search." + - stop + - if <[target].is_npc>: + - narrate "<&c>Please look at the player you want to search." + - stop + - define player + - narrate format:formats_prefix "<&e>Sent an inventory search request to ]>" + - clickable usages:1 save:yes: + - narrate targets:<[target]> format:formats_prefix "Your inventory is being searched..." + - inventory player:<[player]> open destination:<[target].inventory> + - clickable usages:1 save:no: + - narrate targets:<[player]> format:formats_prefix "Your inventory search request was denied." + - narrate targets:<[target]> "You denied the inventory search request." + - narrate format:formats_prefix targets:<[target]> "<&e>Do you allow ]><&e> to access your belongings?" + - narrate targets:<[target]> "<&f> <&e> <&f> [<&a>Accept<&7>]].on_click[]><&f> <&e> <&f> [<&c>Deny<&7>]].on_click[]>" diff --git a/scripts/rolls/rolls_commands.dsc b/scripts/rolls/rolls_commands.dsc new file mode 100644 index 0000000..dbffc6b --- /dev/null +++ b/scripts/rolls/rolls_commands.dsc @@ -0,0 +1,26 @@ +roll_command_roll: + debug: false + type: command + name: roll + usage: /roll [amount?] + description: Rolls a dice, optionally with an amount. + permission: roll.command.roll + tab completions: + 1: <<>amount<>> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define amount 100 + - if >= 1: + - define amount + - if !<[amount].is_integer>: + - narrate "<&c>The amount must be an integer between 2 and 200." + - stop + - if <[amount]> < 2 || <[amount]> > 200: + - narrate "<&c>The amount must be an integer between 2 and 200." + - stop + - define roll ]> + - define final "<&f>]> ]>]> ]> <&6>rolls <&f><[roll]> <&6>out of <&f><[amount]>" + - narrate targets: <[final]> + - announce to_console <[final]> diff --git a/scripts/sports/football/sports_football_tasks.dsc b/scripts/sports/football/sports_football_tasks.dsc new file mode 100644 index 0000000..47311be --- /dev/null +++ b/scripts/sports/football/sports_football_tasks.dsc @@ -0,0 +1,113 @@ +sports_football_join: + debug: false + type: task + definitions: id|player|team + script: + - define extra ].get[extra_data]> + - if <[team]> == red: + - teleport <[player]> <[extra].get[red_start]> + - else if <[team]> == blue: + - teleport <[player]> <[extra].get[blue_start]> + - run sports_football_update_glow def.id:<[id]> + - define count ]> + - if <[count]> == 2: + - define teams ]> + - repeat 3: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> title:<&6>]> fade_in:0 fade_out:0 stay:1s + - wait 1s + - if ]> < 2: + - stop + - run sports_football_restart_game def.id:<[id]> + - if <[count]> < 2: + - run sports_football_idle_game def.id:<[id]> + +sports_football_leave: + debug: false + type: task + definitions: id|player + script: + - define extra ].get[extra_data]> + - teleport <[player]> <[extra].get[exit]> + - glow <[player]> reset + - if ]> <= 1: + - run sports_football_idle_game def.id:<[id]> + +sports_football_redistribute: + debug: false + type: task + definitions: id|player|from|to + script: + - define extra ].get[extra_data]> + - if <[to]> == red: + - teleport <[player]> <[extra].get[red_start]> + - narrate targets:<[player]> format:formats_prefix "You were auto-balanced to the <&c>red team" + - else if <[to]> == blue: + - teleport <[player]> <[extra].get[blue_start]> + - narrate targets:<[player]> format:formats_prefix "You were auto-balanced to the <&9>blue team" + - run sports_football_update_glow def.id:<[id]> + +sports_football_restart_game: + debug: false + type: task + definitions: id + script: + - define arena ]> + - define extra <[arena].get[extra_data]> + - run sports_arena_redistribute def.id:<[id]> + - define teams ]> + - run sports_football_update_glow def.id:<[id]> + - foreach <[teams].get[red]> as:red_player: + - teleport <[red_player]> <[extra].get[red_start]> + - foreach <[teams].get[blue]> as:blue_player: + - teleport <[blue_player]> <[extra].get[blue_start]> + - run sports_arena_set_status def.id:<[id]> def.status:normal + - run ball_create def.id:sports_football def.location:<[extra].get[ball_start]> def.size:<[arena].get[ball_size]> def.display_item:<[arena].get[ball_display]> def.gravity_multiplier:<[arena].get[ball_gravity]> + - glow ]> true for:<[teams].get[red].include[<[teams].get[blue]>]> + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "Next round..." + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&e>Next Round" fade_in:0 fade_out:0 stay:1s + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_PLING pitch:1 volume:30 + +sports_football_update_glow: + debug: false + type: task + definitions: id + script: + - define teams ]> + - foreach <[teams].get[red]> as:red_player: + - glow <[red_player]> true for:<[teams].get[red]> + - glow <[red_player]> false for:<[teams].get[blue]> + - foreach <[teams].get[blue]> as:blue_player: + - glow <[blue_player]> true for:<[teams].get[blue]> + - glow <[blue_player]> false for:<[teams].get[red]> + +sports_football_idle_game: + debug: false + type: task + definitions: id + script: + - define extra ].get[extra_data]> + - define teams ]> + - run sports_arena_set_status def.id:<[id]> def.status:waiting + - run ball_remove def.id:<[id]> + - teleport <[teams].get[red].include[<[teams].get[blue]>]> <[extra].get[ball_start]> + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "Not enough players. Waiting..." + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> title:<&7>Waiting fade_in:0 fade_out:0 stay:3s + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_HAT pitch:1 volume:30 + +sports_football_score_goal: + debug: false + type: task + definitions: id|team + script: + - run sports_arena_set_status def.id:<[id]> def.status:goal + - define teams ]> + - if <[team]> == red: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&c>Goal for Red" fade_in:0 fade_out:0 stay:2s + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "<&c>Red team <&7>scored a goal!" + - if <[team]> == blue: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&9>Goal for Blue" fade_in:0 fade_out:0 stay:2s + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "<&9>Blue team <&7>scored a goal!" + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_PLING pitch:2 volume:30 + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:ENTITY_FIREWORK_ROCKET_TWINKLE_FAR pitch:1 volume:30 + - wait 3s + - run sports_football_restart_game def.id:<[id]> diff --git a/scripts/sports/football/sports_football_world.dsc b/scripts/sports/football/sports_football_world.dsc new file mode 100644 index 0000000..5b97b92 --- /dev/null +++ b/scripts/sports/football/sports_football_world.dsc @@ -0,0 +1,55 @@ +sports_football_world: + debug: false + type: world + events: + ## ball click + on player damages entity bukkit_priority:low: + - ratelimit 10t + - if !: + - stop + - if !: + - stop + - if !: + - stop + - define arena_id + - if !<[arena_id].starts_with[sports_football]>: + - stop + - if ]> != normal: + - stop + - define min_y + - if <[min_y]> < 0: + - define min_y 0 + - define velo + - define kick ].add[0,0.25,0].add[<[velo]>]> + - if : + - define kick + - if !: + - define kick + - run ball_vector_add def.ball: def.vector:<[kick]> + ## out of bounds & ball collision + on player walks: + - if !: + - stop + - define arena_id + - if !<[arena_id].starts_with[sports_football]>: + - stop + - if ]> != normal: + - stop + # ball collision + - define ball ]> + - if > <[ball].location.y>: + - if ]> < 0.5: + - run ball_vector_add def.ball:<[ball]> def.vector:<[ball].location.sub[].normalize.mul[0.5].add[0,0.05,0]> + - ratelimit 10t + ## goal scoring + on custom event id:ball_move bukkit_priority:low: + - if !: + - stop + - define arena_id + - if ]> != normal: + - stop + - define extra ].get[extra_data]> + - if <[extra].get[red_goal].contains[]> || <[extra].get[red_goal].contains[]>: + - run sports_football_score_goal def.id:<[arena_id]> def.team:blue + - else if <[extra].get[blue_goal].contains[]> || <[extra].get[blue_goal].contains[]>: + - run sports_football_score_goal def.id:<[arena_id]> def.team:red diff --git a/scripts/sports/sports_tasks.dsc b/scripts/sports/sports_tasks.dsc new file mode 100644 index 0000000..b9a5d7e --- /dev/null +++ b/scripts/sports/sports_tasks.dsc @@ -0,0 +1,217 @@ +sports_arena_register: + debug: false + type: task + definitions: id|cuboid|max_per_team|ball_display|ball_size|ball_gravity|on_join_task|on_leave_task|on_redistribute_task|default_status|extra_data + script: + - definemap arena: + id: <[id]> + cuboid: <[cuboid]> + max_per_team: <[max_per_team]> + ball_display: <[ball_display]> + ball_size: <[ball_size]> + ball_gravity: <[ball_gravity]> + on_join_task: <[on_join_task]> + on_leave_task: <[on_leave_task]> + on_redistribute_task: <[on_redistribute_task]> + default_status: <[default_status]> + extra_data: <[extra_data]> + - flag server sports_arenas:].with[<[id]>].as[<[arena]>]> + - flag server sports_status:].with[<[id]>].as[<[default_status]>]> + +sports_arena_update_property: + debug: false + type: task + definitions: id|property|new_value + script: + - define arena ].get[<[id]>]> + - if !<[arena].keys.contains[<[property]>]>: + - narrate "<&c> Could not update arena property: <[property]> is an inexistent property." + - stop + - define arena <[arena].with[<[property]>].as[<[new_value]>]> + - flag server sports_arenas:].with[<[id]>].as[<[arena]>]> + +sports_arena_exists: + debug: false + type: procedure + definitions: id + script: + - determine ].if_null[false]> + +sports_arena_cleanup: + debug: false + type: task + definitions: id + script: + - define on_leave_task ].get[on_leave_task]> + - foreach ].get[red].if_null[]> as:player: + - run <[on_leave_task]> def.id:<[id]> def.player:<[player]> + - foreach ].get[blue].if_null[]> as:player: + - run <[on_leave_task]> def.id:<[id]> def.player:<[player]> + - flag server sports_teams:].exclude[<[id]>]> + - define default_status ].get[default_status]> + - flag server sports_status:].with[<[id]>].as[<[default_status]>]> + +sports_arena_unregister: + debug: false + type: task + definitions: id + script: + - run sports_arena_cleanup def.id:<[id]> + - flag server sports_arenas:].exclude[<[id]>]> + - flag server sports_status:].exclude[<[id]>]> + +sports_arena: + debug: false + type: procedure + definitions: id + script: + - determine ].get[<[id]>]> + +sports_arena_can_join: + debug: false + type: procedure + definitions: id|team + script: + - define max_per_team ].get[max_per_team]> + - define teams ].if_null[].with[blue].as[]>]> + - define red <[teams].get[red]> + - define blue <[teams].get[blue]> + - if <[red].size> >= <[max_per_team]> && <[blue].size> >= <[max_per_team]>: + - determine false + - else if <[red].size> >= <[max_per_team]>: + - determine blue + - else if <[blue].size> >= <[max_per_team]>: + - determine red + - determine any + +sports_arena_player_count: + debug: false + type: procedure + definitions: id + script: + - define teams ].if_null[].with[blue].as[]>]> + - define red <[teams].get[red]> + - define blue <[teams].get[blue]> + - determine <[red].size.add[<[blue].size>]> + +sports_arena_teams: + debug: false + type: procedure + definitions: id + script: + - define teams ].if_null[].with[blue].as[]>]> + - define red <[teams].get[red]> + - define blue <[teams].get[blue]> + - determine ].with[blue].as[<[blue]>]> + +# team is "red" or "blue" +sports_arena_join: + debug: false + type: task + definitions: id|player|team + script: + - define teams ].if_null[].with[blue].as[]>]> + - define teams <[teams].with[<[team]>].as[<[teams].get[<[team]>].include[<[player]>].deduplicate>]> + - flag <[player]> sports:].with[team].as[<[team]>]> + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - define on_join_task ].get[on_join_task]> + - run <[on_join_task]> def.id:<[id]> def.player:<[player]> def.team:<[team]> + +sports_arena_join_auto: + debug: false + type: task + definitions: id|player + script: + - define teams ].if_null[].with[blue].as[]>]> + - define red <[teams].get[red]> + - define blue <[teams].get[blue]> + - define on_join_task ].get[on_join_task]> + - if <[red].size> < <[blue].size>: + - define teams <[teams].with[red].as[<[red].include[<[player]>].deduplicate>]> + - flag <[player]> sports:].with[team].as[red]> + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - run <[on_join_task]> def.id:<[id]> def.player:<[player]> def.team:red + - else: + - define teams <[teams].with[blue].as[<[blue].include[<[player]>].deduplicate>]> + - flag <[player]> sports:].with[team].as[blue]> + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - run <[on_join_task]> def.id:<[id]> def.player:<[player]> def.team:blue + +sports_arena_leave: + debug: false + type: task + definitions: id|player + script: + - define teams ].if_null[].with[blue].as[]>]> + - define teams <[teams].with[red].as[<[teams].get[red].exclude[<[player]>]>]> + - define teams <[teams].with[blue].as[<[teams].get[blue].exclude[<[player]>]>]> + - flag <[player]> sports:! + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - define on_leave_task ].get[on_leave_task]> + - run <[on_leave_task]> def.id:<[id]> def.player:<[player]> + +sports_arena_redistribute: + debug: false + type: task + definitions: id + script: + - define teams ].if_null[].with[blue].as[]>]> + - define red <[teams].get[red]> + - define blue <[teams].get[blue]> + - if <[red].size.sub[1]> > <[blue].size>: + - define random <[red].random> + - define teams <[teams].with[red].as[<[red].exclude[<[random]>].deduplicate>]> + - define teams <[teams].with[blue].as[<[blue].include[<[random]>].deduplicate>]> + - flag <[random]> sports:].with[team].as[red]> + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - define on_redistribute_task ].get[on_redistribute_task]> + - run <[on_redistribute_task]> def.id:<[id]> def.player:<[random]> def.from:red def.to:blue + - determine red + - if <[blue].size.sub[1]> > <[red].size>: + - define random <[blue].random> + - define teams <[teams].with[blue].as[<[blue].exclude[<[random]>].deduplicate>]> + - define teams <[teams].with[red].as[<[red].include[<[random]>].deduplicate>]> + - flag <[random]> sports:].with[team].as[blue]> + - flag server sports_teams:].with[<[id]>].as[<[teams]>]> + - define on_redistribute_task ].get[on_redistribute_task]> + - run <[on_redistribute_task]> def.id:<[id]> def.player:<[random]> def.from:blue def.to:red + - determine blue + - determine none + +sports_arena_set_status: + debug: false + type: task + definitions: id|status + script: + - flag server sports_status:].with[<[id]>].as[<[status]>]> + +sports_arena_get_status: + debug: false + type: procedure + definitions: id + script: + - determine ].get[<[id]>]> + +sports_arena_enter_arena_prompt: + debug: false + type: task + definitions: id|player + script: + - ratelimit <[player]> 2s + - clickable save:join_arena usages:1 until:30s: + - if <[player].has_flag[sports]>: + - stop + - run sports_arena_join_auto def.id:<[id]> def.player:<[player]> + - narrate targets:<[player]> format:formats_prefix "Join this game? <&l>[YES]].on_click[]>" + +sports_arena_exit_arena_prompt: + debug: false + type: task + definitions: id|player + script: + - ratelimit <[player]> 2s + - clickable save:leave_arena usages:1 until:30s: + - if !<[player].has_flag[sports]>: + - stop + - run sports_arena_leave def.id:<[id]> def.player:<[player]> + - narrate targets:<[player]> format:formats_prefix "Leave this game? <&l>[YES]].on_click[]>" diff --git a/scripts/sports/sports_world.dsc b/scripts/sports/sports_world.dsc new file mode 100644 index 0000000..f07a9ff --- /dev/null +++ b/scripts/sports/sports_world.dsc @@ -0,0 +1,83 @@ +sports_arena_collision_world: + debug: false + type: world + events: + on custom event id:ball_move: + - if !: + - stop + - define arena ]> + - define cuboid <[arena].get[cuboid]> + - define corners <[cuboid].corners> + # axis-aligned boundary reflection algorithm + - define min <[corners].get[1]> + - define max <[corners].get[8]> + - define damping 0.75 + - define new_next + - define new_velocity + - define bounced false + - define min_x <[min].x> + - define max_x <[max].x> + - define min_y <[min].y> + - define max_y <[max].y> + - define min_z <[min].z> + - define max_z <[max].z> + # X + - if <[new_next].x> < <[min_x]>: + - define new_next <[new_next].with_x[<[min_x]>]> + - define new_velocity <[new_velocity].with_x[<[new_velocity].x.mul[-<[damping]>]>]> + - define bounced true + - if <[new_next].x> > <[max_x]>: + - define new_next <[new_next].with_x[<[max_x]>]> + - define new_velocity <[new_velocity].with_x[<[new_velocity].x.mul[-<[damping]>]>]> + - define bounced true + # Y + - if <[new_next].y> < <[min_y]>: + - define new_next <[new_next].with_y[<[min_y]>]> + - define new_velocity <[new_velocity].with_y[<[new_velocity].y.mul[-<[damping]>]>]> + - define bounced true + - if <[new_next].y> > <[max_y]>: + - define new_next <[new_next].with_y[<[max_y]>]> + - define new_velocity <[new_velocity].with_y[<[new_velocity].y.mul[-<[damping]>]>]> + - define bounced true + # Z + - if <[new_next].z> < <[min_z]>: + - define new_next <[new_next].with_z[<[min_z]>]> + - define new_velocity <[new_velocity].with_z[<[new_velocity].z.mul[-<[damping]>]>]> + - define bounced true + - if <[new_next].z> > <[max_z]>: + - define new_next <[new_next].with_z[<[max_z]>]> + - define new_velocity <[new_velocity].with_z[<[new_velocity].z.mul[-<[damping]>]>]> + - define bounced true + # update to bounce + - if <[bounced]>: + - determine output:<[new_next]> passively + - determine output:<[new_velocity]> passively + on player walks: + - if !: + - define arenas + - foreach <[arenas]> as:arena: + - if <[arena].get[cuboid].contains[]> && !<[arena].get[cuboid].contains[]>: + - if == survival || == adventure: + - determine cancelled passively + - run sports_arena_enter_arena_prompt def.id:<[arena].get[id]> def.player: + - stop + - else: + - define arena_id + - define arena ]> + - if !<[arena].get[cuboid].contains[]> && !<[arena].get[cuboid].contains[]>: + - if == survival || == adventure: + - determine cancelled passively + - run sports_arena_exit_arena_prompt def.id:<[arena_id]> def.player: + on player quits: + - if !: + - stop + - define arena_id + - run sports_arena_leave def.id:<[arena_id]> def.player: + +sports_arena_cleanup_world: + debug: false + type: world + events: + after server start: + - foreach as:arena: + - run sports_arena_cleanup def.id:<[arena].get[id]> diff --git a/scripts/sports/volleyball/sports_volleyball_tasks.dsc b/scripts/sports/volleyball/sports_volleyball_tasks.dsc new file mode 100644 index 0000000..e3f468d --- /dev/null +++ b/scripts/sports/volleyball/sports_volleyball_tasks.dsc @@ -0,0 +1,100 @@ +sports_volleyball_join: + debug: false + type: task + definitions: id|player|team + script: + - define extra ].get[extra_data]> + - if <[team]> == red: + - teleport <[player]> <[extra].get[red_start]> + - else if <[team]> == blue: + - teleport <[player]> <[extra].get[blue_start]> + - define count ]> + - if <[count]> == 2: + - define teams ]> + - repeat 3: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> title:<&6>]> fade_in:0 fade_out:0 stay:1s + - wait 1s + - if ]> < 2: + - stop + - run sports_volleyball_restart_game def.id:<[id]> def.side:red + - stop + - if <[count]> < 2: + - run sports_volleyball_idle_game def.id:<[id]> + +sports_volleyball_leave: + debug: false + type: task + definitions: id|player + script: + - define extra ].get[extra_data]> + - teleport <[player]> <[extra].get[exit]> + - glow <[player]> reset + - define ball ].if_null[null]> + - if ]> <= 1: + - run sports_volleyball_idle_game def.id:<[id]> + +sports_volleyball_redistribute: + debug: false + type: task + definitions: id|player|from|to + script: + - define extra ].get[extra_data]> + - if <[to]> == red: + - teleport <[player]> <[extra].get[red_start]> + - narrate targets:<[player]> format:formats_prefix "You were auto-balanced to the <&c>red team" + - else if <[to]> == blue: + - teleport <[player]> <[extra].get[blue_start]> + - narrate targets:<[player]> format:formats_prefix "You were auto-balanced to the <&9>blue team" + +sports_volleyball_restart_game: + debug: false + type: task + definitions: id|side + script: + - define arena ]> + - define extra <[arena].get[extra_data]> + - run sports_arena_redistribute def.id:<[id]> + - define teams ]> + - foreach <[teams].get[red]> as:red_player: + - teleport <[red_player]> <[extra].get[red_start]> + - foreach <[teams].get[blue]> as:blue_player: + - teleport <[blue_player]> <[extra].get[blue_start]> + - run sports_arena_set_status def.id:<[id]> def.status:].pass[red_start].fail[blue_start]> + - define ball_start ].pass[<[extra].get[red_ball_start]>].fail[<[extra].get[blue_ball_start]>]> + - run ball_create def.id:<[id]> def.location:<[ball_start]> def.size:<[arena].get[ball_size]> def.display_item:<[arena].get[ball_display]> def.gravity_multiplier:<[arena].get[ball_gravity]> + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "Next round..." + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&e>Next Round" fade_in:0 fade_out:0 stay:1s + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_PLING pitch:1 volume:30 + +sports_volleyball_idle_game: + debug: false + type: task + definitions: id + script: + - define extra ].get[extra_data]> + - define teams ]> + - run sports_arena_set_status def.id:<[id]> def.status:waiting + - run ball_remove def.id:<[id]> + - teleport <[teams].get[red]> <[extra].get[red_start]> + - teleport <[teams].get[blue]> <[extra].get[blue_start]> + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "Not enough players. Waiting..." + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> title:<&7>Waiting fade_in:0 fade_out:0 stay:3s + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_HAT pitch:1 volume:30 + +sports_volleyball_score_goal: + debug: false + type: task + definitions: id|team + script: + - run sports_arena_set_status def.id:<[id]> def.status:goal + - define teams ]> + - if <[team]> == red: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&c>Point for Red" fade_in:0 fade_out:0 stay:2s + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "<&c>Red team <&7>scored a goal!" + - if <[team]> == blue: + - title targets:<[teams].get[red].include[<[teams].get[blue]>]> "title:<&9>Point for Blue" fade_in:0 fade_out:0 stay:2s + - narrate targets:<[teams].get[red].include[<[teams].get[blue]>]> format:formats_prefix "<&9>Blue team <&7>scored a goal!" + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:BLOCK_NOTE_BLOCK_PLING pitch:2 volume:30 + - playsound <[teams].get[red].include[<[teams].get[blue]>]> sound:ENTITY_FIREWORK_ROCKET_TWINKLE_FAR pitch:1 volume:30 + - wait 3s + - run sports_volleyball_restart_game def.id:<[id]> def.side:].pass[red].fail[blue]> diff --git a/scripts/sports/volleyball/sports_volleyball_world.dsc b/scripts/sports/volleyball/sports_volleyball_world.dsc new file mode 100644 index 0000000..4863a39 --- /dev/null +++ b/scripts/sports/volleyball/sports_volleyball_world.dsc @@ -0,0 +1,67 @@ +sports_volleyball_world: + debug: false + type: world + events: + ## ball click + on player damages entity bukkit_priority:low: + - ratelimit 10t + - define ball + - if !<[ball].has_flag[ball]>: + - stop + - if <[ball].entity_type> == armor_stand: + - define ball ]> + - if !<[ball].flag[ball].starts_with[sports_volleyball]>: + - stop + - if !: + - stop + - define arena_id + - if !<[arena_id].starts_with[sports_volleyball]>: + - stop + - define status ]> + - if <[status]> == normal: + - if ].distance_squared[<[ball].location>]> > 22: + - stop + - define y + - if <[y]> < 0.45: + - define y 0.45 + - if <[y]> > 0.95: + - define y 0.95 + - define kick ]> + - if : + - define kick + - if !: + - define kick + - define kick <[kick].add[]> + - define kick <[kick].add[]>]> + - run ball_vector_add def.ball:<[ball]> def.vector:<[kick]> + - flag <[ball]> sports_volleyball_delay_score:! + - else if <[status]> == blue_start || <[status]> == red_start: + - run sports_arena_set_status def.id:<[arena_id]> def.status:normal + - define kick + - run ball_vector_add def.ball:<[ball]> def.vector:<[kick]> + - playsound <[ball].location> sound:BLOCK_STONE_BREAK pitch:1.8 + ## point scored + on custom event id:ball_move bukkit_priority:low: + - if !: + - stop + - define arena_id + - if ]> != normal: + - define status ]> + - if <[status]> == blue_start || <[status]> == red_start: + - determine cancelled + - stop + - if !: + - if !: + - stop + - flag sports_volleyball_delay_score: + - stop + - else: + - if ]> < 300: + - stop + - define extra ].get[extra_data]> + - define red_start <[extra].get[red_start]> + - define blue_start <[extra].get[blue_start]> + - if ]> < ]>: + - run sports_volleyball_score_goal def.id:<[arena_id]> def.team:blue + - else: + - run sports_volleyball_score_goal def.id:<[arena_id]> def.team:red diff --git a/scripts/storyboard/ch1/ch1_1_preassign.dsc b/scripts/storyboard/ch1/ch1_1_preassign.dsc new file mode 100644 index 0000000..264d595 --- /dev/null +++ b/scripts/storyboard/ch1/ch1_1_preassign.dsc @@ -0,0 +1,238 @@ +ch1_1_preassign: + debug: false + type: world + events: + on player joins: + - if |preassign]> == null: + - run storyboard_npc_memalloc "def:|marie|player||Marie Ayashibayomi|true|" + - run storyboard_npc_set_assignment def.player: def.name:marie def.assignment:ch1_1_marie_assign + - run storyboard_player_state_set def.player: def.key:preassign def.value:true + +ch1_1_marie_assign: + debug: false + type: assignment + actions: + on assignment: + - trigger name:click state:true + interact scripts: + - ch1_1_marie_interact + +# TODO: this seems like the wrong place +ch1_1_define_phone: + debug: false + type: task + script: + - define phone + - adjust def:phone "display:<&e>Flip Phone" + - adjust def:phone custom_model_data:2 + - flag <[phone]> phones:true + - determine <[phone]> + +ch1_1_marie_interact: + debug: false + type: interact + steps: + 1: + click trigger: + script: + - if != null: + - stop + - engage player duration:999999s + - ~run textbox_write def.player: def.queue: "def.line3s:* Hey there, ]>!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'm so happy to see ya!" def.avatar_unicode: + - definemap choices: + left: + text: Likewise + right: + text: My name? + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == right: + - ~run textbox_write def.player: def.queue: "def.line3s:* Oh, right." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Let's just say a little bird$$nltold me it, wink wink!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So, what do you think?$$nlThis town's looking neat, no?" def.avatar_unicode: + - definemap choices: + left: + text: Yeah + right: + text: Don't know + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == left: + - ~run textbox_write def.player: def.queue: "def.line3s:* Right???$$nlOh man." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Golly me! I just love$$nlit here." def.avatar_unicode: + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:* That's alright, you got this!$$nlYou'll fit right in, I'm sure of it." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'm actually really fond of this$$nltown, although it's a little small." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You're new anyway, you probably need$$nlsomebody to show you around a little,$$nlno?" def.avatar_unicode: + - definemap choices: + top: + text: It would help + bottom: + text: You talk a lot + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - define displeased false + - if <[choice]> == top: + - ~run textbox_write def.player: def.queue: "def.line3s:* Oh welp, I had a feeling." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Don't worry dearie, I've gotcha$$nlaaaall covered!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll be in front of the Academy." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You know, like... the big building." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* The one with the big gates." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You cannot miss it!$$nlSee you there!" def.avatar_unicode: + - else: + - define displeased true + - ~run textbox_write def.player: def.queue: "def.line3s:* Oh.." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Um.." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Yeah, I, uh.." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Actually.." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll be in front of the Academy." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Sorry." def.avatar_unicode: + - run storyboard_player_freeze def.player: + - ~walk + - run storyboard_npc_movement_commit def.player: def.name:marie def.new_location: + - run storyboard_player_unfreeze def.player: + - if !<[displeased]>: + - run storyboard_npc_state_set def.player: def.name:marie def.key:opinion def.value:1 + - else: + - run storyboard_npc_state_set def.player: def.name:marie def.key:opinion def.value:-1 + - zap 2 + - disengage player + 2: + click trigger: + script: + - if != null: + - stop + - engage player duration:999999s + - define displeased false + - define opinion |marie|opinion]> + - ~run ch1_1_define_phone save:result + - define phone + - if <[opinion]> == null: + - define opinion 1 + - if <[opinion]> == 1: + - ~run textbox_write def.player: def.queue: "def.line3s:* Alrighty, here we are!!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Sorry, sorry." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll calm myself down now." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I've got to show ya things$$nland I can't be all jumpy!" def.avatar_unicode: + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:* Oh. Hey." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Need something?" def.avatar_unicode: + - definemap choices: + left: + text: I'm sorry + right: + text: No, bye + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == right: + - ~run textbox_write def.player: def.queue: "def.line3s:* Mkay." def.avatar_unicode: + - wait 1s + - disengage player + - stop + - ~run textbox_write def.player: def.queue: "def.line3s:* Hm. Are you now?" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You know, that was kind of$$nlmean of you." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Why should I help you, anyway?" def.avatar_unicode: + - definemap choices: + top: + text: I'll change my ways + bottom: + text: You're right, I'm pretending + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == top: + - ~run textbox_write def.player: def.queue: "def.line3s:* Well." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* . . ." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Okay, look, if you insist." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll try to pretend that$$nlnever happened." def.avatar_unicode: + - else: + - define displeased true + - ~run textbox_write def.player: def.queue: "def.line3s:* Well." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I should've guessed." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So look, I'll cut it short." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I was going to show you around$$nland then give you a flip phone." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* But honestly, I don't care$$nlabout that anymore, so why don't$$nlyou just take the phone instead?" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Makes things easier." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:$$nl(You got the flip phone.)" + - give <[phone]> + - run storyboard_player_freeze def.player: + - ~walk + - run storyboard_npc_memfree def.player: def.name:marie + - run storyboard_player_unfreeze def.player: + - goto done + - ~run textbox_write def.player: def.queue: "def.line3s:* As promised, I'll show you around." def.avatar_unicode: + - if <[opinion]> == 1: + - ~run textbox_write def.player: def.queue: "def.line3s:* You should pay attention$$nlbecause it's going to help you out!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I hope so at least!" def.avatar_unicode: + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:* You can pay attention, but$$nlhonestly I don't care." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Anyway, follow me." def.avatar_unicode: + - ~walk speed:1 + - ~run storyboard_waituntil_safe def.player: def.queue: def.condition:[player].location.distance_squared[].is_less_than[10] + - ~run textbox_write def.player: def.queue: "def.line3s:* So this is the academy." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Really big place." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Nobody really likes the <&4><&l>dean<&0><&l>, or$$nlwell, so I hear." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Grumpy, rich... You get the idea." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Although, they did something right." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Behind this building, there are$$nlsome <&o>sport fields." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* A lot of people really enjoy them." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll take you there soon, but$$nllet's walk through the academy a bit." def.avatar_unicode: + - ~walk speed:1 + - ~walk speed:1 + - ~walk speed:1 + - ~run storyboard_waituntil_safe def.player: def.queue: def.condition:[player].location.distance_squared[].is_less_than[10] + - ~run textbox_write def.player: def.queue: "def.line3s:* So, anyway, the <&4><&l>dean<&0><&l> really went$$nlextra with this." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* No, but really...$$nlA decorative garden at the$$nlentrance...?" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Anyway, let's keep going." def.avatar_unicode: + - ~walk speed:1 + - ~walk speed:1 + - ~walk speed:1 + - ~run storyboard_waituntil_safe def.player: def.queue: def.condition:[player].location.distance_squared[].is_less_than[10] + - ~run textbox_write def.player: def.queue: "def.line3s:* It is pretty, is it not?" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Maybe they had a point." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Though I think people would appreciate$$nlit if they stopped being as snarky." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Not everyone in this town is kind and$$nlnice to you, you know?" def.avatar_unicode: + - if <[opinion]> != 1: + - ~run textbox_write def.player: def.queue: "def.line3s:* <&o>I can think of one, at least." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So it's best you are careful." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You never know who you'll run into." def.avatar_unicode: + - ~walk speed:1 + - ~walk speed:1 + - ~walk speed:1 + - ~walk speed:1 + - ~run storyboard_waituntil_safe def.player: def.queue: def.condition:[player].location.distance_squared[].is_less_than[10] + - ~run textbox_write def.player: def.queue: "def.line3s:* Well, here are the sport fields." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I heard they're quite fun to play at!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Though I suppose you'll need a friend,$$nlso maybe go together with someone!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'm sure you can call someone on$$nlthe phone!" def.avatar_unicode: + - define should_give_phone + - if <[should_give_phone]>: + - ~run textbox_write def.player: def.queue: "def.line3s:* ..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* What?!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You don't have a phone?" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Hey, I know." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll just give you a flip phone!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You can call, text, play music..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Give it a try!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:$$nl(You got the flip phone.)" + - fakeitem <[phone]> slot:hand + - ~run textbox_write def.player: def.queue: "def.line3s:* Oh, and..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* We can continue at the Central Park." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I hear it's really easy to get there!" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:$$nl(You remember something about /spawn)" + - ~run textbox_write def.player: def.queue: "def.line3s:* Well then, toodles!" def.avatar_unicode: + - run storyboard_player_freeze def.player: + - ~walk speed:2 + - run storyboard_player_unfreeze def.player: + - run storyboard_npc_movement_commit def.player: def.name:marie def.new_location: + - inventory update + - if <[should_give_phone]>: + - give <[phone]> + - mark done + - if !<[displeased]>: + - run storyboard_npc_state_set def.player: def.name:marie def.key:opinion def.value:<[opinion].add[1]> + - else: + - run storyboard_npc_state_set def.player: def.name:marie def.key:opinion def.value:<[opinion].sub[1]> + - inventory update + - zap 3 + - disengage player diff --git a/scripts/storyboard/data/storyboard_npc_dump.dsc b/scripts/storyboard/data/storyboard_npc_dump.dsc new file mode 100644 index 0000000..d2dafbd --- /dev/null +++ b/scripts/storyboard/data/storyboard_npc_dump.dsc @@ -0,0 +1,24 @@ +storyboard_skin_dump: + debug: false + type: data + marie: + a: ewogICJ0aW1lc3RhbXAiIDogMTcwNjgwNTQ4MjM3OSwKICAicHJvZmlsZUlkIiA6ICJhODJkZTliNjZhYjE0OGZhOTQ3OGY0OWJiZjg5OTk1YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJmdWhyM3JibDRiIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q5OTI3MTA4ZDI4MmQ0NTYxMmM5YWZmZGQ4NDA2ODAzYWNjYmY5ZWY5N2MyMzA4NDgwNGQ3YzYwNjAyNTlkZGMiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==;to+5mawLkRklTI+r+N5HE/aMJPRtBYAzccTCAWfDhcH/6qpV3t25tsokGhZIfwyzn34ckycN0+Qo/HwIHpK4BYljf4TfnEI1/zLoH7V4oPnVjlwOuZuFT30OVlTo6z2vaWm3ZvhzAYsW6prt51CBZY2sGu76cBtbck7qOVUCdVzo+998dXWz19NF6mfZk11wKEsMeTWId9xB6KsNhZeqYrUr1R+PTzLl9fgsexPJ2WqZFpk1sGVzxdsxdjDxB4tDin9hulfnCq3Ar4xP+N8d1k6DMeudFaD6HltNRyfRr5nxIq7IyBU4dLG/aakUyasgVsU00v68+yzTA90sga8NSv9b1C0YTv91HcCIGbwmAoqGxuDibafkDTpEMfLAjRSIA4lxzJqZXCXssuTCzWnQVgS4OCm+MAwB08uX6uPMdL0EJwX3vMeiajQrX4P0oViKO4H0KwQnMXMOx5PqLDdFtWiBOE0NGTdJ1BqBfNbg4h3tNIv08y3hqUgUj/owfRnJ9X5EXibH2qk5+p4pHa15oDgM2Q6mSn4tkofR5nymvV8/YhtQLG9LJgeHsn6gY4ndWWk3zM3Gx3TOsDozrYs0hIfBSdLo6FJ0+7I2N/ga1Zj3Rj40d8EwGzrJrIY7v5Cz3zLnH8b70eUdAtGwW67/Qx1x/tmykKS1nfS9CGQW91M=;Marie + +storyboard_avatar_dump: + debug: false + type: data + marie: + normal: 錁 + neutral: 錂 + happy: 錃 + upset: 錄 + surprised: 錅 + ummm: 錆 + sweat: 錇 + ugh: 錈 + oof: 錉 + emika: + normal: 錑 + smirk: 錒 + smile: 錓 + unimpressed: 錔 \ No newline at end of file diff --git a/scripts/storyboard/dialogue/dialogue_npc_kobayashi.dsc b/scripts/storyboard/dialogue/dialogue_npc_kobayashi.dsc new file mode 100644 index 0000000..8960882 --- /dev/null +++ b/scripts/storyboard/dialogue/dialogue_npc_kobayashi.dsc @@ -0,0 +1,47 @@ +dialogue_npc_kobayashi_assign: + debug: false + type: assignment + actions: + on assignment: + - trigger name:click state:true + interact scripts: + - dialogue_npc_kobayashi + +dialogue_npc_kobayashi: + debug: false + type: interact + steps: + 1: + click trigger: + script: + - if != null: + - stop + - engage player + - ~run textbox_write def.player: def.queue: "def.line3s:Heya, sorry luv." + - ~run textbox_write def.player: def.queue: "def.line3s:We're currently under renovations, luv." + - definemap choices: + left: + text: Why? + right: + text: Unfortunate + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == left: + - ~run textbox_write def.player: def.queue: "def.line3s:What?$$nlWhy?" + - ~run textbox_write def.player: def.queue: "def.line3s:Well, look, I can't tell you that, luv.$$nl It's against Hospital Policy." + - definemap choices: + left: + text: Sorry + right: + text: Don't care + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == left: + - ~run textbox_write def.player: def.queue: "def.line3s:No worries, luv!" + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:What?$$nlYou don't care?" + - ~run textbox_write def.player: def.queue: "def.line3s:I'm afraid I can't treat that, luv." + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:Indeed, luv." + - wait 1s + - disengage player diff --git a/scripts/storyboard/dialogue/dialogue_npc_patchouli.dsc b/scripts/storyboard/dialogue/dialogue_npc_patchouli.dsc new file mode 100644 index 0000000..4291ed0 --- /dev/null +++ b/scripts/storyboard/dialogue/dialogue_npc_patchouli.dsc @@ -0,0 +1,25 @@ +dialogue_npc_patchouli_assign: + debug: false + type: assignment + actions: + on assignment: + - trigger name:click state:true + interact scripts: + - dialogue_npc_patchouli + +dialogue_npc_patchouli: + debug: false + type: interact + steps: + 1: + click trigger: + script: + - if != null: + - stop + - engage player + - ~run textbox_write def.player: def.queue: "def.line3s:. . ." + - ~run textbox_write def.player: def.queue: "def.line3s:. . ." + - ~run textbox_write def.player: def.queue: "def.line3s:She is fast asleep." + - wait 1s + - disengage player + - ratelimit 10t diff --git a/scripts/storyboard/dialogue/dialogue_npc_ryuko.dsc b/scripts/storyboard/dialogue/dialogue_npc_ryuko.dsc new file mode 100644 index 0000000..d2343cb --- /dev/null +++ b/scripts/storyboard/dialogue/dialogue_npc_ryuko.dsc @@ -0,0 +1,31 @@ +dialogue_npc_ryuko_assign: + debug: false + type: assignment + actions: + on assignment: + - trigger name:click state:true + interact scripts: + - dialogue_npc_ryuko + +dialogue_npc_ryuko: + debug: false + type: interact + steps: + 1: + click trigger: + script: + - if != null: + - stop + - engage player + - ~run textbox_write def.player: def.queue: "def.line3s:* Hey, what's up?!" + - ~run textbox_write def.player: def.queue: "def.line3s:* I hang out here a lot.$$nlI love to stay fit, be athletic." + - ~run textbox_write def.player: def.queue: "def.line3s:* Kicking balls is great!$$nl $$nl* uh.." + - ~run textbox_write def.player: def.queue: "def.line3s:* Anyway, the Academy sorta ran out of$$nlof tennis rackets." + - ~run textbox_write def.player: def.queue: "def.line3s:* Something about them being broken$$nland rusty, apparently." + - ~run textbox_write def.player: def.queue: "def.line3s:* If you ask me, that's a bunch of crap!$$nlI think <&4><&l>the dean<&0><&l> is just no fun." + - ~run textbox_write def.player: def.queue: "def.line3s:* I think they don't want us playing.$$nlIt wouldn't be the first time." + - ~run textbox_write def.player: def.queue: "def.line3s:* I also haven't seen anyone play any$$nlbasketball recently, so I'm not sure$$nlwhat that's about." + - ~run textbox_write def.player: def.queue: "def.line3s:* They should resolve this as soon as$$nlpossible before the students start a$$nlrebellion." + - wait 1s + - disengage player + - ratelimit 10t diff --git a/scripts/storyboard/intro/intro_books.dsc b/scripts/storyboard/intro/intro_books.dsc new file mode 100644 index 0000000..553d70b --- /dev/null +++ b/scripts/storyboard/intro/intro_books.dsc @@ -0,0 +1,10 @@ +intro_book: + debug: false + type: book + title: Intro Book + author: bqkitcat + signed: true + text: + - Welcome to SakuraFallsWe encourage you to enable the resource pack for the best experience.Please read the next page for more information. + - TutorialYou are going through the introductory tutorial. We will help you pick a character name and description, as well as your starting role.Please read everything! It will help a lot. + - QuestionsPlease type /ticket create in chat if you are having issues with the tutorial.Send messages with /ooc (message) for everyone online.You can also contact us on Discord, too, by <&click[https://discord.gg/bvDvQbT4s8].type[OPEN_URL]>clicking here<&end_click> diff --git a/scripts/storyboard/intro/intro_interactions.dsc b/scripts/storyboard/intro/intro_interactions.dsc new file mode 100644 index 0000000..9f90f15 --- /dev/null +++ b/scripts/storyboard/intro/intro_interactions.dsc @@ -0,0 +1,200 @@ +# Posters +intro_interact_posters: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - determine cancelled passively + - if : + - stop + - run intro_interact_posters_task + +intro_interact_posters_task: + debug: false + type: task + script: + - ~run textbox_write def.player: def.queue: "def.line3s:Book-related posters are on the wall." + - ~run textbox_write def.player: def.queue: "def.line3s:<&o><&dq>Screw that. I'm running away.<&dq>" + - ~run textbox_write def.player: def.queue: "def.line3s:<&o><&dq>Where?<&dq>" + - ~run textbox_write def.player: def.queue: "def.line3s:<&o><&dq>Dunno. Do you want to come?<&dq>" + - ~run textbox_write def.player: def.queue: "def.line3s:<&o><&dq>Yes,<&dq> I said without thinking." + +# Cirno +intro_interact_cirno: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - determine cancelled passively + - if : + - stop + - run intro_interact_cirno_task + +intro_interact_cirno_task: + debug: false + type: task + script: + - ~run textbox_write def.player: def.queue: "def.line3s:A quality, soft plushie of a beloved$$nlcharacter." + - ~run textbox_write def.player: def.queue: "def.line3s:It seems familiar, as if there are a$$nlsubstantial amount of images circulating$$nlaround with this character." + +# Laptop +intro_interact_laptop: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - determine cancelled passively + - if : + - stop + - run intro_interact_laptop_task + +intro_interact_laptop_task: + debug: false + type: task + script: + - ~run textbox_write def.player: def.queue: "def.line3s:It looks like a game is booted up.$$nlYou can see a city, and it looks like..." + - ~run textbox_write def.player: def.queue: "def.line3s:. . ." + - ~run textbox_write def.player: def.queue: "def.line3s:It's you!$$nl. . .$$nlWell, it's your character." + - ~run textbox_write def.player: def.queue: "def.line3s:You should give your character$$nla cool name, right?" + - waituntil max:5s + - ~run textbox_flush def.player: + - run anvil_input def.player: "def.prompt:Character Name" def.callback:intro_interact_laptop_task_name_callback + +intro_interact_laptop_task_name_callback: + debug: false + type: task + definitions: player|input + script: + - define __player <[player]> + - define name <[input].substring[1,24]> + - execute as_player player:<[player]> "rpname <[name]>" + - ~run textbox_write def.player: def.queue: "def.line3s:<[name]>" + - ~run textbox_write def.player: def.queue: "def.line3s:How nice!" + - ~run textbox_write def.player: def.queue: "def.line3s:Let's give them a description.$$nlDescribe their physical attributes." + - waituntil max:5s + - ~run textbox_flush def.player: + - run anvil_input def.player: "def.prompt:Description" def.callback:intro_interact_laptop_task_description_callback + +intro_interact_laptop_task_description_callback: + debug: false + type: task + definitions: player|input + script: + - define __player <[player]> + - execute as_player player:<[player]> "setdesc <[input]>" + - ~run textbox_write def.player: def.queue: "def.line3s:Great, your character's almost ready." + - ~run textbox_write def.player: def.queue: "def.line3s:Lastly, your character can start$$nlout as a student or as$$nlan adult." + - ~run textbox_write def.player: def.queue: "def.line3s:Both options are great, and it's$$nlmostly a matter of preference." + - ~run textbox_write def.player: def.queue: "def.line3s:For complete beginners, we recommend$$nlstarting out as a student." + - waituntil max:5s + - ~run textbox_flush def.player: + - run intro_interact_laptop_task_role_menu def.player: + +intro_interact_laptop_task_role_menu: + debug: false + type: task + definitions: player + script: + - definemap contents: + 1: + item: <&l>» <&e>Choose your starting role;lore=<&7>Your role gives you different roleplay opportunities and gameplay.|<&7>You can make a new character after the tutorial if you are unsure.]]> + 4: + item: 鐀;lore=<&7><&o>A new student at Tatsuru Academy, ready to learn|<&7><&o>and live a highschooler's life.]]> + script: intro_interact_laptop_task_role_callback + definitions: + player: <[player]> + input: no + 6: + item: 鐃;lore=<&7><&o>Freshly moved into Atarashikibo, on your way to|<&7><&o>find a job and a meaning.]]> + script: intro_interact_laptop_task_role_callback + definitions: + player: <[player]> + input: yes + - run menu_open def.player:<[player]> "def.title:<&f>邑邑邑邑酐<&a><&sp><&b><&sp><&c><&sp>" def.size:9 def.contents:<[contents]> + +intro_interact_laptop_task_role_callback: + debug: false + type: task + definitions: player|input + script: + - inventory close player:<[player]> + - define __player <[player]> + - define adult <[input].to_lowercase.trim.equals[yes]> + - if <[adult]>: + - execute as_server "lp user parent add adult" + - ~run textbox_write def.player: def.queue: "def.line3s:An adult it shall be.$$nlIf this is wrong, let us know." + - else: + - execute as_server "lp user parent add grade-10" + - ~run textbox_write def.player: def.queue: "def.line3s:A student it shall be.$$nlIf this is wrong, let us know." + - ~run textbox_write def.player: def.queue: "def.line3s:You should now be ready to start!" + - ~run textbox_write def.player: def.queue: "def.line3s:Have fun!" + - waituntil max:5s + - cast BLINDNESS duration:infinite no_ambient hide_particles no_icon + - wait 1s + - ~run textbox_write def.player: def.queue: "def.line3s:* Though..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I feel obligated to ask." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Have you heard of <&o>IC<&0><&l> and <&o>OOC<&0><&l>?" def.avatar_unicode: + - definemap choices: + left: + text: Not really + right: + text: Yeah + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == left: + - ~run textbox_write def.player: def.queue: "def.line3s:* Ah..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You see, this WORLD..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* This... <&o>representation<&0><&l>." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You exist beyond it." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'm talking about you, ." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Your character.$$nlYour VESSEL.$$nl" def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* They do not." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You, , are <&o>out of character<&0><&l>." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Your VESSEL...$$nl$$nlThey are <&o>in character<&0><&l>." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So, when your VESSEL speaks..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* That is not <&o>you<&0><&l>." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Your VESSEL has different feelings,$$nlemotions, and experiences." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* What those are is for you to decide." def.avatar_unicode: + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:* Ah..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So you know they stand for$$nl<&o>in character<&0><&l> and <&o>out of character." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You are probably familiar with$$nlthis WORLD." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* You are probably familiar with$$nlroleplaying, too." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I apologise for doubting you$$nllike that." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* . . ." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* In this world, we get to choose who$$nlwe are, at least sort of." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Maybe we cannot decide what the$$nloutcome will be, but we can try." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* , I..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I think your choices are important,$$nlregardless." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I think you should try your best to$$nldo what your heart tells you." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Wouldn't you agree?" def.avatar_unicode: + - definemap choices: + left: + text: Correct + right: + text: ... + - ~run textbox_choice def.player: def.queue: def.choices:<[choices]> save:result + - define choice + - if <[choice]> == left: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'm glad you understand." def.avatar_unicode: + - else: + - ~run textbox_write def.player: def.queue: "def.line3s:* Ah..." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I see." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* Very well. You are truly ready." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* When you are finally linked to$$nlour WORLD, you will see <&o>Marie<&0><&l>." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* She has talked to many others just$$nllike you." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* So, you should probably talk to her." def.avatar_unicode: + - ~run textbox_write def.player: def.queue: "def.line3s:* I'll be on my way.$$nlGood luck!" def.avatar_unicode: + - waituntil max:5s + - ~run textbox_flush def.player: + - adjust remove_effects + - adjust show_to_players + - flag intro:done + - execute as_player player: "spawn" + diff --git a/scripts/storyboard/intro/intro_world.dsc b/scripts/storyboard/intro/intro_world.dsc new file mode 100644 index 0000000..bd98964 --- /dev/null +++ b/scripts/storyboard/intro/intro_world.dsc @@ -0,0 +1,18 @@ +intro_world: + debug: false + type: world + events: + after player joins: + - define intro + - if <[intro]> != done: + - adjust hide_from_players + - adjust remove_effects + - run textbox_flush def.player: + - if <[intro]> == null: + - teleport + - flag intro:progress + - adjust show_book:intro_book + on player teleports bukkit_priority:lowest: + - if == progress: + - determine cancelled passively + - narrate "<&c>You may not teleport at this time." diff --git a/scripts/storyboard/tasks/storyboard_npc_tasks.dsc b/scripts/storyboard/tasks/storyboard_npc_tasks.dsc new file mode 100644 index 0000000..3bda479 --- /dev/null +++ b/scripts/storyboard/tasks/storyboard_npc_tasks.dsc @@ -0,0 +1,255 @@ +# +# Storyboard NPC Tasks +# +# Adds a complex set of per-player state managed NPC routines which +# allow for the creation of RPG-like stories, similar to Undertale. +# +# The routines and state system is also as memory efficient and lazy +# as possible. It utilizes Denizen and Citizens to their best, taking +# advantage of Denizen's innate scripting possibilites. +# + +# Allocates an NPC with a given name at some location for the current player. +# +# Optionally, specify a display name, display name visibility, and a skin_blob. +# Generate Skin Blobs using https://mineskin.org - it cannot be done automatically +# at this time. +# +# If the NPC is reallocated from player state, it will try to re-fill these values. +# You can specify new values to change these. +# Note it will only try to fill these optional values, not "name", "type", and "at". +# +# The name of the NPC must be unique - this is not the same as the display +# name of the NPC; rather it is an internal name, so it's recommended to +# keep it lowercase. +# +# If the NPC is not allocated but was saved in the player's mem state, it +# will be created and its state will be restored. +# If the NPC is already allocated, it will simply teleport the NPC. +# +# All NPCs are memfree'd when a player leaves, which does not reduce storage +# overhead, but does greatly reduce overhead when hiding/showing per-player NPCs. +# They are automatically memalloc'ed when a player rejoins. +storyboard_npc_memalloc: + debug: false + type: task + definitions: player|name|type|at|display_name|show_name|skin_blob + script: + - define registry registry_<[player].uuid> + - define npc_id npc_<[player].uuid>_<[name]> + - if !].if_null[].contains[<[npc_id]>]>: + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - create <[type]> <[npc_id]> <[at]> registry:<[registry]> save:npc + - define npc + - define npc_state + - define assignment null + - if <[npcs].contains[<[name]>]>: + - define npc_data <[npcs].get[<[name]>]> + - define npc_state <[npc_data].get[state]> + - if <[display_name].if_null[null]> == null: + - define display_name <[npc_data].get[display_name]> + - if <[show_name].if_null[null]> == null: + - define show_name <[npc_data].get[show_name]> + - if <[skin_blob].if_null[null]> == null: + - define skin_blob <[npc_data].get[skin_blob]> + - define assignment <[npc_data].get[assignment].if_null[null]> + - else: + - if <[display_name].if_null[null]> == null: + - define display_name <[display_name].if_null[<[name].to_sentence_case>]> + - if <[show_name].if_null[null]> == null: + - define show_name <[show_name].if_null[true]> + - if <[skin_blob].if_null[null]> == null: + - define skin_blob <[skin_blob].if_null[null]> + - definemap npc_data: + name: <[name]> + type: <[type]> + at: <[at]> + state: <[npc_state]> + display_name: <[display_name]> + show_name: <[show_name]> + skin_blob: <[skin_blob]> + allocated: true + assignment: <[assignment]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + - adjust <[npc]> auto_update_skin:false + - adjust <[npc]> name_visible:false + - lookclose <[npc]> state:true range:4 + - if !<[show_name]>: + - adjust <[npc]> hologram_lines: + - else: + - adjust <[npc]> "hologram_lines:<&f>鐓 <[display_name]>" + - if <[skin_blob]> != null: + - adjust <[npc]> skin_blob:<[skin_blob]> + - if <[assignment]> != null: + - assignment set script:<[assignment]> to:<[npc]> + - wait 2t + - run storyboard_npc_internal_show_to_player def.player:<[player]> def.npc:<[npc]> + - else: + - define index ].find[<[npc_id]>]> + - define npc ,<[registry]>]> + - teleport <[npc]> <[at]> + +# Retrieves an NPC from the player's unique NPC registry by name. +storyboard_npc_by_name: + debug: false + type: procedure + definitions: player|name + script: + - define registry registry_<[player].uuid> + - define npc_id npc_<[player].uuid>_<[name]> + - determine ].filter_tag[<[filter_value].name.equals[<[npc_id]>]>].get[1]> + +# Frees an NPC from memory, but does not destroy its state. +# +# This is often done automatically when the player leaves the server, however it may +# be useful for programmers to manually call this routine for optimization purposes. +# +# If you don't want the server to reallocate the NPC on player join, provide +# the reallocate definition as 'reallocate' (or just don't provide it). +storyboard_npc_memfree: + debug: false + type: task + definitions: player|name|reallocate + script: + - define npc |<[name]>]> + - define reallocate <[reallocate].if_null[false]> + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define npc_data <[npc_data].with[allocated].as[<[reallocate]>]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + - remove <[npc]> + +# Destroys an NPC from memory, which destroys its state. +# Further memalloc's will re-create the NPC with new state data. +# Use this when you are 100% done with using an NPC. +# If you only want to remove an NPC until later, but keep its state, +# consider calling storyboard_npc_memfree instead. +storyboard_npc_memdestroy: + debug: false + type: task + definitions: player|name + script: + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npcs <[npcs].exclude[<[name]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + - define npc |<[name]>]> + - remove <[npc]> + +# Flags the NPC by name, mapping the given key to the given value. +storyboard_npc_state_set: + debug: false + type: task + definitions: player|name|key|value + script: + - define npc |<[name]>]> + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define state <[npc_data].get[state].if_null[]> + - define state <[state].with[<[key]>].as[<[value]>]> + - define npc_data <[npc_data].with[state].as[<[state]>]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + +# Gets a state value from the NPC by name and key; effectively like reading a flag. +# If the given key does not exist/is not set, determines null. +storyboard_npc_state_get: + debug: false + type: procedure + definitions: player|name|key + script: + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define state <[npc_data].get[state].if_null[]> + - determine <[state].get[<[key]>].if_null[null]> + +# Deletes a flag from the NPC by name and key. +storyboard_npc_state_clear: + debug: false + type: task + definitions: player|name|key + script: + - define npc |<[name]>]> + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define state <[npc_data].get[state].if_null[]> + - define state <[state].exclude[<[key]>]> + - define npc_data <[npc_data].with[state].as[<[state]>]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + +# Sets an NPCs assignment, which also persists across memfrees. +storyboard_npc_set_assignment: + debug: false + type: procedure + definitions: player|name|assignment + script: + - define npc |<[name]>]> + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define npc_data <[npc_data].with[assignment].as[<[assignment]>]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + - assignment set script:<[assignment]> to:<[npc]> + +# Moves an NPC to a new location, both physically, and in memory also. +# When an NPC is moved by normal teleports or the walk command, its location isn't stored. +# Use this to either commit its final position, or teleport it after a cutscene. +storyboard_npc_movement_commit: + debug: false + type: procedure + definitions: player|name|new_location + script: + - define npc |<[name]>]> + - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> + - define npc_data <[npcs].get[<[name]>]> + - define npc_data <[npc_data].with[at].as[<[new_location]>]> + - define npcs <[npcs].with[<[name]>].as[<[npc_data]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[npcs].as[<[npcs]>]> + - teleport <[npc]> <[new_location]> + +## Internal only! +storyboard_npc_internal_auto_memory_management: + debug: false + type: world + events: + after player joins: + - define npcs ]> + - foreach <[npcs]> key:name as:data: + - if <[data].get[allocated]> == reallocate: + - define name <[data].get[name]> + - define type <[data].get[type]> + - define at <[data].get[at]> + - run storyboard_npc_memalloc def.player: def.name:<[name]> def.type:<[type]> def.at:<[at]> + on player quits: + - define registry registry_ + - define npcs ].if_null[]> + - define substr_length _].length.add[1]> + - foreach <[npcs]> as:npc: + - define name <[npc].name.substring[<[substr_length]>]> + - run storyboard_npc_memfree def.player: def.name:<[name]> def.reallocate:reallocate + +storyboard_npc_internal_show_to_player: + debug: false + type: task + definitions: player|npc + script: + - adjust <[npc]> hide_from_players + - adjust <[player]> show_entity:<[npc]> + - foreach <[npc].hologram_npcs.if_null[]> as:hologram: + - adjust <[hologram]> hide_from_players + - adjust <[player]> show_entity:<[hologram]> + +storyboard_npc_internal_auto_display_entities: + debug: false + type: world + events: + on player joins bukkit_priority:high: + - foreach ]> as:target: + - define registry registry_<[target].uuid> + - define npcs ].if_null[]> + - foreach <[npcs]> as:npc: + - adjust hide_entity:<[npc]> + - foreach <[npc].hologram_npcs.if_null[]> as:hologram: + - adjust hide_entity:<[hologram]> diff --git a/scripts/storyboard/tasks/storyboard_player_tasks.dsc b/scripts/storyboard/tasks/storyboard_player_tasks.dsc new file mode 100644 index 0000000..9023fbd --- /dev/null +++ b/scripts/storyboard/tasks/storyboard_player_tasks.dsc @@ -0,0 +1,70 @@ +# +# Storyboard Player Tasks +# +# Adds a set of tasks for managing player storyboard state. +# Pretty common in use. +# +# Note: These actions are **committed** - so should be executed LAST in a script. +# This allows the actions to "rollback" in case the server crashes/player disconnects. +# + +# Sets a named key to any value in the player state. +storyboard_player_state_set: + debug: false + type: task + definitions: player|key|value + script: + - define state <[player].flag[storyboard_state].get[state].if_null[]> + - define state <[state].with[<[key]>].as[<[value]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[state].as[<[state]>]> + +# Removes a named key from player state. +# If the key doesn't exist, silently fails. +storyboard_player_state_clear: + debug: false + type: task + definitions: player|key + script: + - define state <[player].flag[storyboard_state].get[state].if_null[]> + - define state <[state].exclude[<[key]>]> + - flag <[player]> storyboard_state:<[player].flag[storyboard_state].if_null[].with[state].as[<[state]>]> + +# Gets a named key from player state. +# If the key doesn't exist, "null" is returned. +storyboard_player_state_get: + debug: false + type: procedure + definitions: player|key + script: + - define state <[player].flag[storyboard_state].get[state].if_null[]> + - determine <[state].get[<[key]>].if_null[null]> + +# Freezes a player in place by setting their speed to 0. +# On relogs, automatically 'unfreezes' them. +# See the complementary task storyboard_player_unfreeze +storyboard_player_freeze: + debug: false + type: task + definitions: player + script: + - flag storyboard_freeze_speed: + - adjust walk_speed:0 + +# Unfreezes a player. Always happens automatically on relogs. +# See the complementary task storyboard_player_freeze +storyboard_player_unfreeze: + debug: false + type: task + definitions: player + script: + - adjust walk_speed: + - flag storyboard_freeze_speed:! + +## Internal only! +storyboard_player_freeze_check: + debug: false + type: world + events: + on player joins: + - if : + - run storyboard_player_unfreeze def.player: diff --git a/scripts/storyboard/util/storyboard_player_utils.dsc b/scripts/storyboard/util/storyboard_player_utils.dsc new file mode 100644 index 0000000..6014ff1 --- /dev/null +++ b/scripts/storyboard/util/storyboard_player_utils.dsc @@ -0,0 +1,27 @@ +# +# Storyboard Player Utils +# Various optional utils which tend to be pretty helpful. +# + +# Gets the player character's first name (or what should be the first name). +storyboard_character_first_name: + debug: false + type: procedure + definitions: player + script: + - determine <[player].flag[character_rpname].split.first.to_sentence_case.if_null[<<>?<>>]> + +# Effectively like a permanent waituntil, except checks if player's online, etc.; if not, kills the queue. +storyboard_waituntil_safe: + debug: false + type: task + definitions: player|queue|condition + script: + - while true: + - define condition_parsed <[condition]><>>].parsed> + - if <[condition_parsed]> || !<[player].is_online>: + - while stop + - wait 10t + - if !<[player].is_online>: + - queue stop <[queue]> + - debug log "[Storyboard] Cancelled queue <[queue].numeric_id><&at><[queue].script.name> for <[player].name>; offline" \ No newline at end of file diff --git a/scripts/stroll/stroll_commands.dsc b/scripts/stroll/stroll_commands.dsc new file mode 100644 index 0000000..66204f8 --- /dev/null +++ b/scripts/stroll/stroll_commands.dsc @@ -0,0 +1,16 @@ +stroll_command_stroll: + debug: false + type: command + name: stroll + usage: /stroll + description: Makes you walk a lil slower, until you run or sneak. + permission: stroll.command.stroll + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - flag stroll_speed: + - adjust walk_speed:0.1 + - narrate format:formats_prefix "You are now strolling. Sprint or sneak to stop strolling." diff --git a/scripts/stroll/stroll_world.dsc b/scripts/stroll/stroll_world.dsc new file mode 100644 index 0000000..be98563 --- /dev/null +++ b/scripts/stroll/stroll_world.dsc @@ -0,0 +1,12 @@ +stroll_world: + debug: false + type: world + events: + on player toggles sneaking: + - if : + - adjust walk_speed: + - flag stroll_speed:! + on player toggles sprinting: + - if : + - adjust walk_speed: + - flag stroll_speed:! diff --git a/scripts/suspension/suspension_commands.dsc b/scripts/suspension/suspension_commands.dsc new file mode 100644 index 0000000..1354bce --- /dev/null +++ b/scripts/suspension/suspension_commands.dsc @@ -0,0 +1,17 @@ +suspension_command_suspension: + debug: false + type: command + name: suspension + description: Check how long you have until suspension expires. + usage: /suspension + permission: suspension.command.suspension + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if : + - narrate format:formats_prefix "You are suspended for <&e>]><&7>." + - else: + - narrate format:formats_prefix "You are not suspended." diff --git a/scripts/tabcomplete/tabcomplete_data.dsc b/scripts/tabcomplete/tabcomplete_data.dsc new file mode 100644 index 0000000..4fabf9e --- /dev/null +++ b/scripts/tabcomplete/tabcomplete_data.dsc @@ -0,0 +1,78 @@ +tabcomplete_config: + debug: false + type: data + groups: + default: + commands: + - plugins + - sit + - lay + - crawl + - call + - text + - ooc + - looc + - chsw + - channelswitch + - spawn + - balance + - bal + - stroll + - roll + - findname + - fn + - rpname + - setdesc + - viewdescription + - viewdesc + - setdescription + - carry + - uncarry + - apartmentaddmember + - aptaddmember + - aptam + - apartmentaddmoderator + - aptaddmod + - apartmentremoveaccess + - aptremoveaccess + - aptrm + - apartmenteditmode + - apteditmode + - editmode + - grade + - playtime + - wardrobe + - ticket + - langcall + - langcally + - langcallw + - cally + - callw + - yell + - y + - whisper + - w + - me + - mel + - melong + - mec + - meclose + - itc + - itclose + - itl + - itlong + - it + - my + - language + - lang + - languagewhisper + - langwhisper + - langw + - languageyell + - langyell + - langy + - payto + - ticket + - chatcolor + - spawn + - profiles diff --git a/scripts/tabcomplete/tabcomplete_tasks.dsc b/scripts/tabcomplete/tabcomplete_tasks.dsc new file mode 100644 index 0000000..c3f8225 --- /dev/null +++ b/scripts/tabcomplete/tabcomplete_tasks.dsc @@ -0,0 +1,11 @@ +tabcomplete_fetch: + debug: false + type: procedure + definitions: player + script: + - define result + - define data + - foreach <[data]> key:group as:group_data: + - if <[group]> == default || <[player].has_permission[<[group_data].get[permission].if_null[true]>]>: + - define result <[result].include[<[group_data].get[commands].if_null[]>]> + - determine <[result]> diff --git a/scripts/tabcomplete/tabcomplete_world.dsc b/scripts/tabcomplete/tabcomplete_world.dsc new file mode 100644 index 0000000..c27b635 --- /dev/null +++ b/scripts/tabcomplete/tabcomplete_world.dsc @@ -0,0 +1,9 @@ +tabcomplete_world: + debug: false + type: world + events: + on player receives commands: + - if : + - if : + - stop + - determine ]> diff --git a/scripts/templatetools/templatetools_commands.dsc b/scripts/templatetools/templatetools_commands.dsc new file mode 100644 index 0000000..21ee5f0 --- /dev/null +++ b/scripts/templatetools/templatetools_commands.dsc @@ -0,0 +1,130 @@ +templatetools_command_templatetools: + debug: false + type: command + name: templatetools + description: TemplateTools info. + usage: /templatetools + aliases: + - tt + permission: templatetools.command.tt + tab completions: + 1: + script: + - narrate format:templatetools_formats_main "TemplateTools (Denizen impl.) v1.0.0.0" + - narrate format:templatetools_formats_main "Author: unsafemalloc" + +templatetools_command_ttpack: + debug: false + type: command + name: ttpack + description: Changes pack for Template Tool usage. + usage: /ttpack (pack) + permission: templatetools.command.ttpack + tab completions: + 1: ]> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if != 1: + - narrate "<&c>Invalid use. Please try / (pack)." + - stop + - if !]>: + - narrate "<&c>There is no such pack: " + - stop + - flag templatetools_pack: + - flag templatetools_pack_index:1 + - ~run templatetools_schematic_set_index def.player: + - run templatetools_preview_queue def.player: def.schematic: + - narrate format:templatetools_formats_main "Set TemplateTools pack to (use /ttschematic to select a schematic)" + +templatetools_command_ttschematic: + debug: false + type: command + name: ttschematic + description: Changes schematic for Template Tool usage. + usage: /ttschematic (schematic) + permission: templatetools.command.ttschematic + tab completions: + 1: ]> + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if != 1: + - narrate "<&c>Invalid use. Please try / (schematic)." + - stop + - if !: + - narrate "<&c>Please select a template pack first using /ttpack." + - stop + - if !].contains[]>: + - narrate "<&c>There is no such schematic: " + - stop + - if ]>: + - ~schematic unload name:templatetools_ + - schematic load name:templatetools_ filename:/ + - flag templatetools_schematic:templatetools_ + - narrate format:templatetools_formats_main "Set TemplateTools schematic to (you can preview it using a Spider Eye)" + +templatetools_command_ttundo: + debug: false + type: command + name: ttundo + description: Undoes last operation. + usage: /ttundo + permission: templatetools.command.ttundo + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - if ].is_empty>: + - narrate format:templatetools_formats_main "Nothing left to undo." + - stop + - run templatetools_pop_undo def.player: + - narrate format:templatetools_formats_main "Undid previous operation." + +templatetools_command_ttsetcursor: + debug: false + type: command + name: ttsetcursor + aliases: + - ttsc + description: Sets blocks in WorldEdit selection using the material you're looking at. + usage: /ttsetcursor + permission: templatetools.command.ttsetcursor + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - define material + - if <[material]> == null: + - narrate "<&c>Invalid material. Please look at a material to set first!" + - stop + - define we_selection + - if <[we_selection]> == null: + - narrate "<&c>You must first make a WorldEdit selection." + - stop + - ~modifyblock <[we_selection]> <[material]> no_physics + - narrate format:templatetools_formats_main "Set cursor blocks (<[we_selection].volume.if_null[?]>)." + +templatetools_command_that: + debug: false + type: command + name: that + description: TemplateTools info. + usage: /that + permission: templatetools.command.that + tab completions: + 1: + script: + - define material + - if <[material]> == null: + - narrate "<&c>Nothing to copy." + - define item ].if_null[null]>: + - narrate "<&c>Nothing to copy." + - inventory set slot:hand origin:<[item]> + - narrate format:templatetools_formats_main "Copied <[material].name>." \ No newline at end of file diff --git a/scripts/templatetools/templatetools_formats.dsc b/scripts/templatetools/templatetools_formats.dsc new file mode 100644 index 0000000..502aa0c --- /dev/null +++ b/scripts/templatetools/templatetools_formats.dsc @@ -0,0 +1,4 @@ +templatetools_formats_main: + debug: false + type: format + format: <&8>(<&b><&l>TT<&8>) <&7><[text]> diff --git a/scripts/templatetools/templatetools_tasks.dsc b/scripts/templatetools/templatetools_tasks.dsc new file mode 100644 index 0000000..6bd7c9b --- /dev/null +++ b/scripts/templatetools/templatetools_tasks.dsc @@ -0,0 +1,183 @@ +templatetools_available_packs: + debug: false + type: procedure + script: + - determine ]> + +templatetools_pack_length: + debug: false + type: procedure + definitions: player + script: + - if !<[player].has_flag[templatetools_pack]>: + - determine 0 + - determine ].size> + +templatetools_pack_increment: + debug: false + type: task + definitions: player + script: + - define pack_length ]> + - if <[pack_length]> == 0: + - stop + - define index <[player].flag[templatetools_pack_index].add[1]> + - if <[index]> > <[pack_length]>: + - define index 1 + - flag <[player]> templatetools_pack_index:<[index]> + +templatetools_pack_decrement: + debug: false + type: task + definitions: player + script: + - define pack_length ]> + - if <[pack_length]> == 0: + - stop + - define index <[player].flag[templatetools_pack_index].sub[1]> + - if <[index]> < 1: + - define index <[pack_length]> + - flag <[player]> templatetools_pack_index:<[index]> + +templatetools_available_schematics: + debug: false + type: procedure + definitions: player + script: + - if !<[player].has_flag[templatetools_pack]>: + - determine + - determine ].parse_tag[<[parse_value].replace_text[regex:.schem$].with[]>].if_null[].alphanumeric> + +templatetools_schematic_set_index: + debug: false + type: task + definitions: player + script: + - define schematics ]> + - if ]>: + - ~schematic unload name:<[player].flag[templatetools_schematic]> + - schematic load name:templatetools_<[player].uuid> filename:<[player].flag[templatetools_pack]>/<[schematics].get[<[player].flag[templatetools_pack_index]>]> + - actionbar "<&e>Schematic <[player].flag[templatetools_pack_index]>: <&f><[schematics].get[<[player].flag[templatetools_pack_index]>]>" targets:<[player]> + +templatetools_preview_queue: + debug: false + type: task + definitions: player|schematic + script: + - if <[player].has_flag[templatetools_preview_queue]>: + - stop + - flag <[player]> templatetools_preview_queue:true expire:0.5s + - wait 0.5s + - if !]>: + - stop + - waituntil ].width.if_null[-1]> != -1 max:2s + - flag <[player]> templatetools_preview_queue:! + - run templatetools_preview def.player:<[player]> def.schematic:<[schematic]> + +templatetools_preview_show: + debug: false + type: task + definitions: player|schematic + script: + - define cursor_on <[player].cursor_on.if_null[null]> + - if <[cursor_on]> == null: + - stop + - if !]>: + - stop + - define cuboid ].cuboid[<[cursor_on]>]> + - define middle <[cuboid].center> + - define smallest_y <[cuboid].corners.get[first].y> + - if <[cuboid].corners.get[last].y> < <[smallest_y]>: + - define smallest_y <[cuboid].corners.get[last].y> + - define difference_y <[cursor_on].y.sub[<[smallest_y]>]> + - define cursor_on <[cursor_on].sub[0,<[difference_y].sub[1]>,0]> + - define fakedlocations + - if !<[player].item_in_hand.advanced_matches[spider_eye]>: + - run templatetools_preview_clear def.player:<[player]> + - stop + - define halfwidth ].width.div[2]> + - define halflength ].length.div[2]> + - repeat ].width> from:0 as:x: + - repeat ].height> from:0 as:y: + - repeat ].length> from:0 as:z: + - define location ,<[y]>,<[z]>,<[player].world.name>]> + - define block ].block[<[location]>]> + - if <[block].name> == air: + - repeat next + - define fakedlocation <[cursor_on].add[<[location]>].sub[<[halfwidth]>,0,<[halflength]>].add[1,0,1]> + - showfake ].block[<[location]>]> <[fakedlocation]> players:<[player]> duration:1h + - define fakedlocations <[fakedlocations].include[<[fakedlocation]>]> + - flag <[player]> templatetools_preview_region:<[fakedlocations]> + +templatetools_preview_clear: + debug: false + type: task + definitions: player + script: + - if !<[player].has_flag[templatetools_preview_region]>: + - stop + - showfake cancel <[player].flag[templatetools_preview_region]> + - flag <[player]> templatetools_preview_region:! + +templatetools_preview: + debug: false + type: task + definitions: player|schematic + script: + - ~run templatetools_preview_clear def.player:<[player]> + - run templatetools_preview_show def.player:<[player]> def.schematic:<[schematic]> + +templatetools_preview_paste: + debug: false + type: task + definitions: player|schematic + script: + - define cursor_on <[player].cursor_on.if_null[null]> + - if <[cursor_on]> == null: + - stop + - define cuboid ].cuboid[<[cursor_on]>]> + - define middle <[cuboid].center> + - define smallest_y <[cuboid].corners.get[first].y> + - if <[cuboid].corners.get[last].y> < <[smallest_y]>: + - define smallest_y <[cuboid].corners.get[last].y> + - define difference_y <[cursor_on].y.sub[<[smallest_y]>]> + - define cursor_on <[cursor_on].sub[0,<[difference_y].sub[1]>,0]> + - if !<[player].item_in_hand.advanced_matches[spider_eye]>: + - run templatetools_preview_clear def.player:<[player]> + - stop + - define halfwidth ].width.div[2]> + - define halflength ].length.div[2]> + - define count 0 + - define undodata + - repeat ].width> from:0 as:x: + - repeat ].height> from:0 as:y: + - repeat ].length> from:0 as:z: + - define location ,<[y]>,<[z]>,<[player].world.name>]> + - define block ].block[<[location]>]> + - if <[block].name> == air: + - repeat next + - define fakedlocation <[cursor_on].add[<[location]>].sub[<[halfwidth]>,0,<[halflength]>].add[1,0,1]> + - define previousmaterial <[fakedlocation].material> + - modifyblock ].block[<[location]>]> <[fakedlocation]> no_physics + - define undodata <[undodata].with[<[fakedlocation]>].as[<[previousmaterial]>]> + - define count <[count].add[1]> + - run templatetools_push_undo def.player:<[player]> def.data:<[undodata]> + - determine <[count]> + +templatetools_push_undo: + debug: false + type: task + definitions: player|data + script: + - flag <[player]> templatetools_undo:<[player].flag[templatetools_undo].if_null[].include[<[data]>]> + +templatetools_pop_undo: + debug: false + type: task + definitions: player + script: + - if <[player].flag[templatetools_undo].if_null[].is_empty>: + - stop + - foreach <[player].flag[templatetools_undo].last> key:location as:material: + - modifyblock <[material]> <[location]> no_physics + - flag <[player]> templatetools_undo:<[player].flag[templatetools_undo].remove[last]> diff --git a/scripts/templatetools/templatetools_world.dsc b/scripts/templatetools/templatetools_world.dsc new file mode 100644 index 0000000..ac8c9ed --- /dev/null +++ b/scripts/templatetools/templatetools_world.dsc @@ -0,0 +1,98 @@ +templatetools_world_cleanup: + debug: false + type: world + events: + after server start: + - foreach ]> as:schematic: + - schematic unload name:<[schematic]> + - foreach as:player: + - flag <[player]> templatetools_undo:! + +templatetools_world_preview: + debug: false + type: world + events: + on player walks: + - if !: + - stop + - if !: + - stop + - if !: + - stop + - if !: + - stop + - run templatetools_preview_queue def.player: def.schematic: + on player scrolls their hotbar: + - if !: + - stop + - if !: + - stop + - if : + - if !: + - stop + - determine cancelled passively + - if > : + - if == 1 && == 9: + - run templatetools_pack_increment def.player: + - else: + - run templatetools_pack_decrement def.player: + - else: + - if == 9 && == 1: + - run templatetools_pack_decrement def.player: + - else: + - run templatetools_pack_increment def.player: + - run templatetools_schematic_set_index def.player: + - run templatetools_preview_queue def.player: def.schematic: + - else: + - if !: + - stop + - if ].material.name> == spider_eye: + - run templatetools_preview_queue def.player: def.schematic: + - else: + - run templatetools_preview_clear def.player: + after player clicks in inventory: + - if !: + - stop + - if !: + - stop + - if !: + - stop + - if : + - run templatetools_preview def.player: def.schematic: + - determine cancelled passively + - else: + - run templatetools_preview_clear def.player: + on player left clicks block: + - if !: + - stop + - if !: + - stop + - if !: + - stop + - if !: + - stop + - determine cancelled passively + - if : + - schematic rotate name: angle:90 + - run templatetools_preview_queue def.player: def.schematic: + - actionbar "<&e>Rotated schematic 90 degrees." + - else: + - run templatetools_preview_paste def.player: def.schematic: save:return + - define count + - narrate format:templatetools_formats_main "Placed schematic (<[count]>)." + +templatetools_world_redtorchtool: + debug: false + type: world + events: + on player right clicks block: + - if !: + - stop + - if !: + - stop + - if : + - stop + - determine cancelled passively + - if != null: + - switch no_physics + - narrate format:templatetools_formats_main "Switched block state." \ No newline at end of file diff --git a/scripts/timebar/timebar_data.dsc b/scripts/timebar/timebar_data.dsc new file mode 100644 index 0000000..6761171 --- /dev/null +++ b/scripts/timebar/timebar_data.dsc @@ -0,0 +1,8 @@ +timebar_worlds: + debug: false + type: data + world: Atarashikibo + atarashikibo: Atarashikibo + matsuhama: Matsuhama [ DEBUG ] + noshoko: Noshoko + pussyschool: Pussy \ No newline at end of file diff --git a/scripts/timebar/timebar_tasks.dsc b/scripts/timebar/timebar_tasks.dsc new file mode 100644 index 0000000..ed653f7 --- /dev/null +++ b/scripts/timebar/timebar_tasks.dsc @@ -0,0 +1,52 @@ +# use in PAPI: %denizen_% +timebar_format: + debug: false + type: procedure + script: + - define time ]> + # typical format + - define result "<&6>☀ <&f><[time].format[HH:mm, E.]>" + # dawn, morning, noon, afternoon, evening, night + - define period Dawn + - if <[time].hour> < 6 || <[time].hour> >= 22: + - define period Night + - else if <[time].hour> < 12: + - define period Morning + - else if <[time].hour> < 15: + - define period Noon + - else if <[time].hour> < 18: + - define period Afternoon + - else if <[time].hour> < 22: + - define period Evening + - define result "<[result]> <&e>🔔 <&f><[period]>" + # map name + - define location ]> + - define regions ]> + - if <[regions].size> > 0: + - define location <[regions].get[1].id.replace[zone_].with[].split[_].parse[to_sentence_case].space_separated> + - define result "<[result]> <&c>📌 <&f><[location]>" + # result + - determine <[result]> + +timebar_increment: + debug: false + type: task + script: + - define time ]> + - define time <[time].add[5s]> + - flag server timebar_time:<[time]> + - run timebar_sync_sun + +timebar_sync_sun: + debug: false + type: task + script: + - define time ]> + - define hour <[time].hour> + - define minute <[time].minute> + - define second <[time].second> + # calculate as floor((hour - 6) * 1000 + minute * (1000 / 60) + second * (1000 / 60 / 60)) + - define thousanddivsixty + - define total_ticks <[hour].sub[6].mul[1000].add[<[minute].mul[<[thousanddivsixty]>]>].add[<[second].mul[<[thousanddivsixty].div[60]>]>].round_down> + - foreach as:world: + - adjust <[world]> time:<[total_ticks]> diff --git a/scripts/timebar/timebar_world.dsc b/scripts/timebar/timebar_world.dsc new file mode 100644 index 0000000..c669910 --- /dev/null +++ b/scripts/timebar/timebar_world.dsc @@ -0,0 +1,6 @@ +timebar_world: + debug: false + type: world + events: + on delta time secondly every:1: + - run timebar_increment diff --git a/scripts/vehicles/vehicles_config.dsc b/scripts/vehicles/vehicles_config.dsc new file mode 100644 index 0000000..a21666f --- /dev/null +++ b/scripts/vehicles/vehicles_config.dsc @@ -0,0 +1,14 @@ +vehicles_config: + debug: false + type: data + vehicles: + mx5: + name: <&6>MX5 + material: diamond_horse_armor + custom-model-data: 1 + driver-offset: 0,-1.25,0 + passengers: + - 0,-1.25,1 + acceleration: 0.03 + max-speed: 2.25 + turn-speed-percentage: 0.01 diff --git a/scripts/vehicles/vehicles_tasks.dsc b/scripts/vehicles/vehicles_tasks.dsc new file mode 100644 index 0000000..440f0f4 --- /dev/null +++ b/scripts/vehicles/vehicles_tasks.dsc @@ -0,0 +1,118 @@ +vehicle_relative_location: + debug: false + type: procedure + definitions: location|relative + script: + - define relative <[relative].split[,]> + - define location <[location].forward_flat[<[relative].get[1]>]> + - define location <[location].above[<[relative].get[2]>]> + - define location <[location].left[<[relative].get[3]>]> + - determine <[location]> + +vehicle_create: + debug: false + type: task + definitions: vehicle_id|owner|location + script: + - define location <[location].with_pitch[0]> + # + - define vehicle_id <[vehicle_id].to_lowercase> + - define vehicle + - define vehicle_data ]> + - define vehicle <[vehicle].with[id].as[<[vehicle_id]>]> + - define vehicle <[vehicle].with[owner].as[<[owner]>]> + - define vehicle <[vehicle].with[acceleration].as[<[vehicle_data].get[acceleration]>]> + - define vehicle <[vehicle].with[max_speed].as[<[vehicle_data].get[max-speed]>]> + - define vehicle <[vehicle].with[turn_speed_percentage].as[<[vehicle_data].get[turn-speed-percentage]>]> + # + - define vehicle_item [custom_model_data=<[vehicle_data].get[custom-model-data]>]]> + - define vehicle <[vehicle].with[name].as[<[vehicle_data].get[name].parsed>]> + - define vehicle <[vehicle].with[item].as[<[vehicle_item]>]> + # + - spawn armor_stand <[location]> persistent reason:custom save:model + - define model_entity + - adjust <[model_entity]> invulnerable:true + - adjust <[model_entity]> visible:false + - adjust <[model_entity]> equipment:]> + - flag <[model_entity]> vehicles:model + - define vehicle <[vehicle].with[model_entity].as[<[model_entity]>]> + # + - define driver_offset <[vehicle_data].get[driver-offset]> + - define driver_location |<[driver_offset]>]> + - spawn armor_stand <[driver_location]> persistent reason:custom save:driver + - define driver_entity + - adjust <[driver_entity]> invulnerable:true + - adjust <[driver_entity]> visible:false + - adjust <[driver_entity]> gravity:false + - flag <[driver_entity]> vehicles:driver + - flag <[driver_entity]> vehicles_data:<[model_entity]> + - define vehicle <[vehicle].with[driver_entity].as[<[driver_entity]>]> + - define vehicle <[vehicle].with[driver_offset].as[<[driver_offset]>]> + # + - define passenger_entities + - foreach <[vehicle_data].get[passengers]> as:passenger_offset: + - define passenger_location |<[passenger_offset]>]> + - spawn armor_stand <[location].add[<[passenger_offset]>]> persistent reason:custom save:passenger<[loop_index]> + - define passenger_entity ].spawned_entity> + - adjust <[passenger_entity]> invulnerable:true + - adjust <[passenger_entity]> visible:false + - adjust <[passenger_entity]> gravity:false + - flag <[passenger_entity]> vehicles:passenger + - flag <[passenger_entity]> vehicles_data:<[model_entity]> + - define passenger_entities <[passenger_entities].with[<[passenger_entity]>].as[<[passenger_offset]>]> + - define vehicle <[vehicle].with[passenger_entities].as[<[passenger_entities]>]> + # + - flag <[model_entity]> vehicles_data:<[vehicle]> + - flag <[model_entity]> vehicles_last_location:<[model_entity].location.add[0,1,0]> + - flag server vehicles:].include[<[model_entity]>]> + - determine <[model_entity]> + +vehicle_destroy: + debug: false + type: task + definitions: vehicle_entity + script: + - define vehicle <[vehicle_entity].flag[vehicles_data].if_null[null]> + - if <[vehicle]> == null: + - debug error "Vehicle entity <[vehicle_entity]> is not a vehicle!" + - stop + - remove <[vehicle].get[driver_entity]> + - remove <[vehicle].get[passenger_entities].keys> + - remove <[vehicle_entity]> + +vehicle_find_snap_location: + debug: false + type: procedure + definitions: next_location + script: + - if <[next_location].above[0.15].material.is_solid>: + - if !<[next_location].above.material.is_solid>: + - determine <[next_location].above[0.5]> + - else: + - determine collide + - determine null + +vehicle_pickup: + debug: false + type: task + definitions: vehicle_entity + script: + - define owner <[vehicle_entity].flag[vehicles_data].get[owner]> + - define item <[vehicle_entity].flag[vehicles_data].get[item]> + - adjust def:item display:<[vehicle_entity].flag[vehicles_data].get[name]> + - flag <[item]> vehicles:<[vehicle_entity].flag[vehicles_data].get[id]> + - if <[owner].inventory.can_fit[<[item]>]>: + - give <[item]> player:<[owner]> + - run vehicle_destroy def.vehicle_entity:<[vehicle_entity]> + - flag <[owner]> vehicles:! + - if <[owner].is_online>: + - narrate targets:<[owner]> format:formats_prefix "Picked up previous vehicle!" + - else: + - if <[owner].is_online>: + - narrate "<&c>You don't have enough space in your inventory to pick up the vehicle!" + - else: + # praying there's nothing there... will special-flag just in case + - flag <[owner]> vehicles_i_need_help: + - inventory set slot:18 origin:<[item]> player:<[owner]> + - run vehicle_destroy def.vehicle_entity:<[vehicle_entity]> + - flag <[owner]> vehicles:! diff --git a/scripts/vehicles/vehicles_world.dsc b/scripts/vehicles/vehicles_world.dsc new file mode 100644 index 0000000..1debb15 --- /dev/null +++ b/scripts/vehicles/vehicles_world.dsc @@ -0,0 +1,146 @@ +vehicles_world: + debug: false + type: world + events: + # cleanup lost vehicles + after server start: + - flag server vehicles:! + - foreach as:world: + - foreach <[world].entities> as:entity: + - if <[entity].has_flag[vehicles]>: + - run vehicle_pickup def.vehicle_entity:<[entity]> + on player quits: + - if : + - define vehicle + - run vehicle_pickup def.vehicle_entity:<[vehicle]> + # vehicle tick + on tick: + - ratelimit server 1t + - define remove + - foreach ]> as:vehicle: + - if !<[vehicle].is_spawned>: + - define remove <[remove].include[<[vehicle]>]> + - foreach next + - run vehicle_world_parallel_loop def.vehicle:<[vehicle]> + - flag server vehicles:].exclude[<[remove]>]> + # vehicle safety + on armor_stand damaged: + - if : + - determine cancelled + # add passenger on click or pickup vehicle + on player right clicks armor_stand bukkit_priority:lowest: + - if !: + - stop + - determine cancelled passively + - if : + - stop + - if == model: + - define driver_entity + - if <[driver_entity].has_passenger>: + - stop + - if != && !: + - stop + - if : + - run vehicle_pickup def.vehicle_entity: + - else: + - adjust <[driver_entity]> passenger: + - else if == driver: + - define model_entity + - if : + - stop + - if <[model_entity].flag[vehicles_data].get[owner]> != && !: + - stop + - if : + - run vehicle_pickup def.vehicle_entity:<[model_entity]> + - else: + - adjust passenger: + - else if == passenger: + - adjust passenger: + # vehicle control + on player steers armor_stand: + - if != driver: + - stop + - define vehicle + - flag <[vehicle]> vehicles_player_input:].with[sideways].as[]> + # place vehicle down + on player right clicks block: + - if : + - determine cancelled passively + - if : + - narrate "<&c>You have spawned a vehicle already. Want to pick it up?" + - define vehicle + - clickable save:pickup until:1m usages:1: + - run vehicle_pickup def.vehicle_entity:<[vehicle]> + - narrate <&e>]> + - stop + - ~run vehicle_create def.vehicle_id: def.owner: def.location: save:result + - define vehicle + - flag vehicles:<[vehicle]> + - if != creative: + - take iteminhand + +vehicle_world_parallel_loop: + debug: false + type: task + definitions: vehicle + script: + - if !<[vehicle].flag[vehicles_data].get[driver_entity].has_passenger>: + - flag <[vehicle]> vehicles_player_input:! + - define vehicles_player_input <[vehicle].flag[vehicles_player_input].if_null[null]> + - define forward <[vehicles_player_input].get[forward].if_null[0]> + - define sideways <[vehicles_player_input].get[sideways].if_null[0]> + - if <[forward]> != 0: + - define speed <[vehicle].flag[vehicles_speed].if_null[0]> + - define speed <[speed].add[<[vehicle].flag[vehicles_data].get[acceleration].mul[<[forward]>]>]> + - define max <[vehicle].flag[vehicles_data].get[max_speed]> + - if <[speed]> < <[max].mul[-1].div[3]>: + - define speed <[max].mul[-1].div[3]> + - if <[speed]> > <[max]>: + - define speed <[max]> + - flag <[vehicle]> vehicles_speed:<[speed]> + - if <[sideways]> != 0: + - define speed <[vehicle].flag[vehicles_speed].if_null[0]> + - if <[speed].abs> > 0.1: + - define max_speed <[vehicle].flag[vehicles_data].get[max_speed]> + - define speed_turn_coefficient <[speed].div[<[max_speed]>].mul[0.25].add[0.85]> + - define turn_speed <[vehicle].flag[vehicles_data].get[turn_speed_percentage].mul[360].mul[<[speed_turn_coefficient]>]> + - define turn_speed <[turn_speed].mul[<[sideways]>].mul[-1].mul[].pass[-1].fail[1]>]> + - rotate <[vehicle]> duration:1t yaw:<[turn_speed]> + - define speed <[vehicle].flag[vehicles_speed].if_null[0]> + - if <[speed].abs> < 0.1: + - define speed 0 + - else: + - define speed <[speed].div[1.015]> + - if <[speed]> >= 0: + - define ray_cast_location <[vehicle].location.above[0.5].ray_trace[range=<[speed].abs>].if_null[null]> + - else: + - define backwards <[vehicle].location.direction.vector.mul[-1]> + - define ray_cast_location <[vehicle].location.with_pitch[<[backwards].pitch>].with_yaw[<[backwards].yaw>].above[0.5].ray_trace[range=<[speed].abs>].if_null[null]> + - if <[ray_cast_location]> != null: + - define new_location <[ray_cast_location].with_pitch[<[vehicle].location.pitch>].with_yaw[<[vehicle].location.yaw>]> + - define speed <[speed].div[1.075]> + - else: + - define new_location <[vehicle].location.forward_flat[<[speed]>]> + - define snap ]> + - if <[snap]> != null: + - if <[snap]> == collide: + - define new_location <[vehicle].location> + - define speed <[speed].div[1.1]> + - else: + - define new_location <[snap]> + - if !<[new_location].below[0.25].material.is_solid>: + - define new_location <[new_location].add[0,-]>].min[0.25].sub[0.001]>,0]> + - if <[vehicle].flag[vehicles_speed].if_null[0]> != 0: + - if <[speed].abs> > 0: + - teleport <[vehicle]> <[new_location]> cause:plugin offthread_repeat:8 + - flag <[vehicle]> vehicles_speed:<[speed]> + - if <[vehicle].flag[vehicles_data].get[driver_entity].has_passenger>: + - playsound <[new_location]> custom sound:vehicle.engine pitch:]> + - if <[vehicle].flag[vehicles_last_location]> == <[new_location]>: + - stop + - define driver_entity <[vehicle].flag[vehicles_data].get[driver_entity]> + - define driver_offset <[vehicle].flag[vehicles_data].get[driver_offset]> + - teleport <[driver_entity]> |<[driver_offset]>]> cause:plugin offthread_repeat:8 + - foreach <[vehicle].flag[vehicles_data].get[passenger_entities]> key:passenger_entity as:passenger_offset: + - teleport <[passenger_entity]> |<[passenger_offset]>]> cause:plugin offthread_repeat:8 + - flag <[vehicle]> vehicles_last_location:<[vehicle].location> diff --git a/scripts/wardrobe/wardrobe_commands.dsc b/scripts/wardrobe/wardrobe_commands.dsc new file mode 100644 index 0000000..02f6d90 --- /dev/null +++ b/scripts/wardrobe/wardrobe_commands.dsc @@ -0,0 +1,14 @@ +wardrobe_command_wardrobe: + debug: false + type: command + name: wardrobe + usage: /wardrobe + description: View and manage your skins in the wardrobe. + permission: wardrobe.command.wardrobe + tab completions: + 1: + script: + - if != player: + - narrate "<&c>Please run this command as a player." + - stop + - run wardrobe_menu def.player: diff --git a/scripts/wardrobe/wardrobe_tasks.dsc b/scripts/wardrobe/wardrobe_tasks.dsc new file mode 100644 index 0000000..137446c --- /dev/null +++ b/scripts/wardrobe/wardrobe_tasks.dsc @@ -0,0 +1,127 @@ +#### +## TARGET LIBRARY UTILITY FOR FILLING HEADS IN GUI ASYNC +#### + +# asynchronously and slowly updates all player skulls in any inventory +# each skull you want to change has to be flagged with wardrobe_skull_texture:<[target].uuid> +wardrobe_skull_texture_update: + debug: false + type: task + definitions: player + speed: 2t + script: + - define inventory <[player].open_inventory> + - foreach <[inventory].map_slots> key:slot as:item: + - if <[item].has_flag[wardrobe_skull_texture]>: + - if <[inventory].viewers.if_null[].is_empty>: + - stop + - define texture <[item].flag[wardrobe_skull_texture]> + - run wardrobe_skull_texture_update_single def.inventory:<[inventory]> def.slot:<[slot]> def.texture:<[texture]> +# dont use by itself - always use wardrobe_skull_texture_update +# creates a new queue to prevent overloading the main task +wardrobe_skull_texture_update_single: + debug: false + type: task + definitions: inventory|slot|texture + script: + - inventory adjust slot:<[slot]> skull_skin:<[texture]> destination:<[inventory]> + +## + +wardrobe_max_skins: + debug: false + type: procedure + definitions: player + script: + - define max 9 + - while <[max]> > 3: + - if <[player].has_permission[wardrobe.skins.<[max]>]>: + - determine <[max]> + - define max <[max].sub[1]> + - determine <[max]> + +wardrobe_texture_decode: + debug: false + type: procedure + definitions: skin_blob + script: + - determine <[skin_blob].split[;].get[1].base64_decode.substring[197,298]> + +wardrobe_save_latest: + debug: false + type: task + definitions: player + script: + - define latest_texture ]> + - define textures <[player].flag[wardrobe_all].values.if_null[]> + - if <[textures].contains[<[latest_texture]>]>: + - narrate targets:<[player]> "<&c>You already have your latest Minecraft skin saved in your wardrobe." + - stop + - flag <[player]> wardrobe_all:<[player].flag[wardrobe_all].if_null[].with[<[player].flag[wardrobe_latest]>].as[<[latest_texture]>]> + - narrate format:formats_prefix "Saved latest Minecraft skin in your wardrobe." + +wardrobe_delete: + debug: false + type: task + definitions: player|skin_blob + script: + - flag <[player]> wardrobe_all:<[player].flag[wardrobe_all].exclude[<[skin_blob]>]> + - narrate format:formats_prefix "Deleted saved skin." + +wardrobe_apply: + debug: false + type: task + definitions: player|skin_blob + script: + - adjust <[player]> skin_blob:<[skin_blob]> + - flag <[player]> wardrobe_current:<[skin_blob]> + - narrate format:formats_prefix "Applied saved skin from wardrobe." + +wardrobe_clear: + debug: false + type: task + definitions: player + script: + - adjust <[player]> skin:<[player].name> + - flag <[player]> wardrobe_current:! + - narrate format:formats_prefix "Cleared current skin. You are now using your latest Minecraft skin instead." + +wardrobe_menu: + debug: false + type: task + definitions: player + script: + - define inventory 邑邑邑邑鄇]]> + # + - define max ]> + - define position 31 + - define i 0 + - foreach <[player].flag[wardrobe_all].if_null[]> key:skin_blob as:texture: + - define skinitem + - adjust def:skinitem "display:<&e>Skin #<[loop_index]>" + - adjust def:skinitem lore:Left click to <&a>apply|<&7>Right click to <&c>delete]> + - flag <[skinitem]> wardrobe:<[skin_blob]> + - flag <[skinitem]> wardrobe_skull_texture:<[skin_blob].split[;].get[1]> + - inventory set slot:<[position]> origin:<[skinitem]> destination:<[inventory]> + - define position <[position].add[1]> + - define i <[i].add[1]> + - if <[i].mod[3]> == 0: + - define position <[position].add[6]> + - repeat ].sub[<[i]>]>: + - define unusedskin + - adjust def:unusedskin "display:<&7>Unused Skin Slot" + - adjust def:unusedskin lore:Click to <&e>save <&7>your latest Minecraft skin.]> + - inventory set slot:<[position]> origin:<[unusedskin]> destination:<[inventory]> + - define position <[position].add[1]> + - define i <[i].add[1]> + - if <[i].mod[3]> == 0: + - define position <[position].add[6]> + # + - define clearitem + - adjust def:clearitem "display:<&f>Clear Skin" + - run gui_restore_set_later def.player:<[player]> def.slot:13 def.item:<[clearitem]> + - run gui_restore_set_later def.player:<[player]> def.slot:14 def.item:<[clearitem]> + - run gui_restore_set_later def.player:<[player]> def.slot:15 def.item:<[clearitem]> + # + - inventory open destination:<[inventory]> + - run wardrobe_skull_texture_update def.player:<[player]> diff --git a/scripts/wardrobe/wardrobe_world.dsc b/scripts/wardrobe/wardrobe_world.dsc new file mode 100644 index 0000000..70a47d5 --- /dev/null +++ b/scripts/wardrobe/wardrobe_world.dsc @@ -0,0 +1,30 @@ +wardrobe_world: + debug: false + type: world + events: + on player joins: + - flag wardrobe_latest: + - if : + - adjust skin_blob: + on player clicks in inventory: + - if !: + - stop + - determine cancelled passively + # - if > : + # - stop + - if : + - run wardrobe_save_latest def.player: + - inventory close + - wait 1t + - run wardrobe_menu def.player: + - else if : + - if == right: + - run wardrobe_delete def.player: def.skin_blob: + - inventory close + - wait 1t + - run wardrobe_menu def.player: + - else: + - run wardrobe_apply def.player: def.skin_blob: + - inventory close + - else if : + - run wardrobe_clear def.player:

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