From f52d368ef289b8f79fe03f88e2c40a699128a8b4 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 3 May 2018 01:16:06 +0000 Subject: [PATCH] Graphical user interface. --- L2J_Mobius_1.0_Ertheia/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 42 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 370 ++++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_2.5_Underground/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 41 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 370 ++++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_3.0_Helios/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 42 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 370 ++++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_4.0_GrandCrusade/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 42 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 370 ++++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_C6_Interlude/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/game/config/olympiad.cfg | 9 + .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../java/com/l2jmobius/commons/util/Util.java | 2 +- .../com/l2jmobius/gameserver/GameServer.java | 8 + .../datatables/OfflineTradeTable.java | 2 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 11 +- .../model/actor/instance/L2PcInstance.java | 5 +- .../gameserver/network/Disconnection.java | 1 - .../gameserver/network/L2GameClient.java | 4 +- .../java/com/l2jmobius/gameserver/ui/Gui.java | 338 ++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 149 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 136 +++++++ .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 31 +- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 276 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_CT_2.6_HighFive/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 47 ++- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 370 ++++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_Classic_2.0_Saviors/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 42 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 358 +++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ L2J_Mobius_Classic_2.0_Zaken/build.xml | 16 +- .../dist/game/GameServer.bat | 30 -- .../dist/game/GameServer.exe | Bin 0 -> 166400 bytes .../dist/login/LoginServer.bat | 30 -- .../dist/login/LoginServer.exe | Bin 0 -> 166400 bytes .../util/LimitLinesDocumentListener.java | 161 ++++++++ .../l2jmobius/commons/util/SplashScreen.java | 36 +- .../com/l2jmobius/gameserver/GameServer.java | 42 +- .../data/sql/impl/OfflineTradersTable.java | 4 + .../instancemanager/PlayerCountManager.java | 77 ++++ .../l2jmobius/gameserver/model/L2World.java | 5 + .../java/com/l2jmobius/gameserver/ui/Gui.java | 358 +++++++++++++++++ .../com/l2jmobius/gameserver/ui/Locator.java | 295 ++++++++++++++ .../l2jmobius/gameserver/ui/SystemPanel.java | 142 +++++++ .../com/l2jmobius/gameserver/ui/frmAbout.java | 143 +++++++ .../gameserver/util/OfflineTradeUtil.java | 3 + .../loginserver/GameServerTable.java | 13 +- .../l2jmobius/loginserver/LoginServer.java | 47 ++- .../clientpackets/RequestServerLogin.java | 8 +- .../com/l2jmobius/loginserver/ui/Gui.java | 275 +++++++++++++ .../l2jmobius/loginserver/ui/frmAbout.java | 115 ++++++ 172 files changed, 13480 insertions(+), 937 deletions(-) delete mode 100644 L2J_Mobius_1.0_Ertheia/dist/game/GameServer.bat create mode 100644 L2J_Mobius_1.0_Ertheia/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_1.0_Ertheia/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_1.0_Ertheia/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_2.5_Underground/dist/game/GameServer.bat create mode 100644 L2J_Mobius_2.5_Underground/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_2.5_Underground/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_2.5_Underground/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_3.0_Helios/dist/game/GameServer.bat create mode 100644 L2J_Mobius_3.0_Helios/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_3.0_Helios/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_3.0_Helios/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/game/GameServer.bat create mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_C6_Interlude/dist/game/GameServer.bat create mode 100644 L2J_Mobius_C6_Interlude/dist/game/GameServer.exe create mode 100644 L2J_Mobius_C6_Interlude/dist/game/config/olympiad.cfg delete mode 100644 L2J_Mobius_C6_Interlude/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_C6_Interlude/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_CT_2.6_HighFive/dist/game/GameServer.bat create mode 100644 L2J_Mobius_CT_2.6_HighFive/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_CT_2.6_HighFive/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_CT_2.6_HighFive/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/GameServer.bat create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/frmAbout.java delete mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/GameServer.bat create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/GameServer.exe delete mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/login/LoginServer.bat create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/login/LoginServer.exe create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Gui.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Locator.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/SystemPanel.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/frmAbout.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/Gui.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/frmAbout.java diff --git a/L2J_Mobius_1.0_Ertheia/build.xml b/L2J_Mobius_1.0_Ertheia/build.xml index 245dcde99c..929e117286 100644 --- a/L2J_Mobius_1.0_Ertheia/build.xml +++ b/L2J_Mobius_1.0_Ertheia/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/GameServer.bat b/L2J_Mobius_1.0_Ertheia/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_1.0_Ertheia/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_1.0_Ertheia/dist/login/LoginServer.bat b/L2J_Mobius_1.0_Ertheia/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_1.0_Ertheia/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/GameServer.java index 9545157efd..330ae1c73d 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -145,6 +146,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -168,6 +170,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -451,24 +475,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index 9a1a01c8a6..625915e123 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..9f8c2a41a6 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,370 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenuItem mntmPrimeShop = new JMenuItem("PrimeShop"); + mntmPrimeShop.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmPrimeShop.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload PrimeShop?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + PrimeShopData.getInstance().load(); + } + }); + mnReload.add(mntmPrimeShop); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index ecc40e644b..056fa7ea38 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_2.5_Underground/build.xml b/L2J_Mobius_2.5_Underground/build.xml index 061d49f631..bae3275a09 100644 --- a/L2J_Mobius_2.5_Underground/build.xml +++ b/L2J_Mobius_2.5_Underground/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/GameServer.bat b/L2J_Mobius_2.5_Underground/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_2.5_Underground/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_2.5_Underground/dist/login/LoginServer.bat b/L2J_Mobius_2.5_Underground/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_2.5_Underground/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/GameServer.java index 7df21deee2..298b937c28 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -149,6 +150,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -172,6 +174,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -459,23 +483,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index 9a1a01c8a6..625915e123 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..9f8c2a41a6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,370 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenuItem mntmPrimeShop = new JMenuItem("PrimeShop"); + mntmPrimeShop.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmPrimeShop.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload PrimeShop?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + PrimeShopData.getInstance().load(); + } + }); + mnReload.add(mntmPrimeShop); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index ecc40e644b..056fa7ea38 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_3.0_Helios/build.xml b/L2J_Mobius_3.0_Helios/build.xml index fa64c28576..c2a71bb17c 100644 --- a/L2J_Mobius_3.0_Helios/build.xml +++ b/L2J_Mobius_3.0_Helios/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/GameServer.bat b/L2J_Mobius_3.0_Helios/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_3.0_Helios/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_3.0_Helios/dist/login/LoginServer.bat b/L2J_Mobius_3.0_Helios/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_3.0_Helios/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/GameServer.java index dafad09f2e..298b937c28 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -149,6 +150,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -172,6 +174,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -459,24 +483,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index 9a1a01c8a6..625915e123 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..9f8c2a41a6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,370 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenuItem mntmPrimeShop = new JMenuItem("PrimeShop"); + mntmPrimeShop.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmPrimeShop.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload PrimeShop?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + PrimeShopData.getInstance().load(); + } + }); + mnReload.add(mntmPrimeShop); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index ecc40e644b..056fa7ea38 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/build.xml b/L2J_Mobius_4.0_GrandCrusade/build.xml index 5207ce69f8..4335650c76 100644 --- a/L2J_Mobius_4.0_GrandCrusade/build.xml +++ b/L2J_Mobius_4.0_GrandCrusade/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/GameServer.bat b/L2J_Mobius_4.0_GrandCrusade/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/login/LoginServer.bat b/L2J_Mobius_4.0_GrandCrusade/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/GameServer.java index bf94971882..bd228cb89d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -149,6 +150,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -172,6 +174,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -459,24 +483,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index bd32b469ac..7c4319c196 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -31,6 +31,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -302,6 +303,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -455,6 +457,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..9f8c2a41a6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,370 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenuItem mntmPrimeShop = new JMenuItem("PrimeShop"); + mntmPrimeShop.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmPrimeShop.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload PrimeShop?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + PrimeShopData.getInstance().load(); + } + }); + mnReload.add(mntmPrimeShop); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index e5991a5546..d0dbf3b697 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_C6_Interlude/build.xml b/L2J_Mobius_C6_Interlude/build.xml index 17f4446493..6af638e518 100644 --- a/L2J_Mobius_C6_Interlude/build.xml +++ b/L2J_Mobius_C6_Interlude/build.xml @@ -75,8 +75,8 @@ - - + + @@ -90,8 +90,8 @@ - - + + @@ -105,8 +105,8 @@ - - + + @@ -120,8 +120,8 @@ - - + + diff --git a/L2J_Mobius_C6_Interlude/dist/game/GameServer.bat b/L2J_Mobius_C6_Interlude/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_C6_Interlude/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_C6_Interlude/dist/game/config/olympiad.cfg b/L2J_Mobius_C6_Interlude/dist/game/config/olympiad.cfg new file mode 100644 index 0000000000..57ceab892f --- /dev/null +++ b/L2J_Mobius_C6_Interlude/dist/game/config/olympiad.cfg @@ -0,0 +1,9 @@ +#Olympiad Properties +#Thu May 03 03:12:28 EEST 2018 +CurrentCycle=1 +NextWeeklyChange_DateFormat=10 \u039C\u03B1\u03CA 2018 3\:12\:12 \u03C0\u03BC +NextWeeklyChange=1525911132151 +OlympiadEnd=1527843600151 +OlympiadEnd_DateFormat=1 \u0399\u03BF\u03C5\u03BD 2018 12\:00\:00 \u03BC\u03BC +Period=0 +ValdationEnd=0 diff --git a/L2J_Mobius_C6_Interlude/dist/login/LoginServer.bat b/L2J_Mobius_C6_Interlude/dist/login/LoginServer.bat deleted file mode 100644 index cfdb79280f..0000000000 --- a/L2J_Mobius_C6_Interlude/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/Util.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/Util.java index 9acfa8d77e..430d9723cc 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/Util.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/commons/util/Util.java @@ -115,7 +115,7 @@ public class Util public static void printSection(String s) { s = "=[ " + s + " ]"; - while (s.length() < 62) + while (s.length() < 61) { s = "-" + s; } diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/GameServer.java index c62c016915..5a236c5137 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -140,6 +141,7 @@ import com.l2jmobius.gameserver.thread.LoginServerThread; import com.l2jmobius.gameserver.thread.daemons.DeadlockDetector; import com.l2jmobius.gameserver.thread.daemons.ItemsAutoDestroy; import com.l2jmobius.gameserver.thread.daemons.PcPoint; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.DynamicExtension; import com.l2jmobius.status.Status; @@ -158,6 +160,12 @@ public class GameServer { Server.serverMode = Server.MODE_GAMESERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(Config.DATAPACK_ROOT, "log"); logFolder.mkdir(); diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/datatables/OfflineTradeTable.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/datatables/OfflineTradeTable.java index 50132e0c8a..903b34f894 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/datatables/OfflineTradeTable.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/datatables/OfflineTradeTable.java @@ -24,6 +24,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2ManufactureList; import com.l2jmobius.gameserver.model.L2World; @@ -275,6 +276,7 @@ public class OfflineTradeTable player.setOnlineStatus(true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/L2World.java index 789b2d8584..33ffa86b80 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/L2World.java @@ -29,6 +29,7 @@ import com.l2jmobius.commons.util.Point3D; import com.l2jmobius.commons.util.object.L2ObjectMap; import com.l2jmobius.commons.util.object.L2ObjectSet; import com.l2jmobius.gameserver.datatables.GmListTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Playable; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -413,10 +414,10 @@ public final class L2World */ public void addVisibleObject(L2Object object, L2WorldRegion newRegion, L2Character dropper) { - // If selected L2Object is a L2PcIntance, add it in L2ObjectHashSet(L2PcInstance) _allPlayers of L2World - // if (object instanceof L2PcInstance) { + PlayerCountManager.getInstance().incConnectedCount(); + L2PcInstance player = (L2PcInstance) object; L2PcInstance tmp = _allPlayers.get(player.getName().toLowerCase()); if ((tmp != null) && (tmp != player)) // just kick the player previous instance @@ -610,6 +611,12 @@ public final class L2World // If selected L2Object is a L2PcIntance, remove it from L2ObjectHashSet(L2PcInstance) _allPlayers of L2World if (object instanceof L2PcInstance) { + PlayerCountManager.getInstance().decConnectedCount(); + if (object.getActingPlayer().isInOfflineMode()) + { + PlayerCountManager.getInstance().decOfflineTradeCount(); + } + if (!((L2PcInstance) object).isTeleporting()) { removeFromAllPlayers((L2PcInstance) object); diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index d666ae58e4..91c6ce0e94 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -84,6 +84,7 @@ import com.l2jmobius.gameserver.instancemanager.DimensionalRiftManager; import com.l2jmobius.gameserver.instancemanager.DuelManager; import com.l2jmobius.gameserver.instancemanager.FortSiegeManager; import com.l2jmobius.gameserver.instancemanager.ItemsOnGroundManager; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.SiegeManager; import com.l2jmobius.gameserver.instancemanager.TownManager; @@ -9050,12 +9051,10 @@ public final class L2PcInstance extends L2Playable if ((_privatestore == STORE_PRIVATE_NONE) && ((getClient() == null) || isInOfflineMode())) { - /* - * if(this._originalNameColorOffline!=0) getAppearance().setNameColor(this._originalNameColorOffline); else getAppearance().setNameColor(_accessLevel.getNameColor()); - */ store(); if (Config.OFFLINE_DISCONNECT_FINISHED) { + PlayerCountManager.getInstance().decOfflineTradeCount(); deleteMe(); if (getClient() != null) diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/Disconnection.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/Disconnection.java index 47326244e9..415e83f1b7 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/Disconnection.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/Disconnection.java @@ -35,5 +35,4 @@ public class Disconnection implements Runnable { _activeChar.closeNetConnection(); } - } diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/L2GameClient.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/L2GameClient.java index 0e79af29be..3b0c1a7ed8 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/L2GameClient.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/network/L2GameClient.java @@ -42,6 +42,7 @@ import com.l2jmobius.gameserver.datatables.OfflineTradeTable; import com.l2jmobius.gameserver.datatables.SkillTable; import com.l2jmobius.gameserver.datatables.sql.ClanTable; import com.l2jmobius.gameserver.instancemanager.AwayManager; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.CharSelectInfoPackage; import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2World; @@ -560,7 +561,6 @@ public final class L2GameClient extends MMOClient> i { getConnection().close(gsp); } - } /** @@ -866,7 +866,7 @@ public final class L2GameClient extends MMOClient> i } OfflineTradeTable.storeOffliner(player); - + PlayerCountManager.getInstance().incOfflineTradeCount(); return; } } diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..6a68193981 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,338 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.model.multisell.L2Multisell; +import com.l2jmobius.gameserver.network.clientpackets.Say2; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + L2Multisell.getInstance().reload(); + } + }); + mnReload.add(mntmMultisells); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + final CreatureSay cs = new CreatureSay(-1, Say2.ANNOUNCEMENT, "", message); + Broadcast.toAllOnlinePlayers(cs); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + final CreatureSay cs = new CreatureSay(-1, Say2.CRITICAL_ANNOUNCE, "", message); + Broadcast.toAllOnlinePlayers(cs); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..6df4951749 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,149 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + if (Config.MIN_PROTOCOL_REVISION != Config.MAX_PROTOCOL_REVISION) + { + lblProtocol.setText("Protocols: " + Config.MIN_PROTOCOL_REVISION + "-" + Config.MAX_PROTOCOL_REVISION); + } + else + { + lblProtocol.setText("Protocol: " + Config.MIN_PROTOCOL_REVISION); + } + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..0ab78d6140 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,136 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.MIN_PROTOCOL_REVISION != Config.MAX_PROTOCOL_REVISION) + { + protocols = Config.MIN_PROTOCOL_REVISION + "-" + Config.MAX_PROTOCOL_REVISION; + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.MIN_PROTOCOL_REVISION; + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/GameServerTable.java index 11409fcb5d..77211089f1 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/GameServerTable.java @@ -337,7 +337,18 @@ public class GameServerTable public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } public int getStatus() diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/LoginServer.java index af1bc1668f..9b4efaec2a 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -34,35 +35,41 @@ import com.l2jmobius.commons.mmocore.NetcoreConfig; import com.l2jmobius.commons.mmocore.SelectorConfig; import com.l2jmobius.commons.mmocore.SelectorThread; import com.l2jmobius.commons.util.Util; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; +import com.l2jmobius.loginserver.ui.Gui; import com.l2jmobius.status.Status; public class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0102; - - private static LoginServer _instance; - + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private SelectorThread _selectorThread; private Status _statusServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) { - _instance = new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } public LoginServer() { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -200,4 +207,14 @@ public class LoginServer System.gc(); Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index a5eae4cac2..dbeb3f432d 100644 --- a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -18,7 +18,9 @@ package com.l2jmobius.loginserver.network.clientpackets; import com.l2jmobius.Config; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -77,7 +79,11 @@ public class RequestServerLogin extends L2LoginClientPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(getClient(), _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (getClient().getAccessLevel() < 1))) + { + getClient().close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(getClient(), _serverId)) { getClient().setJoinedGS(true); getClient().sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..28006d2eeb --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,276 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + Config.loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/build.xml b/L2J_Mobius_CT_2.6_HighFive/build.xml index baec993f0d..36803f5e3e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/build.xml +++ b/L2J_Mobius_CT_2.6_HighFive/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/GameServer.bat b/L2J_Mobius_CT_2.6_HighFive/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/login/LoginServer.bat b/L2J_Mobius_CT_2.6_HighFive/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_CT_2.6_HighFive/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/GameServer.java index 2e024a6666..f5460b510d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -80,10 +81,10 @@ import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.data.xml.impl.UIData; import com.l2jmobius.gameserver.datatables.AugmentationData; import com.l2jmobius.gameserver.datatables.BotReportTable; -import com.l2jmobius.gameserver.datatables.SchemeBufferTable; import com.l2jmobius.gameserver.datatables.EventDroplist; import com.l2jmobius.gameserver.datatables.ItemTable; import com.l2jmobius.gameserver.datatables.MerchantPriceConfigTable; +import com.l2jmobius.gameserver.datatables.SchemeBufferTable; import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.geoengine.GeoEngine; import com.l2jmobius.gameserver.handler.EffectHandler; @@ -142,6 +143,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -165,6 +167,30 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + new File("log/game").mkdirs(); + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -456,25 +482,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - new File("log/game").mkdirs(); - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index efe55bcf4e..70cc6c74b2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2World.java index 0cb5921bfc..0a9d4adbae 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2World.java @@ -31,6 +31,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -131,6 +132,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -166,6 +169,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..9f8c2a41a6 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,370 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenuItem mntmPrimeShop = new JMenuItem("PrimeShop"); + mntmPrimeShop.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmPrimeShop.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload PrimeShop?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + PrimeShopData.getInstance().load(); + } + }); + mnReload.add(mntmPrimeShop); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3cb8fafc7b..69c319219c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/GameServerTable.java index 23ab31bac8..7d191232fe 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginServer.java index 642659a03d..d3e85d3abf 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 85bf1582c0..83223cd6d5 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/build.xml b/L2J_Mobius_Classic_2.0_Saviors/build.xml index 2beb01c9c4..7f3abacdc5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/build.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/GameServer.bat b/L2J_Mobius_Classic_2.0_Saviors/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/login/LoginServer.bat b/L2J_Mobius_Classic_2.0_Saviors/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/GameServer.java index c9830de34b..7316defa0d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -145,6 +146,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -168,6 +170,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -450,24 +474,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index 9a1a01c8a6..625915e123 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..0ea9ac46e0 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,358 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index ecc40e644b..056fa7ea38 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/build.xml b/L2J_Mobius_Classic_2.0_Zaken/build.xml index d2f12ef70b..e92df95d5b 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/build.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/build.xml @@ -78,8 +78,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -108,8 +108,8 @@ - - + + @@ -123,8 +123,8 @@ - - + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/GameServer.bat b/L2J_Mobius_Classic_2.0_Zaken/dist/game/GameServer.bat deleted file mode 100644 index 2dbaac7089..0000000000 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/GameServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=pspW)$fTVyyfnJ>* zHU4+CT_8kYSYQw)pt^saU0@)fIS`;-uYW3cL4bhb{!_~j1cdYt{!RbW{h$4B1hNDF zU$K9_f8l@jkN6+=|KR@#|K|j9vIGbE{U7mPUZ;(Jwf=uHWjQs5|0(rvZU0N(zuEs1 z{C^bq{af)r9^?Nw>i&(p{|FWT@c+f*{}-WiaC9*IkNDqy{kKQk|FG&m$NyveKtO%W zbQ~-||B@2HLnFX!0H``Ote;&CG(drdv;GkoK!M1?fzGi(fmoq8tRA}j-nG@iF`r_bG14G>BSvWA+^#fm^eh%ttH8_#zh zYLiRgjeQwk0m;4u-3~uKSfVnsStv&h9jgp6t^*1TZ3a_Hg*2py%M@4jbIV>bd2$3> z!P++wFp*V*=6(!McUbq*Y%i0_(K;%n~1~(9Q4FSNDZkIl;V?vEp&@-eY=2-X?wSFI; zdqA0>+&-)(0P1Z<@BKvdRSp!;oeCR>-E}xLCf`?D5zwA45VduF@x?n>4agP8YaUWh zGg@TH{AqSrX@pZGHF%n5uOs0^Ty}+nN#!Mlb!yjHI%L1G^1KFNec{!_O*LAcgHAqU z;w|YAq(g3TH!5kEBlgih&rzf^0$Cr*maF(W`z}qXcB}?4XfO1Pf<=xo=@J|b()Gb! zjfasyYy!n~IlrnLc~bwTnDUsPi~7qsk>2nXeDlaEA(^&RW(rd9h zOOj0k`<%hmvXvI@(`Kq`w|c9z9DaDJ!U3PT!o`Rdw4!&N$f9TOdVlS*Q_=Q`{q|v< z})TAqUE`t7aX@+Esre?8eu2Ew(g)rJ*;@1uZRJtW?Peaku+l1W7TMU?_jK6_<; zT7<7vX`5_LJy}OSprzSRWl8oz-}R1o9*}PU9fWBUKIN_9Av1pQzXv^Ry>tBmixewE z*a{Lb+C2tZJ$K0E$1t`GEani45I18VY8^=&&DV;QpkQ09R_C zbR}D)FwS@0edO|*uhS1~p>vb@+<7AbXWl*|?b7K^H;z4I-Fg@29wO67@>l&vE|LC@ zzHgbaF9h9Kz{fwm%*ODAb-tgm@_WfbNBtsfwIvdUK;dYV(9sAv@Pm|XuN>TdoAzzR zO`bz7_d#6775a?Fst@K#M1cNX3KBM7myN7cv)ZTIey(+3A<3a+?dghYFaaSOn;ub2 ze27Whtf>cz_;^tMQ0+CSf{IrIGNSH_rchIcu~Es;*rkkgKN6(tAWpU7*UbGQvh+JO zISAzWf{>?RE+LkBv!b=`(FU>lF@?eNN8y?e4wcq0y5KOUsh0{~H9;v=SunJ5w2Y@h zC7?WK_1t*6<^U^Hf!fm)egVwn-NZ$rc?jysgjj`%H|@RtueGH1xfHf%XbtHVFS%j> zXR%^EFyUMc!)iyq$McC1zWA}&?^NKBbYR@~4aM2t~q?wR-#-THhWDWsb=updGY$DH|@y1`r z$B@~Pe*z#KfkUWh6Tf(C#L53em03iaWR~r3sSQBl--WiPmYkZV^s^*2tGm&vLh!#c zvA?qK=d3yHj{?d&iX9r(VauYxZF)sbkwpzyr%5YrNCO}-lHQ_#q7S@`$4g-rvk(_O zPJ$q7lOoPh@XAq5d^tR3t>DU$X+x|u42u5Dg*GAi+%D_wIqRi7kgZ<5U>6kpG9|Ex zBK^7vgITs8d^(VXCo~33uarA;{$>q!236$5(Je&Ei4{Z z?;s~@pc(+53iawXG-pI5xD82A!>3=CxY`NlVAciJm_GQ+<)}c}KoB~PHFh&CuJl0> z==mW4l(5!z93x^|TnnDeVFY~$8E%s$4+B^_i2;b9!+!6TET2=d(yGltciccL*DSPX zB@3I@7lmM4U3J2LI&mo3u2Mx7D-u1#c8Eob<7K&ctDJX0i|EGr#`?SQw5*t%5yp^` zHA?scv$2!Ium(Tz+2?Ga%eB7;sfHj8&wh)faunF=$(M*d&e|!?Kl$?nv9`{uk?vfO zxam~r#7;-v$4V0gcv*Dm?#e)g%Qi3Or^~nxGuc&l?0gi0{AET}ZBf)&@R zcrOji0KrWZmsCE-oWK89+yHW@HmTdyy+&|caZ6yW2JG`rBxqFPI?5DSy>{sBl}G(d zO{jy3qftX$$O0Brey+1Bobk5%hx9t80`E4XlgG8f&KUuLsazpG3(Hh;ORWRvp_@@m zJbOd^4&3rx|8y+hAmrK;4Mo%%$As)tWR)l@3Zu8(k`?B0EexK`^OtSQ3tb&BS|Vnl z8X7`JSI5pdTjp(OrdjdKUwJ_LMy#yQfpC&0{$QlQ^O~p(6jTi~iZ+&GZuVaSH|B^j zx9Hf#zLu?2wePsyNO@M+jix97*j}p?x+OCzJ~_CRT{7iYVdPvV=yq*ehJ}bAQqSFe zRRhZCgUwp{uKde-XiBn{qsg$8X$=`Vd1-vw?&35TA&9~XBphQl?{oF>36VP{lzM1w zCr1sH#9xX}0xz zh^|DJ#Fzwh2vYxu79awsfTvKpe4c((H6{QZGD8Qq4O_yIs10xm6OGJ?F zIe+Sg4HOlWt6x*m*VVDI$&pp~eEQ69BV-(j25|efngOzmjj-fg^COW$v)*ai4I1gg zH~rz{RNz`OFRr6TT=iLtWSQXyw9&Z8#WpbIPJd!GEwVrSr-^(qd-XEqfm6sy*)QH$ zACGXh;7od?!Yhl{F{h54`paVstygCwWie_>8!+fsexOL zIgIE&4ni+~_($c(@UML($x5S#Bgv#&%&J@3zNqQUexTCpoBu?4-HSBxD$X=*oi*8` zwcO>4-pOK~0lJP3#5S-&Z8LX|jUIr5Ai&Z+E~$3|Wp`cIAbJaRpL|{m4Z}%p!RdeN z>>@OtW>IG2qlZq!h;wc}HV<#-0IhKhn#w z2z6C68^-77aJZ6CYiHgxypDo5NsiSvno%LqGav;s=?x{X&<`u`5T-0_Gz&-%1L>oO z{^nlP4n^|kz@Cq@+>AjHXRg9Q5J-Iu*Fg>?08MM>D;ZYhfe`WwspO1F`|HWfXWY2u zBUoUBz^CnEef0NqZ$^6y+y#x(EXM35mG9p*rP-XolRbz_w+&ngqLT$dUVVINc^L@`bQSB+o2JjrNw>&Bs?4@bZd#3 zS1c4dfGP~Z-El;MBgJjGja|#Y;K(iC9Xi3=Y%2U4qdbi4zL-tZDcTVsraq&&-nFDE zb!gged;8>o{@3=Qsz9u+uU$CII3c9Ze&m-9zeIIWhfS|M!ft`}uC5(_tFR!hdX~7i zdT+$|SpIKlg{6?i^L?tss%cvnGe#A6Njp`6@AI@M zTx1-J#YtxbAgt&Y{afTA@l`*5?qYulDmlK`Y4%q&xL%N?61Hq%pPrr8sQ@773A1`oGR%Ds}D0* z4ybx$h}A}hM7VfTNKp6%ZO>x%|SOz5LedFwg=}WXD5jx;=#!yfj=q?gv_iO&ICrArk|Mc+XEVp z(r*m&{~RPkS*DSgbA;8az*WI}5|cDPm>$~cEz z3lnmIKn&C6MGC5W9%yeBVuHtXD7L4{BS#aHWXr=MD$Y6i(goqN{}>atGE>0PJ0Hz1 z3JE^wcku#w?z)7Ltn3~D|H)&n8=~W?Or*hkF~~XaK;9(tMZv6K?&`hUX zUSDIBP^A{+GZ#AV0I%ad-3(;&spp}s{{$oIPIILHksc(p`7i0ml?1hrwe}e7=em3)+3zceB@GoJC3U#fW6P01&C#di z%hAf^VeugjR82!Cf=mz0S!#5a252pb@=24t1}_d(OB3bQvzML5iU4|!`y&PO&>W6h zg}A_MB_Pi5Hww78b(J^C^73Ui%)Pw@?AX%G_*!(C!a6zIkG0t1$062(KUL^Ib!Z_p zs?^h`PYrgeN;|iMa!F{!MqTXQ>6eZ-azaP~M*`YGSZ_{o#CRN84oFH_+ZRQ{WJ%*N z^9q$-9YlT9LWKz^H?e`Do726Dpwt6~bDH5gCzB|qf}bh7Pw2xN>BrTYbWO#WxJ*4W>~ILq)6<&))eXd*^WoZV8Lm}1^)Wo&1Oejv!MJxlB(#R)Cb;f_F0=OpgB)@=}{*~pGu4MhUtH@ zHEK+9OqQUcxbVc)L!}|1+-k7TLe|^IUG_aKh3s{?`J7;i`Yr(`j>bSo@1i>6%@e&< z!_n=9F@z@oz#quuhaVXz%`yE^aVVabUyI~iL1ctHLj9HT;L3#C%^7L>9960Ku={te z`uo(3!2pLzsHneN_+7>MUUe@fyTu`bVf-T7{tX&gU}&Nhs%ah=2)1hi?{3|4dbO&y zAa0s+Dmw1pVsO3aV=?P~6W!%{O)iFaWUvr&x*?!GSRR+EMFkAs*&3Ph@ZKMCi`XoE zI3vWj)4-CUBS0$!IKAeGroxY1g{(uxXOm(=7{aerD$SdCZ7{(8F+=YR`IknQrDWg+ zW9Ch%j-WvU+Vg=6@*|B6vX0U`1*#-p)LN7+2h?h`ezYDi#bdEBT|1uZT+adt(LMj+`f87lFx+R?mW z&1{`5_zJx#mq<~uZ=-O2X(KwS$0@YNbLTfx33AqMT{!`6@v*@;GPtNhXLe+-@RC;C za|jLJP`qBk));cX-;r`ar|9$jkA3i>WCDB(R)6t<8mg8(!j?_I&2|elW_yPC{DCr| zfb**r>E9*NL!y(f=0C+ITox^8z$C7}aBMgT-1=CFx{ySGMNziSNP;hi zv~XZ+uw>W;${PH6H;; zqPkJbwtcltJ*=g@Y7qEZ0P7sCi~IJU7jLCK5<;|FS?gos(2;c$nCb|OHHOxbt5dF} z0wr1TsjM#NelS-g8FN}$8Jsa#mQ+JgIzHB;pBOR(L}3t4NZMd4r6tSQinH-2409@xm4F~Y2asu zVD2QOu5q@zBbOCVoJVEuQk9d|5+p9g))k%DvqvZ@f}KP6K!%PwU)}*zfz4-vGnz%# zfa(UROMQpXuTtLhQ+BjGDSHRI#{s<2%AX(=f>DKhCnzysH>`{0fp#2^TGum=sj~SJ zCSJR+8QLw9l}wM|CK6efiDJSP%Hcs3J*^7cS37%xi{0D&rj z$b!hvUVbJ?(fX#;e%fUAdl7A75C-m9B#3LRGBVB4`fN%FN74431KRwKBqH6?H+!Zn zaP+Ol{ZX2yXzEj-qMl!yy(#ld>cl`f8dTAbLT+mFmBk%@@`8~7h*{oF9sMMJjTwYi zremhkFL#UAm>{5ZIO+bb%*nZ8{uu1?*gfw|$LeAiw{MU*?;d(O}`1jUK_~!3t%#B@3&UQTPiYS^mS!?X<3zY7*JlLN0yr(Y9Ewk7HW2 zed!dd0`N=eeqS#U61kN>Q@e=Fz zZQ=v`bQ_O8$3eY;3J$+sYS8$0);ufb+?IB_4^^;Mls&Cx?~EXfNg}J!$l@rAbhBvw z9js_nQWY*zThFndE(}1^H3pp`?f3C&V8Gv(Fb@j|jc9y=lrkoVN7w0MF(j`!xGa4dVk)jcS`Ek#Uy$kTi~kcFkn>`*8VYz>)%+k2o{XT;1u ztUC1?d%>IZ!4>*1Snm5pa=T}Qzvp42o|)Edz^%hU5@}ualh-poJ;J5mpN7*9j#W4}{rNtJ+@;ls&WjZEI4c98s=wF|rzE?qv%K z_YHy%68}LL8+>|rQaQ~63<=C;qb`NbycuHw6!5_lHP~fVY*lV4SIU?>8`k3Glk3OT zx2`WMJYOTdV3#($ss>=tIb|+!Z4z#5pgMXq?mYcjMnZ=+0{yu;U8JJxsbZNETNEC` zVqW}n1=|2xo}=w28=;rVvA+>H4$*Mat@R4U4%c96K_L6_6hl5<*?H8n_)--nu!cFN zg><#-xjj$|$BB#+f&SRV{=4ud`Y40AX|I-m7aDmVor*sIJ~t4@^*U3}lvSGC1}XTq zJn^p$C*-KbUgPzQ0{ev)ao0tVJD9J|tR64CZ<13yxlJ{~05Y0ihw%_W5B$pCid9U* zXySY-JdU%<=aqAUgTeu6VhTkmN`j^~Hp99XsKc?{@m2-PJHKs^`V6w*DSx1QMdMy? zZhtq};GLzQ8W&De437&tRV+nd&b!tf&I`>^8EkIvCJ;+&^?(1qztS3xoBLnl{hmjI z_;7B0J{WOmCpP~=Ox0+)S{$A@Qqmpz)75ymhKSm-*uV2P|4s=(*%n2)04?RXkEVzC z@y+SDb;}S21UU}G>!~5=-_`YY`?6K7`IyrR)k0jPB>NosHwo%{;2B?s=kV-zhZx@d zOw$4+?bw9C&u)NU*6f`tNEJnW(#B(bbB8(IYw?oZVy_g#_;h*FU9u&JUtck+@oA+g z<#fA`TBFQUT_fbKNn{_}MDR=R{n%>PPZ?$n4z{lSADu|&ZwiWr;Vobm95@Oz9#zgV z>*MzFXeh7tfYSRwJe)6{yYj+Nkw3m@Vq8NHP!=-i8HoJ7+6ej@(Vp&QUnWEekuEjG zby@Amy@rdVIoYr2(Ky^-dosg-#7~&p$O2{XOJXl4#^RXSC=HN{6ESk8YA~5V(KTFz z*Zy1)rQa*;W485AEgc2HOV@~PXXHJ?RjjHLsOnZd-oNsm4CYLU&blPcUrT~d1)8fW zoQ;2Z@n$&}r(HeFcgL{vcRp@)QwT-IkMh!hc+P;tmv%;1nQcYSimf{q=CGVGsmWpw z#yw0;vocLbHM^K`x$<&az{(S6`oyzZi9B|lmN=-gQaM7|Xk?66{WPYeTN`pst?u__ zC)or@hfRXYc&vh{mH`QVU;8wT@#fnKHM#e9@7)-vrNjnyWOP-cm1q)SxB7dr2BxbYI#+8_uUGlFgQ(xPw_Ox; zL7DNt8fdGo7iiXrK}7nt7dc53+v>Uj=kyVg`zAfhXyLTO=!z0-F{i&WF$FPEb9Li~ zoZ4_xPEHY>v`)86QaD9afm)q^!V zo%|W?;#qSuy4Z+h3@Hz(-I_5x<&Z;^PpOm)3l-xEtms{~R7o#O2!vI2C$c|e(`r^~ zNI}#sGyDl`UUVZ?jw?>&Jv*WaC~vxfcO{~Kh!ovVexYdK^(A{5lam5$67~H!Pt1zRC`pckhP3LBgD-+D#ID>_f*DQH>jn4g-)@B8H~rV}~=!a$KHa?@=k zzMs@|9GK*{ zW`sjHuG~%j7E0@Gg?%<-!0G3M>QYyf$;`nFexUPL98ejdqQG`IxnE+$Id>kC(?k+iyE_(wt6sSNA(aPk1oMsi#S2}MnW~@;0kvAnC=0Kw} zT)k;zFHmb;!<&A0Vje(NaT>7_)1w#U=<@%22C;t+;L`Z=92B7q)x*4KoulKwP#TvpNH`z%TM0CyNFxh`MM zXFB(x2+}r{Xr(~G>p%53m71W=2hqvRr5#63Ut)SEKhkCLpDdx}Veo-`c0i?WPC)+~ zCm1F9yU<>Z2r+Okj;6lr(a{Tdxggl%>Kur5Q3e5it+iTud7Vn&x4`q%!f+%5P~@Kn zO*GhGH1TBx-%$}BV2BvGrVs>F{7aojG7JgrVo+830)<@&b`EN9p%0N1A`DTpqkrjr_>2b>YYSPr|H!*^o0M}~ zQ<+#AKk)f+7NYi^mj;Ez;yN|(-If!Fx6Pz1XVkEmYn70g4H=!k-R_g31Xfl>_6R{2 zx<_Jo->uW{Wk9$aBZ6GJgIlG@KG~Q&k#_Q z{k$BK8itkf8 zEQXB*@}_*1TsBrRW-+6(#dA6L>fP8CN%agW?K(u2_kZXVZBbk?yEIv-m-UoSkVOFL z)az}%2oQzZviEEnGo$Kgw0t-@szhbKE8!l^BYchRcJ9F5Wm}l|k3w@ksfj|xT$1$i ze7Gd|C$F9A+ZeT9drMDwgy3vMXv%C?)=uR+4P0T%njR!v>Y4gm_A#_z(~seH<6;Zx z*u-iB%d)gzL1HCJs`S$G1yZz1SrFO9sJ=_G*+;ctWx%H*y zP<>!R*@ElxbDDO!qJ-x~t~Trw7e%Uj6S!nB(SlsFO2ntu<=fR3T$l~N0=0izubl`7 ze;8r7J;32F<6?$-R{w0={W;wc|4OTaD~PE0NhX40lh!#aDs=RunmHAXWI8w=H}c^m zrXcrCvtZIMbXQ_&A@V&FJY~=N3EGupeR`LDETMIQz%GgNk-cC=k+C$k=2R$5NTn&% zVx=ciJ;9*c=1DKH^YfJ@d*Q6d;d$3C0n;L<(O96!f27T3@MHw-a%K=7;W|nkNC#Vi8RiPP0`I>1|fTZ;PKL@ z3V`CHkiT_Xd$~vGtjzA)((H84?bk0zvr8Ge5J(TbdOx{u)^a+Fptb8kSFq+)vji3C zU`{A+Qh(}NwJp5p6cP*HZ9p~}XA&SCYJDYSa)io}q@7niIB}lTfw~a%4O*PyXhA+u zTSv~ELw447VKWmVt(*udA^_7zqDiS1_KYu_RpiIFb`cqWeMOXD>Xj*}_`@h{f_0^@ zu?>1^v@)|aEyWGbRdxfRFY^4cKSull=~1euHLWJUTnt*tt11tkP${*khqCd8JYKn> zkil?EF2tnTUzm3Z;+U#InJYltvAIs@qQwYWcBkfI4Lzi zu9cpy>D*tiJ;rdJFc`VRAPj9K;f~8zHG(R@BTa#yrF#W&KdIw>Dn9|1HoiQ6$VkK_({?2!8Z2s4L>GToI~!(jDq27tkxeKXcz(POa@y#W z_lLH)(v@u`Py#jQWm~mT0OMC>1u(@R8 zqgdpxyuB{WsKvE}zM%uL(BB3Ty8)5Z0=eUt4%MTGWk{q6?mHdz+y~>jt$7b#QOq?b zvr!bKXFIJL!~qCU6$Bf$QhiV<%^D$a5Y7*%hPJ5hJ?|$M?==pONBB^q-=#pHOTRzQ z$d9HSN24r4?#T7unRKo-F4a)@$#XGRdvBu0V1EPJGqmSbb)Ywl+Ng5p{ymeJr==!G z%Cfzz#&0f)jpgitd5T1dI+w&Cf5SGtA^u+U%@Xtnhn^U;Ph7VCIX}cJJ#|-^_ilBz zVzdgNwOXh<_8@?=S2zIokoGeQIll!FN7W5PKE0rtLKmprRIq;5-VhDBPGuMN)b7Ya z6lb%Cn{`tfX=YKhv;i|wN5wWJX}U#bW5*X)(w>9qlwC=Aw(kr3kSv9oSr-Oq#D^|@Sd*xwN5GUqbOR>UL_ zNe;M(_Ta6H>V3LfWi~$~Y!$!Rq|To`Y}ywv7=#}rb&%0^mTZMuCCTe zf{GWXO?h0z5Z1SyleSv{Eg9mKWScE3aotc<8AMSx3VB>P1KKhktAu(WVa79(3nnfh(xBQnu&9+Z@BAac435*Ej`o(=vj%v3pErUPm4B7cSLS61EJV+K7m@^Lv znQ)R`amjQWEvQS;&Nzvk;>=5XSi+HT>p`+)eff2)vrU+aFs%F80ISlm6iFW!LjvoZ&b zS1Wk_&$+d{5y^x<0RrX>VjpWFc$VyQ>X~2P#YE>O7_%g{#QDKl&k@5o3el16!dpN6 z<0-Bek8&b$;)cG=5q29>opl1V;!^ub($hJ*S%C2ma{2aU!`E!A*Z4@}S`g>i71@)DDDbCj5&gxtn!p@PjgeQ{eJKIQ#De9CH4D-xFkNn9 z*xmGw>hx0XDSttEzi1n#ynFNup$5h&CIsblm2%S$m~x@QqK`H3mEe^)zEob5)kk?J_|< z@-`xtm-OR)r0ifd{q+UM+2QSV9E}OU?kvIE(0&cgMO{NnmV^s*`FFKw;T>HQA{-?* z<1!;8op+m6v|6a9qVBZ_|6$;{Mk0@otd37gvB%>Q2b7ora**L91!up0BUysJM{8dg zxNMsr>obN`qHMhmd-D8Y1*|w9_G~1qxsU5 zK%T2G{weHCt7>FO+0$D13#u43!~^<;obwSLo@y_Q7!6^KJBBKRbamU(bGY%&OIzo0 zJCjLy6oH6(k|g-o?-CJKyj9GL?Y3EqEjTD*+^NrMTAa564}^oL@n=@Eg7K6h%lPFj2p^@Mcx#eca)ivittn7#N2h=crdkA=kkl+OmSFdjMDfw~b#} z2nR0alr;Nhv%7Sj;mE23!O1j`-OgY2cLh7MUGGc!5}#|L*^4(M2v)W5q4`@#gi3nv zz3FG3_fUl%mtwLi|l|slDCkPEOft+){q}5%y30FVLJsHVRRC(M89i? zX#J@iL=@a1U)7$T%S*i|A*C8revQ;|!+F>|SDf!V9&_Vn*90F@eoI5Fo(H8h-Y882 zfcCoZPVbaPF=7P^cmbhY+Wt}Ad*p!Ed*aot9AzUDWJ$|HK5-)FkEWT0Y}GV!)bR4{ z-8?v9XXbT%kTweBMFfRCU~S@?=tcypSkRFhu>AHspW_NNv?k_x;2Wt#T}5J)?QP^oiBdH@(56*;;!-8J$s%BJMrHM z# z?4^q=k*f-(LD*en0RDcC)DA^M*7-dpBJ4>oG3l`33C(_c<;>gzbQ7gcygl{(t7KK; zzd}41C!=C{=q7#o>ov+=NJ#OEYdutP+N2RS(Qf%@%*2Hl**MrTZlw&NPnIuTN3%^T z!M`CfS$ip70E!dfIjeXJc9WfQ}HyER5eTe}b49d@WK^md)q!y~-Cnmski-1flBB;`URm+57{9)`d_v`lAdFdCLxjN^| zR~Q&W9X=kgN&5yukPQ%rwNWCIv~;i|2u0+utLJXwKs)p}kElA{u#r zkrk7~!l6gK?-omLTX0C>=fg%qfCfRiG1*2@5PBWF8e3^RA}}`95q=UHP07~Se7ur4 zDwYixNS>*bcl2hkv7dl-3Sjs5tsETcdI#y7Q@M5S zlYvIue|`b1y(>wY?)5;oMJD~Kjnm+;B-C9zx_6draFhpv=R&igB|%2&>2Fe1LLLIX zm5L`QL4}+mfx`B`wyFJT8Y9OsC6Z{i=sA}9acjgFBVZ1H$zb)^opE$SC;4jPE)Yu$ zQ+{u!M?q#Owm^YKTS{()z--jc2Np`k)9w5lcyI3(aqcfQK`EhqI$aV_ri8);8FZ>^ zk1W;Xe&V18tvAmI7-B3`4qjT_%T!}y zrTDV%V6ufdy30fovUvmsD24mNFZnEbwaMV!x9{Gvm;>YL_w=IvjxrY^kt{4R>oD%3 zlt)AgQtw;c2M`QQb=&X(cdK4oqkFn*3ol+{oR4EwAc^*lyZXb$XQqLCBP30s;)-kh zJm^QIMDpZC}Ca%=Pw+nZSyBZ{$ur`v?4RwaFu=x(@fNYm>{=Lu}s1GR{ zZ_v)Mt=do=yyC^+8zyn@IT5AHKYB~^ajO?x%EWNQm~ z)tE0XR_Gv)Z6@jj4M!|&uYG!d?@k_L z!-njAYKK6~0g?+HRHcwzXRdl>vklgHJ{4qeXGUA!9e4R8&sd+CzJO(bpumG0mqXpXO$ z5SYJd)j{Rg?(v1MVOlli#x7eGMPLt)e8o{!^{wm;tos$ zyB?zfg2-wvy2peTit*jw!m@|Rf6d`AGaBQ-@XgRZvI8`Tx{3D)W9;3&W99f&d69H< z`jxY{jD=zz9bHI7&2mfd3-%rQe6D(ahfIEmAU{Pn)xQqc5buBOR0TxvOF9H{N0CXd7N zZ>2)A*iH;vwl{ezw}2=l#++31*=!N8@BuHC*8nr}hq~($OYK1iH_{cx6b26BwmoPY zv(>7+A9Evc*mEE_zUyXXzPd5kn3&GK_E+7ndJ;K!P^4cwFSQ3w*^>(J;0+`=E++e)BMhbW2RLQ zQVMs4usM9wwEf(k4;BK8etC<4(Hou1gzl|Ur%U+ZwUpxmNQmJB7cmwGhhY-n6bw6e zR+Ov)R;qg*7QwMYjO-#Cqvd&ni)ws9|3^zc>ecGw{2A`^h&EV0qBG!Z( z8?E8=-JRp#+DK@b83l(;;nGAIqxYn@G>|@SE3I#d{^Q%~M?~C1(dne^Nh5#^RX1J^ zFhf_3+7|s9j|$~#U8SFew+{c*2<>QO_!W z?D~c^8aM>z(A9g)ZhGw}Tsmb4xZ6u?-oI*TOyzxYdO=b?s_GVLgW_xi=S{i~Bk~Fl zPoSaa-$TIX>prPyo|HeNTY-jg&%ZO#ZbcAIPj-Flhn`3D+<9jg|JP{@>QvV9#lBCH zQ&FVK>e})xRSX#Mo)H(DIRty)T~=Hy-wA20g3_4zK&>Z5Jg267F8C7M%K$0kg4zrA^@Ji-|Y1-)No-ye;)~7PQ}?mw;%$z4h57D`JXY zNj*!0y?YE}2s#k1xB{}@x{BcMLA&$*2^^53Ylt%V>Au8LhPi>#%pu#8F`$eh zbq)2-6({={F$Gp+R35u>bBlLxp_!M?yu z(M`}ts{QVCAhWs|E}SL(ivs_>%6O~1?=)8nMq6`%5lN8#)5wG~{mLH*NbX%)%dOUR zs&vFhWlEf1avM3G56M-Ic-C{fW0RwC0KL8^rDg>$5@Y|0W~=OO@b8)hOp<5OP((^U zHyvuVKPa!m8eHuIB*T>B$KVF>z};iGO^36^QkWt`Ujl zKbmbvoUAfho_Z>SrZrM~ex<-Y;%D}QcX+T{C8e%jabQCNYE>+wZXv(+A;SZg$vVE` z1Got@F)cqU@D3W~IQXIt#d1hWrp)8x&MhO%aT;(bCl@R6q}r3qZy|^$1!V)labMx7 z=ba<{qxP=j)n@to)ow#=PsWS{@L|PD1i)fx)Hq=0Tj8Q32)}U$|N3-p_ii&|q37a( ztu;;d7yhvJ-jM4xp&b9zoKuuY6x9@5U@@M*HPQZ}H(|ppA&n`keJi%FQ$hxLP+kl|vmaf0bK(+i9z6p-T9!svuupQW#)R{e)9O8dzCyH#iPuCxY!le6kpx-m$t zv`4qmp17PNs*2|z%(D+Q<0!_{;dN2-R5bemAI&+}O**~$Hq$jVU;Xmew8H-dDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?qlYJXPJ- z@HS7Cp-Gx3iI9|{xkPEE&}=A)sAMRikOp(4%!Yp=D>IeVXbx>z$WHGe#Mu&`UH&txC_#_IVstdjEE z?9vU;_%4jP8hqVuR{!N*RVybOqnI_? zv0b#gJ1ei>WxXJKjXA1j{_ggp@53%hF6g~=>o~j2++d&l%#vh-fE%x}g|+x{4orVp zVcfdltZ!n3?w!=GpqQrnA5pt!Od)*D%xvdAZvuyU{mSn6XYAow(-dDOO%~z|DlM*A z((iM`amutL)$`kx^;ptYyLf09vq^l&ptTq9oI_7Sryc+9GM%^Oeq7_r!9y~MF4Og5&p$&L@L)L!SG_f(nKBMwi*xVkEi z^z$mbgLMQ)bjQZ%ldE$=-b|ccEq&W+YNy%rJ>zCMKTurswd-<&L(nW77mR z1>|^Sx4Olc&2xFi(sVI!+{q30ORJ|%((ByB@@<@l!uHt4N!DZTUD-AI)9bO;?_7mL zHClu$&Rf#H=`Gb9$2FdJaLan<6<757%yvzMpDj1DJ>|wye_+RH(bz%nBb1^~!O3g3 z%!W&t^n)hM=u(O+(TbY4uR?kLP5TG?W=m^+NeYcuIk9KHbbPV8%5-r#!L1o)nI;Kb z)yyfU`Jdh#I9;f4poA}A!o@gEYxWnl19#G!JFcEfv8~#_Z?!;@_(!LY_bzA`PF}d? zwZCBhZBfP8lA~Q}CXI_@(JZORe)G`V$)5Teo^$xTvCzPNhX@OuQ0ipUQe`$t zD1Ma7p}T+(JbC|{Np4$0i) zIDvAIuHIfyx{Xxd>~ZDF1^ZHND|ao5wQw@vF%U(dQgawXsTqB?1H9b_<( zCuZX1vpU9IoH@DAyDq$_iMsdYp7mp{@N=z=-Qrx6MXkCc>;^LW7b_MllaYC_km;-5 znH9lv`NoGIO_6V(q)}xZxHKp6nZrX)b{nyx6EmG<*HX zX*%mRFd2;6w&>WA=yp?~{EWw=(}m8Yu=tjWO2PNg7bPb99~hhEUsyH6yc&a4&sq#npF~^srR#{d~<)prOUlrSWhox9~{@NyPK8YaJ5=ZVr`z;|o+7nJ( zG%~E5=lS9G+MESiy|mn9Znx`cgn3 z{>5vjbsZnOd6cH_*|g`@1WtIG{@QTHY0+1qM(e8{P8s()d5xq`VeK;s9h*$`xE0JB z-Un0<-d!|iu58i^t6jG2#$yAvd=qh6Yv%DN;Cf0$Rr-xKzR8s#pD8EBiMI2evqzrQ z@eeaOU;3Os@aU!9XLCn=-s3igr_NB9xqNjS{6c$Hl!se&d2N*J9Vb;C1EURW^N$y4 zhpFVI^vtopt{%aBsPT!9&%xYx4Re!>gf$z-D_U?`3kNZ0ewyGcD=6Z3Z`OgWJbHYr zBI@&bf!iu zZl3bGK)amAnf4;z(9NsWS-0LQwCw8_?R714lK4&}e^qGxykCKzU)dolFEN*YtF!w` ze}Qf#(SDg_Vfq=L^rtuZ^@yiVI@WbY;ls7bv7b(6-jjbK{^d-3qxy{ej`ST;@$DLy z4_(TN;gGvy^YQD--1$o)-rd{InOVc6>S(#bja8B_a<81p;_Ic)6r7_xJLFqfwfC8h z|FS%BIcJ@XmiHd_vb5=2V>{LJ>-t|APqGwoS3CVYEIX%RhyH2jjdr2Z(l*y#al3H2 z7Y9Du|H07U%-cggBF`U(sy4GZ?~OK**tm0)$2(=O`(IhpK5E7v%sfZ!S^fN&dFp#^ zy~#1G$5Z=#Il?Dcht8Wf)+l_;cE7oEV@?NLoU%Dur=Mrb?7W(T(x$NvTCeiWZWZ${ zHeEC4?ak~}uZ`szSSC%C0$g#>TcIea&{&@Du><uy@m>YN+&Xp)OTW!anUqgeOaMAyS(hPzA|RzqFU)huG6*V&RX;9j7mR$*mgQV;M%3d-$I#AOpOwr;>ELD?3K32 z#&ykp_7&>u(|uiTzTX}(Yg*8m1x2~K<@T-)5gWv>zId}i<)v)jglFny?v;KA?%E2e z$9u}wODC}O=r?8G^X_Rb6*u%(nlnl~dV9F@_IWEm59*E6SgxzQ`-s7!puEOOVG=}emAqb{QIYx70P5xyWJ-Kk-cgXyqWLcIKDvVjd)qZ@t5s) zD_{8v2O2GN%)4v2PQNt#$V`_lpFWRTdNLq%YHduYSkF1h`@Yj$X3a{A{Sfo5nS>_-whYW;7~(+3ak`6gXwk;WskLi_fPh?OJW!#=n)*o;TpW*$z?T z!(S_TU-~OtR(-$1`1LZ4yKmVe%R1f|ERIj8RM^72kLUEl>;9FO16+>_Z5w;wB8y3i zLgv^@@0!P$M~fL{&zz!oPTV)Vd?0+Uukx~-u#^J<&p6k2=V&NTic;(wn{_$O%IfA`gZBkY z$9&!juywTRTd+P&Q;WYXA)hZU7wXjaA+wqDYxdQI?PK$<_m^;Y3b&`!jir>M&(I!> zW$jya%`38bjhaP3M4zse<#I)?#L{CiHa=QCS3(yR3TI9(wn{I*&^uLi?c@Wtqf+Lu zxreBXx$)wL%uC&FZLd=^r+H)@vG&k9aXCH6BJJB%w?k`ZFfac+f4}%WBE*pJQUU%Lcw&~*UM|I6^E?viN%`A6v*WvVA zVYla$r7y2A+b@~TGBHx4)5GwNLYC!4c@Ga>%{z*|XI66`eVwIN>toXu!y2iPnSW`W z>p>xZulg@1;%aLbl?ir)d3VfO=Olb({XXBL6Lucq+ma<2n|DCC=JG`G&mvPPvCn>6 zNB5rJF3xY}owUX=QC&1saFx_-SLF$5nMXGmxHH8(@D-M-x@B+D#OAtagRj3Ynxe|9 zEuV5*;h~yUX_(W)7tQv<-)4J4V=C-QU=Ph;B*Xhc9h>r|T z3)hYkWk2rG_0c%;{TJrO;5lnldp|CD^=5NQ(A=^93%`|ndad$1kSxtA5d8UdrOpK- zulael<719z8CJ9#8@tc3oJZ}LvUjDSl1dM9xzK59W+C3#bnr=BhOB~y<}=wYxvy7@ z4mtF2s$J$feP^fE_S%$tjdq7Ry{dN{cCbD+KDTG7oJ!ms@h0!Ei3`(C*r`PeU5pV* z?(WZZ9Q4#M*vLKLae~WrV2SnX-G+}6G?lamI-uePOibc>J*Wn`Uw zwGWxDWqI;t_Z-8(QjcjNQX3m5Pgk5@RQa(+W}m;nK^5O%k=z`4+e5Q8zK&kIA59DN z-0PQp_C{jUR)zQT7JOa4dWS&Ac8M14-M99>3iEm!vuTR*k*3q#vUGS#$SL9G{=QXF%R4`N!O~I@^Ve*=9c7JVW__h-2+m9r zeHKJ;`IWane0sMvt1Xhv!dAPMLvq}QyZxe_E^qc1C0fb7J$vuHC9Awgn&SBJxgSPf z3yPVkYIUOFLtgBqj>=QxPiViZx^dw{ci3F31@i}%$$E*84hR(NAD_(8(h@e=hs#k~ zaNhDH&L=mf9#~W1cDwV;%;mnzT30=m4hT<=U(|h>#c;`lBjiN(mSaoG&r6-o*5f=} z`PwVRGUK{xSm2@MT1)f}>q=x5XY46E*>`}uCEfIT=<}$O3rmB#lCxSho@ z&4U)s$G#lBUEs{LMx}F|f{odso{L`s$DH!N+*9{Hyk5sVd*9%))oQ1gcRNU*ixn(u zejGQ~VRS-ux%8}Wb{vx8$6ERJP0YOUdE65XSKmGRZcLq_?688Cvv=D%qn^_P?p?Cg zQXQk89h#st_P`@wE4$TeR=O{rY{eH=JLyq?_8H%6x(_^Ck7stQ-4K0*dHOet-i9-) znAbLI>fRnVR-jm!)-&nSniW%pSK+%0|n{IO3zmL30=>a^_O=L>U{G#1-;vrvReCi4RY_D}&OU4Fg zGSMXR!=;-pthC>v`-FYq*$FDDsKc1k^|`B)>oSv&+iKPM#kBG4UagO~T(7yU@!)SjpKH&wvcXOmSvuLKyU)yNA?)5;8*5^^dA2i={dvRs4j9wcwEzySN zBceX}_To_enTs9@RWzA6FMQ}FHm%z#L+Ig{Lps`QLLbU)JhcQH?<|;oGL_#_V#gyv z`Q|gqrgbZ3g!m{fS!Jnri~CC3Iu(;( z`}A#((zRt@9ST=!$)^suWR7R|KW*FhXnT#+a~HeJa3R0xWdcD9%d=i3`s`vJ*tb-+ zve2ShX36#$!SeU{H&&dyyv~ZlKWSk1`cYar(HozY=5jI(6gyWoNX^<1v7RqobgRXw zZ4Z=6Zxx&_+a6j!n^sfvz`KUE@8Hyu-Xh+P7lLVWPkg_8%DTsGR_@JimiSe_r>xuK zKpM;C(Q5YMOAcMRa&z|wC3yW`HCKJ7{oa7(@sc~(`9u9%*!4zrW#|W2)Su*V#SEZb)bEp+;D&Bq7qK4X@_y%@terRdRP<`PgG6*#}b2 zW!(4KI%(~j$?k!Y&ucrQHm=_Pwqe-?qcPu>JPLYxId}bA!TBPx>T0vnz29Ul8~5Bo zdZy*0l)QB>cL){koWB3qft&Vhd#{NJf4CPcej;8!sm3_g_?Y31*y5&hTHf7R7iJ$j zSQ*KAsPwE@M4Yjk3CmX@dr=|BX8X27LJye~{MEnQ+Sss@Nyut<%cR9=l?Q3NO1eEq zNA`(KdAQ~i{~eE2tj`D1JT~Z`JCz*3YmvwHAcOljH?#ALz>WJ7KG(8sY+|lKqj!xz zChW&E7_fS3$Ea-!R4(r{kdx_{5dB7H4Ch$2xNV1*_Rf>$`w%p(9c`4^uj=Jgr8(=W z{---fbmUzu)^%1TCo)&t-HnY>$IVr8#&fAuT&DGicdJ#)RI+d~vqoR@og+2WnVuHLknS4X`x9mjrHq$n}((Z2#^xHXc zb3?%Mw1O*Nwy1eocZ}LUTQtRZ-Qri-_qg|(-;{1HIngzR#$zw(vB_f zlEuFbK3F8BJ26U;m!;q9-8}pJ0nXk0yPB`JY9@=mm)|PCZv3;WSrLNIm!57$f@KyF zt4+Nkcs0iePrMeoO{*fUF~>LZvg?vjV)tb(tPpSRS^C7{5#N+G-Zm9{D^uC>^LCuF z?O&aA(W|K6)%Mz%=8bmgcjVb;tqe&FnJw+$D^SZ;cOHVupil-JEp++V$)=}NfwqmPP(VB#5n4iBd-@q6`!xVL_au%6&wQsqM!$yP@nozfW|!$P5Fe;7%D? zn>p=uSM7b(Xozxy=7Sp z$L0&|`Mo^G3FhhF0u&eDROva_ey(`eIr%Lq%a#c1E}VNLH@4GEX+p^u(G@4|_|>}H z{A^^(nw08$boS2938%fLzj|W2dBy>s0*yFm6UV&=Gub9&M7K!fCUA1mvWU1+i%|4fC3*EX!AGoEA zS#iC{&19`YjH;7-o{DSJSgX%k<*jSC@V&ljr5e0F#3=dL%&7A-Y_mS^rR6rd@o~iM z*(v_@h|u8txhu^zW7y1Ytnz)dN|n-bq(JtGqA$*~!SIXRXoIDNTp_t}CxwW45m?d%^7+r`zhsjyb=0QAfnO z$Q?zrITAhAbKkvJvfnMxy7%oKm%FOnCDXX8EN?s5zBu<>@_^>t+bh)~62yCas}d&; z%2>VP6_|K;?d2}6Olz^}8s~)E1pNzGN8e0X5lNlZ@HdhaqN%R&4)K^^cPEmAqoM6! z+#~<>y^HUhl&R}%5)WXP%!pUees-aS&at?B9uHBY4H!}Qui+YHW z(8(7mHiqiXx`~E^Z}&QvE#<5W$dS6C&Kn&gI=(hzQMuvl!-70_O#82j(PlRtk>KZ; zT~*Gq-+a8TwNCt0-xH3@y-hUl+^;ry^1J{_Bi>UXfINPLOlnNCN-5%w5LzVAj)Cb?isTWN0 z11F7gWbsYxHR`1l6{D`MY7uE170vQ>S7~MV8oe0}_tu%}xm_!L%B`fgJH_&1k{avn z*3Ju>TKd{)w|)AI_E^m6r)}1{V><6pY|TxNSQ|FQatqV&WS5nX7P<=V*JQ4&*l}1T zc2C`C``$-;SHjVi_5)6AJ&lGtdBuE=k4)* zBr?D~XZO~)hMBh6_wPN@J4xNmn04mzwuc50*U<+%Q~CQ{xe3X!%5h^8E8OQXDqr%{Up?`++W4XOWyAGJ%a3Ha zYYH0gFJJ!AMxZ{vB)?+J@eA|PlZxF`YL%O%zpQ#{WZ&~R?cBlXRWz}^4kG1cmA&m= z_C*mBpT3uu`uy(U>6JF_j|&dZP}{(p?CM=>QCB?}1*8HuyGIar(5dPxBSfP|?X6U$2PV zvN~i2sU1#DZh@k9ITR(Et-83*Vqops?FRdIv!ERgxvbj_asv_4#F%OU3kzaK8ap(% zJG`@TxgzQTwhEL)&9TXRB~dfv5-SSA$W4*eNlDZ)g9&inv<=KoxfO4nUaWW8Bx(#K zQ$@WBunkaOW^oABL*KJuoqKSJb;X zF5*CF@g`AovoS8vy?y~gtPa`C4ZSXbqF2CxECnW1C@4-fELTK*p~*>IbdzlP(!HXa zc+c5zVQ*P-S~wNga1}UwWj)j4;wl;jQrIT1gC6i*%tg&-nu{8PeH|BdQOlfqR&Y^? zsmtDmZW*~rDV`J@vL^-dIeMZhoI^&zCTOYXyJ(=CRvzB;N4)Vliwk%iUcwk494Z-z z6CsI0=S`w|IsI%|cw}y@%)DvpqGtL|$_RALXX2Rjxae>*)A4BPKdIkdlx0b;`nDm{_V_EYV z9djjMv=RkQg>I%y`Z=v^`Vu*GA$=#hHS;m{Gzz=wz5_DVacYRNJwEIzQx$QO_?8D* z|Cw)_|KixBk&e-QQbrxu|L%^y(`M9h5%O#9)CE%j2hI_uw<9aJB91Z(%o=ms(J+~G zfP>m5g9Eso%a+^07}#yxxB)QsHUt>N8HNipM@J&ZsdQ+>5A46d;E=wP2Eqw-Gq=D~ zUE$<}p{dgi`5c-xId3@e#4#3Ca4LjpqwjLn4l>1?-p(8U5W>C9DSv3*w1UV^2sd=5 z4$}sFSAZ0%0%@u5bQbHtOxWvWEUFH1*eRQh{blF9o^79_2YtD*u7YNrHgm|3(^H88 ziToi)L0v&#;sK<9?yM)aLwwx)!^h_DK7Pz;2Or&h=|1N0#+NRB&g<|Nf|QA8x6?C; zhY&S6I^GK2LJsI%IN4(j@K6UxrJQ;;7C3+Hzv5oqq*O?cwQS#`LhliRQ4eZPT@2@w znU2IJQMnu&Q8_kfwV{nXm{icNKqi(479^d9uzv4! zXgLnhqsEbOGi{2>SOD*7=17wWD;VX+%=^3^RJW9}oJ0S;*NE9v# z$n6}v4m3meoOCm8QdolX@5A8!uMGnR;ne!KVYn&7J!S&TIMK~8-9#;%+*Gr%ljB5r z-Dl&plsY{t>vw2oa#Nuko-#Xp9StECww(eRmKDuRcGg*Yl5l2hQ7>LRE4Q`DJ%d?IV9oe@RVtTMIp>U%baFbu*#+cL4nu^!%0ZD3-}bA zVtR0(dse1w=uVL7;mE$)LFli2fz=-?h>t_J+{vIkd^U8E%LIMBAlNZo;;*R&bwT<) zM_qKvDz0&&Fx!M-DKG^u&4hW+o4^IvMNV`rOoP4VyMQ?gyfb&mVO|X9@kwo1um$5G zv`fM%4GSntxXFn-v#+J!9hns=SZu5}=Y@+ZebofIrVSnZphhQw$$R#0FGYPH=6HO! zqesD9qJx8ubO^7J9A2$u!N7 zZKrpti;FD=oZiV6X*u=Xc7l*QbF7nUUB+~>&u%4~#YYzoXKhwE1vzuF`7Y#1^xJi` zGIcp|I25osRyVwG%R;Iw$c2L|+kBaeHmlpYdFFfA5Ys1BhXPK@d(&PvbQR2TW}DYJ zec7S%F;0W>R)xb^z#QNN+U4=XnC?!IchG1H^Wq(GK&)0m7vQ!7j!Q zUpFlQ!g>(}1H^X*xU1U19s+d%#Qh3FzdQg}0UQO;0N`kV9smK*%TT|#SI~#5aFqqM zLg$S`40=00Fv@iSE$YjH{rRn&An;ZFSWqMk{&)6Pf!wzUkb^<|PR;=2A`@7U0R-W9 zavmTzE)D$SWcsZfzJRRCVnyPLzqeNpa>kI;$XUOagqyS-h|mk;e87`ER)Yoc0;h3^F)a1hc_R*T_dpJx3%`?tD=R7nISBi2wlr&5Bg#H5KoBf@A?;J{dwFJAXa>aZ0G=k zzBpQlWYJo*8a{GJ8E_000mH|6z*zuL0or8&u7>tCfGvj48faBUN=P0g@R_VWGp>-ZunFkzs#0{-V(6b_47kjl3 zdKQMN2wZuPSqRu-ILg6Cp6>BHpcSA$?6ESmtOg9X%m+zX=m&G;&NCr#h_5izRZy9R zuQGT(lY+08KZ+fqN7Bx22*43gsCFnjI~&B{ZisJ)unnXGI0A}q_t5ws77GoAvIDU( zP=KnQXP~Li3H58C*k(T@+G@nMMG ziE&(qX^l%3f2DVV1|wesH2y+skp962y=XJ=aVOdu7Py_>pEithsAER@2Oo@qi=V&C zYiLmY8rpOkxBa?|j3@f5=zo|z`W(Qa{$8>XVzI+h?!UQUo7rIddq=~_6vv^tj_0#5 zR5I5=_IvriHP?q@tNPcFeumso+SF%A=VzQuIvhfQr9Dh*d>-aQ8_p|*+lLFW`+Wez z$j~_l=jFcLe~Y1Q5f4{6vcJ~g>V_7Fm59hJlY6F@Ek>< zql{7bn4{LeSKJk)(vGVTtZLgc%l-SE9l`O5AQ=s=GLp|zPc~U+T)M1bOTZT8gKMyl@H3<;)9CU z_@k#PLFm!eAoOJGbyTJph)UOALk~0pP?6?!l(Q=U+ua8E3Ht(}10Xxu{ed*acXeF>;l zI~C>Yg`$%E;ppL!o2W!D5|!#kq8i;eRAvy3$`8k)iequ8>S#R5w}?WItZ$(zlX&z> zFA=>oNJ3>N6VUS$$*9^Q89lR2Lp3((sLl%hW4K;2YST?a4TsZE`~D2ncq9Y09=(g2 z&F-RB^DNY4m4#YQWuXp>Y}8_tjoMDMjif7P-jpn>Iy1H)xo)_ z=4Jt^4KGA>5k;srstCP|gc|!8y^bzMuWl8ihS108O)Ti#C`WJON>OJ_75WfYjk?0C zP*>D*)OD*GH7Ay%H)&<4DXkKl zqIWrUsJ-wN>dJnNKIGM-j^cXMliPqk6}?3rWew=Vix$*X-GX|{+faX12kNeFMIT>v zpx#&SQUA*i=+oOy)YH(3J~wuv-sUd!rLi0JwSPokJ9^O9kA43=_jPhT`TrR1l@^5} zGE_uGhCdjPg88%60_ZWY%B%Q+*dV%e`2rDx){9`D?6#FjI+h2lM=#1U!417j(h|N3qt|v}>T>t8)p|KsxmMvR0Z&rf;9ca_qlcqX*wkZ8GucCg9 z=xm@gj13G99Xfa@>}%jbx}q+9EwX+4=JiL*zrM6sEGLdXYpUuu$cV#7$Nt2L6XxdT z;a|f*(csWQT(BbO?Z5fy6a1<4B}Yi)h38sov@xGXr215cEZs5!9cCqzJ0o{S`I=W_w6&d6ddde<-y>6H#cWj zS7&FZ?|PtSee!JH-~$8QgRfc)bakK@UJ9WXX!Qj}Hz?4Xv#YP`aA#+o-}d?%8aA{T z>g($3>l=E;#zsTQAAA@R84`?(J7{ITPjGW~advTnl0KMs*0H7C3ZxI~TV0OBCAMHN ze@HPpG7@y|4?c8v$DO&kxPtT~ta+N>WNv^kpd^0mj*E_jz9J(%GY2a@ zJUpNy2V-MnyO@+L&`7DKRf1MxVthPSxfNGKtGpE*9RnJ-ng+8yBje&cJv?0OjqPKy za7h9C^nOx?HL^YqRwm${QW|MZv5}EY@1jBBlKrrJRy7Ueu?BRJ2yVsae58GBs%d;T zF!(M$Ix_ZscdVzor^h9SA^RX-JuIJu0{|uKdH2BJK=1p4xajC8EFTF9o*qdlbcYJx zJ;ZL|lAH(yLKdH#m7SeTk6CndWi@^9?j8@5=<-8{p|N9m+y@LCMvey&je`uay6hf{ zhC3M6qW6%JNFT;i@?zKlI(B)HSEI1 z;GuCghVcB#4nx>W(ILkFKQDH8d}O=;voQ^EpvMIsVE()DeCIRr8P@P#l@%KvF3=At zSDAE>H|u`-el>vQAPR))#|ryZ4g(Yf`&9oihA5E#FuFDo_MXg#PzdZ}Z!j4Eei(&- zOa$9e6orgXEINXM>3dgW6astJFsMOlN5fu~!yJXfzBG!@ z6x|wYhN59l8bAI7iW9U%NwDWk;kQB=0`>u^3+RE!1(ZL_ z85IdTqiks>lqcni9?!Xia^|_BhqCS{Pwo;bo8yH_rM=L@g&wF_9`>D!J<-Dzmr>!; zE2wB0>?K#izEjp4mCE~~Dmgz?xik>fEDJ{Iu>VX`aYOf%JWz((Wt6$g7iDU}9@O9( z%2ftC8+_2?RlcZL(GNXR2B-{s(RG37iAn&}K=gF;HB`Dbh`t{!+k728QVl}I>eo@; zo*-1cIt0B?3PCT|grTyH!KhLt7?p1ZdIRiDH$|eS8aGgxS_mpv4@H$wtJGkRsveF? zcLBaD998a%K+iNIQJs1edcG$TJ>M6FUhIlOb-SWbwN^B$-5rZw?u$dOwGvR{)>zc6 zo`_mClTbb0!|qH*#kx09r4GpI#K7M57J3Q$*K&gxRBI5A3TL#Gquy3s~ zOh9!|i%%z@SLU!^wM;{=ZSJ5qx{0X%U=nK3NkNSVVDEYm;K4N1s-K4HVXynf5NJba zKaz$Tjnh%9LHf|X*6=o}H-Yx!8K~*_ZPaLS2ll!5P_y|x)OrH;y4IPf)$%@SK9h}F zZE{eNJ@kD(36(mepmLWCRPLIAo?XsF6~0;Mg?Bc3=?#0`vpJ~o;sewU``u>ueAw^i z)Azd_Ua-dvEJ2;u%TU+#a#R;ufLWrvFol#Y&JFE(|r9VR-GwM+D z!y439_!7N;@&_O^DTfsS6( z|Go!(>->LZuWHE0_VdCzS_!UD5==vdg$`Jl0RYOv!-eSy$Pc&EdEXICGQa43#0-dv z2oNkxEJKA3hY9ZPd4P=)_!XbIUJm$U#t~D2n)Pn&)G6b~@o{i)JTK(rO*PxLcASLW!$!NCQ2L?*0|Px^Rqq(-c<$WUGZsz* zPDULUw{6?D>B`;Px9@y?lA4?p7Z($B^iE<7;_N&i(tDnRo6!`<$MX9DghQTeerC z*Cm%z`+Q3tl$3m}$jyOr|6W#BXX}%@cgsIF#zlAKUiP^J{3j29Uy_3*vhHW)y#7j~ zeSMi4pZMuXP_&O#MhO_GD=R6NvhF-Gn=H9=X4*pi$1yAgrJ$Ue>gkC@(8;n3F zbZ1kNl40ff0F^v|0ydtMria(n_TDPjGY zT0!o>|9f!ccLLe}!{0$%2_E?!#L!x06~p=juZ>7?N4t?H+5>ejx{9=rKUDmz-4C9% z2ciS$I;>;x`sEs|QG!_w;CucfC|2MYihyV3kz-6z0tYIHA}Cd>J@?L+45jiy(9$iVDxfn zIC{P+6unp#g6dYoA06HV_tUKrs0Nd7ynrB&kjW-^ z>EQspSaAxWl1s4I3rGA^3cTN)h194*beyU{o>U!5q?%9})y1F>-&Cu@n;IrFKp)-~ zOjrc^t3ZDP=L^n*Y@3G|CV|Mho$W*PYYTNNR86L{Cd10n7Ngm_928q*R8NL{-Zo>ZKZ@8jmBY-4jt=iHPbg`|iKY zIM9dCnal(I6`;Qv^ubn_A?TmtN0hTHqJq>A6@MI2Ii6rM5m8NLKlEW;t_tgD6L!#t zcOVkrrIr$Sk);dLLJ12XYK1JK_NpPu>Nui&JQ04|-J)-z`BTCi;QEC?ubvzJJo=J#GEJReS6zB}l{ zoa0Xh{VdQg0Db7wvkvr|K>x@5kwP+PBUms53m3t{O|Xy$7GTwZy7(#dQIuE)WaCxz}OQmCfvhd#Lu{1n2y zb@;={!p@FZF*Ve{%*@0=C+PwloNSWgIXJm^B%#m`qqrnTagXMeHK1n`4 zfpL-o+xv`f{xYWQKgRRXaju8Rc0vIzF*abihDd0I9{HOkJ#K117fcxy}LJqq_4_R$jR4xsf)|Js9Kt)%=n=Ai$ zsYJHyIPZ^;{q_Q62mh1P=J|beqBR|vb|#?X-M5f&&n;vG6~jOEe@}Vs`}haQ@>M)K_9+w@ z(1OuH>Kf96H_r}G@Gjn;`oA25Ajrja$jJ?)Pu)a^za^rh@3WatRhEf(_?Ap@TSVFZ zd)ESZ3yY})*$PA6U13gD#37UZFl0c_voF%2t{@%S)#2&`G{G@sqzR58sYK>iG-)UB zpUN}J5u8A53*(G5u}>i3jg(_-C$a?oN|x|PLSl=w|5KW=AA&RLl6+vh@O~`)+zdyC z@K&g4cOg2HS25kwu<=6C*ne^rD289MC`RWLijiGVCbH~`Mn;rB+7CI`{+@Ghq)QvB zIyCt03ku%L1$wA5(geqlR4hmEpYa)aKjV+oC-RK#1jjLA=OL?+Z-rV}-#bFbJ|Z;lfA-5jt* zw#<)_z5F9&8+Q+#?8kEm&nMys#)%)KZ`?+33<-_p2#z7CMCMmCX(#ZX$}`H5z6r#( zFrQI|*e8(iM#>Qz1QPk5*(5d?Wf<|1{C`E0J~1S+7?MhCGs+Raa2w8>51gwv;o6;n z%-SCy>kDPl{!@N22jH52R5ox|%v;jNDD$g+7=6bw#0G(kdLw0jXP@}+SAAW`>)-E|<@CZ(5Vw>7UskG6as4VQe4S59TrQ2~HrfMc~iciOrFaQI_04y_s}r z0lbE^Kz<{dAI~A0FULW8^=94=dHZqC9n#hP9$Q9R1ZRX8Cp7L0<2T`YewXRwv(m|K zS~PfuL*@Vl*ZoK6?EXx2@>MuGJbcd_T1(*T2_6TY4~#gOXXJV_lEylOhasuN&aY_F zPT)V4XOts-6Nqgw`bTUtLZUxXj@Te@qz=&|eK7Jz;(wKebDT++x<1aBdSDPj6`hQs z?(OiQ;Qt0wsmiWY?7TBn;KU=ez%d4t59+Wn`tM%pAavG+5`*e|{&2l5@JWgiZvb=I`dKDT$% zy5GE`b-iw!c52ml2K}2l4L)+y~N- zMO*PWr!$?=FL@~x%>w&8~C2a)9G-)F^BaP+AJY+l%hzw~P zNt1R0NAgF~Ka(SU6NqK7-mi2CpFl=AVuL`^-_K+j^%&&{&dB#c+Ennwqg1I=8U?>6 zHuAq`(&=yCzR~*LeWF?)zog|H3Z{a`8q@dDq;F!E_(mY%Gxmqu@SMOf5*Z9WW_Ktp zo9!k26rCRrd&DSw?honxxb9;bS8SKqA~>c=8^IZA;tOdbw*D1OJ8AhCukFUo;qYS9~+JRJWTQ^0)pDm%$@BvbfD-@i6 zIvn^$dtcc|Wo+@Je3*vThWK7UY!lxI{F!e=7OyGrv!XlbWJe*gH7-VHH{~Gff(Td} zcma>mN1}u6l6Hb)nzRv|ktV*7He%~v(L|2Ge=5%?NBSlZ+roTC8DgJ6!W$_^Y!FD~ ze`b@|V3c9R8Ts`5G4H2tPBWtl%%i9hxDJ#!rc&h|cc>R3c@+GvA@#BGJ&iU z0!Own(geqlRAT2>G-)UBpUN}J5gd<)(GF=RZH$ocFeEtU6B`7M)M1om#2MuX&dA5} z0@L_9aD`bLsutzRtVQ!>+fUt?c#KM1et~*?Hh~7e;X%*;H@F6Lzig-OY5CDEGim?D zM`D-JN8Co*N&grQ$>3*0dIS0BOfx*|$x1*b?f5x9Szj{FS>h+wWyFb1+(vLBgCXvl z@GvBm$oz^X?F9Z)c}6+XH-Xp|<}=C=`vel+NI7DIKqCJ$o5TjA3?n|0|1+AN1GvUt zg*kD3+HqQQPBrzl?+Xpz6TW>Jpo%PGC@&^0daj6V;v0cK^Nq-2h}WJ0NRI|88FD?f5Ybg*60PH;?m$PxHY=Q_M zBjtz<0*U<3Y!VxcGK~00{_kkKJ`8~ULD8vLs;A|{(24+#CC+K|x$$4U{$qb|{_*#B zaQ;)U_V12H#$WMu=+F88_jy9{PTRqb-8}jL*m;e8x7?$H+Fuc7p%ven|KuZIJ#L`NRf+M20{{Sw@`EHo-^o ze@D~LM|c*PqU1v1X90LGfcFPA;RUp?87FA)TYiwIq3boVLwv+Esibd4h|hogoiWZo ztp6zZO+WhDpUfLFPY5LTF->q{kLZk~u^izMJO6}cl>K+)asNb@^i3eK!ze>!2_!tm zabO;?K_HRGaHK4;!6?IskL3T3rso#&kDmqN{NsHfE_D%wRJe%6f7|&_@{iAdGA2f! zF^iol=cicy#F31sY(*dUNm56dyiGUAMK1Ru%&9sNI* zf7t)ge%$|moa@*(Qt{Yv#WcRh5Sp|N(L>)C;QJPSj)dz~xTY}TgvOB6f5IoSKhq~| zq(4G4LVRt*eh>LRqQ_!rJwf&XKj2WFhiFFpXYv6Y2dSGg zEU0ivD_WGa4HYS6O+_)(e?>FOV*H=VGs=ZaS<|pC9ZFkMVIt-f_6t96jhJmoVZVOW z54Q75TMXkMzA?%&;v?-7dB%3S{BVqd#~-2mSjjV(;n@F+`#*_4$;nXuf8>quM?yTe z$oe1O|6%|4{d)y+tzv}u`(t8*^hM?pnXhy{e4iOBYfIs07WmmE{0=SkxwVU4F-~ZL z6B^5qHb$KA3GZh#X=Bv;)YM7uo4|(ja_ZIsJ1TjNGu835p6YG?_`N@3o9JUmaLgk% z2qgUx$SBK*6T6J?bIXr$5`7GN8at_C`$Q^q@^Q!mS%*O$|3Ut7{D<;01b^h?ulFX> zjv-_ItI$O%gUN!5U^+~%H<=76Ttk@*s1PQ73jU@Q+z0m4uS@=PU0phk?J!n6AA)!c zsLZ|oRDb8tGs~eB>;L@m`}Zcp-=BPZ-9hCY38R01f}f%OJ7uJ;e@FM9%F^K3ep}H? zDt^g%$mLM}>9NK6UkmI1I)?RsWDx~_dyD?=0Es_-#|z^GlJ;Lge6Eu7zXpEE^FH$_ zDuMMll?W9>T;o|ys5q#%SdURrEJtZkEJvtF79%Q@jY9 z{@wnT{|LxGjyaL@W!g`}IDw@7SI`f?cfxd#zW>Mh&t|ozk~qw$WOnlrb*L?Y-HevV zZbl`rn^L#fkJIAVO{f^QV^lO7%n3GQDxB4by1{&iy2*Q#%H1FQJ^y&D-LKlIrp#wl zLs~iYHobzv*J2Dw#dO18=pVda$rD`yu|A{S`qWYy=E2_!qtz!or5?dE)SFYysMxt@ zs1MaGIP3I+=jppAZ|J@e{ULvT_*kDZWQ)KdpN4!KDNAe+zed85d^(*`Nj0RFQxEim zsZc=^dQJnF4-7%hL$tJY?tjaF*DhlKmVcUpUs9! z<}#;JI4!={WKNh1!!?1^oR&0<$8!M=vX~|{fdl3RTqoiMPEd~y-lV=Vod2()9#i*J zuTsg&E>g)W9KY9;6;4#jN+&8ADu(}QWwZl-GmwVuC9S$hOOQWD-4rsVpD#BinNaPI zUk_)WqI%wTQt-R~RMOHR-+tx;v6Z;;0^KH~3}c^+?Z3iD$`d+yxg!mv^h&dybf<7WG8oAYMbIuFlPyPtb|m}_ra(6E~nEZr<84zK=ki?C$=nN2H#YS0rJYqc#{cX1-xvPBZ?JItyz{O7 zXJ7Dx;&H~Z%yT);RRHt33hYSk43G(xTbCs1AqT?n~pm`dvG%lyw8uZI6~rbesqyGKgk zC4D5|vOcox(q3xm#ocAe#Xrizi#m(fg`L#=3p>FgpSS?H5Z8n8 z>^uk8pKDqB_OdRv|E=+VBrTG+G(j!9Z?Kw;HgDCJbskd(&iZgazuCrXU35Wb-Tw0s z|KlznDPh+Rk??DVNEkpHel^Nh57r2|daw#bnFvOC_0`}7$|2y)YJfHv`Vn@^a7pgs zSEv2wPg^e${~8V5K)krJzpQc~@CwA_%X@AQ{mSQlL%n-bwgFybwfp?;ZO+&Fn6%5zGjd_ z-ab-NyZOtB{YS0*AML+jdaOh}Fjj)E8Ym&xf+sdu4#6>)e^^#&3=qt5EPhw^7R-e# zOD+W;F6kl*09vaIemIuRcCK@-_qwEu;xcXRvDgRP!n{?oWq_X?EZODC1CH)IC}~q7 zW$7(_Wj^YC0eEPRGv_eY{WG1P>nxk&oz{K(xt15ej|;BsrlQ`TR>%K^%eRVu<6+wO z{GL3A^Ln}Lg!|`n8|I`IZ|LvF1|w9C$Ioix)$spKBP8lZPl>p3go~_Vw!PhDh*r zLsZCh&<-1`8V**$4Z(|s&=%OBh682gwF6}3HT@;v>VC59s@{rxSZwoQzQd=^YjdtQ zWn;M?%LMCe*=_v=b2bT|t>Yj2Vf*piHTy1$uj{4eAtsq~n{yaz);rH>)}3h|v(4=P zPnXHng;#Y~ksrYS1vR=pssH)QHY>jehbga%JD>AA^1Gbv`;af*7k9P%-{5Dpq2Xv1 zb=xRebL%LHxYbjwxpkyO5w}#LXil^yU$2HTV(vuTd(k zmz)3ph*eP!k5{4BLnm%TKjX$>YBlWYMng4%8VyxJjlhXULqy{SSR27N43@y_2dS0U z4U~X}{l)*YO4_R~>@&~l#g_r&)^Dp~R5nM-@vax2JUdH~+IigUn)f@9% z{y%x*q}r2FA+g_kDRO{1u;}uxXFXS)bGm)5`5x}p`F+gs&V8KQHBYYYuA)Ay^*?!< z?+gDo8LoY6jy1}RYOw)tGzP5VE;!9+>8e!Q%`Ym7wSF-F$f(B<1l3+8aA zuB$b-gC8hI-0rElLcSP8-ZoMqZ}t?-w)ijXW$<+IH9ghZkEZMPuZfC(MSj~P@F7pFhvqZ?_IlmE6M4PtvL4$1 zxeb0%n{WI{V*WKwV(uO%YwsSTXk+dgC((C})mU@aXhmRtMTxp|lp@yNIYyV)+&Nm- z+%Xz@F-l?{oFEzfR@M3+^;s}8POW=#l0-l|$dicM5MykF!-n2ELWSQ7PS^;8Wgba{ zI-z+2emHFKjYDMR4FhGxb^T@8wSCmGt9yyhl|5zg72Tl`-DQz&S+0XCyUXH>eiZ*Z z2g&xKEA_nqju~nWfCqdYKYdD+1U)(mc|cd?eOWixIi2S*pW|G2uCn|7?#p$K1*g3m z_EOOw{~;K&wgZ(&v0tLBdU&MfyxHHJ$5{9EX4%+9S9Vvvm-mGKJyk)2NwVdZpJm+x z6J-5;Kgl|PcKv-5WZk`3z8BhX?^qQB%jGpFN0Tc6t;RiLwSKIBu>JI3~UEqlWn7310!1hQW;tp`cM)>WXQU~Bm*lpm)?EozhYGd`S!zJj( z!4h!809n?sukyXNH^w8;*MvU!T-5`h?Wy&G>$Gkl1_s_gTrws{$>H+7&;h%Zfdj|) z9G3j~@e=yd1m$~uALvSV<#T0^I>)=8)BXJBbBuN0ey(L7#5kYp`ly&sX4Lv0U$59d zQGy;BCERY#yX2~#`Z|r}diU>U_NDbkefVA3%jN&Aw@sAThbKzhgRl?&QWuSJf1vSr zwXQMv(fDVHegI`~g@}0o{J0c-f1GqQDdok1j{+&8z|sWG6x5% zmjXOQnY5;Qxt5vrSQ!5$`RKC~sQ;ZW!9q_rPxAK8b_}xBO zZTw-O+MQaaP98s@^KEL_i6h6<-t0=X-E*Z1d=Ssd=>5?rfpwnezg=dYyR1=v75&*C zivH(!ArSvn(Bq@@cV2o;-D~-$-@)hF-fH>PeHHyr{ZG7Wifnvxs>DA&RW?43GVz#& z4Y09~PE;Enoh-!qM}JXqk4}=fM`{uK$V6G+1mg(L{3->6=LlJh&{+D4c6R0PS)H9-MEj|Do5RmoJ0c}0vq|S zF%tf-k?4zzkucbZdyumN;dhVH8WD2aFu^?2vf_G-H8kvN0sV^Q*I<0|*1-~swq6sP zCx4wdWoZEO0^~8ccdyv?*1SH|b&TtHbDsaEy|#}mzj1(y{d`uP_Fo#1B%x1?)8E&8 zzAxe(%Zz(w-MQ>?Xky?s{Ujd#&qMp)_OHom!?VAtjZLT4;;AWWBd~#Z65DOW!D>7) zNyXWSg(XKezVMsM_6)1j{!8X>R`IV-S25I)N1-RgBR{K{N1!DS1GbHR2s-kx4V2eD z1Wh5D0MM5;O~zSx5Y|RiRIn)A8azxzJie?`Lqy8Rb6m@LWn|0bBX zTsA*P{4NR4)&<(N+VsqCvgw&=vf=5eYSYudNxa6d65rGU^&{bxKO}Edq?|lx#eepz z$`@~w&2P<;xW}O%PfU@xCnj6KGS@L@(0B|MSpO)r#DR5>;{G)9N{xqMftZJ(AH+ij z(2ge1j3%@bBnn(v``}L!`QTV>*ESw6Yc!x4uJU+^x__)h+&fyraDO7?j^VQEmLU>w zJ^Gf{^^=IFCrIk>V4=Tx9pr!(1pGTxyj$}AjFp(?zw5pS`yb3Z0~-Ao0exC=>tMCv z%Q(6FaVBb|3Q(^n3|5FWq@PUyibALL4pw@0-%pUcMg+H?H8)b&!7P&u9Ff zs8X9um#we;DcfHDQ#QZ+huZq`OxgO9g)J}5kc5|}E9iqFKQ_JiyV7_879d~ZpP!~S zB7SUsW2Pz?yGD-hhi=+&vux2;we8)xS|`Yt4bMzf@z4_L$Hu3BmAI!7XTS@C4NV>V z09Rt4oP^k8a|Cw%6BCu@h~b83BV>o8&NxbDqqk~cd}9n9ZZw|{_ZJXo|#WsC`vnAd)lz?%lE zmDl5b#!Z9I2yS<7JJ<5c8wbhC+lQ(6mhgYkPFkiqJ8}Xo;;S)Dm)oT%nCd zPQr5Z!xMzL1N)YtjWM=8XqD_rD3X(hj%g_{dBMrU=qIjBk+{!iGp~@KMuR2jW{g*& z59-9qTZZa>sabcf<)E8}K!1j-gjVzG`ad8^MLzqpT6xnD*SUC}AbgfNpDCMV^Lbp) z^2%F>Vhnz$_CNJM{jonK>0K{LdTXw12M?0ooa@5&H|EIJH)g5CH)e}2zYc!9K3lfE zK1;S~o}dh#Yy~&Azc){cevXk-2aj9v5^=L?S+XR3vOuUK)RiqSBhC<5CN{r>c=KW{ z5)g056Iya))ANWsw3;J~KaQ9Ku51KHEFcfDH6`}x$(kdvO_8_SdZObDcw%V@VvHSc z7pLEW6WEB(K!YCAMqc|l5)Q!JwC*-0`vD5ew%$Dt6GwK_)A3N zv9kI$JX3QE#w%eBLL6ni{T$0YHUv59=GF^@8e=}EVpXa{KR+4g#+W$9ym+3V+lDKr z<>wff&vt$u`#>Cf-vs^7KX0N+dt# zl>Iq1>g18*u5sg&$4{zbxR+cwYlEzNajJx3oKlZZVjMFR<5D4aU~B@`;GD}C*IbS9 zjV)g<)c)7;l=*aEvReDXBoz#w>+|!x81K^OHx{46bGx74d~PttM8a` zs%`((eyNh$!ds{riEkptylGqL2{mOKK`k)=N0^If7@mMTnjhqd%@cBkI%0TI%Ms)w zHb>$aYoH^BC)5%Rhn6tjSg6$zaztwi@)K$a`LVt!@(^+b@r8WY_`)vy%kfHv`qg;G3yqa3R_=o&YsR{w?PiuNQFOB(KnavVDX&&EVx464qUw%c-@ZMZkW z+#~UuC3XB?1-`|;GEE|Q@5CM-=NKr<#+vo+pXXYS+;$D_wHW{BJU34=S}c`}&%A5# zDat_lr%NQ|(}gPilO>W4exQvj%@e~Fa)baM(p&gQ*{>Vx`ad9DGQM6WDb43g3V8z1 zra()a8sZ*v$PdF2D=%Sg0=|G7T>W5Q9bY5b|80IACk1Cy;P)BTTFkjW$VXU2x z82xbOBCdQD9ASJhIjbudAs5hh+4|OO$sZjh`;#j~ovh6XIBs|#qe?Od1q=J9k?`3X z+$(e4_rMsXDbq$dmZNaLgkxLVzw@r+f9lPKX1_}m{B6#~@o^q+EYD-$JijSpEM9p3 zmi{kB`_Fx0zGSvuCYfI@1$=Ca@)sxrX8J~j>Kr?*Ol?l0b;Q;X>Im}?qan;k7-zP; zfn3$*h%;xUc4#nfb;TG5cADk=F^qF2we{h6lPmwL4#|*>uT9syF~{(p3CqTs^=Gpj zJCDA5toDE5d6QJ`%L^py+vVDS>8*TJR;y*A(Gr|!xm40xE>USMmZ(f<1Z~=vOH>AU zVr&LDLM~*s@s*0{n_T|qeYBduG?mrP--;=pE|yf}8EKy&&VVneA1{)mkLN4q4O&B> zBPob8wOAm@cC1N$A9?{Ky$4R%I+Bbs`z_nwohRFxBR^#xf}C~hJG0gHcjn60w~?Qc z8;mpH2l7_S>Kw$*J?#8r^XoGebC9jC+qnmG5O5>mRg8x~JDfSH9xFqRN^T?|N3~)K za#f6vrnL5v>J@2nV($?{0UZ~P?>Z!zo}p^}6O%LtqH$jXPpN#<0Qdu|9P)0lY_pBT>@!dH(SJin3bB{CR zAC`7l{HT+E*t)R=V_MXXE#!woH(YVWjx9RAFs7jIn$pT!Di&^&V^s%`7g|l1I&dg& zr)2b9CF>u;7&e}09k#Hf#f6@N)nk|x?_A4ak8-L0A##iNh<0m<7EM&KVF0@&uGQVD? z$PL5^WnrnZc;PFw87-k3ZT(c`%*}kCsn!3(weMJ!p>lr+v|d12)rcFv)54{FCkNw#xTazf{*;6l>-^Hd6T1Dx0nP7uz%i;EY~4EAwd z{af^Lbu7`E0S!UEv5hgs5lhGkXoYg}f_-3)kr7Gndr8qxF>;)FA$-rjQ+USkKsxe) zUMsEVCK~^w_)Num+z%yUa4+4I*YkcU?vth3{+Vs{86@%w6%(3P;W6imo z%dYeCb8rto_TC9D{};TrMDl)EDS2%JpaXu2Ht#!Pg+|V|ek%LhAS z$ZF%Oa@$}XEIE<=y}zoOwM9-Gto8rSpiGt5d6i^CC$d}lN@lC2ik7-Tq_^}|S%@oH zEwD^$au9HXxkvgJh&wEQ?xXXMG?Rbm{M61rz>SnokfS1|5UDyxT_njL%~!fVgS><#y#_&Ra_H1cVol3te?Yq z3}Z7L{B-*_{)hgn&2Rsy););d?byey!*dxd8_P1!izIs$Aki& z;VlK7f~4U4l@{8=0{QI&CBI#u2Ots^CJ#*S@kVG+W;@G)dvn;=NKd zX02?09lG)2OxgT2#vUHSGdSRa2L1Kq6qV6wMIHa|49k{8+)tyQ^?r}y-WZ;}h<8|) z&j~!!v+2Rf+W$r8O;!c(c&q&GK`OuVN|oPfCG;BT6j+OnDBH;WApr3l04JQtY45M{ zeq5!h=4@3)|M~31uGQHpzh|(@{?1S3KsyM=7%sbjn8J9XV+!&Q<{*qIE_{u$Bk#yW zzEKB=Da=1I(09?6WgxwUw@Uxg1~`$9ehcFX!Mua9L<4$3&7fWosRZH);|TK&i1oA(%?Y%kJK1pqS4EH%4*znlt>zvzN z<;QVclZi^V|MRCxar0$T+%r^)yM$;I!D@64mLi~_^D0%;31y(5(<)VnSW(!~#t*Q> z_p79++iKY{KS};NQmg-a!}FxLcbF6)b}*(Cw6kF131f-|^dsNo9MB2Il)P`8fNmhh z{+5hp%EfAwQ;U1luF`rHQM zN0tNW;6)~4h_NhZd<^}7R%9TC5b1~?8Xv$KypOVtw0EH!Z_O9x#>@xJ-*NO0iUvnY z+I!gk_I!=x*U=Yw0b>zQ;l9_?c%G_rpd2o()&E`LIl8a2`7u0i@%V2Vn;xI4ST@$I zKdXHb$2~MvHbegl&!4P{-d(DSdWWi_ZXp)B!rCbOF<2G;7*vZcDBB<}TVeA7SA2dEet^uTf4DHZBe+7D>@gb}Y*2aqEr-9n|L>uMV)|A=zu5Gm~)F1r?` z)M@|wqY9*~f0Pve5G=*Eh7@&#mKZ=giii#t3XyMUKu@SCh3%m$Kp}L4C_t{EHH3Ns z6n+Ow?fAA9OkORHY zXu7IcPslkwgnshWxY5k6P{ zDg4f$e7}J2lF@vjWI!*7%=e%x&GneND(oL7N6PK@KjWa?5xF`y+4kh`vhAtq8e5*4 zrdT%CtUs%L`VZOm=rq}U(I{1V{;yK@zMu9{S+8&@?HMj*ZYb^n|AP-@J;F5?O1i`6 zHpmIh2XLUYPlW7RdxKa#05Sj~y6R_lh=EnEnhl3BA z6X1mvPi!ub4?rIDq5!<0ZWMqQ1UW#y?3kM2OW%m4U) za?cSd9k#}bNgpiM`(%B9*aQwxQ;LU1$K&TmaFnXYoxqSq?GgtQ?zBhBU~s(Y$)j!s>qLG zSfZpSEcCv#C-edQ(7Mn+TKd%Hc2F|_#+ITk z!OG+wg`I;GIidl6FyGL+q4ffN)E^LM3_onmK;J~i5~CN4Cxys07)LD4Kp9+Mtf`rk zi2B^`s?WnoRg(WT#=a0gs2L`Xa9ut$1N~K%4_+{iXik79IjvA8H;`u#h8NTd@`5^H zKwfBkj$K5&if@kw*(Kfmw3sC-p1G+M`wvhL6q#uq!5&=w<} zly(gj1I-h116olBovj!{&Csy*!stff58w%7Ob6ts;6oAgq5$~?t=0|14%*5IadHfO zFY|XKy+(75{Lrz)){BB~pc_EmH_(ta0n9s9f#w8w0X`79t-+12P`06Ugjxchk|7jFs&2OV>GYHvFFRDKrGou><)>*~n-)T50nYtlhV+Q1_3M zpZ`;mpS7_4*%^vu`qjD4tT*e7-TwRxmGlJeTU>1Ef5j&OQaLO}DhI5!&>z;oZ~~V6 zD0SmUMIUel94YS=DV2lP%ATco9>S6TABZlJ%Hc6mPJZ-^u+Rh6202j%PG}20lo@nI z8PL4=5&SR!FG{;$8GJA(VQewz7=pgZDpf)YPL%urzJL?O-~stjIVM()749+amt(oR zr5xY8s2$==TjUrvST6bwV;xgRY>4BGB`j+Aw^7kW?#Ez5=9^FH_0$o&ku(PEh@AG1!5RvmEZ)q#yAy6=_w z_CiT-HcwKXpDjtx%~UDR&yu9)XR1^zvuwa+1FqBCU%)<3Va&n!|I$vi^8QiE#f|=Jq!OIa01v8$#K>OX4EX<~Yy9tEOtDmrST7aeM+G#a z4zSL}339{13s)KZDDMW27+x4_^P}uX@PvGDfboRfDC!iXN;`ok9ibiI13@i1mbcsG z|Kp|mrDoD5D?e=yjyM5M6d;Baw}ovRpbRI-3vxok=7i=3I6+<%e(gYO@Pr((d6D<2 zuk7?na`S(V&WGvy{4bYV_=0)HGF3V-N{$rS{Xg7C*oXc!bDZ2yz>g1*SH6KU$(LrS zv=`<`@(X`z%knw#;v7kBif3gm9Z*uo^5!OU1x7irlCk z7-N;m3tKCyP}Y0^52}W(lYPrG>-hiBx)P}#84JHhNo8MXh}H{g27qST1ZIsK^Q0l6K&S)`?X@PMnbs-v&w%IHA!77I1PRAO7F1_22piY%BXh za&-*KhtCUILPLla$V1_Oe#Q>(6m@7zxg6Y3DwRKPkUZp@`Q*yyh%Mkj#@h>2#w!?) zesPvce*t68@UKDoi*w~Pyo7z8o~8X?cK&Zt^*P4v;iKvy&;YbyS`F}loTwNK|AQCR z;6%kBl)(uNn-k;)IZzD^Ig|fuM#X90SM@_&F?sOIS|7j(9X}W|pa%!nmx!`|-^XY7xXkS(9W0Gt%qS(WT+{(E1e_@R zex)*;C;=acV)Q@A2MwDK#ouAs02)zDov`_!dC&^^-|`H^f7}0v|9b#+zT9C+YApk?|6i z-GP15pT<3Hw14#fmG(b;R5NtFR1J+$HOBw8tsJseRSsUO$OT#_$O*)KRWSg(7_m<6 z^UK2f^^WWD3g&+YVv1DF=s2mOK7b1?gZ&Lx z+$ipd7{VOlhaltL?+d(1GLD2GOn3mC`J zR_lbxBghAEgS<2vtWNxeoS;U>F#4Z)ghm(mA2~!hZD-^X;03v$(Gk|>L)j1D1z=)^ zlM{9L01oUA!EeitpR%;)FO2^c?$t4_1U@hMc9jOTf_y0a2DvBJQ#Z&5q6j>2;VYDZ zf>wU2$kqwkLTEw$M;M=cW1-9Uh6CEZ3T`|%SGHU-TCx3Cw}AiQqn(~{wHSf2jcVw+ z<_7qI7_W>@)YS_39~!bhAg6Bok1Lg(6!l`$Icu z|ArIgeIis2kbpm||)LUZGLXasbiW&)lQ&#CQuoH}q^_6Oza&(prAP9S$M zDEux!m3)J-?^gb*=u3YoYJoNne-~3HY(8k6fIeuQ_zL^koFEShK7|&%y+pEKT_D-b z9C!`Sdp7V`9LlZRU=|F$brh?(W-JN;=-s{ zwLbv&xt;NUeX-L1r@!HU<`T8}g_TG*I0=2OM8ewyx9Qr_LT|hjjME-nWLy6MA6(Qm9xkrolDE7NcH9rs^ z+O1Tj$OByQ;=4fPBq35WeT&-dpQ-jDZ>)eHkVj%H0^Fcx0EJ&$`oK6r9#9`xE&v}2 zKSzGp9QPt#!!w@XK+dZRCG)lU%J|>a{>P*Jk3 z1bn+^PO_Y=#=RJF0J(}lkB?^Ul-;woTYV73fBN6>pu)~2sSAb&nhRa93>Y40Jz#8r zU(1jmpk2tps3QHlNV=YXe;qm@`$O~fKGcS?_ShF-S%dik_`uxYNP+eIC!ZtSAC`~t z4CJGT4+e#d4>k`U^qZ)X#sq1_ch#kKn~PsfD`B7fipf(3!FSSW4-_l;Aib$fqWId z(Ef*CXpiOXk-dvjr5e|y`x{#S!2|l;!GUs&C6r^E=7Nq1RxBuo_A@T9f4gJiCOI5m zu4AI>Gmsh|Nv_soZsZ5sKe@tO!Nr5N9Lo+;HItDq)*J*mt-nK?E1-2z!nk1a1)V1_ zU$A-Lj17hZMeIAg2M(b9pVR-)eplPKb-?9+EL&P&{2!}1p}By(kvZf6_xR8DPyf^J z^gnr``xh1uYIMKCO$&@RKnGlW&^dyYKkE2kb3x|@9GleRlU9CU`k00X+W+WB=)Q!V zJL>)f@<3|VVSGo9!}5O;73z|Irtf5QP+JYZ}vT447Z^!S6FC!Xei_(P9B z*!_n(@c?-tb06H3ReWw$w^2JDDCFt*-G(}vxf5gbIcoRJMA-qqR^dD8zJ}?K;=J_t zu0OWPKIA`a+w4UjSGhfGx_R8+rNmk#%nIk&;lhgv_3>i@_`ux2)&gTIF&0TaIQt4ZM?6d4QR@MC zP=o8)Ge1QRZ>f;K@D2;+g?b!|ZI|O&|IQ!x2FM-WZ`$jdsq;YQ3c7!2k0mfyba8+= zqtOI#ptv*qKXr4R_mn|G`o{I#&1lES;~-|4pCJtfw^^px2QLs5kZlc8-ge11sz5|H0T2#r9w8 zf3$n-YdFBZql*J}eqhA|lOI?)qN}gqhznW|;D2&}W6*{RmAcP}z9V$N^c#);t1yP3 z%XVKuk1atHbYFq-9h$ylLcHwtN!RiJSlK?^XFHSs&$NydVf&{>&{zBXGG!-x$n$ax zN%s-#+~M>wCF+5t3Cst$y^jCEr$cylsB$3ukA9*aX9Ne>PaqF)Ul7(BKOh&1zO~|l zI}fN6MW6di>g5wu@g={i%9bnD&M|KNfBMvhyU)$ClLs6VfQG6At8(k~|8dVsp+5DP z5&f>mlFS$*mN~YlIbg>IlOq_*aRt*~AO~v453Ia^dZ6z|*#0L6c#n!&V0b_dkPA94 zpzW0RNB7@o6A%=?#C6k$5?^gUnp+B3gZSA56Fum@PJ$}dSEnxIU>2haV7dc z{qkQ_*-bM}RJ08F%jA6YxhWfK{LE!jHr(JkSNjKt_Cx2)?|&Fa58?hl$A36xsN)ND z!a07xn1FT8F-2;FD@Qc_1@;vkeMh4Qy5H!g3Dg3{2W`Ov6Bo=ll2a3`F-2&Cn;z)? z0b+u_mw>T?GK>Q-KI}jrXV>rBbe!1Zl_GoKXXbs(AF6TxTi;Km!~%>tSmVol{t4|LT6CsIup4!A6l3YfO82Sb`Fr)4 zs?}Gp#t&E~4-6N~_>sQn;Kl>Z3FCj=XSBu-+%3T96P42=rKh{pRpMCsL2Q3i_~LC_WdV|2etQ~ z3=bGD3cpycGOn2XSNZ$?TPwc^+*8vV*YAlOfWEQ&{l=O$f6n%={cj%&9l$+brSBuYHA7#S@ z>VeS$Gp3|@K;M%S_E@6H7fSg&gZ*p+$CX?;B6CINi5Mp^&noD#WOM%!){H5V3(OIi zH!?>k_{i_C%&RBwFaIHQTt#!g?CN%5d`_pfZ~yPcf0Gx&&-(rV?-Rj?X6#tU2ySzY z9l+oAzAg>0eQuT+2lTy1M{eML|51-2f(KQ&FKuE1a|DwY(9-wR0>bdX=mC9BSmOs) zpV8TGH2$x!$CNpSWX2DeE9iR);6W9j?>mwUwl2790-jNE-H#>*@JyTQ`2>z7n*6}% zfVsCo9l)~(ihk#P=n@--2PIDbJ7PjH;)3&DG&!JiMUEA|vE*3JeKWUJ^oY8nx(;JgQI`i+Jg9hZ;|G^F8d(8(flM@b{c7KWb&peSj zV8g@%W9#@I&oGe}rmt|O9Pvy%I1?8*?#sNu@Ic1}jwjk2aPokCzV#M^(KG4M2ZPbHMh8Y0HKew1y96o!0iVw12a&;S={YW!gI1Z9OoW zVB$a>Jvajos0oY?@zxIoM2*2n|Hg*tJ;F}AF81v@t|c>=Y7&|?TXKd^Yf`%Gs1fSTZn3wXZK^c9>u zaOR45mQ^`pLs?Jw-|;*v^Ml&Hg7xeH`wYzgG#8K?QWG@z+<~nJW*o_kALx9+El1GL zF>;Kk*%HZpV(ymmfl*Jy#Kc^n{V&pBk5B5OHb`JjRr14a`1gTejBMYJ|}O6Cd=l={vabz~l(z0^@?E30AIPc%b_XEa9j!Zl#1WMGhz4rQBwS#Z-14Wdog`){tyQm z?46(TM)_xfo6A24Jf-_bcDv^@9|V2sEOYs6F#Dfv`#)Q6eP->x*0V>{1P!-mk?41V zdSE~foCd@N#s&@a8<;0(VBCPux)Wwhkz0a(XVjMMU&HD%@;;O4H&P4ee=~k$?kl)*1N0l&U({N_aRc@j`FtYF zy1&5RyVQMN6~DRG`GN7j=`$J*Sa~9zO|_p*G&+FaK3O~f7dZA@{2_ijaLnCEDE%lPvEog?O+KkPGAi^?RU9MJnYw7|(1!y~iKec7xx*0r7d0^FDDw11lmCP&nHfZbm(vBBtp%ewMI ztIud+g5d*x7p=#V7!!;p=rJUYDIqr?j3&6AK>;7g0h1q?dkgOU1(zP6-)QuJ<4ES2 zW!{HkUVz`&>v+Ji1I7iH9*_$Fmvx?qc)@*{7Z$yb-wfR~<5ccLb8_;Y^6FO7HS!jB zKc8!v{lWwO*^Tkr@OGtd`UaQ0?0vZMdA!@SC7xsMhI^#wJF)HT#53R3W8#znp8;?$ z>u1aPe1W~~T+7aF|IYsWOnofw&)~kB9($(c{hA#ZkLI(K%U@S4oSQ<3uH%fhKD3`&O$Tg1$524(|iGfalxz+Zm#QWCgc;@H6V`2E3`c;@qk#gg~nES2A6 zRzd!~vnE&fS@TK3gl$)!%h%`HCZ3+>?V7&z*`2*(`tSHSz^k;GZ(`X8{`)JN`%C3J zep1=YS1Mmv`hN$W$M-lZe53;W)p!o}G~k`B&pGg{x0FA-L@HnjmR)!TWe3WhUMvRX zPcLzm^}43kwo>d<+H?_M+ow>rQSub#O(32;3!cC`=AT$_W;}y!&n=ST=NBB$dwyY2 z?)|e?7eC@P2^#WUmFLDr|3vT4<$rGDIf#8BCD-CU=jS{6M*p(E6tt%AL)oB8`z zJ-O7s>goS&@WD0xbCmzhzTAFxEWx(_0MB~+mA~V+q!R72vQ^OU=pS~k9=zsJ@r=3P zzv1^Y@dD>PAK>{f)JRXiNb2$bUmX}fAZKI$4L&*VOn$3hS6>75HBesz^)*mm1NAjf zUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz^)*mm1NAjfUjy|uP+tS}HBesz z^)>Lny9RK-_<#4`F{l5o7Fp+9#$zqcMGp_pQ+1b{)j8b5T96B2I_0z^cslq z@VsQ(wG-~xe(S_{x8F7S+s$`QYWqJGiFZu?d{d)wkEZ_^a|M6*bNbcRu37H!<@t#o zp3S2@1_iD1=(X3^qwCQn9-UA8&qk+XD?GX$3OjFL($*U%^hkPazJ5PO?NwVP`23np z9>b?B_vm_HmPdOv-J`9>9}deh@ux>yakpG|w)N&Xa}3XI_BY3vb!K0)-nnd!G3Pmx zHT&~?rc67_qn#}D=yYoBg#%+#Uh#UwdHuNdE8;wc&tK}%=`ZV??ez7{(BHG2xZ6K* zu74Li$GOhq+-A!E>@%!-XWg9XGo0(JYiqB9J$hwqe|%;WQwJM8Mhx`!=z7Z3Igc@Q zXUfKMy*Z~@=UhHp`Ap|??rYBL+|RlFY~{uO8lYCZFh+SlFj&oL*j3HA;QQ0QyYt*L zJld%_9^Xs!1%uZnKRWSpwD)^gdh{%|_Gzb&TyM5H_t)hM+DpQK zeR_osxUB7=3LfM>yi8U%sFO4<03rz$E@`j6gS7Cy{kQQe}0~+ zE0)bVW6gK^cdYpy&ht5sH|KWl=iGj_@=Uh-25n{b#T{h%b0akeFju+wKI5r1)_Fej z89W!S54=Ab;W1#ZrK|t*{Lky4KaHJvQ3sW^AWpy2JpA+N=k!0XImn~8gnJB7tV2`3 zrjE|$f3w|vf3tixdp19q{mpru`aK|Sjk=2$Kx>v+cCI(u%{p_e*Y#ax=7rxYuN%7Q z{hixcHv5_NJdg8SX1&wSzNmwBt#$lASM!=YCQN={we_}Q{J-8~h%E5d&cva{m%Ir2OZzxz)^|q zyii~NOvL`=so}c)ukSG5suRR}#(cxGS`M`p`aki!(GqlFAB|P8D=zG<{4eM!OE2iI zmR#_oEI7ZDEV!hz6#8z_^CcXr+$;NYYh+(;wVSPRTQ=LRefMNnDxz|IwgkO2UXJZL zB!8VeB?pUl>2sO$nf>uWj*F0F0#XPxtKKf;{b zSaW`JPGh-!-bHAe7j%%>7j;yrzeVcnkL$Ql=AMUjs1t(Q-LdMtJ}T+Lu@ZLmU;p|#Dq-?`3rrfqXC?yS;q{nY>UoffEh z7g(Rg&oiHEj$@q#o!3_-Up!tS8;y|28!UugKU{@hKTK9%KTHu}*AJD|Hw{yjfvNiX zw|%=rLarGkAq@uusHba*fwJQ2zT$gDPg!zVH(7W|7qpo!F3YmlC0!K3ZM6Q4hiUHr zg?S~m4G9phOKZ28{dk-Kk27$d+xc1ZFZ)rYPg|p}Kd#F{wcuj-#r|CL9h~O~xuBm) zx@^2!bNgsnbK5A5h}%3>)NLar>{d?|ev7AyxW!Y#@9YGqUjfP4{qahO1Xt1ojexUeW+gE(9>>-OU?$B>7uH&2`7Yc}jQ%6t8spBUlYg)7{yQ!aA zd`0)V`#Fy}M|sKBJyqr((YpO_?zU8Xu0Z`?*+UWhOmD}rEQek+P^Dh|vs(8s&}4!} zOp~8f%!5Cv=*Ht~@z77IDmY!8Jb6+jcU`U`?;Wk8?i-^m%MtgEQW5_erNZwSsS$R! zry@d$yFAruAmmO@wd%HEYQ>F%)Ut+s73)Lex;|>#;1!6Cht$avCsgU`6czN$Smk|n zuiAagzJF&M_EA|gV)VQk2|aw2&)=LQ?2^GM?b?ZI!&6h#h9@Vh4Npu`v5#9=|M)}| z``9mPJrMikBvl=np|3x+*9sMlI*NXHf{K0!b<||MS_`Zp9vr9EG#;y>fXD|>Kg9i` zHNx*h{Sfz#RH65Hs^B|EsDPUXtL4}C*NAH~R~;i(hW^U;x_)Z8 z8_u*&?}PobXRg!NzopkQ<=e2IKK@Mmb6xmlLsZuFzslwp|B%hkPnU$}rc3;Dzp8|1 zr^&`=epT_${3gVv=cmce$Q&L2v-$ zegYZ|kiWxWmG@GHez4E7Q ze&r99@bYxE>E++mrk89qo33_5X6wFn=Ad9*KO0a_n@~?1o|&raY2(ws3K82BJZk!@ ztbb~fibFlcJvmv{J@Jc*dHfd@{rJz|(?nVODB7A`M=_|MH4me19vTOppe`O9tH6N2R<1U*oTGwnhPK)Wym^RTcDE~U9jfwX$7%m3_VH7JHw{tT$LtqiAII|q z-ZDh3xpKJ5y7^a?{H~WIy*(G0C)?hdt+u~8SGKFddxvT_gUvX%dfmihE{?B6J-+ z%{oHeJjMC}hwM5cmsm%vk8Q0N$-dM|J=fj|zt~cZ^U4 zb2jSum)w7aT7BDa3BG-VBDil5tT~R$(N~R7dACiM)K3;k>W2#@^@D|y^nsU3d4GXy ze{Zfzes8|8ZjwJ(AbZzi9y!bxRyb;nY=3L6Y)5@c}Y-`gb7Ij2yXgXCAUYjB1OA__m z;_B320u7d!rjsQ6PQ;wMMxBN*=t|+dc+LOxK|y*y>M!BGe>jd`ca5jYzhj1Ewpc2e zU-(Go=RT79*&>zx=@Lo#1oo39lJ?1BN&jq#?29YX*Izt7Mp98fDX5c__ZEn*Bi2)M z)Dw{O&OFT{T|cO&M7xf*ygpMA+g_g~+s;rwTV9$WMEpzBRQwCm6giXt4$_8y^Nb_6-Ir1!8(*3x(f5y+me;aEWk5k19HtXxp9u}&%uX$jsBDhbqW8dh; zKS}KMqg4LgGgNN70Ll7xxyt?4U$VaORhey;S@?RX%507DH_O!C4Mkd4N`6_dvRW*Y z^cLQzAJo&As3&kI;|p)e_{`hl59%iMlZD{VVoCdWktBb#KqY@PUnPC$rBYEZ+uxt7 zQcy1h+gD=qxhnA;)D89L?b&METeF}+bF>C+g$8YT9Xf<|mDb8f4rSJ89ooGvU*ejg ztvrZ0gWM&y3G71?RO!Mk`g>*#U#(&qBbQ-518}>sR(XQja0B@Auh~-2DM$)BVE#NH zxBUv0-yXJ|zsg6wOGVTA$-{K{=jX!`nxPhG3%QdoLvs)2(A9G6pb(E#s zmDRS=K3}5JK3l9i8HFVp08|~{Y zFUjt(LXK4)5QV7=%l?R$EsWWZO_lhE5tARCq{XAdh+E7Zv}= z6sdzpvD|2!D!dQx73>$@=;WMn$QFCy~pY4Nv{15^niP6*r!v%KPCRq`feQB~aXp?;8!5q8_LZ0Pm}o zqMobOp>36#|J5_M;6226|L~8P%dks`6m-ViBb`H}s3YgL#atvEF&|9_ypz5I=C1r6 z7Hx^h)Ah1K6|@Z$*3JI)#k&7r{rhIg`x^6>eeJ9ATf=^ZI%>5{<)SU+wnW=%;VU^` zE|c6ZEM$MSRI)$uk*ePlAcfGvwFQ#(sgGoRbf?8~DIFB0bECtl)spuW)_n%O`P@hC3d+*$zjE3pNqreH z=D8V)NO^9SF4Gdp&m&K{?H5(vWPyHE)z^Pu zT`}fF2Y0}g;`Y$tb^(egYKu8-zXLG8Vc|EZ8`Ou!*RZVvqg399QPuhnvu*AngMORFyO!IRuCm#M4|7OTu=UXuFKY?blSJkfX=c?hrn;f2+atlx3Zxef51>r%YqzSPWhV$Yw=xvx0q z*`fF{oe%B{$a2kvThIpj^0mJz0zV4B3Xq~!;05X=zvXgO@EKzBn~NmtmH8T(&E^Z9 z?Xj+(?+oU&npH^sl;4DoExA5?|nWHlBe6ivHU&4_XP8O-+EpU`+eWmyg-;64)X?< zb+qOb<{UsZzr@R5hcIRY;N97}KJ;9%m;;m?s~Wi;8Vp@-174s$3R+ur!g|PU?k(A` zF3?E2Yl^CTc#-Vn`;+bYJj~oIyk^!1-@(2E?@Bh;zt1PbnxhZziQZwi8O;;7Ir*I2 zFmr8{W9|e!*Pi`uY`#yKbFNayk6?buYP@r~&U^6DR@h$j{JNY|8T??oIZ<;+`~F~b zG3Ly~JV=-es}$foXnTUP75fQ0XKd5FfHtT?@Pcz>7qxN6uL(pcFhIExj^9a zeG&Ou|95#MyXJ*;%^`2k6<&^ZDX?Kz@#@>t#;*&m$C z_pob?U|T4~To9Z)vJ~?{aIP@U6}2y_K<7U@=WoY6fs7xR7nE~}BYvRq>MVQ9Z}P+5C_7d}sQh^(AtA*I~71c9PafYJ-`Z!OY|4nuozPk0<<3jX*t^ zxmP&Xg5iYL2+plwVh85d;hZVDoltjv!W_exgO~44x8_;J+&K2!dU~D=!UkXPWskF>fw;k@NU$Rqxy=v zr^tEE`{8T{)_e_?|7+{Un#aTF1>>g013Ol*9ymXP+q@i{gMoEm_+ZV&RI3jrUYPlI zsu4GhKCmv#TpD^_CB#nGoQvI%Z!y@;&_=y?^bxM|I+>6k;&ju(Zk{8WBZuZ6pQ zOSr21Ri90q4~W-7U!T_gZ7nqGdF`fdj7I4EL35%m7g!Hf!!R!qVCF8f>Vf)z>v!k_ z+Xd$!qE70$XTSw3f57|^jG1=awB{sbPUV=jV>w$AMvQ2QF4dxH!$f2zHmaI9JSQln44bH8k!8w&Umy+fK z=1sEaPvYE3tb?NFJ}2`Yn>Q56mwp}^wn25r&^D|CJ@<#L{k84hiiNyZO? z&0I!y4#l}jSP$d_uU~7WBZtzQpibJc!f2#54~;dCHT8k*!Zlwl=M^E4U$b2>zt%Z6 zat3mN`k?2OVm+V^c>M+Mc%RCDaMtA9?xCm66}EF=+^glUEnQdsRq!dyS)$_{uNnEI zHAf8Ri2-!HbhBpO4fpNVzO{T|{czq5=9D|^I%2M=<0#{)-Amx?A;I?p3?nMZ8-hoxhRt;eQH5Q$t&K;CGRW? zEo?gfn~H%^cer2g*_PQhG?p(vU;ZbS z`yCDDT{-3*Ip>eGDzW~ZIR7Ow+4ZU4p(@vfgb*TQ<c-H6!Gb{?p^GAN^EJGtUd?4t{t1-t^&Mk3K8$d!r-x zeGz`6M6`8*zd8CRz;XBulLhDg*11k!@7%||%=7R!UbWxD`VR9vzCYoAevhqDS9vy< zFPERc$z$-1!5+PR@H?p!{7n&$afkU%|EaaUNA0zp?L2>;|Gg}0GDQ5FjuP+t2Fjc( zI;)utOkMJNtZTyWo&NGWugB(1*Nl5K%46WS_zgUM?|Js~yVuRxmYv_rxzE|wJNIGP zt6^8kUJxgHbE;%#N~xs&9wkfe?5BP2evWw_9gc@x*neV>N3W%`J=*_ee#^!4a9{Ux zbJ^@u`+F~IKlf#G?3vb^bDU|PITv=2Rn72BVY|74-yF%ovOThC;BuLD;rDgEk9`ic z9BnnwqkGDkKF6Hjd~dVQx$N1FIotZPo$JpAcrU^&y`(fUP4av<%Ut|6%l#Z&Uh2`c zV1-AILY8?hv(JB0|K?byHQ&#<&b{oukNF<+@SStLH%UoIip+1=tWFJ5hZ ze^aNl=DYIy2RG@ph$t!u0#XE&kOUG)Be|htsEP#vMS4kr zG}1^&p@akop`=mL%blCvNC;JSb?5z__spD|OTfRo->(1N{XTDgZ)WDqnVECW%-os# zzR&Z#v6N~G5zE$f#(GiD*q810az1bSQ3`xywzd7GE!r=~n)|@*KhkD_y5}}ein?tU zc$OX%+RlxF+quxrb~7kx%trd5?h@6c6pG;9F4eyd`8e(y=acX?1q7cWY62tXh3JWaRI;R#zP^ga^> z-32c5FIeaU-lT@6Q{}!K3V(PW1){z*xh?p>=8SG%tH;23O6db!wctB_MMuDQV$1P} z6zxCb6iP`?tt93-9eP6NIwgYVbntO-3c>GT+yCe?+6OL6!Xrxv964}Q7Eye{y&n75Q{aJ!P8 z0jKNfm6Z4t`iFi>F4sQvE3W5aN*c75EIUupwW=nnjLW9O?{A=}Zr~irM!Utfq!)5dGrt5qr*0ROzI7u7W$U-(kjaJiK9ye;GE;W zI5Q`T5}sI2dmmazF)b|a(Ir$KaayZ6n6D)~xm=U$qaRwR$@=^6UTDsJW|PYN2b~uJ zt_<_8*oJN+^U{NKz2*`X&ri@fGlCNWt_<^u27ymx<%4XXldpki1s>7ySHT}*4iR&$ z44#$j<5BR3QeIj^r|p92d{U9vw`JRLO76FsnEPXE2f)Rvj5{FhPScYFZ;0{9H2E0YCBM_qhS=fE&W=soZ|1jhp$ z7#nU-hTy$0=LP)(A1F<7rVPFd^T~9cl+Gv17_oyY{WH*q%T%*Bhf)Wxr$l^bNW(d! z>gaQH9-NTFIH$H;A8VZlmYR!R+^#a$r(oi4=KI+26N0Jy>!WnN?lP6GNCKAye3sF` zlY_^?ePezP^H{9>p5fs2pl{6UVg3rAKP#`tmeV7yQ=Jc%`R+C~5)?y+icsZ(EH zM~8cTLCL*ViffSh#oT^AXW*>}<8{)GbX#FAdDUMnwvQBilp=6b3hlyyrH6eIPRvXB zOZ^q9`0A+WpWvf_&y+ttgz~^g$pfb;_d}hF!hHj;0R6+c6MaMfz(F}@aNzj*6#Sfb z3|^PP>EiN=^~dQtxL9Qyj*IV+W4%|=aokt6dvmGbNQvP8r9AyLNn;L*u!mQg%>x5e zvoo;p&cJy)?E&uwHVx*uhrp{4?XO&Y%-X*q(Km2yz)LEe46Y6HZ6-3`hPhhk6Sy|q zuRQd#U}`uqZ!1^!jjv1e4V($lFXq;qd(V$@!0Bq(Unsa#`Hm5kF#y*f?yb7GJZd~* zrgY{s_E|0LM4vSz?Rbwb&82Sys=!w;&Vow8i?Fx=Q^PhhmTEVp10Q#Vn9l&51*y}~ zPjDg3=o@n(%=R$wAWH0T{+LsQa|WzG6-^GOa-TzVIir%wK24;;3FsfrSw8a~z#+;9 z_aT2Y`Zx+42j)49+(o56iNL^KrmF9bQ_k=J$^nWdWmvHmL6et(Kez+))+82y_R4*mlA$oz!~=;!#|g1b-zOu8B4 z^MkpO8X|LnPY)sHdNd`gbm>GH<-8X_r~7TBtbQBV1aE=S`EAu8*n;Q zHQO*?DI5LH2pnz0mMm}+&`0267>8d8Tuh}q^AZeh0x&VF64cxs7+@#J!h!nVcGx!HQCfCgu=t68E@YU!m`d72=B-L$BC+=VF zTe#N1y*T$O_y*t^uw^~*ow@4WFqQE?wZQ$pn_En{E=9+dmR*!fa$E0{}A3M?q&{+LHl zwe+ySP&a^k!dwF8Q8DR4{@^D6MqdVd6V3A~A>@O=8I@dt4p zD}Zlg-iVHWM;`_LUB~z`rs+~b3H?}$>+Q1?DrHUt`c%$b9bDU%$>2wzALa?@%V_lD ztpLg&;7jM8{@z?OEJCekydvZG7<(iQm_^2QbNes&ofG(WagLb(Fi$tVFU{C~fy=}3 zBo?c737#J~2R~L{##o#K-W50{=6?u$CUC2`{;Gj#x(LiaV|p(gFbmu!^BEYwdoj^W zSB{m7c?-^o3hcfG7-jQVeD}SLXVBB@(f)9o_5*Jz+mAk73_|-ap#A>mtk_HLgWzu% z7+mZ500x<_G3H=!KNx4pR{zaO(FZ;cjK{tVoOKiKiHlJMbma)}zm_I(jxHyc;vPH% zP6EyeuvN_OxpJaHTz`CTS-{&7SZkaM#@(yq!YQZk7XA7`n|b_eeU50-7!%gS?dS1F z`z4-O+$+ZY!u=4}l=ZqoA8_5vdqu~TCsHl&(M@4_qAh5Ke<`^@S5qsf zVRNRqugZaqtT3)CzNTdRnVZtgw*hXNapUMm;Xprg^|#}>~N^h5Lk_c%XOa1WFNlh5PN_cL?3&<{;u(8q*dE*=ozQ9m`R zW7Ws8pVzn_xWYUm##Y+)L(JoR$bQHv_YdoY@j2n|-kL>dHygfFL_hF6sTR)@U~F-3 zihDymBk}yeeQwKFYv%5u?cjRq9JP22&l0VCW}L=-!Lv~-n-1*k#K^yxU-J*NydCfW z$1rN#_S{!BDfaVfhqwyxzJ9`3YPFx@UN+43J4v6n8Gqwi;`304dqTEd=g{ciRk$yJ zjYs=ol4EwmJ#IWZY;mvp^Bs6#7uZbTKKUFt?ET3yI;;WjoIA?;`Txl_j#LXRJOsQt6ZQ2FB-s zV@YMRQh!(NwC~>9cSG;59q^xH)gOf4TRS7P1Gkae`rGHX5%_Hc{`*Hj#~9(eM|^Ic z3M|sYiellew$XFX-2Bb;-#-rjw>?;FY?#bbd^1{jdi%}e_;cfXrE43J*N1cajD$(7 z*1!jON56f38-f445#XE>j2k)BanVbMx-NM;sq3<#|GVZhH0k#~{f{D_NBZ-d+S!g! zisIcdK{0&{9MPeGR?{neTRArR0!swD;Mc-hmhrM-ja*mG+mwqkxgRc<^DXN0_O&6c zUDD#)&z_B39rtk?_bFa?#wn%+{>t?8h$9P}P%}oS8GpbrW;Pi!w_Vob`%^Tz-WD6A zuWR0q+|90wpI>TBig!eId-4Vy$2NUVQ5% z$K-8|>$O~#+j6;_Z#k9QaQW8u)9I+|PRiQ>AJgelI=w1EU?W;?6Vl4%Xo%u+wq?2P zvfS^_O>b5AR%I=>-wfOo<28=V@Tcn3BJzJ|mbGuPZh+!cg4{0xD`LCPpPT3Hc%9t- z=jz?6+;$r|&(qlVR#R=7nF4|BlH1Ak$Va1M{4Bi8>u{Y4<9Y5+c)w*7@$z!RZ0DQH z!e3qn?AT)3*~6P6URo;Za+$OU%s1~tZnvC5o?bwFkHo%<_MOt($H&)o#r5`Z`x07v zTY}rTP+%Kq*tP}^pf&W7fkQ}J7(tgy&l7YVso^YJxiOW?df9oDvsQM-l09_EQcoB1 zszhBbXS?-w6#_@#cb_}Oy|+f>gb03YE^T6MY#3`~v+Zi-tRB8?ktMc0G_TuxQ#5Q3 zw63E%nkau2d$vXE+5QphMEk;? zTy)bmA?;k%<6Tx*692eN$71|}u^3CV0}n4H^ZFF3j66dJdM-0?7_61N5EzX4w5Ka# z{CArKUSX%eSGWl5Mf||8sXom@MgFN2`IL_+W8GwFJ8kA=S>mYmbUwpEQN5Q~>+w3S z8+M0>dg>2fT8=#V1s#4uk1-}ArkIT7(#^+3tdwK;949^S2(T7CfwkxXJxLhHeB&Ml zCIJ|W$ouEgZpIz}Tah$!gTN(J?8~MDL%$Vxi{Q?)=;ti?!%cKPvy}Eex154dk4@H% z>R?hc|Fqh2`~_eSpp|+Icmrtg3jNgb9jB-^E?2}sSxfdX>&QYQm32~CN7kwz+Y5M# z$Cs199Q0UBF@Ib{hX${uvdAoPZ)MJjr07R|C>$7(@UFN{T3E`2t<;cNMhP#j1dha8 zn5+}id9Hf)>F+J+0};FBxclqtHN@P3Ggz-x?#$5Y_Z1Lu2iBN7Yvi)7DQkA>nx;CY z02;!S4E;P+z z>NpUAjbPkBzcqBuIgA>QTc|Oul+r)hN&6lFUWG9@hNVy0Nf*vk(BT2!>UaU0bqDTW ztQNew!@}`qj-@kJK*Z9a5m_IREwog#G0%FdIu?R;Ae%7)tdE%vT~&z>5Euw(hI0E) z8d|fgH=FgLKh;KN(`8^ZvS&pSYg)>9f0jcKU4(utV+AB0K(0%EXqj3x(BD#k_-g^; z%DQGDbmySEc0M{+YeF0~ALY>Fy9o=BJ;J~O00RJRLdF3IElWfDRLgv8i>?bh7}}nQ z|DPV=N7Vt)bt$N$vyP#3^l9LQa8I6{zMC$ctI|$E_mb~XX{={?wEJgj$&f&c9vhFM zVh6;GIqvTmMGdh9bn$qpnCG}Sx4!_G2IvY3{ZbhdXYEp<$;t6>#xk(p=vu*X5yO3!!-jfJIaMtW-i*D3!O}}SDc6$TNWqMxuL#PGB=(s=hO)O)l<)ZOKHy| z=55%i$5yH3?}uAB9?0=fYnbQpd#_Cqb;?GIW5hW!1oU5C6T4_ppACjbC1myCb%M7&XsdPE>_{ zAma|o5pNgq5!QA?>`=ydp!IAcx{q)8QSR&8>0Iyi zYR%Yai-`Le@emP@#{88dW%R@8S`pKdF~eFJhvxQ*7&OP!5ywHynBxfN*Pf!kLWi#j zan4G_O02OpLq~>j27F$w7n~Qd6xI={g#KV-XpX=TsK5XS&ABnq-Fpl7*|Qr(`>b&` zw2NaQ_0Z9}dKB$LoSrqcWGqd@XgSVow6i%@Zp3EM=BChG5y!j=9nQv`z&d@GM&~hB zO}q0%?4M(^^(Yg%c^KE))h7f-0lHhwu~=wdsfZ`%_S>Q&mZ^`Q9$Vr#lxP#TkF^f# z5epRYeU87f8L?y;w`5JG8{#rpZrFerXlgmJo*ip2a{QIYjP<%|5yKR5J|pH@w-&Kx zU_e-VQ;)Yc$Bc{K3{a~+iOm-AJG4*6_jt74b(xr$3XH876a8|vQ$nFQhceb~#1>n&RgaURZ8ou95u1~-MG;qI+zrPS@qJ}r2X4^6 z1cpQ2_X78T?^Zpgi}qRXdBhV(h1HY{2pB`t(%V(q?VW)5RUW=ae#HIT91FFLNz3yu z?jepP>h08HpdyB-*^H-F4cvunXY=(b?{^+g`F)D-Qdd1@C}OvcB3@Wg{HmWvS-+6q zu@5F4ZLAs_{X+G`y6k`FF(ttH#82rB9OXu#K_Ww(qz3-$vkndjyOSl^(0Y!CNjTqYNP` z!K?rOAxOO#edT^yVBGJPS}o{#_clyOc^b?<4d$x^4C+jvM@k6ebf+wN}dni`}yag0cCxcT^U zo~J)&vYzewTb1eSr_k2l&(NAmYPFp`y^Y-G($_uhZ-^C$<8XiEK6u`C-!125J=^kI zmC5zo@2X>kTG(?wHyqzzanitR1s`;3bN>;$I^?unOJ5O9KW8VGMrjEjz;Cc5%36oZ zZdE_=nBdwNSxae@ft0%?@|KyUE9KO9N5m* zGqjWr@XOr|AM@{#7YY`0&wTB|xk~L2as@?pg8#Myc$mmbDENqmZ=7=_vK0p)Prz3R zB$uV{yrmy~+Z|5&@n2dhw&VI-C#ap9cH&;}_#OtY?cv4RKI95yKX_A4m6ihEU;^jD zdk_YH{a)k=jAYIpIEenpamO6QupaY8{NVJmz2x6XFXQr-#`SAX6l-y>t|ZR$C)e-3 zW0rQZJMy&kMh?4YR%%I4Bi{?AO?lN?>bo1Px!Cq04;$xSi%0&o_(zbB4!P-~x-HN` zksB=PnZ;V|$zn~7%G4qr`&0`;9=V&%ORGImqQwvVN(;1EAJK8PcIL_N^xQ?rTXgK@ zHQKRP)@qjuYqd=HCy&9u&Ax5Una2684uea_{@{bpAa@*iX6(~G0AF@OujN#*K3Tg` z+CV82w`o!Ez1v#E{qwZ?Q>u3G%{5vW@|>}6p4acad%l*_7x^6E$KyOY>F_6JzP**M z6xVCnQ$lrqmGGSkKeosv#5uZB&`#<1O)-4eho1XVJL|NYu9Y`Y$@-(9a{FpKK$DJbq(Hj#mE}^xJKC5K{A){hgKbqy{?taTpKA z*_R{t4v&@aF&X|YJ_nowg0;=-Hl%6n2Un3Fg|+R4zW+Nxf2|xD@fDA|ZT}ftulwc< zu8&PS`1+_?AhpQ#@epHz91Vik!{^2Dy9vE@;QW!_M=L|#7S`LhOh>L3aI5&d6u-4= z5448w1}`B~=v@0GS=+&FxY2<5=XN5uNadnL8y)OKjmLxUAEEz^cIbN7@J|^!#$|50 zwl(WH>$!BIHOsJIOa6=gJ@_5?f=^Os;Lul8I>wh&PmZZ$tGU7AZ&tEGy z4BKP=HvjJ(0pU9^{w2e`uvm9B{3?y&eOrK1*TvB7`HRHk@l^iCvz^+O%erzs>jot| z>=4>h+d9t>7(igbehg|ebECg9EtBinZqLgSJ0>w>vP|w%PI>+2whpxW&z}mMVf=`- z*7iZOt-w#2rdsQ^wWl5T;CEG5zJoPD+K$9wO^I^)}lzf9_EQ_YRt%s>FAeC}9CEc)&>+T=5juIzs zqQe*`iTwh;RZZ-;P>t_ApZ4Abt&xG>QqgyZDW>PA6afv9(1&JI(1Ruld;r=#_syb= zPowDgtY8Z2rk8QKH2=F?DS7f%Iy%jdw%;~gSU|fO>d|g1RL+}z5P8#24&O>8>yARl z1=x{p&~14Tx-Iw5qp&XCzyo>Eo~IU5;kFbyiahYaT|JSX-1P=avGb+lGjh9U<*;hBKoQIS(D)MGTP}R;%N`poP=kOIdj-e~UznhLhGlhRQ3B1oM z&`()}_oR?aO8sDqz)x|W;Y^oMI%A5o<|$5iaFLq-PJqff1v&UFQZfhmtisL-Y>d#B z5IJ=j2czeR6}e$q9|OPN*m9l1sU|9$GC$rWa=vDJMp54USp9bpehVe{SfQ4T*{w28 zqzHJCvZYDX5R)e~B3L^?XhJ|+fb+KUZ?wFLA;5-!Tg;dcW#+t7Vg;Rn8NMoEudA)iG*HC;|oq??k{(a1Kb3`;m1HVDXaFEC zj^7k|F2@k64?IJq&^jnziQHw-+sJ%L&&in4`#ZJDF+r8Mi1Xj33G9H#LCBnbj??mQ z2!Vl!qYEK9R1ZF{z&+r7Q0B;M49=$NmEeZscaH@*Dlz7i!?=OIo77t8{VK;0Ieyr% z0Xensel6nL%qzxwG3T-qaZMbr?#ttX(_8yFFnxS%yqDMFH_a8q$XQ2$W5iWH$;9#h zk`KW9e|4K$GXwkQm?e(UxDoqLDi!lL#LxLS%<+ebyk6KJ=T~B5oBzEajfxgaU8r~gBx1A4DtLW$ghF- zY!U0mdp&d1*#uu0<7XbdJGaI@ZWj3aS6XsWZDYh7Qx@@IgOe?|ruZ!($F2E1;hw;8 zIR1)e(jq6l1HP*e_b$@D&+rix0mgb5w*8{mVF0h%f8T)b($Ih*u4x1LA zi}&o@N{6`I3cJ|ciYYO<<)1|7mQUJqQhh&ULB(Ldd-xd^3a!eDkrDUQzZv!5FIyn$ z81@RLu+kP*Ic!%K*1zO^|F?he-o&vV#J&D?uh6_Nx!qk`l_Q3h#bM}uKUpulz(TY#|FvV?jU>lb;LG5O43~W1N(?4Qjn|3q5+uhD>Qrz7> zoxn43gP*zy?Sk9)b^dlc7Dt4juiFU=M>ayp0*KwaA3Hv09(EU?;`2Et!>>~ zz30gN^OV=~{$hrFh4-5{^6la(-aqiZm+PxIs^a|!nv6UD=tUt^bWZ^ z*mm8M3&`(YcRD#QjCKJ}&&PpgsT$MHr0%}WokH*Oq};WMl=bNzIyEPZPR`yfjP?G` ztvx_zzu8YGW`|nKPkM(^6tLo_=7&?zBhYqjZBM?fr>V(Zm#F*h{}kGA%c$s^LzDo$ zv8b+dX!qTCFX;rGK=_UK4P8T-OQI?GkF%}%b3%u%ql>c6ffQIzS1pex>7~alGBY44+vV zE8ZzWu^isnq@L-&S>HeNIe8u6g)Vfjez}Pk>e!`%tsq z_ocG$k5P^(THvNjRwdE#H`a@Hh2%#*Q=wI(nw@}cbVdH%n0zt=uUP~wBF18}CKhrp z6LNtA`x>g}C`WE`epjg3nMFC1ppmsc6}aN8+2aVqk)iD$^geI>}5i)T9g zdm%6DwZI>(^n~!4z5y+D~T4WUvaD%#|B@Vcm~5)$=WrS(Ef|jg+g2AJaTQamIHiPz>n&hGR4D# z)mrxhC;7QvhjumK-GuRc5`QM1yYd|Z&t1lt@iUj-WyCuRbYQBW*T9%4*5gsfhM%pT z9zO-xrz+qp|Au!EHuhb@l7VT0pJ<-YazHLn_=-%(A?XF*st0^SZpatOS_d=Y{|4XO z-|%d$H@_F;p8a9yZOG-864&7n$*)>q8cmH$8 z_%*hM7Bu}mwzZW#tyLx=Zu&9DNCDGQly%A{f7iCW|Fz0QVc#epiRZ_9Wiqy%BDNR5 zmw&MxALI3aX!m1YVwW(QjSIu>c1Io0o65Of$X#9(_Yim#&~fAsPg@$7$99`XQMb>aw+>h47>^C-9m zN1@-xAD-UIcwNeq%XNe1DSz~OUs5JC+BiQwe|Xx`GM-y^<9aO1x*2^pQ2y)NV7{V^ zr_!?fZxm%b&40yD%;yaZAU0Vi_cdQC7_beRM*d=b;Q&7|&&zBDSe752Ki&Qdlwy(7c{Pv<24cHcw^Je3$!+Ddc+gIi`9XUN`{eboBCd=5n}Ox#Yp@VGhzwO8(k3zgTcgy-~5r3+r-c_{(!?j4NdVLN;qc2owAZ=*Q1 z?u$N*RYohH;QtV16z1MhMkw!N`5pX!3-kO*Y1@H)T5Z=B&6Vj@YxCGEH$u)t#bFAEhsz0WZV)q7B@lKImmDYyGj<##8aa z*6!GnKhG+?QAe7BZMgnO)N)rG6mP{IM{T*)&D*rUX`A;IJH-`8e$?$e&U$Ju-$ZVw87|^hceITixc*7>ps7U z@>Up4JJggtZ9apF@+Vx$iZTXk?QnLy&=0#C+M_5HZG%5*qx2sz*VU!_Y)4NoXLq;P zdOq8`PtWd-ZuagD&Ti9R>-piBx1QFE2;e zsV?)nV|zER*Lr$;y1n9M@8sxe=k<)Mv%ROgm-{r+GxqMTuh@CH_MZK0&+e{vZqCyj zy-Z_m5B7Td?%l2XddI=h&E#yFhqCTBw5fL=v`dtFc)Hs=dU?5f4)U~jayB{Io4h^I zs`33^)YrS&xngm!yQ_zt+r0O&(0in(yMwpANz6}h_x2p*;h|SG&GSIjInHj+Ki9MS zpG89)9KGy4ojpt#i`V=A*>;JW>EP($=!PcR&*REA1*Sp9VCdyP*CXD>_Ml=XT&OpC zxE!_K3Ick$Aj%^O(H*NZ$da%_0bFO83=<2}{I+5SDp zd1KsXI^v|i_`=ICOntHMvwi#8+fRGeVOsNXT``L!&H(QhiVR=}Kvb|WI(xNO0%T6uIPGZ@kMOhA( z=e8&-#q#17W#_THvPGF}>oudigR9>DS1|1cdlEL(C>w7~KQ^W=#`IHTy2hApHl~9| z3?DpZ*z?czeskC`Fwa+qKp_e#HcZP=#XKu!swyH z#tjukdP!gm-tjkUZm$icx=6by5>a~S44)zi*%-XJ`moIOq6b}p#FccG$8^K`^l^k8>B zlCzzQ^L#9gc5-xa88X+=-rM9jWbQcZbEKWgX_TX@`)tQSp3}X!WVEB{Eq8lw9MI(K X>iCA^bZ57bj-Jl$4szK4rPKcd^u%DC literal 0 HcmV?d00001 diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/login/LoginServer.bat b/L2J_Mobius_Classic_2.0_Zaken/dist/login/LoginServer.bat deleted file mode 100644 index 80a21338c4..0000000000 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/login/LoginServer.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set /p parameters=>j2tY7Ez)XO;f1X_+0ALOnug4S-b&=mKm!CYp7oE&00JNb19W1609dF#vA`Vw_O9!Y|VnX*_S?OrN{08o-wnWDPZ+ixmNf5TOtEHlFW1)Fzj} z8T&H6(kA=jcRT#}V2aAjW+5LnbgVMOxDF^Vv>8k(6;hKRER$c=&nFU#^rImAg$-|fJd!+?2=#4SP%sz7MpIop z5d}YDf#fxMl)T~fE^BkF0LYdc4Q{~i8UlbO-7bAx$AlWIpk_#j%`x%FYyCbx_W+q7 z+&-)(v{c)S-usDYs~pH6I~6wIyX&y1Ounx)A|O3oz-sIK;){1M8W1av*E}SiW;95W z`P1w$((tEr}3@bVz<<<#`Rl`ogP;n`$&X2c3MzL|f7! zh=<(bZj{o{N9?12o})-+1hPJqEm!e$_FbA%?N|+UR5Ad4*HIiOOj3l z`JBPlvXvI@(`2e^w|c9z9DaDJ!UCPS!p4Xew4!yL$f9NMdVlS*Q_}Q_{q|v<FrT6WBU-NFi{v7Lf~d_94FO} z2o&aHrnrKed2y!%b6k6xwiD{jufq^qVOXF|>-k<$8z3^BH{5p>PXIBga8$kUl%a`mi{q}>d89t0X5BrGE1@->aKUh^MGsva1f?V@RYZPi^TZF{~q+P_0IJNG*YY#ek(}8 zX!jVfdhU?Rk7-u_L$jawTBqysJRBI$^8xe65(%ntG!)c^(P2N#!2L-p0k+gW=}NXp zVVv*0`^e=rU#B0)Lgyy)x${N>*1Ua2+NIN-ZX9dKy7ey3Jw&FF_^wG_B<@b_>j`~H|YD*+EzQWNcfuj*p;0FoYUOAZkHqG0Ln>>eF z?t{3DE7Tc}RUh<|hyeY&6a-AZE*oj7X0=bZ{aow7LXtzt+S3)~U;=zL7CnNP_z;u0 zSyK-r(ea@Cq1tOu1tqTrL`2;eb)lvVW22Ixu}c}rek5?$L7ZyEubKNrBW<_h=qYWbUV{(J%kHR${Y)Y+RG{Ip`Q!f?VYWz~lvS29VXcC&467aa9?vI6c;d%mzf*xi(t&W^Hx$QfnSYuKd8VZ`nI-jgx2Aq2j9;enl>Im{ zg7*A12It}~wVB(rRPOKkuG?=G}GwdB+^rJp6KS>26B6`cQ_iT#y* zKWEKpf0VYoqu8Ng9i}V_%%)e=6iL*8b(*B&h9m$2J?Sk95PjffJYEXDn1!(DaS{Yk zn-p=5j9ZRk;>+PNYXw`5L=$4AVNmpEF0={J=XP0d&si_!fpqoi1*@RomnptQ6v@|3 z81%CJ;M0L59Dy#AvsX7jl5RC*tiQzGj1Vx)THGB=w+||+0yLU0aDNU2_6~Bg z2C8Y{QXya6hUSbY1-BvaYxwlb5?4E69n88w8`B4Wxf~TJ8wf(hvBqwu#g#rN0-hfN zKnQAW$I&CU#kJr_9Y)ZGkYG1i^3Z{#lNbQ_9rk;#r1_kZl~!#Iy5j~~xn`k7D_K}H zzR39F>Z%j|(}_dLc9kl!n2~59wnHph952hoTjjh1T7);wH`d>cr)9-tjL?P@tWm-r z7>%7AhBbJJ&pu}ZU9SB-h&A|Wxb|Dbm7_pbPriigan??8{>h&w2(@)yjdbUNL`|nc zCw4mWK31B@K+B>_cUJ}~T()^JKV8Os7|E`>dpFTI;)t>Z36&jp2JI~>;ngL0`}vVn zKmvrRi8lT31~Y3rGe?^7leAbR@9xGQG!P%CVV_g&KKsZBDKm}J#swXcyzymhPpNV2 zsN|3M&)GV>pIU@}B#9_#rQ&zQyMe6fK;xadbQ>)9aQ@aN=Z6u2)(i1N#eIIG{v}}p zhrUgq+g+{t)(8{i zI2tw7g)Cq~=I1)A!WwV8e@L%mDDZAGI(b|x?404_o5~g9v9L@fx70dt9=aLD#IrZl z@4znK^-st04MMCvQIkilaZJcQMOKNjA~Sm1Em>h4*FxjkJb&4?ywKGFp(bJ!s-ePn zbam{Uvt{0fW||ex{FSF|--wmrnCoAm8Xw87O3l8?ysv@;gcEo*v zt%f0WM%Gk_@?)?(8c+${G_23Ct)Y9grJ~e<9Yy=-UDM^)(ZEQF{1OqQd(NM_ zVFO7C>FU>1^mTQtY;t53KA%4G+Xx9;q5;glt!98UV zITfhZ%!})&5l4O2B3Wkm0d+JkaP-Q3<)I8!NY$ZXv(~h_Bb}89H#Km}F^3V& z$3f`j5C5qA7~Zw7Bxz~%a3ra8i&=F`+ZPp`*$-rTee<6vuX~Y3Ud5TFt+OV3)Rwz^ z(K}g;Gup1B1F;P(5Zlb%W1|P4AaKxhk4viEK-pc_HSpd--6x;dLc?(4TQK_HI=k=@ zb*!@5`MV(I=#?(4CGv1B`sa#K1RBQv8=21V^(G1z7ZWS}NQd@i-9KgCWU;Z|_{>E% z>^tGy^oC6D(_k|2YK|sA+d*hh&^n6wkMO_F1^jb@aH^bCl>OnO7fEA+$4I|L~U8_fdJ!vKA>(BIsP z+M$U499Z*lmYXri;>=ap@B*o?;W|j6_#kQRd?mxGJm5lpA(fmlX@5PL`HUO4d;|-O z;Q6#&tdIVl?#*a#fw`b^n#GvCr1IU|Y%PstSe_<7qWNpv?qPxHam`UbJQ_HC4)62$ z%jIBwhRj^n*ac_MPp9Jc$t*5RdmOiGb`ozG?#`~?OFs5t>3u;^<7#J9jJ{Lsk?QA| zxUWhO5_yzpp|Q!!^PXNv0Q2&USC5W40K`9s?E#QirDf zwzp3X=znb=stUyF`r3s_>j-@Jmz|b=dUE!|xVY@9Ns|w+aj5sAq|LtM^8X zkLCY{QdkOEJm05GteUoUF=JG5m$XwANG=lkD+v}xKH;a)UP+q6^;S6RxlwuFz~$$F zSy+`*y3r=%!u*(E7!TGfAVEiYi*LXf5ou4a_gBt$KY~ELOOQ;(eY5nTwQT zu{h}rAD9*GqJN7lB);m$&t2>h|Egnoe4J&{s}tOubNg>FCO{Y90ngQ|MF6K_6!@1h%(M$*TRHc z0I*@YyhuTH&jZb^LQL?O4*B*}dE{tfl5BZcM8!ELU%DV{_8(({R%UV-dgr6rMIpfl z{VraB=dMc_@yhN2(4Rc!x*JkEOJ;1smn9M4g_vcIiaXKl%?ZY zqmb|p6X1pdPx~y9YpZDh9$XgrDhwF-wKU(g39;Q9fys*WksWYH6apdiJu@SP?+aaet&>9-6~Zs}L8M ztpwlNttx7e0 z`qW^jsUk$zmQN!L`2F<$6~3mKcM zuwM8sYKG}5MS{rQYfYZcpY3>r1R9)nT;Q+Y-E4NmH4DQ3L(yLML#Wk1lj?yV4v{b? z)whle3uW;;ZUB*s%%7ZL1qYs5_|WrGR9iA6RulXUE8z=LPKjk;4PM<(3*WV0rsDS< zvzehPVZaVU)m`zlEQpjGHo6iY`sP7W(#L*bY=v`E2ym_LxYB-v` zFuL#rEzk!N+2Kb9a&t_7R2;JB<<}w^R}d)yk5GSQJeV@Uc5_CWK1Wq59?brotNuO} zV=%45BxKazExfMce6P9}lilJF!7zT2ZT|+1EKpR@3e_|Zba>k}fp@oVIlWp{TVOX$ zITaoEZ!y?jw6U0VzlrX0y(SmKJ5m^MIo%KtA54!+)uIB1?`(}sc{uM6xkW6NKI{>q z+i4)l&=J5&0d}uBf~oLhS0U?A@!6!95W4Vdl}hs_ZW}a^f6UN3L;j`FWhp6`!I*hd zsv}8o_~zH}I|9;N^U(8EAWuPlYmHn#5bn8{54h^neFuRiwh)85h16A~1y7 zBThi5Tc0o6$tG9Ml>m=u7)P70O@XKU!_yvId;18PDuW}2mzc8WfOQ{KgF z;+ggtD5?&ckS}%p*9v^F2r@!(F(rNq}If7M9?BBaS?bCcLcq zQN*dd&0qTn!GMuUD_!Qr`*WLqZ83B)&3N&J>QRzknm`uY($tZ)mY%OJS&vkLDOQ#8 z+}5-!yWW}nt+NM8vQHZNZAA2gdB#4sy?NXyQw1$9J8^bJl19MkE*UEEFxt_)Va;rv zEqDsODVK;*v2UZWerY2*s>dlb#&hR4Qweg`Ze2M6Zt=0f*fKaMLT7fQuW*u9+;i{^ z-;lgs!q(_=zuysaK&I&P{f~Wcqhtbn3s!&eff%ZmJ;Ibtz|M9HHD-H;`22x1A&2#= z73t<($j3MKh>IOa7dGMIyS|JA8OM9%xaHeJd$Mr^_AY?7k*u{(7B9ubHLt%C%Y=^k z;>0xjylvD729>>E#HYabNXhH4MjM;-Gpkg!ao?pzCy<3U0iX7e;X=u~rba<0+JBUO zaz^ju9O}2!s`r)B;k zL~}w79CGqi(owyzT0nHs$nlzdU>me1lhMX!l2L&(cLyiq@C^{Ws>JW5`X4#lU?ph| zGq~0>5(IqL&3nl;x3Np_w&8q-KI|FwkgmWHaPT+RZjd}Iie*9o+6GvrobE98Vab`u z<#PqCsH#d?+yM3{5Q?#SJ$3c3bz8S7&;cfK{e@%0L7>*hN|c2pd`$APbw*-5ImCqn zb8B39UP_!p%m9R<3N6c=FIp_UchGYZ1E%|S{;3gnlZ3& zp&WiM8?=QFV>L(Gqobv!ECr>8QFLM)8DQp^z{K1a`1N{Rg{zs4oI%Y;T0~LZ zsAb!}+NK`X(q1)iJS|%59IlJ|_MaDTr9EN-)LU8WW1`TJbrb072=q0E){?7JuB8Gc zS@Ef?F6VwwS40_e8d(|aF&LIqLs2?D)}x;oQg{SmU``0%_RjY)>yY|>$u(M8hP>Xj zd64Bzlb%KG#c@$A4;V4CDrSND7~J+68Zx#*Q5W#Y(uHDkW&kVub zNeErzYwi>v|F z4HB374xwMAyy>UxsCiQM4t9?NxTBRnK`Qv83i(cuVnA+~7s~_f*dDd6XC6~!^Ce8Y zc40HVy%!$3Us*c0-{c91YsltlL^5?l3&|^LV$|yidXpBg!sZF^6QcvBMv-ZKMfVC| zJAPTx_kZj)Ma549mr25C`K%7z$(YnO87Wej;N$b0h#BG7Obp7~1G%8RERkvPRq;g@ zM1J=2Gl`4VH>LK|CbQp*XcB|aan2%vU2Bz*sE^iXQ$je3w(lHJ=XWF#=$5|OGi`yQ zZ#C|Z(mX{|p8^&2{MzhInP*Zb2Fg((i+&VxQ=6|W?)Z}zj0Awq@^;%1e*sdl;M;ttX@XpEr?|K4>PyZxLT@7WMc`r^unh zldlTEEv5T?y+lalR{l(3aQ!y6RGs+FvAccXe)fA`+B>nicAyO<4V?>zjyGJaJqY*S z(Kc#|@w})k&nz3tIt!reXY!9~Z`98<9G@xwZGjjcFospeO0NNBq%S{Sq}&y~fhVGK zW+JEUjOKr2^ag;^Nh9pu4UUI5xEPpsuyPWBOo!gyQieDQqvPUxdgd>yHF|2m7?fD;4?RTE)o-zrjbFPhH0g6kKD` z*Kp7v9BLjrA`OuB)Ty+1f;^7*<|1<}d%)H`D8DU5Ont~xe>;$drOND(D-YyWkZjGC z3wm=<>~0z%fUoT=^4^B7-nTPpeK`cgL#bpDtY&}!jM&XOi(YbiQP2k*&wg|6Sw@NN9Z!wQbF}5+S08Y3q4yy=3w?7sMZ-V^AD>| zy~bW}CVjAl{tK4-ev#bn8R74FSSV+vbsKPA>KoI*2Gp}HOfN&N4HHNg@->A90))d< zB|?{$zF2PRucFg7M0DlcK^uT4q4J_{-fzohB{2`YmZ(u+A&-~mhgV5-X zn?pf_!m&w-9L22q#f7EK(U>b;?YxWSjdeH$i}$bO68zcHi%&ERF;+j)G;p9OE6B_c zo$vSrJdTP%6!Fna7b1%zO2leIowe_c^+p*a{hBcGBcx1*w#CAiCDxy9 z1HQ)O?@>bGqiPFk=lqx^+{)*@a^Z;4_v21bfnB!f;Xi({**zO^C$21UgPJY-jZ)(b$ zS`1rr!Lpt|&Iw+t|9O-xqFx*m5noztK`ign>O9(Z5SiuB$hO5|#y3%A99|S?)%03d zg^qAN)=PXTnG|o)h@cRL7j?%Ui(JQmy!9gG1q|6U%ip#pRmu_NIu|3WQRZH@Ah6%S zc);-=bg{vwhbNWOEI<%IY&PmrSj?L-7Jz^co~Xetvtp}qOSw|U+}W@eFP~gLuD*4B zS>gE_=>@yA;Z-$S2Axyp64xf-#slVEH{DvVknFGxrWW|JA5Sr4*b!)tUF^RLZ=#Pfh?@3l@p++;_R%Q$1K@H4v0bk-^-Ni%$!rjVZ_5+^ z+HgXQTI@Am&nU28Xc2W?1i6Fy>dfl#!ucjS#go}o!w(>#`gIr&;rGC;{H<8UFpMV3 zr^Mwrt9)KL$3G|>kR~Eml%l|IYGX63dx1P0+Z}IJu)Ooz2CmN_4W9A`+$$RQdUN}` z!36It1=YB4nxcDL*r{SF0&(88?r>gcj>=$hdp7}FTC4y2_x+XDaNOMg67Tms8pMZv z>+`{gO*66i7ksKl%hlrW#F2vT(4Vfx!!<XT+ z$E{n2Fl~_IK)jwBy#8HXZ?`X7)tZkvjZiK4MM|>Ik$;n*z6Y-Hb$AZXes_rB-On@) zt)v~B5ZKub(94>=a|MZ_s88B>tZ(ixr+Y1KvRmwxVi=z;Pr6IC1kvj&Ml~LdG=-dQ z_fczW6W19$G>AfFY?fNOhtii$7wg00N$^1=0(J-6^^nwFNfySfCS!R9Q zULG~Y)gBVJ3uMzd>UiM`|lmPKkQ(TwT zj?8PgNSc%VnjV$I4W=hE3?P2O+(sHGgI5xJIWZQ;%tm2=RGf&OGgX7Z1cIjFBE0tJ ziZK0NVIQNde`@I{2u`|2Y&#?G5w>Dg9bZ+q>hb=S_hc| z%ZoS5xj60WVZJ+toxk&OtD9UXGJceo8rX9NIKH$qy2@-TdRA=Ru`q|_j7d!vYcTF% zYMPa4I;z>ljLVgm(*j1GDAOmN)k@^C>$Jo{m6g&F(ncd=yy~YhCEePPYif1BFFVO5 zKssy^M8;zkRJ9Bs_Ux2Cod{T@Z+nrGSh20HoA#VOB68oPXBjn|W*ALTf-UCsS0;ua21>4O{E$-{ zPRhy21JLa!r80YSzu^xE>~G3|xN$8Vv4G>EQOI@|XF(}^(6qks#4Z3aW&__Yy}d}l zc5C7&$TQ2(gJ&Ss*!Owixa6V=t=|5UKvUs2&jGNM0UjbW>ZSlwOXF`piPFrW0jPyM zFl_`^ewdXVdK`oRd3d;cuNS@^FF@tUja4Znr*bQ_*`yvCT{O*&j)=0HF=9Pvv(w3+ z(Jr1fH=~P?Uz~)6aBIUT^MBcL_>VWd58#q@&`iDr-{p1(&23}v%moYgh+D*c~ALog>%~7x= zb`uLW+_qpVL=Uv$^g&@`)Banp=y*lvsXPTOiyiY*)A)VAyv1|^C)zL&q>0>gTZ!){ zHC?$*t!JuI>@YQ}d>MvJi7eprYpK=z1^+@ApMd=OJ%1nS@yJQrozW$KUJnN*`K=k@ z5RNN%lfQ-1x?5qN&FHZD`5?Mf6=gDW(1Ran{1pe3M#w21Z7h>bxvz2xE8kl&_V4{a zgnQ&6P;(|gST7$3$2hx74kXLofQAAU$RQe;{EySDBKk__4aSTWNDaRwC+D_r@v#bYNZj4e2=CV`efH#%0!0L)}Jrj(Gt)jny{9 zzrh5ZxX$*t+CILXM^YTZP>4UL6Gp^PBhUJpa8=TuCXdT1I((lcDIZ`CLnYVc%lS;_ zKIB2#rV_2>$hiHd{-#nBRQbR$gtgvTb|&zF?scc2R-Cy_S;=Dns{kuv^0kWi+nUy8?mI@?u< zX0d!6mv8#=xp%GGDvNBz^zES$bh2{~4?$~hL>u*s#3-Z-R2uOMC4gFqsqM0>dDu-i zS}6KTprLzu;)+30=?fHg!QVNky@fhNRERJ{$&UV|_u(@hP^>Lv>HZ_{(rr@CZB1!n zY5c(F$61KddtMq85{u*1z;|0t6y7$IvYb)FVy;y}Y&K+c{&u@hf*e>`71<*MRp=gx z?v+nF*No1y*PXzevU)EmwHA&=_Y5^FFIwkcOxths&H>w|$C zAxY*vM`OfQ=T=7)m|EYP;iRy!5PF=eawtmv`jeC&`G~LaP7!0ym5$|R_o?_krNd&_ zSRil8SIK2#C1VydDqB34bFbcwRgqNBpwg~GSb6`4PSF~|&Xqj`j{vE9xc=(}tS6aP_Y&L~36aAsw4o zZD3iJ_A79#L`gOOcdfcgpBou;2vFSV$yptZ3TwB&Ila^_R-%WSAgX(==RCK*)EtTr zbSPVJU4Bl}E?1QByvWsted3}>b#DTf3k-XM(5fSwBI$lB`efvX3P+F5p-taXzvatjIE!#@3t)g$b$Dg<7oi zgsLa#blW`XC3b$kvZODZ_1HY`+9jY`WYii9PXAv}ZJ!lHnylR#pA|1>L z5=^}^B^7@dg-tN8^fk6Y zPK{P(mZqh+;ke3f!1YC*KlaCnULZV5^|Yqd=VN}=G;ums+X*O9tJ0+2FSG1 z(>0y@3%17?&JzYBcNm1BtR&oV*s4ZQ1bC#$@v?NU!0#t@+)w2vK-0#T=Z}0kYogP4 zm{!+4(GJp>1>@-tI%qQzF-Wyt2?z&^+7!{m-__2B8Jvn1P)1}EiUyt^?}MB+I_3SL zEUt8=9BS=Zlfg1T>0}jgS7a$8aaPT%vIVM7_V!dz;UJ>PDTjD~E~i1g%Z>)$@F_Tt zo+VUPznB~kgkSszlR3G2!v_gnx`aZ4cFv@yC!?_8MK5+O-yO?x{U^6v!Ba$P&`eWt zPE32}QAT7!5o=9`iAQH>jR(=!68$rljhc$%Q!4?n1*EUEI!nwrt)eA90!3I{vhh(Y z@>kwo7iLuAT0-AYftYA-g9zQUkyHY?bY1=cj=T&u}HjLURbLaj&lbENWB16ow zy{yJ-E{cui?16rYM2wG9_-hMPg&e6IarngZinX#ayd6mD#7g9cb?D6W%tvRFBYD zTCE^&$_v1S7l=R_H3XUd=Q%i#icqcN=^6VM|Fh9rMoON_#@UTK$oRJw+Lfx$ zm;s6CrQ{C~hO5pY0!)$9lj}J!_6Xt7xMB|n>w1e~F>S22?_~z=nv(eiT?HIEb&)3V zVQelWtyJeXad%LRx14M8q*F0*V!Oah_g zfQx7k?z*Vnr@K{V^FzW`@taNR{Mo~%eF1|(_(4(!DNSd|R;X2yyzZ9Pzz+t(`~`Nt zo|oobL$l?C^V4NLeLZUm>|oK3wM1A2zj`hHs0Q{bMt>{d}59_pOK0$?DE~>z> zPE#cy110DywAURwG{iKJ+B@vNjN(CR;&36-I zyf{tD<087SzU`c}-3my_5U(WLY*~rxhN8+Kvbs^o~4I(=u*9>;_^gja}ic(Lct2m$1kzn!sr(vOIG??_X}2D7IDPl?#X;{2b`akIjFr_ z!Sa93t>uk~C;ai@F=i0@SQEjrWS>*d{Q52?IyXU?C9x#V56*gy7{-wak8Bs-`sp7} zalCkx6NwTx^kt5)+L-FB6QC5A+E0?6&e6;QjDL{Iw=WyMW@Ej^M@x;k^iD=%R))@?NaSo>WAJJ7tULFTT|T;$UiwywdJV2{iz+s>t4-Z8=O5Ir~Di*@&g%HlNMfD_w(ce7deN;4!GD8EcxWvUF~j3G$J* z5uv=KALk=w2eav~FBtX?Z?EHMOaNAA3GRmWYiKUY8fvm6Y@o}(t3?a%=$a7WD7hJz z86oMs+pMD1LNyh2uSK{I1J5;Lc|0U_JQDIf9+x;kVg~R*hLaSm{rZh$3ECcwePQ6T zZGNoJ7-osG^`77zy}-uUglk}EhgvEFGNkC&GeY{Q&PFsQrUz-{saY`6meP1txXK-< z=kgEABuu(ySsJN2hX0vcGi!R+I?*8vQgu%E&CGbgwdYtmzs#j+*8*9XQ%8^HOH%?_ zuEO}IurrOSks(D-YvC`*Vw4aMs24KMM>sgjy)YtF_%-er$`F#(ZA;JL#yc-L|AcGF)p^-W-Yd0A&GFlBEjY*ufjX~Dl>@nnHuNYZ8beedh>H5 z^UONgmgH0e!UK7R86cNjgt&ld<7^zfOF^`6>{ckmwRV3v?jq*=N~-)?dnc3B%*Y_M zf@rCkITXR6v<-%6Ba=H7YB#efv*qnRJodJA<2r>q3ZU|7DnC|>m^>SCt(Gi1!xAw` zEua#9qm`Z_3rPef>h~7jtm?dvJ6uzA-ya(TVbfzD^~xyZI`~6bRxouB014o<@hb~q z!^WJFWZ!Idm(DXBS#`iWnFg}k`K$h}U}v`LeMw*9b4@gR@rD4#tQI~re+!9FN$UDkkJ!Qpc9ErTpXRhY@3R`y}MP0fc%0Szt7u(cnvS-v+_%#{sR zZ#%_tJZcygJjX}$h|mIV4rLM)asd({3m5^K{#_4$4wG$pi823zG8)lJMj-=7af!@r z;n*{`eRzaQW1iJ5s86b(2qjqG?4ce6o3)P`a=!eTAsrn{onJ0tw_^ z*?4M?+LRe)mjWlCRCV&F7Gjcx?ib=3(j&PUj_4*#r$8gLP6DRrckK|3 zKc$0+f;+^k+S7A+sTT!=RD;T|kveWz51Z$T^L@u-Zk+6z;6sXUY4FwaptQytrDl~iozO~bUuFzWd7iui_ z(nXfYR0Y$(?JhEC|9+0t4n;%M`8_4V?@2E)>9FAn&3=33%-qxJCQ6-nd+PgF$*RPE zg?KPdM#b{bP5SiLYm~hZli(HCdZ=QzNyBfV-ttkKi3>5Zaj<3FN*O|(EMK~gW}8%k zez$l*oeDAaX&qs|)@^fC`MkrjVg=)Bo2{7FvfQdx}Wg3ubnJ~0Jv^~at-99@n{X#QW=Y07J z17oPe#{(8g-#`eG0YVcLn5H#{OKx~QNx#`TGab)vE;S|hZJ5uOe8o+5TqNEZ4^0y*TJi?mBu4HV^bZ$CxOwFY>mywE3u_5EWt>9r8sTK~1kUw6_FX(#(j zl4<^;m|--BOg6yOMSDIDnrRfv{e9Mj9**F9WLAy+1dLMvyT5Pc;852)aNnHDt#h9Y z6vF=V3+>vwlBDTg4^&%Z(y!V$4Gv2J-NmDOXUPUfc>o+2stpY>5@Jt(ld2NZ5YVku zJbnoZ#1t_kmjAU)?N8Gf8MY~*M6*TDvDA-SBl;LVbNEXJtH`w~|FxuogxqnOn$ueH zFZ&KATj-;^Ohh4@M<80Ia9_A3pGB`W8QlB!-CGuOARPUkUXZ;yEBOL=k94p)_pmLOrwqewG2_ujScVH>71}hvX+NQO$c9$2d#Nw~YmKd-$C< z^v0vqf=Qc8va#6DlYU`a^;}X{Nnsd1Bphc;>N`)GFs@^delBH7GOIyyom1Bc;8pT^ zIxlKQSp^f*CKd>V%FxNgm74f=;f`@vgJcudMiRQA&JY$h-yt2~?J~~47kUHrA!XwY z+BvpW8;XNhyy$$x#O^&OqICHua6)64=I@&q)D4eMS{OA}9>=XD%FnxLuSS<_Z6VLP zhP34yyVK7}>bcM6bVne` ze&ZdSzrr*k>E6^+j_(=o16eivPEJEp0T!4qIM!25au=LxXv@3Oc<)hJ?zD9ATuX6q z&FluYRUApt5!R9rjc(e6@+M|Xfjp6;oNow!tWTa3LKb9OxKa*VMt_;%E#*=KR7783 z&o_f-5ALMxOc$Aw;gWL`WI+~U%t1G(IfZd`+Gxv^d_BoNCmn^(Y>Kq5r6Of7KoUen z{jF>?l-h0BeNRHCjq6*k_KeT?3H^*P8WshGX%%nVXX#$2KS!uU{5v3uH!tS9lgHSw zA$y?YU(b4zKoQ?Rc8`53v;DlT%u z9w5~sB2u7e8XNAqC@Gf}|gaka8TmveO&uf}`>RKx0Cx@2(^iPJ!-J2(lF<7*}a z>Tgo2<}6MAqv=lhg3j+SGsL5~1Kq%` z$7ldAvYLzLF`>=`Bb2!Y5+Bh(LGqjKN02RD$;yuC`Yq#%MIet}MBpr=@ zlQ;-!W|vk&h8(E(_|YCl^hZ_=d8ZVV;kEAp71U6`C2kR8 zCBLBuX?)DS*TrIw-=~-Z)$jU_b7neLx52+navTh;FZGE2o7@@9K_rvG?%lg?ZMDBm zKLMPNeNK?)#^h?wio7U4&P=Jya)ufIZGr9D0#EPT0<^)N)}vYG$y*%5{LY1Ard1F^ z3TK6&IegQ!{oI}p1{{-qc?+M>8;#3^?yXX%OZefnl;Z**#PETG5Q~k?FiGna3^R9D zl&k_;s(T(5!LdVxtv!a^fWXY&e?*_FwQ|w8lpQI zj^W>S{`cz6)N>MPjFEBwM@v5H)#~yw(;$3yeZ!!-OGix6p4O}kE>#PQ!J}tItO+MJ zTEpqPJIBAZk-#!D3KomprHLX&?@4cIAbs3cTHg}w$G6pwkf?{e(@EQtS^x>MZoHh< z3{5p^Tl8x@DwL~rm3|h^I{Z^3w4;&XYXHne88uujDg`&gG$w6`pVOUd*b5~KpV+an z>l?;s;1GyISMM>q>9wC=>69VhZZENU|Ei@imG{Z%1yT8^s#~NDlCu$vH|ai%&?`JV zftsFw4<3)N`=p|IQvQ%`1q#|d|IS3a6<#pn?N zMUgVAYs5cGj}S#hy^C#1CsQe)-=rJe-goQmR&2V#l%IAgrr2}qyN zKs&CKYCb(GZi2;Xma$=K9YK9dlRe%XtNQ`A;T%>Ykif~>E3MtG5o(q*QB#x)5(E8k z_{PO1zX$ZHD3~RF@{;!%n=nzcUN)vEtMcEup5DhhpENA#$_~zCZaW~XB6bX2{OFNL z;tBjHn>DJq>>Sw39D)nk9j|c&t+#b*RLXKemD!&)2CwiNehW|&4`1ScvQUvTpY0H# zN;|gPG$ze9?D4{}P(MRK!_l@AviPpkR?;!mL~hT(8qMci@2QXG=v@>`C;kgqfrIs@ zqgO3cogXfX6v^Q7iMPZl_@Yu^G8xhg>@-#Hh)=LaOz72)W!yeCV{6fCf?9~qj@gyw$#&E(0+$r0=)h9)@PHnh$((0 z^(+nM?tOr}1@P-Y1(CW>0GbpT^&CGiUd7F_aB&#uDd3nefl8pI&~wg%?C!l2m+Po0 zrqQm+fecmJFC&M^iH%*o?2EW$a!v8d_4TIdbQ1g*_l~PE5G)Bz%Yt~?7zTtsu0unQ zti8SO3QK~-R?=b-R3L0|1w_Af75?9YcIW*QSb(Byh%(sezQj_7xq;HmA={HNZ5es$ z8p@q3cJ?zuva}Uyb|ZZ+_}5(G=(z*vvnO3}1+Ey*!Z3=9!<7?lgKla}_*>{UGE?6a^3^*B{`_w9;QkjIvTq9$-cV`vNmX zH$fk%_Pf)8%<5)1u$J^M3jFsfo{O^(LV>h(P-H7j@#8~ax@TV;2Heb+2t5I>8CB2f6b z=}@WtL4F<9;A$Tr9;O&S1~Z5U>K?->ACbsz$3;cM?ap}R0>r^Y-GDscd^9n~b z?;PnLwRat_Hp}0yb{lGYGG-)z2P0M@02)iJ#sM?m3L70k@QpM0*Qay4cbgd#Ef*Jb zt!c8q@Q1bchD@&s`S_>ioV-M$sHWfolkxnmiRKr*2^&TUNlaPoTd{qe5^Cs)xJlHW z`bpGJ*2|Qw$NZWvEfl-J>|=of&xcz@5OA9YThVKL^)FGabN4~1D{+@FMG~RpYh?>= z%oAkj81yx~WTW@?ioDNm(9_K*d1_DU!1I+vsZr|}BKx2sVo#+uRtyg4@H#hZ=UA4% zZWy5p87>AJCm3!sy+F7^0V!@Rj80hfS^7$9)qmKcw2#ccTXk0NN^9^oIje4^8-vtJ zdvqJ^iOM;ms(22W!GhI{j)h~ZdEBs#oDL~f0 z4RMRFbKh%fiRc|*D#8Jd{(SaQ1Y$if_)Yu--Ao2p^PaI#Khvt{*7joGD##3dzn(8; z7mIy6%Tn9O1qfF2NRgGh>f6PGQ~K@v_$9!7Ct043nRbBjMuX6m?=H*ge(`8z#aW4Ew9t{7)> zJNDi^M)l6R-IMxTtzmY;?9=S-eF9Q%#nXh&3z-S-&pT&pj%MZEjM!(8LCXa3Pv-eE z+a#!{`tHF1Bu_?ra~YoXOky0;2&vv+CKaA$+3#1{JZOjG6;Qs`ld^q?&!J#UL{-?0 z-TJ+^Isa8HTSP-MG3q&37lHpS3jx0W9HKXiscPTwI2DeuI{;M3#1hn7$Da4GdS}~a zHN<-c()A~=6teNQ%(VmzdY}01xCE$runwpuUlVk&0A@v38^7uWjs#)!sHe=Z766t`o3my0^kDrxfTi4WynyIc}_~q!b}^80PS<638x^zShQGl=tv^JYc~R0Iy+j4rk0v@ zOX;&{A7dZ$9?6d99Hg#$IVb~-5-ZJH8WShqGWB1z{4|)Ko0+sqAE8-k9j^ei(I#aV z&IRT(b}~1cWkDKt?W#{PP)_Zph*H{hNkZMO6r#9^mxva79hm z6joSAxt>VUE84YVJwLryo*3||#HRl;qx-VI>IBeG9Uz8WumJ7t=W2)qfNFX2^R6Yw zbieeN`*3S!wV&+zsW$W(s)|oW&o*J{`-QWIqBmG3W*>!}?)(v7>b7-vR75L`%$s## zRHZM-LU`Y^L9HIaBeewROb9Fn;)t`73#ON-5?G=EiMkjS7`|)tTF+vmOa5t2@gqXS z94zc7IuF71+PMcD^JnS=DWf6ulAP1Hs+z)L@;iI)w%PlPqTi82j;6%vqJsWmTw2+y zYV1jW!y=V_=Z%CCb3&)tS)Uw1N=I(3;{_GpceWzC|ADF{%xBfAbd|xmu3ro`AXqA- zP##wAjiJe*Pm_xWoRUBqIm5atR0w$|yG9yW^DWl>LD}B@(z@pank>rV*%Q*bXBZ`x8fWk zr)^=MzaDgj8hR?p>uVzqGB~Qprt=c8#i9$@UH4P?RJst{H_(d1#r0ntf@fv1L;uHd9r6Xh*j=g;wG5Y=|*(FH@0nAC-@Pfuv z2Ey+Pz%fxAESGw`;yf6ty5^Clua~H#RkgsrE3Sch>eLM}iS2pms6#IDx@GBc6<1++ zjxrk{dH-!@`!SR}m|gMsF<^2u^PLTIb_~1cz1jX6WXWwG@vlMh7=O2^EnkD|%I|?e zVh_D8&!bVujEtUj{@%xQAZ`lTE3_7sbLK;PkPt-;*p+{)%7=h*m=-R0*AT{~`t=#cw8W?vtHh>VD)q+sM^i*_EONXgy2OpGc|$om5oHsmd>{>@eZ_@;WU_0gdl-nvlicYMlS{XL<<7=9E6 zxGov7()Hptq$cx~PFGT5-`s>%Go}Y2ODl=_i1OCBuXz>f1H?wVbIj-!+qrx-zjBc# z%o)c5v#3REl5sD{v-JwxH5G+^n?3Rf?^DS}A zRX@lOz%?mK#-{#1&pekQL%uX$_SY&-RKZa26snwz;cR#Es z`n4O})xWf$YZemLHaFK2S=v58-`q6pIkV5pm8nTGo|u+u$Z@bd#{GGZy0QKx1fC%!3T7N?xssFAM8OTuZp^WA36y`x?SjiKt`*PDC9UBY5h_1*RJB=arPRl1xZmd<>%7`+}T zCf1r-+*~foz9{^yDF4GkW4%pr&$+rY=a1eYc(oU`UYY}Ke#iu|mTaR z3k>*Efb)yr`m+2Y}u^_dUooq<~?LE}@+&XreLh96C366j?^A2t(@ZRdR4 zsk}72eIsyqK5PRl0&bgZEOJpu{9|ZA(oR?`L=77zSuhp_0G<^gTmk`(d;p@hCZ~gy zr#c2TOp;e=!CtC~WOu(N@BSIT@PPYAy5O4SALm)yhvwIu@OWd8FNj~4khfH@JEJ1RV+7P34q+C-sf}4S?4qNSl~rCHjGj&gi1z+@RRwlRB!H|sa3oM%x#I<$ zEc2d^%P~v}d$6qo`6UAcT^~M#e`S&x8P<#aF)v=nT=4e!n;Y2b<6AYddGfyFFmYv3 zV56F2Pg_#h1aa#*DOh;cJG8NUKG#Hj`TL{y5Z*h>VBwwpihH#qpWY7@|Kooq+xLB} z9?}`r1-V91e;2ZXGxv!^cL2X#>)j2Ho9N-nm;Dfnnml)Qf>r*V$zu)IM9HBH9O%z zkzamWcUiT5hACa*%60lXwS%@Lio4EL{@M1%A4o&iWb0v!Li~F8(Ge-Y6@0uQ(d^T{ zI0l&cP`1iGBAaLx<3^sEt{Ta@qq)DeF-gj0t$sLcns zR;I;}E(M4>nMS*E9^u=pzgLV3>fYZ&$W#1Mxp#%ai|!^9uj+@!MD?&&G17Y$HfVH{KKi!v^1tf!b3k!&9T=8MYIrQI z$^Z7t&D9H7oK@@|GBP}u{rexy9-yx8tz@e*(ps+%Rw>&Xf{6$)PpHtXZ{Vv&>on8Q z$HZjqgUEx8R;c!(=;8H9VJ%VXv^GgMGV8{gN8NQZ)?bA%>sM%bbG4l(l-`4|9+EeX z{Np;wxL|ow(ChH&%RmSd*I7-Y{S0H~;^IOPN9a8ua$U+}P*~{+?A*UUCn5tqpuGU@ zZ#MP=_$~#vv0|}mY#&TUd)|#RytFQOjPbvlg|U+1yveKq%yhDRLm*U+Z-b|d8fQo`0t9|bXPt8baeM4s`!9g)f! zjfkQmFFuq6l_IJyV3^8M@9PO}nqI!5*3WGB6O;1I0aNQ1vw`>bbFk~o{_4u26MKw% zaRBZpwI!>01$)ZJk0k<5$fY<_V(0pjpJn_u-a|DY0 z?x$65w!_OLrq!rB$K#@ixWWHHi!E6$S0JgaMO_6ktS)s|;=GxW{o!bbG9KRZoW`Jo zi_6YX3Ij8H_BD8|K0{lMHudl18A4o_yQ>fIvDA0IwKbbo(r?XB5b`U;I`LC@C5)dN z!6qeXLLR7mV%+nU!VTKoKuGwf*r;No<_WLDA^kc zp^O7sck1dC3}wAcXUx}4711Mq(LYoyhV}ATas$o2rAotpC{Y$VRY>#rX}Y)%I!I>O z%+&9akQgYgDm7hP@ECo3dE!TXmi1GUJbTZ9Db}&u{j0Dz7~q%`{C~(Q#Y@Oe)X8U2<;!~SH2 z*dbu3PE-`^J>$8PS!}Z2%69oL^fm$^7hHKSj+u3%9qwdn&DU8gW-+u>+u+6O(rIbF zD`7F9JkDdp@?U?AOt-6c7y6A>c5>illqF3v_7!>fN zR+)0=3b}xcWR#F2p&!`r&4lKPB8fHD&t7U9Z?oBGE}cb+uXcX9#hgUmM&MJR9Ngb> zRs)MNFpBU#AHB@U+FGJGbB2mZ=)5_Z5Q%93de=K`DjmZSxT0pqunOE`i=d6X0xBWn z0@bC!Fpj58t^TB*eY0OmA|=X`vNr=7L8@V(OecjbF# zqEI*Ddi?F^!-T^Se#pSY8+pX$c)4nJx+#-h15KDV@a?s>gqypK25`&&`p5fSZv}2MS$8EB!4uHR-bpHbov0LqqN9N1#a=X1nF4pk7XPIh6dB#S#Z2kCMT8y}1Enu9EsjUDWIrN-RR&Lp^N^H-vCTu!L~3!X zv7g^CBe0DC^g-TwB4S>N*BGk0{7UU-OeICe0<{&E*ZP$WNGQ?L?jz25oyBsHQ7>+` zu$ZyNlAH~EkB)3w*fSr?Q!Av+2fpwpLie{w?68631igGx_e|z(g$JF)2R3_U z#s;q{-qyh0j7x>;mLJ#pqcEi)vc(6y#iOmq-_VBLN>)W{4=?QcNP-)z zp}h`{cXgD_-L{`h)R0Kog@jmS+{%`wz_XgoF^GfqaF$5|qPDa|7d^7^Yw+kXWp091 zjg$s-IG2C>Vs5Go3BkISq$jI{7wUtk)55Q)?beS~7Uf zvo!*{_SyXIKQ5~C1PYjp$?;b(n06E~*m~L{z)I!NvW++$r%XEfFMDQ5W+iBMIM;DI zY^X*^nAanB83{=s;jjLywvRkn7JkXVxRbk)$E6;8Ia zFtUkRrtY~X|0LV*!0kd4j=}<5>T7N@^=sbC16{kMK0~64WoHH8-A`p-I+S}LSm!o& zZ+W$C=6){zLREJCAm~iyXRpFBP~Z8I-Aw4;gHiIgccLN}5UEvu?J-(tU6sxSa*63i zH0dlsfvd!4rJe9LnbOaxSpG$eg8r01&E?7ap@+km&FiX6U??JF@hOZ;x3nqLO{ri> zB2gMZ6gO&yVVN_>uZ_&8qi3`wNNv)c%to3_7B&u?mFqE|Fi_sGIGzJKkLXWmlF>4# z5E#U>_=yEpbLysFo_bu3HIX0sC4~1$MMq(Nf^&6u;*lC>&C{W#kA0%|^Qi1gE5Fy0 zN7WL!ffq>fKK1Cm;=Gcb8(0TK5ANjiyYY<+`uHCc|FL)(%eay=V7?;aM~e63i^V0U z1>5l6s>xKl>P^^44Z$G|{*ku-$b~EPpua^R`Y$)2-j3FXaztGbn~`<4+QK^v5=*+Q zcGOuv6@?*p(5z=FA5P=NSHHO#Jo`O*6yMj+r?@_~C2q#;*oB2f(go)h)~I}}ypsu4 z<{Zu;wvjn@rLzl$0zwfQ%FCYg2Wv@`cij?a3wbNKy@Z9?k*zqD`lSI_C7%^0z`3}d z$`k|4{YTerdiH#K(OtogpO!=5PYW@XAnP7PL_SUw_vqOKCusyMPfieUaQTjGHEKMF z2Sw#iR6s>_ikMV|9oA${vj(n?Sk^>46pl1&oxxxj<{zNoda^0q91!@b9`&Rj!|XjTRayHs#-Wc{uz($)SV|NB=j+#A6D;r?Q()>X zzt#ixy*jOLZ%5RlL+PouGA8AY=BF2t(~9mgzkP43{6BM9nv|1`bGNQc`dUuZtkYxj zx!Mqs>?Do$o|cY&f+-Re#j1N$13KKYb8PU*K#S@UEOFq(ErOkZ4Y?s#agUl znpgKqSfMx8UutnnV@i|~f0)3>CS%-tmD4B(kfs1u zf}~;4r2PqLp|^15!2d$%$<6AD=g&4-yUjnC{MB?GUu8QVBb zCHmK5J8?29JV5ehI(3D~OkcpNl(CFf=^KYQWWX&|Y9VIb8Th|!bTgqB&6GrbKWI23 z!cM0!mlwk%avT#^g_ic=x5KU=RZ(YyRa++E2g-M~Vu-?H834y)Sk9Fk3M$;;?sO6t zenQf@0R5u2voe3f!psoX4B(P?QAYNb`{y2tH#1#P!VJncjih`~a^x-7nh9nICU2VH8h!Q8HLK6A_4PY}BO+Q^m7;rWbP z)%_Fuli2)qvhGBX;5vL|?gl9mO&nVHo`rFs_e!N1+Ft3Q?p#avL(?NaWhP@(5$dkD zKlxa(Jvd%8rJ2ZYpy0KP-~KN&uo6gePdi?4AFY2p^~4xnQonLl-{Wo`^HRJmgYw)> z!QqxUn$=u&!I9)*yC*zv-6R^)Xh#g?U*WdJ>Il$()Si)|?rYIaDgHZYn+oMIxO`*Q z^qg+RbK+!myZ?8rBt>w*pMvGH&1`B&LojI!aQl_Gw(>NlxFu1r#nfxtB!EXhK4>7D zy(j8N63mtb+x1=$0Dq*?mGsOT3GixOH4E~{Fxvwxf;FrNtF5I4YE%JDB86M<_heRl zxK~p^vp*fKWSlCyZUfD|_W+HUnaJEW%qd1Om9zZNd8G(Dcem~5#!f2`~!z&e^mmwxSY!k@cxT#=p{-7X@qHc~4#Xn?xn zccmT^Gd#Q(ovNLNbGct8&2pTNq5<`5?bh2?s5&yV?VekA2nr`G3;RQ2 zu+jYq{skaQtJKhi4LbiEb@g-NGlC#H1~2FvmVeUev~THco|3Hu*NfAx^){9n4N84D zL$t&bLK6=lm2@mLu^gZA5=h|2sDwg2Q^zLF_K(=pqRLiqA>%*v{us)0JcXgP*|&K$ zYnpX$EBl_@NRT^&k%vEbG9Fi#RbD%>Kq@sGlh3}Es21vk3Uu3~20fjqVS((S(tr`5 zm()i-br4xj=3z+289@kxU}%6?3e(#HP{#}n7puFd&{(-w+=8H++V?r=mS8x$>pjor zk*K&orh>Eccc>km?)>LtKqb3`+bxV7?7T+(VBclztn;Og{%&H2L^Km7C(?rx1UYbsZN)#1)4eOD9%1o!y{g~vb8 z7AdyQlS3hGj(kODt|6X7$Eg3JG=IN;ph&S|BU8bZcXArTfiDK!aw4FwP|7Y=%cZXW z?#;vSTJi7*lM;YuUaYl)UY-Y@ziAuRe~PyzH`7Y`$q2GhuPDt^QJ)iwNUbQZBM+zn zKmYgSmp!^^nVd=x&gW9TSa7bOYz7YB+!cw`Er7p?U*J#fw~F9)x%h1V@CRW6Q$F-p z8Wbw22a^9UaKb~V$sKlyR7A!_6?zR>or%p>AO1I}o`kVPvPQ9^z!$Qr7C zTI;M+*t7Dn*>wCWE8@{sCW$zw~vT*ox(`XTm+V7HgG0~t8$j2 zLJ*r6W4LIQ6(wivqdbYxJFrbi#Cf<-BfP7-;*sKIry<*)GR?5j-UoEa`3XfO=60Ip z-1FSI%{+=JM)~Nuy5z)=DWuCyY%&>~1SAs>01yk_;{V*^+a+VmNa!s6tu0b24(CCk z@w>|c8#Kq3J$nkhfp6P!ib0)k$;{|ugILr?o6#ns;5iL2@&fg^7=1dOVF>kUw^_0F zDCwQ&t!|WtX>JzOx|!GJ)0^&p-VZ4J-O;WT8kc;GK2b9w4h*_@OQ z2mlW{JuJ$<)S(vbklVkISp{#`TCox=U7E+oJAK+1cJqG2E$VmPT^fF`d%*OCknepa zkspRRqSy%5FoI*n&6Ee~%1)mJyD7S=Td_4s&%?$^#A>2~?u;*5j)+d-App)_7u9Yn z7+_s#nI+5@KovR3+*1z%$$lAdg_Z!r>31&EChIZarJbP=hw)^aJv=q;L2e>zmb?Cgz{qoe>X8h&7i`{*E!HUu7unSYfpt|dDVke zzedcuVsaU-l~~=i{|tE{q%n<+G)|5HJIo&z2!0f?&dhlX+Oj)CI{HjWYS0leDpV8( z1t3+K+BK_~W|dKhae0u+pdf{KqVI1Vfz6LLQLNJA1EzplZU4pE4?6nwIO8X*P^skS?xAsH{#_t6=*&9JDQd|pJ zm^oN~a8+*#=0x)N5sOD_0gpAAJT{ksbAXvt3mw7XeM1nf*w!H8Dk-6-82`@hzxCq#`>eE7 zcihEi{+bh;c^o*PcqWIGwT%4x_Xk6Wl&7?sE?j4<^>`M6#3H6ingouxqvIrs9S!I= znyFdB)~;yOACn)G{F==^2l==6x)F*edW`>BzcDX1UI87TsSPa4f3RzxIh}&?8oYa} zZuUX8+>(`99E2hxUjSwJrfD`&v zv~#-9s`ex`mwfgGfV0D5VUO{)PX}QKViDj|`}f!{PzrK*=*YoTNTs z`;5IV)8X5;B(Xk6h)eZs*iaX`&Q_2eInY$2#$TCxav8N0a?wty70m8x%>g1!2`9l= zwx6j77{xHD{_WXe8!79;7kwJm80jTJg*fa3N}+I6JK*~`JXR^D&8+W#sv0x8lghm( zw<05l#yK$sUvm=S*V~^MULI$MqZ+B6g||3H)4`!Ptl>y36s0}#ev5bKq{#JHgrimf zUIL$3?}WnNjzvO2%fMu$9o4XfZm8pfM6!o_#5IL`R4YJuz>)A>jlOzo29WB)4X4MF zIs1zQ_m2tOIz#b~kqcQmS{V_1=qY$?TJQOzLn9s81JE;t&UH>qmY@rDEb;DVPv(@5 zBYwwSuG3*cf7~kK$G-!R^s4M~Hg7C*hPJ}jQsj9QR4v}#R*aHhyUAUMx{J{RnBw2p zlgJIf4z`x@Y|7zr)@aX~2{>K=Aq6UcWE1#Co3n*sI~|(MD)mxU zDkbmn-7S`p4U5kp@EyX)n3e2KAigrw{0*cS%0&^reK)V#q*n%2>HyO1S#mak{yG+M zd`Nbe!>ajcJ$C6nEaAi5XL?DFkQhvv@R#Y0iKuZN!lEoSoBJ8!>c{P!b#*2L*=Ss7 zWbn|jN3S;(_hyB32d(>95?`vvC{d$~YEU;dqpXgmd0BM|z#>n9SbTHpb8?gg2>b*m zSkX?8y<$%t5A-GIju_6~N4N4Wct#Y~|BMuC&qRHupiQEsJ5{lybVE)b@IGh z`d_9&z0N9bcd#d>j-WlVqxr%WcA6J1&qhT3)`7D*m@pmEVD1l3SpN=(Wz=)X|KQmy zLdq(-yv_8h0JJ886~o8a_1d6y^+H~Q#RZ>A&1-csT;FR= z9FNDnx8s}f7|_D41fx#AC=J+^6{)IK&js0-{oy%|slCQ-jZ(%>DyZtHRZC!0So!mg zq4~}j_cAf;r`3ly2XBG!n1PAp4_%44ExqeBF%CUaZlme1GmUmqA}Orb(o|~ed+lNO z9%{eqlvHgKhDIM^{?VvykelhOa2rfIS*o3Lytb-g?)2*KnNdvtBi2GD5h^h^hXV|% zY=&?M0C7oitsc!=vm|h&s{-}ASd&@I9qQ0>#H?7tNEm_ljMQ?|2%gA2@G_C37!L); z2|T<|qLA~fOD9*4c3}aai&nj9XP|le(FOZy$*Li9SL@DDSvP$cU|IuXQ0K=L$QmHT zY*ftXH2wquj;g9nS*<$YxTMV;e&R3m^SVs^TU$pQuC@*rK3#6{8Eg>9M1Pnk&Jg?* z+`+@c!!!AV{~@P;b7F|UsU&rLJ*l2C7EQU@#d+md-hK7Q2@(Z~IMQZqw<7^(pHtBc zg(O~b{#Y(<6MdK+Vfkt`H)-m#l?l*9gr?~QrA8xU-nBC|3Vrv#cA^Y(!ZZ_ zCj39L4Sz-s?N>UfbRWlfGUl6KaNsr=6df&b zMU0{{W<;|PS1L=>AU|Dw@Y)tSg$EqhcxE3 z!qXXAvF6esmQLlcg8D@lGTjd-eS0)b!Yle8`dzh`t`F^V1@<`ryEkrf6IkH(40HqZ zz+8g*mulI2fOFd%m2d=m_XUGPM}HyIYi6Nv1E}Rc`^wF&l34WQjV8r1^p}hPx$tn_`kP8?9Fn_XTKpd1v@$&{IG>T0o`1jrL5Tm}O z-G{P}KBev$Kj7jwNoImL{794MNyOm7n#b#>TV0bv>GiQ1tf52Qu5WPDeA(ktfl2ND7^a?LX5f!+= zbGMV(dCw+Vlhst-I|qgDH~;a}(x)0So$9TD!Io(`ocz#12Aql_cS-$6sP%v35;fv? zq*L9}Qa42XAuZ~RvvN^4aBkNiJg255_cf9`56kVKlLNCArM{vlGP!HdkJ^X(--TgS zjs~lL=>+Zxoa?6#K?&}y1+@(;Mw|=g(n);Jck>s!q*hhqY#5NyET-2;lqHrQ6cKgD zlxBnSP^-GX6Hb^SCKA>|%M+8Cc=vb~Pox{f!j;%Fn={ftaR2MIP0S%XTgp-5zp?a;-7&L z?>SsBYG%*5my&1Olle}~{>{h4<{A4Gj=y$I;2TRl+uWqo>Bf<{$If7;aRXaxjQkTR zQN8)-IC}2xRyab>hYhI=ru)*rGFyTu|c)ZGkw~OuPbfV8;TH>g*BJB*J1(F>RFwk>RjseTZ6X zuEh^3g7HuAKjkVRxNjkVR3fcPE?cx2^-i()5IiGgJB!PvrxbIa+IXXz#8^v194P*< z=a56Y%{WGvVm!LUW6QB3Y~_>d|F8<>LjYQ0vgzeg<QiyY z_(tXlSUoF*-WOpIL9|$j)`t@)$bO)yU%@gtr@&onnl*M*FX*zT>PG+sNr4ZYjjxU@ z_c_j%LU7+kEcLQFW6sj6DO4q-@qW^NNEKzSSD~;_=)-1@y8pm1H9u>2k%ut@l?b{k znJ+qMNxS=K%}{5UQmGqL5ZD*`6Tpa=zt$Yv!MuavRU??<08w)nccydC7gIx@GlMj$5TQ$Ry@6rO419KggOP^Fl3{lKrw~sPc%@+24=nKMrJU#1ZEQTQnpQkoZT^C5>3kxTU2U%%nhH`Z^yC(LQajE5 zGUxs*GAom+@2K?Wv$7V?mt~Lay5nfzm<1Iyh(y z6jz}Q(_=vywjZNL5XE;b0?S&Szp5wfyE zwPDkY+{DlLlFbr0PDehiyIYyE^~_1!hPzp6wdx&9Nz^^NXYur?(s3K*+l3=D4?``@ z{5(G{h4r#>b3HjGrC?rGvZSl<()@jpJOrX749H)dv!w4bNHV^QTr#HUOB8N^>oXkZ$hu~2|ZfYhxQ*4w))tTd7tIJ!}A zB6A{RG6tyXe*2k@P9EmmC;CPv)Wj|zQG+v?&wsD4!lWaQSNiCNk`U8ycSWUl|J)YB zoh{kV(0n+bulUCw%!UeM9FmL>{*TSDeGVx|`H*n_D4sK##TF2y@Ldhz)0`|`IU7QN zOKgBt&)wg(X}i6S7+Fh~F=9a`zw6I(J$e)JIt~F7FQYDkygH?plh5zd%w>p^XTHOX zh3)?}--A+egwmdx4;Ox7HG(fD4USCfU`&4AV{sL4dtz8t7&&8bBOzz$v$YrXwmBfX zE!_%C=pMu?Wh!zn&maYTTQfH>XkV zhr@({E=t8D+zUAa7ihyC`2_IG^3qC2i+a>LJrD_>K&# z{ZKV~LUpJPyC2Gvd_9ckgOON=6sIC=d*AGe_SC>ikS@n%yI#d=0M{dH0*Y_4Z=7qy z1a{U^^eHFJIYJ9wIPoLVc4fMzXVav%ZekfE&7@p26Fk>Hy8*$5Hez`0h{G~M0&gNm zFqf#~Y@IuM4}l}Shy9K0BGKmWDd0-oQfzQeErzcD8-()bKQo@7hFYe?3#<}FF0YFO zKeceXl;-JQ{d{}%Yvmufj%b^}bexDn++>0*f-VU?6#d9O$K+nF->znFzho=^;t zUZ8Lvae+&rpyWaivtaiEGuR=XA=1)Pmf&$MsxoK%N< z-2!@0$zP87T*D=aYr1PcF_lgPN<%5JcDE{(h*0aV{|5ue$mocqn84cF zyyNVvb#cLXno z8XVEiz)9Ob|6Ufco~L*ut)2Yt2FZV-O^(#TR~ zYny}!Ovtp^%rO?`mpj(pM5mJsWE46~ zv-R*fyxPIK0J>Kn>>PoVz5+AuxM(_|C&3tI|G_Ja#`3u097LttiW_IeXcjA;KaLFp z#zt;Lk)1K8M|WMhc-S_#_olH&l+T7>Nc=0_nxiwKsHl^X@s!|JJ#*FD@xD@=Q=8xj zAdVj_a`!WzBd<3-R3{(cLs60x+!{HL5%^GFskqLlOd@x)LCg)AS-yTeHR!VATi+aK zAMVKwjSVg}Zy=%3!aGcTFEfCC*gT!;KG72%?-<-0xcA!JbPIzJ3Xs^QSH~jqpGDUr0hUC-z}veTP7VOY02# zkBU=crf3?YpuaG73Ii=H+i9CdzC2)%2pdk_jd zZBEngO>djDThY{~m^ATG^i&(}S?+xG$ACrh0O{P_1pSj!lth55|0{?<#N{T}uw`vl(I&)c|>!=b|a_=o7AcpMH1q}tzw@-fb zsn|(hU$OEsHDn~slm$J^9ic9eAf}#;#5*;5=qsgs!jSX#@JiZpKNQvXB;ag;?787i zhOcsH7W{6F*AzO^Lvrg!I<(2e!t5fRz@BShv#2;FBZXNW)851*056uegmYQ1=y{N< ziq)A8!LVv>ga_RxuVETEbqXvw2@b;$-7)nYKN^EZ3Cf@kVhOdPGMMwwdHcf|Jm0ob z@z$E9tGSfI%L2rgByQoDShX!BK3(g@!N!Wy>eg{N7hJ7-6uM!@7ITxrsmt;1rseVP=}=j5io|k=dnTWn>^E5Xyh#p z9r43~x0j-E+uN+&Cl55DpY2a$e+53><>GZtqwQ(}g&cIXV?uIl0& zjBUZDZM$fY0>_Co)-69HcYc+>FMO+ZQXIgGj-`evqj$LqLep*74XfD~L0dE(-N4B_ zaf7@~rJ~m!$}ZxEYnFJcqB811q&x>n+69eWXoNdRKfeiYoCCP1=x@lrP(inp-3rgS znj4K;{<{@|WLQhn_$R`qW`XvQ!K=lsUb4^HH#vs4))DrrkHVS12;Os@ys&Ai<$%^` z;Pi#}@z*wv6?>YEVs5wq;R`axB=$W7Nrme9Na#FkM#G-WK*E5dv7^HbzVq{pQhq^| z{m*T4?(|ej-dC0mFT##?y9G+H+Cx-%zr&4nkeJ|6jl&PpTw_ce-u%PqJtPlw4YSrY z0WNiJ(e()=(WL0A%T0}qNu}ls+=0j1aE6eJU=H1T6ZHpW$+3@`0~zIPbR!^D1|O|Z4iU>h{~+1;no(3pWf3F! z^2|XaAa*qSnv{OG6x5&N{h!=qmELpQWji;RN-ffj>=2;{vgE4?Ax>X_I*#geJ+1e8 zt@LjJa|f%up>o^7Hc0Z8J$o#qam>xJQS@fAeu@ztOVx9Cu0R}uZs#=nNYBvo{@x(w zj!x;R3X2_vZ`{y3YZR0kVhLrABlt#Rzfvk&@(}526koTMMK#)x3 zV`eFWY!)5M8%{^#Y4s^2Tw5wH*0!!D&K-L)N_X;35TEh}Wg4R1w;rF_#Q&F1sX4&}QfUfNm{OGKt}>k>#BcVx9}SYzb6$z8g&u5w^t5Ph(SV&}E-$*qT%A0czdW;{{r(DcyrH|CjI~ zt8hIMocVVyE3Sa(8Na9cT{&w@xEg2XLV9%6TvVGPgC~${W;ezr2-#R9vppXJ$YfE; zZFbWkr=t`~Ek_Bv@wx&vnqM<#p-=PSrtvEO>K5(@O^O`ZFI5)>v(I_e*~B|~IVE5( zmsyXFR2-+9-QLqxoKy0ZS+lId65%f?rfL}wcV2?P!>;bA= z=X_P4wrx!N^t(~#uD8?Ad_xNvt#E60RQJ-gSAn=9ArG@$l3$82*!=BcHvFV9#`oIQ z8JGH2AEW!ZJ)Iqh6?8pw5x2~X<5$jrieM8;TDxqjjBzxx!v`+qgP53s&pL+z#AmbI zy5;0s^^_dw*><{726{it? zCBJLwi8V=l#E_|=M|5#PHluBy9eNZ3!_0w)RL zl=5Qp9PK#*aT{%3(~S7ExNp?8ljE`x|EbWcDNlf3hT=wagFkKtrSYJD95+l@dm&)V1FJd||6cI#;Eze?bevVa+OBcQ|{>u$dxw+>E3d3$ctJ*tDbcRu$S~VYU{J zhzZ7OLnMz!Gw(3O1K1hS958<}+q)5&4R}4mk6SK3!USbiQ8MK+4%d>^lhQ~Q{jx`09b}ewlrvTr*CICnO4Z7Z2)^JWGg(Ez z^z?)XMXJ*^7@X=EE)4KsoL|rS93R6GWGrs!n{?uQ=oEwer0uTjXT}A*+w#Xe6Boir z?DkjA$j(GxG+^44YA%O zn_t)6jzXF#*2#@!t>I=}#fg2QylF;9#`y}gwjoy}DngD#jSQEE2ikld7UT4hK@5N# zuw4lV>Y+&>C}-6sR-pWTy#%qj(fVT=r$ErhNEd9LK58)n>M7#-+Lwdn^?ztZ;axA( ztv@?c%Q{KS}A&M|I(0)gykFmzGRa1tJelbD?0JKiG=i6p?pw(yl-L8@S?s+DSWey7 zFut2h(I6yK2qj5GnWMo>QDzNPicl)0qRG&#Or?QR(nNzM8Z=Q+nv;r>G;0ziy3c>@ zyEgaJgXj6Z@ArS-@A@t~`>eJ08ur?2?Q_oF=N!eFda1GJxNdH@VxQ3g_Dz)wt5_vu zcRYGf%jVH-y|^iTsCw|oqQK~t_9q(oz;K&vx=pY_0b3g z&B!iV^6s)*$*dQoZ!(8fE!^9B{6p|1iAA69-7{vFnjhfxG_~-7zVGcf=^`3@8Hc95 zE;VdkWbYkwSNl6Fb?+{!-eQtJ==?cWz9@S01RlG2J8Qa29pAOAk}2J4xy-N6evhe6c-$_I zE%72BXI#*Et^aWIGLKm`wY*WZp1Vt}H;A8D#$3Cr%UT;ymr2tZLD-GLc?iBQ(BnQdVzIoMjhpNVzDvo?5WVnOIJy(=sOpFVye(i z0U2)TZEg`J3tTE#-e2?+G~Z~qymIP9osP{c-vmA6c0@Kzv>KCgbjvjlS9SVK_Dq3aTW(@=+Kr{|(5^G0k%QNdQER<&%x~H- z8!The^B+H>OYwf8M%aP_rAiC$*kvA=Bf0ZSY*5ttQ~MT5M&+xmpC%?Fv@OXb)hL>) zk~!`S|BE|c&*aJ-D&+GWfARiKEB05_Umqnlwp}|HXH$Ogz#4&Au^y+Mlna`Zcdo!XKOM&Vd6B+FQsqO-b(BI<8iXB6V=PD{FZ0LR5(20WVfE3cWS1y^oB|~wb}7y{$uQ0bLR&giXyMgQ zNltQ?3&u>e(5hIj6RWE*$Kl~&=NF=LH*^Z$98md^AQu^@lh;^ZvzSwLiS6k%BJIu2 zIsLQt7i@@HuGAwt#&}tLxkcF&PU_qBYqPgKV#!xpsQi8upSZtDq2s7ryRCt}n&VGh zJZez3z_atAa>gQ!&$O%u*Igc8qY9YDUNX`U8a1t8Lhh3B3TYerHx7@Na9gFrdp;KPFr1aFrv3sR#I1#HAmf!K2rD^HdmJKV_n>M_$E4;ThOCYy1 ztu_2z`NrOTRox%X-Bj98bve!Tob9eDqw<62G>>&U<7X4GHniQexP1La7?=9?qSpcf zQLk#9*0uF?b1P2Uw|U>a@tp89z1CpH8PPXEM>mu|nJifQKtaMQx4J@H%Q{u<{wn5; zAABnZlb4K{FCF{Ja*qwW;aK0T-=;e$n|M6)y%kqlo_M>3Z&F#{C(3E<1e*mf*+cEM ze1eV67ro^7JAUbN#eAMm``pHG*BEFsm#k@l-_V{G=HXUZQXMA!$Vo*@|L8`xg~oZB z!Rxc)dgt2RQoGB1xS_zyOE;^%etzsxk(~|W)|zoziTE?8ejM*CEj0Z`%B(}%xOMng zOJ-`ZR_7TjOkHFW@NW4lqjm4z##Z^zF6Z$!_S(A`m)j`Gisf@UY!v@e)F)qhS|(?# zOn;c_IgU45CubjjR2X~UMzzJ7`R+U&QZ4@L9Qhv4l48y3pK5vZ-7YVV=x?HCXScsy zqGk7{SI1}u%d5w8_UZDTiB&RIE)$uSvz+D9c~z;aTVx0I$1v|29cC55lC|3BN>F_X z*ISx(9IZ*fd2J9=Tw+7BgXn}++TNk&O1AGdh^#D*c==>+pW?MX9urgnk6*OgjY`u+^#e`Yu8x@6%TyTT-P)=mhaSq0lDT+2j%$rl^nvdW3u?SIlHg+ z5$IMF?Uz~+te5mrZ`%7Cy<+hbPjsD?>%2KB@}qfbifn<{m$Oj~YBQd;CGMIR)vA8^ z@TIf}4w*;RJp-$=7B0Knp0a~8wTel_(PEVws{~)@ei@^sw~8v{oWnfZWSdwu51btL zWo67t&Khft>-*e`6Q*s8>`;4J)BnbBqQ!J~)iW=H(=+OK>78-jWE&(YX?^p}C>JjG ze7}l=od)`6-yQav{_=T{N+X-|{%|AlO}lwK+Lf+69$-!A*%_sqdXCz+=H&^~_z$CW zCPlCs$M<`4gp9WeTCia3(U37aZp@z_amM%JFFx8( zx>s6qqW7HM^E?wo(l}K05-SgkpE@}v`}9JlW{qgE_ZKd%?VC5D&hf_9UOC6_d&)6LwFUl=bnR{~4tk)J+H33qtmW46}&5tz7n;%A(t_tpG$n1-VYC6&*}C!E^BMGM=ILx!>Z`7Oo8cMrq8B4JK@byPO;qm z*6PjX?S3++**VMq*+dupvf{Tpcv$yahgq-mKk#W$M0AL!o2s{Z>tx3pH7QoHjj2BN zkE}SJy1eeQx;kd{l4{8qt~1r9&Ke7Ajuw6D+J--4J^GXz zH?3>DVOOfQA<^6A&W9a$XHE4#yC^S9yTs1b;qFGUYp>pJT>o0SZ+wMXv3uE#L&-M6 zYEhojb&}C6y?XD{Q?BMOOC_8!w;;-B46r{BBD zX6|&wEWJ4A-F6|x)H3wiuiwoing8GvlU%8!sSjJkdf3Y+!k76z4dZgO-ij618^3N% zE_>rG;&*g~V|KE^I=!NhV>4a0e*DC<+}t;4N_9lg?A~({kG-e5%$k)D`7z|Y?{Ybd z>SvQP=UU%1w48S9Sb)?^j(OXQ-)F4|(Am@+bg4=vzei4eQs=0=K}$KegHgIY=K_tQ zW()CL32NHea>VR#WG}m}%=IpDgMOEjDxb{`uutoIy^>>pgVmOspLk}n)n)G6xz2H8 z=A_^hIh}ZC>js5cd^V#jXEdz+vc=h!$#3$KBX6Z1EIl8mxMz)33;#AwJ6_+%Cc8up zj|`OYzV?y3tny)%VeJa_zOKf?+s7Wd$YK;H zmpb-Rd*c|>@YzSxXHH&wPRu)`1F(!EuLtD>yfFXQ(Sp3|rebHtllMJ>PS8 zOZaz68fZVCx%BYmz^m_-bwtcZ9UHT2uh03pCj1Sp6Fg*-E4td>ewdGztbaf09IxxX z?&WiRCmz{!b656)kfb@2lplR^(oe4s{<^|k%4xjS36t{?)U<;u3ioY!OLKoa&*oV3 z%s!#Lx9_Q`ZMmZ;v|aw5K_9!y=Fxtp@!#yM(%rA$%H!i+m+;t6yys1>rRAOd`X6$b zPI$c&U~6mEGh=;`pc?g1T=uD$OpsGwXKEwoK>D@l9b>a^^%sun5NVC88A~aJpQUAv zW$lx{c_p+_LDkInZlAWL#mco@F-0dLti3dPuLdp26-k|xZ<$zf;qw#~myY7xd7hRYI?C5lYLQC4m)90Y zHS6}1j~~yQYfg*s-gf%a5=n>tw@W&kSB$*2w>^U+%Gvuj2juT4{}_OkAZU=3AIeR^q~ ztFExmmAWsd?pIeYDHduAzTP%#os-Db4F|lBkKcWaZ)=)FWcDGEs>>6^K24uO&Hi*_ z+vv~dcZl(uT#r?7j8PL!6_TGf$5m;3LhA92`tD2-ncgDv%J113y=QY>veDbe8% z)s&5UDECCwvMAW;$*V>?krL}&*@7J|OX4Raj;cAuveT-_dgk`>HRmm~)z)cCbw-5- zB!p;&iLx7eboCg9e)z)N5HMFk<#W%nH*dGZ`OhEgv-n$y=N0)IhaO0>3Iu$rEz`Pi z^vc3)n{g4wX$GaOhKBBQEf!F_ChuQupt!ylxm@TtX<{bU@Lspzev-7D`pydJE}4O= zM-Myna;jeDI`e3^#*XT^lm^?w9ak!M9dWQaF)pijxy<_ekHp?z51z0%;gqdvxbVdY z;RoIQS&oCA>iU~Tef2oS<@$A*RqbAbXVE(qHNSSGl_%?eTB*wGLZ%kl0`yr^%(=j&ksk>SrL_SIye4x#%3EngPxshU?@6Wx^B^*LbCxR+^3 zY4&dppp(ih1z+~gHSjC)m>M{5Q^TZbYZvB~^;Ah6@Db2m?;S8bD?`@i@ErAl(aHzW zR6o!CH`48I$GqPr_hG@Jft71^3AF7HZ_?a*Z~vR%EAJvUPgXki{>=Fu%}>LWshLvc zIZeukcdqhTp?uMqebJuPwa+C4jHcC3?~&TwXyxj=$p3ic784cT^w~G(YcQW3y+GY^ zP^naJm(=H{*_J_d*T!-yBp<%dcSFz9H=9TH`KW5G9m0leGhb|(p>$}vWA!%fE8#U~ zg6)I67Tx8#QPTS4MRIdmODLO}jb=56gkWcKzi5Zc+k<&AmNM_`Q$AR*%6cTM9XBqk zbM#IBh?y#ur|LViBQLd;ogQ~ev%UQGh0gBa`Id_oeqAAbMQpUMpHTm}2OLdJ!IQkW z93_Potc>L>xIN{NLaE!sjycx4bAgyu&7~#n z2C^nhPg4WM&fnerYVd-{mVhAnSJm}}2l6Z0Ppla=pSJFOOj_-t`_>j?3ro(=JCm-% zd8DlNN}NT~EtO!u!z(qG=^W7(Ps>l*S8U#QXjD_;$y-4$!wN4f_wQ1&OG!TIxc|oU z#X+I2j}7u4bMKq8zFjE9NOqswOEo#ALr=pykFR|y7sC<1U+qlgN$_yokRkV!#+t(fKJ@eJQ zOS*Di+vtkJ;}ypqdgg6uyGCKP`^rg{e8JTdpZRK@^}eZ{>Dg?Y+NQiQ{224JZ)TtC z&&o3^H}2GaC^%LiUy0T`@sh%-DUHv!yqG<|j^=5!kNNs2lLw3I>xy|4^;=6Mo*lUIL@98APQO!kVv|tyf|;9lerwr$ddsy%{H&#py@e-~{iDUV zS_fB1qzX9R{Z`8IaO$UOhm{l8#&?|Lbi6;iuV!6{TjIinV_)Lwp8Pgh;^$wIm+b7gjQLdA0L3p6f50p1M)+g!z-URO?eu_+p~sPx+)@S+}il zY(Od#P5fzypQK|wd+>MR;=XO^YbtoT}T>c%F!T~j+(PRZD+c6Ys%+1kqsQ@;wWR5S6pvc_NDD5HGBGYLoWw_9?V zmhE>PecWbemsVo(w(RJ;lVv;ko>d#H3mE%pPt~+dQuF0lRGGQ&HO$s>kDjWLdYQ|w z?5fe6moJ!BbuYLOe4sC4ufa*3S92nK38%J%g*?P$_+N_YQI)#eBue{-1%YD6|OXv(aQc) zW2|Xj)72(DTpFY|bIB9o()UKri=SMXJ+<31N%+Z_!&;hb!ks17o*F_8j~2}_kLR}# z-}OvLw(+de$(mI&0=?EQlef^hH|lE3IW z==BzNdmKt&xjb6cPHfrXt5@&r?No%%|5dWocH8auT^S{@i=98nr-@yMrz=S>psXfL z>vpZqgS|D+10+UN;i9_gx(VNF|B{IV1L%^6$27``%1>1 zC`>;TXMeXjebdE{y?KYHC-j>Q{vJ_dDv z6}HSaV*5Nbp=w;fXbsz`rE;yMtBzbX9}~$XQ{R(zalGJuuQQX4AN8;cDvz1J$*X(| z>%J3|&yHkyvBm8&{VUl@B`>&5@#^m{q~iIL-VgreIm zIksu*nPt10L^2h8crGkEvLb!e)eqIO^5>?XA5Udo84MPvzcU_^x>nS)>dOxO&0B5i zW126o?zWcixt+IVnxw{{%l2n|S#QMmsV%)QZ9(wMgyRxZLQ6ZYRt+vvvb0>`z0N>$ zxnsuSb8~5%t;Vht9b56dS7CSkpp1aYx_yyjEmBzY%N36us@2#Yp=f;KQKHh<(JMF1 zf*R!|%4j=05G?SW^ zJH_R2xyTw*QT?Pn+b7*opFMv6pc}Wt@>|E|N~&+6TrabZ8LcoqZJouaXDu`KT${6` z;ju$?fV@}jX&x1u31@1z9j@L{*b<<@v0&}$-JP!8bu*HgXO3Z8iQEG%mKPndUnSOO z?=g;Y4^SVcfRsabSczXSpzZcbzQN34Jx`r&ir~uA0)zMX`}n&hU)pb6CUf(vbYxv| zhv?>vgR?qTr9AR}OEV1Iv-#Y?;ssmHTxYW(T7}2L?UUasc&R=+c+q(D2bSfu(cSCk zTylvP7Ub@~v_8trD*4iT@r61Q8f*TWQ<9lP~b~VuQ3f``6fR zV_DFWW#P2NH&=17vAEc^eOsk(y6#irc#gPllss5sQ5B`1dexw>iifqmrMkNC(t6t| z54i-Y7Wakra4oWVF=cybbZ}!wVy^5>*7;SY&nKGo*)LDAQRFpFy|-z}{`Obwk|DKW z-TWo2It`v_?6?oLPSDJQ)8~JgTlFJzb!;YR>zb0hw%eQRl_;vhhGY(C#3llWz-d81_%>_PTeIdwhE_ zf9Z7f$+o-sXLJOxzdGw`bvrtjX0uda=c&^h9U8nOuWU<^&#>}H+NQywD_3ctKJEQ{ zxk26<_9y6WR^x`=*AYSUXRHtC!l=&MfeJ^J@ zQf6cBmGtF>rTOfgxH``B`V8#`v(#^TT{!~G#`8|z4?A=G=0I)pt(j&QTiZ-#2roTz z&vep*7=MoFy#6a;V`>(ekIfxp)8X8htfL~MyLU|XCoiECr*L%}Tgmc@%#ZrDoWbXK zTvU!XPBWjiLhpL%#FI?|SJ$1c%;urRzkIlG*7jX@;;%={e=L=ovyQV*#cso+K7CkjJ*?ltjlF~HI>3sK3$33?(-@J28ZT}kW+p8BD z2(-Mcl43ei$up;lJy&Ry;B9fE)~35p;*(8u&BZ1CR841COpd>HN90n8NJjNrJJI&z zn`BjWa~Iw(mRJ5%esXz9iE`h`1KZ*%ID58B&9NPt;l ze##>aor)r539XJ*qX(O+7IV5Eu#=lJElQxXeE~$4_Eouw!%2x18Fkyek`n3 z>7Dl_D$x$5j?p1!zZAQ#KubQJGTQDmL*CC~YX35a0ZRE;6Ds8>FBdl|G^^rNLK9CX zU!CjHLFLV9c&)l&@8rVk&w57(Xclc7{UQI1n-TuJ(YX9frXEn~nn+nUvbQJP!bBrlJ@GgO4SyX~)h|0X~nTsuw79Ca{ zWd4+~AZB6RWUrF6i($_L7X)`y+uxaAcGCZwXHJ*y-m^KYl8=A55TWQTcucW)x8#OV zCaoGNA%RWXq)eVa?<#Mbh8@#pXaeJq3#f^t=A5T%eel>+#lS_9~8A3=aZCu@2 z!!cp`YW2&`yl0%wMb$DoHt=3vr|^-JEvD0oHmOZ z0?AZbw;tH~F6Tr;=>iLLlmOCAY0)7*pd`eCkdvvX4)m}eTLQRy7^)3JmEj(kn7T{r z+#Hv1AhdL|sHw>q7wBFu2O(C6bmsccE`Fj{!GJUcCe~9>oT^x^ih4tnlbYye>5}F9 zMK|-Fv*yCyvSc)Iu2ta5aTs7d+vMUZ8Vpj{Ca;4I@LfzrO=p^l8iIW-7d26fj5=0u zQIV<3&YEr+xy@T^E;M9s9>{0th_2@xG72_9YrUR}I?8C~=1qLY8Ad4hGv~+-}$RHiD zBjjK$s>SYhj?Hik-JT$?`!kTiY7!7Y$W{Q5ya}w#(3yO(j;OrLW>I-J!6jf&(C#gQ z{=SbvaSMW6t#F&iN5-NB{rzk#ZZIE)hSSX(^>k^D$;=-^>2j)ofq+{pU?5C-PUo?# z>5R7d;xJnA9H(5jlT3OU&1`z&8FV2%C%QG$F?KWxyXw9RGSzl^h_W#rc9p4|xJi7= zhOGb0w=I8hY~o1A=sqc-wp)L9N6%>sYP$&eHFfHODS!j#2-Dk6a^i_&C@SZa3)4o=<(e&IiZ`*9H|hz5d%M%qp?T8`BD*2n z(3u)c8}MBYQm6u?g`Sf=)`6L@-^ox^4dSp{IvxAV&U-7}E<*?Ua$}W;W~~-e$dJX;-15W6#_vA%WVC{hZr*esGkBwlmcHb5cn3jB#k1R~ zLi`CtO@@v)gSU_adKXT1SOYxN0#Y%fj*SJ*U%LU^tJ}Qwq{nKu?@^)m2*IcWHK#6y z^T|X@e6y%bhP9{+8$?_NMztP>Y6>G<2s03i^Pal`c7`JW7pwsA4yPJ|;iibVa2&`< zWT=<7)|8So9hjTpar4&x<@VtjJ zUy&7}1M_MgLN;RpLBQbZ{4Xf|Fys6zvvHNgojQx zMLnlA%xX!N&BujT0Zb{{EQ5h)n}dQE;BM zZKs>c*O8&$38wxU`eH-T^-Q0a!vf$WhXfoQUNCJm%Y_+ekrD$u=-;K(KB?*odn9mXG0gcOwiX0LT%H;|C(x0 z7oy*D)I=xCa|w#VY!iW{z+}8M6X88?1Q%Qv8Bt}J2K!C-0Fwv2Gj+&dUJB>2xh5>w z0`L%8CE%2X1r#RSWW=1=mFag!=Cu?oHa3{@!bO$7Y69Jp^=`+zOh*KOQ*ZJ ziXw2^sa<7hzS&o&cIi9~r@n_y5OQaZb@Q56Fq!w+u4Xgqap7>*WQ9|ZGb5evLbiCn zZCf)_mlKCW4x3|T{VTULq{4z+IJnYHSGZ`hx}95Kx{nPpeN=JC;iRr_-p_`vfjQ1} z(;BBQyVm#ISEsJ4K_iHBII+Omxa}=pSnHywWCUlrirNv@9lNMd4ZOg@r-|))kPx-$m0{EOohz;*WkQ^is zZdxdb8QH=j8#%HdTYNFk1thbniC z1vNwG4MPliJ3cVVbpb8v&4T^;t(*|>Rc^4LP#FC0?8$@Nx4R$*gZQ1CKFEbevmkv4 z!tdlfKu$0L{NrT$tsK69$fvO)v9-UqR|j&2kkimvzn9~LxCz12M1A4k%Pj!8bMjyh zCd2Q>u^Z$TsKSyGlKMM2JXuoqvY{lH6u*-T1vv|C@DGytGdY~&^{mJi@^7mFkPqf* z06;l_Jpkb*Z3`mw!Z;uBWRFy5fob}4yLbZQA_j8NAcxm04MPU#?fAfG53a1pa2E@{ z9R60$0_3bg4xd}UvWI&P_=VqiEz+RNhEo1PzwQ_M{h%ML2l0fs{;q!!h#ho6FO1`q z1A@b1_(!1Bfjx1|FucuXscX^gd+a2qQSp1b!i~1m_`C zrr}wD=QAmI4*V##h#pB>+aUl)K%v^A^z?KPgS#QVA;LD04&VqVzTHFPf3ujWGn8G3 zje!DGGL61`S5OI%xcbRww;~4SLaJ;Nwm-)y;4_y+2JD=TOIt^bbB50~bGi zmseM(`qee*G;aHK85vLXSJD4w^5}B_hx&U-M~KCiT$ujb)_)klHq*iO_l|~<$&N#F z9nWVGsAR5#?Dz8j*IXZtt;%0R`U!GFX;Pmcou62L@ImgX?6{%M#GZ8)zKZXYhh z?)L!@^Ilrc{EYVYR8j95d5Z8jrgrEOFp)YFa7#tXEUk52~q>XN{9YQym zbdWEb4)SNyL%v*k$dCIly2YuFe0lVd-)MbwQ{X7NC18kx*^Zzvwqq!e%K!zBI*I~D zA4PY$kE0+SLliRRIJ(V$4BZwyj)DbGpnGgaC~S-oisCgx(d@=3mfH+H;5mijc+61( zj|B?hGeSY*jZnxqV-zNE5`~U4K~ZB*q4060=>GUqC{P%9LMKu1G*c8l(F{cjokC%g z&Cvac7UHw4=?}8q$@kFWHuA#?j-Y9LK4@%SaLr)d1qi6D7 zC}XP^%2)6~FV_2`XWRTy!M0ndcQ+HezPs{5k6owrcN9$)ly?@d&p7=T_W2ceS9 zfv9Rr2zs+64CU<(K>2$DQNBhnD&HQADtFvPFL#BaYV~kbu?OJ3NK~sCjozx?Lv{P2 z(Axvis97@}J=F<9g$F~>lVf*Kp-w0&(hfyc+V@ehemE*Q5{XJr+(+fdqtH{cF!apo z9x6AALT_|p&};ozRBRrNUY>e@D$O3C3Y!E}Wu1s>Ea5+f>pVa$+6k!sNCIj-n1mXR zC86fy$*9pJ88w@xq4$<)sQGjnYBNhmP1fnC8;TVrfE+nEib}6Xj(j!!I`4Ot{ zdW_zle~ez<%tDQJ8K}iJ3%zs6Lak0YsLd@Gy}R-h)%oY3rfYeq_3Crf=2L(={EJYR ze+jA#$U;?ja!_?hE~>ekhpNN!(CbjBkw_bO3iObL3MP>kLul%eLha#a7Y6uo~`j^3xeM4j|IB@zTu=TV zhWjN&p-dktqSJ?eFdzl<=cxM9V_?D0{Lh7n31ry!gTe(aCT1Wo{g?8ifo1J3d2Y;O zVg`ljf06nbF*>iaeQ*{`)$PL%oM_9!h{I|#$T?@m>>lI=w&?n`23m~?6@c%l9gSuXvw0B z{pS}-PZA!>&&S8d#l^Lzu6Z{f7yRIVP=xYp=0Y(?tQD_{R|L3#P|#fxQT zi;fc%00}=VMZE%aH>I4s1KH&1c~1=FOWnt=hC|*&&Kyzt z&w|oA1<^S`sT=C+A3m&mIC#KMm#(NyUyJP6v1P;Yl7ZJ|OJ&6Hk3xCfMkz7)(Xu;r z>XfOeX~;k@DC!^9#RV&Z-oZN`Kf<3%U$$)7ijC#(RF|!QA8k8(dn+q*^Tcm=EwQG7 zsi{6)k*?|0^eyY)CMY|qo79w)0MR?==fPTBpCOoieb>{90{t;DGjt!XUcQe@ zWX|BzA;s{}P|$fi_{7~Ecjo5e68QP0i%ZJ~`=dwoj~=lMi;0biiis*4%mKA~k+?v2 zse>;=Lqpx&-96ns!avu0xIKC5Vs{jZZCG4fTx?uyt?XWScm!zNdq0@&8G8S|r-z4& zouOSs8ZL2QpWaX0utr+XU|BToDXxL`J~A})eS0`4T(TRMPphPXJl23NV!*Aaj2>Fg z`>KZauY>JT;h~Wqx+6W^Jv}Zt4A}?y%3=9f8~`Y3FT1}Ee*OF*=YDv27?uwO1y7II zIJ!f*?N6{OE zucBf=VOVF#{(~6$An4=93iP~(hkB;dZ!jn~E%p}$;&dT{9OcwwwGjo z`_Hfo8-s_&=@`QED_aa8B!#Izla1JAMpW`Ho;50_zJb;gey()(( z3W0rT7~e^BZ>$LlhdpW3xKrr9kOhi`J!c%hB}x*2{pJK46b)^0LRPTnv_c6J&!D)e zXHn9mv*;o0H-l%u-gUYqx^qlw zq9>~^quk|JQQivJORk1}r}TAHB7;f#{WDAbPD3jEXk}ptAJ=sALP!8)0v{ITXE6zm1Aj15t@u5GsRO zt_pipwGdRa2k<>1sO-R9RIxJ@)u@G`m-|A|%L8HP)t)d^vnL!?YJ{Wey^-kkf%~Xd zBN{bqi$slTF{pWGEULqM*xe6MzV;ndrUkNE5wLf?hhD?}wM0JxRqIEgT;M_N`S0(WnM${+Vd>#uWCe773`<`Vo4o9fRt0V^O_U9BMcOdskh6x(TRRF9FrT zUiYm5&<4 zc#Im)rlV%-43uXFeV>m-MGkSO#3c!pxF(^B%c-c;I}N?Mo{nB$hrO;$^QP-^!R1=hgYNKDE+PEUr5SWiT?v|mBuyWKLT#i~2 zD^O2T4QhN+g<5i7qYnjdQFjLHMbqD+t{lLhzeAs%y+@y4G@}oAUt0Pebrm(Bu8KzV zu>$s{FWXUfRWtfr*@n7ax1in{*rQgrquw{|sK5FH>Z)r+pXxrK&+ocW-}^4q5Bt>5 z&E4p0+h^4Op%;DY_`hYZYQV?#^TIk>5w1|;Ohbi*4p^800LsG6h3WC=25zVGz9X1q ze)ahoGa&1y1HrAW)05BebU-6miWPm?rEDLDsKN%|7y4g>jz&|L5hxv=A z3QrVj$qNh&fi-Txp~2k10E~y|vDYcEv$FDTm@|9UtajxolgA12ad2?F%;n_dz`Gd^ z&bJDH@o!uzE48$J&;0rG=FSuuKS8?lDeRSS8UJ?O_z4pxZGp|l+V&%>SFc#HY}q1- z8LQq_E}Vvo$lHT(oT9dG_wL<2b~|@$S5;M&-@0b?>gRnH;<&uk5fv4mt!a9~=tPgt zal`%l_w5DIoja6n_UA8`TC$}6h@_O1n6|TngL7~2*|XNBrYDXaH#~ZD&%Tq5Z`Q0_ zU4Lo??31kgeBC_y?z+1>J6||&e-`A7OpaT>uiCz?%^Y?Qn{4ku=?nAo^YegJy<@23 zxpVes&78hE9c{a~ef##!SCbz;d^AuH{~-4M{RsctpE57Idb+!~yem5Y!Ee_t4V7yd z=_wfl#i^;uiHY&C51Ps%g2KbEc)crie{toEmX`YULii&b10@+5j~}O|K1#0mloR#fv^eZt}F1egO;9ZzmSU6Ccl>y~(N?KY+b3t-)$)|?<;aypmy)FU2AQSk78CW9i zaau<00F5^AIzB4qV}XCTmt|5R7^o>OEX*p*%1DP^(vq_tCntixrODulZAE5gK_R_> zKsp$KPUz0Y#Xf+QXC^AlgaS4S3bQiPv*49adJ2@}WLTKT#)QKJew~p-N&+qq9z;dM zk`mUR@ulPr{J#fBz7t6QAASdMHDKgBh@rKLJj40~uZ>7?M|+Vc+6Q$%x`s564^;fD z{RTX1_d|!!Em+6k^~+6IqXe+(!+ZW?C{o}Ax(mL(oh4AoNN;5Y?=KKRUb_?x)-CqAGa43vorBeH4oMLZRZX_?_SI`#!1Z@BxA> zLPne6qlZKA^7%AEg_mHl7lQbyIQYIh4XIMO$e1cco>UErq28lns*6D%-Yl!Yml{Sh zKp(yqj9voz@}R#F^!I_jG3Z|eeSgr81^qnGul=siECuhiRS;q~f^R)M5E>PY5O*O$ zW4aI$p#;!MN*e8>RMBa$<4t*@cq#^!QN`c&1wns?3VZ`#gwRS4gf>Sbvsv9qMW4><*$mUC}Turc!JFsM7=Nmp%3eF6<9|b zv4cK*0}%}$wG_gKEM1TmN<;urtE3UNUlmc7#)$IrL{vfyqRNVY=);!*Drf>SLer54 zl7R1OmY_l;4{QAmh~nRiC}|@^sa`;ou^*y5V-XdTi>Trs`IAB-puYt4H-r8`(6<16 zchHA9$NvEI(?CB5^r27B8qj|a`akB+JS2rSfdvDwa1kur0Snn+0ahKTi=RS0(iG}d zrO;<%3iWwX=t~TRz83$Ozmq^;67*Mt{&vtm1p22y-x2h0@KY#6nnH1^6v{NFP@yM< zYGNpOuKq)x6ZCNe#)1AM(4P+avq66z=&$0Z&~9l88LLvr)fjAfQs{9Eg{q2w=#%Tf zPa)h}hkrO(*x3;)riL1rnVC4~Bwc`mlTBhA2PYS|1Qhy#hf9KI)M#D_UOqlvi7{~C zli=eM5R?!Q6olhgc%TUA1Yrr`i4%o|g(ZZ9CQ1kkPnsez1((SHCj%-nQ)1@KnNuaE z&XAZjYv#=9BC{oC&z>`TwuHp&@qmhm&Ym_K7g!R^22>o0(aGV%+@B7Kv5~xsv}L#+ zGV*_hV_Bm2?at7())oswI}^+$dVz0}{**rv_!EIY5%?2cFgCcY#uXy`OBEH|2F;<8FM{BHsf=U{j4YK zHk)&~?2Yrd?VWPCZGE8z=5X5w{HgyNF|hT|8D)Pam&5k(6IPp5Wy=Gnb|uvdP~m0p z<;s7*lpz~-ocCwQZbuHXh5yNE{qiw7)trbRy^IqyKu7G z63XU3yB5G#SWJb;Mg;Qi3UjLTJ~HYLM*8$Tdm}CCD$=4|8?IhJ6C6WEn&23cN@RXT zlXe3CtvsU~!3o5+FwRI5`vel+NIAxKB1_<}WC?#HB(_NVzoi-bAvmKh$p^Lz-^bF= z%@AY&Uxl9R&P8XlOQ(4nG+f9V`){rS`S6=8^3gfDd}QmNiY&Uq(NW3=9fX`~e$V-J zq)i*DS~U3G7ZiM#3-nNBqzR58saTHSKjSm>3K}J+E)2XVW`B!Z!w}egq z-5jt%Hq6hFo$NDYb3X-{_v1N)=M(V*=Q_MBjtz<0*U<3Y!VxcGK~00{y)*APYj7HhNKePjB>;;+=lb!1?TD= zxOOKYlh#aRb)i_&XYw!R09^C!CGz0Be}pUs0^weQ`x%;h_T5$@|9)@8ZMYJ9Lpk_+ z{E00_xgTvqIm5d6{t$!?Q;Ep5p;-KiRR`=9N6vvF_f@3`gR> zYQw(#jECC^kKlwRwi(+AK9V<*{+SITL*Pgm#`cl@U>+l%-~FydsMk?YM!8tV`qhNKcZ zzoJPyf&W&XQI7OYAhyNmAF<5{iT+4AVuQeuIz*53!N?zp|5X;waVBl*mY^Y(sUJw? znMY75ySym)zrj?zk}DOt;4I}g;TX+tj6UVXdWe3V7`iU}eJsQ`0*Nn-{o(b1FYHsI z(XqiiCflrR4u_ePjSVwi>lYx0Y1!z^oqOm6Jn}jCzeg+x)#n)s%z9Y2sBLTFIswUc} z)^1w&+jd%4Z7Z$oO)IUlx|!CJ|AtoJ7)Og(VoSThr8j&&|G2J`K8RgLIC31szuRyh zNI+&S`GQVoJHlV{QYf4S_IZX6k$D~L?df|v#(9J164oVc1jjUKBRC_C<;Xl_JP(Kr zX&XtCb^=H8N76r&BYhKyWw73_bP1n8Mmb`GK+@mOWEu4sWgHHm0>&EB_tB(pVwdO$NoI})MHIQ>T^psMZupfq0#UGQjaSX zoPRp}`i=IXtbt0}>PdMq4Xq9Fy@1#zz7hB{--s+;Q{ZPskC1s=F0wJqNA{aDkX6oI zSQ}gc9;1&$2iqm>1jjUKBRC^Xd?9Vb)<4lij=+B_&nQRwCJ@`gd`1~!pFqMJDMxG& zNaTNJlh|OCVZ<5v^!za&r0z^Lp>j;as6x076gtLJB_5BcSAp3S{9Z$ zCOCm3+ZbtrV@N8o^DCOP6ZmiC8RZC$$HQocw39YQNO%|$9P^0{0!QjF$}-}Nas+4O z<9UH;d>y#TtO-?v@?_Sad9xj)ZcjKt#jLzQJ-3gh!SC>(=l>gA1G-(fEF!2YOd9lD5!=K!0)OTkk;M?NJ$;c54c7cL zc*pYwzrP#O!Pk`^xgt8)E@>w?rb!#Y8EN7RX(P7&i6(Lc{#$uQInpKs}Tz_HLdfj&3>tJi<*56(Y+ ze+TD31#AEAaAY`uuS0*%|G&=@l6L|}=94jpj5wnl!AJ6cN7Hk`sY^@PaEa=yX&K5t zEC#EBbEx1cC+X`zVwdMYF}4%@SNB80A8CX1$H*r(2qZEDGRiXIjJ63r zlK(rJem=spz&J%03O@_LdjY&Zs0zuU1oqA@hVlVjt54C-#WWNE*u#9~7~bV=U?5<84CM3z9p zV;l$O5gP;&c??I&5*v&%jQB|Y?`V2%A^-SUAkIJD2jWt5HTZuWod{3rRx=RX+} zqt6(}V<)~69MhzY;EXhh7il9l|A{7Y1pZrjMmf?qf!G%2Gs+PA1QOmzIbwrABL6d+ z#0H}bBR-Pf3zR>{~zZ%_Kj3Lc3d%y?=gfXZA0|X`vQF5!q1U#y$075Mx4+XlKOA>MD}O; zq>c1PXhw*yZP@Q2--mp{e8x)jf8`J1Gur)?ETdgUoY4lO9gO3+;W&~x`2GGreElc) z|5taO(t@X({pJ2o?)wCe%n!*UfsFTm_`VOG2Op)!VrV@<_5nZOP@acqM*L^;z8t#L zof&3Sh=e6AOwyVPoo7XbG1Pye8D%m4Z{-=~Lgrb~ur3`+T2aB%O)2abe%^X_js=DN z`c*&J&M$2-jDz^bD9ebCv`^$2+v)PdF$x%WjJm-}p1};q{vYoDB>p5PL;3%aH^LtY z@!TToe|-Ok{onWZ3glYF2=V)4VuSQW<`S8&bUwV#jFh&a@G}ei>=J$tE%m9ni(WBK zXo3?O%aArkobU|??7_b2!n>VHy3+WJp)|E(+yp6$2f zy{4j;orhcw<)0o~oPT9l|JN|A|3mXA_}g3bZwE;H@i$%=Cy=!N3gUB>oc~qun>-&g zpQfT&jj0%@7~&emYDC?KdXM!46~=O$7RGXn3S~J;1+g5V1+nN;0nB=oKeGrv`9^I_@^?{O;YV8HkM^Zz_JX%`--!N@KR&jnD1lSdGu=DX0K@tJChR$t zqH>LTu;L>1V3p(d8n?=cid*eOJ%Ebgf44H)fxj6@!}en3FVdoA&rx@TPtwnq+Y^nb z*5|du*{7)9cO4Y`-hV1~`H*iv^MTlkS$%dS`fQpFWAN20TC4tDbjl-k`*@%(76OT=XD

A9-kScCK0+H`{01oHxtXd3dhc{oLEbTzlJshTWuK>1H{3_?XrH_aBk8sgW}G z(vG$5PJgenpUZrnvChwRmYv_vl-;*Gm*=8R=3aohv7whQ?X1Ev{$I!czVQEjgN57Y zop0?w`+^@7k298Kp38YYb6(mx7j%$Cw*PZHCaAbeJtg$2K@xW5U&$uLdtr4gqIY1GK@=kFZ;Y zOL7;#I_*Dy+Iorj*J$Vl;>DHyWt9VgS0E-|-W#0gAxkdlDwtzP7Jw7;FY4rim!r(} z?#pJKbN$?lz$xr&tlkIp?R8N{S$2DWDUV2Z<$tG+os{Ch?c#GsKNsiz_FVRN;(pG3 zon?NeJKVRQYuO8J!RzuLRm8i$p4R^T?jIsvXvb_f<~n&UUN5Z^&hKE>&qF;dzOajI zMEs}!H(oVbB5oKik=GL=w8i|tqH*1D3B7KZ3cqfcL;$O=8>+&t8!8$Nhe|krxr1f( zHG?Gb_K}j>&0kLJKWgRwX#WM%V9O zU@l}?aw+(5Nf%iF&{}2i!?A3(bDeX&*CkyPmuYK{#XjH`=B<(~1N`J*$u3tOaCGNE zNt+TWOK<5b^HJ{$z(aGKIft?CpXvNuXW1O@wC>x_wY&g+TySMK74`nKI{q(QzE%7i z57WNq_vAU8*UM!m+&`b&FekNmLw`3m7@=}JepVZ=hW~FGAyGGaO2myLR8%8yz=5zv zBUD(U;VPmLxNyU86?(%k7s77O=`R6S_mgE;^;YD=Vw(^19X@ql zn{&M>8_WGzCRk_7ZtE|Yvq|`D9sk%5+mGk2*>_odT`x5cG0B|UoWoeN-g!>5?o9ib zZD#*}x=gMvysEp3`~dzhsL}OF{m);vS@}IUOnF`0`JCU8-{oxIhkWtAxU1#=20yC} z4M(e}+eXQnTSrO6t)6Plts^ChxWz*FEuM;qyu}k5@2SFWHW;BIZXO|_H;+)O!H>v) zjZ$g7-2DGXtcrSgyb8S@I&mZV88;47t6^6+8mbZ0Xs8Nm1Wq&>A{sZq+6ca3umoN| zNUgkXpaeARFaFo|6`!knEAK0M$fC=TKcFoyy!1zzf7y?U;5x#TjWz4^GWKWA5rulK z-k9g||H%_4)t-zBiT&P7kpt9$MVEIy>$&Qj)9rK3_i(q)?_-X4?&I99d2)4k74>1Q z|H;#QU--YtaP3=jtU1nUSvJdNKV!YH&F9i?+W+|tCQ8Ef<7Mq#VR4^YP)&VyTm0)mW)eVCL^V`dchW%vuHHZ~g z^^_%-cZ1(CHU)nX3oq}goYt&&S!jt*!(I~KX|Wv0$9N#VC+n7ausfwpwtKFUfX2gR z{`nnc;bnhwF8ecG=l*XkgQttH>8aL!G+noUO;r3V^4lhX4|!@mG@tpm*X#D3$m?a7 z_0ay$ZSafQeB)0N^RICdbN4t|d-oVc8*|qPs@DIg&w`n8YTc8QBm&w&oo3c$?W2}m-AjC~>?w<{=njqOE{kl-avfaRT^3*T zqxj!BNVX4MsqY1F%usUxJmB;A=~JR4=+RNg1G*~j%euMF={%459Ot@omEHGuU#@d3 zIPKlAmx})Q55btV9jHW#{Ssx>!y`54&Hm;*#=5UJ%f>Fcvb*xVyeItcsR|lQk}bFV zEbAVaAnWh@N!9_h>+hQ&>+Z$!z0ihx$Ep}uF0Vm3np^>BHSQU!^<(`bzewhQU^$83 zvzYoUp0i0}pPnL7cR)Yx0#6*kyq)3#wnqXHcYq@{!f*GKIsjk7ZUaAV2WWv%8>?>} zEG&CiKDQsvZDsPpubRr*#7{F!282k})|-4wvtR4%n>> z95}w`u;kB=m(Z6cDBtV*Kv%jepDTORIo|!8?&mk3W32o3b1nNI#`#>=N5yU67qwOy~J;uhagzp|4u^=}eBH8)iz$itQ5o*ck15>K#AV`?H2JA69{fo~KR8~ky?>lq|I{Rv zIXGAy-)H6jr%s+!#dG3S>)V*WWn)}DP5Ox0;rEwpujmY~(tH^sTMBF<{X&|SJ zun~UGNaaM>J;+1vu0<%yq3DBX-07)S1DHctt-5uXTG42r^1ZH~Vw_m&fX_9(l@D~n z@AkoJ;|~kf?$k1M^7sjzZ&Slg966@;W>>21o-0-0gLqa(?~gtStn)no?K1P+WsUl) z=+FL8^gq7~f%vb29v`K@^U`bTUduoI4nEiRR?DyMtLT5~f8t$JWaE=lCI0cLvhi`0 ziN`E#fQ@~0qT2B2WFgi+`iqKtbdtn9Qj6F}Cd&FI7)N;KSIHR`R;T@!E!ZOQuS|zl zKr@;k&JYj&taAnC3mVXt7$CYabcBGe5NjVm>_JXxu;%`8vgSVM#(lI_IqF{IBpT2V z*vNm4k??+Wc3FeuW71v{|pf4ShPtUJ8(qt{;z3!T;8?4L~ZHqs{-#H zhJ3S+T7G?h<@XQqZ|!S;m-S!#S*QIY{;Snbjn&`PoX_3<-S^@CD;f^a?Z2?WWJ$jN zH^IE+viUjUcS(4*F3_&kre}VWP0vh|4Np&1o1Xqn;x&Gi_@)-99|^DgA$g-B<>Wyt z{S@U`>w*63fn*ZpVIhu+5E~3+4ABH z+5EyE7M=$eh!>_y{PVx51o8rif6gjzdTyF*dbSqi!RA+INdB0pI{vR%oG4q~nXTi? zM(nfUsj0Pi5`1_HptX4s3+v*9DU%nEfft0$4b2M&H)0;KIRRd*g^rLLYcTE<{gA~8 z@?z~nh$-L+x#6-b1018~eG23b5{wuT0DTO)bC_&uzfe_%X2@~0edB*xa=bD!Qxbdn zNyxpPdVDGnebK-h|4RU$0&g3lHnx~|n*Sr7{uz9${hSrZbNRW({@r&7xC!_1Fpd&` zKI8vHmD*&wY<=xd+4l0Eviapd)Yg}0%GQ@GYaJzHcxt3SnI7n9BK1{{8g#U|n>iT5=v~)$1ig;!M+WR2axy*S2 z9Ovgcv)=icEHmbDtkw8G?U5Oh_|_ard~G&)pb}r3g);D}g)OhnP+OYKP}`b;AF!KW z`NM^+ugsK$m&uRc)s}Z=slxHmb^KrMov0E&^wQd)x$?p^l>l8a*a&Ue1YI$D5^rlt z{IlQ)coJ8KFTZgt!NnKD6>13k9$H7hk#$c_WR4>13|GLBn8$xngpM&rOKd%%mXI6d z3T-rU5|*PMo*>K}*tZOAjIr%Ot7KO~k(@kqOiO{u3r-$JKXGM>#C<-Sd4&Wu8Z1FK zW4sc5P$yR2GF10V&AM|f2i-IT`ZHW5w3=Vn{{cxV^4Xu&%A1C`&c*Wt;j_&7OxY}( z&*OTQSKc}lWAH<@|Ed4!kNqi0?|MnnTXSVQc#!nwTo<;#F-Nw(F-s-BF#TSsWABaA`o5qF{=W8V6U&MDaci2q=gl=~&=@ga^Cn7_a9+w22b)so!9 zUm_ZhmDRW5nVMTLUI}Xu;wbCw=UC>kA;?iTw_YIB81p$5t5PNU`N=pp#>6q^#q$K+ zHe5L^KgYm)w)6AY2jbZKCg^|uc@tII6Ejuv2lFKv9N6A`u1aq1B}CFY^E49QnWGZl zo}-f9o+pWK&sN*sGMJ^vm#uHkQd?e|sS-b!r-~=8L;FAK(*Me(Nh;~H1&aJ2UpBus zLv4NaPccYn_J<<2Gy^xNC9fdPAQ#yTjvyAvrk4?8$PoZ>NaA0FejryR5Pvk-@6b8| zu8s&%%=mB)!G*(sbKhApP%Q&c$YrEvG^RG+x`6JbAvG^5`N1F?f;_l zrbuSf*^=_fB1!#VA+SJF-gn@=`I7YBJe3Ta{O)|&{x0|do@f}JG@l3Em@6qCFO-tW zv2yBAZTqkGOO@0X-a^etd=oL|P1{0Gs43eBYKZ|j!dyhd@C4k^{2)hco{%fl5yO*O zjvybgITFuU1069up_XVkw1n}-LamOFBU)3CpHNH4kM&KFhmb3XFXY3<7p6(d_r6jc zoGyPIJy|<;jE2hb&+5=j+5F{vYy28MGGmqh*n%@*_l{KC+ANlX#kK9fGAK>fzx1mf z=QQU+d{QiPyvwXRmkq<%DeuK>y1-M>|5?w>m9)>7NZQAXCGDd{wHD>n4;M<(hw~LJ z`H}R2mr5Z=oIKIo@Y3ffof=oi|2zECB)!#A&5tDT#Aph&Wc%B5p(k^+C4aVSevl&$ zXnvf|5o(E(Bjg1&hIW(I5Lo0T7C)H7S{kBt#MTe3BPPyJOQ;{uBfgL) zp?Si11745^w25CVl;Y_d!8CERl5Z18rPso*1r>BLw)6-oi)9e%)Bt{{iWe@%1uEX+B?4 z$P<7z1zO_N5cilvei)8ec?ok9@CDo;Pne5PKb#t(^AbD8FegEORO#G=I%0E!`Ks0q zW9@vz=!Y{GapkMv2;+;%SzWmZxq!aQ*0*L${^%&#pIjm8WNl8sal-={RgyU7@Jav`&guT)Im8|ANkN>c#R5sTV@>k=&&OMlefEx*~Vmt)e;mlF>SQ&Cuaw7pb zsufd^t73dKrL~V#uSk;P z`|ITvTEp7N_-d)jLfa-M(p!0}Oq(C%MwZPH>PFVLeo`?bK~AARtj9~?|6M_ulJk84 z_yPSOPi!60+TqX-myVDdHa|?9G2GCWd5E2hxbhHigxp}>N^T^+XXU7g@6OS=s?Ix@ zdz>Nvu(ZSCN1gn`){QL~)1r24AwL|t;fgDEY|-(BF$I0slvdtSv2dFlt2%(Z&}zEW zfkSyaC8O^uS^p5muB-1U8U9KW{l zIDLQK*fX8axsLbT*5g@@gbOkLi}s(_Y?0)&Um-c)_)FF|zAEP%KgnrhA-fH9q0KUt z`SmhIZXix53rm&73tyqlXbIhD>!&JbZsz+;t^OabeaET{mHR`W6-y9boSH#Cq;rR*j7WOlONxGqk>kt@;d}m_!ZU^k z(vc7JT4_Bu(fB9DXDZg?ekc)xd+DaUp7%>}pDfk(ztx^ZszTD$rnhFO7(9nzjy1;_ zYtH3dcAb}>gM0X~_fBy6zu>hclJ~<($!i+`9q?1MdEXH$G;+T6Q`z4xSGnJUAFx^9 zELYh;RvTZH+Xm}k$%*Xm{Z-YhEpp;ut^aohWvaZ+t0Wsbk=@EyGFvTGwA2kEy`{Ix zLR`sefn{2ggMb^%J<`8G++q21ADw@snfycNr*{4UZlrvI92GHzNYy#&B1!&ezS8{} z^P)jfbPR%%xHH^KH`Ko?wS9r;+o*O8yn7L z{T$9?7@O(fr`x~rKlER1e)~_g?m_%+$3AWyp37j_SeAJ%=d#&X?}z6)Hr)S<_J7HF zQ>E|?Zz<>$Bn98Ew9pgdzKS<=m}ua$jvu$oN=;9D#kAgr*pOcm#dP zhcTw$#6y#CzjU(7=;$wpOZK?(za3#&%ync#lS!`q;~vJncO1*-cj}zOc|K?Pk;xMO zz$Ey8q@w?e-ty5tqW=nha6^YxlG`Cb6?6a}z>nPT!3FZd32=jYQP3qwYUU-@^?z8d z6!r+w{KzFw5M!J$afZ2v1@M7olYe{#9uS5bh8MPeICVqwf-%O{3~jY;Ks)O6ZNUfX z2RY&7g{>dyh$~LrASb9Dv_>iBf!2VqQc;cJu~ zc}FJljXFR~Vg8YUzKgaj1L-ZiRr;4Uz=?G9TNqCW<{gYB8qf=B2K9nSB@j;-N0@IQ zzkpq!Qa-YQSdv136UZ-A^7~$O0nI?3p^=2~bo513R+j*^Ke1ey=SfZ;JE3;R6{wWY z7BRm-Zi!str9b$bg~Ib!YQrP&=~GixdS`#d_D}sMkpHP|@6EyXNowO`xXyoGGj^B z=Qa>OvK&YUFESBBjAc3FW9SF8A_FmmNJsq8_yE@6eUxpay$juVYrZfyWjrc_r0FR^HiM!<#1`O{_hIU(S4oGkKuWX$A8n<^!QZ8 zvax3US?!ZJ?xCr&8Twy%{$y43?ow6MJ5&{Q3$f4@)<)rv!K(1bpjvc6*#>#xLdTV= zsOM@`%ey#wt~Cfcr0xf=c|_d5r^ zMH%@h`Y5$%vs~ra$c9$9&>CeM=)bZLt2L&e?`l;%B1#nw3Rk(%wagYi7QTcv_yT1h z;|p(&eF4ZrKZE@YV;=zdpz#TE4IuqvXom*+E6@v#4`FQ}-&9%O`l>x^^IdJ3{UpQ% ztx+j&Gyg=c@h&u_xtH4h>MXVOl^H6lTcD!{s{&Fen8!4qd!lbl2Kx@iaF7Ccsm3G5AfE+357AhrOSKC1ON0d8kqonwUU@5jWq^Kjb!~oh+M0BuFhdO}SpY!6)l3ZWZB0dftk zA=DF~@H<#)$G5d0Kk}g+x!_2Cn-xOjeeJJp=^#AopIWW&*_=RLzH>>6`Ipfl8)jQ18v)lBq{ z@VWX=;dch*`vrWLjOGg^1A0MZz6V`tuE*3>VgE2WQf|Nh83*l-$kn;YwkLm=ZBI?t z*z(jg#j>$x{aNkPf5^5+r^)7vMyb;Cf0eTL{j`tDdWB1A&u}SoLvauIAABh55w5vV z(j7jxK~88sfCHs{B4pR%Gx&c1{NE`=O1i9;V(^4qA-K-Om16LL&|EN_fF&0+H@*iy z9DLB6057a~Vsn9f0P>(01>gmBqX4`h$N}T55dyYuyur*dp`e3o%C+h>mCUAh7Qam(Dj#lh*<^Q`Q^YqwhBK*C*DW2PbFSkDZ zyK-8V4Yof$Lk!Hi#AmSmF+B4J{}-P>MU{NCT$K-6BjtS}rKC@oqAlwk;X*NDLrJet zMSc{+5+yxhq4%Xdp%37P)`kAzYWI>>Q-X5e@Kz`G(dFtrzH{{(v}R_+e`X`X)M-7`++!)=&!1L@Pctfa{@fcX@xSmfjomSyr5Q) z7t{#@@CEyC z&QZ5DovxCenJL7!XRNZZ@ULRoESvp|O?>tbwfzY^XJh-n{G%08F?g+1^jjlk{UTIF z-zYI47fSntE5cRojdE|Sr|kuv5YUG5foo)sPnt{r`F;0A<*SOJ(K>dNb%(w%zSyyZ zwixlGv}>psXr7Q8(26?fY{eLAhK8*dMmGw708bcWIv_^{ABvzC1;{UGwQeAG&{j@} zlVj+6nZG0HHJWSWhmIw-UKD%--2n2wfrhjRVBV<;G$+6d@PWu}4Q_mevJI^x)Dq~0 z1?Wf%3*K;rE?Y?z| zx__Mf{GXEitcC5*&QL7Vug-O5y;*1M_UC7)q$hCS;$lnxD?SO3%3(25Ibf}Y{;&py z6R_k*sT)5k`hY9oNO`YFsT{Oc_AJHo5RUx+Ky;B*4v&#?@}p;jg&wdr$cZv=LR;{m z%%CgEfab-I;D-TtQQ8H|;DbR4V~at@5cEw}sS;XnqT~ng1)L}b56F+oF|l&2aF21n z9LwD;<@nx3?GR_$BFC`7a?y7f^Z0IsD*6`sfxNTu8^jlYyeI@G3K&zs2?KJXpf#4i za-bFXLD-zg{b(s-(012zq^zsG(1Su~SuXsZ_qne|?q|@A7Ryxmn00cr>VQkH4s0yZ zeXq>77fO1wd6M${Y)N`B!mLxqtQ>9{=Wdkl7aGl=%0`_?dV-Cjup9V_R@O4r( zFuE=VSj*)DqEr>QQ3Xzv_m5I8ZuDOxmEeR1cu+MYM)vw zyxlJUA1~c6HIp`3`DuG_#0hYs05PPvEo|EWWjH}zkP{j|35$$Nz`cl}Po-Sol3kD*Hl1v|dm%0IVY)Drw0N zgPte@nj7Fmg^hA@!2q0a@xtapIk^B7{}`gk3FH*omUg!F0z9Cm96|nX{!Z>ZEW5q& zu0Y0@?}Mep)(Tz5a$);GMNZI`v;#l1POK7g;*5OwHc*Pd35_TnfzZfDo*>psvqKt(F<_F@Szf1aDhCrc|krfzaSS3 z$cZ!YfiZ-9Adp|G@~)QE`T$Po_`#R~Jvg|&M3nveK0dq0Wo|F&U}*$nMk#^iq7H~5 z;6&l~E0y6y3HU%1qyIrZXxMxx{tn9q(1>E{gv|%dgI37@mS-UT+x|!V-y4vn`$GkY z5rv2y8rUzd)pAt`F64f>OpzNJMjv1czVwrVFTj(}kypHrF{;<*sf?E~-u&V`Nr#V# zjF+(N4(yZuH127m{iFY{wEy9wnxX5ZYG{nAG5)u0<&d?ia`0M3F3>tbP9W~9iUHuo zh;?e8Ul!i4cU+HGF#kIcQ>1D}$4M3S0UW77{GhG0V@G+vNToTU`QYGz&51JPn68)s zKA;bx3>PeG@u9Rws5076+TALbc7p{E2;>p$gJ?b2yDURa?l`O+!0&hz@qoE3;{^H| z>~FZ@MsY{P5atj+1R?ud$h1XjUc#8F64adt+L<37y`5) z?WH-2IL-IqLfR{HRQfZP|8@KSVwLO|y+L*ikCmF?>t)BVSPk-ls2mops)w$#%0sNO z(Fn~I>I8UD;~6Xa{j>Gh3i~U3_Tf-$sq7fD0r7(IgK-1a0dm2h($8y#N>sYNjOA z$v;l*J|dMvW2E>S=mfSGw*gm(uaRed?XQYk!?s55sX1Zsq7a-Qidw=#AIJ?_%>%@Q z-1pFbY=&q0z=O<}y(H_E`5Jne>#!~3**Px#ul_Pfc8=XBJ4V3o;D9@-hC>sEfeS#@ zFuQDX!*HZ#@H*KsGVaX&AGcBG4&;an$R(IhxNs&;fDeorE@)nm8x|MbV}{{GIW&S? zz&Mt+S|>~%K|X*Rc7N1T{K_(f`aNG`hh5$RWyUJ0q6>FUSRrj<7Z#%6%$UU*1xXwDMC$wocF%LJRUg!uaGH3thf99MJYvaO1hTvgMM|itWF;1^f>m?evVR#R!yb zR72M_H^2|Xcx7~=u2#VR(2)HBId$8AT&e6FA1^h7pdXAUc1}UQXmGs~XW#@igBnrY zAKF3tH=HQ%6QQblV?3*OgfbdYiP)h5UeKR=7pKX|8Y>3S8K6Wng;19bv$al+CE%?q0onj7CkBcKB{6Y!jPPHo@g)Pdu&KPXp!p7uR; z0=a`h;dcS5 z0?BUXz-xHk^Z9w&|BV0i{|@+{?HBz3MY{uBFkoD-_FSjP2XcX^8WE#G4pa`0R+U2$ z7e>XZ{Q^5+8^N|gSs2nmPJJzBg+vEN;) z`GNS*Zlx+k9^i@>-vuHk36YxVThwmVqKu)BlDC6?QI3T`)Y*TLFT88`p?LrPl73tqa()IlN>(B|=ADXZCp*EDY$G!l|8q62K2j&Jx3asZp`5fW? zuzZYXARk41Feqevuz67OwUs-N1LOixh(1EzyFQX*b0FK%{?F-un+sYKSTo`AC9 zgysSLKlUvCpJ4kRc_s4&!vR`L3*dXZui?%Ea-c>7oHz#$obiEL;N-y>^95)CKWqOA z|K;9)wm|z-_ZIG9?I2N9TQ!jfzg3SYGY%m-sV&CCCZ~*Q9oc@RQyV}0311|q#+0p{z|5(il%?0F*%pniB$A7ke z`k#KM|H%{Gzp!{vqx%(ZT41yRI^g1i&JnEqQO5_H3pzL8*rXnxwDJSf$22_9{zpGT z_a*GyQTHd12U4>R<2!O3mVfjS+u5mo$K>#)a;cfNS@(VPxF`D?I7V}T{x&{`tw6tm z;}Xmtn6K9Sv{C1J)ED!cAaic=YuAiK%jfWa8Tt~M2P_*dKnK|8+%XCMudW^cJ(N(+ zKD5jC%oPg1MV^S9(eS|4hhThw9%xOV4j_ln9C#ghp&kES?cWjq&*Xn{V5iOxm{m8sj-uAdWhyJxOg+y0>;c06##1g!_A{WB&w{LlPAbHUCHoI2nfQ>ftm z3gn1}2Ud<~_aki%xMBjw5iqt;gV=R2qEPn(>iCTJUGbYf%xR)d?mD9Lg%jlmw-S$wF?3F>g+3_LJeVD%Be2j&L078qNJu}Jd4*;mjx;#vBR zS`Wa38eGqw`6+UEONIP}cUUkl)Z|HFv?yiZ$-{E&H~9#?9MF-T|ub)b~Iu*VU!MV@dP7oZUZ zANxw;<>OS@1=G;~50>iDvAW-9>3nVeZ~BC0J+09Iy^dT!y|Ev#b6mU}SXo#955|@# zw*OlHqupa)!vXdkT^z9U11lbw{J_c)U3~>dT+n&||C0k8gEm~K)O|+u9iaoJ-)Q__ zg)szOw)+ZtYzdm6`wEQj(DWS>;$^Q-x{m+H%J%6#+nM}-rgfwU+dnmezS`%PDLdgq zo|j`tx{qMz4yTVPQ4cIlU_QX@b^H%L9m2Cil>^~_^b_?sBRIf*0(pS@g0R;30l850 ztrZvCc|e^g`rKbqFQ1@_FZoqfwp^)pj&bY%)2BAveQuVWJm8oBG*lf}m0PF(k9$@M z^{K~<=yyGqWX2e=%&|qy0XsIB9Kl$QE13QQIZ!)(VC4nW1ARZj_CGnmdsNf{!vk`F zT+nd=ZKu3H`iIa0ClAc{0mqK?xFPa_nlW**%PUFk$2IL=Q>cz4R_WM&Bzvbi0o^}Z zv{xN1+N0RM8S|M#a9ojNI=km3qfN!>u>w7&2%noVBx(Tri+b!p=a9H>2|b|RTjK|o z4sh&o=dWA%%&@+nLT(-0T&Bu#Kd!hv#tQ8ILUH?57&owZKwcDq2jqg$1EUGd5y=IP zE7AYym;a*5ZklnTqGiZmCg-EiP1#uEXD*wv;Re^a+CMn7A3A4#|HC+X2>1Uv{=+dt z9bc#u&hZ1r1gvw8DN-9;Iil$=u&?OoI~qOE{YE!UpcXJbXbT>gxM0SSoSI;bDMAz6 z^g#Cy5EJyh1dJ7wVH|+*VF&s+yMEuMuWF`d$OZeJa=|pr3K9 zfw>o@#}Vx@X7WIf9cUgP7GTW58eit~PiX(pqGRQ?&;K04m=&MR(&Ne|Pr!XB_8Sck zc%Rxij>OnN4j3M2ZhV1f+Ag0Y6^||6RnLj#wcr0^|J(h6-Kd+R7)w7^x=$U? z->b(|t-gXae!wz$V7Oq$kMunUHy&tC82{@&qcwiu&I3Juq{on~{E&LU*kE|T@dMLe zu()82CpvjREg%=1n!p^9aY0+?g3kGwFCtD<^@PP3f9 zW(|{Q zsJ;JWc))m3_{DOSamD1n%HQ|jTKPrbo|@jceoy28^o`x`H`cWIbGCo&fBRVI0PguJ zeNSnWJ*H@%*X4g(19o5>R_6}G(Y6>D3-nb{0~bl zU|b*v3>Rt!Sj*Pt(N4~!O=F(u6d`ktJy#}ZAxP|D{S>}MM|uH?!QnJY3+#5jR@RzZ&?oBNNjW=xS> zV2;4NkvT%aM}B{0UOjn#`46GvDw_LcSGNn}b2_zs`+qn7o4gQy*7pZ^p9nrQW5+s1 zaGPuF0RFc3b!mX@bF<7ipzl38as&7Kk9rIdJgCBbX%iEeBbdB^mcFMJ5QYav59o8k z8b7f5jLv?e@qdLqrpz%UGk(BaLElpV52^rt-;rFfb-`T|@QjMTi^gHiEm)I~oC~^AV5fh3L7o7K^$pM`!a;)%;CC75^o4Ku`N7Nl9 z4|#=Fy|+TDY#*9-Z|py6|2AKE41LXGOxc`AFWWkx*P(ox9)JVRF(q<=`GLs^tiD36 z9vJ^SV}jv=;eqCWog=vS8(q19&4W66fOtSIPz#)6iHrxX@dM=b<{pzC`@_AaDx(Ky z;DJjI7!P_TIQw#JxX#05t=RIiCZ#3K>56n2Cc_u-RCz^W;&;vfR zQjGq8&f|0Uv60QzH^1GYa*TQq6{hNIapSZ6n)7IH; z>w(b(69?+(!5Mf!O<-Kup>su)`3xIlg57u2{zrajtkDDJ2o?`&#}8a_0l9(|7x?V6 z+gOs_S1_@`aKXd{Cl53im@fjnmsA@Y_?rnnrv$&-Ibt0>fG(JO&Lw!B)jdb#^R2qC z;OIA+XOuXGKrLWizg6X1Wt1zJA0MjjY0)QJm@v1Oer*tvnp6Q~7*9z)RifyD#fXENgl)C5;t!1Il! zui)f?Ggrj3tjZZ1%6h{8j^|mKAJq00tY;6{XJG!Pxq#e|nxMhw4s1Oz<49)wK<5i? zIf8zUkz+*7mPqasbGMWajCvv_CguX|e~|`zd{Q4RZxgh*>>b~eHGPm1!RN+LrtEC5 zW*gU;GObzWF{VswVD>rNvbDZeBa9Z9_@I|f-@%OsCPyF_7#A!}uyO^%1KnpJC(bao ztj81We9@%~1JRc-Jg_xE-)jUX%ovjHH!>!G1NvTri4FEMi!MIcc_KOBWjCi|Kpw zhd9t+@BEZE%0CO-T>e4eDcwJ^+dZH8Am~$PnagK`+5c?Y|Ji!$Gi&#?o;{)_Xt+I# zM86Z%0|Rp4G$1Z8HfW&Vz&t?%;|6@zoiJmH9807o@Hr%E0l~5vPvkuYtpn5oTMwuS z8t5}n6Erxki06?A_8Bw~57=iQ7#pYu8i)&w4SbH7955gcH25sDtqD#&AP<-;k_QCu zAL!>-*>Cs&&x<#ny)U=%?1>d01YKtQ?zGGW_svLtr|h+*h2@{FI9bydI>0)%{mi!O z?pLle+i9K4rc7&K_Bq?KS+6bPfZpFd9BmK`lqqc1S8djf?_nAz;ky=3ioAD!aU%{0dpx?;;qSgYA8?e8~ z=M!1h{RRHsrS9{p_|3J>4~+j!pV4r@$`kQys{L%D(EIUHz_I7z5AoZ9duANU zyKm-s_-ukH}8^C{yu`rqjz>b3R({qSGY|8v9( ze2$3)dK{U{hzI0=vE~_7{O(Zc{({W``rPyvOdK%Q84q-xX!jTOSfUwAhOGe?Om3jL zz&PLlV}T2Ho>(U)AT~JTfyobazrn->J09r#0R05R1Km$>_8IMQB>uL6Tp$mq2h0^| zd7rW1T_07@WY&SaCbNGo>J)Ytb>7|Q?#r@GE{iU*2L37KWSg@z8xv#3}iP%OR zFk?h^ySJVRsf`2VfZorc1x~&g9+`FS%Vxc?uI=O(;J#d^{o7nHIik)3?EZp@4Mq=K z)|DSxeMS=#3?J~jXg!w1m|!$Pk0EhP3Aq7bG{N-@3iv<{nEb%pTX63$xby)1MxzHD zM>5YW^F9>w0{q5a#{-TXFfO?CfLs8$tn);~3+~Iju;_jKX6UXNr*a>flau$9SGSU` zk+-<}`CQBF7as7>Zj9fCw<~?qH@M_w@57bPqE+#^NbiEU>mp82jG6Q>OL z41jxCKU>b{3+!#@T6S*xclPIJ>SJ+#2KU|c*fTBf*X+P}G@nhb0{Fa_27mA30LQ*| z;5SgTrc4e}@A%ueN?ODmCo1s_G*N@!w_5!W^qmoRcpu0GJm1FO&JYzGm*jm4eXjyB z1)SouMCSK&cn5?2ou&C5E^`as>t}z1;BThNkXsl~NA&m+#|FN~?+?DjGoLRkmb?dN zsr)9h3i9urHMzRanokNQY`gkgzCPDB@$@`z*YvH=?(7}Yf5*oGUZu@^6U#pE-(T6> zUn<}6lgehkQu)Ht|2yzJzQ|FC=Y;5Cnm zXUqlv4Zoj>7dY?v0MCD+Mtb^1Qjh=t>cIE`IUD~77`WmROf%+P#uYvj+ zsIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmROf%+P#uYvj+sIP(g8mO;<`WmRO zf%+P#uYv#FHGuoY|GWQ=IsJFF$U5gT9&2$fdU$xAs=M5*&fy*&ckZjZ{p#Yn%NMV! zyL`Uea)Xg|x7RP#*Fb#@)YriOGc_>M?MmI28?39l{ruv(%NM)p@5S!=?5^ML`Yt1# zCxrgjIpM|syJO)QuI}D|^E?`(N?rv<0u4Ow!hig|ZkhW3^)*mm1NAjfUjy|uP+tS5 z*FcPi=Ox>&op8tYTPMD|{jSO1ZoYF;+yALZykqj`n;MOKH2uezEBL#g)33I6&2o<~ z&rkI5Y#!|~C}@>Ouf4t=U5_sD=zQXTHaZ&LZU5$7>{{!))le_7{jr>}2@{+{i` z-TsMl{kz~f&UGH=HdFp*pJCNI>*h?K;aq23TYDAk(JN#7<1?F>I@stjVxYH2*Hfm> zd5oz$Q#O|C%{k3F=knRgXF8vAUvpmPe$MS@D=+@n0JY+UG0OXa!D>#!u4={w-=Fr~ zo#&q6(N4|r_+Fwf7`!(5(TSI%z2Cdiqi3e&9n>d5Yc>QL2Ql|FZ!T6A|mmyew1bAHBRk1ofPubBzb;?U zUJ?c@m#Vm2*|D`q4p#0_r%s+yg@K7O=dzAkkKE5^&M^}j7va%AX06AdxH%r}UG16s z^Yctyv24~EYrfOJW6k$)p3ix_Ik$5^=k~LeXR_TlXe+ZX?jXyb8>u;fxyr@&8BeXT z&hwei;JJ8x;Qi4Ej{$ovUHzZue_jXuY3$64I;gA#ar&L+;h#@Gr~i4)K_0y&++%=Z z9h&+zb#ylWo9*uVo8`0Fv-!d7Z_ex7&usgrcE$zmRq~W@O!uH9y2HG4`k&Vv=+Rq6 zc?{6?#Lr+|I=_ee=bCNKIyc9ec4d~0HT#cubG_Ma)|q3yuJ0-{FZ^D4 z-Ox?%@7&I^+0U%!d7S4m>z#J?MIEebt>gc>n%CqpVe$j3t+y59|Meb2WP!&IG9U2r z;Cb3Zqpe)R)bFhG+e_-y2syg%u%fp7Cpd;%!{9qQ9)Vw7&|5U3pnQ6?ADo3A&`8th%DVl=*EJ z#@2*ROJw<-17+D=17xWUmJPVhY%`YYmfST!dEY%iExw_rcwNz1U(-o&X>F@N>zs%C z5$4>+n)91;8q4kTE<)S9po7f5sG~~#EmB{9T*rkn_dKjaoeyzm{)g}L}{1oxQ(n>;>5k6af8B+C5DyU3git!>Wz&UL;sZJT>>XO)KQr~a?+ zv_Q?f!1^qHp7~sJ9P2FTyuK>=;_(vMXoN)GU?KGS;VS(4VY2%AVTuU5eyFUzX_%@E zOx4%F?b{_1a?KzKX*d`_JzYx-loeO^72hj*%96{v$-+yzpv`n~S(d#n>7od3qxEk* zOmqJ)%qy{NNPu`vgV%AD*B#r5_LE1-D73#U1KB~+pB}q_4Oxr^p(ilM@r-!79voNKz)VZ zhI+bfgoF{dj*!q>Q9rk^euhZE^#jD`n%=m+o{Dwi!c{#bb$qCtI(kA*9X}~q)1qbB zP5sp3E4tU+&w0!_%1f^9sWShF*6n|Dx25891?vCG9*W>+dOMC~IrO4|D)s80)w+j) zCKEJbn*5|<9{fo~Hy&S$hkjC3!RhMc$&)I%>v9!&?`Rcu-xzIKj<|P}iul(k6@Jf1 zjj+2t6%k6@<*8N!A$NMJRksaOD{dU5mNo3FSRWeK^-XIJULlycw&-@ecZzO z$0w@T$9_@kf!HS}sp`-Sef_DuR;XyyQS`$TRP;lrqbB3kT3`+F;5fCW@mLiFL_UD} zA?_co5q=-)hq!m73cbfu1>ZSB1>8JXEx*3MMqHb@>R{%uP^qOz|4RW`r)hira+x+FX|UE-hn zRV6$-O*TIBtBQZ-Hz77XKTUQ<=IHpJ)h}2!JUPX}6H_GiiOGUGli0^BtbcT(ta}t~ z>Jb|c|18lDO^`LHtEeX9Sa-7aL9{cXF|_you>y|Bs+$K()N>Q1JPbSo57;J(7H^iY zN5|>*6VPaY{2f-@G)U$C8LRofy^p`%-@nlSMVxl*jRPd|@}VlT(G<1qwOO*I*$lPq zl|NuFaNGKy=0@=bhRTgTlcLq2L#{Zo@v9O^0V$;qZaX^7%JX1@UY zIG!i)mLY1*mBUrm&A+PTcfBO(?YY1_+4k0Kwf)Vxvh~eB)s{E@REe)+PWiWIsol}} zTK{r}g{rNnr!CE9%9dAV$|ls+mX~M9=9m7E1n?-~Meyi_>EO)o8u8CflX%oq+%r=Y zq3h^r))DIFDb^1-WY-b7#5!VqY-_zp_N7+px%N&V$ITueDdG2ymQd*H>f52OfV&O8 zV}vT0vr)&tf44(@a-cM!F_{Z&2e0gzG{TZyKTCpezHhXKU^rOA1sul54=>$ z`wL|IdvjItd-H{Lll;K~*}ER|$YH*)!cl8v`&)BmJL+run{y=b&DoOp#%$S!deQ)w zw!ZqOg=VNH)X|n#W=K5v6c0Wn=z6m2=mpf#bHAg_p^lzoTbm}as3T%S)2Wj1+6*aQ zlBnkvSEv3GXt2aIoh0FRBIevR>NJEwR|@CFYyPJX3ex*ge+l>f!*Tq&Ydlr{9Wx}e z#Zt-q!bdVc_mR}k7OC`4mq^Mdu%9fEv`-dG`e#dIUtE#C{^Id5l8X9CL7k+$w?K3q zv7VZvo`9rx=4l@3`awM<+I6($^_hy;_WCT@c82=d^3n_;;$NDk;$N7i$e{#qh&InN zg7YN_=U&^pr9?Kq{s-dpSXpy#T}0kDS`~XG=;7#E7@Q9N_s0FmDzHsq_te4GFzZdSU0Vf$-a%n`ua5z+gQ_hoGM!co>=NY=N@RqnU`lJ$+R%51aD!q-bxW^0tcS*G@GDAKx8^2>Ua z)nb{Xx9~>&pq{=&J%KwJUwBK#XWkZnP&cWcEChcROWMbaB>AHSD*2=ND(OQnm5O@V z{{CE*f_fp?z7m_yRf+GQZm2(R&sN*sngtD-qcvzNG-%7~&>^&|v{pWHD6>ZE(C&5l z64w-M};GN*8X?-!p6YY8BHMxeW6efZL6=$`jOv8^D);&6a{rK~m5G z^XCD%?N_M$_OR{zRX*w^zb(){P!1-PY5!OL7B9JN`~l3t4dk?5u8|F!-HO2bm|Fs< zqb%L7thSZ*`4W}(*DBxnEdD@RlaDO_J97!NZI)CWQltOdCVif zsQ5>wNF6+iqXZM0jVa#1fD-@<Z!lEUfxalr|E=p~Z&0?r{#{E_ImaXB?*qOK zlss~#jh`xL1KmNruue2u!4fT@J1v$=>7Xc`8y!xqmb|a9?lb7k=RRszP?m20mD4s! z>dS~R&&^Oo%5$@HnU+X?9(l@bzo_yi3-o(T_4`T(Vor>K)|?3DJ*Aa+2X-aab1p>Y zKb%Xo0`Ie}K;2ZJZYnURVmaPttATkh%26j8_S{xwcyDnT>IHn!?=COJ+!mbcevfym zzWxL2iZLfTxC5>fw}%e53s6K+Tg++u9f0`_3%^0#pguIdhHV`n<%8F1{~t-;!8x)e zzXj`MnQot)zqfpNwB&t)IQ7U+Kpnp6#cMD6@n)vnEQ?Of%*TWxE+A`y^1mCALn~4LVZ+E z-lVUebBAJ1P+cc^t(L32mS{&`T6K{Rp5%VHOl5trSY4;~m>aQ+H_p?_HdR_od@q$OPYs4Cwh+^;`+HbLcqV ziOxCH_}*jdo!6)%)Cb>td!q87a6ayx)3@rmGWm{U{f>LiZGiV&m*O4wrDm=Zd;VEtji;&k&p6TqIeq%-6_l zHec{;k9GZgXE5JIjdzZ_-ZQP=18lu(z6$TlcU}LIbkTE4=y(2tGk9lowPP+izBk;e z6U@8R4|PMH;QiowUNLA&CFT<1+yE7L@AH9>JlzJ4-#TnQN;Yb0_Gz_Uw0K^L@&kbCo)N1oKN)}!uF!)*X5kb;0N2yiJC*& z_XnekF=r;`LBd>Er2ywa+Y^+n*iYCwW1Hp$v_Tbu7n~!zxOJculN0axoZiYd{@QoWa~>M2jcENq9q@hPoM%LH!Zo)D=bFO%p7EY%)&==s z<{aELb&H(beMHv*=ORa3P}RT0>-mZF+(CF3I5;W0XKj~5o65Cja1Pd^&^_v~Yc3$p z1p=S%i^$jdzsoDxH7~4d4taa7@M5%$ybpZD<$vpF9P3>&-&K!Z%LYK-eb;R#yLqiM^){+=S@987dYPl z-zkr_t${g4*e=Qk@V(!r9`G)3&N+yT%r;yvo*jze-{&tY|H&k?PY$MW{b z{@`4`hh1v~+d?Vkg5cbdrI-(bbA@rPsC`idI{(=@e>>(0WcNyt9=6|f`JJS!XFOlQB4y!%0leA7!8_e7cW*#@!JPfXRJmG(8 z1nR-ey~4Q`3@5ZkaBc+?J21Bn=Sy4l;AZ=y|8@dE+==7-Io-($s@BZ|Ew?e`4;g(l>lt zSF{T~Mb2~H4`(~D=4-J0Ut2fUJRU|b7&k2**s+53!1)>6=H=iV46Fmg2Wu{-T759_ z!pyf*jksy_fpuZ#($MoNA$GdvT16F#~g}wyeMqtr}CS6 zE!_26!d2z3`fTESK)e?E`n2|MYoS@sYd3XcG(zVOniF-ozNRkU2SuL|?K8r~brYj)O&wOl(l$mz?c&*Nm~ZQ}KF zz8-BgAMAOW>^YkBoJ`ES?YWp(51gx!ZG!V`Fn=gV4rR@^WX-X}x-fHTaBd|H&Z)$? zlr$eOZ<0NK66a209TYY9Ihps^yrD?G^z+cL4XQhawqYIUxj$^}uWk2MEabHszn^Zc z80uPY<}$K#D9%;FdLSQo{aPy>Ih5uEb<&O%MkB3xXsmgxsSj)yuK8*?uLyzsn(c!5 zwa&4TGms0^2R)}0>j8DZ>o0i6`&9mevnJALc-f=^-25*_Dw z&B!OMIbt|Z44~tsn>F)pxNo=it>p{rhx2YQr`%!J5pzu)M;TA;cEa3{eUM6fE-w>H zs|O(#xW!TOgYAU;F!OPh_O|BV(%OJHQ1r2{DtvriPJT1*F5;Pfk$Lvl-KyVmuiD)% z;@z^AK|Ylq1*DWc?~_sX+>*@yV>HD%{!74o6PdMGl!-Yf>Y(JwMVUnDQwuUmUhz&Y zd1qN@Vbl5FR1A!|!~J^Cw#>Gnv3&XY@;@2&b)4-w>(|%UKz$9=*Fb#@)YriOi#324 z{~!I??`SaZ$}#WAIe(;8iS_Tq`7e>lu220Q2b|KpOXGa|6&F|A@5X5MA2|^ReX!4Z zSH$Bud0T#f{jP|S_hF&_uf7KAYv6BdKs+#)-v3oVGya>ubPvyqVmt=k6?@I7X6tVr z_3^r!$A0>M2S$Aw*KpKZTdo}a0Dqr~cm3447S{77d~f`AahRV+w=GK=bgo*|pyQrJ z4LTX@Mfv{(JkNh}y!re+iyL&_vFyCA86lVSpB{Jp=%-?ud0s$w@Vn#prVj^u^jV4D z8y&&#i|`vIqOA-3&Cx#rj>B)5EI9YK&UN~F=RWRbo`=8js{J0;cbMn#{R#i`du)xm z%CotAx%~W19)oWT_UP?{-$|X|Z;E(~JIr_bPp$PmYOn2V=lS#e?`2t&A>!Y3lz87a zQ083GSXO%ET@!xq^q1dxJvMK;X56Du9s|F{Z{YEJ&$FN3y>8C7?EGHNea^Pt zxev=;4ZBMAf;icmQzbi7N+tF8C|Po6Kka+>bIkMTa6Ih7{u6^ddM%yp(f%*dRzpwLs z>~pB)Xsdx9-BZr=Ip+N4dz*dEWzTlZ+18)!Tz@vedl7EwC8d#RlIOcw=HjvdnXteg2dBH^(}y`F_rI?q&CV%=egw@0{zsNlHReWPZbLb-tU~XQ{`J zh5jDhi+E16&hSjH!*3jU?enhc@{ceV`w{$I=$uPCx{fjHY5(qAb1&~Cv+%n-elEX% z@oMY)n>wX6-<97#xIv$y`3>+p%?2HW?=Zl7I;`#Rq5o4Owf{=OQl->}vuxJUa(zi? ziWCFeC#;tEe!hD7|7-6%;H#+8w}+-K0`ZF9l1^q}xgZWP+dg?4tDO)29y(hm)ns4lI9)X1z~G*e_Il|^LGsfCf?rtT-k z$X6dKz;>C!c>OQ!Cx1fy&jfzvd+!h%l!p*cNN^nfbK3-8gf#!pSR!I34BP4ZNro; ztb?m5y~{FnUysGamUs_1Z1*hG?d}D{yuPay&2)0Y4vJ$=U-x+weU~@w?lzY~?gY=V z^Bf!gofGWmn=;UrXdG`u68C*TK1HG1N`+F_X_CF+yavVeHYUKsWoDxWh4}c%>z+&btQv7}3 z<-wSj7k!Tpg?IN9{Ii{1z{|UH4)}R6%qNfjo>~g)sOmr-B@ForyfIg?&RR#-y~Q-- zUQfXfu1q>dVZFS?etA3FZKLj(Ys$R;3-$2hD~T-y*!4q?TI>%i=j|8a%Kbr zx4)eEceGz}9Kd&A&I5Rel*qh~UW>pN!n41p4~6~KlS1$Eps*fZln~a8wpi z^aJxL^1=CZNKE*t;n8I#R zH?GS()7d_2)l=Y8=v=RF!98Ja4tOW9LZ3MLq2?mxxkXdj^Q#3f=O}Z#o&~Q9{4VA# zrCPXMDbIk@_4G<@+Vj zr6O?7abKL77eh%;d`f#CT10VeEaB0mR2g+zt2f{o zmH7`kF9ci}=3TLk*hZ#h2kCm<`WGCpUBDw*+3^>1O{aSffe52f=dC1T&^ZO18f;A&#-kF6a57q2?zEHxY|rsO|< zL5aB6676um3DfH)_w+LrKfhJYW1bK!cO3XHW5MruAN&RI8Om3t3XYDtK9#J~bUF6a2rlr@tm?%s~ea`r{VNfD1J?$;q~dAd+A!Z{3iEB4 ztA##+Ys392KtGFSL=yA1@@3!nxJ^AQteGN-ZsYGEh(uOVs2dw*#ve?3?QzJhTUR1RK**#(#ywmI=szbO;=xGThb z2H-46orQja3t>Xvmm7oFbevVEw6NS|nBa9iq!w)l~6GG8Ioo|8UL< znfCw=Q6abwh2zl2vEVo`&tc3iD)&nU2KF-5e0QAkMg>tGxJ1p#rF0?9Os8K5Z)(7I z!ZHV}BWW3bSY@gl9;Q|sf!zmYoiT@%Y;$2A`{?|(9QsSsRchFfNfm70)$Ytouy7NAiK(1}bI4o`^r-?o zjoPJ$>BrhDbRnvc%7MXWE`n;o-K)S&>O6#Kfx9<>f52mM-E@I2#1{i!jlQCPb?Z)2 z!{$ul{^h@kYYp6sbFYAJ0G421ejPxgU(3F9)}Rxdi3F zf->%pc?31f4hsx*6SybLC15^<3Fpf6VI-AJ#QFLFyn#`;)`t31{;S)Coqckhsb*xP zs^c7wf-`}BEVdZ>bYWL6{RpgTv;SG(;~Coq!+8=oCg3*(j!9x(1^!v@kH9X0H_;MV zNIy0IAkJeI@QutH(edx-qrkuG7+=OTT}mpWAM0_weU?V$%!xpsDw(T;Yuh{x{0Q{J zG#Pyvhkm>nM1_O>>D<%bo9aeJsf~b<_LO zitQJ;JRDDAvFexN`GIrrW9?;(#W~^eSrFoGtFFN?;?aEY}rZQ?mWcO=;!Z05{FJarC2jNPww!Vr*VLFlyrZL7R1~ zpFV9`pC!&;(|4I9t})4-U@R=|6UK-OEHL;2eBb|%_Xpo63l35JGVJ?{JNZ&l!Xi|-FyOB&jrS~E8KomxX;HMdD#J3N)`x9v+K_eu1@GUa|)&V_zm zq5a}q+@c@i`%3=~miLFm-qtW4TRc?KdckR=Y+p|>lUNkZ1_$Q{lN32 zRyDuHb6?HW_|Iz{6RN=b`UzvH)qjF}*uRUPAFKNyHluF5Znfj~Wd2Py7WFJvGd3o(_WhX58d&Z7(HS-G zM`zZIX|<~NA~UTvDl)TjR77UwNVeUXmG4^YorsLecfy5Lycdyf9ud03^yA$IU+IMgLJK^`&5B|@w+V>;xt)Csdz%|NSGN zV~p_KBR)4z1s3UHMKN<%JLtJ*ZvN)_?;nT%+a4^jY?#VZd^4JPdi%}e_;cfXrDq3` z*N1cajDbn4){qBzN56i49fAM65#XE>j2k)Bb@7XbdM$!eTvte35s!Hpfc+`;>ZFg)QZt*#UF5tnN7ybZI|`< z{&Y>Qx5WnO>st3Cx8Dq02V*#ZrNKTWCP=Tht)1i5sE+Pij@{>X?*YYoB-&Po?YM1L zERvj;?YPxc){#?LM=r~$ESJ+Qzzd|!1#kVUL`s>tg90A#XnS03yJEPKbeoSywBjDL z8Q34WZQFfvOy1VGUfX54Etkvrwo|zcmv8Mni;lYPq=FsrF`X`_)2osMHlpn|VeMRw zhAA#*+m_od%l-b`^j39mRn~U<&A?4DUgOB@K&nkIp}>dcTKgvJ1}RQu$o(R)BDVYd zxq04>*U9aFuHLQ6ZMTv0JdJ;MHPvUBC>Yo-xt&~(d^9S?&&`%dZYs58z#(KTilWQq=Lx!w)O41u(lV9Hdf9oDvsQN2 z(miy^+(;J+YD8TwXS?-wRRTv4aGyIRyt_u^gb00XK5b%cY#3`~v+ZiW zG5wZW>+w3S8*zt+dg^yynvXpB1s#4uk1?hqrkIN5^3BIZtdwK;949^S2(T7?fVJoi zJxLhHd=nl9CIJ|W==ZpIz}TahwmgTN(J?aQSDBfb@Qi_q?K>E|rU`EA&$Y+v9h9{-dC=Aicyiu?UyIy7u8RYd2Adn6T} z3QBrmC2%C(!epJe?(@~NPk(RD9D>*_$K79BuOa3RoWXjndS{l_xUYzSJFv#wStFNq zOfv))+M6(RE>Gs0p#a9K@$}UDDS0y3mv4*gEh7 z$Dz}zV+UA!RL6k`Yy{&52CkuV&Jomn+)T|G<&^pHPTKbf@G6YKu~_Exopj+$6&)V@ zt&SJ4S$E+6C2G+tJIow!=2$vo1w5N^XYHm-=W4W5(7oh)R2u799<}>S zEgK$e)??!_RO*PBF~|K4G1L@aL>G^ji+PTVbNh>cX@IVv&@YuSan>#snw%UDXDkEj zO^)F>KXh(6&W~6=Gy~}j#+}c_`NSf+kdF8<`gLN!x0F983hk?X5BrGYje!E6fy5BIW^P}kV8e#D6Cj^ zh^`hi2>gYJWxu$APQSQOSk{wk)#`E4W)b^^pIgSV+2?&Z#VoW2YcQ|Ju@PrL+@wmx zu;HucSc6UcnzadkD8Ty!Vn5{u*3m<}3VLxj#H|raWG%+4&@gNYJx68G5oFv#{YGF& z5vMPBD}Ztlua>duGf%HmYd_dymO3uhI0<46m!Si6EvF8?d-(5VyodFBZ2aklp*c4mx_fWp zK6`efXrDFChIVl*q!Bt=SC687h|{yCmW-u|7%j({E$wWLm0M!7Xmd+=zKCO9g$`%) zPGFtB%b@cZtCrmbBKFU**+!HJ-8_tI{pu3}qX6Bl)>tgGuT;d7^9OEG5zExaPme8e z97?o_+s9gmjfe$`_& *(|YS8MkCjrW@iiSZ>;Y7-)JWv7Q}kFmn8r$Bgy5>Jh^f zaXw4TwP7t{&A@=L_NE?hZH*b1yb+|o%E;&*7DjPLQ3r=GP8Z*_~DPpCF zb1^o;5^EIq5@Nkt*_*-fRpVn{s&z^#7UxjL+AXogwr$npq-dK>tXIV5WNcBy6&ZKK zaYcMzS+D~)=wAZEA@6&Ed%$M>9eL)2`>Q>z8;LbkK@`jq!OkEi@T#doQz9y1iNTZ4!f zR+YXI;88I!>^JO#$wV7#CdB@!cFNwbYiA@LtD731T{mTKcI}k7oZ6}JRzrD?EYs&L z%ac*>L)7Q#B-rG*?3zijIW-ga2&V8y%soJ9h`Cpx6Ss$dN!A4ru6uC#QhvD&up*ZE&Z;D37rEFmgA zR)vGNT~0+ALR5lR|NldfdI|c<{WQb4-)+aE?ef(AdaTI~b%(%YtZB(DvnQj%ub+SW z2$15}KI@(@9z6N*m;L{hmh<}9J~wT1H)rj8@QYGIi@#Q>Ef6in*+x539)7MX@t-qbEwUpIsJNtNBa-U0I_sqW{Rv?bU{gM0N zdE0%rotO1&%WqXC*K@yXjumSW&-vYO{6NJ?1Fsc)&>5}$N9^j5({?R$MJ)ZCom>{9 zCA|;7!O|FO9WJ|7{p61})B5)I*5mW|>;C@f#K%wVw2UZU+ou0ZyK zx8&7mY48muaW1?EVer@QMV`QD=Inuk7>FEq%t4Iky+FhdPA}g}f!*{nE^ljGzwSh- zmhj3-;yizH{q8&FYA5ZGr>!4y*gdmSOL-dkUNCJbsMXTn*7=t@I7rQbKr;=4Zd+?U!}r`>d|vW3dl z9|b>g872N6TrgNX^7oz3G;3+^Y@of!vz1^e-*=y%Ry@cbxo$$~?D!zd<6KACqqftnjR}%SgJ`52#aZ2YWfQN>hI2b$5fg^L@oEf!4%bgOeU8}pOo6aOeVUwe<>C=D)xh@&Kdg2+zaIUGqRbc9X>9Dz%y@FO zRx^H&z_VA)hgL6i%-MH&y{biP_#$2S*(7g;eJPBuuYzyDJUdR~Tp(9ZRa4{E9B2~9 zQ5o{+=)Oz%sW{IC{Fa;_q+xvq+7zZ$eSSoPZaL+S@Yiw&>Hf;o&wQuB7btueLSq;D zvFxuxjwJ0o_zX929&G%S6&}z|29BHanOrY!674cOBku&-r1Kh}sSaQ3kB!%$-F-;t zrJJ3g9gH@WPDW0NvEXP8#dY2Pd#!F#9DG!|cD%@&0KXI;ziDlT!2Ij}DB!fE9}=49 zRYquhv(FU#i|g>;Udyf{oG+0Vg4@*qO?=jTzXGlW`$@q^(ykRYLOVGHerV(~u=w)M zJ-@+veAaAcWB-$W{7j1$H++i{>kdC7W@);4e0kfE_3Tt$8q*0vY={%?o;rFu-% zS3K^v{by{w?whl4eQesn*GJ7lsYR}jhZqy&Xb`*}J}(x(o6uVa&L8=GvHVZD9x zEaYkdw~Eh8>6^RuKx_DJ@Dj3x&b42PwH@4s8x5F$ZYOe!R4-1p(ZNpEcs%(25&GX~ zhpu-G|CB|?xWY}>wq`wNJ(o_bW*!-8E_@-dH@^d4@Js0q9QulCLtxu^l_2OgO ze(*c89r^jS|Cbt$VSCJ9=l{JUAbbawf2nXUEYV#J|B^=WzRf_*+8(pxP~BH?KaR*c zhSFCtU3hU(@c-DSSXp~}+-=^E?(eo>Kti|qfBHu)sf%yl%m@5B^DqH-crSj>eGMF4 zDRg!kfca}=!@SjO%jCSATI+Q%G;V9JZwt*Hb8yEwTlaQf`0#GUbqREP{w(o$Je9xk zY^S#6vaVduxND4p^) zrQEQN>+T=Bj*_QrqQe*`iTwh;RZZ@?NKNd%fcD-6t&t($QptCRDXz~a6a@{D@P~XT z|MlIDP9+Lr-z#H^cq!ShH|EY3%~V*_+7>MrUgcb^+-fsXF;k5_$kgaob3`$XN=L-JjF>5E>;WQ4pLdCAP>Jq z%H|=TRm3@gjS<=sBBw6nVDucZA~!7SW8n82TfS2y)y3pe_D8!!&evSe7%Es0um29h zZ=uxQE7Y>_yH&=ClmIVMu`Gp};tGUD1ZyVBGiy0GQId<{v zJ=7SNk37gbsMt4wIQOm<|IznrwPISV%6TG@bAxKXIz}x?CBT5-oe02n<95T?osgM(}wB?g8(EGDlu>XfD;R1UDSNd(6mDi7}@<#tjVE zq}Ds{S2>2r@x!JK$fEmPLy}Ta3X|5nf z&N>PlBd+mFC651>y$|01E8En%+1NkFEOCtHjo5!mxtPBpe$K~Xjz3J~^}_x*zY-hc z4EVT};E*zSj@Ciub_KhwC~`E?EnbHU%g(w2*A8zbhJvWO2`IN5@0 zir*4)+*;2Q?g<=+Fbj5ksgl=^+;@xXq_ovsn9n7z9Ypy7BJ&<4L0-FPy zy)Pee?EKnUu$hVZc+bwSc1*~xvX9TNnjV*5`EhK1<hA^xYs}L6`J=Y_xtrb`nwpD zR+*mi+P<^c&TqNhKryd=P9c4LwT7;K2?E;>jj|0t8HLjCU-F=%oh2P~#`D>FY=aW5j zYF-4L^w}+p_5RMSJwRu_*-s~Y!mZ^ey~8O6Sn*Q}A}Qn%XuGy|ApiC=)zqF#)qVGW z0&TeERPxOsN`l^4OwW0=`)<6Kbc0SH{Kor6tfB0su@w4yAFKYH(4p(30Jh4hW+7DVq&;&DYJVr-fTunl&?XeYvobeQI2OPBBVme`u=f|o8l=RA1 zIvyIw+YQX{nPu_fogy5|k=>2znL(RXer9I_hg%((Nm+6y{9_%Jlb zGA8(wy6G5YItEiBG}9P!UGVvSI`q;i=-Vx3{XVs5)Gn2C&lgM!r-t3<#8l*(hd&j# z)7JL{Xoay4HRnBls`&mGbKoxi;XsK{+Pu5h?pUHT(z$e4cmB!U4sU^Bl_&eEG$N6?!_7sUWRLwhx zcL2QmjE1il&tg1V#Iv~Z(_?fc*-VWqj^Ou1(f* zfDa4!QC(A}bX2HX?|$GUKi3=3t|q*jFrH81&%|?AzC+--%NR3$=JLCYcxQnQObzrJ z7!$>MJnDqVv$eAlrvv*`1AOIQ@eabqzDrmtFir3i`3fxuUJrEUiE%&h^6X@}h)?z@vbUBY$|>*0?;rmoLTKJ|F84 zzqF~l7qQHv;2Io-ejk5$dMo2~X-|Ht8#GV(qu2YAvZ2w&`RVz?)3%oN+`1drV_DYC z8nA&1U)u)r7iBz^mOE&pDC242%K>7(U`P}^06+G3yhd|fx!uyBwhr4G3$+bP|< z>q~u6x4qII?#y<|9ZG07Ms3;IS(fn4+z~bPB`0v2J1I++@RFU<_l|bTZOV`#mZjHO zU_jrCof3+iE_Wz>@mkI`ouC@<8_Pbi4twjY+z%HjuUiSv>77asyu|ZT65idrSdNG7 z@NL*t88NAY;?#Zs`Y=Hmr+ke6!3q{R?@`wCK?+(JOoONcPLky7fqGrLP|++U_I%_rw4BV($ZR zrrL>dFp4$2r3=Pe9{pCw9)dI2Iwo&mJ1_K;$JPVAZ5^9iA6rodierw%cC*CMhM|of zim#ZPu%OJ{bSzGXwkBc^U299PM4)-3+hx@iln$ z8T?x3LH1r=2Gmuszsoo$c(b`+D2a;AV6-`l8J4hBo!s^0488p4dc@n< z9#rgv3-v~ilB3pdqO+T$`#i6H=!UDi+cU%5-He{@E?#=Gc?0YDdVxnqjt#H*rSTDU zyl1#LJG^V~9q&HJfRp~hpI-XYj28wxJ79o=!^~$LXSN>4#old}xBV;()037VLf^zoNwkeZsy=E!z;;Og*WlVd)o`j9ClufcsKe9|+EYnXc z(>0dqX3KQg=uyMQk9_{Qes7E%sl4^Z+m^X^hmU=4xGWwuZo;s!4zabAF>aZUyom*Mjb4&Fw?@c9$5&oTB!r?CcCcOS!0&sknvGR|Op e)7`-v2Q)gn8eTWda&{YI@N{-}l*9f{o&Fy^Kwqi= literal 0 HcmV?d00001 diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java new file mode 100644 index 0000000000..dfbbd0a6f6 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/LimitLinesDocumentListener.java @@ -0,0 +1,161 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.commons.util; + +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +/* + * A class to control the maximum number of lines to be stored in a Document + * + * Excess lines can be removed from the start or end of the Document + * depending on your requirement. + * + * a) if you append text to the Document, then you would want to remove lines + * from the start. + * b) if you insert text at the beginning of the Document, then you would + * want to remove lines from the end. + */ +public class LimitLinesDocumentListener implements DocumentListener +{ + private int _maximumLines; + private final boolean _isRemoveFromStart; + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start of the Document. + */ + public LimitLinesDocumentListener(int maximumLines) + { + this(maximumLines, true); + } + + /* + * Specify the number of lines to be stored in the Document. Extra lines will be removed from the start or end of the Document, depending on the boolean value specified. + */ + public LimitLinesDocumentListener(int maximumLines, boolean isRemoveFromStart) + { + setLimitLines(maximumLines); + _isRemoveFromStart = isRemoveFromStart; + } + + /* + * Return the maximum number of lines to be stored in the Document. + */ + public int getLimitLines() + { + return _maximumLines; + } + + /* + * Set the maximum number of lines to be stored in the Document. + */ + public void setLimitLines(int maximumLines) + { + if (maximumLines < 1) + { + String message = "Maximum lines must be greater than 0"; + throw new IllegalArgumentException(message); + } + + _maximumLines = maximumLines; + } + + /* + * Handle insertion of new text into the Document. + */ + @Override + public void insertUpdate(final DocumentEvent e) + { + // Changes to the Document can not be done within the listener so we need to add the processing to the end of the EDT. + SwingUtilities.invokeLater(() -> removeLines(e)); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + } + + @Override + public void changedUpdate(DocumentEvent e) + { + } + + /* + * Remove lines from the Document when necessary. + */ + private void removeLines(DocumentEvent e) + { + // The root Element of the Document will tell us the total number of line in the Document. + Document document = e.getDocument(); + Element root = document.getDefaultRootElement(); + + while (root.getElementCount() > _maximumLines) + { + if (_isRemoveFromStart) + { + removeFromStart(document, root); + } + else + { + removeFromEnd(document, root); + } + } + } + + /* + * Remove lines from the start of the Document + */ + private void removeFromStart(Document document, Element root) + { + Element line = root.getElement(0); + int end = line.getEndOffset(); + + try + { + document.remove(0, end); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } + + /* + * Remove lines from the end of the Document + */ + private void removeFromEnd(Document document, Element root) + { + // We use start minus 1 to make sure we remove the newline character of the previous line. + + Element line = root.getElement(root.getElementCount() - 1); + int start = line.getStartOffset(); + int end = line.getEndOffset(); + + try + { + document.remove(start - 1, end - start); + } + catch (BadLocationException ble) + { + System.out.println(ble); + } + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/SplashScreen.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/SplashScreen.java index 80992f1b4d..5086e53e9c 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/SplashScreen.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/commons/util/SplashScreen.java @@ -21,8 +21,8 @@ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; @@ -52,22 +52,24 @@ public class SplashScreen extends JWindow setAlwaysOnTop(true); setVisible(true); - // Schedule to close. - Executors.newScheduledThreadPool(1).schedule(this::close, imageIcon.getIconWidth() > 0 ? time : 100, TimeUnit.MILLISECONDS); - } - - public void close() - { - setVisible(false); - if (parentFrame != null) + new Timer().schedule(new TimerTask() { - // Make parent visible. - parentFrame.setVisible(true); - // Focus parent window. - parentFrame.toFront(); - parentFrame.setState(Frame.ICONIFIED); - parentFrame.setState(Frame.NORMAL); - } + @Override + public void run() + { + setVisible(false); + if (parentFrame != null) + { + // Make parent visible. + parentFrame.setVisible(true); + // Focus parent window. + parentFrame.toFront(); + parentFrame.setState(Frame.ICONIFIED); + parentFrame.setState(Frame.NORMAL); + } + dispose(); + } + }, imageIcon.getIconWidth() > 0 ? time : 100); } @Override diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/GameServer.java index c9830de34b..7316defa0d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/GameServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.gameserver; +import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream; @@ -145,6 +146,7 @@ import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager; import com.l2jmobius.gameserver.network.telnet.TelnetServer; import com.l2jmobius.gameserver.scripting.ScriptEngineManager; import com.l2jmobius.gameserver.taskmanager.TaskManager; +import com.l2jmobius.gameserver.ui.Gui; import com.l2jmobius.gameserver.util.Broadcast; public class GameServer @@ -168,6 +170,28 @@ public class GameServer public GameServer() throws Exception { final long serverLoadStart = System.currentTimeMillis(); + Server.serverMode = Server.MODE_GAMESERVER; + + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + + // Create log folder + final File logFolder = new File(Config.DATAPACK_ROOT, "log"); + logFolder.mkdir(); + + // Create input stream for log file -- or store file data into memory + try (InputStream is = new FileInputStream(new File("./log.cfg"))) + { + LogManager.getLogManager().readConfiguration(is); + } + + // Initialize config + Config.load(); + printSection("Database"); + DatabaseFactory.getInstance(); printSection("ThreadPool"); ThreadPool.init(); @@ -450,24 +474,6 @@ public class GameServer public static void main(String[] args) throws Exception { - Server.serverMode = Server.MODE_GAMESERVER; - - /*** Main ***/ - // Create log folder - final File logFolder = new File(Config.DATAPACK_ROOT, "log"); - logFolder.mkdir(); - - // Create input stream for log file -- or store file data into memory - try (InputStream is = new FileInputStream(new File("./log.cfg"))) - { - LogManager.getLogManager().readConfiguration(is); - } - - // Initialize config - Config.load(); - printSection("Database"); - DatabaseFactory.getInstance(); - INSTANCE = new GameServer(); } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java index 9a1a01c8a6..625915e123 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/data/sql/impl/OfflineTradersTable.java @@ -28,6 +28,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.LoginServerThread; import com.l2jmobius.gameserver.enums.PrivateStoreType; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.L2ManufactureItem; import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.TradeItem; @@ -298,6 +299,7 @@ public class OfflineTradersTable player.setOnlineStatus(true, true); player.restoreEffects(); player.broadcastUserInfo(); + PlayerCountManager.getInstance().incOfflineTradeCount(); nTraders++; } catch (Exception e) @@ -451,6 +453,8 @@ public class OfflineTradersTable public static synchronized void removeTrader(int traderObjId) { + PlayerCountManager.getInstance().decOfflineTradeCount(); + try (Connection con = DatabaseFactory.getInstance().getConnection(); PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS_PLAYER); PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_PLAYER)) diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java new file mode 100644 index 0000000000..cb2fab84ed --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/PlayerCountManager.java @@ -0,0 +1,77 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.instancemanager; + +/** + * @author Mobius + */ +public class PlayerCountManager +{ + private volatile static int connectedCount = 0; + private volatile static int maxConnectedCount = 0; + private volatile static int offlineTradeCount = 0; + + protected PlayerCountManager() + { + } + + public int getConnectedCount() + { + return connectedCount; + } + + public int getMaxConnectedCount() + { + return maxConnectedCount; + } + + public int getOfflineTradeCount() + { + return offlineTradeCount; + } + + public synchronized void incConnectedCount() + { + connectedCount++; + maxConnectedCount = Math.max(maxConnectedCount, connectedCount); + } + + public void decConnectedCount() + { + connectedCount--; + } + + public void incOfflineTradeCount() + { + offlineTradeCount++; + } + + public synchronized void decOfflineTradeCount() + { + offlineTradeCount = Math.max(0, offlineTradeCount - 1); + } + + public static PlayerCountManager getInstance() + { + return SingletonHolder.INSTANCE; + } + + private static class SingletonHolder + { + protected static final PlayerCountManager INSTANCE = new PlayerCountManager(); + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/L2World.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/L2World.java index 9b02364b07..bea222354b 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/L2World.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/L2World.java @@ -32,6 +32,7 @@ import com.l2jmobius.gameserver.ai.CtrlEvent; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -135,6 +136,8 @@ public final class L2World if (object.isPlayer()) { + PlayerCountManager.getInstance().incConnectedCount(); + final L2PcInstance newPlayer = (L2PcInstance) object; if (newPlayer.isTeleporting()) // TODO: drop when we stop removing player from the world while teleporting. { @@ -170,6 +173,8 @@ public final class L2World _allObjects.remove(object.getObjectId()); if (object.isPlayer()) { + PlayerCountManager.getInstance().decConnectedCount(); + final L2PcInstance player = (L2PcInstance) object; if (player.isTeleporting()) // TODO: drop when we stop removing player from the world while teleportingq. { diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Gui.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Gui.java new file mode 100644 index 0000000000..0ea9ac46e0 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Gui.java @@ -0,0 +1,358 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.gameserver.Shutdown; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.data.xml.impl.AdminData; +import com.l2jmobius.gameserver.data.xml.impl.BuyListData; +import com.l2jmobius.gameserver.data.xml.impl.MultisellData; +import com.l2jmobius.gameserver.util.Broadcast; +import com.l2jmobius.gameserver.util.Util; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmGameServer; + JTextArea txtrConsole; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + final static String[] abortOptions = + { + "Abort", + "Cancel" + }; + final static String[] confirmOptions = + { + "Confirm", + "Cancel" + }; + + public Gui() + { + frmGameServer = new JFrame(); + frmGameServer.setVisible(false); + frmGameServer.setTitle("Mobius - GameServer"); + frmGameServer.setResizable(false); + frmGameServer.setBounds(100, 100, 825, 618); + frmGameServer.getContentPane().setLayout(null); + frmGameServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmGameServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown server immediately?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + Shutdown.getInstance().startShutdown(null, 1, false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmGameServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmGameServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Shutdown delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, false); + } + } + } + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart GameServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + final Object answer = JOptionPane.showInputDialog(null, "Restart delay in seconds", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, "600"); + if (answer != null) + { + final String input = ((String) answer).trim(); + if (Util.isDigit(input)) + { + final int delay = Integer.valueOf(input); + if (delay > 0) + { + Shutdown.getInstance().startShutdown(null, delay, true); + } + } + } + } + }); + mnActions.add(mntmRestart); + + JMenuItem mntmAbort = new JMenuItem("Abort"); + mntmAbort.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbort.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Abort server shutdown?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, abortOptions, abortOptions[1]) == 0) + { + Shutdown.getInstance().abort(null); + } + }); + mnActions.add(mntmAbort); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmConfigs = new JMenuItem("Configs"); + mntmConfigs.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmConfigs.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload configs?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + Config.load(); + } + }); + mnReload.add(mntmConfigs); + + JMenuItem mntmAccess = new JMenuItem("Access"); + mntmAccess.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAccess.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload admin access levels?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + AdminData.getInstance().load(); + } + }); + mnReload.add(mntmAccess); + + JMenuItem mntmHtml = new JMenuItem("HTML"); + mntmHtml.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmHtml.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload HTML files?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + HtmCache.getInstance().reload(); + } + }); + mnReload.add(mntmHtml); + + JMenuItem mntmMultisells = new JMenuItem("Multisells"); + mntmMultisells.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmMultisells.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload multisells?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + MultisellData.getInstance().load(); + } + }); + mnReload.add(mntmMultisells); + + JMenuItem mntmBuylists = new JMenuItem("Buylists"); + mntmBuylists.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBuylists.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Reload buylists?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, confirmOptions, confirmOptions[1]) == 0) + { + BuyListData.getInstance().load(); + } + }); + mnReload.add(mntmBuylists); + + JMenu mnAnnounce = new JMenu("Announce"); + mnAnnounce.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnAnnounce); + + JMenuItem mntmNormal = new JMenuItem("Normal"); + mntmNormal.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmNormal.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, false); + } + } + }); + mnAnnounce.add(mntmNormal); + + JMenuItem mntmCritical = new JMenuItem("Critical"); + mntmCritical.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmCritical.addActionListener(arg0 -> + { + final Object input = JOptionPane.showInputDialog(null, "Critical announce message", "Input", JOptionPane.INFORMATION_MESSAGE, null, null, ""); + if (input != null) + { + final String message = ((String) input).trim(); + if (!message.isEmpty()) + { + Broadcast.toAllOnlinePlayers(message, true); + } + } + }); + mnAnnounce.add(mntmCritical); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmGameServer.setIconImages(icons); + + // System Panel. + JPanel systemPanel = new SystemPanel(); + JLayeredPane layeredPanel = new JLayeredPane(); + frmGameServer.getContentPane().add(layeredPanel, BorderLayout.CENTER); + layeredPanel.setBounds(0, 0, 819, 566); + layeredPanel.add(scrollPanel, new Integer(0), 0); + layeredPanel.add(systemPanel, new Integer(1), 0); + + // Center frame to screen. + frmGameServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmGameServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Locator.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Locator.java new file mode 100644 index 0000000000..e891609b67 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/Locator.java @@ -0,0 +1,295 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; +import java.util.Locale; + +final class Locator +{ + /** + * Constructor for Locator. + */ + private Locator() + { + } + + /** + * Method getClassSource. + * @param c Class + * @return File + */ + static File getClassSource(Class c) + { + String classResource = c.getName().replace('.', '/') + ".class"; + return getResourceSource(c.getClassLoader(), classResource); + } + + /** + * Method getResourceSource. + * @param c ClassLoader + * @param resource String + * @return File + */ + private static File getResourceSource(ClassLoader c, String resource) + { + if (c == null) + { + c = Locator.class.getClassLoader(); + } + + URL url = null; + + if (c == null) + { + url = ClassLoader.getSystemResource(resource); + } + else + { + url = c.getResource(resource); + } + + if (url != null) + { + String u = url.toString(); + + if (u.startsWith("jar:file:")) + { + int pling = u.indexOf("!"); + String jarName = u.substring(4, pling); + return new File(fromURI(jarName)); + } + else if (u.startsWith("file:")) + { + int tail = u.indexOf(resource); + String dirName = u.substring(0, tail); + return new File(fromURI(dirName)); + } + } + + return null; + } + + /** + * Method fromURI. + * @param uri String + * @return String + */ + private static String fromURI(String uri) + { + URL url = null; + + try + { + url = new URL(uri); + } + catch (MalformedURLException emYouEarlEx) + { + // empty catch clause + } + + if ((url == null) || !"file".equals(url.getProtocol())) + { + throw new IllegalArgumentException("Can only handle valid file: URIs"); + } + + StringBuilder buf = new StringBuilder(url.getHost()); + + if (buf.length() > 0) + { + buf.insert(0, File.separatorChar).insert(0, File.separatorChar); + } + + String file = url.getFile(); + int queryPos = file.indexOf('?'); + buf.append(queryPos < 0 ? file : file.substring(0, queryPos)); + uri = buf.toString().replace('/', File.separatorChar); + + if ((File.pathSeparatorChar == ';') && uri.startsWith("\\") && (uri.length() > 2) && Character.isLetter(uri.charAt(1)) && (uri.lastIndexOf(':') > -1)) + { + uri = uri.substring(1); + } + + String path = decodeUri(uri); + return path; + } + + /** + * Method decodeUri. + * @param uri String + * @return String + */ + private static String decodeUri(String uri) + { + if (uri.indexOf('%') == -1) + { + return uri; + } + + StringBuilder sb = new StringBuilder(); + CharacterIterator iter = new StringCharacterIterator(uri); + + for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) + { + if (c == '%') + { + char c1 = iter.next(); + + if (c1 != CharacterIterator.DONE) + { + int i1 = Character.digit(c1, 16); + char c2 = iter.next(); + + if (c2 != CharacterIterator.DONE) + { + int i2 = Character.digit(c2, 16); + sb.append((char) ((i1 << 4) + i2)); + } + } + } + else + { + sb.append(c); + } + } + + String path = sb.toString(); + return path; + } + + /** + * Method getToolsJar. + * @return File + */ + static File getToolsJar() + { + boolean toolsJarAvailable = false; + + try + { + Class.forName("com.sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e) + { + try + { + Class.forName("sun.tools.javac.Main"); + toolsJarAvailable = true; + } + catch (Exception e2) + { + // empty catch clause + } + } + + if (toolsJarAvailable) + { + return null; + } + + String javaHome = System.getProperty("java.home"); + + if (javaHome.toLowerCase(Locale.US).endsWith("jre")) + { + javaHome = javaHome.substring(0, javaHome.length() - 4); + } + + File toolsJar = new File(javaHome + "/lib/tools.jar"); + + if (!toolsJar.exists()) + { + System.out.println("Unable to locate tools.jar. " + "Expected to find it in " + toolsJar.getPath()); + return null; + } + + return toolsJar; + } + + /** + * Method getLocationURLs. + * @param location File + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + static URL[] getLocationURLs(File location) throws MalformedURLException + { + return getLocationURLs(location, new String[] + { + ".jar" + }); + } + + /** + * Method getLocationURLs. + * @param location File + * @param extensions String[] + * @return URL[] * @throws MalformedURLException + * @throws MalformedURLException + */ + private static URL[] getLocationURLs(File location, final String[] extensions) throws MalformedURLException + { + URL[] urls = new URL[0]; + + if (!location.exists()) + { + return urls; + } + + if (!location.isDirectory()) + { + urls = new URL[1]; + String path = location.getPath(); + + for (String extension : extensions) + { + if (path.toLowerCase().endsWith(extension)) + { + urls[0] = location.toURI().toURL(); + break; + } + } + + return urls; + } + + File[] matches = location.listFiles((FilenameFilter) (dir, name) -> + { + for (String extension : extensions) + { + if (name.toLowerCase().endsWith(extension)) + { + return true; + } + } + return false; + }); + urls = new URL[matches.length]; + + for (int i = 0; i < matches.length; ++i) + { + urls[i] = matches[i].toURI().toURL(); + } + + return urls; + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/SystemPanel.java new file mode 100644 index 0000000000..68cabb3c12 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/SystemPanel.java @@ -0,0 +1,142 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Color; +import java.awt.Font; +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; +import java.util.jar.JarFile; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.LineBorder; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.GameServer; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; + +/** + * @author Mobius + */ +public class SystemPanel extends JPanel +{ + final static long startTime = System.currentTimeMillis(); + + public SystemPanel() + { + setBackground(Color.WHITE); + setBounds(500, 20, 284, 140); + setBorder(new LineBorder(new Color(0, 0, 0), 1, false)); + setOpaque(true); + setLayout(null); + + JLabel lblProtocol = new JLabel("Protocol"); + lblProtocol.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblProtocol.setBounds(10, 5, 264, 17); + add(lblProtocol); + + JLabel lblConnected = new JLabel("Connected"); + lblConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblConnected.setBounds(10, 23, 264, 17); + add(lblConnected); + + JLabel lblMaxConnected = new JLabel("Max connected"); + lblMaxConnected.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblMaxConnected.setBounds(10, 41, 264, 17); + add(lblMaxConnected); + + JLabel lblOfflineShops = new JLabel("Offline trade"); + lblOfflineShops.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblOfflineShops.setBounds(10, 59, 264, 17); + add(lblOfflineShops); + + JLabel lblElapsedTime = new JLabel("Elapsed time"); + lblElapsedTime.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblElapsedTime.setBounds(10, 77, 264, 17); + add(lblElapsedTime); + + JLabel lblJavaVersion = new JLabel("Build JDK"); + lblJavaVersion.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblJavaVersion.setBounds(10, 95, 264, 17); + add(lblJavaVersion); + + JLabel lblBuildDate = new JLabel("Build date"); + lblBuildDate.setFont(new Font("Monospaced", Font.PLAIN, 16)); + lblBuildDate.setBounds(10, 113, 264, 17); + add(lblBuildDate); + + // Set initial values. + lblProtocol.setText("Protocol: 0"); + lblConnected.setText("Connected: 0"); + lblMaxConnected.setText("Max connected: 0"); + lblOfflineShops.setText("Offline trade: 0"); + lblElapsedTime.setText("Elapsed: 0 sec"); + lblJavaVersion.setText("Java version: " + System.getProperty("java.version")); + lblBuildDate.setText("Build date: Unavailable"); + try + { + File jarName = Locator.getClassSource(GameServer.class); + JarFile jarFile = new JarFile(jarName); + Attributes attrs = jarFile.getManifest().getMainAttributes(); + lblBuildDate.setText("Build date: " + attrs.getValue("Build-Date").split(" ")[0]); + jarFile.close(); + } + catch (Exception e) + { + } + + // Initial update task. + new Timer().schedule(new TimerTask() + { + @Override + public void run() + { + lblProtocol.setText((Config.PROTOCOL_LIST.size() > 1 ? "Protocols: " : "Protocol: ") + Config.PROTOCOL_LIST.toString()); + } + }, 4500); + + // Repeating elapsed time task. + new Timer().scheduleAtFixedRate(new TimerTask() + { + @Override + public void run() + { + lblConnected.setText("Connected: " + PlayerCountManager.getInstance().getConnectedCount()); + lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); + lblOfflineShops.setText("Offline trade: " + PlayerCountManager.getInstance().getOfflineTradeCount()); + lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); + } + }, 1000, 1000); + } + + static String getDurationBreakdown(long millis) + { + long days = TimeUnit.MILLISECONDS.toDays(millis); + millis -= TimeUnit.DAYS.toMillis(days); + long hours = TimeUnit.MILLISECONDS.toHours(millis); + millis -= TimeUnit.HOURS.toMillis(hours); + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + millis -= TimeUnit.MINUTES.toMillis(minutes); + long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); + + return (days + "d " + hours + "h " + minutes + "m " + seconds + "s"); + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/frmAbout.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/frmAbout.java new file mode 100644 index 0000000000..e8a4f9a47c --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/ui/frmAbout.java @@ -0,0 +1,143 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import com.l2jmobius.Config; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblSupports = new JLabel("Server Protocol"); + lblSupports.setHorizontalAlignment(SwingConstants.CENTER); + lblSupports.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblSupports.setBounds(10, 78, 271, 23); + frmAbout.getContentPane().add(lblSupports); + + JLabel lblProtocols = new JLabel("Protocol Number"); + lblProtocols.setHorizontalAlignment(SwingConstants.CENTER); + lblProtocols.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblProtocols.setBounds(10, 92, 271, 23); + frmAbout.getContentPane().add(lblProtocols); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Generate protocols text. + String protocols = ""; + if (Config.PROTOCOL_LIST.size() > 1) + { + for (Integer number : Config.PROTOCOL_LIST) + { + if (!protocols.isEmpty()) + { + protocols += " - "; + } + protocols += number; + } + lblSupports.setText("Server Protocols"); + } + else + { + protocols += Config.PROTOCOL_LIST.get(0); + } + lblProtocols.setText(protocols); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java index ecc40e644b..056fa7ea38 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; +import com.l2jmobius.gameserver.instancemanager.PlayerCountManager; import com.l2jmobius.gameserver.model.actor.L2Summon; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; @@ -100,6 +101,8 @@ public final class OfflineTradeUtil return false; } + PlayerCountManager.getInstance().incOfflineTradeCount(); + final L2GameClient client = player.getClient(); client.setDetached(true); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/GameServerTable.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/GameServerTable.java index 362aa93ad5..73110fb6dc 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/GameServerTable.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/GameServerTable.java @@ -409,7 +409,18 @@ public final class GameServerTable implements IGameXmlReader */ public void setStatus(int status) { - _status = status; + if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) + { + _status = ServerStatus.STATUS_DOWN; + } + else if (LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) + { + _status = ServerStatus.STATUS_GM_ONLY; + } + else + { + _status = status; + } } /** diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/LoginServer.java index 6c2062e622..39377afee3 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/LoginServer.java @@ -16,6 +16,7 @@ */ package com.l2jmobius.loginserver; +import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -32,35 +33,43 @@ import com.l2jmobius.Config; import com.l2jmobius.Server; import com.l2jmobius.commons.database.DatabaseBackup; import com.l2jmobius.commons.database.DatabaseFactory; +import com.l2jmobius.gameserver.network.loginserverpackets.game.ServerStatus; import com.l2jmobius.loginserver.network.ClientNetworkManager; +import com.l2jmobius.loginserver.ui.Gui; /** * @author KenM */ public final class LoginServer { - private final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); + public final Logger LOGGER = Logger.getLogger(LoginServer.class.getName()); public static final int PROTOCOL_REV = 0x0106; - private static LoginServer _instance; + private static LoginServer INSTANCE; private GameServerListener _gameServerListener; private Thread _restartLoginServer; + private static int _loginStatus = ServerStatus.STATUS_NORMAL; public static void main(String[] args) throws Exception { - new LoginServer(); + INSTANCE = new LoginServer(); } public static LoginServer getInstance() { - return _instance; + return INSTANCE; } private LoginServer() throws Exception { - _instance = this; Server.serverMode = Server.MODE_LOGINSERVER; + // GUI + if (!GraphicsEnvironment.isHeadless()) + { + new Gui(); + } + // Create log folder final File logFolder = new File(".", "log"); logFolder.mkdir(); @@ -96,6 +105,14 @@ public final class LoginServer loadBanFile(); + if (Config.LOGIN_SERVER_SCHEDULE_RESTART) + { + LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); + _restartLoginServer = new LoginServerRestart(); + _restartLoginServer.setDaemon(true); + _restartLoginServer.start(); + } + try { _gameServerListener = new GameServerListener(); @@ -116,7 +133,7 @@ public final class LoginServer return _gameServerListener; } - private void loadBanFile() + public void loadBanFile() { final File bannedFile = new File("./banned_ip.cfg"); if (bannedFile.exists() && bannedFile.isFile()) @@ -170,14 +187,6 @@ public final class LoginServer { LOGGER.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped."); } - - if (Config.LOGIN_SERVER_SCHEDULE_RESTART) - { - LOGGER.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours"); - _restartLoginServer = new LoginServerRestart(); - _restartLoginServer.setDaemon(true); - _restartLoginServer.start(); - } } class LoginServerRestart extends Thread @@ -213,4 +222,14 @@ public final class LoginServer } Runtime.getRuntime().exit(restart ? 2 : 0); } + + public int getStatus() + { + return _loginStatus; + } + + public void setStatus(int status) + { + _loginStatus = status; + } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java index 670365b761..fa5c1e0a3a 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/network/clientpackets/RequestServerLogin.java @@ -20,8 +20,10 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.IIncomingPacket; import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; import com.l2jmobius.loginserver.SessionKey; import com.l2jmobius.loginserver.network.L2LoginClient; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayFail.PlayFailReason; import com.l2jmobius.loginserver.network.serverpackets.PlayOk; @@ -61,7 +63,11 @@ public class RequestServerLogin implements IIncomingPacket // if we didnt showed the license we cant check these values if (!Config.SHOW_LICENCE || sk.checkLoginPair(_skey1, _skey2)) { - if (LoginController.getInstance().isLoginPossible(client, _serverId)) + if ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_DOWN) || ((LoginServer.getInstance().getStatus() == ServerStatus.STATUS_GM_ONLY) && (client.getAccessLevel() < 1))) + { + client.close(LoginFailReason.REASON_ACCESS_FAILED); + } + else if (LoginController.getInstance().isLoginPossible(client, _serverId)) { client.setJoinedGS(true); client.sendPacket(new PlayOk(sk)); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/Gui.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/Gui.java new file mode 100644 index 0000000000..7dfddb4985 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/Gui.java @@ -0,0 +1,275 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Font; +import java.awt.Image; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.DropMode; +import javax.swing.ImageIcon; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; + +import com.l2jmobius.commons.util.LimitLinesDocumentListener; +import com.l2jmobius.commons.util.SplashScreen; +import com.l2jmobius.loginserver.GameServerTable; +import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; +import com.l2jmobius.loginserver.LoginController; +import com.l2jmobius.loginserver.LoginServer; +import com.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; + +/** + * @author Mobius + */ +public class Gui +{ + JFrame frmLoginServer; + JTextArea txtrConsole; + + JCheckBoxMenuItem chckbxmntmEnabled; + JCheckBoxMenuItem chckbxmntmDisabled; + JCheckBoxMenuItem chckbxmntmGmOnly; + + final static String[] shutdownOptions = + { + "Shutdown", + "Cancel" + }; + final static String[] restartOptions = + { + "Restart", + "Cancel" + }; + + public Gui() + { + frmLoginServer = new JFrame(); + frmLoginServer.setVisible(false); + frmLoginServer.setTitle("Mobius - LoginServer"); + frmLoginServer.setResizable(false); + frmLoginServer.setBounds(100, 100, 825, 618); + frmLoginServer.getContentPane().setLayout(null); + frmLoginServer.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frmLoginServer.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent ev) + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + } + }); + + JScrollPane scrollPanel = new JScrollPane(); + scrollPanel.setBounds(10, 11, 799, 544); + frmLoginServer.getContentPane().add(scrollPanel); + + txtrConsole = new JTextArea(); + txtrConsole.setWrapStyleWord(true); + txtrConsole.setEditable(false); + txtrConsole.setFont(new Font("Monospaced", Font.PLAIN, 16)); + scrollPanel.setViewportView(txtrConsole); + txtrConsole.setDropMode(DropMode.INSERT); + txtrConsole.setLineWrap(true); + txtrConsole.setEditable(false); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.PLAIN, 14)); + frmLoginServer.setJMenuBar(menuBar); + + JMenu mnActions = new JMenu("Actions"); + mnActions.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnActions); + + JMenuItem mntmShutdown = new JMenuItem("Shutdown"); + mntmShutdown.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmShutdown.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Shutdown LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, shutdownOptions, shutdownOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(false); + } + }); + mnActions.add(mntmShutdown); + + JMenuItem mntmRestart = new JMenuItem("Restart"); + mntmRestart.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmRestart.addActionListener(arg0 -> + { + if (JOptionPane.showOptionDialog(null, "Restart LoginServer?", "Select an option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, restartOptions, restartOptions[1]) == 0) + { + LoginServer.getInstance().shutdown(true); + } + }); + mnActions.add(mntmRestart); + + JMenu mnReload = new JMenu("Reload"); + mnReload.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnReload); + + JMenuItem mntmBannedIps = new JMenuItem("Banned IPs"); + mntmBannedIps.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmBannedIps.addActionListener(arg0 -> + { + LoginController.getInstance().getBannedIps().clear(); + LoginServer.getInstance().loadBanFile(); + }); + mnReload.add(mntmBannedIps); + + JMenu mnStatus = new JMenu("Status"); + mnStatus.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnStatus); + + chckbxmntmEnabled = new JCheckBoxMenuItem("Enabled"); + chckbxmntmEnabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmEnabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(true); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_NORMAL); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_NORMAL); + } + LoginServer.getInstance().LOGGER.info("Status changed to enabled."); + }); + chckbxmntmEnabled.setSelected(true); + mnStatus.add(chckbxmntmEnabled); + + chckbxmntmDisabled = new JCheckBoxMenuItem("Disabled"); + chckbxmntmDisabled.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmDisabled.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(true); + chckbxmntmGmOnly.setSelected(false); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_DOWN); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_DOWN); + } + LoginServer.getInstance().LOGGER.info("Status changed to disabled."); + }); + mnStatus.add(chckbxmntmDisabled); + + chckbxmntmGmOnly = new JCheckBoxMenuItem("GM only"); + chckbxmntmGmOnly.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + chckbxmntmGmOnly.addActionListener(arg0 -> + { + chckbxmntmEnabled.setSelected(false); + chckbxmntmDisabled.setSelected(false); + chckbxmntmGmOnly.setSelected(true); + LoginServer.getInstance().setStatus(ServerStatus.STATUS_GM_ONLY); + for (GameServerInfo gsi : GameServerTable.getInstance().getRegisteredGameServers().values()) + { + gsi.setStatus(ServerStatus.STATUS_GM_ONLY); + } + LoginServer.getInstance().LOGGER.info("Status changed to GM only."); + }); + mnStatus.add(chckbxmntmGmOnly); + + // Align menu items bar to right after this. + // menuBar.add(Box.createHorizontalGlue()); + + JMenu mnHelp = new JMenu("Help"); + mnHelp.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + menuBar.add(mnHelp); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.setFont(new Font("Segoe UI", Font.PLAIN, 13)); + mntmAbout.addActionListener(arg0 -> + { + new frmAbout(); + }); + mnHelp.add(mntmAbout); + + // Set icons. + List icons = new ArrayList<>(); + icons.add(new ImageIcon("..\\images\\l2jmobius_16x16.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_32x32.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_64x64.png").getImage()); + icons.add(new ImageIcon("..\\images\\l2jmobius_128x128.png").getImage()); + frmLoginServer.setIconImages(icons); + + // Center frame to screen. + frmLoginServer.setLocationRelativeTo(null); + + // Limit console lines to 500. + txtrConsole.getDocument().addDocumentListener(new LimitLinesDocumentListener(500)); + + // Redirect output to text area. + redirectSystemStreams(); + + // Show SplashScreen. + new SplashScreen("..\\images\\splash.png", 5000, frmLoginServer); + } + + // Set where the text is redirected. In this case, txtrConsole. + void updateTextArea(String text) + { + SwingUtilities.invokeLater(() -> + { + txtrConsole.append(text); + txtrConsole.setCaretPosition(txtrConsole.getText().length()); + }); + } + + // Method that manages the redirect. + private void redirectSystemStreams() + { + OutputStream out = new OutputStream() + { + @Override + public void write(int b) + { + updateTextArea(String.valueOf((char) b)); + } + + @Override + public void write(byte[] b, int off, int len) + { + updateTextArea(new String(b, off, len)); + } + + @Override + public void write(byte[] b) + { + write(b, 0, b.length); + } + }; + + System.setOut(new PrintStream(out, true)); + System.setErr(new PrintStream(out, true)); + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/frmAbout.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/frmAbout.java new file mode 100644 index 0000000000..b535d860b6 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/loginserver/ui/frmAbout.java @@ -0,0 +1,115 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.loginserver.ui; + +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Window.Type; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +/** + * @author Mobius + */ +public class frmAbout +{ + private JFrame frmAbout; + final static String URL = "www.l2jmobius.com"; + URI uri; + + public frmAbout() + { + initialize(); + uri = createURI(URL); + frmAbout.setVisible(true); + } + + private void initialize() + { + frmAbout = new JFrame(); + frmAbout.setResizable(false); + frmAbout.setTitle("About"); + frmAbout.setBounds(100, 100, 297, 197); + frmAbout.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frmAbout.setType(Type.UTILITY); + frmAbout.getContentPane().setLayout(null); + + JLabel lblLjmobius = new JLabel("L2jMobius"); + lblLjmobius.setFont(new Font("Tahoma", Font.PLAIN, 32)); + lblLjmobius.setHorizontalAlignment(SwingConstants.CENTER); + lblLjmobius.setBounds(10, 11, 271, 39); + frmAbout.getContentPane().add(lblLjmobius); + + JLabel lblData = new JLabel("2013-" + Calendar.getInstance().get(Calendar.YEAR)); + lblData.setHorizontalAlignment(SwingConstants.CENTER); + lblData.setBounds(10, 44, 271, 14); + frmAbout.getContentPane().add(lblData); + + JLabel lblLoginServer = new JLabel("Login Server"); + lblLoginServer.setHorizontalAlignment(SwingConstants.CENTER); + lblLoginServer.setFont(new Font("Tahoma", Font.PLAIN, 14)); + lblLoginServer.setBounds(10, 86, 271, 23); + frmAbout.getContentPane().add(lblLoginServer); + + JLabel site = new JLabel(URL); + site.setText("" + URL + ""); + site.setHorizontalAlignment(SwingConstants.CENTER); + site.setBounds(76, 148, 140, 14); + site.addMouseListener(new MouseAdapter() + { + @Override + public void mouseClicked(MouseEvent arg0) + { + if (Desktop.isDesktopSupported()) + { + try + { + Desktop.getDesktop().browse(uri); + } + catch (IOException e) + { + } + } + } + }); + frmAbout.getContentPane().add(site); + + // Center frame to screen. + frmAbout.setLocationRelativeTo(null); + } + + public static URI createURI(String str) + { + try + { + return new URI(str); + } + catch (URISyntaxException x) + { + throw new IllegalArgumentException(x.getMessage(), x); + } + } +}